Skip to content

2025年 408 计算机组成原理 第 18 题

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

题目

下列关于 CPI 和 CPU 时钟周期的叙述中,错误的是( )。

错因

A

不同指令类型的 CPI 完全可以不同。多周期 CPU、流水线 CPU 都是这样:算术指令可能 1 周期、Load 因要访存可能 3–5 周期、乘除法又更长。即使是单周期 CPU,"单条指令固定占 1 周期"也只是名义值,程序的平均 CPI 仍可能因指令组合不同而不同。A 描述正确——题目找"错误的",不选 A。

C

单周期 CPU 每条指令在 1 个时钟周期内执行完,所以这个周期必须长到能装下最复杂指令的关键路径(典型最坏情况是 Load:取指 → 译码 → 算地址 → 访存 → 写回)。其他短指令也用同样的周期,因此单周期 CPU 时钟频率被最慢的指令拉低。C 描述正确,不选 C。

D

流水线把一条指令切成若干段(IF / ID / EX / MEM / WB 等),每段在一个时钟周期内完成。时钟周期必须 ≥ 最长那段的延迟,否则该段无法在一个周期内做完,整条流水线就崩。D 描述正确,不选 D。

总解析

题目问"错误的"叙述,B 是错的

B 错在哪里

程序的实际 CPI 不是只看指令本身的"理想 CPI",还要叠加访存延迟带来的额外周期——其中最大头就是 Cache 缺失。一次缺失要从下一级缓存或主存取数据,可能花几十甚至上百个时钟周期,期间该条 Load/Store 指令在流水线里阻塞,等价于增加了它的 CPI。

通用经验公式(带访存惩罚的有效 CPI):

举例:理想 CPI = 1.0,每条指令平均 1.3 次访存,缺失率 5%,缺失代价 100 周期:

缺失率从 5% 降到 2%,CPI 从 7.5 降到 3.6——Cache 缺失率直接、显著地影响程序 CPI。所以 B 把它说成"无关"是错的。

逐项核验

选项内容对/错理由
A不同类型指令的 CPI 可能不一样多周期/流水线 CPU 普遍现象
B程序 CPI 与 Cache 缺失率无关缺失代价直接进 CPI 公式
C单周期 CPU 时钟周期 = 最耗时指令时间一周期装下最长关键路径
D流水线 CPU 时钟周期 = 最长流水段时间各段必须在 1 周期内完成

最终答案是 B

CPI 与时钟周期速记

概念关键
指令 CPI取决于指令类型与微架构
程序 CPI加权平均 + 访存惩罚 + 流水线冒险阻塞
单周期时钟周期= 最耗时指令的关键路径延迟
多周期时钟周期= 单步关键路径(远小于单周期)
流水线时钟周期= 最长流水段延迟 + 锁存器开销

把"CPI 与 Cache 无关"当对的人,多半把 CPI 当成"由 ISA 死定的常数"——其实程序的 CPI 是程序运行时测出来的,跟微架构、访存、缺失率全部相关。

最后更新:

⚠️ 这道题暂未配可视化,欢迎在 CodeBrick 反馈区告诉我们你想看哪道题