
答案
答:(1)程序执行的CPI = 没有分支的基本CPI(1) + 分支带来的额外开销
分支带来的额外开销是指在分支指令中,缓冲命中但预测错误带来的开销与缓冲没有命中带来的开销之和。(通常,在采用了分支目标缓冲时,如果发生了分支目标缓冲命中,那么会直接利用缓冲中的分支目标地址进行取指,即预测分支转移,所以如果分支预测正确,那就没有开销。如果分支实际未发生转移,那么就出现了预测错误,需要取消已取来的分支目标处指令,重新从分支失败处取指。根据题意,这种情况的开销为4个时钟周期。另一方面,如果分支目标缓冲不命中,那么根据题意,开销为3个时钟周期)
分支带来的额外开销= 15% * (90%命中×10%预测错误×4 + 10%没命中×3)= 0.099
所以,程序执行的CPI = 1 + 0.099 = 1.099
(2)采用固定的2 个时钟周期延迟的分支处理CPI = 1 + 15%×2 = 1.3
由(1)(2)可知分支目标缓冲方法执行速度快。