流水线技术.ppt
《流水线技术.ppt》由会员分享,可在线阅读,更多相关《流水线技术.ppt(186页珍藏版)》请在得力文库 - 分享文档赚钱的网站上搜索。
1、第三章第三章 流水线技术流水线技术 流水线技术是提高流水线技术是提高CPUCPU性能和运算部性能和运算部件性能的一类主要技术,也是现代计算件性能的一类主要技术,也是现代计算机系统设计中的一项关键技术。机系统设计中的一项关键技术。即现代即现代CPUCPU设计的关键是高性能的流设计的关键是高性能的流水线。水线。流流 水水 段段分分 支支 指指 令令 操操 作作IFIFIDIDEXEXIF/ID.IR MemPC;IF/ID.NPC,PC (if ID/EX.cond ID/EX.NPC else PC+4);ID/EX.A RegsIF/ID.IR6.10;ID/EX.B RegsIF/ID.IR
2、11.15;ID/EX.NPC IF/ID.NPC+(IR16)16#IR16.31;ID/EX.IR IF/ID.IR;ID/EX.cond (RegsIF/ID.IR6.10 op 0;ID/EX.Imm (IR16)16#IR16.31;MEMMEMWBWB表表3.6改进后流水线的分支操作改进后流水线的分支操作调调 度度 策策 略略对调度的要求对调度的要求什么情况下起作用?什么情况下起作用?从从 前前 调调 度度从目标处调度从目标处调度从失败处调度从失败处调度必须保证在分支失败时执行被调度必须保证在分支失败时执行被调度的指令不会导致错误。有可能需要的指令不会导致错误。有可能需要复制指令。
3、复制指令。被调度的指令必须与分支无关被调度的指令必须与分支无关必须保证在分支成功时执行被调度必须保证在分支成功时执行被调度的指令不会导致错误。的指令不会导致错误。任何情况任何情况 分支成功时分支成功时(但由于复制指令,有但由于复制指令,有可能会增大程序空间可能会增大程序空间)分支失败时分支失败时三种方法的要求及效果表 3.7 各种减少分支损失方法的效果调度方法调度方法每条分支指令的每条分支指令的平均分支损失平均分支损失暂停流水线暂停流水线预测分支成功预测分支成功预测分支失败预测分支失败1.001.00每条条件分支指每条条件分支指 令的分支损失令的分支损失延迟分支延迟分支每条无条每条无条件分支指
4、件分支指令的损失令的损失因分支暂停造因分支暂停造成的实际成的实际 CPICPI整整 型型平平 均均浮浮 点点平平 均均整整 型型平平 均均整整 型型平平 均均浮浮 点点平平 均均浮浮 点点平平 均均1.001.001.001.000.620.620.250.251.001.001.001.001.001.001.001.001.001.000.690.690.210.211.001.001.171.171.151.151.001.001.171.171.151.150.740.741.121.121.111.110.700.701.001.000.350.350.000.000.300.301
5、.041.041.041.04流水段流水段功能部件功能部件描描述述A浮点加法器浮点加法器尾数加流水段尾数加流水段D浮点除法器浮点除法器除法流水段除法流水段E浮点乘法器浮点乘法器例外测试段例外测试段M浮点乘法器浮点乘法器乘法器第一个流水段乘法器第一个流水段N浮点乘法器浮点乘法器乘法器第二个流水段乘法器第二个流水段R浮点加法器浮点加法器舍入段舍入段S浮点加法器浮点加法器操作数移位段操作数移位段U展开浮点数展开浮点数浮点指令浮点指令延延迟迟初始化间初始化间隔隔使用的流水段使用的流水段加、减加、减43U,S+A,A+R,R+S乘乘84U,E+M,M,M,M,N,N+A,R除除3635U,A,R,D28
6、,D+A,D+R,D+A,D+R,A,R求平方根求平方根112111U,E,(A+R)108,A,R取反取反21U,S求绝对值求绝对值21U,S浮点比较浮点比较32U,A,R基准程序基准程序流水线流水线CPI载入暂停时钟周载入暂停时钟周期数期数分支暂停时钟周分支暂停时钟周期数期数浮点结果暂停时浮点结果暂停时钟周期数钟周期数浮点结构性暂停浮点结构性暂停时钟周期数时钟周期数compresseqntottespressogccli整数平均整数平均1.201.881.421.561.641.540.140.270.070.130.180.160.060.610.350.430.460.380.000.
7、000.000.000.000.000.000.000.000.000.000.00doducmdljdp2earhydro2dsu2cor浮点平均浮点平均2.842.662.172.532.182.480.010.010.000.000.020.010.220.310.460.620.070.331.391.200.590.750.840.950.220.150.120.170.260.18总平均总平均2.000.100.360.460.093.1流水线的基本概念3.1.1 基本概念 1.1.产品生产流水线产品生产流水线下面通过一个例子来说明流水线的好处下面通过一个例子来说明流水线的好处:一
8、种方案:一种方案:另一种方案:另一种方案:流水线生产过程的抽象描述流水线生产过程的抽象描述:这种流水工作方式的主要特点这种流水工作方式的主要特点:每件产品还是要经过每件产品还是要经过4 4道工序处理,从单件产品角道工序处理,从单件产品角度来看,加工时间并没有改变,但从多件产品角度来度来看,加工时间并没有改变,但从多件产品角度来看,由于看,由于4 4道工序在同时进行,处理速度提高道工序在同时进行,处理速度提高4 4倍。倍。指令流水线指令流水线:把指令的解释过程分解为把指令的解释过程分解为“分析分析”和和“执行执行”两个子过程,并让这两个子过程分别用独立的分两个子过程,并让这两个子过程分别用独立的
9、分析部件和执行部件来实现。析部件和执行部件来实现。理想情况:理想情况:速度提高一倍速度提高一倍指令流水线指令流水线:浮点加法流水线浮点加法流水线把浮点加法的全过程分解为把浮点加法的全过程分解为“求阶差求阶差”、“对对阶阶”、“尾数相加尾数相加”、“规格化规格化”四个子过程,并让四个子过程,并让它们分别用各自独立的部件来实现。它们分别用各自独立的部件来实现。理想情况:理想情况:速度提高速度提高3 3倍倍浮点加法流水线浮点加法流水线时空图时空图:时空图从时间和空间两个方面描述了流水时空图从时间和空间两个方面描述了流水线的工作过程。时空图中,横坐标代表时间,线的工作过程。时空图中,横坐标代表时间,纵
10、坐标代表流水线的各个段。纵坐标代表流水线的各个段。流水技术流水技术流水技术流水技术是指:将一个重复的时序过程分解是指:将一个重复的时序过程分解成为若干个子过程,而每个子过程都可有效地在成为若干个子过程,而每个子过程都可有效地在其专用功能段上与其他子过程同时执行。其专用功能段上与其他子过程同时执行。(1)(1)流水过程由多个相联系的子过程组成,每个流水过程由多个相联系的子过程组成,每个子过程称为流水线的子过程称为流水线的“级级”或或“段段”。“段段”的数的数目称为流水线的目称为流水线的“深度深度”。流水技术的特点流水技术的特点(2)(2)每个子过程由专用的功能段实现;每个子过程由专用的功能段实现
11、;(3)(3)各个功能段所需时间应尽量相等,否则,时间长各个功能段所需时间应尽量相等,否则,时间长的功能段将成为流水线的瓶颈,会造成流水线的的功能段将成为流水线的瓶颈,会造成流水线的 “堵塞堵塞”和和“断流断流”。这个时间一般为一个时钟。这个时间一般为一个时钟周期周期(拍);(拍);(4)(4)流水线需要有流水线需要有“通过时间通过时间”(第一个任务流出结果(第一个任务流出结果所所需的时间),在此之后流水过程才进入稳定工作状需的时间),在此之后流水过程才进入稳定工作状态,每一个时钟周期(拍)流出一个结果;态,每一个时钟周期(拍)流出一个结果;(5)(5)流水技术适合于大量重复的时序过程,只有输
12、入流水技术适合于大量重复的时序过程,只有输入端能连续地提供任务,流水线的效率才能充分发端能连续地提供任务,流水线的效率才能充分发挥。挥。3.1.2 流水线的分类 单功能流水线单功能流水线:只能完成一种固定功能的:只能完成一种固定功能的 流水线。流水线。多功能流水线多功能流水线:流水线的各段可以进行不同的:流水线的各段可以进行不同的 连接,从而实现不同的功能。连接,从而实现不同的功能。例如:例如:TI ASC TI ASC 的多功能流水线的多功能流水线1 1按功能的多少来分按功能的多少来分2 2按同一时间内各段之间的连接方式来分按同一时间内各段之间的连接方式来分 静态流水线静态流水线:在同一时刻
13、,流水线的各段只能:在同一时刻,流水线的各段只能 按同一种功能的连接方式工作。按同一种功能的连接方式工作。在静态流水线中,只有当输入是一串相同在静态流水线中,只有当输入是一串相同的运算操作时,流水的效率才能得到发挥。的运算操作时,流水的效率才能得到发挥。动态流水线动态流水线:在同一时刻,流水线的各段可以:在同一时刻,流水线的各段可以 按不同功能的连接方式工作。按不同功能的连接方式工作。这样就不是非得相同运算的一串操作才能这样就不是非得相同运算的一串操作才能 流水处理。流水处理。优点优点:能提高流水线的效率:能提高流水线的效率 缺点缺点:会使流水线的控制变得复杂:会使流水线的控制变得复杂3 3按
14、照流水线的级别来分按照流水线的级别来分 部件级流水线部件级流水线(运算操作流水线):它是把(运算操作流水线):它是把 处理机的算术逻辑部件分段,以便为各种数处理机的算术逻辑部件分段,以便为各种数 据类型进行流水操作。据类型进行流水操作。处理机级流水线处理机级流水线(指令流水线):它是把指(指令流水线):它是把指 令的解释执行过程按照流水方式进行处理。令的解释执行过程按照流水方式进行处理。例如,前面把指令解释过程分解为例如,前面把指令解释过程分解为:分析分析和和执行执行。DLXDLX的基本流水线把指令解释过程分解为:的基本流水线把指令解释过程分解为:取指令、指令译码、执行、访存、写回取指令、指令
15、译码、执行、访存、写回。处理机间流水线处理机间流水线(宏流水线):它是指由两个(宏流水线):它是指由两个 以上的处理机串行地对同一数据流进行处理,以上的处理机串行地对同一数据流进行处理,每个处理机完成一项任务。每个处理机完成一项任务。4 4按照数据表示来分按照数据表示来分 向量处理机向量处理机:具有向量指令和向量数据表示的:具有向量指令和向量数据表示的 处理机。处理机。例如:例如:TI ASC,CRAY-I TI ASC,CRAY-I 等等 标量处理机标量处理机:不具有向量指令和向量数据表示,:不具有向量指令和向量数据表示,仅对标量进行流水处理的处理机。仅对标量进行流水处理的处理机。例如:例如
16、:IBM360/91,Amdahl 470V/6 IBM360/91,Amdahl 470V/6 等等5.5.按照是否有反馈回路来分按照是否有反馈回路来分 线性流水线线性流水线:流水线中的各段串行连接,没:流水线中的各段串行连接,没 有反馈回路。有反馈回路。非线性流水线非线性流水线:流水线中的各段除有串行连接:流水线中的各段除有串行连接 外,还有反馈回路。外,还有反馈回路。顺序流动流水线顺序流动流水线:流水线输出端任务流出的顺:流水线输出端任务流出的顺 序与输入端任务流入的顺序序与输入端任务流入的顺序相同相同。异步流动流水线异步流动流水线(乱序流水线):流水线输出(乱序流水线):流水线输出 端
17、任务流出的顺序与输入端任务流入的顺序端任务流出的顺序与输入端任务流入的顺序 不同不同。例如:例如:动态流水线动态流水线6.6.按照流动是否可以乱序来分按照流动是否可以乱序来分3.2DLX的基本流水线3.2.1 3.2.1 DLXDLX的一种简单实现的一种简单实现非流水线实现非流水线实现最多用最多用5 5个时钟周期来实现一条指令:个时钟周期来实现一条指令:(1)(1)取指令周期取指令周期(IF(IF,Instruction Fetch)Instruction Fetch)(2)(2)指指 令令 译译 码码/读读 寄寄 存存 器器 周周 期期(ID(ID,Instruction Instructi
18、on Decode)Decode)(3)(3)执行执行/有效地址计算周期有效地址计算周期(EX(EX,Execution)Execution)(4)(4)存储器访问存储器访问/分支完成周期分支完成周期(MEM(MEM,Memory Access)Memory Access)(5)(5)写回周期写回周期(WB(WB,Write Back)Write Back)定义定义:ADDADD:加法器加法器PCPC:指令计数器指令计数器NPCNPC:下一条顺序指令计数器下一条顺序指令计数器IRIR:指令寄存器指令寄存器A A、B B:操作数临时寄存器操作数临时寄存器ImmImm:立即数临时寄存器立即数临时寄
19、存器CondCond:条件值寄存器条件值寄存器MUXMUX:多路开关多路开关ALUALU:运算器运算器ALU OutputALU Output:运算器输出寄存器:运算器输出寄存器LMDLMD:存储器数据读取寄存器存储器数据读取寄存器时钟周期说明:时钟周期说明:(1 1)取指令取指令周期周期(IFIF)IR IR MemPCMemPC NPC PCNPC PC4 4(2 2)指令译码指令译码/读寄存器读寄存器周期周期(IDID)操作码译码操作码译码 A RegsIRA RegsIR6 6 .10.10 B RegsIRB RegsIR1111 .15.15 ImmImm (IR (IR1616)
20、16 16#IR#IR1616 .31.31 指令译码和读寄存器是并行进行的。之所指令译码和读寄存器是并行进行的。之所 以能做到这一点,是因为在以能做到这一点,是因为在DLXDLX指令格式中,指令格式中,操作码在固定位置。这种技术也称为操作码在固定位置。这种技术也称为固定字段固定字段 译码译码。存储器访问存储器访问 ALUOutputALUOutput A AImmImm图示图示 寄存器寄存器寄存器寄存器 ALU ALU 操作操作 ALUOutputALUOutput A op B A op B图示图示 寄存器寄存器立即值立即值 ALU ALU 操作操作 ALUOutputALUOutput
21、A op A op ImmImm图示图示 分支操作分支操作ALUOutputALUOutput NPC NPCImmImmCondCond (A op 0)(A op 0)图示图示(3 3)执行执行/有效地址计算有效地址计算周期周期(EXEX)在这个周期,不同的指令有不同的操作。在这个周期,不同的指令有不同的操作。上述四种操作都要用到上述四种操作都要用到ALUALU,它们能放在同一个时钟,它们能放在同一个时钟周期中完成的原因:周期中完成的原因:因为在因为在 DLX DLX 指令集结构中,没有任何指令需要指令集结构中,没有任何指令需要同时同时计算数据的存储器地址、计算分支指令的目标地计算数据的存
22、储器地址、计算分支指令的目标地址和进行址和进行ALUALU数据运算数据运算,也即这样做是由,也即这样做是由 DLXDLX指令集指令集结构本身的特点所允许的。结构本身的特点所允许的。存储器访问存储器访问 LMD LMD MemALUOutputMemALUOutput 或或 MemMem ALUOutputALUOutput B B图示图示 计算下一条指令地址计算下一条指令地址 ifif(condcond)PC PC ALUOutputALUOutput elseelse PC NPCPC NPC图示图示(5 5)写回写回周期周期(WBWB)不同指令在该周期完成的工作也不一样。不同指令在该周期完
23、成的工作也不一样。寄存器寄存器寄存器型寄存器型 ALU ALU 指令指令 RegsIRRegsIR1616 .20.20 ALUOutpuALUOutput t图示图示 寄存器寄存器立即值型立即值型 ALU ALU 指令指令 RegsIRRegsIR1111 .15.15 ALUOutputALUOutput图示图示(4 4)存储器访问存储器访问/分支完成分支完成周期周期(MEMMEM)LoadLoad 指令指令 RegsIRRegsIR1111 .15.15 LMD LMD实现特点:实现特点:不同的时钟周期之间的数据传递通过记不同的时钟周期之间的数据传递通过记忆装置来实现,这种记忆装置可以分
24、外部可见与不忆装置来实现,这种记忆装置可以分外部可见与不可见两类,外部可见记忆装置包括存储器、通用寄可见两类,外部可见记忆装置包括存储器、通用寄存器、存器、PCPC等,用于在指令之间传递数据;外部不可等,用于在指令之间传递数据;外部不可见记忆装置为一些临时寄存器,包括见记忆装置为一些临时寄存器,包括LMDLMD、ImmImm、A A、B B、IRIR、NPCNPC、ALUOutputALUOutput以及以及CondCond,用于在一条指用于在一条指令的不同周期之间传递数据令的不同周期之间传递数据指令周期数指令周期数:分支指令和分支指令和StoreStore指令需要指令需要4 4个时钟周期个时
25、钟周期,其它指令需要其它指令需要5 5个时钟周期个时钟周期 假设分支指令占总指令数的假设分支指令占总指令数的1212,Store Store指令占总指令数的指令占总指令数的5 5 则则:CPICPI4.834.83 上述实现无论在性能上,还是在硬件开销上,上述实现无论在性能上,还是在硬件开销上,都不是优化的。都不是优化的。可能改进:可能改进:1)1)硬件开销硬件开销-ADD-ADD由由ALUALU来完成来完成;(增加数据通路成本增加数据通路成本)2)2)改进改进CPI-ALUCPI-ALU指令的指令的WBWB操作放到操作放到MEMMEM周期完成周期完成;其它周期的合并其它周期的合并.3.2.2
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 流水线 技术
限制150内