《中国科学技术大学ppt课件.ppt》由会员分享,可在线阅读,更多相关《中国科学技术大学ppt课件.ppt(123页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、中国科学技术大学ppt课件 Still waters run deep.流静水深流静水深,人静心深人静心深 Where there is life,there is hope。有生命必有希望。有生命必有希望第三章第三章 流水线技术流水线技术3.1流水线的基本概念流水线的基本概念3.2 MIPS基本流水线基本流水线3.3 DLX(MIPS)中多周期操作的处理中多周期操作的处理3.4 MIPS R4000流水线流水线中国科学技术大学chapter03.2流水线的基本概念流水线的基本概念一个任务可以分解为k 个子任务K个子任务在 K 个不同阶段(使用不同的资源)运行每个子任务执行需要1个单位时间整个
2、任务的执行时间为 K倍单位时间流水线执行模式是重叠执行模式K个流水段并行执行K个不同任务每个单位时间进入/离开流水线一个任务中国科学技术大学chapter03.3同步流水线流水段之间采用时钟控制的寄存器文件(clocked registers)时钟上升沿到达时所有寄存器同时保存前一流水段的结果流水段是组合逻辑电路流水线设计中希望各段相对平衡即所有段的延迟时间大致相等时钟周期取决于延迟最长的流水段中国科学技术大学chapter03.4流水线的性能设设 =time delay in stage Si时钟周期时钟周期 =max()为最长的流水段延迟为最长的流水段延迟时钟频率时钟频率 f=1/=1/m
3、ax()流水线可以在流水线可以在k+n-1个时钟周期内完成个时钟周期内完成n个任务个任务 完成第一个任务需要完成第一个任务需要 k个时钟周期个时钟周期其他其他n-1个任务需要个任务需要n-1个时钟周期完成个时钟周期完成K-段流水线的理想加速比(相对于串行执行)段流水线的理想加速比(相对于串行执行)中国科学技术大学chapter03.5简单的简单的5段流水线段流水线5个流水段,每段的延迟为个流水段,每段的延迟为1个个cycleIF:取值阶段取值阶段选择地址:下一条指令地址、转移地址ID:译码阶段译码阶段确定控制信号 并从寄存器文件中读取寄存器值EX:执行执行Load、Store:计算有效地址Br
4、anch:计算转移地址并确定转移方向MEM:存储器访问(仅存储器访问(仅Load和和Store)WB:结果写回结果写回中国科学技术大学chapter03.6流水线的可视化表示流水线的可视化表示多条指令执行多个时钟周期多条指令执行多个时钟周期指令按程序序从上到下排列指令按程序序从上到下排列图中展示了每一时钟周期资源的使用情况图中展示了每一时钟周期资源的使用情况不同指令相邻阶段之间没有干扰不同指令相邻阶段之间没有干扰中国科学技术大学chapter03.7指令流时序指令流时序时序图展示:时序图展示:每个时钟周期指令所使用的流水段情况每个时钟周期指令所使用的流水段情况指令流在采用指令流在采用5段流水线
5、执行模式的执行情况段流水线执行模式的执行情况中国科学技术大学chapter03.8单周期、多周期、流水线控制性能比较单周期、多周期、流水线控制性能比较假设假设5段指令执行流水线段指令执行流水线某一程序段假设:某一程序段假设:20%load,10%store,40%ALU,and 30%branch比较三种执行模式的性能比较三种执行模式的性能中国科学技术大学chapter03.9中国科学技术大学chapter3.1003/03-review 流水线技术要点流水线技术要点流水线技术并不能提高单个任务的执行效率,它可以流水线技术并不能提高单个任务的执行效率,它可以提高整个系统的吞吐率提高整个系统的吞
6、吐率流水线中的瓶颈流水线中的瓶颈最慢的那一段最慢的那一段多个任务同时执行,但使用不同的资源多个任务同时执行,但使用不同的资源其潜在的加速比流水线的级数其潜在的加速比流水线的级数流水段所需时间不均衡将降低加速比流水段所需时间不均衡将降低加速比流水线存在装入时间和排空时间,使得加速比降低流水线存在装入时间和排空时间,使得加速比降低由于存在相关问题,会导致流水线停顿由于存在相关问题,会导致流水线停顿 吞吐率:吞吐率:在单位时间内流水线所完成的任务数量或输在单位时间内流水线所完成的任务数量或输 出结果的数量。出结果的数量。基本度量参数:吞吐率,加速比,效率基本度量参数:吞吐率,加速比,效率n:任务数T
7、k:处理完成n个任务所用的时间流水线的性能分析流水线的性能分析中国科学技术大学chapter03.111.各段时间均相等的流水线各段时间均相等的流水线各段时间均相等的流水线各段时间均相等的流水线时空图时空图流水线技术提高系统的任务吞吐率流水线技术提高系统的任务吞吐率中国科学技术大学chapter03.12流水线完成流水线完成n个连续任务所需要的总时间为个连续任务所需要的总时间为(假设一条(假设一条k k段段线性流水线)线性流水线)T Tk kk kt t(n n-1)-1)t t(k kn n-1)-1)t t 流水线的流水线的实际吞吐率实际吞吐率最大吞吐率:流水线在连续流动达到稳定状态后流水
8、线在连续流动达到稳定状态后所得到的吞吐率。所得到的吞吐率。吞吐率吞吐率S412345.n-1nS312345.n-1nS212345.n-1nS112345.n-1n中国科学技术大学13最大吞吐率与实际吞吐率的关系最大吞吐率与实际吞吐率的关系 q流水线的实际吞吐率小于最大吞吐率,它除了与流水线的实际吞吐率小于最大吞吐率,它除了与每个段的时间有关外,还与流水线的段数每个段的时间有关外,还与流水线的段数k k以及以及输入到流水线中的任务数输入到流水线中的任务数n n等有关。等有关。q只有当只有当n nk k时,才有时,才有TPTPTPTPmaxmax。TP与与TpTpmaxmax的关系的关系中国科
9、学技术大学chapter03.142.各段时间不完全相等的流水线各段时间不完全相等的流水线 各段时间不等的流水线及其时空图各段时间不等的流水线及其时空图一条一条4 4段段的流水线的流水线S1S1,S3S3,S4S4各段的时间:各段的时间:t tS2S2的时间:的时间:33t t (瓶颈段)瓶颈段)流水线中这种时间最长的段称为流水线的流水线中这种时间最长的段称为流水线的瓶颈段。瓶颈段。流水线中的瓶颈流水线中的瓶颈最慢的段最慢的段中国科学技术大学chapter03.15中国科学技术大学chapter03.16各段时间不等的流水线的各段时间不等的流水线的实际吞吐率实际吞吐率:(t ti i为第为第i
10、 i段的时间,共有段的时间,共有k k个段个段 )流水线的最大吞吐率为中国科学技术大学17 例如:例如:一条一条4 4段的流水线中,段的流水线中,S S1 1,S S2 2,S S4 4各段的各段的时间都是时间都是t t,唯有,唯有S S3 3的时间是的时间是33t t。最大吞吐率为中国科学技术大学183.3.解决流水线瓶颈问题的常用方法解决流水线瓶颈问题的常用方法 细分瓶颈段细分瓶颈段 例如:例如:对前面的对前面的4 4段段流水线流水线把瓶颈段把瓶颈段S S3 3细分为细分为3 3个子流水线段:个子流水线段:S S3a3a,S S3b3b,S S3c3c改进后的流水线的吞吐率改进后的流水线的
11、吞吐率 :中国科学技术大学19重复设置瓶颈段重复设置瓶颈段缺点:缺点:控制逻辑比较复杂,所需的硬件增加了。控制逻辑比较复杂,所需的硬件增加了。例如:例如:对前面的对前面的4 4段流水线段流水线 重复设置瓶颈段重复设置瓶颈段S S3 3:S S3a3a,S S3b3b,S S3c3c中国科学技术大学chapter03.20重复设置瓶颈段后的时空图重复设置瓶颈段后的时空图中国科学技术大学chapter03.21加速比:加速比:完成同样一批任务,不使用流水线所用的时间完成同样一批任务,不使用流水线所用的时间 与使用流水线所用的时间之比。与使用流水线所用的时间之比。假设:不使用流水线(即顺序执行)所用
12、的间假设:不使用流水线(即顺序执行)所用的间为为T Ts s,使用流水线后所用的时间为,使用流水线后所用的时间为T Tk k,则该流水,则该流水线的加速比为线的加速比为加速比加速比中国科学技术大学chapter03.221.1.流水线各段时间相等(都是流水线各段时间相等(都是t t)一条一条k k段流水线完成段流水线完成n n个连续任务个连续任务 所需要的时间为所需要的时间为 Tk=(kn-1)t顺序执行顺序执行n n个个任务任务 所需要的时间:所需要的时间:Ts=nkt 流水线的实际加速比为流水线的实际加速比为中国科学技术大学chapter03.23最大加速比最大加速比当当n nk k时,时
13、,S S k k思考:思考:流水线的段数愈多愈好?流水线的段数愈多愈好?中国科学技术大学chapter03.242.流水线的各段时间不完全相等时流水线的各段时间不完全相等时一条一条k k段流水线完成段流水线完成n n个连续任务的实际加速比为个连续任务的实际加速比为中国科学技术大学chapter03.25效率效率效率:效率:流水线中的设备实际使用时间与整个运行时间流水线中的设备实际使用时间与整个运行时间 的比值,即流水线设备的利用率。的比值,即流水线设备的利用率。由于流水线有通过时间和排空时间,所以在连续由于流水线有通过时间和排空时间,所以在连续完成完成n n个个任务的时间内,各段并不是满负荷地
14、工作。任务的时间内,各段并不是满负荷地工作。各段时间相等各段时间相等各段的效率各段的效率e ei i相同相同 中国科学技术大学chapter03.26整条流水线的效率为整条流水线的效率为 可以写成 最高效率为 当当n nk k时,时,E E11。中国科学技术大学27当流水线各段时间相等时,流水线的效率与吞当流水线各段时间相等时,流水线的效率与吞吐率成正比。吐率成正比。E E=TPTPt t 流水线的效率流水线的效率是流水线的实际加速比是流水线的实际加速比S S与它的最大加速与它的最大加速 比比k k的比值。的比值。当当E E=1=1时,时,S S=k k,实际加速比达到最大。,实际加速比达到最
15、大。中国科学技术大学chapter03.28 从时空图上看,效率就是从时空图上看,效率就是n n个任务占用的时空面积和个任务占用的时空面积和 k k个段总的时空面积之比。个段总的时空面积之比。当各段时间不相等时中国科学技术大学29中国科学技术大学chapter3.30Summary实际吞吐率:假设实际吞吐率:假设k段,完成段,完成n个任务,个任务,单位时间所实际完成的任务数。单位时间所实际完成的任务数。加速比加速比:k段流水线的速度与等功能的段流水线的速度与等功能的非流水线的速度之比。非流水线的速度之比。效率:流水线的设备利用率。效率:流水线的设备利用率。中国科学技术大学chapter3.31
16、中国科学技术大学chapter3.32-Review:Pipelining指令流水线通过指令重叠减小指令流水线通过指令重叠减小 CPI充分利用数据通路充分利用数据通路当前指令执行时,启动下一条指令当前指令执行时,启动下一条指令其性能受限于花费时间最长的段其性能受限于花费时间最长的段检测和消除相关检测和消除相关如何有利于流水线技术的应用如何有利于流水线技术的应用所有的指令都等长所有的指令都等长只有很少的指令格式只有很少的指令格式只用只用Load/Store来进行存储器访问来进行存储器访问中国科学技术大学chapter3.33-Review:流水线性能分析:流水线性能分析流水线技术应用的难度何在流
17、水线技术应用的难度何在?:相关问题:相关问题吞吐率、加速比、效率吞吐率、加速比、效率之间的关系之间的关系中国科学技术大学chapter3.34指令流水线:指令流水线:CPU执行大量的指令,指令吞吐率非常重要执行大量的指令,指令吞吐率非常重要MIPS 的指令格式的指令格式3.2 MIPS的基本流水线的基本流水线Op0531161511106rsrtimmediateOp0531Op0531161511106rsrtoffset added to PCrdRegister-Register(R-type)ADD R1,R2,R326252120Register-Immediate(I-type)S
18、UB R1,R2,#3Jump/Call(J-type)JUMP endfunc(jump,jump and link,trap and return from exception)所有指令相同长度所有指令相同长度在指令格式中寄存器位于同一位置在指令格式中寄存器位于同一位置只有只有Loads和和Stores可以对存储器操作可以对存储器操作6中国科学技术大学chapter3.35 MIPS数据通路数据通路中国科学技术大学chapter3.36 中国科学技术大学chapter3.37MIPS数据通路数据通路中国科学技术大学chapter3.38改进后流水线的分支操作改进后流水线的分支操作中国科学技
19、术大学chapter3.393.2.1 流水线的相关流水线的相关相关的基本概念相关的基本概念结构相关结构相关数据相关数据相关控制相关控制相关中国科学技术大学chapter3.40采用流水线技术带来的新问题采用流水线技术带来的新问题流水线相关流水线相关结构相关:同一时间两种方式使用同一资源结构相关:同一时间两种方式使用同一资源例如例如 washer/dryer 合在一起,合在一起,IM和和ID合在一起合在一起控制相关控制相关:试图在条件未评估之前,就做决定试图在条件未评估之前,就做决定例如例如 branch instructions数据相关:在数据未准备好之前,就需要使用数据数据相关:在数据未准
20、备好之前,就需要使用数据当前指令的执行需要上一条指令的结果当前指令的执行需要上一条指令的结果使用等待策略总是可以解决相关使用等待策略总是可以解决相关流水线控制必须能检测相关,否则由软件设计来避免流水线控制必须能检测相关,否则由软件设计来避免采用相应操作解决相关采用相应操作解决相关(or 等待等待)中国科学技术大学chapter3.41Mem单个存储器引起的结构相关单个存储器引起的结构相关Instr.OrderTime(clock cycles)LoadInstr 1Instr 2Instr 3Instr 4ALUMemRegMemRegALUMemRegMemRegALUMemRegMemRe
21、gALURegMemRegALUMemRegMemRegDetection is easy in this case!(right half highlight means read,left half write)中国科学技术大学chapter3.42消除结构相关消除结构相关Instr.OrderTime(clock cycles)LoadInstr 1Instr 2StallInstr 3RegALUDMemIfetchRegRegALUDMemIfetchRegRegALUDMemIfetchRegCycle 1 Cycle 2 Cycle 3 Cycle 4Cycle 6 Cycle
22、7Cycle 5RegALUDMemIfetchRegBubbleBubbleBubbleBubbleBubble中国科学技术大学chapter3.43结构相关对性能的影响结构相关对性能的影响例如例如:如果每条指令平均访存如果每条指令平均访存1.3 次,而每个时次,而每个时钟周期只能访存一次,那么钟周期只能访存一次,那么在其他资源在其他资源100利用的前提下,平均利用的前提下,平均 CPI 1.3中国科学技术大学chapter3.44流水线的加速比计算流水线的加速比计算 For simple RISC pipeline,CPI=1:中国科学技术大学chapter3.45例如:例如:Dual-p
23、ort vs.Single-port机器机器A:Dual ported memory(“Harvard Architecture”)机器机器B:Single ported memory存在结构相关的机器存在结构相关的机器B的时钟频率是机器的时钟频率是机器A的时钟频率的的时钟频率的1.05倍倍Ideal CPI=1 在机器在机器B中中load指令会引起结构相关,所执行的指令中指令会引起结构相关,所执行的指令中Loads指令占指令占 40%Average instruction time=CPI*Clock cycle time 无结构相关的机器无结构相关的机器A:Average Instruct
24、ion time=Clock cycle time 存在结构相关的机器存在结构相关的机器B:Average Instruction time=(1+0.4*1)*clock cycle time/1.05 =1.3*clock cycle time中国科学技术大学chapter3.46Instr.Orderadd r1,r2,r3sub r4,r1,r3and r6,r1,r7or r8,r1,r9xor r10,r1,r11RegALUDMemIfetchRegRegALUDMemIfetchRegRegALUDMemIfetchRegRegALUDMemIfetchRegRegALUDMe
25、mIfetchReg数据相关问题数据相关问题Time(clock cycles)IFID/RF EXMEMWB中国科学技术大学chapter3.47写后读相关写后读相关(Read After Write(RAW)InstrJ tries to read operand before InstrI writes it由于实际的数据交换需求而引起的由于实际的数据交换需求而引起的三种基本的数据相关三种基本的数据相关 I:add r1,r2,r3J:sub r4,r1,r3中国科学技术大学chapter3.48读后写相关读后写相关Write After Read(WAR)InstrJ writes o
26、perand before InstrI reads it编译器编写者称之为编译器编写者称之为“anti-dependence”(反相关),是由于重复使反相关),是由于重复使用寄存器名用寄存器名“r1”引起的引起的.DLX(MIPS)5 段基本流水线不会有此类相关因为段基本流水线不会有此类相关因为:所有的指令都是所有的指令都是5段段,并且并且 读操作总是在第读操作总是在第2段,而段,而写操作在第写操作在第5段段I:sub r4,r1,r3 J:add r1,r2,r3K:mul r6,r1,r7中国科学技术大学chapter3.49写后写相关(写后写相关(Write After Write(W
27、AW))InstrJ writes operand before InstrI writes it.编译器编写者称之为编译器编写者称之为“output dependence”,也是由于重也是由于重复使用寄存器名复使用寄存器名“r1”引起的引起的.在在DLX(MIPS)5段基本流水线中,也不会发生。因为段基本流水线中,也不会发生。因为 所有指令都是所有指令都是5段,并且写操作都在第段,并且写操作都在第5段段在后面的复杂的流水线中我们将会看到在后面的复杂的流水线中我们将会看到 WAR 和和WAW 相关相关I:sub r1,r4,r3 J:add r1,r2,r3K:mul r6,r1,r7中国科学
28、技术大学chapter3.50采用定向技术避免数据相关采用定向技术避免数据相关Time(clock cycles)Instr.Orderadd r1,r2,r3sub r4,r1,r3and r6,r1,r7or r8,r1,r9xor r10,r1,r11RegALUDMemIfetchRegRegALUDMemIfetchRegRegALUDMemIfetchRegRegALUDMemIfetchRegRegALUDMemIfetchReg中国科学技术大学chapter3.51采用定向技术硬件所需做的修改采用定向技术硬件所需做的修改MEM/WRID/EXEX/MEM DataMemoryA
29、LUmuxmuxRegistersNextPCImmediatemux中国科学技术大学chapter3.52定向源为定向源为R-R ALU操作的定向比较判断操作的定向比较判断中国科学技术大学chapter3.53定向源为定向源为ALUimm操作的定向比较判断操作的定向比较判断中国科学技术大学chapter3.54定向源为定向源为Load操作的比较判定操作的比较判定中国科学技术大学chapter3.55Instr.Orderlw r1,0(r2)sub r4,r1,r6and r6,r1,r7or r8,r1,r9采用定向技术仍然存在相关采用定向技术仍然存在相关Time(clock cycles
30、)RegALUDMemIfetchRegRegALUDMemIfetchRegRegALUDMemIfetchRegRegALUDMemIfetchReg中国科学技术大学chapter3.56DMemTime(clock cycles)or r8,r1,r9Instr.Orderlw r1,0(r2)sub r4,r1,r6and r6,r1,r7RegALUDMemIfetchRegRegIfetchALUDMemRegBubbleIfetchALUDMemRegBubbleRegIfetchALUBubbleReg中国科学技术大学chapter3.57Try producing fast
31、code fora=b+c;d=e f;assuming a,b,c,d,e,and f in memory.Slow code:LW Rb,bLW Rc,cADD Ra,Rb,RcSW a,Ra LW Re,e LW Rf,fSUB Rd,Re,RfSWd,Rd采用软件方法避免数据相关采用软件方法避免数据相关Fast code:LW Rb,bLW Rc,cLW Re,e ADD Ra,Rb,RcLW Rf,fSW a,Ra SUB Rd,Re,RfSWd,Rd控制冲突控制冲突 执行分支指令的结果有两种执行分支指令的结果有两种分支成功:分支成功:PCPC值改变为分支转移的目标地址。值改变为分支
32、转移的目标地址。在条件判定和转移地址计算都完成后,才改变在条件判定和转移地址计算都完成后,才改变PCPC值。值。不成功或者失败:不成功或者失败:PCPC的值保持正常递增,指向顺序的下一条指令。的值保持正常递增,指向顺序的下一条指令。分支需要解决两个问题分支需要解决两个问题分支目标地址分支目标地址(转移成功意谓着PC值不是 PC+4)CCCC是否有效是否有效,这两点在DLX(MIPS)中都在流水线的靠后段中确定处理分支指令处理分支指令最简单的方法:最简单的方法:“冻结冻结”或者或者“排空排空”流水线流水线。优点:优点:简单。简单。中国科学技术大学chapter03.58中国科学技术大学chapt
33、er3.59回顾回顾DLX(MIPS)数据通路数据通路分支指令分支指令 IF IF ID ID EX EX MEM MEM WB WB 分支目标指令分支目标指令 IFIF stallstall stallstall IF IF ID ID EX EX MEM MEM WB WB 分支目标指令分支目标指令+1+1 IF IF ID ID EX EX MEM MEM WB WB 分支目标指令分支目标指令+2+2 IF IF ID ID EX EX MEM MEM 分支目标指令分支目标指令+3+3 IF IF ID ID EX EX 分支指令分支指令 IF IF ID ID EX EX MEM ME
34、M WB WB 分支后继指令分支后继指令 IF IF stallstall stallstall IF IF ID ID EX EX MEM MEM WB WB 分支后继指令分支后继指令+1+1 IF IF ID ID EX EX MEM MEM WB WB 分支后继指令分支后继指令+2+2 IF IF ID ID EX EX MEM MEM 分支后继指令分支后继指令+3+3 IF IF ID ID EX EX 简单处理分支指令:分支成功的情况简单处理分支指令:分支成功的情况 简单处理分支指令:分支失败的情况简单处理分支指令:分支失败的情况 中国科学技术大学chapter03.60中国科学技术
35、大学chapter3.61减少分支延时的方法减少分支延时的方法硬件的方法硬件的方法修改数据通路:使得目标地址和分支条件尽早确定,其中之一尽早确定是修改数据通路:使得目标地址和分支条件尽早确定,其中之一尽早确定是没有用的没有用的判断是否为判断是否为0可以在可以在ID段确定段确定使用另一个加法器计算使用另一个加法器计算可以在可以在ID段计算段计算BTA(分支目标地址分支目标地址),即在,即在ID段形成下一条指令地址,两种可能段形成下一条指令地址,两种可能(BTA,PC+4),选择哪一个取决于,选择哪一个取决于ID段确定的段确定的CC必要时使用互锁机制来插入必要时使用互锁机制来插入Stall设计合适
36、的设计合适的ISAe.g.BNEZ,BEQZ on DLX 使得使得CC可以在可以在ID段确定段确定软件(通过编译器)的方法:软件(通过编译器)的方法:调度一些指令放入分支的延迟槽中调度一些指令放入分支的延迟槽中预测的方法:统计分支成功和失败的情况,提高预测精度预测的方法:统计分支成功和失败的情况,提高预测精度中国科学技术大学chapter3.62新的新的DLX(MIPS)数据通路数据通路中国科学技术大学chapter3.63改进后流水线的分支操作改进后流水线的分支操作中国科学技术大学chapter3.64四种可能的解决控制相关的方法四种可能的解决控制相关的方法#1:Stall 直到分支方向确
37、定直到分支方向确定#2:预测分支失败预测分支失败直接执行后继指令直接执行后继指令如果分支实际情况为分支成功,则撤销流水线中的指令对流水线状如果分支实际情况为分支成功,则撤销流水线中的指令对流水线状态的更新态的更新DLX(MIPS)分支指令平均)分支指令平均47%为分支失败为分支失败要保证:要保证:分支结果出来之前不会改变处理机的状态,以便一旦猜错时,分支结果出来之前不会改变处理机的状态,以便一旦猜错时,处理机能够回退到原先的状态。处理机能够回退到原先的状态。#3:预测分支成功预测分支成功 前提:前提:先知道分支目标地址,后知道分支是否先知道分支目标地址,后知道分支是否 成功。成功。平均平均53
38、%DLX(MIPS)分支为分支成功)分支为分支成功DLX(MIPS)分支目标地址在)分支目标地址在ID段才能计算出目标地址段才能计算出目标地址DLX(MIPS)还是有还是有1个个 cycle 的分支延迟的分支延迟中国科学技术大学chapter3.65延迟转移延迟转移#4:延迟转移延迟转移主要思想:主要思想:从逻辑上从逻辑上“延长延长”分支指令的执行时间。把延迟分支看成是由原分支指令的执行时间。把延迟分支看成是由原来的分支指令和若干个延迟槽构成,不管分支是否成功,都要按顺来的分支指令和若干个延迟槽构成,不管分支是否成功,都要按顺序执行延迟槽中的指令。序执行延迟槽中的指令。定义分支发生在一系列指令
39、之后定义分支发生在一系列指令之后branch instructionsequential successor1sequential successor2.sequential successornbranch target if taken5级流水只需要一个延迟槽就可以确定目标地址和确定条件级流水只需要一个延迟槽就可以确定目标地址和确定条件DLX 使用这种方式使用这种方式Branch delay of length n分分支支失失败败 分支指令分支指令i i IF IF ID ID EX EX MEM MEM WBWB延迟槽指令延迟槽指令 i+1i+1 IF IF ID ID EX EX ME
40、M MEM WBWB指令指令 i+2 i+2 IF IF ID ID EX EX MEM MEM WBWB指令指令 i+3 i+3 IF IF ID ID EX EX MEMMEMWBWB指令指令 i+4 i+4 IF IF ID ID EX EX MEMMEMWBWB分支延迟槽中的指令分支延迟槽中的指令“掩盖掩盖”了流水线原来必须插入的暂停周期。了流水线原来必须插入的暂停周期。分分支支成成功功 分支指令分支指令i i IF IF ID ID EX EX MEMMEMWBWB 延迟槽指令延迟槽指令 i+1i+1 IF IF ID ID EX EX MEMMEMWBWB分支目标指令分支目标指令j
41、 j IF IF ID ID EX EX MEMMEMWBWB分支目标指令分支目标指令j+1 j+1 IF IF ID ID EX EX MEMMEMWBWB分支目标指令分支目标指令j+2j+2IF IF ID ID EX EX MEMMEMWBWB具有一个分支延迟槽的流水线的执行过程具有一个分支延迟槽的流水线的执行过程中国科学技术大学66中国科学技术大学chapter3.67延迟转移延迟转移从何处选择指令来填充延迟槽?从何处选择指令来填充延迟槽?分支指令之前的指令:最好分支指令之前的指令:最好从分支目标地址处取从分支目标地址处取:在分支成功可能性大时,这种策略较好在分支成功可能性大时,这种策
42、略较好从分支失败处调度:仅在分支失败时从分支失败处调度:仅在分支失败时编译器可以有效的调度一个延迟槽编译器可以有效的调度一个延迟槽如果提供取消分支时,如果提供取消分支时,编译器可以调度更多的指令填入延迟槽编译器可以调度更多的指令填入延迟槽调度前和调度后的代码调度前和调度后的代码中国科学技术大学chapter03.68三种方法的要求及效果三种方法的要求及效果调 度 策 略对调度的要求什么情况下起作用从从 前前 调调 度度从目标处调度从目标处调度从失败处调度从失败处调度必须保证在分支失败时执行被调度必须保证在分支失败时执行被调度的指令不会导致错误。有可能需要的指令不会导致错误。有可能需要复制指令复
43、制指令被调度的指令必须与分支无关被调度的指令必须与分支无关必须保证在分支成功时执行被调度必须保证在分支成功时执行被调度的指令不会导致错误的指令不会导致错误任何情况任何情况 分支成功时分支成功时(但由于复制指令,有但由于复制指令,有可能会增大程序空间可能会增大程序空间)分支失败时分支失败时中国科学技术大学chapter03.69分支取消机制分支取消机制分支延迟受到两个方面的限制:分支延迟受到两个方面的限制:可以被放入延迟槽中的指令要满足一定的条件。可以被放入延迟槽中的指令要满足一定的条件。编译器预测分支转移方向的能力。编译器预测分支转移方向的能力。进一步改进:分支取消机制进一步改进:分支取消机制
44、当分支的实际执行方向和事先所预测的一样时执行当分支的实际执行方向和事先所预测的一样时执行分支延迟槽中的指令,否则就将分支延迟槽中的指分支延迟槽中的指令,否则就将分支延迟槽中的指令转化成一个空操作。令转化成一个空操作。中国科学技术大学chapter03.70分分支支失失败败 分支指令分支指令i i IF IF ID ID EX EX MEM MEM WBWB延迟槽指令延迟槽指令 i+1i+1 IF IF idleidle idle idle idle idle idleidle指令指令 i+2 i+2 IF IF ID ID EX EX MEM MEM WBWB指令指令 i+3 i+3 IF I
45、F ID ID EX EX MEMMEMWBWB指令指令 i+4 i+4 IF IF ID ID EX EX MEMMEMWBWB分分支支成成功功 分支指令分支指令i i IF IF ID ID EX EX MEMMEMWBWB 延迟槽指令延迟槽指令 i+1i+1 IF IF ID ID EX EX MEMMEMWBWB分支目标指令分支目标指令j j IF IF ID ID EX EX MEMMEMWBWB分支目标指令分支目标指令j+1 j+1 IF IF ID ID EX EX MEMMEMWBWB分支目标指令分支目标指令j+2j+2IF IF ID ID EX EX MEMMEMWBWB预
46、测分支成功的情况下,分支取消机制的执行情况预测分支成功的情况下,分支取消机制的执行情况 分支取消机制示意分支取消机制示意中国科学技术大学chapter03.71中国科学技术大学chapter3.72评估减少分支策略的效果评估减少分支策略的效果SchedulingBranchCPIspeedup v.speedup v.scheme penaltyunpipelinedstallStall pipeline31.423.51.0Predict taken11.144.41.26Predict not taken11.094.51.29Delayed branch0.51.074.61.31 1.
47、14=1+1*14%*100%1.09=1+1*14%*65%1.07=1+0.5*14%Conditional&Unconditional=14%,65%change PC中国科学技术大学chapter3.7303/08-Review:流水线性能分析:流水线性能分析流水线技术应用的难度何在流水线技术应用的难度何在?:相关问题:相关问题相关的类型:相关的类型:结构相关,控制相关,以及结构相关,控制相关,以及数据相关(数据相关(RAW,WAR,WAW)吞吐率、加速比、效率吞吐率、加速比、效率之间的关系之间的关系中国科学技术大学chapter3.74指令流水线:指令流水线:CPU执行大量的指令,指
48、令吞吐率非常重要执行大量的指令,指令吞吐率非常重要MIPS 的的ISA:RISC03/08-Review:MIPS的基本流水线的基本流水线中国科学技术大学chapter3.7503/08-Review相关会影响流水线性能相关会影响流水线性能结构相关结构相关:由于争用资源而引起的由于争用资源而引起的解决办法解决办法:等待等待 增加(或拆分)资源增加(或拆分)资源数据相关:两条指令访问相同的数据而引起的数据相关:两条指令访问相同的数据而引起的解决办法:解决办法:硬件:定向技术(硬件:定向技术(forwarding)软件:指令级调度软件:指令级调度控制相关:由于控制类指令引起的控制相关:由于控制类指
49、令引起的减少性能损失的基本方法减少性能损失的基本方法冻结或排空流水线冻结或排空流水线预测分支成功预测分支成功预测分支失败预测分支失败延迟转移延迟转移中国科学技术大学chapter3.763.2.2 异常处理异常处理流水线使得系统的吞吐率提高流水线使得系统的吞吐率提高问题问题:由于相关会影响系统性能的发挥由于相关会影响系统性能的发挥另一问题:异常另一问题:异常 Why?多级流水多周期指令多级流水多周期指令异常可以发生在任何地方异常可以发生在任何地方指令序与异常序可能不同指令序与异常序可能不同必须按指令序处理异常必须按指令序处理异常采用何种策略取决于异常的类型采用何种策略取决于异常的类型中国科学技
50、术大学chapter3.77异常的类型异常的类型 I/O 设备请求设备请求 用户程序调用用户程序调用OS服务服务断点断点 整数或浮点数运算溢出整数或浮点数运算溢出 缺页缺页 非对齐存储器访问非对齐存储器访问 存储器保护冲突存储器保护冲突 未定义的指令未定义的指令 硬件失效硬件失效 例如:例如:parity or ECC error 电源故障电源故障中国科学技术大学chapter3.78异常的分类异常的分类Synchronous vs.Asynchronoussynchronous caused by a particular instructionasynchronous-external d