简单模型机的微程序设计

上传人:仙*** 文档编号:113704761 上传时间:2022-06-26 格式:DOC 页数:20 大小:317KB
返回 下载 相关 举报
简单模型机的微程序设计_第1页
第1页 / 共20页
简单模型机的微程序设计_第2页
第2页 / 共20页
简单模型机的微程序设计_第3页
第3页 / 共20页
亲,该文档总共20页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述
【精品文档】如有侵权,请联系网站删除,仅供学习与交流简单模型机的微程序设计.精品文档.课 程 设 计 报 告 课程设计名称:简单模型机的微程序设计 系 : 三 系 学 生 姓 名 : 班 级 : 软件二班 学 号 : 成 绩 : 指 导 教 师 : 开 课 时 间 : 2012学年 2 学期一、设计题目 计算机组成原理课程设计简单模型机的微程序设计二、主要内容 1通过使用作者开发的微程序分析和设计仿真软件,熟悉本文介绍的为基本模型机而设计的微程序的执行过程。必须充分理解并正确解释下列问题: 微程序中的微指令的各个字段的作用。哪些字段是不译码的,哪些字段是直接译码的,哪些字段又可以看成是字段间接编码的。微程序中的微指令是否是顺序执行的,如果不是,那么次地址是如何产生的。什么情况下,次地址字段才是将要执行的微指令的地址。在微程序中如何根据机器指令中的相关位实现分支,据此,在设计机器指令时应如何避免和解释其它指令的微指令的微地址冲突。哪些微指令是执行所有指令都要用到的。解释一条机器指令的微程序的各条微指令的微地址是否连续?这些微指令的微地址的安排的严重原则是什么?为什么 读写一次内存总要用两条微指令完成?机器程序中的用到的寄存器是R0,是由机器指令中哪些位决定的?如果要用R1或R2,是否要改写微程序或改写机器指令?如果要,应如何改写? 2.在原有5条机器指令的基础上增加实现下述各功能的机器指令,试设计相应的机器指令的格式并改写原来的微程序使其可以运行所有的机器指令。新增加的机器指令的功能是:或指令OR RD,RS:(RS)或(RD)(RD)减法指令SUB RD,(addr):(RD)减(addr)(RD)异或指令XOR (addr1),(addr2):(addr1)异或(addr2)(RD)与指令AND RD,RS:(RS)与(RD)(RD)求反指令 NOT RD:/(RD) (RD)其中的RS、RD可以是R0、R1、R2中的任何一个。三、具体要求写出课程设计报告,解释你的设计思想,比如,如何实现各指令的分支,如何重新安排各指令对应的微程序中的微指令的微地址,如何设计各微指令的编码。要求画出用微命令表示的微流程图并适当加以解释。四、进度安排共1.5周11天的时间,具体安排如下:12天:对整个课程设计的内容做详细的讲解,并辅导学生完成课程设计指导书的学习,使其掌握和理解课程设计的核心内容;35天:学生在机房学习熟悉课程设计所使用的仿真软件,并深入了解该仿真软件所实现的模型机的指令系统(原有的5条指令)和微程序设计方法;69天:在原有5条机器指令的基础上增加实现下述各功能的机器指令,试设计相应的机器指令的格式并改写原来的微程序使其可以运行所有的机器指令。1011天:根据自己设计的微程序系统写出相应的课程设计实验报告五、成绩评定六、正文(1)模型机的CPU及系统硬件 基本模型机的CPU及系统硬件组成如图1所示: 图1 模型机的CPU及系统硬件组成各部件的功能及控制信号如下:运算器由算逻部件ALU(8位)、暂存器DR1、DR2及通用寄存器等组成。ALU的功能控制信号为S3、S2、S1、S0、M、CN,可以实现48种算术和逻辑运算功能,如图2所示。 图2 74LS181功能表运算器为单总线结构,其输入端分别连接到暂存器DR1和DR2,其装入数据的微命令分别为LDDR1和LDDR2,当它们为1电平时由节拍脉冲T4将数据总线上的数据装入相应的暂存器。R0、R1、R2为通用寄存器。R0的装入数据的微命令为LDR0,R1的装入数据的微命令为LDR1,R2的装入数据的微命令为LDR2。299为实现移位运算的装置,当299B微命令有效时,其数据端和数据总线连接。 控制器由程序计数器PC、指令寄存器IR、地址寄存器AR、时序电路、控制存储器及相应的译码电路组成。程序计数器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时,数据总线上的数据送到数码管显示。(2)基本模型机的指令设计根据基本模型机的硬件设计五条机器指令:外设输入指令IN、二进制加法指令ADD、存数指令STA、输出到外设指令OUT、无条件转移指令JMP。指令格式如下: 助记符 机器指令码 说明IN 0101 0000 ;置数开关SW(KD0KD7)的状态R0ADD addr 0110 0000 ;(R0)+(addr)(R0)STA addr 0111 0000 ;(R0)(addr)OUT addr 1000 0000 ;(addr)输出设备LEDJMP addr 1001 0000 ;addrPCOR 1010 0100 ;(RS)or (RD)(RD)SUB addr 1011 1100 ;(RD) - (addr)(RD)XOR 1100 1100 ;(addr1)xor (addr2)(RD)AND 1101 0100 ;(RS)and (RD)(RD)NOT 1110 1100 ;/(RD)(RD)(3)指令微流程分析原有的五条指令的微流程如下图所示: 总微流程如图所示:RAMBUSBUSR1(R1R0)R0011D1E0101(D1+DR2)R001RAMBUSBUSARR0DR1DR1LED(R0-R1)R00B0F1C0105RAMBUSBUSDR2RAMBUSBUSRAMR0BUSBUSDR1RAMBUSBUSRORAMBUSBUSR10104080A0E1B01010101030C0D1AA0709PCARPC+1SWROPCARPC+1PCARPC+1PCARPC+1PCARPC+1PCARPC+1(R1R0)R0(R1R0)R0/(D1)R0PCARPC+1RAMBUSBUSIRP(1)测试010211101314151617181912NOTANDXORSUBORJMPOUTSTAADDINRAMBUSBUSARRAMBUSBUSPCRAMBUSBUSARRAMBUSBUSARRAMBUSBUSARRAMBUSBUSAR06该图是运行微程序的数据流图,实际上并没有分解到微命令一级。为了设计微程序,还应该根据此图进一步细化到微命令(微操作)一级。例如PCAR,实际上应该同时发出PCB、LDAR两个微命令;PC+1应该发出LDPC微命令;SWR0应该发出SWB、LDRi(与指令码中的相应位共同译码产生LDR0微命令)两个微命令;RAMBUS应该发出CE有效和读存储器两个微命令;BUSRAM应该发出CE有效和写存储器两个微命令;R0是指R0B微命令有效等等。据此可将该图改画成下图:CE有效WR=0LDDR0ALU做异或运算011D1E0101ALU做加运算01CE有效WR=0LDPCR0DR1ROB CE有效 ALU做减运算0B0F1C0105CE有效WR=0LDDR0ROB CE有效 WR=1CE有效WR=0LDDR0CE有效WR=0LDDR0CE有效WR=0LDDR00104080A0E1B01010101030C0D1A0709PCB LDARLDPCSWB有效 LDRiPCB LDARPCB LDARPCB LDARPCB LDARPCB LDARALU做或运算ALU做与运算ALU求反运算PCBLDAR LDPCCE有效WR=0LDIRP(1)测试010211101314151617181912NOTANDXORSUBORJMPOUTSTAADDINCE有效WR=0LDPCCE有效WR=0LDPCCE有效WR=0LDPCCE有效WR=0LDPCCE有效WR=0LDPCCE有效WR=0LDPC(4)基本模型机的微指令格式本模型机的微指令长共24位,基本采用水平型微指令字段直接编码方式,其控制位顺序如下:其中,S3、S2、S1、S0、M、CN(A24A19位)为ALU运算类型的控制字段,其输出不需译码直接连接到ALU的对应控制信号即可。需要指出的是,该字段无论如何编码,ALU都要进行某种运算,但是只要不发出ALUB微命令,ALU的运算结果都不会送到数据总线上,也就是不会对其它部件的操作产生任何影响。在设计微程序时,只要不发ALUB微命令,该字段的编码可以任意设置。 A18位为输出设备(LED)和主存(RAM)的读写控制字段,该位为0,表示读;该位为1,表示写。A17A16位(B1B0)字段用于选择外设和主存。B1B0=01选择主存(CE有效),B1B0=00选择输入数据开关(SWB有效),B1B0=10选择输出LED(LEDB有效)。B1B0=11对本模型机无效,即没有选中任何外设或主存。 对本模型机而言,上述三位可以看成一个字段,其编码的含义如下:uA18uA17uA16=000或100 从输入开关SW读数据uA18uA17uA16=001 从贮存读数据uA18uA17uA16=101 向主存写数据uA18uA17uA16=110 向LED写数据其他组合无意义。编写次微程序时采用011表示无效。A6A1位为6位的预置后续微地址,“预置”的含义是该字段与微地址控制字段以及指令寄存器等部件的内容共同产生下一条微指令在控存中的微地址。A、 B、C 三个译码字段,分别由三组译码控制电路译码产生各种微命令。A字段用于产生各寄存器的数据装入微命令,各种编码的含义如上表所示。 由于模型机有三个通用寄存器(R0、R1、R2),它们都有相应的数据装入微命令,为了不增加微指令的宽度,该字段只设计了一个LDRi命令。为了区分究竟是哪个寄存器装入数据,要根据指令寄存器的最低两位(I1I0)的状态而定:当I1I0=00时,发LDR0微命令;I1I0=01时,发LDR1微命令;I1I0=10时,发LDR2微命令;I1I0=11时,对本模型机无效;B字段中的RSB、RDB、RIB分别为源寄存器的内容送数据总线、目的寄存器送数据总线及变址寄存器送数据总线的微命令,其功能是根据机器指令来选通三个工作寄存器R0、R1及R2之一,将其内容送数据总线。 具体规则如下:如果RDB有效,根据指令寄存器的最低两位(I1I0)的状态决定哪个寄存器的内容送数据总线:当I1I0=00时,发R0B微命令;I1I0=01时,发R1B微命令;I1I0=10时,发R2B微命令;I1I0=11时,对本模型机无效;如果RSB有效,根据指令寄存器(I3I2)两位的状态决定哪个寄存器的内容送数据总线:当I3I2=00时,发R0B微命令;I3I2=01时,发R1B微命令;I3I2=10时,发R2B微命令;I3I2=11时,对本模型机无效;本模型机的变址寄存器固定为R2,故RIB有效就是R2B有效。基于上述字段的设计规则,在设计机器指令格式时,必须将目的寄存器的编码放在指令的第一个字节的I1I0位置,将源寄存器的编码放在指令的第一个字节的I3I2位置,且编码必须符合上述规则,即00代表寄存器R0,01代表寄存器R1,10代表寄存器R2。B字段中的299B是移位运算装置的数据端与数据总线相连的微命令。该装置在图中没有画出。C字段中的P(1)P(4)是四个测试字段。其功能是根据机器指令、A5A0字段及其它有关部件的内容,产生下一条微指令在控存中的微地址,使微程序转入相应的微地址入口,从而实现微程序的顺序、分支、循环运行等。AR为算术运算是否影响进位及判零标志控制位,低电平有效。LDPC为使PC+1的微命令。 P(1)P(4)的意义如下: P(1)测试的作用是次地址字段NA(41位)或指令寄存器IR(85位)产生下一条微指令在控存中的微地址的41位,下一条微指令在控存中的微地址的65位仍为NA字段的65位。 P(2)测试的作用是次地址字段NA(21位)或指令寄存器IR(43位)产生下一条微指令在控存中的微地址的21位,下一条微指令在控存中的微地址的63位仍为NA字段的63位。P(3)测试的作用是次地址字段NA(4位)或进位或零标志产生下一条微指令在控存中的微地址的4位,下一条微指令在控存中的微地址的其它位仍为NA字段的相应位。P(4)测试的作用是次地址字段NA(21位)或(SWC,SWA)产生下一条微指令在控存中的微地址的21位,下一条微指令在控存中的微地址的63位仍为NA字段的63位。(5)微程序设计01:00000100111011011000001002:00000101100000000101000003:00000100111000000000010004:00000100101100000000010105:00000101101000000000011006:10010101100110100000000107:00000100111000000000100008:00000110100000100000000109:0000010011100000000010100A:0000010010100000000010110B:0000011100001010000000010C:0000010011010001100000010D:0000010011100000000011100E:0000010010010000000011110F:01100001100100000000000110:00000100000110000000000111:00000101111011011000001112:00000101111011011000011113:00000101111011011000100114:00000101111011011000110015:00000101100101000000000116:01100001111011011000110117:01101001111011011001101018:10111001100101000000000119:0000100110010100000000011A:0000010011100000000110111B:0000010010010000000111111C:0000010011100000000111011D:0000010010010000000111101E:0110100110010100000000011F:000001001110000000011100(6)机器指令测试程序的编写00H:00000000 ;IN01H:00010000 ;ADD(R0)+(addr)(R0)02H:0001001103H:00100000 ;STA(R0)(addr)04H:0001010005H:00110000 ;OUT(addr)输出设备LED06H:0001010007H:01010100 ;OR (RS)or (RD)(RD)08H:01101100 ;SUB (RD) - (addr)(RD)09H:000100110AH:01111100 ;XOR(addr1)xor (addr2)(RD)0BH:00010010OCH:000100110DH:10001000 ;AND(RS)and (RD)(RD) 0EH:10011100 ;NOT /(RD)(RD) 0FH:01000000 ;JMP (addr)PC10H:00000000 11H:0000000112H:0000111013H:01110000(7)运行测试程序对编写的机器指令格式以及微程序进行检验微指令000001011110110110000010执行的操作是:PCB,LDAR,允许PC加1(LDPC=1),转微地址:02微指令000001011000000001010000执行的操作是:P(1)测试:NA(30)或(IR7IR4),转微地址:10微指令000001000001100000000001执行的操作是:299保持数据,输入开关SWB有效,299B,LDR0,转微地址:01微指令000001001110110110000010执行的操作是:存储器CE有效,存储器读,PCB,LDAR,允许PC加1(LDPC=1),转微地址:02微指令000001011000000001010000执行的操作是:P(1)测试:NA(30)或(IR7IR4),转微地址:10微指令000001000001100000000001执行的操作是:299保持数据,输入开关SWB有效,299B,LDR0,转微地址:01微指令000001001110110110000010执行的操作是:存储器CE有效,存储器读,PCB,LDAR,允许PC加1(LDPC=1),转微地址:02微指令000001011000000001010000执行的操作是:P(1)测试:NA(30)或(IR7IR4),转微地址:10微指令000001000001100000000001执行的操作是:299保持数据,输入开关SWB有效,299B,LDR0,转微地址:01微指令000001001110110110000010执行的操作是:存储器CE有效,存储器读,PCB,LDAR,允许PC加1(LDPC=1),转微地址:02微指令000001011000000001010000执行的操作是:P(1)测试:NA(30)或(IR7IR4),转微地址:10微指令000001000001100000000001执行的操作是:299保持数据,输入开关SWB有效,299B,LDR0,转微地址:01微指令000001001110110110000010执行的操作是:存储器CE有效,存储器读,PCB,LDAR,允许PC加1(LDPC=1),转微地址:02微指令000001011000000001010000执行的操作是:P(1)测试:NA(30)或(IR7IR4),转微地址:10微指令000001000001100000000001执行的操作是:299保持数据,输入开关SWB有效,299B,LDR0,转微地址:01微指令000001001110110110000010执行的操作是:存储器CE有效,存储器读,PCB,LDAR,允许PC加1(LDPC=1),转微地址:02微指令000001011000000001010000执行的操作是:P(1)测试:NA(30)或(IR7IR4),转微地址:10微指令000001000001100000000001执行的操作是:299保持数据,输入开关SWB有效,299B,LDR0,转微地址:01微指令000001001110110110000010执行的操作是:存储器CE有效,存储器读,PCB,LDAR,允许PC加1(LDPC=1),转微地址:02微指令000001011000000001010000执行的操作是:P(1)测试:NA(30)或(IR7IR4),转微地址:10微指令000001000001100000000001执行的操作是:299保持数据,输入开关SWB有效,299B,LDR0,转微地址:01微指令000001001110110110000010执行的操作是:存储器CE有效,存储器读,PCB,LDAR,允许PC加1(LDPC=1),转微地址:02微指令000001011000000001010000执行的操作是:P(1)测试:NA(30)或(IR7IR4),转微地址:10微指令000001000001100000000001执行的操作是:299保持数据,输入开关SWB有效,299B,LDR0,转微地址:01微指令000001001110110110000010执行的操作是:存储器CE有效,存储器读,PCB,LDAR,允许PC加1(LDPC=1),转微地址:02微指令000001011000000001010000执行的操作是:P(1)测试:NA(30)或(IR7IR4),转微地址:10微指令000001000001100000000001执行的操作是:299保持数据,输入开关SWB有效,299B,LDR0,转微地址:01微指令000001001110110110000010执行的操作是:存储器CE有效,存储器读,PCB,LDAR,允许PC加1(LDPC=1),转微地址:02微指令000001011000000001010000执行的操作是:P(1)测试:NA(30)或(IR7IR4),转微地址:10微指令000001000001100000000001执行的操作是:299保持数据,输入开关SWB有效,299B,LDR0,转微地址:01微指令000001001110110110000010执行的操作是:存储器CE有效,存储器读,PCB,LDAR,允许PC加1(LDPC=1),转微地址:02微指令000001011000000001010000执行的操作是:P(1)测试:NA(30)或(IR7IR4),转微地址:10微指令000001000001100000000001执行的操作是:299保持数据,输入开关SWB有效,299B,LDR0,转微地址:01微指令000001001110110110000010执行的操作是:存储器CE有效,存储器读,PCB,LDAR,允许PC加1(LDPC=1),转微地址:02微指令000001011000000001010000执行的操作是:P(1)测试:NA(30)或(IR7IR4),转微地址:10微指令000001000001100000000001执行的操作是:299保持数据,输入开关SWB有效,299B,LDR0,转微地址:01微指令000001001110110110000010执行的操作是:存储器CE有效,存储器读,PCB,LDAR,允许PC加1(LDPC=1),转微地址:02微指令000001011000000001010000执行的操作是:P(1)测试:NA(30)或(IR7IR4),转微地址:10微指令000001000001100000000001执行的操作是:299保持数据,输入开关SWB有效,299B,LDR0,转微地址:01微指令000001001110110110000010执行的操作是:存储器CE有效,存储器读,PCB,LDAR,允许PC加1(LDPC=1),转微地址:02微指令000001011000000001010000执行的操作是:P(1)测试:NA(30)或(IR7IR4),转微地址:10微指令000001000001100000000001执行的操作是:299保持数据,输入开关SWB有效,299B,LDR0,转微地址:01微指令000001001110110110000010执行的操作是:存储器CE有效,存储器读,PCB,LDAR,允许PC加1(LDPC=1),转微地址:02微指令000001011000000001010000执行的操作是:P(1)测试:NA(30)或(IR7IR4),转微地址:10微指令000001000001100000000001执行的操作是:299保持数据,输入开关SWB有效,299B,LDR0,转微地址:01微指令000001001110110110000010执行的操作是:存储器CE有效,存储器读,PCB,LDAR,允许PC加1(LDPC=1),转微地址:02微指令000001011000000001010000执行的操作是:P(1)测试:NA(30)或(IR7IR4),转微地址:10微指令000001000001100000000001执行的操作是:299保持数据,输入开关SWB有效,299B,LDR0,转微地址:01微指令000001001110110110000010执行的操作是:存储器CE有效,存储器读,PCB,LDAR,允许PC加1(LDPC=1),转微地址:02微指令000001011000000001010000执行的操作是:P(1)测试:NA(30)或(IR7IR4),转微地址:10微指令000001000001100000000001执行的操作是:299保持数据,输入开关SWB有效,299B,LDR0,转微地址:01微指令000001001110110110000010执行的操作是:存储器CE有效,存储器读,PCB,LDAR,允许PC加1(LDPC=1),转微地址:02微指令000001011000000001010000执行的操作是:P(1)测试:NA(30)或(IR7IR4),转微地址:10微指令000001000001100000000001执行的操作是:299保持数据,输入开关SWB有效,299B,LDR0,转微地址:01微指令000001001110110110000010执行的操作是:存储器CE有效,存储器读,PCB,LDAR,允许PC加1(LDPC=1),转微地址:02微指令000001011000000001010000执行的操作是:P(1)测试:NA(30)或(IR7IR4),转微地址:10微指令000001000001100000000001执行的操作是:299保持数据,输入开关SWB有效,299B,LDR0,转微地址:01微指令000001001110110110000010执行的操作是:存储器CE有效,存储器读,PCB,LDAR,允许PC加1(LDPC=1),转微地址:02微指令000001011000000001010000执行的操作是:P(1)测试:NA(30)或(IR7IR4),转微地址:10微指令000001000001100000000001执行的操作是:299保持数据,输入开关SWB有效,299B,LDR0,转微地址:01微指令000001001110110110000010执行的操作是:存储器CE有效,存储器读,PCB,LDAR,允许PC加1(LDPC=1),转微地址:02微指令000001011000000001010000执行的操作是:P(1)测试:NA(30)或(IR7IR4),转微地址:10微指令000001000001100000000001执行的操作是:299保持数据,输入开关SWB有效,299B,LDR0,转微地址:01微指令000001001110110110000010执行的操作是:存储器CE有效,存储器读,PCB,LDAR,允许PC加1(LDPC=1),转微地址:02微指令000001011000000001010000执行的操作是:P(1)测试:NA(30)或(IR7IR4),转微地址:10微指令000001000001100000000001执行的操作是:299保持数据,输入开关SWB有效,299B,LDR0,转微地址:01微指令000001001110110110000010执行的操作是:存储器CE有效,存储器读,PCB,LDAR,允许PC加1(LDPC=1),转微地址:02微指令000001011000000001010000执行的操作是:P(1)测试:NA(30)或(IR7IR4),转微地址:10微指令000001000001100000000001执行的操作是:299保持数据,输入开关SWB有效,299B,LDR0,转微地址:01(8)问题解答通过使用作者开发的微程序分析和设计仿真软件,熟悉本文介绍的为基本模型机而设计的微程序的执行过程。必须充分理解并正确解释下列问题:1微程序中的微指令的各个字段的作用。哪些字段是不译码的,哪些字段是直接译码的,哪些字段又可以看成是字段间接编码的。答:直接译码的是A、B、C字段;不译码的是S3B0字段;而间接编码的是uA6uA1。2微程序中的微指令是否是顺序执行的,如果不是,那么次地址是如何产生的。什么情况下,次地址字段才是将要执行的微指令的地址。答:微程序中的微指令不是顺序执行的,如果遇到P(1)P(4)测试时,则根据机械指令,uA5uA其他有关部件的内容,产生下一条微指令在空存中的微地址,是微程序转入相应的微地址入口,从而实现微程序的顺序、分支、循环运行等。例如遇到P(1)测试,则下一条微指令在空存中的微地址的41位是用次地址字段NA(41位)或指令寄存器IR(85位)所产生,下一条微指令的微地址仍为 NA字段的65位。如果没有遇到P(1)P(4)测试的话,那么次地址即为该微指令地址字段所指向的微地址。3在微程序中如何根据机器指令中的相关位实现分支,据此,在设计机器指令时应如何避免和解决与其它指令的微指令的微地址冲突。答:微程序中是根据测试程序的机器指令中的85位和微程序中后六位进行“或”运算来实现分支的。避免和解决与其它指令的微指令的微地址冲突的方法就是不用已经被其它微指令用过的微地址。4哪些微指令是执行所有指令都要用到的。答:01:00000101111011011000001002:0000010011000000011100005解释一条机器指令的微程序的各条微指令的微地址是否连续?这些微指令的微地址的安排的严重原则是什么?答:不连续。严重原则是将各条机器指令的入口微地址置于地址连续的地址单元中,避免其它微指令乱用这一段地址。6为什么读写一次内存总要用两条微指令完成?答:因为W/R只有两种状态,即要么是读,要么是写,所以,要完成一次读写总要用两条微指令完成。7机器程序中用到的寄存器是R0,是由机器指令中哪些位决定的?如果要用R1或R2,是否要改写微程序或改写机器指令?如果要,应如何改写?答:是由机器指令中的21位决定。如果要用到R1或R2,那么不需要改写微程序,但得改写机器指令的低两位,即21位,若要用到R1,则将其改为01,若要用R2,则将其改为10。(8)心得体会 为期一周半的课程设计快结束了,回忆起此次课程设计,我感触颇深。这一次的课程设计并不是很难,只是有点烦而已,所以耐心很重要。俗话说会者不难,难者不会,当你把原理都搞懂之后,一切就水到渠成了。平时的实验课我都能很好地完成,所以,课程设计开始几天就没有太在意,总觉得很简单,我能够做好。但是,实施却并非如此。一开始老师没有讲原理,自己看辅导书也是一头雾水,根本分不清书中的“东西南北”。后来老师讲解了一下,虽然说比较详细,根本也还是一窍不通。知道各个部分的功能,但是具体怎么实现不清楚,为什么这样编写更加不清楚,所以迟迟没有进展。到了最后三天,开始问同学,也开始真正着手编写微指令和机器指令,此时的我,自以为了解了很多,而编写出来的程序根本运行不了,不管是微指令还是机器指令都会出现运行错误。于是,我又重新按照老师的要求,画流程图,写代码,了解代码每一部分的来源跟去向,尤其是机器指令编写时比较繁琐,有的时候由于微指令地址的原因,机器指令根本写不出来,所以只好更改伪指令的地址,此时比较复杂,最好的方法就是更改02号微指令的后续指令地址,随之而来的是几乎全部的微指令后续地址的更改。过程虽然比较繁琐,但是,经过这一轮修改,指令已经基本能够运行,这让我有莫大的欣慰。虽然在后来调试过程中还是出现了一些问题,但是都很快得到了解决。这些问题的解决,不仅跟我个人的努力有关,还包含了同学和老师的帮助。进过此次课程设计,我知道不管平时学习得如何,都不能放松对自己的要求,对新的知识点要能够抓住重点才能抓住其本质,只有掌握了本质,才能顺利的驾驭它,运用好它。 (9)参考资料唐朔飞.计算机组成原理,北京,高等教育出版社,2008.1蒋君,于启红,卞利.课程设计指导书-简单模型机的微程序设计,宿迁,2010.4
展开阅读全文
相关资源
相关搜索

最新文档


当前位置:首页 > 管理文书 > 施工组织


copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!