
简单模型机的微程序设计(共9页).doc
9页精选优质文档-----倾情为你奉上一.设计题目计算机组成原理课程设计——简单模型机的微程序设计2. 主要内容一般地讲,编写微程序可以分成以下几步: 1、设计机器的指令格式 2、对所设计的指令进行分析,画出各指令的用微命令表示的微流程图不仅要画出每个对应一条微指令的功能框内的微命令,而且要初步确定该条微指令在控存中的微地址,以便于在设计微程序时确定前一条指令的次地址NA字段和C字段的编码在这个过程中,一定要注意P(1)测试的规则以及指令高四位的编码 3、根据微流程图的顺序,一个功能框一个功能框地确定各字段的编码,将这些字段组合即可形成一条条的微指令编码这些微指令的集合就是可以完成所设计的指令功能的微程序当然这样设计的微程序有可能不完全正确,还需要进一步检查修改 以上几步可以用脑、手、纸、笔即可完成 4、对设计的微程序进行检查修改本模型机可以手动地用开关将微程序输入机器的控存为了能将要执行的指令输入主存,在微程序中必须安排一端相应的微程序;为了能检查输入的指令是否正确,也要设计一段微程序3. 具体要求 1.通过使用作者开发的微程序分析和设计仿真软件,熟悉介绍的为基本模型机而设计的微程序的执行过程。
必须充分理解并正确解释下些问题:(1)微程序中的微指令的各个字段的作用哪些字段是不译码的,哪些字段是直接译码的,哪些字段又可以看成是字段间接编码的 答:不译码的是S3~B0字段;直接译码的是A、B、C字段;间接编码的是uA6~uA12)微程序中的微指令是否是顺序执行的,如果不是,那么次地址是如何产生的什么情况下,次地址字段才是将要执行的微指令的地址 答:微程序中的微指令不是顺序执行的如果遇到P(1)测试时,则在每一条功能指令执行完后,进行一次P(1)测试,根据P(1)测试跳到下一条机器指令的微地址P(1)测试就是根据测试程序的机器指令中的8~5位和微程序的后六位进行或运算来实现分支,此次课程设计的微程序后六位设计为,则根据下面各功能的指令设计,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位和微程序中后六位进行“或”运算来实现分支的避免和解决与其它指令的微指令的微地址冲突的方法就是使用不同没有被其他微指令用过的微地址4)哪些微指令是执行所有指令都要用到的答:01:10 02:00(5)解释一条机器指令的微程序的各条微指令的微地址是否连续?这些微指令的微地址的安排的严重原则是什么?答:不连续严重原则是将各条机器指令的入口微地址置于地址连续的地址单元中,避免其它微指令乱用这一段地址6)为什么读写一次内存总要用两条微指令完成?答:因为W/R只有两种状态,即要么是读,要么是写,所以,要完成一次读写总要用两条微指令完成7)机器程序中用到的寄存器是R0,是由机器指令中哪些位决定的?如果要用R1或R2,是否要改写微程序或改写机器指令?如果要,应如何改写?答:是由机器指令中的2~1位决定如果要用到R1或R2,那么不需要改写微程序,但得改写机器指令的低两位,即2~1位,若要用到R1,则将其改为01,若要用R2,则将其改为10 2.根据基本模型机的硬件设计五条机器指令:外设输入指令IN、二进制加法指令ADD、存数指令STA、输出到外设指令OUT、无条件转移指令JMP。
并且增添下列五条指令:①新加法指令 NADD RD,RS:(RS)加(RS)→(RD)②或指令OR RD,RS:(RS)或(RD)→(RD)③异或指令XOR RD,RS:(RS)异或(RD)→(RD) ④与指令AND RD,RS:(RS)与(RD)→(RD)⑤数据传送指令MOV RD,RS:(RS)→(RD)四.进度安排共1.5周11天的时间,具体安排如下:1~2天:对整个课程设计内容作详细的讲解,并学生完成课程设计指导书的学习,使其掌握和理解课程设计的核心内容3~5天:学生在机房学习熟悉课程设计所使用的仿真软件,并深入了解该仿真软件所实现的模型机的指令系统和微程序的设计方法6~9天:在原有5条机器指令的基础上增加实现下述各功能的机器指令,试设计相应的机器指令的格式并改写原来的微程序使其可以运行所有的机器指令10~11天:根据自己设计的微程序系统写出相应的课程设计报告五.成绩评定正文一. 课程设计的目的1. 计算机的硬件基本组成2. 计算机中机器指令的设计3. 计算机中机器指令的执行过程4. 微程序控制器的工作原理5. 微指令的格式设计原则在此基础上设计可以运行一些基本机器指令的微程序的设计二. 课程设计的内容1. 编写基本模型机的指令基本模型机的指令设计: 助记符 机器指令码 说 明IN 0000 0000 ; 置数开关SW(KD0~KD7)的状态→R0ADD addr 0001 0000 ×××× ×××× ; (R0)+(addr)→(R0) STA addr 0010 0000 ×××× ×××× ; (R0)→(addr)OUT addr 0011 0000 ×××× ×××× ; (addr)→输出设备"LED"JMP addr 0100 0000 ×××× ×××× ; addr→PCMOV 0101RS RD ;RS:(RS)→(RD)NADD 0110RSRD ;(RS)+(RS)→(RD)AND 0111RS RD ;(RS)and (RD)→(RD)OR 1000RS RD ;(RS)or (RD)→(RD)XOR 1001RS RD ;(RS)xor (RD)→(RD)说明: 十条指令分别为外设输入指令(IN)、二进制加法指令(ADD)、存数指令(STA)、输出到外设指令(OUT)、无条件转移指令(JMP)、寄存器间传数指令(MOV)、新加法指令(NADD)、与指令(AND)、或指令(OR)、异或指令(XOR)。
××××××××为要读写的主存储器单元的二进制地址码2. 根据基本模型机的指令画流程图(1)、(2)01PC → ARPC+1 02RAM→ BUSBUS → IRP(1)测试XORORANDNANDMOVJMPOUTSTAADDIN17181916151413121110RS→DR1RS→DR1RS→DR1RS→DR1RS→RDPC→ARPC+1PC→ARPC+1PC→ARPC+1SW→R0PC→ARPC+1 1C 1A 0E0D030907(DR1+DR1)→RDRAM→BUSBUS→ARRAM→BUSBUS→ARRAM→BUSBUS→AR010CRD→DR2RD→DR2RD→DR2RAM→BUSBUS→PCC01 1B 0F0A 1D01RAM→BUSBUS→DR1R0→BUSBUS→RAM0804(DR1与DR2) → RDRAM→BUSBUS→DR2(DR1异或DR2) → RD(DR1或DR2) → RD010B05R0→ DR101DR1→LED01010106(DR1+DR2)→R001 01 流程图(1) 01PCBLDARLDPC02CE有效W/R=0LDIRP(1)测试XORORANDNADDMOVJMPOUTSTAADDIN17181916151413121110RSBLDDR1RSBLDDR1RSBLDDR1RSBLDDR1RSBLDRiPCBLDARLDPCPCBLDARLDPCPCBLDARLDPCSWB有效LDRiPCBLDARLDPC0D031C1A0E0907ALU做新加法 LDRiALUB010CCE有效W/R=0LDARRDBLDDR2RDBLDDR2RDBLDDR2CE有效W/R=0LDARCE有效W/R=0LDAR01CE有效W/R=0LOAD0A1D1B0F080401CE有效W/R=0LDDR2ALU做“异或”LDRiALUBALU做“或”LDRiALUBALU做“与”LDRiALUBCE有效W/R=0LDDR1R0BCE有效W/R=1010B05R0B有效LDDR101ALUBLEDBALU=AW/R=101010106ALU做加法LDRiALUB01 01 流程图(2)3. 根据基本模型机微指令格式按流程图顺序写出微程序代码:编写的机器指令代码如下:01:10 02:0003:0004:0105:1006:0107:0008:0109:100A:110B:01 0C:010D:010E:11 0F:01 10:0111:1112:1113:0114:0015:01 16:01 17:10 18:1019:00 1A:11 1B:01 1C。
