搜题
问题   更新时间2023/4/3 12:59:00

六、假设有一条长流水线,仅仅对条件分支指令使用分支目标缓冲。其中分支预测错误的开销为4个时钟周期,分支目标缓冲不命中的开销为3个时钟周期。分支目标缓冲命中率为90%,预测正确率为90%,分支指令占所有指令的比例为15%,没有分支的基本CPI为1。
(1)求程序执行的CPI。
(2)相对于采用固定的2个时钟周期延迟的分支处理,哪种方法程序执行速度更快?

答:(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)可知分支目标缓冲方法执行速度快。
王老师:19139051760(拨打)