○流水线的基本概念 一个任务可以分解为k个子任务 K个子任务在K个不同阶段(使用不同的资源)运行 每个子任务执行需要1个单位时间 整个任务的执行时间为K倍单位时间 流水线执行模式是重叠执行模式 K个流水段并行执行K个不同任务 每个单位时间进入/离开流水线一个任务 12…k Serial Execution Pipelined Execution One completion every k time units One completion every 1 time unit 2/112021 chapter2
流水线的基本概念 • 一个任务可以分解为k 个子任务 – K个子任务在 K 个不同阶段(使用不同的资源)运行 – 每个子任务执行需要1个单位时间 – 整个任务的执行时间为 K倍单位时间 • 流水线执行模式是重叠执行模式 – K个流水段并行执行K个不同任务 – 每个单位时间进入/离开流水线一个任务 2/11/2021 chapter03.2
同步流水线 流水段之间采用时钟控制的寄存器文件 ( clocked registers) 时钟上升沿到达时 ●●● 所有寄存器同时保存前一流水段的结果 流水段是组合逻辑电路 流水线设计中希望各段相对平衡 Input S 2 k H Output Clock 2/112021 chapter3
同步流水线 • 流水段之间采用时钟控制的寄存器文件 (clocked registers) • 时钟上升沿到达时… – 所有寄存器同时保存前一流水段的结果 • 流水段是组合逻辑电路 • 流水线设计中希望各段相对平衡 – 即所有段的延迟时间大致相等 • 时钟周期取决于延迟最长的流水段 2/11/2021 chapter03.3
流水线的性能 i t= time delay in stage Si 时钟周期z=max(7)为最长的流水段延迟 时钟频率f=1/r=1/max() 流水线可以在k+n-1个时钟周期内完成n个任务 完成第一个任务需要k个时钟周期 其他n-1个任务需要n-1个时钟周期完成 K-段流水线的理想加速比(相对于串行执行) Serial execution in cycles k pK Pipelined execution in cycles S→ k for large n k+n-1 2/112021 chapter 4
流水线的性能 • 设 = time delay in stage Si • 时钟周期 = max( ) 为最长的流水段延迟 • 时钟频率 f = 1/ = 1/max( ) • 流水线可以在k+n-1个时钟周期内完成n个任务 – 完成第一个任务需要 k个时钟周期 – 其他n-1个任务需要n-1个时钟周期完成 • K-段流水线的理想加速比(相对于串行执行) 2/11/2021 chapter03.4
典型的RISC5段流水线 5个流水段,每段的延迟为1个cye IF:取值阶段 选择地址:下一条指令地址、转移地址 ID:译码阶段 确定控制信号并从寄存器文件中读取寄存器值 EX执行 Load、 Store:计算有效地址 Branch:计算转移地址并确定转移方向 MEM:存储器访问(仅Load和 Store) WB:结果写回 2/112021 chapter5
典型的RISC 5段流水线 • 5个流水段,每段的延迟为1个cycle • IF: 取值阶段 – 选择地址:下一条指令地址、转移地址 • ID: 译码阶段 – 确定控制信号 并从寄存器文件中读取寄存器值 • EX: 执行 – Load 、Store:计算有效地址 – Branch:计算转移地址并确定转移方向 • MEM: 存储器访问(仅Load和Store) • WB: 结果写回 2/11/2021 chapter03.5
典型的RSC5段流水线 Fetch Decode EXecute Memory I Writeback Data Instruction Cache d Cache o0∝ This version designed for regfiles/ memories with synchronous reads and writes 6
典型的 RISC 5段流水线 6 Fetch Decode EXecute Memory Registers ALU B A Data Cache PC Instruction Cache Store Imm Inst. Register Writeback This version designed for regfiles/memories with synchronous reads and writes