现代CPU如何实现高效的分支预测机制?

2026-05-19 17:190阅读0评论SEO问题
  • 内容介绍
  • 文章标签
  • 相关推荐

本文共计5649个文字,预计阅读时间需要23分钟。

现代CPU如何实现高效的分支预测机制?

朋友们可以关注我的公众号,获取最新动态:或关注我的知乎账号:https://www.zhihu.com/people/zhangyachen。探讨CPU分支预测的准确性,论文《Simultaneous Subordinate Microthreading》

朋友们可以关注下我的公众号,获得最及时的更新:

或者关注我的知乎账号 :www.zhihu.com/people/zhangyachen

人们一直追求CPU分支预测的准确率,论文Simultaneous Subordinate Microthreading (SSMT)中给了一组数据,如果分支预测的准确率是100%,大多数应用的IPC会提高2倍左右。

为了比较不同分支预测算法的准确率,有个专门的比赛:Championship Branch Prediction(CPB)。CPB-5的冠军是TAGE-SC-L,在TAGE-SC-L Branch Predictors Again中有详细描述:

但是分支预测准确率高意味着更复杂的算法,占用更多的硅片面积和更多的功耗,同时还会影响CPU的周期时间。更不幸的是,不同程序呈现不同的特性,很难找到一种放之四海而皆准的分支预测算法。一种算法可能对一类程序有很高的准确率,但是对另一类程序的效果却不尽然。

另外现代计算机都是Superscalar架构,取指阶段会同时取出多条指令(fetch group),这需要对取出的指令全部进行分支预测。而且这种情况下的misprediction penalty是M * N,预测失败的无用功更多。

阅读全文

本文共计5649个文字,预计阅读时间需要23分钟。

现代CPU如何实现高效的分支预测机制?

朋友们可以关注我的公众号,获取最新动态:或关注我的知乎账号:https://www.zhihu.com/people/zhangyachen。探讨CPU分支预测的准确性,论文《Simultaneous Subordinate Microthreading》

朋友们可以关注下我的公众号,获得最及时的更新:

或者关注我的知乎账号 :www.zhihu.com/people/zhangyachen

人们一直追求CPU分支预测的准确率,论文Simultaneous Subordinate Microthreading (SSMT)中给了一组数据,如果分支预测的准确率是100%,大多数应用的IPC会提高2倍左右。

为了比较不同分支预测算法的准确率,有个专门的比赛:Championship Branch Prediction(CPB)。CPB-5的冠军是TAGE-SC-L,在TAGE-SC-L Branch Predictors Again中有详细描述:

但是分支预测准确率高意味着更复杂的算法,占用更多的硅片面积和更多的功耗,同时还会影响CPU的周期时间。更不幸的是,不同程序呈现不同的特性,很难找到一种放之四海而皆准的分支预测算法。一种算法可能对一类程序有很高的准确率,但是对另一类程序的效果却不尽然。

另外现代计算机都是Superscalar架构,取指阶段会同时取出多条指令(fetch group),这需要对取出的指令全部进行分支预测。而且这种情况下的misprediction penalty是M * N,预测失败的无用功更多。

阅读全文