计算机组成原理课程设计微程序的分析与设计宿迁学院实验报告_第1页
计算机组成原理课程设计微程序的分析与设计宿迁学院实验报告_第2页
计算机组成原理课程设计微程序的分析与设计宿迁学院实验报告_第3页
计算机组成原理课程设计微程序的分析与设计宿迁学院实验报告_第4页
计算机组成原理课程设计微程序的分析与设计宿迁学院实验报告_第5页
已阅读5页,还剩8页未读 继续免费阅读

下载本文档

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

文档简介

1、计算机组成原理课程设计简单模型机的微程序设计学生姓名:学号:201003111xx系另0: 三系班 级:专 业:软件工程指导教师:卞利一. 课程设计的目的1. 计算机的硬件基木组成2. 计算机中机器指令的设计3. 计算机屮机器指令的执行过程4. 微程序控制器的工作原理5. 微指令的格式设计原则在此基础上设计可以运行一些基木机器指令的微程序的设计二. 课程设计的内容和要求题目: 数据传送指令mov rd, rs: (rs)-(rd) 减法指令 sub rd, rs: (rs)减(rd)-(rd) 或指令 orrd, (addr): (rd)或(add"-(rd) 异或指令 xor rd

2、, (addr): (addr)异或(rd)-(rd) 与指令 and rd, rs: (rs)与(rd)-(rd)通过使用作者开发的微程序分析和设计仿真软件,熟悉介绍的为基本模型机而 设计的微程序的执行过程。必须充分理解并正确解释下些问题:(1) 微程序中的微指令的各个字段的作用。哪些字段是不译码的,哪些字段是 直接译码的,哪些字段又可以看成是字段间接编码的。答:不译码:s3-bo,直接译码:c字段,间接译码:a,b字段,当c字段 进行p (1)或ldpc时ua6-ual也是间接。(2) 微程序中的微指令是否是顺序执行的,如果不是,那么次地址是如何产生的。 什么情况下,次地址字段才是将要执行

3、的微指令的地址。答:微程序屮的微指令不是顺序执行的,如果遇到p (1)p (4)测试时,则 根据机械指令,ua5ua其他有关部件的内容,产生下一条微指令在空存中的 微地址,是微程序转入相应的微地址入口,从而实现微程序的顺序、分支、循环 运行等。例如遇到p (1)测试,则下一条微指令在空存中的微地址的41位是 用次地址字段na (41位)或指令寄存器ir (85位)所产生,下一条微指 令的微地址仍为na字段的65位。如果没有遇到p (1)p (4)测试的话, 那么次地址即为该微指令地址字段所指向的微地址。(3) 在微程序中如何根据机器指令中的相关位实现分支,据此,在设计机器指令 时应如何避免和解

4、决与其它指令的微指令的微地址冲突。答:微程序中是根据测试程序的机器指令中的85位和微程序中后六位进行 “或”运算来实现分支的。避免和解决与其它指令的微指令的微地址冲突的方法 就是不用已经被其它微指令用过的微地址。(4) 哪些微指令是执行所有指令都要用到的。答:00:00000101111011011000000101:000001001100000001010000(5) 解释一条机器指令的微程序的各条微指令的微地址是否连续?这些微指令 的微地址的安排的严重原则是什么?答:不连续。严重原则是将各条机器指令的入口微地址置于地址连续的地址 单 元屮,避免其它微指令乱用这一段地址。(6) 为什么读写

5、一次内存总要用两条微指令完成?答:因为w/r只有两种状态,即要么是读,要么是写,所以,要完成一次 读写总要用两条微指令完成。(7) 机器程序中用到的寄存器是r0,是由机器指令中哪些位决定的?如果要用 r1或r2,是否要改写微程序或改写机器指令?如果要,应如何改写?答:是由机器指令中的21位决定。如果要用到r1或r2,那么不需耍改写 微程序,但得改写机器指令的低两位,即21位,若要用到ri,则将其改为 01,若要用r2,则将其改为10。三、指令微流程分析1、基本模型机的指令设计根据基本模型机的硬件设计五条机器指令:外设输入指令in、二进制加法指令 add、存数指令sta、输出到外设指令out、无

6、条件转移指令jmp、数据传送 指令mov、减法指令sub、或指令or、异或指令xor、与指令and。2 流程图用数据流表示的微程序流程图该图是运行微程序的数据流图,实际上并没有分解到微命令一级。为了设计微程序,还应该根据此图进一步细化到微命令(微操作)一级。例如pc-ar ,实际 上应该同时发出pcb、ldar两个微命令;pc+1应该发岀ldpc微命令; sw-ro应该发出swb、ldri (与指令码中的相应位共同译码产生ldro微命 令)两个微命令;ram-bus应该发岀ce有效和读存储器两个微命令; bustram应该发出ce有效和写存储器两个微命令;ro-xx是指rob微命令 有效等等。

7、据此可将该图改画成下图:用为命令表示的执行五条基本指令的微程序流程图0000151413选择000001ldri010lddr1011lddr2100ldr101load110ldar121110选择000001rs-b010rd-b011ri-b100299-b101alu-b110pcb987选舁000001p(l)010p(2)011p100p(4)101ar110ldbc00该图中每个框上的数字表示该条微指令在控存中的地址(与指令格式有关, 也与设计者的意愿有关)o如何在一条微指令中实现一个框中的微操作与微指令 的格式密切相关。本模型机的微指令长共24位,基本采用水平型微指令字段直接编

8、码方式,其控制位顺序如下:模型机微指令格式24232221201918171615 14 1312 11 10987654321s3s2s1s0mcnweblboabcua6ua5ua4ua3ua2u ala字段b字段c字段五、编写微程序编写的机器指令代码如下:0014:00000000;置数开关 sw (kd0kd7)的状态一r0 01h:00010000;add: (r0) + (10)-> (r0)02h:00010000o3i1:oo1ooooo;sta: (ro)-> (14)04h:0001010005h: 00110000; out:仃 1)输出设备"led

