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

下载本文档

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

文档简介

《计算机组成原理课程设计》简单模型机的微程序设计学生姓名:学号:*********XX系别:三系班级:专业:软件工程指导教师:**一.课程设计的目的1.计算机的硬件基本组成2.计算机中机器指令的设计3.计算机中机器指令的执行过程4.微程序控制器的工作原理5.微指令的格式设计原则在此基础上设计可以运行一些基本机器指令的微程序的设计二.课程设计的内容和要求题目:①数据传送指令MOVRD,RS:(RS)→(RD)②减法指令SUBRD,RS:(RS)减(RD)→(RD)③或指令ORRD,(addr):(RD)或(addr)→(RD)④异或指令XORRD,(addr):(addr)异或(RD)→(RD)⑤与指令ANDRD,RS:(RS)与(RD)→(RD)通过使用作者开发的微程序分析和设计仿真软件,熟悉介绍的为基本模型机而设计的微程序的执行过程。必须充分理解并正确解释下些问题:(1)微程序中的微指令的各个字段的作用。哪些字段是不译码的,哪些字段是直接译码的,哪些字段又可以看成是字段间接编码的。答:不译码:S3-B0,直接译码:C字段,间接译码:A,B字段,当C字段进行P(1)或LDPC时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)哪些微指令是执行所有指令都要用到的。答:00:00000101111011011000000101:000001001100000001010000(5)解释一条机器指令的微程序的各条微指令的微地址是否连续?这些微指令的微地址的安排的严重原则是什么?答:不连续。严重原则是将各条机器指令的入口微地址置于地址连续的地址单元中,避免其它微指令乱用这一段地址。(6)为什么读写一次内存总要用两条微指令完成?答:因为W/R只有两种状态,即要么是读,要么是写,所以,要完成一次读写总要用两条微指令完成。(7)机器程序中用到的寄存器是R0,是由机器指令中哪些位决定的?如果要用R1或R2,是否要改写微程序或改写机器指令?如果要,应如何改写?答:是由机器指令中的2~1位决定。如果要用到R1或R2,那么不需要改写微程序,但得改写机器指令的低两位,即2~1位,若要用到R1,则将其改为01,若要用R2,则将其改为10。三、指令微流程分析1、基本模型机的指令设计根据基本模型机的硬件设计五条机器指令:外设输入指令IN、二进制加法指令ADD、存数指令STA、输出到外设指令OUT、无条件转移指令JMP、数据传送指令MOV、减法指令SUB、或指令OR、异或指令XOR、与指令AND。2.流程图用数据流表示的微程序流程图00PC→ARPC+101RAM→BUSBUS→IRP(1)测试INADDSTAOUTJMPMOVSUBORXORAND10111213141516171819SW→PC→ARPC→ARPC→ARPC→ARRS→RS→PC→ARPC→ARRS→R0RDDR1DR1PC+1PC+1PC+1PC+1PC+1PC+1200E1C0206080CRAM→BRAM→BRAM→B0B00RD→RAM→BUSRAM→BUSRD→00USUSUSDR2DR2RAM→BUSBUS→ARBUS→ARBUS→ARBUS→ARBUS→AR0D03RAM→BUS0709BUS→PC(DR1-DR2)→RD21R0→BUSRAM0F1D(DR1与DR2)→RDBUS→R→BUSRAM→BUS00RAM→BUSBUS→DR2AMBUS→DR1BUS→DR2040ABUS→DR200R0→DR100DR1→L1AED1E0005RD→RS→(DR1+DR2)→R0DR1DR11B1F00(DR1或(DR1异DR2)→或DR2)→RD00RD0000该图是运行微程序的数据流图,实际上并没有分解到微命令一级。为了设计微程序,还应该根据此图进一步细化到微命令(微操作)一级。例如PC→AR,实际上应该同时发出PCB、LDAR两个微命令;PC+1应该发出LDPC微命令;SW→R0应该发出SWB、LDRi(与指令码中的相应位共同译码产生LDR0微命令)两个微命令;RAM→BUS应该发出CE有效和读存储器两个微命令;BUS→RAM应该发出CE有效和写存储器两个微命令;R0→××是指R0B微命令有效等等。据此可将该图改画成下图:

