| 项目 | 公式 |
|---|---|
| 吞吐率 | $TP = \dfrac{n}{(n+k-1)\Delta t}$ |
| 加速比 | $S = \dfrac{k \times n}{n+k-1}$ |
| 效率 | $E = \dfrac{S}{k} = \dfrac{n}{n+k-1}$ |
当 $n \to \infty$ 时,$S \to k$(趋近级数)。
当 $n \to \infty$ 时,$TP \to \dfrac{1}{\Delta t}$。
题目:4 级流水线,每段 2ns,执行 100 条指令。
解答:
| 段数 $k$ | 优点 | 缺点 |
|---|---|---|
| 较少 | 冒险少,控制简单 | 吞吐率低 |
| 较多 | 吞吐率高 | 冒险多,锁存器开销大 |
现代 CPU 流水线深度 10~20+ 级。级数越深,单拍时间越短、频率越高,但冒险与冲刷代价也越大。
| 流水线深度 | 频率提升 | 冒险增加 | 实际收益 |
|---|---|---|---|
| 浅(5级) | 低 | 少 | 稳定 |
| 深(15级) | 高 | 多 | 受限于冒险 |
| 超深(20+级) | 很高 | 很多 | 依赖预测准确率 |
流水线级数增加导致:
流水线加速受制于程序中不可并行部分:
$$S = \frac{1}{(1-f) + \frac{f}{k}}$$其中 $f$ 为可流水化的比例,$k$ 为级数。即使 $k\to\infty$,加速比也不会超过 $\dfrac{1}{1-f}$。
设 5 级流水线、$\Delta t=2$ns。点击不同指令数,观察效率 $E=\dfrac{n}{n+4}$ 逼近 1 的过程,以及对应的 $T,\ S,\ TP$。
提示:本文承接「流水线冒险详解」,并与「流水线性能计算」互补(一重推导、一重速算套路)。