题目
为缩短某程序执行时间,旧系统 = IC times CPI times T_({clk)}。若主频提高T_({clk)}变为原来的2/3,CPI增加20%,指令总条数IC不变,则变更后的执行时间是原来的( )。
为缩短某程序执行时间,旧系统 = $IC \times CPI \times T_{\text{clk}}$。若主频提高$T_{\text{clk}}$变为原来的$2/3$,$CPI$增加$20\%$,指令总条数$IC$不变,则变更后的执行时间是原来的( )。
题目解答
答案
根据计算机体系结构[1]中程序执行时间的计算公式:
$执行时间 = IC \times CPI \times T_{clk}$
其中:
- $IC$ 为指令总条数(Instruction Count)
- $CPI$ 为每条指令的平均时钟周期[2]数(Cycles Per Instruction)
- $T_{clk}$ 为时钟周期(Clock Cycle Time)
根据题目给出的条件,我们可以设定旧系统的参数为:
- 旧指令总条数:$IC$
- 旧 CPI:$CPI$
- 旧时钟周期:$T_{clk}$
旧系统的执行时间为:
$T_{旧} = IC \times CPI \times T_{clk}$
接下来分析变更后的新系统参数:
- 主频提高,$T_{clk}$ 变为原来的 $2/3$:
新的时钟周期 $T_{clk}' = \frac{2}{3} T_{clk}$ - CPI 增加 20%:
新的 CPI $CPI' = CPI \times (1 + 20\%) = 1.2 \times CPI$ - 指令总条数 IC 不变:
新的指令总条数 $IC' = IC$
现在计算变更后的新执行时间 $T_{新}$:
$T_{新} = IC' \times CPI' \times T_{clk}'$
将上述新参数代入公式:
$T_{新} = IC \times (1.2 \times CPI) \times (\frac{2}{3} T_{clk})$
提取常数项进行计算:
$T_{新} = (1.2 \times \frac{2}{3}) \times (IC \times CPI \times T_{clk})$
$T_{新} = (1.2 \times 0.666...) \times T_{旧}$
$T_{新} = 0.8 \times T_{旧}$
因此,变更后的执行时间是原来的 $0.8$ 倍(或 $80\%$)。
解析
本题考查计算机体系结构中程序执行时间的计算,解题思路是先明确程序执行时间的计算公式,再根据题目所给条件分别找出变更前后各参数的值,最后将变更后的参数代入公式计算出新的执行时间,并与原来的执行时间进行比较。
- 明确程序执行时间的计算公式:
- 程序执行时间的计算公式为 $执行时间 = IC \times CPI \times T_{clk}$,其中 $IC$ 为指令总条数,$CPI$ 为每条指令的平均时钟周期数,$T_{clk}$ 为时钟周期。
- 计算旧系统的执行时间:
- 设旧系统的指令总条数为 $IC$,$CPI$ 为 $CPI$,时钟周期为 $T_{clk}$,则旧系统的执行时间 $T_{旧}=IC \times CPI \times T_{clk}$。
- 确定变更后的新系统参数:
- 因为主频提高,$T_{clk}$ 变为原来的 $\frac{2}{3}$,所以新的时钟周期 $T_{clk}'=\frac{2}{3}T_{clk}$。
- 由于 $CPI$ 增加 $20\%$,所以新的 $CPI$ $CPI' = CPI\times(1 + 20\%)=1.2\times CPI$。
- 又因为指令总条数 $IC$ 不变,所以新的指令总条数 $IC' = IC$。
- 计算变更后的新执行时间:
- 将新参数代入执行时间公式,可得 $T_{新}=IC' \times CPI' \times T_{clk}'$。
- 把 $IC' = IC$,$CPI' = 1.2\times CPI$,$T_{clk}'=\frac{2}{3}T_{clk}$ 代入上式,得到 $T_{新}=IC\times(1.2\times CPI)\times(\frac{2}{3}T_{clk})$。
- 提取常数项进行计算,$T_{新}=(1.2\times\frac{2}{3})\times(IC \times CPI \times T_{clk})$。
- 因为 $1.2\times\frac{2}{3}=0.8$,且 $T_{旧}=IC \times CPI \times T_{clk}$,所以 $T_{新}=0.8\times T_{旧}$。