分支预测

ahe*_*ang 2 assembly cpu-architecture branch-prediction

考虑单个静态分支的以下实际结果序列.T表示分支被采用.N表示不采用分支.对于这个问题,假设这是程序中唯一的分支.

TTTNTNTTTNTNTTTNTN

假设使用一位分支历史的两级分支预测器 - 即一位BHR.由于程序中只有一个分支,因此BHR如何与分支PC连接以索引BHT并不重要.假设BHT使用一位计数器,并且再次将所有条目初始化为N.此序列中哪些分支将被错误预测?使用下表. alt text http://img641.imageshack.us/img641/7117/branch.jpg

现在我不是要问这个问题的答案,而不是这个问题的指南和指针.两级分支预测器的含义是什么?它是如何工作的?BHR和BHT代表什么?

小智 10

http://www.agner.org/optimize/#manuals上阅读Agner Fog关于现代CPU微体系结构的文章后,我才真正得到了分支预测,具体来说,第三个:http://www.agner.org/optimize/ microarchitecture.pdf

如果你想要擅长低级编程,你应该全部阅读.如果您只想知道分支预测器的工作原理,请阅读微体系结构手册中有关分支预测的章节.它使用来自过去处理器的真实分支预测器来解释事物是如何工作的,从概念上简单的预测器开始,例如P1中的预测器,并逐渐添加更多功能,直到你到达当今处理器中的怪物.