您好,欢迎访问三七文档
当前位置:首页 > 商业/管理/HR > 企业财务 > 简单模型机的微程序设计
一.设计题目计算机组成原理课程设计——简单模型机的微程序设计二.主要内容一般地讲,编写微程序可以分成以下几步:1、设计机器的指令格式。2、对所设计的指令进行分析,画出各指令的用微命令表示的微流程图。不仅要画出每个对应一条微指令的功能框内的微命令,而且要初步确定该条微指令在控存中的微地址,以便于在设计微程序时确定前一条指令的次地址NA字段和C字段的编码。在这个过程中,一定要注意P(1)测试的规则以及指令高四位的编码。3、根据微流程图的顺序,一个功能框一个功能框地确定各字段的编码,将这些字段组合即可形成一条条的微指令编码。这些微指令的集合就是可以完成所设计的指令功能的微程序。当然这样设计的微程序有可能不完全正确,还需要进一步检查修改。以上几步可以用脑、手、纸、笔即可完成。4、对设计的微程序进行检查修改。本模型机可以手动地用开关将微程序输入机器的控存。为了能将要执行的指令输入主存,在微程序中必须安排一端相应的微程序;为了能检查输入的指令是否正确,也要设计一段微程序。三.具体要求1.通过使用作者开发的微程序分析和设计仿真软件,熟悉介绍的为基本模型机而设计的微程序的执行过程。必须充分理解并正确解释下些问题:(1)微程序中的微指令的各个字段的作用。哪些字段是不译码的,哪些字段是直接译码的,哪些字段又可以看成是字段间接编码的。答:不译码的是S3~B0字段;直接译码的是A、B、C字段;间接编码的是uA6~uA1。(2)微程序中的微指令是否是顺序执行的,如果不是,那么次地址是如何产生的。什么情况下,次地址字段才是将要执行的微指令的地址。答:微程序中的微指令不是顺序执行的。如果遇到P(1)测试时,则在每一条功能指令执行完后,进行一次P(1)测试,根据P(1)测试跳到下一条机器指令的微地址。P(1)测试就是根据测试程序的机器指令中的8~5位和微程序的后六位进行或运算来实现分支,此次课程设计的微程序后六位设计为010000,则根据下面各功能的指令设计,IN、ADD、STA、OUT、JMP、MOV、NADD、AND、OR、XOR的入口地址分别为10H、11H、12H、13H、14H、15H、16H、17H、18H、19H。如果没有遇到P(1)测试的话,那么次地址即为该微指令地址字段所指向的微地址。(3)在微程序中如何根据机器指令中的相关位实现分支,据此,在设计机器指令时应如何避免和解决与其它指令的微指令的微地址冲突。答:微程序中是根据测试程序的机器指令中的8~5位和微程序中后六位进行“或”运算来实现分支的。避免和解决与其它指令的微指令的微地址冲突的方法1就是使用不同没有被其他微指令用过的微地址。(4)哪些微指令是执行所有指令都要用到的。答:01:00000011111011011000001002:000000001100000001010000(5)解释一条机器指令的微程序的各条微指令的微地址是否连续?这些微指令的微地址的安排的严重原则是什么?答:不连续。严重原则是将各条机器指令的入口微地址置于地址连续的地址单元中,避免其它微指令乱用这一段地址。(6)为什么读写一次内存总要用两条微指令完成?答:因为W/R只有两种状态,即要么是读,要么是写,所以,要完成一次读写总要用两条微指令完成。(7)机器程序中用到的寄存器是R0,是由机器指令中哪些位决定的?如果要用R1或R2,是否要改写微程序或改写机器指令?如果要,应如何改写?答:是由机器指令中的2~1位决定。如果要用到R1或R2,那么不需要改写微程序,但得改写机器指令的低两位,即2~1位,若要用到R1,则将其改为01,若要用R2,则将其改为10。2.根据基本模型机的硬件设计五条机器指令:外设输入指令IN、二进制加法指令ADD、存数指令STA、输出到外设指令OUT、无条件转移指令JMP。并且增添下列五条指令:①新加法指令NADDRD,RS:(RS)加(RS)→(RD)②或指令ORRD,RS:(RS)或(RD)→(RD)③异或指令XORRD,RS:(RS)异或(RD)→(RD)④与指令ANDRD,RS:(RS)与(RD)→(RD)⑤数据传送指令MOVRD,RS:(RS)→(RD)四.进度安排共1.5周11天的时间,具体安排如下:1~2天:对整个课程设计内容作详细的讲解,并辅导学生完成课程设计指导书的学习,使其掌握和理解课程设计的核心内容。3~5天:学生在机房学习熟悉课程设计所使用的仿真软件,并深入了解该仿真软件所实现的模型机的指令系统和微程序的设计方法。6~9天:在原有5条机器指令的基础上增加实现下述各功能的机器指令,试设计相应的机器指令的格式并改写原来的微程序使其可以运行所有的机器指令。10~11天:根据自己设计的微程序系统写出相应的课程设计报告。五.成绩评定2正文一.课程设计的目的1.计算机的硬件基本组成2.计算机中机器指令的设计3.计算机中机器指令的执行过程4.微程序控制器的工作原理5.微指令的格式设计原则在此基础上设计可以运行一些基本机器指令的微程序的设计二.课程设计的内容1.编写基本模型机的指令基本模型机的指令设计:助记符机器指令码说明IN00000000;置数开关SW(KD0~KD7)的状态→R0ADDaddr00010000××××××××;(R0)+(addr)→(R0)STAaddr00100000××××××××;(R0)→(addr)OUTaddr00110000××××××××;(addr)→输出设备LEDJMPaddr01000000××××××××;addr→PCMOV0101RSRD;RS:(RS)→(RD)NADD0110RSRD;(RS)+(RS)→(RD)AND0111RSRD;(RS)and(RD)→(RD)OR1000RSRD;(RS)or(RD)→(RD)XOR1001RSRD;(RS)xor(RD)→(RD)说明:十条指令分别为外设输入指令(IN)、二进制加法指令(ADD)、存数指令(STA)、输出到外设指令(OUT)、无条件转移指令(JMP)、寄存器间传数指令(MOV)、新加法指令(NADD)、与指令(AND)、或指令(OR)、异或指令(XOR)。××××××××为要读写的主存储器单元的二进制地址码。32.根据基本模型机的指令画流程图(1)、(2)流程图(1)PC→ARPC+1RAM→BUSBUS→IRP(1)测试SW→R0PC→ARPC+1RAM→BUSBUS→DR2R0→DR1(DR1+DR2)→R0PC→ARPC+1RAM→BUSBUS→ARRAM→BUSBUS→ARR0→BUSBUS→RAMRAM→BUSBUS→PCCPC→ARPC+1PC→ARPC+1RAM→BUSBUS→ARRAM→BUSBUS→DR1DR1→LEDRS→RDRS→DR1(DR1+DR1)→RDRS→DR1RS→DR1RS→DR1RD→DR2RD→DR2RD→DR2(DR1与DR2)→RD(DR1或DR2)→RD(DR1异或DR2)→RD0102IN10ADDSTAOUTJMPMOVNANDANDORXOR111213141516171819030405060708090A0B0C0D0E0F1A1B1C1D010101010101010101014流程图(2)PCBLDARLDPCCE有效W/R=0LDIRP(1)测试SWB有效LDRiPCBLDARLDPCCE有效W/R=0LDDR2R0B有效LDDR1ALU做加法LDRiALUBPCBLDARLDPCCE有效W/R=0LDARCE有效W/R=0LDARR0BCE有效W/R=1CE有效W/R=0LOADPCBLDARLDPCPCBLDARLDPCCE有效W/R=0LDARCE有效W/R=0LDDR1ALUBLEDBALU=AW/R=1RSBLDRiRSBLDDR1ALU做新加法LDRiALUBRSBLDDR1RSBLDDR1RSBLDDR1RDBLDDR2RDBLDDR2RDBLDDR2ALU做“与”LDRiALUBALU做“或”LDRiALUBALU做“异或”LDRiALUB0102IN10ADDSTAOUTJMPMOVNADDANDORXOR111213141516171819030405060708090A0B0C0D0E0F1A1B1C1D0101010101010101010153.根据基本模型机微指令格式按流程图顺序写出微程序代码:编写的机器指令代码如下:01:00000011111011011000001002:00000000110000000101000003:00000000111000000000010004:00000000101100000000010105:00000011101001000000011006:10010111100110100000000107:00000000111000000000100008:00000010100000100000000109:0000000011100000000010100A:0000000010100000000010110B:0000011100001010000000010C:0000000011010000000000010D:1100011110011010000000010E:0000001110110100000011110F:10111111100110100000000110:00000000000100000000000111:00000011111011011000001112:00000011111011011000011113:00000011111011011000100114:00000011111011011000110015:00000011100100100000000116:00000011101000100000110117:00000011101000100000111018:00000011101000100001101019:0000001110100010000111001A:0000001110110100000110111B:1110111110011010000000011C:0000001110110100000111011D:0110111110011010000000016下面是利用该软件设计的微程序编码及各条微指令的功能分析:242322212019181716151413121110987654321S3S2S1S0MCnWEB1B0ABCuA6uA5uA4uA3uA2uA101:000000无效111无效110LDAR110PCB110LDPC000010转微地址:0202:000000无效001从主存读100LDIR000无效001P(1)010000转微地址:NA(4~1位)或IR(8~5位)03:000000无效001从主存读110LDAR000无效000无效000100转微地址:0404:000000无效001从主存读011LDDR2000无效000无效000101转微地址:0505:000000无效111无效010LDDR1010RDB000无效000110转微地址:0606:100101ALU作加法111无效001LDRi101ALUB000无效000001转微地址:0107:000000无效001从主存读110LDAR000无效000无效001000转微地址:0808:000000无效101向主存写000无效001RSB000无效000001转微地址:0109:000000无效001从主存读110LDAR000无效000无效001010转微地址:0A0A:000000无效001从主存读010LDDR1000无效000无效001011转微地址:0B0B:000001ALU=A110向LED写000无效101ALUB000无效000001转微地址:010C:000000无效001从主存读101LOAD000无效000无效000001转微地址:010D:110001ALU(A
本文标题:简单模型机的微程序设计
链接地址:https://www.777doc.com/doc-4419274 .html