题目
6.程序 P 在机器 M 上的执行时间是 20 秒,编译优化后,P 执行的指令数减少到原来的 70%,而 CPI 增加到原来的 1.2 倍,则 P 在 M 上的执行时间是______。A. 8.4 秒B. 11.7 秒C. 14 秒D. 16.8 秒
6.程序 P 在机器 M 上的执行时间是 20 秒,编译优化后,P 执行的指令数减少到原来的 70%,而 CPI 增加到原来的 1.2 倍,则 P 在 M 上的执行时间是______。
A. 8.4 秒
B. 11.7 秒
C. 14 秒
D. 16.8 秒
题目解答
答案
D. 16.8 秒
解析
本题考查计算机程序执行时间的计算,核心在于理解指令数(Instruction Count, IC)、每条指令周期数(Cycles Per Instruction, CPI)与执行时间之间的关系。关键公式为:
$\text{执行时间} = \text{指令数} \times \text{CPI} \times \text{时钟周期时间}$
由于题目中机器未变,时钟周期时间(T)保持不变,因此只需关注指令数和CPI的变化对执行时间的影响。
破题关键:
- 指令数减少到原来的70%,即新指令数为原指令数的0.7倍。
- CPI增加到原来的1.2倍,即新CPI为原CPI的1.2倍。
- 执行时间与指令数、CPI均成正比,因此总变化倍数为两者的乘积。
原执行时间分析
原执行时间为20秒,根据公式:
$\text{原执行时间} = \text{原指令数} \times \text{原CPI} \times T = 20 \, \text{秒}$
优化后参数变化
- 指令数减少到70%:新指令数 = 原指令数 × 0.7
- CPI增加到1.2倍:新CPI = 原CPI × 1.2
新执行时间计算
将变化代入公式:
$\text{新执行时间} = (0.7 \times \text{原指令数}) \times (1.2 \times \text{原CPI}) \times T = (0.7 \times 1.2) \times (\text{原指令数} \times \text{原CPI} \times T)$
由于原指令数 × 原CPI × T = 20秒,因此:
$\text{新执行时间} = 0.84 \times 20 = 16.8 \, \text{秒}$