Appearance
题目
假定计算机 M1 和 M2 具有相同的指令集体系结构(ISA),主频分别为 1.5GHz 和 1.2GHz。在 M1 和 M2 上运行某基准程序 P,平均 CPI 分别为 2 和 1,则程序 P 在 M1 和 M2 上运行时间的比值是( )。
错因
A
把比值算成倒数。,再算反一遍取反。如果连续两次方向反转,会得出 这种数量级看似合理但完全错的答案。根治:每次都把"谁比谁"按题面顺序写死再代入。
B
题目问的是 M1 比 M2("在 M1 和 M2 上运行时间的比值"),但选 B 的人算了 M2 / M1 。比值方向反了。
D
只用了 CPI 比,没正确处理主频比。可能算式:。错在主频应当取倒数——因为时间 = 周期 × 周期数 = ,主频越大时间越短。把"主频比"直接乘进去就是把"主频高的反而时间长",方向错了。
总解析
核心公式:
其中 是指令条数(同一程序在两机上相同), 是平均时钟周期数, 是主频。
两机时间分别:
求比值(题面顺序:M1 比 M2):
最终答案是 C(1.6)。
关键步骤拆解:
| 步骤 | 表达式 | 结果 |
|---|---|---|
| M1 的"等效"周期数 | 周期,每周期 ns | ns |
| M2 的"等效"周期数 | 周期,每周期 ns | ns |
| 比值 |
易错点速查:
- 比值方向跟着题面走:"M1 和 M2 的比值" = ,写错方向就掉 B
- 主频出现在分母:"越快越省时间"——不要把主频比直接乘进去
- 指令数 在分子分母会消掉,所以计算时不需要知道 N