用为命令表示的执行五条基本指令的微程序流程图00PCBLDARLDPC01CE有效W/R=0LDIRP(1)测试INADDSTAOUTJMPMOVSUBORXORAND10111213141516171819SWBPCBPCBPCBPCBRSBRSBLDDR1PCBPCBRSB有效LDARLDARLDPCLDARLDPCLDARLDPCLDRiLDARLDPCLDARLDPCLDDR1LDRiLDPC0206080C0E1C20CE有效CE有效CE有效0B00RDBCE有效CE有效RDB00W/R=0LDARW/R=0LDARW/R=0LDARCE有效LDDR2W/R=0W/R=0LDARW/R=0LDARLDDR2030709LOAD0D0F1D21CE有效R0BCE有效ALU做CE有效CE有效ALU做W/R=0LDDR2CE有效W/R=0减法LDRi00W/R=0LDDR2W/R=0“与”W/R=1LDDR1LDDR2LDRiALUBALUB040A1A1ER0B有效00ALUBLEDBRDB有效RSB有效LDDR10000LDDR1LDDR105ALU=AW/R=1ALU做加法LDRi1B1FALUBALU做ALU做00“或”LDRiALUB“异或”LDRi00ALUB0000该图中每个框上的数字表示该条微指令在控存中的地址(与指令格式有关,也与设计者的意愿有关)。如何在一条微指令中实现一个框中的微操作与微指令的格式密切相关。四、基本模型机的微指令格式本模型机的微指令长共24位,基本采用水平型微指令字段直接编码方式,其控制位顺序如下:五、编写微程序编写的机器指令代码如下:00H:00000000;置数开关SW(KD0~KD7)的状态→R001H:00010000;ADD:(R0)+(10)→(R0)02H:0001000003H:00100000;STA:(R0)→(14)04H:0001010005H:00110000;OUT:(11)→输出设备"LED"06H:0001000107H:01010001;MOV:(R0)→(R1)08H:01100001;SUB:(R0)-(R1)→(R1)09H:01110000;OR:(R0)或(12)→(R0)0AH:000100100BH:10000000;XOR:(R0)异或(13)→(R0)0CH:000100110DH:10010001;AND:(R0)与(R1)→(R1)0EH:01000000;JMP:00→PC0FH:0000000010H:1100101011H:0010001112H:0011001113H:00010001微指令代码如下:00:00000101111011011000000101:00000100110000000101000002:00000100111000000000001103:00000100101100000000010004:00000101101000100000010105:10010101100110100000000006:00000100111000000000011107:00000110100000100000000008:00000100111000000000100109:0000010010100000000010100A:0000011100001010000000000B:0000010011010001100000000C:0000010110110100000011010D:0110000110011010000000000E:0000010011100000000011110F:00000100101100000001101010:00000100000100000000000011:00000101111011011000001012:00000101111011011000011013:00000101111011011000100014:000001011110110110001011

15:00000101100100100000000016:00000101101000100000110017:00000101111011011000111018:00000101111011011001110019:0000010110100010001000001A:0000010110100100000110111B:1110110110011010000000001C:0000010011100000000111011D:0000010010110000000111101E:0000010110100010000111111F:01101101100110100000000020:00000101101101000010000121:101111011001101000000000微指令000001011110110110000001执行的操作是:PC→B,LDAR,允许PC加1(LDPC=1),转微地址:01微指令000001001100000001010000执行的操作是:存储器CE有效,存储器读,LDIR,P(1)测试:NA(3~0)或(IR7~IR4),转微地址:10微指令000001000001000000000000执行的操作是:输入开关SWB有效,LDR0,转微地址:00微指令000001001110000000000011执行的操作是:存储器CE有效,存储器读,LDAR,转微地址:03微指令000001001011000000000100执行的操作是:存储器CE有效,存储器读,LDDR2,转微地址:04微指令000001011010001000000101执行的操作是:R0→B,LDDR1,转微地址:05微指令100101011001101000000000执行的操作是:算术:A加B,ALU→B,LDR0,转微地址:00微指令000001011110110110000001执行的操作是:PC→B,LDAR,允许PC加1(LDPC=1),转微地址:01微指令000001001100000001010000执行的操作是:存储器CE有效,存储器读,LDIR,P(1)测试:NA(3~0)或(IR7~IR4),转微地址:11微指令000001011110110110000010执行的操作是:PC→B,LDAR,允许PC加1(LDPC=1),转微地址:02微指令000001001110000000000011执行的操作是:存储器CE有效,存储器读,LDAR,转微地址:03微指令000001001011000000000100执行的操作是:存储器CE有效,存储器读,LDDR2,转微地址:04微指令000001011010001000000101执行的操作是:R0→B,LDDR1,转微地址:05微指令100101011001101000000000

