Appearance
流水线 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 | 单周期总时间 | 流水线总时间 | 加速比 |
|---|---|---|---|
| 3 | 2400ps | 1400ps | 1.71x |
| 5 | 4000ps | 1800ps | 2.22x |
| 8 | 6400ps | 2400ps | 2.67x |
| ∞ | — | — | 4.0x(理想) |
为什么达不到 5x?
理想加速比 = 流水线级数 k = 5?不对!理想加速比 = 单周期时钟 / 流水线时钟 = 800 / 200 = 4.0x。之所以不是 5x,是因为各阶段延迟不均衡(ID 和 WB 只要 100ps,但时钟必须取最慢的 200ps)。如果五个阶段完全相等,理想加速比才等于 k=5。
核心公式
当
当各阶段延迟相等(
考研高频考点速览
| 考点 | 考频 | 关键记忆 |
|---|---|---|
| 流水线时钟周期 | 🔥🔥🔥 | = 最慢阶段的延迟(不是平均值) |
| 加速比公式 | 🔥🔥🔥 | S = N·ΣT / (N+k-1)·maxT |
| 理想加速比 | 🔥🔥🔥 | = ΣT / maxT(各阶段相等时 = k) |
| 建立时间 | 🔥🔥 | 前 k-1 个周期流水线未满,是加速比 < 理想值的原因之一 |
| 各阶段不均衡 | 🔥🔥 | 快阶段也要等慢阶段的时钟周期,是另一个效率损失来源 |
推荐使用流程
第一轮:对比感受(3 分钟)
- 先看单周期动画 → 感受"空闲浪费"
- 再看流水线动画 → 感受"并行高效"
- 留意第 5 个周期"全速运转"的瞬间
第二轮:玩参数(5 分钟)
- 拖动指令数滑块 3→8,观察加速比变化趋势
- 记住:N 越大 → 加速比越接近理想值
- 在右侧面板看公式,手算验证一遍
第三轮:做题应用(按需)
遇到流水线加速比的计算题时:
- 确定 k(级数)和各阶段延迟
- 流水线时钟 = max(各阶段延迟)
- 代入公式算总时间和加速比
- 用模拟器验证