Appearance
题目
能缩短程序执行时间的措施是( )。
I. 提高 CPU 时钟频率
II. 优化数据通路结构
III. 对程序进行编译优化
错因
A
把"编译优化"误当成纯软件层面的事,认为它和"硬件性能"无关,于是排除 III。但 CPU 时间公式里的"指令条数"正是编译器生成代码的产物——同样的高级语言源码,编译器选择更精简的指令序列、减少冗余访存、做循环展开/常量折叠,指令数会显著下降,CPU 时间也跟着下降。
B
把"优化数据通路"误当成"换更好的电路图"那种纯硬件改造,认为已经被"提高主频"涵盖了。但优化数据通路(如把单周期改多周期、加并行执行单元、加旁路转发)直接降低 CPI——同一条指令需要的时钟周期数减少,即使主频不变,执行时间也变短。这与"提高主频"是两个独立的改进维度。
C
漏掉了"提高主频"。可能受到"提高主频会增加功耗/发热"等工程权衡的干扰,但题目只问"能不能缩短执行时间"——主频升高,每个时钟周期变短,相同 CPI 下指令执行时间一定下降。功耗只是副作用,不影响"是否缩短时间"这个事实。
总解析
核心公式(CPU 时间的三因子分解):
只要让分子变小、或让分母变大,执行时间就缩短。逐项对照:
| 措施 | 影响公式中哪一项 | 效果 |
|---|---|---|
| I. 提高 CPU 时钟频率 | 分母(主频)↑ | ↓ |
| II. 优化数据通路结构 | CPI ↓(每条指令所需周期减少) | ↓ |
| III. 对程序进行编译优化 | 指令条数 ↓(生成更精简的指令序列) | ↓ |
三个措施分别对应公式三个变量的改进——一个不漏,全都能缩短执行时间。
最终答案是 D(I、II 和 III)。
记忆要点:评估"某措施能否提速"时,把它落到 CPU 时间公式的哪一项上去——主频、CPI、指令数——对应得上就是有效,对不上就要警惕(如"提高 Cache 命中率"看似无关,实际通过缩短平均访存时间间接降低 CPI)。