【发布时间】:2012-06-25 19:09:24
【问题描述】:
所以我了解流水线处理器的分支预测中使用的基本技术 - 诸如 2 位饱和计数器、两级自适应预测器等。
这是我的问题:
1) 分支目标预测:为什么这很重要,这里使用了哪些机制?当我想到一个分支时,我会想到“bne r2, r3, LABEL”,它表示如果 r2 != r3 然后分支到 LABEL,这意味着 PC(程序计数器)= PC + LABEL。在这里预测目标有什么神秘之处?根据 LABEL 的编译值,您知道它将是什么。 我可能以某种方式错过了这一点。
2) 为什么程序计数器值本身(例如 0x4001000C)或至少它的最后几位被用作分支预测方案的一部分?我看到了一个方案,其中 PC 的最后 4 位连接到(4 位)分支历史寄存器,并且该 8 位值用于访问模式历史表。 我认为PC非常随意!
感谢您帮助理解这些问题
【问题讨论】:
标签: x86 hardware computer-architecture branch-prediction