本文中的题目出自清华大学出版社计算机系统结构教程第 3 版习题 5-8 和 5-9 。这两道题是关于分支预测技术带来的延迟计算问题。

第一问
程序执行的CPI=没有分支的基本CPI+分支带来的额外开销
分支带来的额外开销是指在分支指令中,缓冲命中但预测错误带来的开销与缓冲没有命中带来的开销之和。
分支带来的额外开销=15%×(90%(命中)×10%(预测错误)×4+10%(没命中)×3)=0.099
所以
程序执行的CPI=1+0.099=1.099
第二问
采用固定的 2 个时钟周期延迟的分支处理
CPI=1+15%×2=1.3

设每条无条件转移指令的延迟为 x ,则有:
1+5%×x=1.1
解得 x=2 。
当分支目标缓冲( BTB )命中时,无条件转移指令的延迟为 0 。
所以
CPI=1+2×5%×(1−90%)=1.01