9、"0611:0001000107h:01010001;m0v: (ro)-(rl)0811:01100001;sub: (ro)-(rl)-> (rl)09h:01110000;or:(r0)或(12) - (r0)oah:00010010obh: 10000000; xor: (ro)异或(13) -* (ro)0ch:000100110di1:10010001 ;and: (ro)与(rl) -> (rl)oeh: 01000000 ;jmp:oo-pcofh:000000001oh:1100101011h:oo1ooo111211:0011001113h:00010

10、001微指令代码如下:00:000001011110110110000001 01:0000010011ooooooo1010000 02:000001001110000000000011 03:000001001011000000000100 04:000001011010001000000101 05:100101011001101000000000 06:000001001110000000000111 07:000001101000001000000000 08:000001001110000000001001 09:000001001010000000001010 0a:000001

11、110000101000000000 0b:0()()()0100110100011 ooooooo 0c:000001011011010000001101 0d:011000011001101000000000 0e:000001001110000000001111 0f:000001001011ooooooo11010 10:000001000001000000000000 11:000001011110110110000010 12:000001011110110110000110 13:000001011110110110001000 14:0000010111101101100010

12、11 15:000001011001001000000000 16:000001011010001000001100 17:000001011110110110001110 18:00000101111011011001110019:000001011010001000100000 la:0000010110100100000110111b: 111011011001101000000000 ic:ooooo loom oooooooo moi 1d:ooooo1001011000000011110 1e:ooooo1o11010001000011 111 1f:o11011011001101

13、000000000 20:000001011011010000100001 21:101111011001101000000000微指令 000001011110110110000001执行的操作是:pcb,ldar,允许pc加l(ldpol),转微地址:01微指令 000001001100000001010000执行的操作是:存储器ce有效,存储器读,ldir,p测试:na(30)或(ir7-ir4), 转微地址:10微指令 000001000001000000000000执行的操作是:输入开关swb有效,ldr0,转微地址:00微指令 000001001110000000000011执行的

14、操作是:存储器ce有效,存储器读,ldar,转微地址:03微指令 000001001011000000000100执行的操作是:存储器ce有效,存储器读,lddr2,转微地址:04微指令 000001011010001000000101执行的操作是:ro-b,lddr1,转微地址:05微指令 100101011001101000000000执行的操作是:算术:a加b,aluf b,ldr0,转微地址:00微指令 000001011110110110000001执行的操作是:pc-b,ldar,允许pc加1(ldpc=1),转微地址:01微指令 000001001100000001010000执

15、行的操作是:存储器ce有效,存储器读,ldir,p测试:na(30)或(ir7ir4), 转微地址:11微指令 000001011110110110000010执行的操作是:pc-b,ldar,允许pc加1(ldpc=1),转微地址:02微指令 000001001110000000000011执行的操作是:存储器ce有效,存储器读,ldar,转微地址:03微指令 000001001011000000000100执行的操作是:存储器ce有效,存储器读,lddr2,传微地址:04微指令 000001011010001000000101执行的操作是:ro-b,lddr1,转微地址:05微指令 100

