首页/计算机组成原理/中央处理器/超标量流水线 🔗 在 Obsidian 中打开
计算机组成原理 · 中央处理器

超标量流水线

重要度 ⭐⭐⭐⭐中央处理器超标量流水线并行CPU
速查
超标量:每个时钟周期发射多条指令(空间并行)。理想吞吐率 = m/Δt(m=发射宽度),但实际 IPC 通常 1.5~3,远低于 m——受制于各种冒险。vs 超流水线 = 时间并行(细分段)。

核心概念

超标量流水线的基本思想

超标量(Superscalar)处理器在每个时钟周期内同时发射多条指令到多条流水线中并行执行。

时钟周期:  1    2    3    4    5    6
流水线1:  IF1  ID1  EX1  MEM1 WB1
流水线2:  IF2  ID2  EX2  MEM2 WB2
流水线3:  IF3  ID3  EX3  MEM3 WB3

超标量 vs 超流水线 vs 超标量超流水线

类型特点
普通流水线每周期发射 1 条,分 k 段
超标量每周期发射 m 条(m>1),分 k 段
超流水线每周期发射 1 条,分 2k 段(每半周期发射)
超标量超流水线每周期发射 m 条,分 2k 段

关键技术

  • 多发射:每个周期发射多条指令。
  • 乱序执行:不按程序顺序执行(提高并行度)。
  • 寄存器重命名:消除 WAR 和 WAW 冒险。
  • 分支预测:提前获取指令流。
  • 推测执行:预测执行分支路径。

超标量处理器的性能

  • 理想情况:m 发射超标量 → 吞吐率提高 m 倍。
  • 实际情况:数据冒险、控制冒险、结构冒险限制了并行度。
  • 实际 IPC(每周期指令数):通常 1.5~3(远低于发射宽度)。

关键性质

性质说明
发射宽度 m每周期最多发射 m 条指令
功能部件数需要 m 份 ALU、m 份访存单元等
理想吞吐率$m / \Delta t$
实际吞吐率$\text{IPC} / \Delta t$,IPC < m
主要限制数据冒险、控制冒险、结构冒险

常见考法

考法解题套路
超标量 vs 超流水线超标量:多发射;超流水线:细分段
计算理想吞吐率$m \times$ 普通流水线吞吐率
为什么实际 IPC 远低于 m各种冒险限制并行度
需要的硬件支持多份功能部件、寄存器重命名、乱序执行
超标量流水线时间计算$T = (k + \lceil n/m \rceil - 1) \cdot \Delta t$

易错点

必记
  • 超标量是空间并行(多条流水线),超流水线是时间并行(更细的时间片)。
  • 发射 m 条 $\neq$ 执行 m 条,实际 IPC 通常远低于 m。
  • 超标量需要更多硬件(多份功能部件)。
  • 超标量处理器中冒险问题更严重(多条指令并行更容易冲突)。
  • 超标量可以是顺序发射或乱序发射。

核心结论

  1. 超标量:每个时钟周期发射多条指令(空间并行)。
  2. 超流水线:将每个时钟周期再细分(时间并行)。
  3. 超标量需要多份功能部件和复杂的冒险检测逻辑。
  4. 实际 IPC 受限于各种冒险,远低于理论发射宽度。
  5. 现代处理器通常是超标量 + 乱序执行 + 分支预测。

记忆卡片

超标量和超流水线的区别?
超标量 = 空间并行(多发射);超流水线 = 时间并行(细分段)。
m 发射超标量的理想吞吐率?
$m/\Delta t$。
为什么实际 IPC 远低于发射宽度?
数据冒险、控制冒险、结构冒险限制并行度。
超标量需什么硬件支持?
多份功能部件、寄存器重命名、乱序执行引擎;IPC = 每周期指令数。

交互动画 · 发射宽度与吞吐率

普通流水线:每周期发射 1 条 每周期完成指令数(IPC) m 越大理想吞吐率越高,但实际 IPC 受冒险限制
切换发射宽度 m,观察流水线推进与完成指令数
提示:绿柱 = 理想 IPC(m),橙柱 = 实际 IPC

相关知识点

instruction-pipeline pipeline-performance-calculation sisd-simd-mimd

↑ 以上为站内 HTML 相对链接(纯网页可浏览);本页右上「在 Obsidian 中打开」跳回源笔记。