计算机组成原理课程设计基本模型机的设计跳转指令的实现.docx
- 文档编号:7290455
- 上传时间:2023-01-22
- 格式:DOCX
- 页数:19
- 大小:129.61KB
计算机组成原理课程设计基本模型机的设计跳转指令的实现.docx
《计算机组成原理课程设计基本模型机的设计跳转指令的实现.docx》由会员分享,可在线阅读,更多相关《计算机组成原理课程设计基本模型机的设计跳转指令的实现.docx(19页珍藏版)》请在冰豆网上搜索。
计算机组成原理课程设计基本模型机的设计跳转指令的实现
学号:
课程设计
题目
基本模型机的设计—跳转指令的实现
学院
计算机科学与技术学院
专业
计算机科学与技术专业
班级
姓名
指导教师
年
月
日
课程设计任务书
学生姓名:
专业班级:
计算机科学与技术
指导教师:
工作单位:
计算机科学与技术学院
题目:
基本模型机的设计——跳转指令的实现
初始条件:
理论:
学完“电工电子学”、“数字逻辑”、“汇编语言程序设计”、和“计算机组成原理”课程,掌握计算机组成原理实验平台的使用。
实践:
计算机学院科学系实验中心提供计算机、实验的软件、硬件平台,在实验中心硬件平台验证设计结果。
要求完成的主要任务:
(包括课程设计工作量及其技术要求,以及说明书撰写等具体要求)
1、基本模型机系统分析与设计,利用所学的计算机组成原理课程中的知识和提供的实验平台完成设计任务,从而建立清晰完整的整机概念。
2、根据课程设计题目的要求,编制实验所需的程序,上机测试并分析所设计的程序。
3、课程设计的书写报告应包括:
(1)课程设计的题目。
(2)设计的目的及设计原理。
(3)根据设计要求给出模型机的逻辑框图。
(4)设计指令系统,并分析指令格式。
(5)设计微程序及其实现的方法(包括微指令格式的设计,后续微地址的产生方法以及微程序入口地址的形成)。
(6)模型机当中时序的设计安排。
(7)设计指令执行流程。
(8)给出编制的源程序,写出程序的指令代码及微程序。
(9)说明在使用软件HKCPT的联机方式与脱机方式的实现过程(包括编制程序中跳转指令的时序分析,累加器A和有关寄存器、存储器的数据变化以及数据流程)。
(10)课程设计总结(设计的特点、不足、收获与体会)。
时间安排:
周一:
熟悉相关资料。
周二:
系统分析,设计程序。
周三、四:
编程并上实验平台调试周五:
撰写课程设计报告。
指导教师签名:
年月日
系主任(或责任教师)签名:
年月日
1、课程设计的题目
基本模型机的设计——跳转指令的实现
2、设计的目的及设计原理。
2.1课程设计目的
此次课程设计的主要目的有:
在详细了解所发的资料内容后,根据书本的理论和之前的实践知识,掌握计算机组成原理实验平台的各个单元模块的工作的原理,并了解软件HKCPT的联机、使用方式,是学会规划读/写内存、寄存器、数值计算等功能,要会编写相应的微程序,并在软件HKCPT加以实现。
2.2课程设计原理
实验系统中模型机的运行是在微程序的控制下进行的,在实验平台中,模型机从内存中取出、解释、执行机器指令都将由微指令和与之相配合的时序来完成,即1条机器指令对应一个微程序。
这次实验将能在微程序控制下自动产生各部件单元的控制信号,实现特定指令的功能。
计算机数据通路的控制将由微程序控制器来完成,CPU从内存中取出一条机器指令到指令执行结束的一个指令周期全部由微指令组成的序列来完成,即一条机器指令对应一个微程序。
本实验采用五条机器指令:
SUB(减法)、ADD(二进制加法)、STA(存数)、MOV(赋值)、JMP(无条件转移)、JC、RRC(循环右移)。
3、根据设计要求给出模型机的逻辑框图
其中运算器由2片74L181构成8位字长的ALU单元。
2片74LS374作为2个数据锁存器(DR1、DR2),8芯插座ALU-IN作为数据输入端,可通过短8芯扁平电缆,把数据输入端连接到数据总线上。
数据输入锁存器DR1的EDR1为低电平,并且D1CK有上升沿时,那来自数据总线的数据打入锁存器DR1。
同样使EDR2为低电平、D2CK有上升沿时把数据总线上的数据打入数据锁存器DR2。
4、设计指令系统,并分析指令格式
4.1指令系统
此次实验涉及的指令有以下几种:
MOVR1,#Data将立即数Data送到寄存器A中
MOVR0,#Data将立即数Data送到寄存器RI中
MOVA,#Data将立即数Data送到寄存器A中
JMPAddr跳转到Addr处开始执行
JCAddr如果有进位(借位)跳转到Addr处开始执行
RLCA带进循环左移一位
AddA,R0将寄存器R0中的数据加到累加器A中
SubA,R1将累加器A中的数据减去寄存器R1中的数据
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->数据总线->DR1
Ri->数据总线->DR2
ALU->数据总线->A、置CY
取指微指令
MOVA,@R0
MOVA,@R1
MOVA,@R2
MOVA,@R3
(Ri)->A
2C
2D
2E
2F
T0:
T1:
T2:
Ri->数据总线->DR2
IR2->地址总线->RAM->A
取指微指令
MOVA,R0
MOVA,R1
MOVA,R2
MOVA,R3
(Ri)->A
3C
3D
3E
3F
T0:
T1:
Ri->数据总线->A
取指微指令
MOVR0,A
MOVR1,A
MOVR2,A
MOVR3,A
(A)->Ri
4C
4D
4E
4F
T0:
T1
A->数据总线->Ri
取指微指令
MOVA,#data
Data->A
5F
T0:
T1
RAM->数据总线->A
取指微指令
MOVR0,#data
MOVR1,#data
MOVR2,#data
MOVR3,#data
Data->A
6C
6D
6E
6F
T0:
T1
RAM->数据总线->A
取指微指令
STAaddr
(A)->addr
8F
T0:
T1:
T2:
RAM->数据总线->IR2
IR2->地址总线,A->RAM
取指微指令
RLCA
C、A左移一位
AF
T0:
T1
A<<1、置CY
取指微指令
RRCA
C、A右移一位
9F
T0:
T1
A>>1、置CY
取指微指令
JZaddr
A=0
Addr->PC
B3
T0:
T1
条件成立:
RAM->PC
取指微指令
JCaddr
Cy=0
Addr->PC
B7
T0:
T1
条件成立:
RAM->PC
取指微指令
JMPaddr
Addr->PC
BF
T0:
T1
RAM->PC
取指微指令
HALT
停机
FF
T0:
停机
4.2指令格式
一般指令由操作码和操作码组成,如下所示:
操作码
地址码
此实验所涉及指令的格式如下:
MOV指令采用双字节指令,其格式如下:
I7
I6
I5
I4
I3
I2
I1
I0
第1字节:
操作码及Ri
D7
D6
D5
D4
D3
D2
D1
D0
第2字节:
Data
JMP指令采用双字节指令,其格式如下:
I7
I6
I5
I4
I3
I2
I1
I0
第1字节:
操作码
A7
A6
A5
A4
A3
A2
A1
A0
第2字节:
Addr
JC指令采用双字节指令,其格式如下:
I7
I6
I5
I4
I3
I2
I1
I0
第1字节:
操作码
A7
A6
A5
A4
A3
A2
A1
A0
第2字节:
Addr
RLC指令采用单字节指令,其格式如下:
I7
I6
I5
I4
I3
I2
I1
I0
第1字节:
操作码
ADD指令采用单字节指令,其格式如下:
I7
I6
I5
I4
I3
I2
I1
I0
第1字节:
操作码
SUB指令采用单字节指令,其格式如下:
I7
I6
I5
I4
I3
I2
I1
I0
第1字节:
操作码及Ri
STA取数据指令,其格式如下:
I7
I6
I5
I4
I3
I2
I1
I0
第1字节:
操作码Data
A7
A6
A5
A4
A3
A2
A1
A0
第2字节:
Addr
停机指令(HALT),其格式如下:
I7
I6
I5
I4
I3
I2
I1
I0
第1字节:
操作码
5.指令源程序
MOVA,#825F82
RRCA9F
MOVA,#325F32
RLCAAF
MOVA,#185F18
RCLAAF
JZ08B308
ADDA,R00C
JC12B712
JMP0ABF0A
MOVR1,#426D42
ADDA,R10D
STA408F40
HALTFF
6.指令执行流程
对于此次实验每条指令的执行流程如下:
T0
T1
T2
T3
取指微指令
PC->地址总线->RAM
RAM->数据总线->IR1
—
—
—
ORLA,#data
A→数据总线→DR1
RAM→数据总线→DR2
ALU→数据总线→A
取指微指令
ANLA,#data
A→数据总线→DR1
RAM→数据总线→DR2
ALU→数据总线→A
取指微指令
MOVA,RI
RI→数据总线→A
取指微指令
—
—
MOVRI,A
A→数据总线→RI
取指微指令
—
—
MOVA,#data
RAM→数据总线→A
取指微指令
—
—
STAaddr
RAM→数据总线→IR2
IR2→地址总线,A→RAM
取指微指令
—
HALT
停机
—
—
—
7.设计微程序及其实现的方法(包括微指令格式的设计,后续微地址的产生方法以及微程序入口地址的形成)
7.1微程序入口地址的形成
在本实验平台的硬件设计中,采用24位微指令,若微指令采用全水平不编码纯控制场的格式,那么至少有24个微操作控制信号,可由微代码直接实现。
如果采用多组编码译码,那么24位微代码通过二进制可实现2n个互斥微操作控制信号。
按操作码散转
指令操作码
微程序首地址
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条的微指令组成,那么可根据下表组成每条微程序的首地址。
微程序首地址形成
MD7
MD6
MD5
MD4
MD3
MD2
MD1
MD0
0
0
17
16
15
14
1
1
7.2后续微地址的产生方法
微指令的运行顺序为下地址确定法,即采用计数增量方法,每条微指令执行过后微地址自动加1,指向下一条微指令地址。
例如,确定了一条程序的微程序入口地址微07H,那么当执行完07H这条微指令后微地址加1,指向08H微地址。
微地址寄存器由2片74LS161组成。
在模型机停止状态下,微地址被清零。
在实验平台开始运行时,微地址从00H开始运行。
且00H放置一条取指指令,根据程序开始地址从内存中读出第一条指令。
8.通过键盘输入微程序及一下程序:
内存地址
指令助记符
指令码
说明
00H
MOVA,#81
5F
从内存去取指令,把立即数81HA
01H
81H
02H
RRCA
9F
将A寄存器的内容带进位位一起循环右移
40H
最后结果为40H
03H
MOVA,#18
5F
从内存去取指令,把立即数18HA
04H
18H
05H
MOVR0,#40
6CH
立即数40H送入寄存器R0
06H
40H
07H
MOVR1,#04
6DH
把立即数04H送入寄存器人R1
08H
04H
09H
ADDA,R0
0CH
从内存中取指令,A中18H放入DR1中
R0中的40H放入DR2,执行两数相加放入A中
0AH
ADDA,R1
0DH
从内存中取指令,A中的58H放入DR1中
R1中的04H放入DR2,执行两数相加放入A中
0BH
JC10
B7H
CY有进位跳转到0FH
0CH
10H
转到内存地址为10H中
0DH
MOVR2,#33
6EH
从内存中取指令,执行赋值指令,把立即数33H放入寄存器中
0EH
33H
0FH
SUBA,R2
1EH
从内存中取减法指令,ADR1,R2DR2
执行两数相减,把结果放入A中
10H
JMP15
BFH
取跳转指令跳转到15H
11H
15H
RAMIR2=15H,取地址为15H的指令
12H
HALT
FFH
停机
8.1微单步运行过程如下:
微地址
数据流程
数据总线
地址总线
操作寄存器
00H
取指微指令RAMBUSIR1
5FH
OOH
IR1=5F
MOV
A,#81
17H
BUSA
81H
01H
A=81H
18H
取指令RAMBUSIR1
9FH
02H
IR1=9FH
RRC
A
27H
A>>1
40H
无效
A=40,CY溢出
28H
取指令RAMBUSIR1
5FH
03H
IR1=5FH
MOV
A,#18
17H
BUSA
18H
04H
A=18H
2CH
取指令RAMBUSIR1
6CH
05H
IR1=6CH
MOV
R0,#40
1BH
BUS寄存器R0
40H
06H
R0=40H
1CH
取指令RAMBUSIR1
6DH
07H
IR1=6DH
MOV
R1,#04
1BH
BUS寄存器R1
04H
08H
R1=04H
1CH
取指令RAMBUSIR1
0CH
09H
IR1=0CH
ADD
A,R0
03H
A锁存器DR1
18H
无效
DR1=18H
04H
寄存器R0锁存器DR2
40H
无效
DR2=40H
05H
ALUA
58H
无效
ALU=58H
06H
取指令RAMBUSIR1
0DH
0AH
IR1=0DH
ADD
A,R1
03H
A锁存器DR1
无效
DR1=58H
04H
寄存器R0锁存器DR2
无效
DR2=04H
05H
ALUA
无效
ALU=5CH
06H
取指令RAMBUSIR1
B7H
0BH
IR1=B7H
JC
10
2FH
RAMBUSIR2
10H
0CH
IR2=10H
30H
取指令RAMBUSIR1
6EH
0DH
IR1=6EH
MOV
R2,#33
1BH
BUS寄存器R2
33H
0EH
R2=33H
1CH
取指令RAMBUSIR1
1EH
0FH
IR1=1EH
SUB
A,R2
07H
A锁存器DR1
无效
DR1=5CH
08H
寄存器R2锁存器DR2
无效
DR2=33H
09H
ALUA
无效
ALU=33H
0AH
取指令RAMBUSIR1
BFH
10H
IR1=BFH
JMP
15
2FH
RAMBUSIR2
15H
11H
IR2=15H
30H
取指令RAMBUSIR1
FFH
12H
IR1=FFH
HALT
3FH
置模型机为停止状态
无效
无效
置停止状态
9.使用软件HKCPT的联机方式的实现过程
9.1主要指令的时序图
由于模型机已经确定了指令系统,微指令采用全水平不编码纯控制场的格式,微程序的入口地址采用操作码散转方式,微地址采用计数增量方式,所以可确定模型机中时序单元中所产生的每一拍的作用。
为了更好地观察实验的各个中间过程中各寄存器的值,由监控单元产生一个PLS-O的信号来控制时序产生。
PLS-O信号经过时序单元的处理产生了4个脉冲信号。
4个脉冲信号组成一个微周期,为不同的寄存器提供工作脉冲。
PLS1微地址寄存器的工作脉冲,用来设置微程序的首地址及微地址加1。
PLS2PC计数器的工作脉冲,根据位置的控制实现PC计数器加1和重置PC计数器(跳转指令)等功能。
PLS3把24位微指令打入微指令锁存器。
PLS4把当前总线上的数据打入微指令选通的寄存器中。
9.2时序变化
9.2.1时序变化图
1)初始状态的时序图
2)执行JZ时的时序图
3)执行JC时的时序
4)执行JMP时的时序图
10.课程设计总结(设计的特点、不足、心得体会)
此次课程设计运用到的不仅仅是计算机组成原理里面学到的知识,更综合运用到我们学过的一些其它课程的内容,这是一次综合性的课程设计项目,更需要我们有较高的动手能力。
代码设计也是很重要的一项内容,有很多内容不仅仅是书上的,需要我们采纳相关书籍的内容不断学习,提高自己的代码设计水平。
课程设计是培养学生综合运用所学知识、发现、提出、分析和解决实际问题,锻炼实践能力的重要方式。
当今计算机应用在生活中可以说得是无处不在,因此作为当今大学生,更要树立学习广泛知识和深入的计算机知识的想法,要对计算机各部件在功能上的独立功能有了较深入的了解以及对计算机的整体运行情况和计算机系统各部分之间的配合和硬件设施也都有了一定的认识。
此次课程设计,感慨颇多,从拿到题目,对这个题目还不怎么熟悉,很多环节也不能掌握的很好,整个想法也是一片空白。
到完成整个试验,从理论到实践,在短时间里可以学到很多很多的的东西,同时不仅可以巩固了以前所学过的知识,而且学到了很多在书本上所没有学到过的知识。
通过这次课程设计使我懂得了理论与实际相结合是很重要的,只有理论知识是远远不够的,只有把所学的理论知识与实践相结合起来,从理论中得出结论,才能真正为社会服务,从而提高自己的实际动手能力和独立思考的能力。
在这短短的时间里,自己收获很多,虽然最终完成了试验,但是在试验中还存在很多的缺点和不足。
此次实验让我学到了更多不属于课本上的知识,锻炼了能力,最重要的是提高了自我认识。
知道了自己这点仅有的能力是不够面对现实的社会的,在今后的学习中,我会更努力学习,提高自己的能力。
本科生课程设计成绩评定表
班级:
计算机0901班 姓名:
张涵 学号:
0120910340130
序号
评分项目
满分
实得分
1
学习态度认真、遵守纪律
10
2
设计分析合理性
10
3
设计方案正确性、可行性、创造性
20
4
设计结果正确性
40
5
设计报告的规范性
10
6
设计验收
10
总得分/等级
评语:
注:
最终成绩以五级分制记。
优(90-100分)、良(80-89分)、中(70-79分)、
及格(60-69分)、60分以下为不及格
指导教师签名:
20年 月 日
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 计算机 组成 原理 课程设计 基本 模型 设计 跳转 指令 实现
![提示](https://static.bdocx.com/images/bang_tan.gif)