Appearance
题目
某计算机的指令流水线由四个功能段组成,指令流经各功能段的时间(忽略各功能段之间的缓存时间)分别为 90 ns、80 ns、70 ns、和 60 ns,则该计算机的 CPU 时钟周期至少是()。
错因
B
把"次大段"当成基准——可能误以为最慢段不算(例如把它视作"非典型"或者"被流水线吞下了")。但流水线的本质是"所有段并行、共用一个时钟",只要有一段还没跑完,整条流水线就不能推进,所以基准必须是最慢段,不能跳过。
C
取了"中间段"作为周期,可能是按某种"折中"的直觉。但流水线时钟周期没有"折中"概念——70 ns 这个时钟周期下,第一段 90 ns 根本跑不完,整条流水线会出错。
D
按"最快段"作为时钟周期。这是把"流水线 CPI 接近 1"误读成了"按最快段定速度"。事实正好相反:最快段会被迫等待最慢段,整条流水线的吞吐率受制于最慢段(瓶颈),不是最快段。如果按 60 ns 设置时钟,前三段都来不及完成。
总解析
流水线时钟周期的核心规则:
意思是时钟周期必须不小于最慢段的时间——这一段是流水线的"瓶颈"。
直观理解:流水线的每个段在每个时钟周期完成各自的工作,下一个时钟到来时所有段同步推进。如果时钟周期 < 最慢段时间,最慢段完不成工作,下一拍传给后段的就是错误的中间结果。
本题代入:
| 段 | 时间 |
|---|---|
| 段 1 | 90 ns(最慢,瓶颈) |
| 段 2 | 80 ns |
| 段 3 | 70 ns |
| 段 4 | 60 ns |
**"至少"**指最小的合法时钟周期,所以取等号:。
最终答案是 A(90 ns)。
速记:流水线吞吐率 = ,只看最慢段。优化流水线的关键就是找瓶颈段并把它拆短——这就是"流水线段平衡"的核心思想。