| 项目 | 值 |
|---|---|
| 吞吐率 TP | n 条指令 / 流水线总时间 |
| 最大吞吐率 | $1/\Delta t$($\Delta t$ 为最长段时间) |
| 加速比 S | 非流水线时间 / 流水线时间 |
| 效率 E | 时空图中有效面积 / 总面积 |
| k 段 n 条指令时间 | $k\cdot\Delta t + (n-1)\cdot\Delta t = (k+n-1)\cdot\Delta t$ |
设流水线有 k 个阶段,每段耗时 $\Delta t$,执行 n 条指令。
最大吞吐率($n\to\infty$):$TP_{max} = \dfrac{1}{\Delta t}$。
最大加速比($n\to\infty$):$S_{max} = k$。
设各段时间分别为 $t_1, t_2, \ldots, t_k$,取最长段 $\Delta t = \max(t_i)$:
$$T = k \cdot \Delta t + (n-1) \cdot \Delta t = (k+n-1) \cdot \Delta t$$| 公式 | 说明 |
|---|---|
| $T = (k+n-1)\cdot\Delta t$ | k 段流水线 n 条指令时间 |
| $TP = \dfrac{n}{(k+n-1)\Delta t}$ | 吞吐率 |
| $TP_{max} = 1/\Delta t$ | 最大吞吐率 |
| $S = \dfrac{nk}{k+n-1}$ | 加速比 |
| $S_{max} = k$ | 最大加速比(段数) |
| $E = \dfrac{n}{k+n-1}$ | 效率 |
| $E_{max} = 1\ (n\to\infty)$ | 最大效率 |
| 考法 | 解题套路 |
|---|---|
| 求流水线执行时间 | $T = (k+n-1)\cdot\Delta t$ |
| 求吞吐率 | $TP = n/T$ |
| 求加速比 | $S = T_{非流水}/T_{流水}$ |
| 各段时间不等 | $\Delta t$ 取最长段的时间 |
| 流水线冒险影响 | 冒险 → 停顿 → 实际时间增加 |
| 装入 / 排空时间 | 装入 $= k\cdot\Delta t$,排空 $= (k-1)\cdot\Delta t$ |
4 段流水线(IF/ID/EX/WB),每段 2ns,执行 100 条指令:
彩色格为有效占用(每条指令走完 k 段),空白格为空闲。效率 = 有效格 / 总格 = $kn / [k(k+n-1)] = n/(k+n-1)$。点击切换不同 k、n。
提示:本文是「流水线性能分析」的速算版,二者公式一致;冒险对性能的影响见「流水线冒险详解」。