389 字
2 分钟
流水线
2024-08-21

概念#

将指令执行过程划分为不同的阶段,占用不同的资源,使得多条指令同时执行。

经典五段式划分#

FDEMW 译码阶段要取操作数

表示法#

  • 执行过程图
  • 时空图

指标#

  • 吞吐率
  • 加速比

冒险#

结构冒险#

  • 停顿流水线,译码时对冒险进行分析,判断本条指令是否会造成结构冒险,如果会则让这条指令在译码阶段停住,直到某个周期该问题消失再让这条指令送往下一个流水段
  • 设置独立的部件

数据冒险(RAW)#

  • 停顿流水线,译码时对冒险进行分析,判断本条指令是否会造成数据冒险,如果会则让这条指令在译码阶段停住,直到某个周期该问题消失再让这条指令送往下一个流水段
  • 旁路转发,把输出转发到流水线寄存器
  • use-load不能靠转发实现,要停顿一个周期

控制冒险#

  • 停顿流水线,在测试条件求完值之后才能确定走哪条分支
  • 分支预测

高级流水线#

  • 乱序发射
  • 多发射
  • 超流水线 增加流水线段数
  • 超长指令字 由编译程序挖掘出指令间潜在的并行性,将多条能并行操作的指令组合成一条,具有多个操作码字段的超长指令字(可达几百位)

其他#