计算机组成原理不带进位的与或运算指令的实现课设.docx
- 文档编号:12290799
- 上传时间:2023-04-17
- 格式:DOCX
- 页数:38
- 大小:1.29MB
计算机组成原理不带进位的与或运算指令的实现课设.docx
《计算机组成原理不带进位的与或运算指令的实现课设.docx》由会员分享,可在线阅读,更多相关《计算机组成原理不带进位的与或运算指令的实现课设.docx(38页珍藏版)》请在冰豆网上搜索。
计算机组成原理不带进位的与或运算指令的实现课设
学号:
课程设计
题目
不带进位的与或运算指令的实现
学院
计算机科学与技术
专业
计算机科学与技术
班级
姓名
指导教师
20
年
月
日
目录
课程设计任务书1
1.题目3
2.设计的目的及设计原理3
2.1设计的目的及阶段3
2.1.1设计的目的3
2.1.2分析阶段3
2.1.3设计阶段3
2.1.4验证阶段3
2.2设计的原理4
3模型机的逻辑框4
4设计指令系统及分析其指令格式5
4.1设计指令系统5
4.2分析指令格式7
4.3操作数寻址方式及编码8
4.3.1直接地址寻址8
4.3.2寄存器直接寻址9
4.3.3寄存器间接寻址9
4.3.4立即数寻址10
5微程序的设计及微程序实现的方法10
5.1微指令格式的设计10
5.2后续微地址的产生方法10
5.3微程序入口地址的形成10
6模型机当中时序的设计安排13
7设计指令执行流程14
8源程序和程序的指令代码及微程序16
8.1源程序16
8.2程序的指令代码17
8.3微程序17
9使用软件HKCPT的联机方式的实现过程19
9.1主要指令的时序图19
9.2累加器A和有关寄存器、存储器的数据变化以及数据流程27
10课程设计总结28
本科生课程设计成绩评定表29
课程设计任务书
学生姓名:
专业班级:
指导教师:
工作单位:
计算机科学与技术学院
题目:
基本模型机的设计——不带进位的与或运算指令的实现
初始条件:
理论:
学完“电工电子学”、“数字逻辑”、“汇编语言程序设计”、和“计算机组成原理”课程,掌握计算机组成原理实验平台的使用。
实践:
计算机学院科学系实验中心提供计算机、实验的软件、硬件平台,在实验中心硬件平台验证设计结果。
要求完成的主要任务:
(包括课程设计工作量及其技术要求,以及说明书撰写等具体要求)
1、基本模型机系统分析与设计,利用所学的计算机组成原理课程中的知识和提供的实验平台完成设计任务,从而建立清晰完整的整机概念。
2、根据课程设计题目的要求,编制实验所需的程序,上机测试并分析所设计的程序。
3、课程设计的书写报告应包括:
(1)课程设计的题目。
(2)设计的目的及设计原理。
(3)根据设计要求给出模型机的逻辑框图。
(4)设计指令系统,并分析指令格式。
(5)设计微程序及其实现的方法(包括微指令格式的设计,后续微地址的产生方法以及微程序入口地址的形成)。
(6)模型机当中时序的设计安排。
(7)设计指令执行流程。
(8)给出编制的源程序,写出程序的指令代码及微程序。
(9)说明在使用软件HKCPT的联机方式与脱机方式的实现过程(包括编制程序中与或运算指令的时序分析,累加器A和有关寄存器、存储器的数据变化以及数据流程)。
(10)课程设计总结(设计的特点、不足、收获与体会)。
时间安排:
周一:
熟悉相关资料。
周二:
系统分析,设计程序。
周三、四:
编程并上实验平台调试周五:
撰写课程设计报告。
指导教师签名:
年月日
系主任(或责任教师)签名:
年月日
课程设计报告书
1.题目
基本模型机的设计——不带进位与或运算指令的实现
2.设计的目的及设计原理
2.1设计的目的及阶段
2.1.1设计的目的
掌握简单运算器的数据传输方式、了解通用寄存器的组成和硬件电路、利用通用寄存器实现数据的置数等功能、进一步熟悉存储器和总线的硬件电路、掌握微程序控制器的原理、掌握微程序编制、写入并观察运行状态等。
掌握了各个单元模块的工作原理,进一步将其组成完整的系统,构成1台基本的模型机。
在本设计中,我们将规划读写内存、寄存器、逻辑运算等功能,并且编写相应的微程序。
通过使用软件HKCPT,了解程序编译、加载的过程,通过微单步、单拍调试,理解模型机中的数据流向。
本次设计的源程序解决的问题是:
求解“表达式((((4F∧30)+23)∨22)-09)∧25(十六进制)”的值,并将其结果送入单元号为30H的内存单元。
2.1.2分析阶段
通过对计算机的基本组成、部件的设计、部件间的连接、微程序控制器的设计、微指令和微程序的编制与调试等过程,试着编写连续几个数的不带进位的与或运算。
2.1.3设计阶段
通过对微指令格式了解和掌握,把分析阶段的连续的几个数的不带进位的与或运算转为成程序。
2.1.4验证阶段
验证设计阶段的程序代码结果和实际的结果是否一致来判断整个过程的正确性。
2.2设计的原理
计算机中CPU是核心,它是通过指令和微指令的执行来工作的。
指令是计算机要完成的某一项功能。
它对应到执行的过程中是一段微程序。
一段微程序含多条为指令,而一条微指令又含多个微命令。
一个微命令驱动某个硬件部件执行某种操作。
通过这样一个关系,从而达到由计算机指令来驱动计算机各个硬部件的协调工作以实现一条指令的执行。
在各个模块中,各模块的控制的控制信号都是手动模拟产生的。
而在真正的实验系统中,模型机的运行是在微程序的控制下,实现特定指令的功能。
在本实验平台中,模型机从内存中取出、解释、执行机器指令都将由微指令和之相配合的时序来完成,即一条机器指令对应一个微程序。
3模型机的逻辑框图
其中运算器由2片74L181构成8位字长的ALU单元。
2片74LS374作为2个数据锁存器(DR1、DR2),8芯插座ALU-IN作为数据输入端,可通过短8芯扁平电缆,把数据输入端连接到数据总线上。
数据输入锁存器DR1的EDR1为低电平,并且D1CK有上升沿时,那来自数据总线的数据打入锁存器DR1。
同样使EDR2为低电平、D2CK有上升沿时把数据总线上的数据打入数据锁存器DR2。
4设计指令系统及分析其指令格式
4.1设计指令系统
此次实验涉及的指令有以下几种:
MOVA,#data将立即数传递到将累加器A中;
ORLA,#data将累加器A和立即数相或,结果送入累加器A中;
MOVRI,#data将立即数传递到寄存器RI中;
SUBA,RI将累加器A中的内容减去寄存器RI中的内容,结果送入累加器A;
ADDA,RI将累加器A中的内容加上寄存器RI中的内容,结果送入累加器A;
ANLA,#data将累加器A和立即数相与,结果送入累加器A中;
STAaddr将寄存器中内容写入存储器中;
HALT停机指令;
指令系统如下表:
指令助记符
指令功能
指令编码
微周期
微操作
取指指令
T0
PC->地址总线->RAM
RAM->数据总线->IR1
ADDA,R0
ADDA,R1
ADDA,R2
ADDA,R3
(A+RI)→A
0C
0D
0E
0F
T0
T1
T2
T3
A→DBUS→DR1
RI→DBUS→DR2
ALU→DBUS→A、置CY
取指微指令
SUBA,R0
SUBA,R1
SUBA,R2
SUBA,R3
(A-RI)→A
1C
1D
1E
1F
T0
T1
T2
T3
A→DBUS→DR1
RI→DBUS→DR2
ALU→DBUS→A、置CY
取指微指令
MOVA,#data
Data→A
5F
T0
T1
RAM→DBUS→A
取指指令
MOVR0,#data
MOVR1,#data
MOVR2,#data
MOVR3,#data
Data→RI
6C
6D
6E
6F
T0
T1
RAM→DBUS→A
取指指令
ORLA,#data
(A)或data→A
CF
T0
T1
T2
T3
A→DBUS→DR1
RAM→DBUS→DR2
ALU→DBUS→A
取指指令
ANLA,#data
(A)或data→A
DF
T0
T1
T2
T3
A→DBUS→DR1
RAM→DBUS→DR2
ALU→DBUS→A
取指微指令
STAaddr
(A)→addr
8F
T0
T1
T2
RAM→DBUS→IR2
IR2→地址总线,
A→RAM
取指微指令
HALT
停机
FF
T0
停机
4.2分析指令格式
一般指令由操作码和操作码组成,如下所示:
操作码
地址码
此实验所涉及指令的格式如下:
MOV指令采用双字节指令,其格式如下:
7654
32
10
操作码
××
Ri
Data
MOV指令采用单字节指令,其格式如下:
7654
32
10
操作码
A
data
MOV指令采用单字节指令,其格式如下:
7654
32
10
操作码
Ri
data
ADD指令采用双操作数指令,其格式如下:
7654
32
10
操作码
A
RI
SUB指令采用双操作数指令,其格式如下:
7654
32
10
操作码
A
RI
ORL逻辑或指令采用单字节指令,其格式如下:
7654
32
10
操作码
A
data
ANL逻辑与指令采用单字节指令,其格式如下:
7654
32
10
操作码
A
data
STA取数据指令,其格式如下:
7654
32
10
操作码
××××
data
addr
停机指令(HALT),其格式如下:
7654
32
10
操作码
××××
4.3操作数寻址方式及编码
4.3.1直接地址寻址
如:
双字节指令
LDAaddr(addr)->A
STAaddr(A)->addr
第1字节第2字节
I7
I6
I5
I4
I3
I2
I1
I0
A7
A6
A5
A4
A3
A2
A1
操作码操作数地址addr
4.3.2寄存器直接寻址
指令字节中含有寄存器选择码,决定选哪个寄存器进行操作。
如:
单字节指令
MOVA,RI(RI)->A
单字节
I7
I6
I5
I4
I3
I2
I1
I0
操作码与RI选择码
如:
双字节指令
MOVRI,#datadata->RI
第1字节第2字节
I7
I6
I5
I4
I3
I2
I1
I0
A7
A6
A5
A4
A3
A2
A1
操作码及RI选择码data
4.3.3寄存器间接寻址
如:
单字节指令:
MOVA,@RI(RI)->A
RI选择码
I7
I6
I5
I4
I3
I2
I1
I0
操作码
4.3.4立即数寻址
如:
MOVA,#datadata-A
MOVRI,datadata->RI
第1字节第2字节
I7
I6
I5
I4
I3
I2
I1
I0
A7
A6
A5
A4
A3
A2
A1
操作码及RI选择码data
5微程序的设计及微程序实现的方法
5.1微指令格式的设计
一条微指令的一般格式是如下图:
……………………
判别测试
下地址
操作控制
顺序控制
5.2后续微地址的产生方法
由于本系统中指令系统规模不大,功能较简单,微指令采用全水平、不编码的方式,每一个微操作控制信号由一位微代码来表示,24位微代码至少可表示24个不同的微操作控制信号。
用增量方式来控制微代码的运行顺序,每一条指令的微程序连续存放在微指令存储器连续的单元中。
在本系统内,MLD为置微地址的控制信号,MCK为工作脉冲。
当MLD=0、MCK有上沿时,把MD0~MD7的值作为微程序的地址,打入微地址寄存器。
当MLD=1、MCK有上升沿时,微地址计数器自动加1。
5.3微程序入口地址的形成
在本实验平台的硬件设计是采用的24位微指令,若微指令采用全水平不编码纯控制场的格式,那么至多可有24个微操作控制信号,可由微代码直接实现。
若采用多组编码译码,那么24位的微代码通过二进制译码可实现2n个互斥的微操作控制信号。
由于模型机指令系统规模较小,功能也不太复杂,所以采用全水平不编码纯控制场的微指令格式。
在模型机中,用指令操作码的高4位作为核心扩展成8位的微程序入口地址MD0-MD7。
这种方法称为“按操作码散转”(如下表所示)。
微程序首地址形成
MD7
MD6
MD5
MD4
MD3
MD2
MD1
MD0
0
0
17
16
15
14
1
1
按操作码散转
指令操作码
微程序首地址
MD7、MD6
I7
I6
I5
I4
MD1、MD0
MD7~MD0
0
0
0
0
0
1
003H
0
0
0
0
1
1
007H
0
0
0
1
0
1
00BH
0
0
0
1
1
1
00FH
0
0
1
0
0
1
013H
0
0
1
0
1
1
017H
0
0
1
1
0
1
01BH
0
0
1
1
1
1
01FH
0
1
0
0
0
1
023H
0
1
0
0
1
1
027H
0
1
0
1
0
1
02BH
0
1
0
1
1
1
02FH
0
1
1
0
0
1
033H
0
1
1
0
1
1
037H
0
1
1
1
0
1
03BH
0
1
1
1
1
1
03FH
每条指令由不超过4条的微指令组成,那么可根据下表组成每条微程序的首地址。
微指令的运行顺序位下地址确定法,即采用计数增量方法,每条微指令执行过后微地址自动加1,指向下一条微指令地址。
例如:
确定了一条程序的微程序入口地址为07H,那么执行完07H这条微指令后微地址加1,指向08H微地址。
微地址寄存器由2片74LS161组成,当模型机在停止状态下,微地址被清零。
当实验平台开始运行时,微地址从00H开始运行。
且00H放置一条取指指令,根据程序开始地址从内存中读出第一条指令。
00
取指微指令
01
02
03
减法指令微程序
(1)
04
减法指令微程序
(2)
05
06
07
MOV指令微程序
(1)
08
MOV指令微程序
(2)
09
MOV指令微程序(3)
....
......
此次实验程序中的微程序指令如下表:
指令助记符
微地址有效值
微指令十六进制编码
MOVA,#data
17H
18H
19H
1AH
DDFBFF
4DFFFF
ORLA,#data
33H
34H
35H
36H
FFFCFE
DDFF7E
FFFBBE
4DFFFF
MOVRI,#data
1BH
1CH
1DH
1EH
DDBFFF
4DFFFF
ADDA,RI
03H
04H
05H
06H
FFFCF9
FE7F79
FFFBA9
4DFFFF
SUBA,RI
07H
08H
09H
0AH
FFFCD6
FE7F56
FFFB86
4DFFFF
ANLA,#data
37H
38H
39H
3AH
FFFCFB
DDFF7B
FFFBBB
4DFFFF
STAaddr
23H
24H
25H
26H
D5FFFF
BBFDFF
4DFFFF
HALT
3FH
FFDFFF
6模型机当中时序的设计安排
由于模型机已经确定了指令系统,微指令采用全水平不编码纯控制场的格式,微程序的入口地址采用操作码散转方式,微地址采用计数增量方式,所以可确定模型机中时序单元中所产生的每一拍的作用。
本实验中为了更好地观察实验的各个中间过程中各寄存器的值,由监控单元产生一个PLS-O的信号来控制时序产生。
PLS-O信号经过时序单元的处理产生了4个脉冲信号。
4个脉冲信号组成一个微周期,为不同的寄存器提供工作脉冲。
PLS1:
微地址寄存器的工作脉冲,用来设置微程序的首地址及微地址加1。
PLS2:
PC计数器的工作脉冲,根据微指令的控制实现PC计数器加1和重置PC计数器(如跳转指令)等功能。
PLS3:
把24位微指令打入3片微指令锁存器
PLS4:
把当前总线上的数据打入微指令选通的寄存器
7设计指令执行流程
在每个系统中,一条指令从内存取出到执行完毕,需要若干个机器周期,任何指令中都必须有一个机器周期作为“取指令周期”,称为公操作周期。
而一条指令共需几个机器周期取决于指令在机器内实现的复杂程度。
对于微程序控制的计算机,在设计指令执行流程时,要保证每条微指令所含的微操作的必要性和合理性,还应知道总线的IAB,IDB,OAB,ODB仅是传输信息的通路,没有寄存信息的功能,而且必须保证总线传输信息时信息的唯一性。
以下描述取微指令执行周期:
在模型机处于停机状态时,模型机的微地址寄存器被清零,微指令锁存器输出无效。
在处于停机状态时,脉冲PLS1对微地址寄存器(74LS161)无效,微地址寄存器保持为零。
脉冲PLS2对PC计数器无效,同时PLS2把HALT=1打入启停单元中的运行状态寄存器(74LS74)中,把模型机置为运行状态,使微程序锁存器输出有效。
PLS3把微程序储存器00H单元中的内容打入指令寄存器中。
在模型机处于运行状态时,脉冲PLS1将微地址寄存器(74LS161)加一,脉冲PLS2将PC计数器加1,PLS3把微程序存储器中的微指令打入微指令锁存器并且输出。
PLS4把当前总线上的数据打入当前微指令所选通的寄存器。
对于此次实验每条指令的执行流程如下:
T0
T1
T2
T3
取指微指令
PC->地址总线->RAM
RAM->数据总线->IR1
—
—
—
MOVA,#data
RAM→数据总线→A
取指微指令
—
—
ORLA,#data
A→数据总线→DR1
RAM→数据总线→DR2
ALU→数据总线→A
取指微指令
MOVRI,#data
A→数据总线→RI
取指微指令
—
—
ADDA,RI
A→数据总线→DR1
RI→数据总线→DR2
ALU→数据总线→A
取指微指令
SUBA,RI
A→数据总线→DR1
RI→数据总线→DR2
ALU→数据总线→A
取指微指令
ANLA,#data
A→数据总线→DR1
RAM→数据总线→DR2
ALU→数据总线→A
取指微指令
STAaddr
RAM→数据总线→IR2
IR2→地址总线,A→RAM
取指微指令
—
HALT
停机
—
—
—
8源程序和程序的指令代码及微程序
8.1源程序
MOVA,#4F
ANLA,#30
MOVR0,#23
ADDA,R0
ORLA,#22
MOVR2,#09
SUBA,R2
ANLA,#25
STA30
HALT
该程序的功能是:
先将16进制数4F与30进行逻辑与运算,结果放入累加器A中;再将16进制数23送入寄存器R0中,然后将23和A中的数据进行算术加,结果放入累加器A中;然后将A中的数据与22进行逻辑或运算,结果放入累加器A中,再将16进制数09送入寄存器R2中,然后将09和A中的数据进行算术减,结果放入累加器A中;然后将A中的数据与25进行逻辑与运算,结果放入累加器A中;并且A的值放入内存单元30中。
8.2程序的指令代码
内存地址
指令助记符
指令码或立即数
说明
00H
MOVA,#4FH
5FH
立即数4FH->A
01H
4FH
02H
ANLA,#30H
DFH
A和30进行与运算->A
03H
30H
04H
MOVR0,#23H
05H
立即数23->R0
05H
23H
06H
ADDA,R0
06H
A+R0->A
07H
ORLA,#22H
07H
A和22H进行或运算->A
08H
MOVR2,#09H
08H
09H->R2
09H
09H
0AH
SUBA,R2
1EH
A-R2->A
0BH
ANLA,#25H
DFH
A和25与->A
0CH
STA30
8FH
将A写入RAM30H
0DH
30H
0EH
HALT
FFH
停机
最后结果是地址为30H中的结果是02H
8.3微程序
MOVA,#4F:
0000[4D],[FF],[FF]取指指令
0017[DD],[FB],[FF]Dbus→A
ANLA,#30:
0018[4D],[FF],[FF]取指指令
0037[FF],[FC],[FB]A→Dbus→DR1
0038[DD],[FF],[7B]RAM→Dbus→DR2
0039[FF],[FB],[BB]ALU→A
MOVR0,#23:
003A[4D],[FF],[FF]取指指令
001B[FF],[BD],[FF]A→Dbus→RI
ADDA,R0:
001C[4D],[FF],[FF]取指指令
0003[FF],[FC],[F9]A→Dbus→DR1
0004[FF],[7F],[79]RI→Dbus→A
0005[FF],[FB],[A9]ALU→Dbus→A
ORLA,#22:
0006[4D],[FF],[FF]取指指令
0033[FF],[FC],[FE]A→Dbus→DR1
0034[DD],[FF],[7E]RAM→Dbus→DR2
0035[FF],[7B],[FF]ALU→A
MOVR0,#23:
0036[4D],[FF],[FF]取指指令
001B[FF],[BD],[FF]A→Dbus→RI
SUBA,R0:
001C[4D],[FF],[FF]取指指令
001D[FF],[7B],[FF]A→Dbus→DR1
001E[FF],[7B],[FF]RI→Dbus→A
001F[FF],[7B],[FF]ALU→Dbus→A
ANLA,#42:
0020[4D],[FF],
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 计算机 组成 原理 带进 运算 指令 实现