计算机组成原理1第5章中央处理器主要内容:(一)CPU的功能和基本结构(二)指令执行过程(三)数据通路的功能和基本结构(四)控制器的功能和工作原理1.硬布线控制器2.微程序控制器微程序、微指令和微命令;微指令的编码方式;微地址的形成方式。(五)指令流水线1.指令流水线的基本概念2.超标量和动态流水线的基本概念计算机组成原理5.4指令流水如何提高机器速度提高访存速度提高I/O和主机之间的传送速度提高整机处理能力高速芯片Cache多体并行I/O处理机DMA多总线通道高速器件改进系统结构,挖掘系统的并行性中断提高运算器速度高速芯片改进算法快速进位链计算机组成原理系统的并行性并行性的等级指令级(指令)过程级(进程)两个或两个以上事件在同一时刻发生两个或两个以上事件在同一时间段发生并行并行的概念粗粒度软件实现(单核处理器)细粒度硬件实现并发同时计算机组成原理4流水线工作原理冯·诺依曼型计算机工作原理依序逐条串行执行程序指令,每条指令的各个操作也按顺序串行执行。例如,加法指令依序分成取指令/指令译码/取数操作/运算处理和写结果五个步骤。取指1译码1取数1运算1存数1取指2译码2取数2运算2存数2…....特点:控制简单,速度低,各功能部件利用率低。例如,在取指令时主存忙,译码器和运算器等都空闲。若能把程序中的多条指令在时间上重叠起来执行,是否会显著提高机器速度呢?计算机组成原理5流水线工作方式计算机流水线(Pipelines):将一个任务细分成若干个子任务,每个子任务由专门的部件处理,可与其他子任务并行进行处理。流水线技术现已成为计算机中普遍使用的一种并行处理技术。锁存器锁存器CLK锁存器处理部件n处理部件2处理部件1•指令流水线:指令的执行过程采用流水线。•操作部件流水线:运算器中操作部件采用流水线。•宏流水线:多台计算机间通过存储器连接,采用流水线。•访存部件流水线计算机组成原理65.5.1指令的重叠执行例:五条指令重叠执行情况。T1T2T3T4T5——机器执行时间取指1译码1取数1运算1存数1取指2译码2取数2运算2存数2取指3译码3取数3运算3存数3取指4译码4取数4运算4存数4取指5译码5取数5运算5存数5可见,若将一条指令的执行时间分为5段,每段所用时间为T,则一条指令执行时间为5T。系统工作正常后每隔T时间就得到一条指令的处理结果。平均速度提高了4倍。这种工作方式称为流水线处理。本例为5级流水线处理方式。理想情况下,5级流水的速度是不采用流水技术的5倍。并行处理技术主要有三种形式:时间并行、空间并行(资源重复)和时间并行+空间并行。指令的六级流水六级流水k+(n-1)=14个时间单位串行执行6×9=54时间单位,n=9条指令完成一条指令k=6个时间单位,k级流水线COFOEIWODIFICOFOEIWODIFICOFOEIWODIFICOFOEIWODIFICOFOEIWODIFICOFOEIWODIFICOFOEIWODIFICOFOEIWODIFICOFOEIWODIFI指令1指令2指令3指令4指令5指令6指令7指令8指令91234567891011121314t取指、译码、计算操作数地址、取数、执行,写回计算机组成原理8指令流水线结构例:完成一条指令分7段,每段需一个时钟周期若流水线不出现断流1个时钟周期出1结果地址形成部件指令译码部件取操作数部件取指令部件操作执行部件回写结果部件修改指令指针部件锁存锁存锁存锁存锁存锁存流水线的每一阶段完成一条指令的一部分功能,每一阶段称为一个流水阶段,或流水节拍、流水步、功能段、流水级等。分段原则:每段操作时间尽量一致。每个流水步的时间长度(时钟周期)应以最长功能段的执行时间为准,否则用时长的流水段的功能将不能正确完成。计算机组成原理9运算流水线完成浮点加减运算可分对阶、尾数求和、规格化三段锁存器对阶功能部件第一段尾数加部件锁存器第二段规格化部件锁存器第三段流水线段数:根据总价、性能价格比选择最佳段数。一般把大于等于8段的称为超流水线。计算机组成原理流水线性能吞吐率单位时间内流水线所完成指令或输出结果的数量•最大吞吐率•实际吞吐率连续处理n条指令的吞吐率为设m段的流水线,各段时间为ΔtTpmax=Δ1tTp=m·Δ+(n-1)·Δntt计算机组成原理加速比Spm段的流水线的速度与等功能的非流水线的速度之比设流水线各段时间为Δt完成n条指令在m段流水线上共需T=m·+(n-1)·ttΔΔ完成n条指令在等效的非流水线上共需T′=nm·ΔtSp=m·+(n-1)·nm·=nmm+n-1ΔtΔΔtt则计算机组成原理由于流水线有建立时间和排空时间因此各功能段的设备不可能一直处于工作状态流水线中各功能段的利用率效率mΔt31245312453124531245………………………………n-1nn-1nn-1nn-1nT时间S空间空间S4S3S2S1(n-1)Δt建立时间排空时间计算机组成原理效率mΔt31245312453124531245………………………………n-1nn-1nn-1nn-1nT时间S空间空间S4S3S2S1(n-1)Δtm(m+n-1)Δt=mnΔt流水线各段处于工作时间的时空区流水线中各段总的时空区效率=流水线中各功能段的利用率计算机组成原理145.5.2流水线的一些问题解决流水线把取指与执行分开,使取指与执行同时进行,减少了取指等待时间,大大提高了CPU的利用率。同时降低了对与之匹配的存储器的存取速度要求。但流水线处理方式也存在一些困难:结构相关:由于多条指令在同一时刻争用同一资源而形成的冲突称为结构相关。数据相关:后续指令要使用前面指令的操作结果,而这一结果尚未产生或未送到,就出现了流水线阻塞,称为数据相关。两级流水线不存在数据相关现象。控制相关:在遇到条件转移指令时,存在是顺序执行还是转移执行两种可能。计算机组成原理15取指、译码、计算操作数地址、取数、执行,写回计算机组成原理2).数据相关不同指令因重叠操作,可能改变操作数的读/写访问顺序•采用旁路技术解决办法•写后读相关(RAW)SUBR1,R2,R3ADDR4,R5,R1;(R2)(R3)R1;(R5)+(R1)R4•读后写相关(WAR)STAM,R2ADDR2,R4,R5;(R2)M存储单元;(R4)+(R5)R2取指译码执行写回取指译码执行写回取指译码执行写回取指译码执行写回计算机组成原理2.数据相关不同指令因重叠操作,可能改变操作数的读/写访问顺序•采用旁路技术解决办法•写后读相关(RAW)SUBR1,R2,R3ADDR4,R5,R1;(R2)(R3)R1;(R5)+(R1)R4•读后写相关(WAR)STAM,R2ADDR2,R4,R5;(R2)M存储单元;(R4)+(R5)R2•写后写相关(WAW)•后推法MULR3,R2,R1SUBR3,R4,R5;(R2)×(R1)R3;(R4)(R5)R3ADDR0,R1,R2ADDR4,R5,R0第一条指令的和已经计算出从加法器直接取数R0R0取指译码取数执行写回取指译码取数执行写回取指译码取数执行写回取指译码取数执行写回计算机组成原理3)控制相关DIV指令必须等BNE指令的结果才能确定是否转移LDA#0LDX#0INXCPX#NBNEMDIV#NSTAANSADDX,DM由转移指令引起计算机组成原理19举例5.4.4指令级并行技术CPI(ClockcyclesPerInstruction):流水线中平均执行一条指令所需的时钟周期数。•CPI是衡量指令级并行性的一个指标。例:假设流水线有K个流水段,一个程序执行时共执行n条指令,CPI=(k+n-1)/n,当nk时,CPI1。ILP(InstructionLevelParallelism):指令级并行度,在一个时钟周期内流水线上流出的数。12345678IFIDEXMEMWBIFIDEXMEMWBIFIDEXMEMWBIFIDEXMEMWBI4I3I2I1(a)基准标量处理机时空图指令时钟周期每个时钟周期发送1条指令,ILP=1计算机组成原理21超标量(superscalar)CPU:集成了多个ALU、多个FPU、多个译码器和多条流水线的CPU,在一个时钟周期同时发送多条指令(CPI1),以并行处理的方式来提高CPU的性能。Pentium4就有20级超标量流水线。IFIDEXMEMWBIFIDEXMEMWBIFIDEXMEMWBIFIDEXMEMWBIFIDEXMEMWBIFIDEXMEMWBIFIDEXMEMWBIFIDEXMEMWBIFIDEXMEMWBI4I3I2I1I8I7I6I5I912345678(b)超标量处理机时空图指令时钟周期每个时钟周期发送3条指令,ILP=3计算机组成原理22IFIDEXMEMWBIFIDEXMEMWBIFIDEXMEMWBIFIDEXMEMWBIFIDEXMEMWBIFIDEXMEMWBIFIDEXMEMWBIFIDEXMEMWBIFIDEXMEMWBI4I3I2I1I8I7I6I5I912345678(c)超流水线处理机时空图指令时钟周期每1/3个时钟周期发送1条指令,ILP=3超流水线(superpipelining)CPU:在一个时钟周期分期发送多条指令。计算机组成原理23IFIDEXMEMWBIFIDEXMEMWBIFIDEXMEMWBIFIDEXMEMWBIFIDEXMEMWBIFIDEXMEMWBIFIDEXMEMWBIFIDEXMEMWBIFIDEXMEMWBI4I3I2I1I8I7I6I5I912345678(d)超标量超流水线处理机时空图指令时钟周期每个时钟周期发送9条指令,ILP=9超标量超流水线(SuperscalarSuperpipelining)处理机集中了超标量和超流水线两者的特点。计算机组成原理24普通标量处理机超标量处理机超流水线处理机超标量流水线处理机机器流水线周期1个1个1/n个1/n个同时发送指令条数1条m条1条m条指令级并行度(ILP)1mnm·n四种不同类型处理机的性能比较表计算机组成原理25本章小结1、建立CPU整机概念逻辑组成工作机制(1)逻辑组成寄存器、ALU设置,重在数据通路结构与功能(2)工作机制寄存器传送级:微操作控制级:各类指令的流程微命令序列指令的执行过程拟定流程的关键:清楚了解数据通路结构熟练掌握基本寻址方式(1)微命令的产生方式2、有关的基本概念硬布线(组合逻辑)控制器:基本工作原理、优缺点、应用场合微程序控制器:控制存储器、微程序、微指令、微命令指令格式与编码方式;微地址的形成方式。基本工作原理、优缺点、应用场合。(2)时序控制方式定义、特点、应用场合同步控制方式:异步控制方式:定义、特点、应用场合3、指令流水线、超标量的基本概念