计算机组成原理课程设计_第1页
计算机组成原理课程设计_第2页
计算机组成原理课程设计_第3页
计算机组成原理课程设计_第4页
计算机组成原理课程设计_第5页
已阅读5页,还剩10页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、计算机组成原理课程设计实验报告课 程 设 计 报 告课程设计名称: 计算机组成原理 系 : 学 生 姓 名 : 班 级 : 学 号 : 成 绩 : 指 导 教 师 : 开 课 时 间 :2010-2011学年 2 学期一、设计题目计算机组成原理课程设计简单模型机的微程序设计二、主要内容通过课程设计更清楚地理解下列基本概念:1 计算机的硬件基本组成;2 计算机中机器指令的设计;3 计算机中机器指令的执行过程;4 微程序控制器的工作原理。5 微指令的格式设计原则;在此基础上设计可以运行一些基本机器指令的微程序的设计三具体要求1.通过使用作者开发的微程序分析和设计仿真软件,熟悉介绍的为基本模型机而设

2、计的微程序的执行过程。必须充分理解并正确解释下些问题:(1)微程序中的微指令的各个字段的作用。哪些字段是不译码的,哪些字段是直接译码的,哪些字段又可以看成是字段间接编码的。 (2)微程序中的微指令是否是顺序执行的,如果不是,那么次地址是如何产生的。什么情况下,次地址字段才是将要执行的微指令的地址。(3)在微程序中如何根据机器指令中的相关位实现分支,据此,在设计机器指令时应如何避免和解决与其它指令的微指令的微地址冲突。(4)哪些微指令是执行所有指令都要用到的。(5)解释一条机器指令的微程序的各条微指令的微地址是否连续?这些微指令的微地址的安排的严重原则是什么?(6)为什么读写一次内存总要用两条微

3、指令完成?(7)机器程序中用到的寄存器是r0,是由机器指令中哪些位决定的?如果要用r1或r2,是否要改写微程序或改写机器指令?如果要,应如何改写?2.在原有5条机器指令的基础上增加实现下述各功能的机器指令,试设计相应的机器指令的格式并改写原来的微程序使其可以运行所有的机器指令。新增加的机器指令的功能是:求反指令 not rs,rd :/(rs) (rd)与指令 and rd,(addr):(rd)与(addr)(rd)异或指令 xor rd,(addr):(addr)异或(rd)(rd)或指令 or rd,(addr):(rd)或(addr)(rd)减法指令 sub rd,rs :(rs)减(

4、rd)(rd)其中的rs、rd可以是r0、r1、r2中的任何一个。四进度安排共1.5周11天的时间,具体安排如下:12天:对整个课程设计的内容做详细的讲解,并辅导学生完成课程设计指导书的学习,使其掌握和理解课程设计的核心内容;35天:学生在机房学习熟悉课程设计所使用的仿真软件,并深入了解该仿真软件所实现的模型机的指令系统(原有的5条指令)和微程序设计方法;69天:在原有5条机器指令的基础上增加实现下述各功能的机器指令,试设计相应的机器指令的格式并改写原来的微程序使其可以运行所有的机器指令。1011天:根据自己设计的微程序系统写出相应的课程设计实验报告五成绩评定正文一、模型机的cpu及系统硬件二

5、、设计思想实现分支:每一条机器指令执行完之后,就进行一次p(1)测试,根据p(1)测试跳到下一条机器指令的微地址。机械指令执行中则是根据微指令的后六位来确定下一条微指令的地址。微地址的安排,将各条机械指令(in、add、sta、out、jmp、not、and、xor、or、sub)通过p(1)测试,将每条机器指令的入口微地址的首位置为微指令01单元65位对应的数值。如微指令02单元61位为000000,则每条机器指令的入口微地址的首位为0,in对应的为03,add对应的为04,sta对应的为05, out对应的为06,jmp对应的为07,not为08,and对应的为09,xor为0a,or对应

6、的为0b,sub对应的为0c,然后将完成各条指令的其它微指令的微地址设置为连续的在指令寄存器ir中的85位的数值则由微指令02单元的后六位和对应的机械指令的入口微地址推出。 模型机指令设计: 该模型机共有十条机器指令:与指令and、异或指令xor、或指令or、求反指令not、减法指令sub、外设输入指令in、二进制加法指令add、存数指令sta、输出到外设指令out、无条件转移指令jmp。指令格式如下:助记符 机器指令码and 1001 0001 xor 1010 0001 or 1011 0001 sub 1100 0001 not 1000 0001 in 0011 0000 add 01

