Appearance
题目
某 CPU 主频为 1.03GHz,采用 4 级指令流水线,每个段的执行需要 1 个时钟周期。假定 CPU 执行了 100 条指令,在其执行过程中没有发生任何流水线阻塞,此时流水线的吞吐率为( )。
错因
A
把"吞吐率"误算成了"主频 ÷ 段数"——大概想着 4 级流水每条指令"摊到"4 个周期里。这个公式恰恰相反:流水线的好处是几条指令在不同段并行,理想稳态下每周期出 1 条结果,并不是每周期出 1/4 条。 凑出 0.25。这种思路把流水线退化成了"非流水线"。
B
总周期数算成了 (多算了 1 个段),导致 ;也可能只算了 但忘记乘主频,把"效率"当成了"吞吐率"。正确总周期是 ,第一条指令要走完 4 段(占 4 周期),后续每条只多 1 周期。
D
直接把主频当吞吐率——忽略了启动延迟(k−1 个周期)。对 100 条指令做"串行的 4 段流水",第一条出结果在第 4 周期,第 100 条出结果在第 103 周期。短指令序列下,启动延迟会"稀释"吞吐率;只有 时吞吐率才趋近于主频。
总解析
流水线吞吐率定义:
第一步:算总周期数
无阻塞时,n 条指令通过 k 段流水的总周期数:
直观理解:第 1 条要走完 4 段(占满前 4 个周期),从第 5 周期起每周期完成 1 条,第 100 条在第 周期完成。
第二步:算总时间
每周期 = 秒。
数字凑得这么巧不是巧合——题目把主频设成 1.03 GHz、指令数 100,就是为了让 正好等于 100。
第三步:算吞吐率
最终答案是 C()。
流水线性能三公式速记:
| 指标 | 公式 | 极限(n → ∞) |
|---|---|---|
| 总周期 | ||
| 吞吐率 TP | (主频) | |
| 加速比 S | (段数) | |
| 效率 E |
关键判断:吞吐率永远 ≤ 主频;当且仅当 或题目说"稳态"时才等于主频。有限指令序列下的吞吐率总有 的折扣。