CPU有一个5级流水线,运行频率为1ghz。指令取出发生在管道的第一阶段。条件分支指令的第三阶段计算目标地址并评估条件管道。处理器在条件语句之后停止获取新的指令分支,直到分支结果已知为止。一个程序执行10^9条指令其中20%是条件分支。如果每条指令需要一个周期平均完成,程序的总执行时间为:
(A) 1.0秒
(B) 1.2秒
(C) 1.4秒
(D) 1.6秒
Total_execution_time = (1+stall_cycle*stall_frequency)*exec_time_each_inst
exec_time_each_inst = 1s [i.e @1ghz need to execute 10^9 inst => 1 inst = 1 sec]
stall_frequency = 20% = .20
stall_cycle = 2
[我。在管道的第三阶段,我们知道分支结果,因此将有2个失速周期]
因此Total_execution_time =(1+2*.20)*1 = 1.4秒
我不知道如何更好地解释,但希望它能有所帮助:)