Skip to content

2018年 408 计算机组成原理 第 20 题

计算机组成原理2018年选择题2分

题目

若某计算机最复杂指令的执行需要完成 5 个子功能,分别由功能部件 A~E 实现,各功能部件所需时间分别为 80ps、50ps、50ps、70ps 和 50ps,采用流水线方式执行指令,流水段寄存器延时为 20ps,则 CPU 时钟周期至少为( )。

错因

A

把时钟周期算成"各段时间的平均值": ps。但流水线时钟周期由最慢段决定,不是平均——慢段没跑完就开下一个周期会让所有快段产出的数据出错。

B

只取了第二慢的段(70ps)。可能是被"取最大"和"哪一段"两个判断弄混,瞄准了 70 而不是 80。或者忘了功能部件 A 是 80ps(眼花跳过)。无论如何,最大段是 80ps。

C

取了最大段 80ps,但忘加流水段寄存器延时。流水线里每个段之间要插一个寄存器(锁存器)保存中间结果,每周期既要让段计算完成、又要让寄存器稳定写入——所以周期 = 段计算时间 + 寄存器延时。漏 20ps 就掉 C。

总解析

核心公式

为什么是这两项相加

  • 一个时钟周期内,一个段必须完成它的计算并把结果写入下一个段间寄存器
  • 段间寄存器需要一定建立时间(setup time)才能可靠存住
  • 所以"段时间 + 寄存器时间"才是该段一个周期的总开销
  • 整条流水线被最慢段拖累——任何更短的周期会让最慢段没跑完,产出数据无效

第一步:找最慢段

ABCDE
时间 (ps)8050507050

最慢段 = A 段 = 80 ps

第二步:加寄存器延时

最终答案是 D(100ps)

对比:单周期 vs 多周期 vs 流水线

实现方式一条指令时间时钟周期
单周期 各段时间 = 300 ps= 300 ps(一条指令一周期)
多周期 (各段时间 + 寄存器延时) 段时间 + 寄存器延时 = 100 ps
流水线仍 ≈ 5 × 100 ps = 500 ps(含填充) 段时间 + 寄存器延时 = 100 ps

流水线 vs 多周期 最大区别:流水线吞吐率为每周期 1 条(理想),多周期为每 5 周期 1 条。

易错点速查

  1. 周期取最慢段,不是平均、不是中位数
  2. 必须加寄存器延时(也叫"流水段寄存器"或"段间锁存器"),通常题面会明示
  3. 流水线段不平衡 → 慢段是瓶颈,把 A 优化成 50ps 才能让周期降到 70ps

最后更新:

🎬 可视化演示
加载中...

提示:可在可视化区直接操作播放、步进、修改参数