流水线技术.ppt
《流水线技术.ppt》由会员分享,可在线阅读,更多相关《流水线技术.ppt(111页珍藏版)》请在三一文库上搜索。
1、第三章 流水线技术,3.1 流水线的基本概念 3.2 DLX的基本流水线 3.3 流水线的相关 3.4 异常处理 3.5 DLX中多周期操作的处理 3.6 MIPS R4000流水线,Review:性能评测,平均CPI? 每类指令的使用频度,Type CPIi for type Frequency CPIi x freqIi Arith/Logic 4 40% 1.6 Load 5 30% 1.5 Store 4 10% 0.4 branch 3 20% 0.6 Average CPI: 4.1,是否可以使 CPI 4.1?,在一条指令执行过程中下图有许多空闲部件 可以让指令重叠执行?,洗衣为
2、例 Ann, Brian, Cathy, Dave 每人进行洗衣的动作: wash, dry, and fold washer需要 30 minutes Dryer 需要 40 minutes “Folder” 需要 20 minutes,3.1 流水线的基本概念,Sequential Laundry,顺序完成这些任务需要 6 小时 如果采用流水作业, 需要多长时间?,30,40,20,30,40,20,30,40,20,30,40,20,6 PM,7,8,9,10,11,Midnight,T a s k O r d e r,Time,流水线作业: 尽可能让任务重叠进行,流水作业完成四人的洗衣
3、任务只需要 3.5 hours,6 PM,7,8,9,10,11,Midnight,T a s k O r d e r,Time,流水线技术要点,流水线技术并不能提高单个任务的执行效率,它可以提高整个系统的吞吐率 流水线中的瓶颈最慢的那一段 多个任务同时执行,但使用不同的资源 其潜在的加速比流水线的级数 流水段所需时间不均衡将降低加速比 流水线存在装入时间和排空时间,使得加速比降低 由于存在相关问题,会导致流水线停顿,指令流水线:CPU执行大量的指令,指令吞吐率非常重要 DLX 的指令格式,3.2 DLX的基本流水线,所有指令相同长度 在指令格式中寄存器位于同一位置 只有Loads和Store
4、s可以对存储器操作,DLX数据通路一种简单实现,Memory Access,Write Back,Instruction Fetch,Instr. Decode Reg. Fetch,Execute Addr. Calc,L M D,MUX,Memory,Reg File,MUX,MUX,Data Memory,MUX,Sign Extend,Zero?,Next SEQ PC,Next PC,WB Data,RD,RS1,RS2,Imm,基本操作(Step 1 & 2),Step 1 - IF IR - MemPC - fetch the next instruction from memo
5、ry NPC - PC + 4 - compute the new PC Step 2 - ID - instruction decode and register fetch step A - RegsIR610 B - RegsIR1116 可能读取的寄存器值没有用,但没有关系,译码后如果无用,以后操作就不用 Imm (IR16)16 # IR16-31,基本操作Step 3, 执行阶段,根据译码的结果,有四种情况 Memory Reference ALUOutput - A + (IR16)16 # IR1631- effective address SMD - B - data to
6、be written if it is a STORE - SMD (store mem data) = MDR Register - Register ALU instruction ALUOutput - A op B Register - Immediate ALU instruction ALUOutput - A op (IR16)16 # IR1631) Branch/Jump ALUOutput - NPC + (IR16)16 # IR1631 cond - A op 0 - for conditional branches As value is the condition
7、base (= for BEQZ) 在简单的 Load-Store机器中,不存在即需要计算存储器地址,指令地址,又要进行ALU运算的指令,因此可以将计算有效地址与执行合二为一,在一个流水段中进行。,Step 4 & Step5,Step 4 MEM - memory access/branch completion memory reference LMD - MemALUOutput - if its a load; LMD (load memory data) = MDR 或 MemALUOutput - SMD branch if (cond) then PC - ALUOutput e
8、lse PC - NPC for Jumps the condition is always true Step 5 WB - write back Reg - Reg ALU RegsIR1620 - ALUOutput Reg - Immed ALU RegsIR1115 - ALUOutput Load RegsIR1115 - LMD,这种结构是否可行,模型是正确的,但没有优化 还有其他选择 指令和数据存储器是否可以分开 采用一个长周期还是5个短周期实现,单周期和多周期控制,多周期控制可实现指令重叠执行,DLX的基本流水线,假设流水线周期为每步所花费的时间,为什么用流水线?,假设执行1
9、00条指令 单周期机器 45 ns/cycle x 1 CPI x 100 inst = 4500 ns 多周期机器 10 ns/cycle x 4.6 CPI (due to inst mix) x 100 inst = 4600 ns 理想流水线机器 10 ns/cycle x (1 CPI x 100 inst + 4 cycle drain) = 1040 ns,为什么用流水线(cont.)?资源利用率高,I n s t r. O r d e r,Time (clock cycles),Inst 0,Inst 1,Inst 2,Inst 4,Inst 3,流水线正常工作的基本条件,各段
10、间需要使用寄存器文件保存当前段传送到下一段的数据和控制信息 存储器带宽是非流水的5倍,新的DLX数据通路(图3.12 Page 88),Review lecture5,流水线技术要点 流水线技术并不能提高单个任务的执行效率,它可以提高整个系统的吞吐率 流水线中的瓶颈最慢的那一段 多个任务同时执行,但使用不同的资源 其潜在的加速比流水线的级数 流水段所需时间不均衡将降低加速比 流水线存在装入时间和排空时间,使得加速比降低 由于存在相关问题,会导致流水线停顿 流水线正常工作的基本条件 增加寄存器文件保存当前段传送到下一段的数据和控制信息 存储器带宽是非流水的5倍,新的DLX数据通路(图3.12 P
11、age 88),在新的Datapath下各段的操作,IF IF/ID.IR MemPC; IF/ID.NPC,PC (if (EX/MEM.opcode = branch) ,Load or store instruction EX/MEM.IR ID/EX.IR EX/MEM.ALUOutput ID/EX.A + ID/EX.Imm EX/MEM.B ID/EX.B Branch instruction EX/MEM.ALUOutput ID/EX.NPC + (ID/EX.Imm 2) EX/MEM.cond (ID/EX.A = 0); MEM ALU Instruction MEM/
12、WB.IR EX/MEM.IR MEM/WB.ALUOutput EX/MEM.ALUOutput; Load or store instruction MEM/WB.IR EX/MEM.IR; MEM/WB.LMD MemEX/MEM.ALUOutput; or MemEX/MEM.ALUOutput EX/MEM.B; (store),WB ALU instruction RegsMEM/WB.IRrd MEM/WB.ALUOutput; or RegsMEM/WB.IRrt MEM/WB.ALUOutput; For load only RegsMEM/WB.IRrt MEM/WB.LM
13、D,简化的 Pipelining(图3.11 Page 87),I n s t r. O r d e r,Time (clock cycles),流水线性能分析,基本度量参数:吞吐率,加速比,效率 吞吐率: 单位时间内流水线所完成的任务数或输出结果数量 最大吞吐率:流水线在连续流动达到稳定状态后所得到的吞吐率。,最大吞吐率取决于流水线中最慢的一段所需的时间,最慢的一段是性能的瓶颈 解决办法: 串联:将最慢段进一步划分 并联:增加部件,实际吞吐率:假设m段,完成n个任务,单位时间所实际完成的任务数。 加速比: m段流水线的速度与等功能的非流水线的速度之比。 效率:流水线的设备利用率。 流水线性能
14、分析举例 例3.1 p94,例3.1时空图,review: Pipelining,指令流水线通过指令重叠减小 CPI 充分利用数据通路 当前指令执行时,启动下一条指令 其性能受限于花费时间最长的段 检测和消除相关 如何有利于流水线技术的应用 所有的指令都等长 只有很少的指令格式 只用Load/Store来进行存储器访问,review 流水线性能分析,流水线技术应用的难度何在? :相关问题,吞吐率、加速比、效率之间的关系,3.3 流水线的相关,相关的基本概念 结构相关 数据相关 控制相关,采用流水线技术带来的新的问题,流水线相关 结构相关:同一时间两种方式使用同一资源 例如 washer/dry
15、er 合在一起, IM和ID合在一起 控制相关: 试图在条件未评估之前,就做决定 例如 branch instructions 数据相关:在数据未准备好之前,就需要使用数据 当前指令的执行需要上一条指令的结果 使用等待策略总是可以解决相关 流水线控制必须能检测相关,否则由软件设计来避免 采用相应操作解决相关 (or 等待),Mem,单个存储器引起的结构相关,I n s t r. O r d e r,Time (clock cycles),Load,Instr 1,Instr 2,Instr 3,Instr 4,Reg,Mem,Reg,Reg,Mem,Reg,Detection is easy
16、in this case! (right half highlight means read, left half write),消除结构相关(图3.18 Page 98),结构相关对性能的影响,例如: 如果每条指令平均访存1.3 次,而每个时钟周期只能访存一次,那么 在其他资源100利用的前提下,平均 CPI 1.3,流水线的加速比计算,For simple RISC pipeline, CPI = 1:,例如: Dual-port vs. Single-port,机器A: Dual ported memory (“Harvard Architecture”) 机器 B: Single po
17、rted memory, 但其流水线实现时比非流水实现时钟频率快1.05 倍 Ideal CPI = 1 for both,Load指令CPI = 2 所执行的指令中Loads指令占 40% SpeedUpA = Pipeline Depth/(1 + 0) x (clockunpipe/clockpipe) = Pipeline Depth Cycle Timeunpipeb = 1.05 CycleTimepipe SpeedUpB= Pipeline Depth/(1 + 0.4 x 1) x (cycleTimeunpipe/(cycletimepipe) = (Pipeline De
18、pth/1.4) x 1.05 = 0.75 x Pipeline Depth SpeedUpA / SpeedUpB = Pipeline Depth/(0.75 x Pipeline Depth) = 1.33 Machine A 比Machine B快,数据相关问题(图3.20 Page 100),Time (clock cycles),写后读相关(Read After Write (RAW) InstrJ tries to read operand before InstrI writes it 由于实际的数据交换需求而引起的,三种基本的数据相关,I: add r1,r2,r3 J:
19、sub r4,r1,r3,读后写相关Write After Read (WAR) InstrJ writes operand before InstrI reads it 编译器编写者称之为“anti-dependence”(反相关),是由于重复使用寄存器名“r1”引起的. DLX 5 段基本流水线不会有此类相关因为: 所有的指令都是5段, 并且 读操作总是在第2段,而 写操作在第5段,写后写相关(Write After Write (WAW)) InstrJ writes operand before InstrI writes it. 编译器编写者称之为“output dependence
20、” ,也是由于重复使用寄存器名 “r1”引起的. 在DLX 5段基本流水线中,也不会发生。因为 所有指令都是5段,并且写操作都在第5段 在后面的复杂的流水线中我们将会看到 WAR 和WAW 相关,Review -流水线技术要点,流水线技术并不能提高单个任务的执行效率,它可以提高整个系统的吞吐率 多个任务同时执行,但使用不同的资源 流水线性能分析:吞吐率、加速比、效率 流水线中的瓶颈最慢的那一段 其潜在的加速比流水线的级数 流水段所需时间不均衡将降低加速比 流水线存在装入时间和排空时间,使得加速比降低 由于存在相关问题,会导致流水线停顿 结构相关、数据相关和控制相关,采用定向技术避免数据相关(图
21、3.21 Page 102),采用定向技术仍然存在相关(图3.23 Page 153),DMem,Try producing fast code for a = b + c; d = e f; assuming a, b, c, d ,e, and f in memory. Slow code: LW Rb,b LW Rc,c ADD Ra,Rb,Rc SW a,Ra LW Re,e LW Rf,f SUB Rd,Re,Rf SW d,Rd,采用软件方法避免数据相关,Fast code: LW Rb,b LW Rc,c LW Re,e ADD Ra,Rb,Rc LW Rf,f SW a,Ra
22、SUB Rd,Re,Rf SW d,Rd,流水线相关检测部件能检测到的相关情况,review: Pipelining,指令流水线通过指令重叠减小 CPI 充分利用数据通路 当前指令执行时,启动下一条指令 其性能受限于花费时间最长的段 检测和消除相关 如何有利于流水线技术的应用 所有的指令都等长 只有很少的指令格式 只用Load/Store来进行存储器访问,review 流水线性能分析,流水线技术应用的难度何在? :相关问题,吞吐率、加速比、效率之间的关系,Review -流水线技术要点,流水线技术并不能提高单个任务的执行效率,它可以提高整个系统的吞吐率 多个任务同时执行,但使用不同的资源 流水
23、线性能分析:吞吐率、加速比、效率 流水线中的瓶颈最慢的那一段 其潜在的加速比流水线的级数 流水段所需时间不均衡将降低加速比 流水线存在装入时间和排空时间,使得加速比降低 由于存在相关问题,会导致流水线停顿 结构相关、数据相关和控制相关,采用定向技术硬件所需做的修改,定向源为R-R ALU操作的定向比较判断,定向源为ALUimm操作的定向比较判断,定向源为Load操作的比较判定,review lecture 6,流水线技术应用的难度何在? :相关问题,吞吐率、加速比、效率之间的关系,Review lecture 6 (cont.),结构相关 概念:由于争用资源而引起的 解决办法 数据相关 概念:
24、由于存在对相同单元的读写引起的。 解决办法 硬件:定向技术(forwarding) 软件: 指令级调度 控制相关 概念:由于控制类指令引起的 解决办法 ?,控制相关,问题更复杂,分支需要解决两个问题 分支目标地址(转移成功意谓着PC值不是 PC+4) CC是否有效,这两点在DLX中都在流水线的靠后段中确定 译码在ID段后,此时取进来的指令可能是错误的指令 对于简单的DLX流水线 - 3 cycle branch penalty 有效地址在EX段才能确定 条件是否为真在MEM段 因此有3个stall 流水线的时空图,回顾DLX数据通路,减少分支延时的方法,修改数据通路 使得目标地址和分支条件尽早
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 流水线 技术
链接地址:https://www.31doc.com/p-4206606.html