一个错误的分支预测,会导致20~40个时钟周期的浪费。

最精密的分支预测硬件也只能有大约50%的正确率。分支行为很容易预测时,每次调用函数需要大约13个时钟周期, 而分支行为是随机模式时,每次调用需要大约35个时钟周期。因此可以推断出分支预测的处罚大约是44个时钟周期。

预测错误处罚的计算

假设预测错误的概率是p,如果没有预测错误,执行代码的时间是TOK,而预测错误的处罚是TMP。 那么,作为p的一个函数,执行代码的平均时间是Tavg(p)=(1-p)TOK+p(TOK+TMP)。 如果已知TOK和Tran(当p=0.5时的平均时间),代入等式,我们有 Tran=Tavg(0.5)=TOK+0.5TMP, 所以有TMP=2(Tran-TOK)。因此,已知TOK=13和Tran=35,我们有 TMP=44。