主要特征超级标量结构(双指令流水线)双Cache(指令Cache和数据Cache分离)分支预测技术64位数据总线RISC和CISC的结合一、Pentium基本型第三节高档微处理器高级计算机系统结构第三章并行技术和高端处理器(一)内部结构1、功能部件从功能模块的角度,Pentium在80486的基础上增加了一条指令流水线(包括相应的地址生成部件)和一个Cache。在结构上,与80486相比,形成了双执行部件和双Cache结构。分支预测部件则是由于流水线的引入,为提高流水线效率而设置的性能增强部件。如下图所示:高级计算机系统结构第三章并行技术和高端处理器8K指令Cache指令预取部件指令译码器微指令ROM分支预测部件控制部件U流水线V流水线U流水线地址生成逻辑V流水线地址生成逻辑双端口数据Cache浮点处理部件FPU总线接口部件32位内部地址总线64位内部数据总线高级计算机系统结构第三章并行技术和高端处理器(1)指令部件(2)双CacheU和V两条独立的指令流水线,各自有独立的地址生成逻辑,并与各自独立的内部数据总线与双端口Cache连接。从而实现了从地址生成到数据存取的独立操作。U流水线:可执行任何整数及浮点两类指令;V流水线:只能执行简单整数指令数据Cache与指令Cache分离,提高操作的并行性(3)浮点部件速度是80486内部浮点部件的3~5倍。高级计算机系统结构第三章并行技术和高端处理器FPU内有8个80位的浮点寄存器FR0~FR7,内部数据总线宽度为80位,并有分立的浮点加法器、浮点乘法器和浮点除法器,可同时进行三种不同的运算。浮点指令流水线分为8个流水级:预取指令、指令译码、地址生成、取操作数、执行1、执行2、写回结果和错误报告。高级计算机系统结构第三章并行技术和高端处理器(4)微指令ROM采用CISC技术,结合了RISC的设计思想,一些简单指令(如加、减、移位等)直接用硬件逻辑电路实现,复杂指令仍然采用微程序的设计思想(微指令ROM实现复杂指令)。2、寄存器通用寄存器、变址寄存器,段寄存器以及指针与80486基本相同。增加了大量的测试寄存器和检查寄存器、性能监测的寄存器。如测试寄存器1~12,用于如奇偶校验测试、TLB线性地址测试,Cache测试、分支预测BTB测试等。高级计算机系统结构第三章并行技术和高端处理器增加了一个CR4寄存器(6个有效位),其中的控制位PSE:PSE=0页面大小为4K1页面大小为4M页面太大:失去分页的优点;页面太小:命中率下降(所要访问数据的在某个页面的概率)高级计算机系统结构第三章并行技术和高端处理器(二)Pentium的主要技术改进1.超级标量结构(SuperScalarArchitecture)针对微处理器可并发的指令数,两种典型结构:标量结构计算机系统中的三种基本的周期信号:指令周期机器周期(总线周期)时钟周期(节拍周期)高级计算机系统结构第三章并行技术和高端处理器什么是标量处理器(ScalarProcessor):处理器内部只有一个指令执行部件一个周期执行一条指令(?)超级标量结构指令周期1个或几个总线周期总线周期总线周期1个或几个T一个周期是否能完成一条指令的执行需要从是否具有流水线功能来分析:非流水线执行方式指令串行执行,一个指令周期完成一条指令。高级计算机系统结构第三章并行技术和高端处理器流水线执行方式指令分解为多个独立的执行阶段。每一执行阶段的时间长度:一个总线周期(或者更短)此时,CPU执行指令的过程如下图所示:高级计算机系统结构第三章并行技术和高端处理器在流水线方式下:一个总线周期可以执行一条指令;如果将一个总线周期长度定义为一个时钟周期,则一个时钟周期可以完成一条指令。指令1FEDEEXWB指令2FEDEEXWB指令3FEDEEXWB指令4FEDEEXWB指令5FEDEEXWB指令6FEDEEXWB指令7FEDEEXWB...t因此,可以用周期数来衡量CPU性能的指标:高级计算机系统结构第三章并行技术和高端处理器IPC(Instructions/percycle)即每一个总线周期(时钟周期)完成的指令数。非流水线指令执行方式:处理器内部有多个指令执行部件,并且多个部件独立并行工作,则可以使IPC1。IPC1流水线指令执行方式:IPC=1怎样使IPC1?Pentium具有IPC1处理能力的处理器。超级标量结构:①处理器内有多个独立并行的流水线指令部件②具有IPC1的处理能力。(理想状况)高级计算机系统结构第三章并行技术和高端处理器流水线级数与性能和性价比:理论上讲:流水线级数越多(流水线深度越深),并发指令数越多,性能越高;流水线级数与性价比:最大值性价比流水线级数高级计算机系统结构第三章并行技术和高端处理器但随着流水线级数的增加,各级之间的缓冲延时也将逐步累加,从而妨碍性能的提升,同时硬件越复杂,成本越高。2.Pentium的指令流水线结构五级流水线:指令预取(PF)指令译码(D1)地址生成(D2)指令执行(EX)写结果和设置处理器状态(WB)—U和V两条流水线同时执行的流水线状况:高级计算机系统结构第三章并行技术和高端处理器完成第1对指令............完成第4对指令PFD1D2EXWBUVPFD1D2EXWBUVPFD1D2EXWBPFD1D2EXWBUVPFD1D2EXWBPFD1D2EXWBUVPFD1D2EXWBPFD1D2EXWB以流程的方式,超标量执行可表示为以下形式:高级计算机系统结构第三章并行技术和高端处理器取指令指令译码并生成控制字控制字译码生成存储器地址控制字译码生成存储器地址写结果访问数据Cache或ALU计算访问数据Cache或ALU计算写结果PFD1D2EXWB高级计算机系统结构第三章并行技术和高端处理器如何分配两条流水线上的指令:两条流水线可以同时执行两条指令,但要满足一定配对规则。两条指令必须是“简单”指令指令中不能同时包含偏移量与立即数等。硬件逻辑实现(不是微代码实现)、单周期执行两条指令要在指令Cache内成对指令无寄存器数据相关如:“写后读”操作MOVEAX,8MOVEBX,EAX寄存器相关由此引发Pentium处理器流水线调度策略:高级计算机系统结构第三章并行技术和高端处理器两条流水线的调度策略:Pentium对U、V两条流水线的调度采用:按序发射按序完成策略在译码阶段(D1),两条连续的指令(如i1和i2)先后被译码,并检查是否可以配对。若是,合格的一对指令同时发射到U、V流水线的D2段。要求:一对同时进入D2阶段的指令也必须同时离开D2阶段并进入EX段。如果一条指令在D2段停留,则另一条指令也必须在D2段停顿。成对指令进入EX阶段后,若一条指令EX阶段停留,则另一条指令也必须在EX阶段停顿。如下图所示:高级计算机系统结构第三章并行技术和高端处理器UVi1i2PFD1D2EXWBPFD1D2D2EXWBUVPFD1D2EXEXWBPFD1D2EXWBi3i4图中:如果i2需要两个D2,则i1停顿一个周期。同时也导致i3、i4在D1结束后不能进入D2。i3、i4的情况是:由于i1和i2在D2停留,使i3和i4在D1后不能进入D2而停留(阻塞)一个周期。如果i3执行所需的时间较长(需要2个执行周期),则V流水线的指令i4必须停顿等待i3执行完毕并一起进入下一阶段WB。高级计算机系统结构第三章并行技术和高端处理器3.分支预测技术转移指令对流水线的影响(1)条件转移指令PFD1D2EXWBADDR1,R2JCLabSUBR3,R1MOVR4,R5INCR4DECR5Lab:..ADDJCSUBMOVLab:INCDEC如果有进位,转移相当于阻塞四个周期PFD1D2EXWB高级计算机系统结构第三章并行技术和高端处理器(2)无条件转移指令ADDR1,R2JMPLabSUBR3,R1MOVR4,R5INCR4DECR5Lab:......PFD1D2EXWBADDJMPSUBMOVLab:INCDEC相当于阻塞四个周期PFD1D2EXWB高级计算机系统结构第三章并行技术和高端处理器说明:转移指令除了对时间造成影响以外,由于在转移指令与目标指令之间的指令的执行还可能影响一些中间结果和标志位,从而导致程序发生逻辑错误;对于无条件转移指令,虽然在D1结束时便可知程序要转移而不用执行其后面的几条指令,但是,在WB结束之前的时间,需要按寻址方式形成目标地址,因此也必须等到WB结束,才能转移到目标指令执行。高级计算机系统结构第三章并行技术和高端处理器解决“条件转移指令”对流水线的影响①分支预测技术—静态分支预测:硬件固定选择分支—动态分支预测:在预测点,根据程序过去的分支情况的统计值(或上一次的分支情况)选择分支。依据:程序执行的时间局部性规律Pentium的分支预测:动态分支预测分支情况统计部件:分支目标缓冲器(BranchTargetBuffer-BTB)分支预测时间:指令预取阶段(PF)分支预测过程:两个指令预取缓冲区高级计算机系统结构第三章并行技术和高端处理器第一预取缓冲区预取指令分支指令NYBTB预测分支不转移预取分支指令后的指令序列转移第二预取缓冲区预取分支目标指令序列若预测要分支,则两个方向的指令预取同时进行若预测错误,清除该缓冲区若预测错误,清除该缓冲区程序按预测方向执行,如果分支预测发生错误,仍会造成四个周期的时间损失。高级计算机系统结构第三章并行技术和高端处理器附:①指令码太长即指令码的长度超过了数据总线的宽度。以80486为例,指令超过4个字节,至少需要2个总线周期取指令码,即需要2个阶段的流水线长度。造成Pentium(包括其它CISC处理器)流水线阻塞的其它可能因素比如,Pentium处理器允许的数据类型有字节、字、双字、4倍字。一条指令包含指令码、数据和地址等。此外,指令的寻址方式中还包含以立即数形式出现的偏移量。因此,指令码长度就可能超过数据总线的宽度,这意味着单总线周期不能取出一条指令的全部字节。高级计算机系统结构第三章并行技术和高端处理器②执行阶段时间开销太大流水线的理想状况:假设了一个EX的时间长度能完成指令所要求的全部功能。指令:ADC变址量(DI),立即数在EX阶段的操作:PF1PF2D1D2EXWBADC变址量(DI),立即数(可达6个字节)PFD1D2EXWB下一条指令阻塞一个周期高级计算机系统结构第三章并行技术和高端处理器根据在D2形成的操作数地址访存取操作数计算:操作数1+操作数2+C(进位位)如果一个EX周期不能完成上述操作,则需要两个EX周期。PF1PE2D1D2EX1EX2WB上述加法指令PFD1D2EXWB下一条指令阻塞一个周期阻塞一个周期高级计算机系统结构第三章并行技术和高端处理器③数据相关:④资源冲突:多条并行的指令需要使用同一资源也称为数据依赖,如“写后读”比如:MOVAX,8MOVBX,AXPF1D1D2EXWBPFD1D2EXWB阻塞一个周期计算机系统中存在大量共享的软硬件资源,如果并行的指令在某一时刻都需要使用同一种共享资源,则出现资源冲突(比如对总线的访问),在这种情况下,至少有一条指令必须等待另外的指令释放该共享资源。高级计算机系统结构第三章并行技术和高端处理器根据指令画出流水线执行情况:错误案例:比如:MOVAX,8MOVBX,AX指令3指令4PF1D1D2EXWBPFD1D2EXWBPFD1D2EXWB假设指令3和指令4不会发生流水线阻塞。PF…正确:PF1D1D2EXWBPFD1D2EXWBPFD1D2EXWBPFD1D2EXWB高级计算机系统结构第三章并行技术和高端处理器在CISC结构,有六种可能的情况造成流水线阻塞:无条件转移指令;条件转移指令,预测错误;指令太长,一个周期不能取出全部指令码;指令功能复杂,单执行周期不能完成所要求功能;从时间损失的角度,相当于造成流水线阻塞数据相关;资源冲突。由于存在上述诸多因素使流水线不能按理想状况运行,因此在实际