指令流水线的概念

  • 将指令执行过程分解为多个子过程,各子过程并行执行
  • 五级流水:取指 IF → 译码 ID → 取操作数 OF → 执行 EX → 写回 WB
  • 四级流水:取指 → 译码 → 执行 → 写回(去掉取操作数)

指令集应具备的特征

  • 指令长度一致,简化取指和译码
  • 指令格式规整
  • 采用 Load/Store 架构
  • 数据和指令「对齐」存放

流水线的分类

  • 按级别:部件功能级、处理机级、处理机间级
  • 按功能:单功能流水线、多功能流水线
  • 按工作方式:动态流水线、静态流水线
  • 按结构:线性流水线、非线性流水线

影响流水线的因素

资源冲突(结构冒险)

  • 多条指令争用同一功能部件
  • 解决方案:停顿一个时钟周期、资源重复配置

数据冲突(数据冒险)

  • 写后读 RAW:后一条指令需要前一条指令的写结果
  • 读后写 WAR
  • 写后写 WAW
  • 解决方案:数据旁路(转发)、停顿、编译器调度

控制冲突(控制冒险)

  • 主要由转移指令引起
  • 解决方案:分支预测、延迟槽、提前形成条件码

流水线的性能指标

吞吐率 TP

  • (n 为任务数,Tk 为处理 n 个任务的时间)
  • 最大吞吐率:
  • 实际吞吐率(m 段流水):

加速比 SP

  • (m 为流水线段数,n 为任务数)

效率 E

  • 流水线中各功能段的利用率

超标量流水线技术

  • 超标量流水线:每个时钟周期同时发射多条指令
  • 超流水线技术:将流水线进一步细分,提高时钟频率(不调整指令执行顺序)
  • 超长指令字(VLIW):由编译器将多条并行操作打包为一条长指令