gpt4 book ai didi

qemu - QEMU 是如何知道已执行的 TB 的分支方向的?

转载 作者:行者123 更新时间:2023-12-05 07:57:34 29 4
gpt4 key购买 nike

我正在尝试了解 QEMU 的区 block 链。我对每个执行的 TB 的分支方向有疑问。假设 TB#1 现在已经执行,并找到 next_tb (TB#2)。然后我们知道方向是 TB#1--->TB#2 并将链存储在代码缓存中以加速下次执行。所以,下一次 qemu 找到下一个 TB(即 TB#1),然后 TB#1--->TB#2 将在代码缓存中执行。

但我认为 TB 有两个分支方向。(分支采用/未采用)我的问题是 qemu 如何确保下次方向是 TB#1--->TB#2?

谢谢大家。

最佳答案

TB 有两个出站链接(尽管其中一个可能未用于无条件分支)。当我们将 TB 链接在一起时,我们只链接我们采取的链接。所以如果我们做一个“branch taken”退出从 TB1 发现它转到 TB2,然后我们链接 TB1 的分支采取的代码路径直接到 TB2。但这不影响分支未采用的代码路径。稍后如果我们做一个分支未采用从 TB1 退出,我们可以将它链接到不同的 TB。

(实际上,出站链接只是编号为 0 和 1,并且没有要求将它们用于拍摄和未拍摄以任何特定顺序。)

关于qemu - QEMU 是如何知道已执行的 TB 的分支方向的?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26748224/

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