跳转至

流水线技术

概述

流水线技术

将指令执行过程分解为多个子过程,每个子过程由专门的功能部件并行执行,提高CPU吞吐率。

流水线基本原理

流水线原理

类似于工业生产流水线,多条指令在不同阶段同时执行。

指令流水线

graph LR
    A[取指IF] --> B[译码ID]
    B --> C[执行EX]
    C --> D[访存MEM]
    D --> E[写回WB]

    style A fill:#E3F2FD
    style B fill:#E8F5E9
    style C fill:#FFF3E0
    style D fill:#F3E5F5
    style E fill:#FCE4EC

流水线执行过程

时空图

展示多条指令在流水线各阶段的执行情况。

Text Only
1
2
3
4
5
时间:  1  2  3  4  5  6  7  8  9
指令1: IF ID EX MEM WB
指令2:    IF ID EX  MEM WB
指令3:       IF ID  EX  MEM WB
指令4:          IF  ID  EX  MEM WB

流水线性能指标

吞吐率(TP)

吞吐率

单位时间内流水线完成的指令数。

公式: TP = n / T

其中: - n: 指令数 - T: 完成n条指令所需时间

加速比(S)

加速比

流水线方式与串行方式的速度比值。

公式: S = T串行 / T流水线

效率(E)

效率

流水线设备利用率。

公式: E = 有效时空区数 / 总时空区数

流水线相关

流水线相关

引起流水线停顿的因素。

1. 结构相关

结构相关(资源冲突)

多条指令同时使用同一资源。

解决方法:

  • 资源重复设置
  • 指令延迟执行

2. 数据相关

数据相关(数据冲突)

后续指令依赖前面指令的结果。

类型:

  • RAW(写后读): 最常见的数据相关
  • WAR(读后写)
  • WAW(写后写)

解决方法:

  • 暂停流水线
  • 数据前递(Forwarding)
  • 乱序执行

3. 控制相关

控制相关(分支冲突)

分支指令引起流水线断流。

解决方法:

  • 分支预测
  • 延迟槽技术
  • 预取分支目标

流水线分类

按功能分类

流水线类型

  • 指令流水线: 执行指令的流水线
  • 运算流水线: 执行运算的流水线
  • 存储流水线: 访问存储器的流水线

按级别分类

级别 说明 示例
部件级 功能部件内部流水线 浮点加法器流水线
处理机级 指令执行流水线 5级指令流水线
处理机间级 多处理机流水线 宏流水线

超标量技术

超标量(Superscalar)

每个时钟周期可发射多条指令。

特点:

  • 多条流水线并行
  • 动态指令调度
  • 乱序执行

超流水线技术

超流水线(Superpipeline)

将流水线划分得更细,提高时钟频率。

特点:

  • 流水线级数更多
  • 时钟周期更短
  • 每级工作更简单

参考资料