组成原理课程设计.docx
- 文档编号:27605977
- 上传时间:2023-07-03
- 格式:DOCX
- 页数:38
- 大小:936.07KB
组成原理课程设计.docx
《组成原理课程设计.docx》由会员分享,可在线阅读,更多相关《组成原理课程设计.docx(38页珍藏版)》请在冰豆网上搜索。
组成原理课程设计
附件1:
学号:
课程设计
题目
带进位运算指令的实现
学院
计算机科学与技术
专业
计算机科学与技术
班级
姓名
指导教师
2011
年
6
月
28
日
课程设计任务书
学生姓名:
专业班级:
计
指导教师:
工作单位:
计算机科学与技术学院
题目:
基本模型机的设计——带进位运算指令的实现
初始条件:
理论:
学完“电工电子学”、“数字逻辑”、“汇编语言程序设计”、和“计算机组成原理”课程,掌握计算机组成原理实验平台的使用。
实践:
计算机学院科学系实验中心提供计算机、实验的软件、硬件平台,在实验中心硬件平台验证设计结果。
要求完成的主要任务:
(包括课程设计工作量及其技术要求,以及说明书撰写等具体要求)
1、基本模型机系统分析与设计,利用所学的计算机组成原理课程中的知识和提供的实验平台完成设计任务,从而建立清晰完整的整机概念。
2、根据课程设计题目的要求,编制实验所需的程序,上机测试并分析所设计的程序。
3、课程设计的书写报告应包括:
(1)课程设计的题目。
(2)设计的目的及设计原理。
(3)根据设计要求给出模型机的逻辑框图。
(4)设计指令系统,并分析指令格式。
(5)设计微程序及其实现的方法(包括微指令格式的设计,后续微地址的产生方法以及微程序入口地址的形成)。
(6)模型机当中时序的设计安排。
(7)设计指令执行流程。
(8)给出编制的源程序,写出程序的指令代码及微程序。
(9)说明在使用软件HKCPT的联机方式与脱机方式的实现过程(包括编制程序中带进位运算指令的时序分析,累加器A和有关寄存器、存储器的数据变化以及数据流程)。
(10)课程设计总结(设计的特点、不足、收获与体会)。
时间安排:
周一:
熟悉相关资料。
周二:
系统分析,设计程序。
周三、四:
编程并上实验平台调试周五:
撰写课程设计报告。
指导教师签名:
年月日
系主任(或责任教师)签名:
年月日
1设计的目的及设计原理
1.1实验目的:
(1)掌握各个单元模块的工作原理,进一步将其组成完整的系统,构造成一台基本模型计算机。
(2)在本试验中,将规划读、写内存,寄存器,数值计算等功能,并且编写相应的微程序。
具体上机调试各个模块以便进一步掌握整机的概念。
对计算机的基本组成、部件的设计、部件间的连接、微程序控制器的设计、微指令和微程序的编制与调试等过程有更深的了解,加深对理论课程的理解。
(3)通过使用软件HKCPT,了解程序编译,加载的过程。
同时,培养动手能力,独立解决问题的能力。
(4)通过微单步,单拍调试,理解模型机中的数据流向。
1.2设计原理:
1.2.1在各个模块试验中,各模块的控制信号都是有试验者手动模拟产生的。
而在真正的实验系统中,模型机的运行是在微程序的控制下进行的,可实现特定指令的功能。
在本实验平台中,模型机从内存中取出,解释,执行及其指令都将由微指令和与之相配合的时序来完成,即一条机器指令对应1个微程序。
2.模型机的逻辑框图
根据设计要求,对实验仪硬件资源进行逻辑组合,便可设计出该模型机的逻辑框图。
简单的模型计算机由算术逻辑运算单元,微程序单元,堆栈寄存器单元,累加器,启停单元,时序单元,总线和存储器单元组成.在模型机中,将实现RAM的读/写指令,寄存器的读/写指令,跳转指令,ALU的加,减,与,或指令。
把通用寄存器作为累加器A,进行左,右移等指令,整体构成一个单累加器多寄存器的系统。
算术逻辑运算单元由两个数据锁存器(DR1,DR2),ALU,1个数据缓冲器224组成。
EDR1为0且DR1CK有上升沿时把数据DATABUS上的数据打入DR1,EDR2为0且DR2CK有上升沿时把DATABUS上的数据打入DR2,S0,S1,S2,S3,CN,M控制工作方式,ALU-O为0时224把ALU的运算结果输出到数据总线。
微程序控制单元由位地址寄存器,微程序寄存器(6264*3),微指令锁存器组成。
MLD为1且MCK有上升沿时位地址寄存器自动加1,MLD为0且MCK上有上升沿时把微地址打入位地址寄存器。
指令部件模块由一个指令寄存器IR1,1个地址锁存器IR2,PC计数器,2个输出锁存器224组成。
EIR1为0且IRCK有上升沿时把DATABUS上的数据打入IR1,EIR2为0且IR2CK有上升沿时把DATABUS上的数据打入IR2,ELP为0且PCCK有上升沿时可重新置PC值,ELP为1,PC-O为0且有上升沿时PC加1,PC-O为0,IR2-0为1时把PC值输出到ADDRESSBUS,PC-O为1,IR2-O为0时把IR2的值输出到ADDRESSBUS。
存储器由1片静态RAM(6264)及控制电路构成。
RM,BUS为0,WM为1时容许存储器读出,RM,BUS为1,WM为0时容许存储器写入,EMCK时存储器的写入或读出信号。
寄存器组由累加器A和堆栈寄存器(R0,R1,R2,R3)组成。
X0,X1控制A的工作模式,ERA为0时选通A,RACK是A的工作脉冲,SA,SB选通一个寄存器(R0,R1,R2,R3),RR为0容许寄存器读出,WR为0容许数据写入。
3.计指令系统,并分析指令格式
本实验平台采用的是8位数据总线和8位地址总线方式,在设计指令系统时,应考虑其指令,以及寻址方式和编码方式的问题
3.1指令类型
3.1.1算术/逻辑运算类指令
如:
加法,减法,取反,逻辑运算
(ADDA,Ri,SUBA,Ri)
3.1.2移位操作类指令
如:
带进位或不带进位的移位指令:
(RCCA,RRA)
3.1.3数据传送指令
如:
CPU内部寄存器之间数据传递:
MOVA,Ri
MOVRi,A
3.1.4程序跳转指令
跳转指令分为无条件跳转指令和有条件跳转指令。
可根据寄存器内容为零来标志(ZD),有无进位来标志(CY),也可根据用户自定义标志。
JMPaddr无条件跳转
JZaddrZD=0时跳转
JCaddrCY=0时跳转
JNaddr自定义
3.1.5存储器操作类指令
存储器读/写指令。
把内存某单元内容写入寄存器中或把寄存器中的内容写入存储器。
如:
LDAaddr(addr)->A
STAaddr(A)->addr
3.2.操作数寻址方式及编码
3.2.1直接地址寻址
例如,双字节指令:
LDAaddr(addr)->A
STAaddr(A)->addr
第1字节(操作码)第2字节(操作数地址)
I7
I6
I5
I4
I3
I2
I1
I0
A7
A6
A5
A4
A3
A2
A1
A0
3.2.2寄存器直接寻址
指令字节中含有寄存器选择码,决定选哪个寄存器进行操作。
例如,单字节指令:
MOVA,Ri
单字节(操作码与RI选择码)
I7
I6
I5
I4
I3
I2
I1
I0
例如,双字节指令:
MOVRi,#data
第1字节(操作码及RI选择码)第2字节(DATA)
I7
I6
I5
I4
I3
I2
I1
I0
D7
D6
D5
D4
D3
D2
D1
D0
3.2.3寄存器间接寻址
例如,单字节指令:
MOVA,@Ri(Ri)->A
RI选择码
I7
I6
I5
I4
I3
I2
I1
I0
3.2.4立即数寻址
例如,MOVA,#datadata->A
MOVRi,#datadata->Ri
第1字节(操作码及RI选择码)第2字节(DATA)
I7
I6
I5
I4
I3
I2
I1
I0
D7
D6
D5
D4
D3
D2
D1
D0
3.3指令格式分析
Intel8086/8088指令字较短,所以指令采用变长指令字结构。
指令格式包括单指令、双字长指令、三字长指令等多种。
指令长度为1~6字节不等,既有8位、16位、24位、32位、40位和48位6种,其中第一个字节为操作码;第2个字节指出寻址方式;第3个至第6个字节则给出操作数地址等。
基本指令格式如下:
4.设计微程序及其实现方法
在本实验平台的硬件设计中,采用24位微指令,若微指令采用全水平不编码纯控制场的格式,那么至多有24个微操作控制信号,可由微代码直接实现。
如果采用多组编码译码,那么24位微代码通过二进制译码可实现个互斥的微操作控制信号。
由于模型机指令系统规模较小,功能也不太复杂,所以采用全水平不编码纯控制场的微指令格式。
在模型机中,用指令操作码的高4位作为核心扩展成8位的微程序入口地址MD0~MD7,这种方法称为“按操作码散转”.如下表所示。
每条指令不超过4条的微程序指令,那么可根据下表组成每条微程序的首地址
微指令的运行顺序为下地址确定法,即采用计数增量方法,每条微指令执行过后微地址自动加1,指向下一条微指令地址。
微地址寄存器由2片74LS161组成,在模型机停止状态下,微地址被清零。
当实验平台开始运行时,微地址从00H开始运行。
且00H放置一条取指指令,根据程序开始地址从内存中读出第一条指令。
CM中的存储情况如下表所示:
表格中的位数对应的关系如下:
2322212019181716151413121110
MLDWMRMEIR1EIR2IR2-OPC-OELPRRWRHALTX0X1ERA
9876543210
RA-OEDR1EDR2ALU-ODNMS3S2S1S0
指令助记符
微地址有效值
23222120
19181716
1511312
111098
7654
3210
0000
0000
000*
*000
00**
****
取址微指令
00H
0100
1100
1111
1111
1111
1111
01H
02H
ADDA,Ri
03H
1111
1111
1111
1100
1111
1001
04H
1111
1111
0111
1111
0111
1001
05H
1111
1111
1111
1011
1010
1001
06H
0100
1101
1111
1111
1111
1111
SUBA,Ri
07H
1111
1111
1111
1100
1101
0110
08H
1111
1111
0111
1111
0101
0110
09H
1111
1111
1111
1011
1000
0110
0AH
0100
1101
1111
1111
1111
1111
MOVA,@Ri
0BH
1111
0111
0111
1111
1111
1111
0CH
1101
1011
1111
1011
1111
1111
0DH
0100
1101
1111
1111
1111
1111
0EH
MOVA,Ri
0FH
1111
1111
0111
1011
1111
1111
10H
0100
1101
1111
1111
1111
1111
11H
12H
MOVRi,A
13H
1111
1111
1011
1101
1111
1111
14H
0100
1101
1111
1111
1111
1111
15H
16H
MOVA,#data
17H
1101
1101
1111
1011
1111
1111
18H
0100
1101
1111
1111
1111
1111
19H
1AH
MOVRi,#data
1BH
1101
1101
1011
1111
1111
1111
1CH
0100
1101
1111
1111
1111
1111
1DH
1EH
LDAaddr
1FH
1101
0101
1111
1111
1111
1111
20H
1101
1011
1111
1011
1111
1111
21H
0100
1101
1111
1111
1111
1111
22H
STAaddr
23H
1101
0101
1111
1111
1111
1111
24H
1011
1011
1111
1101
0000
0000
25H
0000
0000
0000
0000
1111
1111
26H
RRC
27H
1111
1111
1111
0001
1110
1111
28H
0000
0000
0000
0000
0000
0000
29H
0000
0000
0000
0000
0000
0000
2AH
RLC
2BH
1111
1111
1110
1001
1110
1111
2CH
0100
1101
1111
1111
1111
1111
2DH
2EH
JZaddr
2FH
1101
0100
1111
1111
1111
1111
JCaddr
30H
0100
1101
1111
1111
1111
1111
JMP
addr
31H
32H
ORLA,
#data
33H
1111
1111
1111
1100
1111
1110
34H
1101
1101
1111
1111
0111
1110
35H
1111
1111
1111
1001
1011
1110
36H
0100
1100
1111
1111
1111
1111
ANLA,#data
37H
1111
1111
1111
1100
1111
1011
38H
1101
1101
1111
1111
0111
1101
39H
1111
1111
1111
1001
1011
1011
3AH
0100
1100
1111
1111
1111
1111
3BH
3CH
3DH
3EH
HALT
3FH
1111
1111
1101
1111
1111
1111
5.模型机当中的时序设计安排
由于模型机已经确定了指令系统,微指令采用全水平不编码纯控制场的格式,微程序的入口地址采用操作码散转方式,微地址采用计数增量方式,所以可确定模型机中时序单元中所产生的每一拍的作用。
在实验中为了让试验者更好的观察实验的各个中间过程各寄存器的值,由监控单元产生一个PLS-O信号来控制时序产生.PLS-O信号经过时序单元的处理产生了4个脉冲信号。
4个脉冲信号组成一个微指令周期,为不同的寄存器提供工作脉冲.
PLS1:
微地址寄存器的工作脉冲,用来设置微程序的首地址及微地址加
PLS2:
PC计数器的工作脉冲,根据微指令的控制实现PC计数器加1和重置PC计数器(跳转指令)等功能。
PLS3:
把24位微指令打入3片微指令锁存器。
PLS4:
把当前总线上的数据打入微指令选通的寄存器中。
6.设计指令执行流程
在每个系统中,一条指令从内存取出到执行完毕,需要若干个机器周期,任何指令中都必须有一个机器周期作为“取指令周期”,称为公操作周期。
而一条指令共需几个机器周期取决于指令在机器内实现的复杂程度。
对于微程序控制的计算机,在设计指令执行流程时,要保证每条微指令所含的微操作的必要性和合理性,还应知道总线的IAB,IDB,OAB,ODB仅是传输信息的通路,没有寄存信息的功能,而且必须保证总线传输信息时信息的唯一性。
以下描述取微指令执行周期:
在模型机处于停机状态时,模型机的微地址寄存器被清零,微指令锁存器输出无效。
在处于停机状态时,脉冲PLS1对微地址寄存器(74LS161)无效,微地址寄存器保持为零。
脉冲PLS2对PC计数器无效,同时PLS2把HALT=1打入启停单元中的运行状态寄存器(74LS74)中,把模型机置为运行状态,使微程序锁存器输出有效。
PLS3把微程序储存器00H单元中的内容打入指令寄存器中。
并且输出取值指令。
PLS4把从程序存储器独处的数据打入指令寄存器中。
在模型机处于运行状态时,脉冲PLS1将微地址寄存器(74LS161)加1,脉冲PLS2将PC计数器加1,PLS3把微程序存储器中的微指令打入微指令锁存器并且输出。
PLS4把当前总线上的数据打入当前微指令所选通的寄存器。
下面通过本例的程序说明其中各别指令的数据信息流。
(1)双字节指令MOVA,#DATA
该指令的功能是data->A,需执行如下微操作。
指令寄存器IR1
该指令由2个微指令周期组成:
1 PC+1从内存出得指令第二个字节送累加器A。
2 PC+1执行出指微指令,从内存闱出指令字节送指令寄存器。
(2)单字节指令RRCA
该指令功能是将累加器A是内容带进位CY右环移1位,即
需执行如下微操作
此程序由2个微指令周期组成。
1 PC+1为取下条指令准备,控制累加器A带CY右环移一位(移入CY作A7,移出的A0送CY)
2 取指微指令,从内存取出指令送指令寄存器。
7.给出编制的源程序,写出程序的指令代码及微程序
7.1程序思想
本实验使用了4条带进位的运算指令:
RRC(带进位的右移),RLC(带进位的左移),ADDA,Ri(加法指令,可有进位溢出),JCaddr(条件跳转),JMPaddr(无条件跳转)
RCCA;将寄存器中的内容带进位位一起循环右移
RLCA;将A寄存器中的内容带进位位一起循环右移
ADDA,Ri;将A寄存器的内容Ri的内容相加,如果加法溢出,则进位到CY
JCaddr;条件跳转指令,如果进位位CY溢出,则跳转到addr
JMPaddr;无条件跳转指令,跳转到addr
程序最初传入一个数到寄存器A中,右移一位此时改变了它的溢出位,再次传入一个数,此时溢出位已经被上一步的右移改变了,此时进行1位左移。
将一个数传入寄存器R0。
进行加法运算.如果有进位则将A的内容写入RAM地址20h。
否则将继续对寄存器A中的数左移一位。
直到有进位.
7.2源程序
MOVA,#83;立即数83H->A
RRCA;A>>1
MOVA,#19;立即数19H->A
RLCA;A<<1
MOVR0,#44;立即数44H->寄存器R0
MOVA,#19;立即数19H->A
RLCA;A<<1
ADDA,R0;(A)+(R0)->A
JC10;CY有进位跳转到0FH
JMP0A;跳转到0AH
STA20;将A的内容写入地址20H
HALT;停机
7.3应微程序如下:
7.4程序的指令序列
内存地址
指令助记符
指令码或立即数
说明
00H
MOVA,#83
5FH
立即数83H→A
01H
83H
02H
RRCA
9FH
A>>1
03H
MOVA,#18
5FH
立即数18H→A
04H
19H
05H
RLC
AFH
A<<1
06H
MOVR0,#40
6CH
立即数40H→寄存器R0
07H
44H
08H
MOVA,#18
5FH
A<<1
09H
19H
0AH
RLCA
AFH
A<<1
0BH
ADDA,R0
0CH
(A)+(R0)->A
0CH
JC10
B7H
CY有进位跳转到0FH
0DH
10H
0EH
JMP0A
BFH
跳转到0AH
0FH
0AH
10H
STA20
8FH
将A的内容写入RAM地址20H
11H
20H
12H
HALT
FFH
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 组成 原理 课程设计
![提示](https://static.bdocx.com/images/bang_tan.gif)