计算机组成原理课程设计.docx
- 文档编号:13779607
- 上传时间:2023-06-17
- 格式:DOCX
- 页数:17
- 大小:194.08KB
计算机组成原理课程设计.docx
《计算机组成原理课程设计.docx》由会员分享,可在线阅读,更多相关《计算机组成原理课程设计.docx(17页珍藏版)》请在冰点文库上搜索。
计算机组成原理课程设计
附件一
湖南工业大学
课程设计
资料袋
计算机与通信学院(系、部)2015~2016学年第2学期
课程名称计算机组成原理指导教师杨伟丰职称教授
学生姓名顾宏亮专业班级软件1403学号14408300328
题目复杂模型机的设计
成绩起止日期2016年6月20日~2016年6月21日
目录清单
序号
材料名称
资料数量
备注
1
课程设计任务书
1
2
课程设计说明书
1
3
张
4
5
6
附件二湖南工业大学
课程设计任务书
2015—2016学年第2学期
计通学院(系、部)软件专业1403班级
课程名称:
计算机组成原理
设计题目:
复杂模型机的设计
完成期限:
自2016年6月20日至2016年6月21日共1周
内
容
及
任
务
1.根据复杂模型机的指令系统,编写实验程序
2.按图连接实验线路,仔细检查线路无误后接通电源。
3.写程序
4.运行程序
进
度
安
排
起止日期
工作内容
2016.6.20-2016.6.21
连接线路进行实验
主
要
参
考
资
料
唐朔飞.计算机组成原理.北京:
高等教育出版社
指导教师(签字):
年月日
系(教研室)主任(签字):
年月日
附件三
设计说明书
计算机组成原理
复杂模型机的设计
起止日期:
2016年6月20日至2016年6月21日
学生姓名
顾宏亮
班级
软件1403
学号
14408300328
成绩
指导教师(签字)
计算机与通信学院(部)
2016年7月1日
设计题目:
复杂模型机的设计
一、设计目的
综合运用所学计算机原理知识,设计并实现较为完整的模型计算机。
二、设计内容
根据复杂模型机的指令系统,编写实验程序,并运行程序,观察和记录运行结果。
三、预备知识
1、数据格式
模型机规定采用定点补码表示法表示数据,且字长为8位,其格式如下:
数据位数
D7
D6D5D4D3D2D1D0
用途
符号
尾数
其中第7位为符号位,数值表示范围是:
-1≤X<1。
2、指令格式
模型机设计四大类指令共十六条,其中包括算术逻辑指令、I/O指令、访问存储器、转移指令和停机指令。
(1)算术逻辑指令
设计9条算术逻辑指令并用单字节表示,寻址方式采用寄存器直接寻址,其格式如下:
数据位数
D7D6D5D4
D3D2
D1D0
用途
操作码(OP-CODE)
源寄存器(RS)
目的寄存器(RD)
规定:
选中的寄存器(RS或RD)
R0
R1
R2
寄存器的编码
00
01
10
算术逻辑指令的名称、功能和具体格式见表2—3。
(2)访存指令及转移指令
模型机设计2条访存指令,即存数(STA)、取数(LD),2条转移指令,即无条件转移(JMP)、结果为零或有进位转移指令(BZC),指令格式为:
数据位数
D7D6
D5D4
D3D2
D1D0
D7……D0
用途
00
寻址模式M
操作码OP-CODE
目的寄存器编码RD
位移量D
其中,OP-CODE为操作码,rd为目的寄存器地址(LD、STA指令使用)。
D为位移量(正负均可),M为寻址模式,其定义如下:
寻址模式M
有效地址E
说明
00
D
直接寻址
01
(D)
间接寻址
10
(RI)+D
RI变址寻址
11
(PC)+D
相对寻址
本模型机规定变址寄存器RI指定为寄存器R2。
(3)I/O指令
输入(IN)和输出(OUT)指令采用单字节指令,其格式如下:
数据位数
D7D6D5D4
D3D2
D1D0
用途
操作码(OP-CODE)
地址(addr)
目的寄存器(RD)
其中,在IN指令中,addr=01,选中“INPUT”中的开关组作为输入设备,在OUT指令中,addr=10时,表示选中“OUTPUTUNIT”中的数码块作为输出设备。
(4)停机指令
指令格式如下:
数据位数
D7D6D5D4
D3D2
D1D0
值
0110
00
00
HALT指令,机器码为60H,用于实现停机操作。
3、指令系统
复杂模型机共有16条基本指令,其中算术逻辑指令7条,访问内存指令和程序控制指令4条,输入输出指令2条,其它指令1条。
表2-3列出了各条指令的格式、汇编符号、指令功能。
表2-3复杂模型机指令系统
助记符
指令格式
指令长度(字节数)
指令功能
第一字节
第二字节
CLRrd
011100rd
无
1
0→RD
MOVrs,rd
1000rsrd
无
1
RS→RD
ADCrs,rd
1001rsrd
无
1
RS+RD+cy→RD
SBCrs,rd
1010rsrd
无
1
RS-RD-cy→RD
INCrd
1011××rd
无
1
RD+1→RD
ANDrs,rd
1100rsrd
无
1
RS^RD→RD
COMrd
1101××rd
无
1
→RD
RRCrs,rd
1110rsrd
无
1
RS带进位循环右移一位,然后RS→RD
RLCrs,rd
1111rsrd
无
1
RS带进位循环左移一位,然后rs→RD
LADM,D,rd
00M00rd
D
2
有效数据E→RD
STAM,D,rd
00M01rd
D
2
RD→有效地址E
JMPM,D
00M1000
D
2
有效数据E→PC
BZCM,D
00M11rd
D
2
当CY=1或ZI=1时,有效数据E→PC
INrd
010001rd
无
1
INPUT设备的数据→RD
OUTrd
010110rd
无
1
RD→OUTPUTUNIT
HALT
01100000
无
1
停机
四、设计环境
1、ZY15Comp12BB计算机组成原理教学实验系统一台
2、排线若干
3、PC机一台
五、设计原理
复杂模型机的数据通路框图如图1。
根据机器指令系统要求,设计微程序流程图及确定微地址。
图1复杂模型机数据通路框图
按照系统建议的微指令格式,参照微指令流程图,将每条微指令代码化,译成二进制代码表,并将二进制代码表转换为联机操作时的十六进制格式文件。
微程序
24
23
22
21
20
19
18
17
16
15
14
13
12
11
10
9
8
7
6
5
4
3
2
1
控制信号
S3
S2
S1
S0
M
CN
RD
M17
M16
A
B
P
uA5
uA4
uA3
uA2
uA1
uA0
A字段
B字段
P字段
15
14
13
控制信号
12
11
10
控制信号
9
8
7
控制信号
0
0
0
0
0
0
0
0
0
0
0
1
LDRI
0
0
1
RS_G
0
0
1
P1
0
1
0
LDDR1
0
1
0
RD_G
0
1
0
P2
0
1
1
LDDR2
0
1
1
RI_G
0
1
1
P3
1
0
0
LDIR
1
0
0
299_G
1
0
0
P4
1
0
1
LOAD
1
0
1
ALU_G
1
0
1
AR
1
1
0
LDAR
1
1
0
PC_G
1
1
0
LDPC
六、设计步骤
1、根据复杂模型机的指令系统,编写实验程序。
实验例程如下:
本实验完全使用寄存器操作。
程序首先从数据输入开关采集数据放入R0中,经循环左移两次放入R1中。
然后再次从数据输入开关采集数据放入R0中,经循环右移一次与R1中的数据相加,其结果送到R1中,然后判断加法的结果是否有进位或为全零,若是就循环运行,否则,输出结果到数码管上显示。
实验的机器指令程序如下:
地址内容助记符说明
0044INR0;INPUT数据R0,第一次采集数据(设输入数据为14H)
01F0RLCR0,R0;R0带进位左循环移位一次
02F1RLCR0,R1;第二次左移后保存到R1中
0344INR0;输入开关数据R0,第二次采集数据(设输入数据仍为14H)
04E0RRCR0,R0;R0带进位右循环移位一次
0591ADCR0,R1;两数据相加
060CBZC00;若有进位或结果为零,则跳到00地址单元
0700
0859OUTR1;R1OUTPUTUNIT显示;
0960HALT;停机
以上程序的机器指令如下:
$P0044$P01F0$P02F1
$P0344$P04E0$P0591
$P060C$P0700$P0859
$P0960
微程序
$M00018108$M0101ED82$M0200C050
$M0300A004$M0400E0A0$M0500E006
$M0600A007$M0700E0A0$M0801ED8A
$M0901ED8C$M0A00A03B$M0B018001
$M0C00203C$M0D00A00E$M0E01B60F
$M0F95EA25$M1001ED83$M1101ED85
$M1201ED8D$M1301EDA6$M14001001
$M15030401$M16018016$M173D9A01
$M18019201$M1901A22A$M1A01B22C
$M1B01A232$M1C01A233$M1D01A236
$M1E318237$M1F318239$M20009001
$M21028401$M2205DB81$M230180E4
$M24018001$M2595AAA0$M2600A027
$M2701BC28$M2895EA29$M2995AAA0
$M2A01B42B$M2B959B41$M2C01A42D
$M2D05AB6E$M2E0DAA2F$M2F01AA30
$M300D8171$M31959B41$M32019A01
$M3301B435$M3405DB81$M35B99B41
$M360D9A01$M37298838$M38019801
$M3919883A$M3A019801$M3B070A08
$M3C068A09
2、按图2-9连接实验线路,仔细检查线路无误后接通电源。
(图中箭头表示需要接线的地方,接总线和控制信号时要注意高低位一一对应,可用彩排线的颜色来进行区分)
图2-9复杂模型机实验
3、写程序
对于本实验箱可以用两种方法来写入程序。
方法一:
联机读/写程序
按照规定格式,将机器指令及微指令编辑成十六进制的规定格式文件,已经在前面列出。
使用联机软件的文件装载将实验程序和微程序下载到实验箱中,并用软件的读出功能进行检查。
本实验参考程序对应的文件名为“复杂模型机.TXT”(联机软件的使用方法参看附录2)。
方法二:
手动写入
(1)先将机器指令对应的微代码正确地写入28C16中,可以参照实验1.7微程序控制器的组成与微程序设计实验中微代码的写入方法,将本实验对应的微代码写入E2PR0M芯片中,对照前面的微程序内容校验正确后就可使用。
(2)使用控制台WRITE和READ微程序进行机器指令程序的手动装入和检查,其操作如下:
A、使SIGNALUNIT单元的SP03为“STEP”状态,SP04为“RUN”状态,CONTROLUNIT的开关SP05处于“NORM”状态,开关SP06处于“RUN”状态。
B、拨动SWITCH单元的总清开关CLR(101),微地址寄存器清零,程序计数器清零。
然后使SWITCH单元的SWB、SWA开关设置为“01”,按动一次CONTROLUNIT的触动开关START,微地址显示灯显示“001001”,再按动一次START,微地址灯显示“001100”,此时数据开关的内容置为要写入的机器指令,按动两次START键后,即完成该条指令的写入。
若仔细阅读WRITE的流程,就不难发现,机器指令的首地址总清后为零,以后每个循环PC会自动加1。
所以,每次按动START,只有在微地址灯显示“001100”时,才设置内容,直到所有机器指令写完。
C、校验。
拨动SWITCH单元的总清开关CLR(101),微地址清零。
PC程序计数器清零,然后使SWITCH单元的开关SWB、SWA为“00”,按动CONTROLUNIT的触动开关START,微地址灯将显示“001000”,再按START,微地址灯显示为“001010”,第三次按START,微地址灯显示为“111011”,再按START后,此时OUTPUT单元的数码管显示为该首地址中的内容。
不断按动START,以后每个循环PC会自动加1,可检查后续单元内容。
每次在微地址灯显示为“001000”时,是将当前地址中的机器指令写入到输出设备中显示。
4、运行程序
方法一:
联机运行程序
首先使各个开关的状态为:
SIGNALUNIT中的SP03开关设置为“STEP”状态。
SP04开关设置为“RUN”状态;CONTROLUNIT的开关SP05处于“NORM”状态,SP06处于“RUN”状态;SWITCH单元的开关SWB、SWA为“11”。
使SWITCH单元的总清开关CLR(101)清零后,程序首址为00H。
通过联机软件进入调试界面(其操作方法参见附录2系统联机操作软件说明),可以通过调试程序的操作界面控制程序的运行,同时观察运行过程和结果。
方法二:
手动运行程序
(1)单步运行程序
A、使CONTROLUNIT的开关SP05处于“NORM”状态,SP06处于“RUN”状态,SIGNALUNIT中的SP03为“STEP”状态,SP04为“RUN”状态,SWITCH单元的开关SWB、SWA为“11”。
B、拨动SWITCH单元的总清开关CLR(101),微地址清零,程序计数器清零,程序首址为00H。
C、单步运行微指令,每按动一次CONTROLUNIT的START触动开关,即单步运行一条微指令。
对照微程序流程图2-8,观察微地址显示灯MA5-MA0是否和流程一致。
D、当运行结束后,可检查运行结果是否和理论值一致。
如果运行结果保存在RAM的某一个单元中,则可以使用手动写入中的校验方法将其读出。
(2)连续运行程序
A、使CONTROLUNIT的开关SP05处于“NORM”状态,SP06处于“RUN”状态,SIGNALUNIT中的SP03为“RUN”状态,SP04为“RUN”状态,SWITCH单元的开关SWB、SWA为“11”。
B、拨动SWITCH单元的总清开关CLR(101),微地址及程序计数器清零,然后按动CONTROLUNIT的START触动开关,系统连续运行程序,稍后将SIGNALUNIT中的SP04拨至“STOP”时,系统停机。
C、停机后,可检查运行结果是否正确。
如果运行结果保存在RAM的某一个单元中,则可以使用手动写入中的校验方法将其读出。
7、实验总结,心得体会
经过这次课程设计我了解了很多知识,也学到了一些课本中没有的知识点,实践给我们带来了很多快乐,但是在这快乐中我们有着艰辛,在我们接完线的时候,去运行机器总是出错,我们一步一步的检查,到最后一遍又一遍的重新连线,到最后终于成功了,心里有着一般人没有的喜悦。
计算机设计与实践实验课程不仅仅是对理论的验证,重要的是技术训练和能力培养,包括动手能力、分析问题和解决问题的能力、书写能力和表达能力、团队协作能力等的培养也就是要注重学生的工程能力,培养学生完成项目实践的能力,同时,要培养学生交流的能力,能够很好地表达自己的设计思想,这也是工程实践中必不可少的。
因此,在整个课程中,指导教师多次与学生交流设计方案,让学生在与老师的交流中逐渐理解处理器的工作原理。
同时,培养学生书写报告的能力,很多学生只注重编程序,而不重视课程报告的撰写,这需要老师的引导和成绩比例分配的导向,让学生真正理解报告不仅是写给老师看的,更重要的是真正通过报告的形式提交自己的设计思想。
通过口头交流和文字的书写,引导学生明确设计思路,体会整机的设计思想,使“设计”真正成为完成该“项目”的第一步。
这次课程设计对于我个人有很大的收获,对于复杂模型计算机的设计有了一定的了解,意识到专业知识的重要性,要想学好一定要下狠功夫,没有付出,怎有回报,同时也体会到理论的知识的理解必须依靠实践是的有力结合,才能对学习的知识融会贯通,了解透彻,实践永远是检验真理的唯一标准,我希望在学习的过程能够多开展这样的有意义的课程设计,对于学生的知识的提高有很大的帮助,期待下一次这样课题的课程设计,我将一如既往热情地投入到学习的过程中,求知,求学,更好学好专业,优秀完成专业任务,丰富自己的专业知识,求得更快成长!
8、设计思考题
1、微程序控制器的设计步骤是什么?
(1)设计微程序
确定微程序流程图,也就是控制算法流程图。
(2)确定微指令格式
微指令格式中的操作控制字段取决于执行部件的子系统需要多少微指令。
假定采用直接控制方式,执行部件需要15个微命令,则操作控制字段需要15位。
测试判别字段取决于微程序流程图中有多少处分支转移。
假定有3处分支,则测试判别字段需要3位。
下址字段取决于微程序流程图的规模。
假定微程序共用50条微指令,则下址字段至少需要6位。
这是因为ROM地址译码时,26=64,6位地址可容纳64条微指令。
(3)将微程序编译成二进制代码
(4)微程序写入控制存储器
(5)设计硬件电路
2、微程序的工作原理是什么?
依据读来的机器指令的操作码找到与之对应的一段微程序的入口地址,并按由指令具体功能所确定的次序,逐条从控制存储器中读出微指令,以“驱动”计算机各功能部件正确运行。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 计算机 组成 原理 课程设计