计算机组成原理课程设计1.docx
《计算机组成原理课程设计1.docx》由会员分享,可在线阅读,更多相关《计算机组成原理课程设计1.docx(16页珍藏版)》请在冰豆网上搜索。
计算机组成原理课程设计1
计算机组成原理课程设计
报告书
⏹专业班级:
10级计科一班
⏹学生姓名:
王超1042151129
赵睿1042151144
郎金鑫1042151116
祖抗1042151147
⏹指导老师:
史先桂
信息工程学院
2011年12月22日
一、设计目的:
《计算机组成课程设计》是在《数字电路》、《高级语言程序设计》、《计算机组成原理》等先修课程学习的基础上,结合计算机组成原理、C语言程序设计及汇编语言程序设计的编程技术等进行的实践性教学环节。
通过课程设计,帮助学生巩固所学知识,强化计算机组成原理的基本概念及接口的软、硬件实现,提高学生计算机硬件系统的设计能力,熟悉计算机中寄存器的组成,运算器的功能,微控制器的作用及指令系统的设计与实现,为后续课程的学习和实践打下一定基础。
二、设计任务和要求:
1、设计题目:
基于CPTH模型机,设计能实现算术运算指令、逻辑运算指令、移位指令、数据传输指令、跳转指令、输入/输出指令等类别的,不少于16种指令的指令系统。
2、学生设计的内容与要求:
内容包括:
(1)根据课程设计题目查阅计算机组成的相关资料;
(2)分析运算器,微控制器,存储器等的功能及应用;
(3)分析指令系统的设计与应用方式;
(4)掌握关键部件及芯片的使用方法及控制方式;
(5)设计并构成基本模拟机,实现计算机设计的基本功能。
要求:
(1)分析计算机组成原理并掌握计算机的基本功能及实现方式;
(2)查阅相关资料,特别是主要运算器,微控制器芯片的作用及编程方法;
(3)设计计算机指令系统;
(4)设计并实现计算机基本模拟机。
(5)以学习小组(3至4人左右为一组)为单位,学生之间应相互配合,服从组长的安排,并承担一定的设计任务
3、设计报告的内容和要求
设计报告的内容应包括基于CPTH模型机的指令系统的构成与实现方案,包括硬件实现方案与软件实现方案,给出实验结果。
三、设计所用设备及器材
1、微机
2、DJ-CPTH超强型计算机组成原理与系统结构实验仪。
四、参考资料
1、《DJ-CPTH超强型计算机组成原理与系统结构实验仪实验指导书》
2、《计算机组成原理》白中英编著科学出版社
五、模型机的介绍
模型机总体结构
CPTH模型机包括了一个标准CPU所具备所有部件,这些部件包括:
运算器ALU、累加器A、工作寄存器W、左移门L、直通门D、右移门R、寄存器组R0-R3、程序计数器PC、地址寄存器MAR、堆栈寄存器ST、中断向量寄存器IA、输入端口IN、输出端口寄存器OUT、程序存储器EM、指令寄存器IR、微程序计数器uPC、微程序存储器uM,以及中断控制电路、跳转控制电路。
其中运算器和中断控制电路以及跳转控制电路用CPLD来实现,其它电路都是用离散的数字电路组成。
微程序控制部分也可以用组合逻辑控制来代替。
模型机为8位机,数据总线、地址总线都为8位,但其工作原理与16位机相同。
相比而言8位机实验减少了烦琐的连线,但其原理却更容易被学生理解、吸收。
模型机的指令码为8位,根据指令类型的不同,可以有0到2个操作数。
指令码的最低两位用来选择R0-R3寄存器,在微程序控制方式中,用指令码做为微地址来寻址微程序存储器,找到执行该指令的微程序。
而在组合逻辑控制方式中,按时序用指令码产生相应的控制位。
在本模型机中,一条指令最多分四个状态周期,一个状态周期为一个时钟脉冲,每个状态周期产生不同的控制逻辑,实现模型机的各种功能。
模型机有24位控制位以控制寄存器的输入、输出,选择运算器的运算功能,存储器的读写。
24位控制位分别介绍如下:
XRD:
外部设备读信号,当给出个外设的地址后,输出此信号,从指定外设读数据。
EMWR:
程序存储器EM写信号
EMRD:
程序存储器EM读信号
PCOE:
将程序计数器PC的值送到地址总线ABUS上
EMEN:
将程序存储器EM与数据总线DBUS接通,有EMWR和EMRD决定是将DBUS数据写入EM中,还是从EM读出数据到DBUS
IREN:
将程序存储器EM独处的数据打入指令寄存器IR和微指令计数器uPC
EINT:
中断返回时清除中断响应和中断请求标志,便于下次中断。
ELP:
PC打入允许,与指令寄存器的IR2.,IR3位结合,控制程序跳转。
MAREN:
将数据总线DBUS上数据打入地址寄存器MAR
MAROE:
将地址寄存器MAR的值送到地址总线ABUS上
OUTEN:
将数据总线DBUS上数据送到输出端口寄存器OUT里
STEN:
将数据总线DBUS上数据存到堆栈寄存器里
RRD:
读寄存器组R0-R3,寄存器R?
的选择由指令的最低两位决定
RWR:
写寄存器组R0-R3,寄存器R?
的选择由指令的最低两位决定
CN:
决定运算器是否带进位移位,CN=1带进位,CN=0不带进位
FEN:
将标志位存入ALU内部的标志寄存器
X2,X1,X0三位组合来译码选择将数据送到DBUS上的哪个寄存器,见表1
WEN:
将数据总线DBUS的值打入工作寄存器W中
AEN:
将数据总线DBUS的值打入累加器A中
S2,S1,S0三位组合决定ALU做何种运算,见表2
表1寄存器选择控制表
X2X1X0
输出寄存器
000
IN_OE外部输入门
001
IA_OE中断向量
010
ST_OE堆栈寄存器
011
PC_OEPC寄存器
100
D_OE直通门
101
R_OE右移门
110
L_OE左移门
111
没有输出
表2运算器功能控制
S2S1S0
功能
000
A+W加
001
A-W减
010
A|W或
011
A&W与
100
A+W+C带进位加
101
A-W-C带进位减
110
~AA取反
111
A输出A
模型机寻址方式
模型机的寻址方式分五种:
累加器寻址:
操作数为累加器A,例如“CPLA”是将累加器A值取反,还有些指令是隐含寻址累加器A,例如“OUT”是将累加器A的值输出到输出端口寄存器OUT。
寄存器寻址:
参与运算的数据在R0-R3的寄存器中,例如“ADDA,R0”指令是将寄存器R0的值加上累加器A的值,再存入累加器A中。
寄存器间接寻址:
参与运算的数据在存储器EM中,数据的地址在寄存器R0-R3中,如“MOVA,@R1”指令是将寄存器R1的值做为地址,把存储器EM中该地址的内容送入累加器A中。
存储器直接寻址:
参与运算的数据在存储器EM中,数据的地址为指令的操作数。
例如“ANDA,40H”指令是将存储器EM中40H单元的数据与累加器A的值做逻辑与运算,结果存入累加器A。
立即数寻址:
参与运算的数据为指令的操作数。
例如“SUBA,#10H”是从累加器A中减去立即数10H,结果存入累加器A。
模型机指令集
模型机的缺省的指令集分几大类:
算术运算指令、逻辑运算指令、移位指令、数据传输指令、跳转指令、中断返回指令、输入/输出指令。
设计目标
本课程设计要求实现机器指令:
SED(传送),IPT(输入),AND(逻辑与),OR(逻辑或),OPT(输出),PLU(不带进位算术加),MIN(不带进位算术减),PLUC(带进位算术加),MINC(带进位算术减)和JZ,JC,JMP(转移指令)。
并且要包括直接寻址,立即数寻址,寄存器寻址,间接寻址四种寻址方式。
设计内容
模型机的指令系统设计
根据设计要求,设计出的指令要包括传送,逻辑与,逻辑或,算术加,减运算,输入,输出,转移这八种指令,且要运用直接寻址,立即数寻址,寄存器寻址,间接寻址四种寻址方式。
由此设计出如下表3:
表3指令表
指令类型
助记符
机器码
功能
取指
_FETCH_
000000xx
IR→PC
算术加(不带进位)
ADDA,#*
000100xx#*
*+A→A
ADDA,R?
000101xx
R?
+A→A
ADDA,*
000011xx*
(*)+A→A
ADDA,@R?
000010xx
@R?
+A→A
算术加(带进位)
ADDCA,R?
000101xx
R?
+A→A
ADDCA,@R?
000110xx
@R?
+A→A
ADDCA,*
000111xx*
(*)+A→A
ADDCA,#*
000100xx#*
*+A→A
算术减(不带进位)
SUBA,R?
001001xx
R?
-A→A
SUBA,@R?
001010xx
@R?
-A→A
SUBA,*
001011xx*
A-(*)→A
SUBA,#*
001100xx#*
A-*→A
算术减(带进位)
SUBCA,R?
001101xx
R?
-A→A
SUBCA,@R?
001110xx
@R?
-A→A
SUBCA,*
001111xx*
A-(*)→A
SUBCA,#*
010000xx#*
A-*→A
输入
IN
010001xx
K23…K16→A
输出
OUT
010010xx
A→OUT寄存器
传送
MOVR?
A
100000xx
A→R?
MOV*,A
100010xx*
A→(*)
MOVR?
#*
100011xx#*
*→R?
MOVA,R?
011100xx
R?
→A
MOVA,#*
011111xx#*
*→A
MOV@R?
A
100001xx
A→@R?
MOVA,@R?
011101xx
@R?
→A
MOVA,*
011110xx
(*)→A
逻辑与
ANDA,#*
010110xx#*
*&&A→A
ANDA,R?
010011xx
R?
&&A→A
ANDA,*
010101xx*
(*)&&A→A
ANDA,@R?
010100xx
@R?
&&A→A
逻辑或
ORA,#*
011010xx#*
*||A→A
ORA,R?
010111xx
R?
||A→A
ORA,*
011001xx*
(*)||A→A
ORA,@R?
011000xx
@R?
||A→A
逻辑非
NOTA
011011xx
A取反
转移
JMP*
100111xx*
*→PC
JZ*
100101xx*
ZF=1则*→PC
JC*
100100xx*
CF=1则*→PC
模型机的微指令设计
(1)微指令的24位控制位:
XRDEMWREMRDPCOEEMENIRENEINTELPMARENMARDEOUTENSTENRRDRWRCNFENX2X1X0WENAENS2S1S0
(2)设计出的微指令集如下表4:
表4微指令集
MOVA,#*
T1
PCOE
EMEN
EMRD
AEN
T0
EMRD
PCOE
IREN
MOVA,R?
T1
RRD
AEN
T0
PCOE
EMRD
IREN
ADDCA,#*
T2
PCOE
EMRD
EMEN
WEN
T1
X=100
S=000
FEN
AEN
T0
EMRD
PCOE
IREN
ADDA,#*
T2
PCOE
EMRD
EMEN
WEN
T1
X=100
S=