课程设计报告
课程设计名称:计算机组成原理
系 别: 三系
学生姓名:
班 级:
学 号:
成 绩:
指导教师:
开课时间:20##-20## 学年二 学期
一.设计题目
计算机组成原理课程设计——简单模型机的微程序设计
二.主要内容
1.通过使用作者开发的微程序分析和设计仿真软件,熟悉本文介绍的为基本模型机而设计的微程序的执行过程。必须充分理解并正确解释下列问题:
⑴微程序中的微指令的各个字段的作用。哪些字段是不译码的,哪些字段是直接译码的,哪些字段又可以看成是字段间接编码的。
答:不译码的是S3~B0字段;直接译码的是A、B、C字段;而间接编码的是uA6~uA1。
⑵微程序中的微指令是否是顺序执行的,如果不是,那么次地址是如何产生的。什么情况下,次地址字段才是将要执行的微指令的地址。
答:微程序中的微指令不是顺序执行的,如果遇到P(1)~P(4)测试时,则根据机械指令,uA5~uA其他有关部件的内容,产生下一条微指令在空存中的微地址,是微程序转入相应的微地址入口,从而实现微程序的顺序、分支、循环运行等。例如遇到P(1)测试,则下一条微指令在空存中的微地址的4~1位是用次地址字段NA(4~1位)或指令寄存器IR(8~5位)所产生,下一条微指令的微地址仍为 NA字段的6~5位。如果没有遇到P(1)~P(4)测试的话,那么次地址即为该微指令地址字段所指向的微地址。
⑶在微程序中如何根据机器指令中的相关位实现分支,据此,在设计机器指令时应如何避免和解释其它指令的微指令的微地址冲突。
答:微程序中是根据测试程序的机器指令中的8~5位和微程序中后六位进 行“或”运算来实现分支的。避免和解决与其它指令的微指令的微地址冲突的方法就是不用已经被其它微指令用过的微地址。
⑷哪些微指令是执行所有指令都要用到的。
答:01:000001011110110110000010
02:000001001100000001010000
⑸解释一条机器指令的微程序的各条微指令的微地址是否连续?这些微指令的微地址的安排的严重原则是什么?
答:不连续。严重原则是将各条机器指令的入口微地址置于地址连续的地址单元中,避免其它微指令乱用这一段地址。
⑹为什么 读写一次内存总要用两条微指令完成?
答:因为W/R只有两种状态,即要么是读,要么是写,所以,要完成一次读写总要用两条微指令完成。
⑺机器程序中的用到的寄存器是R0,是由机器指令中哪些位决定的?如果要用R1或R2,是否要改写微程序或改写机器指令?如果要,应如何改写?
答:是由机器指令中的2~1位决定。如果要用到R1或R2,那么不需要改写微程序,但得改写机器指令的低两位,即2~1位,若要用到R1,则将其改为01,若要用R2,则将其改为10。
2.在原有5条机器指令的基础上增加实现下述各功能的机器指令,试设计相应的机器指令的格式并改写原来的微程序使其可以运行所有的机器指令。新增加的机器指令的功能是:
①数据传送指令MOV RD,RS:(RS)→(RD)
②减法指令SUB (addr1),(addr2):(addr1) 减(addr2)→(RD)
③异或指令XOR RD,(addr):(addr)异或(RD)→(RD)
④求反指令 NOT RS,RD:/(RS)→(RD)
⑤新加法指令 NADD (addr1),(addr2):(addr1)加(addr2)→(RD)
三.具体要求
写出课程设计报告,解释你的设计思想,比如,如何实现各指令的分支,如何重新安排各指令对应的微程序中的微指令的微地址,如何设计各微指令的编码。要求画出用微命令表示的微流程图并适当加以解释。
四.进度安排
共1.5周11天的时间,具体安排如下:
1~2天:对整个课程设计的内容做详细的讲解,并辅导学生完成课程设计指导书的学习,使其掌握和理解课程设计的核心内容;
3~5天:学生在机房学习熟悉课程设计所使用的仿真软件,并深入了解该仿真软件所实现的模型机的指令系统(原有的5条指令)和微程序设计方法;
6~9天:在原有5条机器指令的基础上增加实现下述各功能的机器指令,试设计相应的机器指令的格式并改写原来的微程序使其可以运行所有的机器指令。
10~11天:根据自己设计的微程序系统写出相应的课程设计实验报告
五.成绩评定
根据课程设计过程中的认真程度(考勤情况、学习态度等)、课程设计实验报告的质量以及设计出的微程序系统的质量综合判定
六.正文
(1)、模型机的CPU及系统硬件
基本模型机的CPU及系统硬件组成如图1所示:
图1 模型机的CPU及系统硬件组成
各部件的功能及控制信号如下:
运算器由算逻部件ALU(8位)、暂存器DR1、DR2及通用寄存器等组成。ALU的功能控制信号为S3、S2、S1、S0、M、CN,可以实现48种算术和逻辑运算功能,如图2所示。
图2 74LS181功能表
程序计数器PC的功能是存放下一条指令的地址,其输出是向地址寄存器提供要将执行的指令在存储器中的地址。在提供地址后立即加1,指向指令的下一个字节或下一条指令的地址。其控制微命令有三个。当LOAD=0而LDPC=1时,由T4的正跳变将数据总线上的数据装入PC;当当LOAD=1而LDPC=1时PC的内容加1;当PCB=1时,PC中的地址信息送到数据总线上。
指令寄存器IR用于存放当前执行的指令。当微命令LDIR=1时,由节拍脉冲T3将数据总线上的数据装入。
地址寄存器AR存放要从存储器中读出的数据或指令的地址或要向存储器写入数据或指令的地址。当微命令LDAR=1时,由节拍脉冲T3将数据总线上的数据装入。
存储器RAM用于存放程序和数据。当片选信号CE=0时,如果W/R为0,则根据AR中的地址,从存储器中读出数据并送到数据总线上;如果W/R为1,则根据AR中的地址,向存储器中写入数据总线上的数据。片选信号CE是由微指令中的有关字段(B1B0)译码产生的。
模型机有两个外部设备:输入设备是置数开关SW,用于设置数据或地址,当微命令SWB=0时,设置的数据送到数据总线上;SWB也是由微指令中的有关字段(B1B0)译码产生的。输出设备是两位LED数码管,当微命令LEDB=1时,数据总线上的数据送到数码管显示。
根据基本模型机的硬件设计五条机器指令:外设输入指令IN、二进制加法指令ADD、存数指令STA、输出到外设指令OUT、无条件转移指令JMP。指令格式如下:
助记符 机器指令码 说 明
IN 0011 0000 ;置数开关SW(KD0~KD7)的状态→R0
ADD addr 0100 0000 ×××× ×××× ;(R0)+(addr)→(R0)
STA addr 0101 0000 ×××× ×××× ;(R0)→(addr)
OUT addr 0110 0000 ×××× ×××× ;(addr)→输出设备"LED"
JMP addr 0111 0000 ×××× ×××× ;addr→PC
MOV 1000 0100 ;(RS)or (RD)→(RD)
SUB addr1,addr2 1001 0000 ×××× ×××× , ×××× ××××
;(addr1)-(addr2)→(RD)
XOR 1010 0000 ×××× ×××× ;(RD)or (addr)→(RD)
NOT 1011 0100 ;/(RD)→(RD)
NADD addr1,addr2 1100 0000 ×××× ×××× ,×××× ××××
;(addr1)NADD(addr2)→(RD)
该图是运行微程序的数据流图,实际上并没有分解到微命令一级。为了设计微程序,还应该根据此图进一步细化到微命令(微操作)一级。例如PC→AR,实际上应该同时发出PCB、LDAR两个微命令;PC+1应该发出LDPC微命令;SW→R0应该发出SWB、LDRi(与指令码中的相应位共同译码产生LDR0微命令)两个微命令;RAM→BUS应该发出CE有效和读存储器两个微命令;BUS→RAM应该发出CE有效和写存储器两个微命令;R0→××是指R0B微命令有效等等。据此可将该图改画成下图:
4、基本模型机的微指令格式
本模型机的微指令长共24位,基本采用水平型微指令字段直接编码方式,其控制位顺序如下:
5、微程序的编写
用于测试的机器指令程序编码如下:
地址 编码 说明
00H:00110000 ;IN R0:(SW)→(R0)
01H:01000000 ;ADD 13H,:(RS)+(13H)→(RD)
02H:00010011
03H:01010000 ;STA 14H,:(R0)→(14H)
04H:00010100
05H:01100000 ;OUT 14H,:(14H)→(LED)
06H:00010100
07H:10000100 ;MOV RD,RS: (RS)→(RD)
08H:10010000 ;SUB (addr1),(addr2): (15H)减(16H)→(RD)
09H:00010101
0AH:00010110
0BH:10100000 ;XOR RD,(addr):(17H)异或(RD)→(RD)
0CH:00010111
0DH:10110100 ;NOT RS,RD:/(RS)→(RD)
0EH:11000000 ;NADD (addr1),(addr2):(18H)加(19H)→(RD)
0FH:00011000
10H:00011001
11H:01110000 ;JMP 00: 00→(PC)
12H:00000000
13H:00000001
14H:
15H:00000011
16H:00000010
17H:00000100
18H:00000101
19H:00000110
既可读写机器指令又可运行微程序的完整的微程序编码如下:
00:000001011000000100010000
01:000001011110110110000010
02:000001001100000001010000
03:000001000001000000000001
04:000001011110110110001101
05:000001011110110110010110
06:000001011110110110011010
07:000001011110110110011101
08:000001011001001000000001
09:000001011110110110011110
0A:000001011110110110100100
0B:000001011010001000101000
0C:000001011110110110101001
0D:000001001110000000001110
0E:000001001011000000001111
0F:000001011010001000010101
10:100101011001101000000001
11:000001001110000000011001
12:000001101000001000000001
13:000001001110000000011011
14:000001001010000000011100
15:000001110000101000000001
16:000001001101000000000001
17:000001001110000000011111
18:000001001010000000100000
19:000001011110110110100001
1A:000001001110000000100010
1B:000001001011000000100011
1C:011000011001101000000001
1D:000001001110000000100101
1E:000001001010000000100110
1F:000001011011001000100111
20:011010011001101000000001
21:000010011001101000000001
22:000001001110000000101010
23:000001001010000000101011
24:000001011110110110101100
25:000001001110000000101101
26:000001001011000000101110
27:100101011001101000000001
七.心得体会
通过这次的课程设计,让我更加了解到计算机组成原理的重要性。以及它对我们专业的发展发挥的作用。对我们而言,知识上的收获很重要,但精神上的丰收更加可喜。让我知道了学无止境的道理。我们每一个人永远不能满足于现有的成就,人生就像在爬山,一座山峰的后面还有更高的山峰在等着你。挫折是一份财富,经历是一份拥有。这次课程设计必将成为我人生旅途上一个非常美好的回忆!同时在做课程设计时要能够从多方面去考虑,去研究,用多种方法去实现要求。此次课程设计,学到了很多课内学不到的东西,比如独立思考解决问题,出现差错的随机应变,这些都让我受益非浅,今后的制作应该能够更轻松,自己也都能够解决并高质量的完成项目。
课程设计结束了,从中我也学到了不少知识。虽然计算机组成原理实验的设计与学习已经结束,可我们学习之路并没有结束,我会继续努力学习其相关的知识,以适应社会的发展与需要,这样才能真正成为一名合格的大学生。 通过实验课,使我懂得,只要自己在每一次实践中都能仔细思考,能亲自动手,课程设计中遇到的难点都可以顺利解决。每个同学都要多操作演示,理解各个步骤的意义,只有多操作才能从中发现问题,及时解决问题,从而更好的掌握实验的基本原理。课程设计目的除工作量和设计质量之外,更重要的是认真去对待,通过设计实践对理论知识有了更深刻的认识,并从中学到书本上学不到的知识。 在此学期的实验课中,感谢老师对我的帮助和指导。我需要学习的东西还有很多,希望老师继续指导。
西安科技大学课程设计报告课程名称计算机组成原理课题名称复杂模型计算机的设计专业计算机科学与技术班级计科1001班姓名##指导教师#…
长治学院课程设计报告课程名称计算机组成原理课程设计设计题目设计一台性能简单的计算机系别计算机系专业计科1101班组别第三组学生姓名…
课程设计题目教学院专业班级姓名指导教师硬件加减法器的设计计算机学院计算机科学与技术年月日1课程设计任务书20xx20xx学年第1学…
课程设计说明书题目设计指令系统院系计算机科学与工程学院专业班级计算机1003班学号学生姓名指导教师刘向举年1月10日20xx安徽理…
沈阳工程学院计算机组成原理课程设计设计题目基本模型机的设计与实现第六组系别班级学生姓名学号指导教师职称起止日期20xx年6月25日…
计算机组成原理课程设计心得计科1004计算机组成原理课程设计是在我们上完计算机组成原理课之后的硬件实践课程,是把组成原理课上的理论…
福建农林大学金山学院课程名称实习题目姓名系专业年级学号指导教师职称课程实习报告计算机组成原理普通的加减法指令柳继曾机电与信息工程系…
计算机组成原理课程设计报告课程设计题目计算机组成原理专业名称计算机科学与技术班级20xx240202关童20xx24020xx7张…
计算机组成原理课程设计实验报告学院专业班级学号姓名评分20xx年6月8日实验一一实验名称验证74LS181运算和逻辑功能二实验目的…
西安科技大学课程设计报告课程名称计算机组成原理课题名称复杂模型计算机的设计专业计算机科学与技术班级计科1001班姓名##指导教师#…
合肥学院课程综述论文题目系部专业班级学生姓名计算机组成原理总结计算机科学与技术计算机网络工程11网络工程(2)IceBin20xx…