16、101011001101000000000执行的操作是:算术:a加b,alu-b,ldro,转微地址:00微指令 000001011110110110000001执行的操作是:pc-b,ldar,允许pc加1(ldpc=1),转微地址:01微指令 000001001100000001010000执行的操作是:存储器ce有效,存储器读,ldir,p(1)测试:na(30)或(ir7ir4), 转微地址:12微指令 000001011110110110000110执行的操作是:pc-b,ldar,允许pc加1(ldpc=1),转微地址:06微指令 000001001110000000000111执

17、行的操作是:存储器ce有效,存储器读,ldar,转微地址:07微指令 000001101000001000000000执行的操作是:存储器ce有效,写存储器,r0b,转微地址:00微指令 000001011110110110000001执行的操作是:pc-b,ldar,允许pc加1(ldpc=1),转微地址:01微指令 000001001100000001010000执行的操作是:存储器ce有效,存储器读,ldir,p测试:na(30)或(ir7ir4), 转微地址:13微指令 000001011110110110001000执行的操作是:pc-b,ldar,允许pc加1(ldpc=1),转微

18、地址:08微指令 000001001110000000001001执行的操作是:存储器ce有效,存储器读,ldar,转微地址:09微指令 000001001010000000001010执行的操作是:存储器ce有效,存储器读,lddr1,转微地址:0a微指令 000001110000101000000000执行的操作是:算术:a,数码管ledb有效,写led,alu->b,转微地址:00微指令 000001011110110110000001执行的操作是:pc-b,ldar,允许pc加1(ldpc=1),转微地址:01微指令 000001001100000001010000执行的操作是:

19、存储器ce有效,存储器读,ldir,p测试:na(30)或(ir7ir4), 转微地址:15微指令 000001011001001000000000执行的操作是:r0fb,ldrl,转微地址:00微指令 000001011110110110000001执行的操作是:pc-b,ldar,允许pc加1(ldpc=1),转微地址:01微指令 000001001100000001010000执行的操作是:存储器ce有效,存储器读,ldir,p(1)测试:na(30)或(ir7ir4), 转微地址:16微指令 000001011010001000001100执行的操作是:ro-b,lddr1,转微地址:

20、0c微指令 000001011011010000001101执行的操作是:r1-b,lddr2,转微地址:0d微指令 011000011001101000000000执行的操作是:算术:a减b,alu-b,ldr1,转微地址:00微指令 000001011110110110000001执行的操作是:pc-b,ldar,允许pc加1(ldpc=1),转微地址:01微指令 000001001100000001010000执行的操作是:存储器ce有效,存储器读,ldir,p测试:na(30)或(ir7ir4), 转微地址:17微指令 000001011110110110001110执行的操作是:pc

21、-b,ldar,允许pc加1(ldpc=1),转微地址:0e微指令 000001001110000000001111执行的操作是:存储器ce有效,存储器读,ldar,转微地址:0f微指令 000001001011000000011010执行的操作是:存储器ce有效,存储器读,lddr2,转微地址:1a微指令 000001011010010000011011执行的操作是:ro-b,lddr1,转微地址:1b微指令 111011011001101000000000执行的操作是:逻辑:a+b,aluf b,ldr0,转微地址:00微指令 000001011110110110000001执行的操作是:

22、pc-b,ldar,允许pc加1(ldpc=1),转微地址:01微指令 000001001100000001010000执行的操作是:存储器ce有效,存储器读,ldir,p测试:na(30)或(ir7ir4), 转微地址:18微指令 000001011110110110011100执行的操作是:pc-b,ldar,允许pc加1(ldpc=1),转微地址:1c微指令 000001001110000000011101执行的操作是:存储器ce有效,存储器读,ldar,转微地址:1d微指令 000001001011000000011110执行的操作是:存储器ce有效,存储器读,lddr2,转微地址:1

23、e微指令 000001011010001000011111执行的操作是:ro-b,lddr1,转微地址:1f微指令 011011011001101000000000执行的操作是:逻辑:a异或b,alu-b,ldr0,转微地址:00微指令 000001011110110110000001执行的操作是:pc-b,ldar,允许pc加1(ldpc=1),转微地址:01微指令 000001001100000001010000执行的操作是:存储器ce有效,存储器读,ldir,p测试:na(30)或(ir7ir4), 转微地址:19微指令 000001011010001000100000执行的操作是:ro-b,lddr1,转微地址:20微指令 000001011011010000100001执行的操作是:r1-b,lddr2,转微地址:21微指令 1011110110011010

温馨提示

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

评论

0/150

提交评论