7、00 0000 sta 0101 0000 out 0110 0000 jmp 0111 0000 说明:指令sub、not、in为单字节指令,其余均为双字节指令, 为要读写的主存储器单元的二进制地址码。微指令的编码:先分析各条机器指令的功能,然后针对其功能将其用微指令表示的微指令流程图画好(如下所示),最后针对图中每条微指令要完成的功能设计好编码。微流程图如下:细化微流程图如下:三、编写微程序基本模型机的微指令格式 本模型机的微指令长共24位,基本采用水平型微指令字段直接编码方式,其控制位顺序如下:1.编写的微指令代码如下:01:00000101111011011000001002:0000

8、0100110000000100000003:000001000001000000000001 ;in04:000001011110110110001101 ;add05:000001011110110110010001 ;sta06:000001011110110110010011 ;out07:000001011110110110010110 ;jmp08:000001011010001000010111 ;not09:000001011110110110011000 ;and0a:000001011110110110011100 ;xor0b:0000010111101101101000

9、00 ;or0c:000001011010001000100100 ;sub0d:0000010011100000000011100e:0000010010110000000011110f:00000101101000100001000010:10010101100110100000000111:00000100111000000001001012:00000110100000100000000113:00000100111000000001010014:00000100101000000001010115:00000111000010100000000116:0000010011010001

10、1000000117:00001001100110100000000118:00000100111000000001100119:0000010010100000000110101a:0000010110110100000110111b:1011100110011010000000011c:0000010011100000000111011d:0000010010100000000111101e:0000010110110100000111111f:01101001100110100000000120:00000100111000000010000121:0000010010100000001

11、0001022:00000101101101000010001123:11101001100110100000000124:00000101101101000010010125:0110000110011010000000012.编写的机器指令代码如下:00h:10010001 ;and r1,addr1r101h:00010010 ;即 00与14得00r102h:10100001 ;xor r1,addr1r103h:00010011 ;即 12异或00得12r104h:10110001 ;or r1,addr1r105h:00010100 ;即 08或12得1ar106h:1100000

12、1 ;sub (r0)-(r1)r1即00-1a得e6r107h:10000001 ;not r0求反r1即00求反得ffr108h:00110000 ;in 置数开关swr009h:01000000 ;add (r0)+(0a)r00ah:00010101 ;即 00+17得17r00bh:01010000 ;sta (r0) (16h)0ch:00010110 ;即0dh:01100000 ;out (16h)led0eh:00010110 ;即 输出为170fh:01110000 ;jmp 00pc10h:0000000011h:12h:0000111013h:0001001014h:0

13、000100015h:00010111测试过程具体分析:微指令000001011110110110000010执行的操作是:pcb,ldar,允许pc加1(ldpc=1),转微地址:02微指令000001001100000001000000执行的操作是:存储器ce有效,存储器读,ldir,p(1)测试:na(30)或(ir7ir4),转微地址:09微指令000001011110110110011000执行的操作是:pcb,ldar,允许pc加1(ldpc=1),转微地址:18微指令000001001110000000011001执行的操作是:存储器ce有效,存储器读,ldar,转微地址:19微

14、指令000001001010000000011010执行的操作是:存储器ce有效,存储器读,lddr1,转微地址:1a微指令000001011011010000011011执行的操作是:r1b,lddr2,转微地址:1b微指令101110011001101000000001执行的操作是:逻辑:ab,alub,ldr1,转微地址:01微指令000001011110110110000010执行的操作是:pcb,ldar,允许pc加1(ldpc=1),转微地址:02微指令000001001100000001000000执行的操作是:存储器ce有效,存储器读,ldir,p(1)测试:na(30)或(i

15、r7ir4),转微地址:0a微指令000001011110110110011100执行的操作是:pcb,ldar,允许pc加1(ldpc=1),转微地址:1c微指令000001001110000000011101执行的操作是:存储器ce有效,存储器读,ldar,转微地址:1d微指令000001001010000000011110执行的操作是:存储器ce有效,存储器读,lddr1,转微地址:1e微指令000001011011010000011111执行的操作是:r1b,lddr2,转微地址:1f微指令011010011001101000000001执行的操作是:逻辑:a异或b,alub,ldr1

16、,转微地址:01微指令000001011110110110000010执行的操作是:pcb,ldar,允许pc加1(ldpc=1),转微地址:02微指令000001001100000001000000执行的操作是:存储器ce有效,存储器读,ldir,p(1)测试:na(30)或(ir7ir4),转微地址:0b微指令000001011110110110100000执行的操作是:pcb,ldar,允许pc加1(ldpc=1),转微地址:20微指令000001001110000000100001执行的操作是:存储器ce有效,存储器读,ldar,转微地址:21微指令000001001010000000

