Skip to content

流水线 vs 单周期对比模拟器使用指南

考情分析

流水线 vs 单周期是 408 的经典考点。加速比公式谁都会背,但很多同学做题时搞不清"为什么流水线时钟周期 = 最慢阶段"、"为什么加速比达不到理想值"。这个模拟器用两个场景直观对比,让你看到浪费在哪、快在哪。

考点你会在哪个场景看到考频
单周期 CPU 的性能瓶颈单周期执行🔥🔥
流水线时空图流水线执行🔥🔥🔥
加速比计算底部对比面板🔥🔥🔥
流水线时钟周期 = 最慢阶段对比面板🔥🔥🔥

走完两个场景大约 10 分钟。走完后再做加速比计算题,画面感会帮你快速定位答案。

加载可视化中...

场景一:单周期执行

你会看到什么

时间轴上,每条指令用一个完整的长条表示一个时钟周期。长条内部按五个阶段着色(IF 蓝 / ID 紫 / EX 橙 / MEM 绿 / WB 红),但每个阶段只占一小段——其余全是灰色空闲。

关键观察:每条指令必须等前一条完全结束才能开始。第 2 条指令在第 1 条的整个 800ps 期间都在等待——即使第 1 条的 WB 阶段早在 100ps 内就结束了。

单周期的核心问题

单周期时钟周期 = 所有阶段延迟之和(因为最长指令 lw 要走全部五个阶段)。即使 add 不需要访存,它也要等满 800ps 才结束——寄存器堆、ALU 大部分时间在空闲

数字

默认参数下(IF=200, ID=100, EX=200, MEM=200, WB=100):

  • 单周期时钟 = 200+100+200+200+100 = 800ps
  • 5 条指令总时间 = 5 × 800 = 4000ps

场景二:流水线执行

你会看到什么

经典的流水线时空图——横轴是时钟周期,纵轴是指令。不同指令的不同阶段同时执行

  • 时钟 1:I1=IF
  • 时钟 2:I1=ID, I2=IF(2 个阶段同时工作)
  • 时钟 3:I1=EX, I2=ID, I3=IF(3 个阶段同时)
  • 时钟 5:所有 5 个阶段全部同时工作——流水线达到稳态

最壮观的一瞬间

当动画推进到第 5 个周期时,五个阶段全部高亮——这就是流水线的全速运转状态。模拟器会特别标注"全速运转!"。之后每个周期完成一条指令,这就是流水线"理想吞吐量"的物理含义。

数字

  • 流水线时钟 = max(200, 100, 200, 200, 100) = 200ps
  • 5 条指令总时间 = (5 + 4) × 200 = 1800ps
  • 加速比 = 4000 / 1800 = 2.22x

性能对比面板

右侧面板始终显示两种模式的对比数据。试着拖动指令数滑块(3-8),观察加速比变化:

N单周期总时间流水线总时间加速比
32400ps1400ps1.71x
54000ps1800ps2.22x
86400ps2400ps2.67x
4.0x(理想)

为什么达不到 5x?

理想加速比 = 流水线级数 k = 5?不对!理想加速比 = 单周期时钟 / 流水线时钟 = 800 / 200 = 4.0x。之所以不是 5x,是因为各阶段延迟不均衡(ID 和 WB 只要 100ps,但时钟必须取最慢的 200ps)。如果五个阶段完全相等,理想加速比才等于 k=5。

核心公式

Tsingle=N×Tclk,single=N×i=1ktiTpipe=(N+k1)×Tclk,pipe=(N+k1)×max(ti)S=TsingleTpipe=N×ti(N+k1)×max(ti)

N

Sideal=timax(ti)

当各阶段延迟相等(ti=t)时:Sideal=k

考研高频考点速览

考点考频关键记忆
流水线时钟周期🔥🔥🔥= 最慢阶段的延迟(不是平均值)
加速比公式🔥🔥🔥S = N·ΣT / (N+k-1)·maxT
理想加速比🔥🔥🔥= ΣT / maxT(各阶段相等时 = k)
建立时间🔥🔥前 k-1 个周期流水线未满,是加速比 < 理想值的原因之一
各阶段不均衡🔥🔥快阶段也要等慢阶段的时钟周期,是另一个效率损失来源

推荐使用流程

第一轮:对比感受(3 分钟)

  1. 先看单周期动画 → 感受"空闲浪费"
  2. 再看流水线动画 → 感受"并行高效"
  3. 留意第 5 个周期"全速运转"的瞬间

第二轮:玩参数(5 分钟)

  1. 拖动指令数滑块 3→8,观察加速比变化趋势
  2. 记住:N 越大 → 加速比越接近理想值
  3. 在右侧面板看公式,手算验证一遍

第三轮:做题应用(按需)

遇到流水线加速比的计算题时:

  1. 确定 k(级数)和各阶段延迟
  2. 流水线时钟 = max(各阶段延迟)
  3. 代入公式算总时间和加速比
  4. 用模拟器验证

真题练习