A-A+
假设有一条长流水线 仅对条件转移指令使用分支目标缓冲。假设分支预测错误的开销为4个时钟周期
问题详情
假设有一条长流水线,仅对条件转移指令使用分支目标缓冲。假设分支预测错误的开销为4个时钟周期,缓冲不命中(失效)的开销为3个时钟周期。假设:命中率为90%,预测精度为90%,分支频率为15%,没有分支的基本CPI为1。 ①求程序执行的CPI。 ②相对于采用固定的2个时钟周期延迟的分支处理,哪种方法程序执行速度更快?
请帮忙给出正确答案和分析,谢谢!
参考答案
正确答案:×
①程序执行的CPI=没有分支的基本CPI(1)+分支带来的额外开销。分支带来的额外开销是指在分支指令中,缓冲命中但预测错误带来的开销与缓冲没有命中带来的开销之和。分支带来的额外开销=15%×(90%命中×10%预测错误×4+10%没命中×3)=0.099。所以,程序执行的CPI=1+0.099=1.099。②采用固定的2个时钟周期延迟的分支处理CPI=1+15%×2=1.3。由①、②可知,分支目标缓冲方法执行速度快。