资源描述
第七章第七章 控制器控制器 第七章 控制器 17.5 硬布线控制器硬布线控制器硬布线控制器的基本原理是根据指令的要求、当前的时序及外部和内部的硬布线控制器的基本原理是根据指令的要求、当前的时序及外部和内部的状态情况,按时间的顺序发送一系列微操作控制信号。它由复杂的组状态情况,按时间的顺序发送一系列微操作控制信号。它由复杂的组合逻辑门电路和一些触发器构成,因此又称为组合逻辑控制器,或常合逻辑门电路和一些触发器构成,因此又称为组合逻辑控制器,或常规逻辑控制器。规逻辑控制器。7.5 硬布线控制器硬布线控制器的基本原理是根据指令的要求2vv二、硬布线控制器的结构二、硬布线控制器的结构 二、硬布线控制器的结构 31、指令信息、指令信息Im用于指出当前是哪一条指令的指令周期。用于指出当前是哪一条指令的指令周期。2、机器周期信号、机器周期信号Mn和时钟周期信号和时钟周期信号Tn指出当前处于指出当前处于哪一个机器周期和哪一个节拍。哪一个机器周期和哪一个节拍。3、状态信号、状态信号Sx指出运算器的结果状态及机器内部的其指出运算器的结果状态及机器内部的其他状态,以决定某些操作信号是否发送。他状态,以决定某些操作信号是否发送。4、外部控制、状态信号、外部控制、状态信号Ej指出和传递指出和传递CPU外部各部件外部各部件的状态和控制信号。的状态和控制信号。1、指令信息Im用于指出当前是哪一条指令的指令周期。4微操作控制信号微操作控制信号Ci一部分送到一部分送到CPU外部构成系统总线的控制总线;外部构成系统总线的控制总线;另一部分则送到另一部分则送到CPU内部供使用。内部供使用。从逻辑函数的角度来看,输出微操作控制信号从逻辑函数的角度来看,输出微操作控制信号Ci是是5种输入信号的种输入信号的函数:函数:Ci=fi(Im,Mn,Tn,Sx,Ej)设计硬布线控制器的过程,也就是求出每个微操作控制信号设计硬布线控制器的过程,也就是求出每个微操作控制信号Ci的逻的逻辑函数辑函数fi的过程。的过程。微操作控制信号Ci5vv三、硬布线控制器的设计方法三、硬布线控制器的设计方法三、硬布线控制器的设计方法三、硬布线控制器的设计方法 硬布线控制器的设计步骤:硬布线控制器的设计步骤:1、确定指令系统,包括指令系统中每条指令的格式、功能和寻址方式。、确定指令系统,包括指令系统中每条指令的格式、功能和寻址方式。2、围绕着指令系统的实现,确定、围绕着指令系统的实现,确定CPU的内部结构,包括运算器的功能和组的内部结构,包括运算器的功能和组成,控制器的组成及它们的连接方式和数据通路,同时也确定时序系统的构成,控制器的组成及它们的连接方式和数据通路,同时也确定时序系统的构成。成。3、分析每条指令的执行过程,按机器周期顺序,写出所必需发送的微操作、分析每条指令的执行过程,按机器周期顺序,写出所必需发送的微操作控制信号序列。控制信号序列。4、综合每个微操作控制信号的逻辑函数,化简和优化。、综合每个微操作控制信号的逻辑函数,化简和优化。5、用逻辑电路实现。、用逻辑电路实现。三、硬布线控制器的设计方法 6例如:例如:例如:例如:设计实现ADD和JMP指令 的硬布线控制器ADD指令的第一个字是操作码和寄存器地址,第二个字是立即数。ADD 和JMP指令均为二字节指令。OPRi DATAJMP指令第一个字是操作码,第二个字是转移的直接地址。OPXX A例如:设计实现ADD和JMP指令 的硬布线控制器ADD指令的71、首先列出ADD和JMP指令的执行过程如下:ADDADD指令:指令:指令:指令:M0:PCAR,PC+1PC;(取指令地址)M1:RAMIR,J1#;(取指令并译码)ADDM2:PCAR,PC+1PC;(取指令第二字地址)ADDM3:RAMALU;(取数据)ADDM4:RiALU;(送寄存器数据)ADDM5:ALU(+)Ri;(计算并存结果)OPRi DATA1、首先列出ADD和JMP指令的执行过程如下:OPRi 8JMPJMP指令指令指令指令:M0:PCAR,PC+1PC;(取指令地址)M1:RAMIR,J1#;(取指令并译码)JMPM2:PCAR,PC+1PC;(取指令第二字地址)JMPM3:RAMPC;(取转移地址,执行转移)OPXX AJMP指令:OPXX A92、对应的每个机器周期所必需发送的微操作控制信号序列如下:ADDADD指令:指令:指令:指令:M0:PC-B#,BAR,PC+1;M1:M-R#(内存读),B-IR,J1#;ADDM2:PC-B#,B-AR,PC+1;ADDM3:M-R#,B-DA1;ADDM4:DR-B#,B-DA2;ADDM5:ALU(F=A+B),B-DR;JMPJMP指令:指令:指令:指令:M0:PC-B#,BAR,PC+1;M1:M-R#(内存读),B-IR,J1#;JMPM2:PC-B#,BAR,PC+1;JMPM3:M-R#,B-PC,PC+1;.2、对应的每个机器周期所必需发送的微操作控制信号序列如下:103、对所有的微操作控制信号进行综合:即对于某一个微操作控制信号,将上述列、对所有的微操作控制信号进行综合:即对于某一个微操作控制信号,将上述列表中,凡是在冒号表中,凡是在冒号“:”右边出现该信号的机器周期,把其左边的条件(与项)右边出现该信号的机器周期,把其左边的条件(与项)作为一个或项,全部进行或运算,即得到该微操作控制信号的逻辑函数。作为一个或项,全部进行或运算,即得到该微操作控制信号的逻辑函数。PC-B#=(M0+ADDM2+JMPM2+)B-AR=(M0+ADDM2+JMPM2+)PC+1=(M0+ADDM2+JMPM2+JMPM3+)M-R#=m1+ADDM3+JMPM3+B-IR=(M1+)B-DA1=ADDM3+ADDM4+JMPM3+DR-B#=ADDM4+B-DR=ADDM5+3、对所有的微操作控制信号进行综合:即对于某一个微操作控制信11若某个微操作控制信号必须在某个机器周期内的若某个微操作控制信号必须在某个机器周期内的Tn时刻有效,则该信时刻有效,则该信号表达式还要与上号表达式还要与上Tn时钟周期信号时钟周期信号4、最后,对逻辑函数优化和简化,使得逻辑电路最简,用硬件电路实、最后,对逻辑函数优化和简化,使得逻辑电路最简,用硬件电路实现即可。现即可。若某个微操作控制信号必须在某个机器周期内的Tn时刻有效,则该12例如:例如:采用计数器输出译码方式产生机器周期信号。假设某机器的指令系统有两条指令:指令A包含三个机器周期,计数器的计数变化状态如图727;指令B包含四个机器周期。计数器的变化状态如图728;例如:采用计数器输出译码方式产生机器周期信号。13表表77列出了产生两条指令所需的机器周期信号时的计数器状态。其中列出了产生两条指令所需的机器周期信号时的计数器状态。其中Q1,Q2表示当前周期计数器状态输出,表示当前周期计数器状态输出,Q1,Q2表示下一个周期计表示下一个周期计数器状态输出。数器状态输出。表77列出了产生两条指令所需的机器周期信号时的计数器状态。14根据表77的真值表列出计数器的输出表达式,对于指令A,其表达式为 对于指令B,其表达式为 所以:根据表77的真值表列出计数器的输出表达式,对于指令A,其表15根据表达式画出逻辑电路图 当执行指令A时,产生机器周期信号M0、M1、M2;而当执行指令B时,产生机器周期信号M0、M1、M2、M3。根据表达式画出逻辑电路图 当执行指令A时,产生机器周期信号M16vv四、硬布线控制器与微程序控制器的比较四、硬布线控制器与微程序控制器的比较四、硬布线控制器与微程序控制器的比较四、硬布线控制器与微程序控制器的比较 区别:区别:v微操作控制信号的产生方法不同:前者由组合逻辑电路即时产生;微操作控制信号的产生方法不同:前者由组合逻辑电路即时产生;后者是从控存读取并送出的。后者是从控存读取并送出的。v硬布线控制器的电路繁琐、不规整,不易修改和扩充;微程序控硬布线控制器的电路繁琐、不规整,不易修改和扩充;微程序控制器由于控制信号存于控存,电路相对规整,易修改和扩充;制器由于控制信号存于控存,电路相对规整,易修改和扩充;v硬布线控制器执行速度快,多应用于硬布线控制器执行速度快,多应用于RISC系统。微程序控制器执系统。微程序控制器执行速度相对硬布线控制器慢,多应用于行速度相对硬布线控制器慢,多应用于CISC系统。系统。四、硬布线控制器与微程序控制器的比较 177.6 流水线的基本原理流水线的基本原理v机器指令按串行方式执行 v机器指令按并行方式执行 7.6 流水线的基本原理机器指令按串行方式执行 18vv一、流水线工作方式的特点是:一、流水线工作方式的特点是:一、流水线工作方式的特点是:一、流水线工作方式的特点是:流水线分的工序越多,可同时运行的指令就越多,单位时间内可完成的指令也就越多,速度越快。流水线上每个阶段执行时间必须完全一致。流水线上必须等待一段时间,才能达到最大吞吐率,这个时间等于一条指令的执行时间,称为“通过时间”。当编译形成的程序不能发挥流水线的作用,或存储器供应不上流动所需的指令和数据,或遇到程序转移指令等情况时,会造成流水线断流断流,使效率下降。例:已知一个指令系统32条指令,一条指令分取指令2ms,计算地址2ms,取操作数2ms,执行指令1ms,问采用流水线方式执行指令,32条指令执行一遍需要()ms.。一、流水线工作方式的特点是:例:19vv二、流水线需要解决的问题:二、流水线需要解决的问题:二、流水线需要解决的问题:二、流水线需要解决的问题:1、访问内存的冲突 v解决这个问题1)采用双端口存储器,使取指令和取操作数可同时进行;2)分离指令Cache和数据Cache,使取指令和取操作数可在Cache这级可以同时进行;3)采用指令队列,预取到指令队列中,从而避免与取数据发生冲突。2、计算地址与运算的冲突 v解决的办法是增设部件3、操作数相关问题 v其解决方法是:1)插入气泡法。该方法较简单,但降低了指令执行效率;2)采用数据旁路技术,这种方法效率高但控制复杂。二、流水线需要解决的问题:204、转移相关问题 v解决方法是:1)加入空操作,尽量调整指令执行的先后顺序,使转移条件提前建立。前者相当于顺序操作,后者增加了控制难度。2)采用猜测法,先选定转移分支中的一个,按此分支继续取指并处理,假如猜测是正确的,则流水线可以继续进行;假如猜测错了,则要返回分支点,并要保证分支点后已进行个处理不破坏原有现场。5、中断发生时转中断处理 v解决方法是:1)不精确断点法:当中断发生时,不允许后续指令进入流水线,但已进入指令流水线的指令继续执行直到完毕,然后将中断处理程序的指令送入指令流水线。2)精确断点法:当中断发生时,指令流水线中的指令立即停止执行,将中断处理程序指令送入指令流水线,尽快转入中断处理。被目前大多数流水线计算机后者。4、转移相关问题 217.6 Pentium CPU v一、Pentium CPU的技术性能 PentiumCPU32位微处理器,超标量体系结构,MMX技术v MMX技术的基础是SIMD,可以并行处理8个8位数据或4个16位数据或2个32位数据。MMX技术新增加了4种数据类型:紧缩字节类型8个字节打包成一个64位长的数据、紧缩字类型、紧缩双字类型和四字类型,还增加了57条新指令,另外拥有8个64位的MMX寄存器。PentiumCPU用动态执行技术和寄存器重命名等RISC类处理器所采用的技术,对每一条x86操作转换成的简单的微操作进行处理。v PentiumCPU采用了动态执行技术,通过预测指令流来调整指令的执行,并且分析程序的数据流来选择指令执行的最佳顺序。vPentiumCPU也使用IA(Intel架构)指令和寄存器。但配备了40个内部寄存器。采用寄存器重命名技术,将IA指令使用的IA寄存器映射成微操作使用的Pentium内部寄存器,这样可极大地消除指令的数据相关性。PentiumCPU采用了双独立总线结构,其中前端总线FBS主要负责与主存储器的信息传送操作,后端总线连接到L2 Cache上。7.6 Pentium CPU 一、Pentium 22动态执行技术包括以下几项技术:v1)多路分支预测:利用先进的、预测正确率高达90的分支预测技术,允许程序的几个分支流向同时在处理器中执行。处理器在取指令时,还会在程序中寻找未来要执行的指令,加快了向处理器传递任务的过程,并为指令执行顺序的优化提供了可调度基础。v2)数据流分析:处理器读取指令并经过译码后,判断该指令能否与其他指令一起处理,然后处理器分析这些指令的数据相关性和资源可用性,以优化的执行顺序高效率地处理这些指令。v3)推测执行:将多个程序流向的指令序列,以调度好的优化顺序送至执行部件执行,尽量使多端口、多功能的执行部件保持“忙”状态。因为程序流向是根据分支预测建立的,因此指令序列的执行结果只能作为“预测结果”保留。一旦确定分支预测正确,已提前建立的“预测结果”立即变成“最终结果”并及时修改机器的状态。显然,推测执行可保证处理器的超标量流水线始终处于忙碌,加快了程序执行速度,从而全面提高处理器的性能。动态执行技术包括以下几项技术:23v二、Pentium的内部结构及工作原理 二、Pentium的内部结构及工作原理 24 Pentium共有三条指令流水线,每条指令流水线共有12级,它们分别是:1)IFU1 取指1,由L1代码Cache取一个32字节的行,装入预取流式缓冲器。2)IFU2 取指2,预取流式缓冲器中的内容以16字节块向前传递,IFU2在16字节块中标志指令边界,并将发现的转移指令地址交给分支目标缓冲区BTB进行动态预测。3)IFU3 取指3,旋转16字节块中的3条指令,使它们能按照复杂、简单、简单或简单、简单、简单的次序同时递交到下一级的3个译码器中。Pentium共有三条指令流水线,每条指令流水线共有12254)DEC1 译码1,将IA指令译码成RISC型的微操作。译码器0为复杂译码器,它将一条复杂指令译码成多达4个微操作,译码器1和译码器2均为简单译码器,各只能生成一个微操作。DEC1把这些微操作提交给微指令序列器。5)DEC2 译码2,从DEC1出来的微操作,在本级译码后指令队列DIQ(Decoded Instruction Queue)中按原始的程序顺序排队。对那些被BTB丢失的转移型的微操作放入静态分支预测机构进行再次分支预测。6)RAT 寄存器别名表和分配器。在这一级每次由DIQ按程序的顺序取3项微操作,将微操作中的寄存器映射到内部寄存器中,然后将其送到ROB。7)ROB 指令重排缓冲器。在ROB中的每一个微操作都有状态标志,用来登记此微操作的当前运行状态。4)DEC1 译码1,将IA指令译码成RISC型的微操作。268)DIS 派遣,微操作放入ROB后,保留站RS能以任何顺序将微操作派遣到相应的执行单元中。9)EX 执行。执行微操作,这一级的多个执行单元并行操作。10)WB 写回。微操作执行结果写回ROB并进行错误检查,同时对从L1 数据Cache或L2 Cache读入的数据进行ECC检查和修正。11)RR 回收就绪。在微操作结果没有错误后,本级逻辑判断它前面的转移指令是否已全面解决。若已全部解决,则按程序顺序以IA指令为单位,标志其相应的微操作已经回收就绪。12)RET 回收。按程序顺序以IA指令为单位,每个时钟回收3个微操作。把已经回收就绪的IA指令对应的微操作结果,最终回写IA寄存器集以及设置EFLAGS标志;同时通知存储器排序缓冲器MOB写指令实际完成。这12级分别属于3个操作阶段。前7级属于按序取指/译码阶段,中间3级属于乱序执行阶段,最后2级属于有序退出阶段。8)DIS 派遣,微操作放入ROB后,保留站RS能以任何顺27
展开阅读全文