Appearance
题目
某计算机主频为 1GHz,程序 P 运行过程中,共执行了 10000 条指令,其中,80% 的指令执行平均需 1 个时钟周期,20% 的指令执行平均需 10 个时钟周期。程序 P 的平均 CPI 和 CPU 执行时间分别是( )。
错因
B
把"加权平均"算成了"加权求和"。 已经是平均 CPI,不要再乘 10。把 2.8 错写成 28 的常见诱因是把 20% 当作了"绝对条数 = 2000 条"再去算 之类的混合错——任何把 CPI 推到两位数的算法都该警惕。
C
CPI = 2.8 算对了,时间单位选错(μs vs ms 差 1000)。 s = 28 μs。把 s 误写成 ms 多差了 3 个量级。考试时建议把秒先写成科学计数法再换算:s ↔ μs 的关系是 s,所以 量级,结果 28 μs。
D
CPI 错(同 B)+ 时间单位错(同 C),两个错叠加。CPI 算成 28 后再算时间会得到 s = 280 μs,并不会等于 28 ms——选项里给"28 ms"是为了诱导粗心算错的人凑数。
总解析
第一步:算加权平均 CPI
第二步:算 CPU 执行时间
第三步:单位换算
s = μs = 28 μs。
| 量 | 值 |
|---|---|
| 平均 CPI | 2.8 |
| CPU 时间 | s = 28 μs |
最终答案是 A(2.8,28μs)。
两个公式速记:
- 加权平均 CPI = (指令类比例 × 该类 CPI)
- CPU 时间 =
易错点:
- CPI 加权平均时不要再乘指令总数
- 1 GHz = Hz;时间单位的科学计数法量级 → μs / ms / s 一一对应,背一遍永久解决