1. 分支预测算法
(1)1 位预测
1位预测概念:
如果该跳转指令上一次发生跳转,就预测这一次也会发生跳转,如果上一次没有跳转,就预测这一次也不会跳转。这种预测方式称为:1位预测(1-bit prediction)
1位预测不足:
1位预测算法简单,不过在性能上不足,原因在于它太容易翻转了,2-bit预测则更加稳定。
(2) 2位预测
2位预测概念:
每个跳转指令的预测状态信息从1bit增加到2bit计数器,如果这个跳转执行了,就加1,加到3就不加了,如果这个跳转不执行,就减1,减到0就不减了,当计数器值为0和1时,就预测这个分支不执行,当计数器值为2和3时,就预测这个分支执行。
优势:
2位计数器比1位计数器拥有更好的稳定性。
其他:
有2位预测又引出很多其他的分支预测算法,通常商用处理器大都采用多种策略的组合,来获得更好的预测结果。
2. 分支预测的实现
Intel的分支预测模块包含3个单元: