计算机组成原理课程设计报告.docx
- 文档编号:8754041
- 上传时间:2023-05-14
- 格式:DOCX
- 页数:10
- 大小:84.11KB
计算机组成原理课程设计报告.docx
《计算机组成原理课程设计报告.docx》由会员分享,可在线阅读,更多相关《计算机组成原理课程设计报告.docx(10页珍藏版)》请在冰点文库上搜索。
计算机组成原理课程设计报告
《计算机组成原理》课程设计
——简单模型机的的微程序设计
姓名杨静
学号080303136
系别三系
班级08计本
(1)班
专业计算机科学与技术
指导老师卞利
2010年6月24日
一、课程设计的目的
通过课程设计更清楚地理解下列基本概念:
1.计算机的硬件基本组成;
2.计算机中机器指令的设计;
3.计算机中机器指令的执行过程;
4.微程序控制器的工作原理;
5.微指令的格式设计原则;
在次基础上设计可以运行一些基本机器指令的微程序的设计。
二、课程设计的内容和要求
1.设计内容
通过使用作者开发的微程序分析和设计仿真软件,熟悉本文介绍的为基本模型机而设计的微程序的执行过程。
必须充分理解并正确解释下些问题:
(1)微程序中的微指令的各个字段的作用。
哪些字段是不译码的,哪些字段是直接译码的,哪些字段又可以看成是字段间接编码的。
答:
直接译码的是A、B、C字段;不译码的是S3~B0字段;而间接编码的是uA6~uA1。
(2)微程序中的微指令是否是顺序执行的,如果不是,那么次地址是如何产生的。
什么情况下,次地址字段才是将要执行的微指令的地址。
答:
微程序中的微指令不是顺序执行的,如果遇到P
(1)~P(4)测试时,则根据机械指令,uA5~uA其他有关部件的内容,产生下一条微指令在空存中的微地址,是微程序转入相应的微地址入口,从而实现微程序的顺序、分支、循环运行等。
例如遇到P
(1)测试,则下一条微指令在空存中的微地址的4~1位是用次地址字段NA(4~1位)或指令寄存器IR(8~5位)所产生,下一条微指令的微地址仍为NA字段的6~5位。
如果没有遇到P
(1)~P(4)测试的话,那么次地址即为该微指令地址字段所指向的微地址。
(3)在微程序中如何根据机器指令中的相关位实现分支,据此,在设计机器指令时应如何避免和解决与其它指令的微指令的微地址冲突。
答:
微程序中是根据测试程序的机器指令中的8~5位和微程序中后六位进行“或”运算来实现分支的。
避免和解决与其它指令的微指令的微地址冲突的方法就是不用已经被其它微指令用过的微地址。
(4)哪些微指令是执行所有指令都要用到的。
答:
01:
000001011110110110000010
02:
000001001100000001000000
(5)解释一条机器指令的微程序的各条微指令的微地址是否连续?
这些微指令的微地址的安排的严重原则是什么?
答:
不连续。
严重原则是将各条机器指令的入口微地址置于地址连续的地址单元中,避免其它微指令乱用这一段地址。
(6)为什么读写一次内存总要用两条微指令完成?
答:
因为W/R只有两种状态,即要么是读,要么是写,所以,要完成一次读写总要用两条微指令完成。
(7)机器程序中用到的寄存器是R0,是由机器指令中哪些位决定的?
如果要用R1或R2,是否要改写微程序或改写机器指令?
如果要,应如何改写?
答:
是由机器指令中的2~1位决定。
如果要用到R1或R2,那么不需要改写微程序,但得改写机器指令的低两位,即2~1位,若要用到R1,则将其改为01,若要用R2,则将其改为10。
2.设计要求
在原有的5条机械指令的基础上增加实现下述各功能的机械指令,试设计相应的机械指令的格式并改写原有的微程序使其可以运行所有的机械指令。
新增加的机械指令的功能是:
寄存器间的数据传送指令MOVRD,RS(RS)→(RD)
减法指令SUBR0,(ADDR):
(R0)-(ADDR)→(R0)
与指令ANDRD,RS:
(RS)AND(RD)→(RD)
或指令ORRD,RS:
(RS)OR(RD)→(RD)
异或指令XORRD,RS:
(RS)XOR(RD)→(RD)
其中的RS、RD可以是R0、R1、R2中的任何一个。
3.设计思想(如何实现各指令分支、如何安排各指令对应的微程序中的微指令的微地址、如何设计各微指令的编码):
①实现分支:
每一条机器指令执行完之后,就进行一次P
(1)测试,根据P
(1)测试跳到下一条机器指令的微地址。
机械指令执行中则是根据微指令的后六位来确定下一条微指令的地址。
②微地址的安排,将各条机械指令(IN、ADD、STA、OUT、JMP、MOV、SUB、AND、OR、XOR)通过P
(1)测试,将每条机器指令的入口微地址的首位置为微指令02单元6~5位对应的数值。
如微指令02单元6~1位为000000,则每条机器指令的入口微地址的首位为0,IN对应的为03,ADD对应的为04……然后将完成各条指令的其它微指令的微地址设置为连续的
在指令寄存器IR中的8~5位的数值则由微指令02单元的后六位和对应的机械指令的入口微地址推出。
③微指令的编码:
先分析各条机器指令的功能,然后针对其功能将其用微指令表示的微指令流程图画好(如下所示),最后针对图中每条微指令要完成的功能设计好编码。
4.读写机械指令的流程图如下:
5.微程序如下:
00:
000001011000000100010000
01:
000001011110110110000010
02:
000001001100000001000000
03:
000001000001000000000001
04:
000001011110110110100000
05:
000001011110110110100100
06:
000001011001001000000001
07:
000001011110110110100110
08:
000001001010001000101010
09:
000001001010001000101100
0A:
000001001010001000101110
0B:
000001011110110110011010
0C:
000001011110110110011101
10:
000001011110110110010010
11:
000001011110110110010100
12:
000001001010000000010111
13:
000001011000000000000001
14:
000001000010000000011000
17:
000001110000101000010000
18:
000001101000101000010001
1A:
000001001110000000011011
1B:
000001001010000000011100
1C:
000001110000101000000001
1D:
000001001101000110000001
20:
000001001110000000100001
21:
000001001011000000100010
22:
000001011010010000100011
23:
100101011001101000000001
24:
000001001110000000100101
25:
000001101000001000000001
26:
000001001110000000100111
27:
000001001011000000101000
28:
000001011010001000101001
29:
011000011001101000000001
2A:
000001001011010000101011
2B:
101111011001101000000001
2C:
000001001011010000101101
2D:
111011*********000000001
2E:
000001001011010000101111
2F:
011011011001101000000001
5.测试程序如下:
00H:
00110000;INRO:
SW->RO
01H:
01000000;ADDRO>R0=99
02H:
00010011
03H:
01010000;STAR0->18H
04H:
00011000
05H:
01100001;MOVRO->R1=99
06H:
01010001;STAR1->19H=99
07H:
00011001
08H:
01000010;ADDR2>R2=OF
09H:
00010100;14H
0AH:
01110000;SUBR0-72=27
0BH:
00010101;15H
0CH:
10001001;ANDR2&R1->R1=09
0DH:
10010100;ORR1orR0->R0=2F
0EH:
10100010;ROxorR2=20
0FH:
10110000;27->LED
10H:
00010110;16H
11H:
11000000;JMP->00
12H:
00000000
13H:
10011001
14H:
00001111
15H:
01110010
16H:
00100111
6.微命令表示的微流程图如下:
三、总结
通过这一次的课程设计,我们收获颇多,我们了解了一个比较成熟的模型机的实现,并在参与其中,体会其中的种种困难,了解到了难点的地方,这对于我们学习这门课程有着很大的帮助,同时对于之前的几次试验我们操作机器录入的理解也更加的深刻了,在设计过程中,我们从开始的粗略的一个概念,到中间的疑惑与焦虑,到解决了问题的快乐。
这对于我们以后工作也有着很大的好处,培养了我们遇到问题,分析问题,解决问题各个方面上的能力。
平时我们做作业也都是在做书本上面给我们的题目,而这一次则是由我们自己设计出的,这对我们的创新意识也是一种很大大培养。
我相信有了这种实验的经历,我们以后再就业的过程当中也会多一份自信。
希望学校以后可以多为我们提供这样的机会,这样我们就可以在实践中得到平时课堂上面所缺失的一些能力,同时希望学校可以在别的学科也可以小组成员里这样给我们提供如此之好的条件来进行教学。
这样可以使我们的综合素质的到很好的提升。
附加
R0+R1->FFH
微指令程序:
01:
000001011110110110000010
02:
000001001100000001000000
03:
000001000001000000000001
04:
000001011110110110100110
05:
000001011110110110010001
06:
000001011110110110010011
07:
000001011001001000000001
08:
000001011110110110010110
09:
000001011010001000011010
0A:
000001011010001000011100
0B:
000001011010001000011110
0D:
000001011110110110100000
26:
000001001110000000001110
0E:
000001001011000000001111
0F:
000001011010001000010000
10:
100101011001101000000001
11:
000001001110000000010010
12:
000001101000001000000001
13:
000001001110000000010100
14:
000001001010000000010101
15:
000001110000101000000001
16:
000001001110000000010111
17:
000001001011000000011000
18:
000001011010001000011001
19:
011000011001101000000001
1A:
000001011011010000011011
1B:
101111011001101000000001
1C:
000001011011010000011101
1D:
111011*********000000001
1E:
000001011011010000011111
1F:
011011011001101000000001
20:
000001001101000110000001
0C:
000001011010001000100001
21:
000001011011010000100010
22:
100101011001101000100011
23:
000001011110110110100100
24:
000001001110000000100101
25:
000001101000001000000001
测试程序
00H:
00110000;置数
01H:
01000000;(R0)+(11)->(R0)
02H:
00010001
03H:
01010000;(R0)->(12)
04H:
00010010
05H:
01100000;(12)->"LED"
06H:
00010010
07H:
01110001;(R0)->(R1)
08H:
10000000;(R0)-(13)->(R0)
09H:
00010011
0AH:
10010001;(R0)*(R1)
0BH:
10100001;(R0)+(R1)
0CH:
10110001;(R0)异或(R1)
0DH:
11000001;R0加R1->(FFH)
0EH:
11111111
0FH:
11010000;00->PC
10H:
00000000
11H:
00000011
13H:
00000001
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 计算机 组成 原理 课程设计 报告