7.5微程序控制器7.5.1微程序控制基本原理7.5.2微指令编码方式7.5.3微程序的顺序控制7.5.4微程序控制的时序27.5.1微程序控制基本原理基本思想:计算机操作可以归结为信息传递,而信息传递的关键是控制门。控制门可以用存储器中的信息来控制,从而可用类似于程序设计的方法来设计复杂的控制逻辑,这就是微程序控制的基本思想。硬件设计简单、规整;灵活性好,便于扩充指令。执行速度慢37.5.1微程序控制基本原理微程序控制的基本概念微命令与微操作:用来打开或关闭信息控制门的控制命令称为微命令,由微命令控制实现的最基本操作称作微操作。微指令:若干个微命令的组合。通常以编码的形式存放在控存中。微程序:微指令的有序组合。一段微程序控制实现一条机器指令。4微程序控制器的基本组成控制存储器CM微指令寄存器µIRPSWIR微地址寄存器µAR微地址形成电路µAG微操作控制部分顺序控制部分5控制存储器CM微指令寄存器µIRPSWIR微地址寄存器µAR微地址形成电路µAG微操作控制部分顺序控制部分微程序控制器的基本组成控制存储器和微地址用来存放微程序的存储器称为控制存储器,简称控存(CM)。每个控存单元存放一条微指令。控存单元的地址称为微地址,即微指令的地址。6微程序控制器的基本组成控制存储器CM微指令寄存器µIRPSWIR微地址寄存器µAR微地址形成电路µAG微操作控制部分顺序控制部分7微程序控制器的基本组成微指令寄存器µIR标志微指令执行的开始微操作控制部分以编码的形式存在,经过微指令译码后形成微操作控制信号,即微命令。顺序控制部分控制微指令的执行顺序,包含了下一条微指令地址的信息,用于形成后继微指令的微地址。控制存储器CM微指令寄存器µIRPSWIR微地址寄存器µAR微地址形成电路µAG微操作控制部分顺序控制部分8微程序控制器的基本组成控制存储器CM微指令寄存器µIRPSWIR微地址寄存器µAR微地址形成电路µAG微操作控制部分顺序控制部分9微程序控制器的基本组成微地址形成电路µAG。有三个输入µIR的顺序控制部分IR主要用于产生微程序的入口地址,比如依据指令的操作码形成对应各指令执行阶段的微程序入口地址。PSW在某些场合,需要根据PSW中的状态标志决定分支转移的微地址。控制存储器CM微指令寄存器µIRPSWIR微地址寄存器µAR微地址形成电路µAG微操作控制部分顺序控制部分10微程序控制器的基本组成控制存储器CM微指令寄存器µIRPSWIR微地址寄存器µAR微地址形成电路µAG微操作控制部分顺序控制部分11微程序控制器的基本组成微地址寄存器µAR接收µAG形成的微地址标志从控存中读取下一条微指令的开始初始值取指令微程序的入口地址在系统复位时初始化控制存储器CM微指令寄存器µIRPSWIR微地址寄存器µAR微地址形成电路µAG微操作控制部分顺序控制部分RESET12微程序控制的基本工作过程取指令微程序复位取源操作数微程序取目的操作数微程序无操作数指令的执行阶段微程序有操作数指令的执行阶段微程序指令类型双操作数指令单操作数指令无操作数指令137.5.2微指令编码方式水平型微指令微指令的字长比较长在一条微指令中可以产生较多的微命令操作的并行性较高。垂直型微指令微指令的字长比较短操作的并行性不高微程序比水平型的要长147.5.2微指令编码方式直接控制方式微指令中微操作控制部分的每一位对应一个微命令,微命令的产生不必经过译码,输出后直接作为微操作控制信号。因此又称不译法。例如将ALU和移位寄存器的控制信号用直接控制法进行组合特点直观、硬件实现简单,执行速度快,具有高度的并行操作能力。编码效率低,微指令字长很长,对控存容量的需求较大,不经济,缺乏实用价值。是典型的水平型微指令SLSRSVADDADDCSUBSUBBANDORNOTALUSLSRSVANDORNOTSHIFTERdstsrcADDADCSUBSUBB157.5.2微指令编码方式字段直接编码方式将微指令分为若干个字段,每个字段独立编码,每种编码表示一个微命令既可以缩短微指令字长,又保持了一定的并行操作能力并没有导致微程序变长,仍然属于水平型微指令格式2位3位移位控制字段运算控制字段00:NOP000:NOP01:SL001:ADD10:SR010:ADDC11:SV011:SUB100:SUBB101:AND110:OR111:NOT译码译码移位控制字段运算控制字段NOTADDCADDSVSRSLmIR……167.5.2微指令编码方式字段直接编码方式相斥性微命令在一个微周期中不应该或者不可能同时出现的微命令例如–ALU的运算控制微命令–存储器的读和写相容性微命令可以同时出现的微命令例如,ALU和存储器之间的微命令分段原则相斥性的微命令安排在同一字段,而相容性的、尤其是那些必须同时操作的相容性微命令安排在不同字段177.5.2微指令编码方式字段间接编码方式微命令的产生并不是直接从一个字段译码得到,而是需要另一个字段的编码加以解释有效地压缩了微指令字长,不仅组内的微命令是相斥的,组与组之间也成为互斥的,降低了微指令的并行操作能力,接近于垂直型微指令格式。译码器译码器字段N字段K字段0…………译码器译码器………………187.5.3微程序的顺序控制MicroprogramSequenceControl当前微指令执行完毕后,如何产生下一条微指令的地址。实质上就是微地址形成问题。控制存储器CM微指令寄存器µIRPSWIR微地址寄存器µAR微地址形成电路µAG微操作控制部分顺序控制部分197.5.3微程序的顺序控制增量计数器法在顺序执行时,µAR+1µAR也称为µPC,即微程序计数器需要转移时,由微转移指令给出转移微地址,更新µAR两种微指令格式微命令微转移缺点微转移指令将耗费一个微周期。由于微程序中的转移是频繁发生的,这就制约了微程序的运行速度。适合速度要求不高的计算机采用。0微操作控制部分1微转移地址207.5.3微程序的顺序控制下一地址字段法设置一个专门的字段,用来指明下一条微指令的地址纯粹的下址字段法不能产生分支转移增加转移方式字段下址字段作为后继微地址的高位部分,指定了后继微地址在某个区域内。转移方式字段控制硬件逻辑测试相关状态条件,产生后继微地址的低位部分。状态条件的不同,将产生不同的微地址,实现两分支或多分支转移。微操作控制部分下址字段微操作控制部分转移方式字段下址字段217.5.4微程序控制的时序完成一条微指令分为两个阶段:取微指令(CP1)和执行微指令(CP2)控制存储器CM微指令寄存器µIRPSWIR微地址形成电路µAG微操作控制部分顺序控制部分时序发生微地址寄存器µARCP1CP2227.5.4微程序控制的时序串行执行方式取微指令和执行微指令按顺序进行,在一条微指令执行完成后,才去取下一条微指令。CP1的上升沿:将下地址打入µAR,启动一次读操作。CP2上升沿:将CM中读出的微指令打入µIR,开始执行微指令。取i条微指令执行i条微指令取i+1条执行i+1条微指令tCMtµopCP1CP2237.5.4微程序控制的时序控制存储器CM微指令寄存器µIR微操作控制部分顺序控制部分时序发生微地址寄存器µARCP1CP2CP1CP2控制存储器CM微指令寄存器µIR微操作控制部分顺序控制部分时序发生微地址寄存器µARCP1CP2CP1周期内CM输出不变CP2周期内µIR输出不变247.5.4微程序控制的时序CP1上升沿的第二个作用:将操作结果打入某个寄存器,结束当前微周期。CP1的上升沿既是当前微周期的结束,又是下一个微周期的开始。取i条微指令执行i条微指令取i+1条执行i+1条微指令tCMtµopCP1CP2257.5.4微程序控制的时序控制总线CB地址总线AB数据总线DBALUAcePSWIRceIRPSWce送总线的控制信号送往CPU内部的控制信号时序部件PCPCoePCceSPoeSPceTRoeTRceGRSceIBGRSTRSPGRSoeSLSRSVAARARceARoe′ARoeDRoeDRDRoe′DRce′DRce运算控制信号SHIFTERSoedstsrcCF微操作信号发生器ResetPCinc控制存储器CM微指令寄存器µIR微操作控制部分顺序控制部分时序发生微地址寄存器µARCP1CP2取i条微指令执行i条微指令取i+1条执行i+1条微指令tCMtµopCP1CP2267.5.4微程序控制的时序串行执行方式取微指令时间tcm:从CP1的上升沿到CP2的上升沿执行微指令时间tµop:从CP2的上升沿至下一个CP1的上升沿tµop与组合逻辑控制方式的节拍周期的时间大体相当–所以组合逻辑控制比微程序控制速度更快微周期Tµ=tcm+tµop取i条微指令执行i条微指令取i+1条执行i+1条微指令tCMtµopCP1CP2277.5.4微程序控制的时序并行执行方式按时间重叠的原则将执行微指令和取微指令操作并行执行在一条微指令执行结束前,下一条微指令提前从控存中取出取i条微指令执行i条微指令取i+1条执行i+1条微指令取i+2条执行i+2条tCMtµopCP1CP2287.5.4微程序控制的时序并行执行方式CP1的上升沿:将下地址打入µAR,启动一次读操作。CP2上升沿的作用有两个:将CM中读出的微指令打入µIR,开始执行微指令。将当前微指令执行的结果打入某个寄存器。取i条微指令执行i条微指令取i+1条执行i+1条微指令取i+2条执行i+2条tCMtµopCP1CP2297.5.4微程序控制的时序并行执行方式取微指令时间tcm:从CP1的上升沿到CP2的上升沿执行微指令时间tµop:从CP2上升沿至下一个CP2上升沿微周期=微指令的执行时间Tµ=tµop遇到条件微转移有可能预取失效取i条微指令执行i条微指令取i+1条执行i+1条微指令取i+2条执行i+2条tCMtµopCP1CP230作业7.117.127.13