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