执行的操作是:算术:A加B,ALU→B,LDR0,转微地址:微指令000001011110110110000001执行的操作是:PC→B,LDAR,允许PC加1(LDPC=1),转微地址:0001微指令000001001100000001010000执行的操作是:存储器CE有效,存储器读,LDIR,P(1)测试:NA(3~0)或(IR7~IR4),转微地址:12微指令000001011110110110000110执行的操作是:PC→B,LDAR,允许PC加1(LDPC=1),转微地址:06微指令000001001110000000000111执行的操作是:存储器CE有效,存储器读,LDAR,转微地址:07微指令000001101000001000000000执行的操作是:存储器CE有效,写存储器,R0→B,转微地址:00微指令000001011110110110000001执行的操作是:PC→B,LDAR,允许PC加1(LDPC=1),转微地址:01微指令000001001100000001010000执行的操作是:存储器CE有效,存储器读,LDIR,P(1)测试:NA(3~0)或(IR7~IR4),转微地址:13微指令000001011110110110001000执行的操作是:PC→B,LDAR,允许PC加1(LDPC=1),转微地址: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执行的操作是:存储器CE有效,存储器读,LDIR,P(1)测试:NA(3~0)或(IR7~IR4),转微地址:15微指令000001011001001000000000执行的操作是:R0→B,LDR1,转微地址:00微指令000001011110110110000001执行的操作是:PC→B,LDAR,允许PC加1(LDPC=1),转微地址:01微指令000001001100000001010000执行的操作是:存储器CE有效,存储器读,LDIR,P(1)测试:NA(3~0)或(IR7~IR4),转微地址:16微指令000001011010001000001100执行的操作是:R0→B,LDDR1,转微地址:0C微指令000001011011010000001101执行的操作是:R1→B,LDDR2,转微地址:0D微指令011000011001101000000000执行的操作是:算术:A减B,ALU→B,LDR1,转微地址:00微指令000001011110110110000001

执行的操作是:PC→B,LDAR,允许PC加1(LDPC=1),转微地址:微指令000001001100000001010000执行的操作是:存储器CE有效,存储器读,LDIR,P(1)测试:NA(3~0)或(IR7~IR4),01转微地址:17微指令000001011110110110001110执行的操作是:PC→B,LDAR,允许PC加1(LDPC=1),转微地址:0E微指令000001001110000000001111执行的操作是:存储器CE有效,存储器读,LDAR,转微地址:0F微指令000001001011000000011010执行的操作是:存储器CE有效,存储器读,LDDR2,转微地址:1A微指令000001011010010000011011执行的操作是:R0→B,LDDR1,转微地址:微指令111011011001101000000000执行的操作是:逻辑:A+B,ALU→B,LDR0,转微地址:微指令0000010111101101100000011B00执行的操作是:PC→B,LDAR,允许PC加1(LDPC=1),转微地址:01微指令000001001100000001010000执行的操作是:存储器CE有效,存储器读,LDIR,P(1)测试:NA(3~0)或(IR7~IR4),转微地址:18微指令000001011110110110011100执行的操作是:PC→B,LDAR,允许PC加1(LDPC=1),转微地址:1C微指令000001001110000000011101执行的操作是:存储器CE有效,存储器读,LDAR,转微地址:1D微指令000001001011000000011110执行的操作是:存储器CE有效,存储器读,LDDR2,转微地址:1E微指令000001011010001000011111执行的操作是:R0→B,LDDR1,转微地址:微指令011011011001101000000000执行的操作是:逻辑:A异或B,ALU→B,LDR0,转微地址:微指令0000010111101101100000011F00执行的操作是:PC→B,LDAR,允许PC加1(LDPC=1),转微地址:01微指令000001001100000001010000执行的操作是:存储器CE有效,存储器读,LDIR,P(1)测试:

温馨提示

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

评论

0/150

提交评论