2

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

TTTTNTTTTTNTTTNTN

假设使用一位分支历史的两级分支预测器,即一位 BHR。由于程序中只有一个分支,因此如何将 BHR 与分支 PC 连接以索引 BHT 并不重要。假设 BHT 使用一位计数器,并且再次将所有条目初始化为 N。此序列中的哪些分支会被错误预测?使用下表。 替代文字

现在我不是在问这个问题的答案,而是在这个问题上提供指南和指示。两级分支预测器是什么意思,它是如何工作的?BHR 和 BHT 代表什么?

4

3 回答 3

11

在http://www.agner.org/optimize/#manuals阅读 Agner Fog 关于现代 CPU 微架构的文章后,我才真正得到了分支预测,特别是第三个:http ://www.agner.org/optimize/微架构.pdf

如果您想擅长低级编程,您可能应该阅读所有内容。如果您只想知道分支预测器是如何工作的,只需阅读微架构手册中关于分支预测的章节即可。它使用来自过去处理器的真实分支预测器来解释事情是如何工作的,从概念上简单的预测器(例如 P1 中的预测器)开始,然后逐渐添加更多功能,直到您了解当今处理器中的怪物。

于 2010-03-29T00:20:33.487 回答
2

让我为你维基百科。

于 2010-03-28T23:59:36.003 回答
2

来自维基百科:分支预测器

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

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

在上面链接的文章部分中,这两个术语都进行了简要说明,但未提及其首字母缩略词。

于 2010-03-28T23:59:48.630 回答