计算机系统结构(ch-4)解析

整理文档很辛苦,赏杯茶钱您下走!

免费阅读已结束,点击下载阅读编辑剩下 ...

阅读已结束,您可以下载文档离线阅读编辑

资源描述

1第4章流水线计算机设计技术本章目标•加快机器指令执行的速度主要方法•采用更高速的器件和更好的算法、提高微操作的并行度、减少所需时钟周期数等措施加快单条指令的解释•改革控制机构的方式(传统方式为顺序串行),让两条以上的指令以重叠、流水的方式执行(目前发展到了超级流水线)•按照资源重复的思想,重复设置多套指令部件,使多条指令同时执行,即超标量技术•超标量超流水线结合2第4章流水线计算机设计技术4.1重叠解释方式4.2流水线的工作原理、特点和分类4.3相关问题及解决方法4.4流水线的性能分析与举例4.5非线性流水线的调度技术4.6先进的流水调度技术—动态调度4.7转移预测技术4.8超标量、超流水线和VLIW34.1重叠解释方式4.1.1重叠解释方式的提出1、顺序执行方式执行n条指令所用的时间为:•若每段时间都为t,则:T=3nt•主要优点:控制简单,节省设备。•主要缺点:执行指令的速度慢,功能部件的利用率很低。niiiitttT1()执行分析取指令取指k分析k执行k取指k+1分析k+1执行k+14若每个过程的时间相等,则执行n条指令的时间:T=(1+2n)t主要优点:•执行时间缩短(与顺序方式相比)•功能部件的利用率明显提高主要缺点:•需要增加一些硬件(如需要增加一个指令寄存器IR等)•控制过程稍复杂(解决访问存储器的冲突等)取指k分析k执行k取指k+1分析k+1执行k+1取指k+2分析k+2执行k+22、一次重叠执行方式5取指k+2分析k+2执行k+2取指k+1分析k+1执行k+1取指k分析k执行k3、二次重叠执行方式理想情况下同时有三条指令在执行如果三个过程的时间相等,执行n条指令的时间为:T=(2+n)t处理机的结构要作比较大的改变,必须采用先行控制技术(Look-Ahead)6二次重叠要解决的问题:为了能同时完成取指令、分析指令、执行指令操作,必须有独立的存储控制器(存控)、指令控制器(指控)、运算控制器(运控)。解决访存冲突的问题,有三个方法:1.指令、数据单独存放,可以同时访问(哈佛结构,高级机器采用I-Cache和D-Cache)2.指令、数据混合存放,但采用多体交叉的并行主存系统3.增设指令缓冲寄存器,乘主存空闲期间取后续指令。如8086的指令队列。104.1.2使用指令缓冲器后的一次重叠指令缓冲器(先行指令缓冲栈)是利用主存储器的空闲时间来取指令的。因而只要主存的频带宽度足够,要分析的指令就都能从指令缓冲器中得到,从而取指令只需要很短的时间就能完成,因此可以将取指令和分析指令合并到一起。分析k执行k分析k+1执行k+1分析k+2执行k+2T=(n+1)t114.2流水线的工作原理、特点和分类4.2.1流水线的工作原理4.2.2流水线的特点4.2.3流水线的分类121、简单的指令流水线流水线的每一个阶段称为流水段、功能段、流水级或流水节拍。在每一个流水段的末尾或开头必须设置一个寄存器,称为流水锁存器或流水寄存器。会增加指令的执行时间。为了简化,在流水线中一般不画出流水锁存器,如P76图4.1。分析器分析k+1流水锁存器执行部件执行k流水锁存器输入输出DtDt4.2.1流水线工作原理132、进一步细分的指令流水线典型五段流水线•取指:按PC值访存,取指令到IR,并修改PC指向下一指令•译码:根据OP译码并读寄存器取数•执行:对访存指令形成OD的有效地址,其他指令执行其功能•访存:根据有效地址EA访存取/存数•写会:运算结果写会寄存器堆RF142、进一步细分的指令流水线一般4至12个流水段,大于等于8个流水段的称为超级流水线。1.取指单元段1:IFU12.取指单元段2:IFU23.取指单元段3:IFU34.译码段1:DEC15.译码段2:DEC26.寄存器别名表和分配段:RAT7.重排缓冲器段:ROB8.派遣段:DIS9.执行段:EX10.写回段:WB11.回收就绪段:RR12.回收段:RETPentiumII/III的超标量超流水的流水线可分为12段:15流水线的分析工具:时空图分析执行分析k分析k+1分析k+2执行k执行k+1执行k+2时间空间0t1t2t3t4运行的时刻所在流水段进行的工作简单流水线的时空图16流水线的分析工具:时空图流水线明显比顺序方式效率高174段浮点加法器流水线的时空图0ED1时间空间t1t2t3t4t5ED2ED3ED4EA1EA2EA3EA4MA1MA2MA3MA4NL1NL2NL3NL4t6t7NL:规格化MA:尾数加EA:对阶ED:求阶差求阶差对阶尾数加规格化流水线的分析工具—时空图18只有连续提供同类任务才能充分发挥流水线的效率:•对于指令流水线:要尽量减少因条件分支造成的断流•对于操作部件:主要通过编译技术,尽量提供连续的同类操作由多个功能段组成,每个功能段对应一个专用部件在流水线的每一个流水线段中都要设置一个流水锁存器•时间开销:流水线的执行时间加长•硬件开销:流水线中需要增加的主要硬件之一各流水段的时间应尽量相等•流水线处理机的基本时钟周期等于时间最长的流水段时间长度流水线工作可以分为建立、满载和排空3个阶段,如图所示。4.2.2流水线的主要特点19流水线的建立、满载和排空1时间空间S123n-1nS2S3S4123n-1n123n-1n123n-1n建立满载排空221、按连接方式分类线性流水线(LinearPipelining)•每个流水段都流过一次,且仅流过一次•线性流水线能够用流水线连接图唯一表示非线性流水线(NonlinearPipelining)•在流水线的某些流水段之间有反馈回路或前馈回路•必须用流水线连接图、预约表等共同表示4.2.3流水线的分类23一种简单的非线性流水线S1输入S2S3输出前馈回路反馈回路××S3×S2×S14321功能段时间241)处理机流水线(指令流水线)先行指令缓冲栈输入先行指令分析器先行读数栈先行操作栈取指译码取操作数指令执行部件后行写数栈输出执行写结果2、按照流水线的级别分类例如:在采用先行控制技术的处理机中,各功能部件之间的流水线:25求阶差输入输出Dt1对阶尾数加规格化Dt2Dt3Dt4P1输入任务1MMP2任务2MP3任务3输出3)处理机间流水线(宏流水线)每个处理机对同一数据流的不同部分分别进行处理2)部件流水线(操作流水线)例如:浮点加法流水线:2、按照流水线的级别分类P79图4.526单功能流水线:•只能完成一种固定功能的流水线•例:Cray-1计算机中有12条;YH-1计算机有18条;Pentium有一条5段的定点和一条8段的浮点流水线;PentiumⅢ有三条指令流水线,其中两条定点指令流水线,一条浮点指令流水线。多功能流水线:•流水线的各段通过不同连接实现不同功能•例:Texas公司的TI-ASC计算机中的8段流水线,能够实现:定点加减法、定点乘法、浮点加法、浮点乘法、逻辑运算、移位操作、数据转换、向量运算等。3、按流水线功能的多少分类图4.628静态流水线:同一段时间内,多功能流水线中的各个功能段只能按照一种固定的方式连接,实现一种固定的功能。只有连续出现同一种运算时,流水线的效率才能得到充分的发挥。如图所示动态流水线:在同一段时间内,多功能流水线中的各段可以按照不同的方式连接,同时执行多种功能。如图所示3、按多功能流水线的工作方式分类1时间空间023n123n123n123n123n123n1234123412321输入求阶差对阶尾数加规格化尾数乘累加输出静态流水线时空图浮点加法定点乘法加法不使用这两个部件浮点加法排空后才开始定点乘法指令1时间空间023n123n123n123n123n123n输入求阶差对阶尾数加规格化尾数乘累加输出动态流水线时空图123546123541234123浮点加法定点乘法浮点加法未排空定点乘法就开始31按照数据表示方式:•标量流水线(本章)•向量流水线(第六章)按照任务流入和流出的顺序分:•顺序(in-order)流水线•乱序(out-of-order)流水线4、流水线的其他分类方法33流水线分类小结分类有无反馈:线性、非线性级别:部件级、处理机级、处理机间级功能多少:单功能、多功能能否同时:静态、动态(仅对多功能流水线划分)数据表示:标量、向量输出顺序:顺序、乱序344.3相关问题及解决方法相关是指在一段程序的相近指令之间存在某种关系,为避免出错,而使它们不能同时解释的现象。•资源相关:多条指令进入流水线后在同一个Δt内争用同一功能部件发生的相关。•控制相关(全局相关):指由控制转移类指令(条件转移、子程序调用与返回、中断等)引起的相关。•数据相关(局部相关):指由于相邻的两条或多条指令使用了相同的数据地址(包括寄存器地址和存储单元地址)而发生的关联。354.3.1资源相关资源相关:多条指令进入流水线后在同一个Δt内争用同一功能部件发生的相关。•用I1I2表示在第4个周期,指令1、4争用访存部件364.3.1资源相关解决存储器资源相关的方法主要有以下五种:•从时间上推后下一条指令的访存操作。•让操作数和指令分别存放于两个独立编址且可同时访问的主存储器中。称哈弗结构。•仍然维持指令和操作数混存,但采用多模块交叉主存结构。•在CPU内增设I-Cache,乘主存空闲时预取指令。•在CPU内增设I-Cache和D-Cache。解决其它资源相关的方法主要是从时间上推后下一条指令对资源的使用和重复设置多套硬件资源。374.3.2数据相关数据相关(局部相关):指由于相邻的两条或多条指令使用了相同的数据地址(包括寄存器地址和存储单元地址)而发生的关联,说明指令间的有序关系。•先写后读相关:I1写的地址与I2读的地址相同,则称指令I2与指令I1存在先写后读相关,用“”表示。•先读后写相关:I2写的地址与I1读的地址相同,则称指令I2与指令I1存在先读后写相关,用“”表示。•写写相关:I2与I1有相同的写地址(寄存器或存储器),则称I2与I1存在写写相关,用“”表示。顺序流水线中只存在先写后读相关,乱序流水线三种相关都存在38顺序流动和乱序流动h的目的操作数是j的源操作数,则发生先写后读相关乱序执行后,若k,j写同一地址,则发生写-写相关乱序执行后,若j读与k写的地址相同,则发生先读后写相关。j读h的结果越过j,继续往前流动394.3.2数据相关I1:ADDR1,R2,R3/(R2)+(R3)→R1/I2:SUBR1,R4,R5/(R4)-(R5)→R1/I3:ANDR4,R1,R7/(R1)∧(R7)→R4/I3与I1、I2的先写后读相关,导致I3读数错误I1与I2的写写相关,由于顺序执行,不会导致错误404.3.2数据相关先写后读相关解决的方法•推后相关单元的读后推导致性能下降I3读后推至I2写完成41先写后读相关解决的方法•相关专用通路(定向传送技术)通用寄存器组ALUBC4.3.2数据相关提高了性能,增加了硬件复杂度42例4.1例4.1用图示的方法画出以下4条指令之间存在的数据相关和资源相关。•I1:MULR1,R2,R3/(R2)×(R3)→R1/•I2:ADDR5,R4,R1/(R4)+(R1)→R5/•I3:ADDR6,R7,R1/(R7)+(R1)→R6/•I4:ANDR1,R8,R5/(R8)∧(R5)→R1/434.3.3控制相关控制相关(全局相关):指由控制转移类指令(条件转移、子程序调用与返回、中断等)引起的相关。•延迟转移技术。编译程序重排指令序列,将转移指令与其前面的与转移指令无关的一条或几条指令对换位置,让成功转移总是在紧跟的指令被执行之后发生,从而使预取的指令不作废。见第二章RISC关键技术。•转移预测技术。直接由硬件来实现,转移预测技术可分为静态转移预测和动态转移预测两种。见4.7444.4线性流水线的性能分析4.4.1线性流水线的性能分析4.4.2线性流水线性能分析举例45衡量流水线性能的主要指标:吞吐率、加速比和效率

1 / 131
下载文档,编辑使用

©2015-2020 m.777doc.com 三七文档.

备案号:鲁ICP备2024069028号-1 客服联系 QQ:2149211541

×
保存成功