gpt4 book ai didi

x86 - 分支预测 - 关于目标预测和使用 PC 的问题

转载 作者:行者123 更新时间:2023-12-04 20:40:50 26 4
gpt4 key购买 nike

所以我理解了用于流水线处理器的分支预测的基本技术——比如 2 位饱和计数器、两级自适应预测器等。

这是我的问题:

1) 分支目标预测:为什么这很重要,这里使用了哪些机制?当我想到一个分支时,我想到“bne r2, r3, LABEL”,它表示如果 r2 != r3 然后分支到 LABEL,这意味着 PC(程序计数器)= PC + LABEL。在这里预判目标有什么玄妙?您知道它将基于 LABEL 的编译值。我可能以某种方式错过了这里的重点。

2) 为什么程序计数器值本身(例如 0x4001000C)或至少它的最后几位用作分支预测方案的一部分?我看到一个方案,其中 PC 的最后 4 位连接到(4 位)分支历史记录寄存器,并且该 8 位值用于访问模式历史表。我认为 PC 非常随意!

感谢您帮助理解这些问题

最佳答案

What's so mysterious about predicting the target here? You know what it's going to be based on the compiled value of LABEL.

由于 CPU 流水线深度和缓存延迟,从获取指令、完全解码以识别分支目标到能够获取该指令之间需要很多周期。因此,您预测目标是为了先发制人地获取下一条指令。

Why is the program counter value itself (e.g. 0x4001000C), or at least its last few bits, used as part of the branch prediction scheme?

因为PC唯一标识了一条特定的分支指令!您还打算如何索引分支预测表?

关于x86 - 分支预测 - 关于目标预测和使用 PC 的问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11173913/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com