流水线的可视化表示 多条指令执行多个时钟周期 指令按程序序从上到下排列 图中展示了每一时钟周期资源的使用情况 不同指令相邻阶段之间没有干扰 Time(in cycles)CC1+CC2+CC3+CC4+CC5+CC6+CC7+CC8-+ Wr6,8(r5) MH距 HReg! ALUH: nDMA: HReg add r9 r8, r7 HReg: SALUH: HDM:HReg ori r4 r3. 7 IM HIARegu ALUH DMH HReg sub r5 r2 r3 IM H HReg! ALUH DMH HRegl sWr2,10(r3) IM H: HReg! ALUH HDM 2/112021 chapter7
流水线的可视化表示 • 多条指令执行多个时钟周期 – 指令按程序序从上到下排列 – 图中展示了每一时钟周期资源的使用情况 – 不同指令相邻阶段之间没有干扰 2/11/2021 chapter03.7
Recap:流水线技术要点 流水线技术要点 多个任务重叠(并发/并行)执行,但使用不同的资源 流水线技术提高整个系统的吞吐率,不能缩短单个任务的执 行时间 其潜在的加速比=流水线的级数 影响流水线性能的因素 流水线中的瓶颈—最慢的那一段 流水段所需时间不均衡将降低加速比 流水线存在装入时间和排空时间,使得加速比降低 由于存在相关 Hazards)问题,会导致流水线停顿 Hazards问颞:流水线的执行可能会导致对资源的访问冲突,或 破坏对资源的访问顺芧 流水线正常工作的基本条件 增加寄存器文件保存当前段传送到下一段的数据和控制信息 需要更高的存储器带宽 2/112021 chapter 3. 8
Recap:流水线技术要点 • 流水线技术要点 – 多个任务重叠(并发/并行)执行,但使用不同的资源 – 流水线技术提高整个系统的吞吐率,不能缩短单个任务的执 行时间 – 其潜在的加速比=流水线的级数 – 影响流水线性能的因素 • 流水线中的瓶颈——最慢的那一段 • 流水段所需时间不均衡将降低加速比 • 流水线存在装入时间和排空时间,使得加速比降低 – 由于存在相关(hazards)问题,会导致流水线停顿 • Hazards 问题:流水线的执行可能会导致对资源的访问冲突,或 破坏对资源的访问顺序 • 流水线正常工作的基本条件 – 增加寄存器文件保存当前段传送到下一段的数据和控制信息 – 需要更高的存储器带宽 2/11/2021 chapter3.8
指令流时序 时序图展示 每个时钟周期指令所使用的流水段情况 ·指令流在采用5段流水线执行模式的执行情况 Up to five instructions can be in the pipeline during the same cycle ALU instructions skip Instruction Level Parallelism (ILP) the MEM stage Store instructions skip the WB stage Wwr7,8(r3) FDEⅩMEM|WB o lw r6, 8(r5) IF ID EX MEM WB t or r4, r3,7 IF ID EX WB sub r5 r2 r3 IF ID EX WB swr2,10(r3) IF ID EX MEM CC1 CC2 CC3 CC4 CC5 CC6 CC7 CC8 CC9 Time 2/112021 chapter9
指令流时序 • 时序图展示: – 每个时钟周期指令所使用的流水段情况 • 指令流在采用5段流水线执行模式的执行情况 2/11/2021 chapter03.9
○单周期、多周期、流水线控制性能比较 Single-Cycle EXecution Clock=350+250+350+350+250=1550 ps IFReg ALU MEM Reg CPI=1, but long clock cycle Each instruction =1550 ps IF Reg AL MEM Reg Each instruction 1550 ps IF Reg ALU MEM Reg Multi-Cycle EXecution: Clock =350 ps Each instruction= 1550 ps -+ F|Reg| ALUMEM| Reg Average CP=5×02+4×01+4×04+3×0.3=39 350ps 350ps 350ps 350ps 350ps IFReg| ALU Reg -Load 5 cycles 350ps350ps350ps350ps Reg ALU ALU =4 cycles Pipelined Execution 350ps350s350ps Branch=3 cycles→ IFReg ALU MEMReg Tcok=350ps=ma(350,250) 350ps Reg ALU MEM Reg One instruction completes each cycle 350ps IF Reg aLU mEm reg Average CPI=1 350ps350ps350ps350ps350ps Ignore time to fill pipeline 2/112021 chapters 10
单周期、多周期、流水线控制性能比较 2/11/2021 chapter03.10 • 假设5段指令执行流水线 • 某一程序段假设: – 20% load, 10% store, 40% ALU, and 30% branch • 比较三种执行模式的性能
流水线的相关( Hazards) 结构相关:流水线中一条指令可能需要另一条 指令使用的资源 数据和控制相关:一条指令可能依赖于先前的 指令生成的内容 数据相关:依赖先前指令产生的结果(数据)值 一控制相关:依赖关系是如何确定下一条指令地址 (branches, exceptions) 处理相关的一般方法是插入bubb|e,导致 cPI>1(单发射理想cPI) 11
流水线的相关(Hazards) • 结构相关:流水线中一条指令可能需要另一条 指令使用的资源 • 数据和控制相关:一条指令可能依赖于先前的 指令生成的内容 – 数据相关:依赖先前指令产生的结果(数据)值 – 控制相关:依赖关系是如何确定下一条指令地址 (branches, exceptions) • 处理相关的一般方法是插入bubble,导致 CPI>1 (单发射理想CPI) 11