17、100010执行的操作是:存储器ce有效,存储器读,lddr1,转微地址:22微指令000001011011010000100011执行的操作是:r1b,lddr2,转微地址:23微指令111010011001101000000001执行的操作是:逻辑:a+b,alub,ldr1,转微地址:01微指令000001011110110110000010执行的操作是:pcb,ldar,允许pc加1(ldpc=1),转微地址:02微指令000001001100000001000000执行的操作是:存储器ce有效,存储器读,ldir,p(1)测试:na(30)或(ir7ir4),转微地址:0c微指令00

18、0001011010001000100100执行的操作是:r0b,lddr1,转微地址:24微指令000001011011010000100101执行的操作是:r1b,lddr2,转微地址:25微指令011000011001101000000001执行的操作是:算术:a减b,alub,ldr1,转微地址:01微指令000001011110110110000010执行的操作是:pcb,ldar,允许pc加1(ldpc=1),转微地址:02微指令000001001100000001000000执行的操作是:存储器ce有效,存储器读,ldir,p(1)测试:na(30)或(ir7ir4),转微地址:

19、08微指令000001011010001000010111执行的操作是:r0b,lddr1,转微地址:17微指令000010011001101000000001执行的操作是:逻辑:/a,alub,ldr1,转微地址:01微指令000001011110110110000010执行的操作是:pcb,ldar,允许pc加1(ldpc=1),转微地址:02微指令000001001100000001000000执行的操作是:存储器ce有效,存储器读,ldir,p(1)测试:na(30)或(ir7ir4),转微地址:03微指令000001000001000000000001执行的操作是:输入开关swb有效

20、,ldr0,转微地址:01微指令000001011110110110000010执行的操作是:pcb,ldar,允许pc加1(ldpc=1),转微地址:02微指令000001001100000001000000执行的操作是:存储器ce有效,存储器读,ldir,p(1)测试:na(30)或(ir7ir4),转微地址:04微指令000001011110110110001101执行的操作是:pcb,ldar,允许pc加1(ldpc=1),转微地址:0d微指令000001001110000000001110执行的操作是:存储器ce有效,存储器读,ldar,转微地址:0e微指令0000010010110

21、00000001111执行的操作是:存储器ce有效,存储器读,lddr2,转微地址:0f微指令000001011010001000010000执行的操作是:r0b,lddr1,转微地址:10微指令100101011001101000000001执行的操作是:算术:a加b,alub,ldr0,转微地址:01微指令000001011110110110000010执行的操作是:pcb,ldar,允许pc加1(ldpc=1),转微地址:02微指令000001001100000001000000执行的操作是:存储器ce有效,存储器读,ldir,p(1)测试:na(30)或(ir7ir4),转微地址:05

22、微指令000001011110110110010001执行的操作是:pcb,ldar,允许pc加1(ldpc=1),转微地址:11微指令000001001110000000010010执行的操作是:存储器ce有效,存储器读,ldar,转微地址:12微指令000001101000001000000001执行的操作是:存储器ce有效,写存储器,r0b,转微地址:01微指令000001011110110110000010执行的操作是:pcb,ldar,允许pc加1(ldpc=1),转微地址:02微指令000001001100000001000000执行的操作是:存储器ce有效,存储器读,ldir,p

23、(1)测试:na(30)或(ir7ir4),转微地址:06微指令000001011110110110010011执行的操作是:pcb,ldar,允许pc加1(ldpc=1),转微地址:13微指令000001001110000000010100执行的操作是:存储器ce有效,存储器读,ldar,转微地址:14微指令000001001010000000010101执行的操作是:存储器ce有效,存储器读,lddr1,转微地址:15微指令000001110000101000000001执行的操作是:算术:a,数码管ledb有效,写led,alub,转微地址:01微指令000001011110110110

24、000010执行的操作是:pcb,ldar,允许pc加1(ldpc=1),转微地址:02微指令000001001100000001000000执行的操作是:存储器ce有效,存储器读,ldir,p(1)测试:na(30)或(ir7ir4),转微地址:07微指令000001011110110110010110执行的操作是:pcb,ldar,允许pc加1(ldpc=1),转微地址:16微指令000001001101000110000001执行的操作是:存储器ce有效,存储器读,pcload,允许pc加1(ldpc=1),转微地址:01四、问题回答(1)微程序中的微指令的各个字段的作用。哪些字段是不译码的,哪些字段是直接译码的,哪些字段又可以看成是字段间接编码的。 答:不译码:s3-b0。a字段,b字段为间接译码 ,ua6-ua1在p(1),p(2),p(3),p(4)测试时为间接译码 。c字段为直接译码(2)微程序中的微指令是否是顺序执行的,如果不是,那么次地址是如何产生的。什么情况下,次

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论