分支预测

时间:2010-03-28 23:52:16

标签: assembly cpu-architecture

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

T T T N T N T T T N T N T T T N N N

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

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

3 个答案:

答案 0 :(得分:9)

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

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

答案 1 :(得分:2)

答案 2 :(得分:2)

来自维基百科:Branch predictor

  

两级自适应预测器   记得最后n的历史   分支的出现并使用一个   每个人的饱和计数器   可能的2n历史模式。

BHR :分行历史寄存器
BHT :分行历史表

上面链接的文章部分简要解释了这两个术语,并没有参考它们的首字母缩写词。

相关问题