1CPU的功能与结构简化的单总线结构的CPU内部控制信号图6.2单总线数据通路CPU内部结构图寄存器组R0Rn-1SPDRARPCIRCPU内部总线ALUPSW移位寄存器求补器算术、布尔逻辑暂存器Y暂存器ZABCBDB控制器CU2微操作二、微操作流程1.时序信号的产生(1)节拍周期信号的产生T节拍T1T2T16TTT74LS154A00Y1YA315YASTBST时钟T74LS163CPD0Q0D3Q3LDCTPCTTCR+5V&RESET结束END计数型节拍脉冲发生器(节拍数≤16)状态利用率高需要采取措施消除竞争冒险3微操作二、微操作流程1.时序信号的产生(1)节拍周期信号的产生T图6.6移位型节拍脉冲发生器(节拍数≤8)时钟T74LS199CP0CP1Q0D0Q1D7Q7LDSH/JKCR&RESET结束END节拍T1T2T8TTT+5V反向延时没有竞争冒险问题状态利用率低4微操作二、微操作流程5微操作6微操作西安电子科技大学计算机学院2020年2月9日06:13:34计算机组织与体系结构中央处理器(CPU)微程序控制器设计8微程序控制原理指导思想:用软件方法组织和控制数据处理系统的信息传送,并最终用硬件实现。基本思想:依据微程序顺序产生一条指令执行时所需的全部控制信号。相当于把控制信号存储起来,因此又称存储控制逻辑方法。一、微程序控制基本思想9微程序控制原理对在一个时间单位(节拍)内出现的一组微操作进行描述的语句称作微指令(microinstruction)。一个微指令序列称作微程序(microprogram)或固件(firmware)。通过一组微指令产生的控制信号,使一条指令中的所有微操作得以实现,从而实现一条指令的功能。指令、微程序、微指令的关系:二、微指令T1:微操作1(命令1,命令2,…)微操作2(命令1,命令2)……Tj:微操作i(命令1,命令2,…)……Tm:微操作n(命令1)一条机器指令一个微程序微指令j微指令m微指令110微程序控制原理一条(机器)指令对应一个微程序,该微程序包含从取指令到执行指令一个完整微操作序列对应的全部微指令,它被存入一个称为控制存储器(controlmemory)的ROM中。在控制存储器中存放着指令系统中定义的所有指令的微程序。微指令周期:一条微指令执行的时间(包括从控制存储器中取得微指令和执行微指令所用时间)。微指令的一般格式:二、微指令地址域控制域生成下条微指令地址产生控制信号11下一地址及控制read指令寄存器译码器1微地址寄存器微指令寄存器控制存储器译码器2时序逻辑状态时钟控制单元CPU内部控制信号到系统总线的控制信号图6.11微程序控制器的一般结构微程序控制原理三、微程序控制器的一般结构和工作原理12微程序控制原理控制存储器(CM)指令长度微程序占用的存储单元数微指令寄存器IR、微地址寄存器AR时序逻辑依据时钟按节拍为控制存储器提供读出控制信号。在微程序运行时依据CPU内外状态(ALU标志、中断请求、DMA请求等)和当前微指令地址域的信息生成下一条微指令地址,并将其装入到微地址寄存器中。三、微程序控制器的一般结构和工作原理13微程序控制原理微程序控制器在一个时钟周期内完成如下工作:①时序逻辑电路给控制存储器发出read命令;②从微地址寄存器AR指定的控存单元读出微指令,送入微指令寄存器IR;③根据微指令寄存器的内容,产生控制信号,给时序逻辑提供下条微地址信息;④时序逻辑根据来自微指令寄存器的下条微地址信息和CPU内外状态,给微地址寄存器加载一个新的微地址。三、微程序控制器的一般结构和工作原理14微指令设计微指令的一般格式:地址域:决定如何取得微指令控制域:微指令的执行设计微指令需要从两方面考虑:微指令的长度→减少控制器占CPU集成芯片的面积微指令的执行时间→提高CPU的工作速度15微指令设计一、微指令地址的生成下一条微指令的地址有三种可能:①由指令寄存器确定的微程序首地址:每一个指令周期仅出现一次,且仅出现在刚刚获取一条指令之后。②下一条顺序地址下一条微指令地址=当前微指令地址+1③分支跳转地址无条件和条件跳转两分支和多分支跳转两地址格式(断定方式)单地址格式(计数方式,增量方式)可变格式16微指令设计一、微指令地址的生成图6.12两地址格式的分支控制逻辑条件选择CMAR控制域地址1地址2ACIR分支逻辑多路选择器KIR状态标志地址选择微程序首地址跳转地址顺序地址1.两地址格式(断定方式)17微指令设计一、微指令地址的生成图6.13单地址格式的分支控制逻辑分支控制CMPC控制域地址ACIR分支逻辑多路选择器KIR状态标志加载分支地址微程序首地址跳转地址加1复位2.单地址格式(计数方式,增量方式)硬件代价极低PC利用率高微指令长度被有效地缩短18微指令设计一、微指令地址的生成3.可变格式使任何微指令执行时不存在无用信息:让微指令在顺序执行时只提供控制信号的产生,需要分支时再提供跳转地址。→可变格式微指令两种微指令格式控制微指令S=0转移微指令S=1控制存储器存储单元的位数L应设计为:L=max{Lc,Lj}Lc=控制微指令长度,Lj=转移微指令长度标识S控制域标识S分支控制地址字段19微指令设计一、微指令地址的生成图6.14可变格式的分支控制逻辑(设S=0,控制指令;S=1,跳转指令)S=1CMPC控制域/地址域SIR分支逻辑多路选择器KIR状态标志加载分支地址微程序首地址跳转地址加1复位门译码器分支控制ACS=03.可变格式20微指令设计一、微指令地址的生成4.三种地址域格式的比较两地址格式分支逻辑较简单,下条微指令地址可以快速生成地址域较长,微指令较长,控存单元需要较多的位数单地址格式减少了指令的长度,控制存储器的容量大为减小微程序计数器加1的速度决定了顺序地址产生的时间可变格式长度最短,要求控存单元的位数最少专用的跳转微指令:微程序的长度增加,控存单元数量增加,机器指令执行时间增长下条微指令地址的生成时间与单地址格式基本一致21微指令设计二、微指令控制域编码水平型微指令(horizontalmicroinstruction)多个控制信号同时有效→多个微操作同时发生。垂直型微指令(verticalmicroinstruction)类似于机器指令,利用微操作码的不同编码来表示不同的微操作功能。22微指令设计二、微指令控制域编码(1)直接表示法可以在同一个时间有效的控制信号称为相容信号,具有相容性;不能在同一个时间有效的控制信号称为互斥信号,具有互斥性。1.水平型微指令控制域的编码下一微地址……控制信号控制域图6.15直接表示法23微指令设计二、微指令控制域编码(2)译码法采用编码的方法表示控制信号。可以极大地缩短微指令控制域的长度。各控制信号需要通过不同的微指令在不同时间来产生,所以各控制信号是相斥的,这也被称为垂直编码。不能实现一个节拍提供多个控制信号的任务,从而使指令周期的节拍数增多,微程序中包含的微指令数量增多,(机器)指令执行时间增长。1.水平型微指令控制域的编码24微指令设计二、微指令控制域编码1.水平型微指令控制域的编码(3)字段译码法(字段编码)将控制域分为若干字段,字段内垂直编码,字段间水平编码。互斥的信号放在同一字段相容的信号放在不同字段若各字段的编码相互独立,则通过各字段独立译码就可以获得计算机系统的全部控制信号,这被称作直接译码方式。若某些字段的编码相互关联,则关联字段要通过两级译码才能获得相关的控制信号,这被称作间接译码方式。25字段字段字段译码器译码器译码器控制信号(a)直接译码字段字段字段译码器译码器译码器译码器控制信号(b)间接译码图6.16字段译码法微指令设计二、微指令控制域编码1.水平型微指令控制域的编码(3)字段译码法(字段编码)26微指令设计二、微指令控制域编码1.水平型微指令控制域的编码(3)字段译码法(字段编码)每个字段中要设计一个无效控制信号的编码若控制域的某字段有m位,则可以提供2m-1个控制信号的编码字段组织的有效方法:按功能组织:把功能类同的各控制信号放在同一字段中。按资源组织:把加载到同一部件上的各控制信号放在同一字段中。27微指令设计二、微指令控制域编码1.水平型微指令控制域的编码按功能按功能按资源按资源按功能/资源按资源按资源字段1(4位)字段2(4位)字段3(2位)字段4(3位)字段5(4位)字段6(2位)字段7(2位)字段8NOP0000R0in0001R1in0010……R7in1000IRin1001Yin1010ARin1011DRIin1100DRSin1101NOP0000R0out0001R1out0010……R7out1000IRout1001Zout1010ARout1011DRIout1100DRSout1101NOP00PCin01PCout10PC+111NOP000SPin001SPout010SP+1011SP-1100NOP0000ADD0001SUB0010AND0011OR0100SHL0101SHR0110ROL0111ROR1000NOP00Mread01Mwrite10NOP00IOread01IOwrite10其他信号*NOP为无效控制信号表6.1一种控制域字段的组织和编码图6.2图6.9(3)字段译码法(字段编码)28微指令设计二、微指令控制域编码1.水平型微指令控制域的编码按功能按功能按功能/资源按资源字段1(4位)字段2(4位)字段3(4位)字段4(3位)字段5NOP0000R0in0001R1in0010……R7in1000IRin1001Yin1010ARin1011DRIin1100DRSin1101PCin1110SPin1111NOP0000R0out0001R1out0010……R7out1000IRout1001Zout1010ARout1011DRIout1100DRSout1101PCout1110SPout1111NOP0000ADD0001SUB0010AND0011OR0100SHL0101SHR0110ROL0111ROR1000PC+11001SP+11010SP-11011NOP000Mread001Mwrite010IOread011IOwrite100其他信号*NOP为无效控制信号图6.2图6.9表6.2优化后的字段组织和编码(3)字段译码法(字段编码)29微指令设计二、微指令控制域编码1.水平型微指令控制域的编码(3)字段译码法(字段编码)也可以对字段进行关联设计,使一个域用于解释另一个域。……字段i(2位)字段i+1(2位)……NOP00算术01逻辑10移位11ADD00SUB01AND00OR01SHL00SHR01ROL10ROR11表6.3采用间接译码方式的字段编码30微指令设计二、微指令控制域编码采用与机器指令相似的格式微操作码:指示作何种微操作固定长度、可变长度微操作对象:为微操作提供所需的操作数(常量或地址)一个、多个特点:控制域紧凑、短小并行能力差,微程序长,执行速度减慢→在计算机系统中大量引入并行机制,使得少量的控制信号就可以引起较多的微操作同时完成→三总线结构的ALU2.垂直型微指令控制域的编码微操作码微操作对象31微指令设计二、微指令控制域编码水平型微指令特性:需要较长的微指令控制域;可以表示高度并行的控制信号;对控制域提供的控制信息只需较少的译码电路,甚至不需要译码。垂直型微指令特性:需要较短的微指令控制域;并行微操作的表示能力有限;对控制信息必须译码。3.水平型与垂直型微指令的比较32微指令设计二、微指令控制域编码IBMsystem/360Model50的微指令:由90位构成,其中有21个字段的控制域、5个字段的地址域和3个校验位。4.微指令控制域编码设计实例0161924253132P13264