gpt4 book ai didi

cpu - 正确的分支预测是免费的吗?

转载 作者:行者123 更新时间:2023-12-05 00:59:18 25 4
gpt4 key购买 nike

假设您编写了一些具有 if 语句和条件的代码,其中 if 语句在程序的整个运行过程中始终为真,但是在编译时无法知道条件始终为真(也许它的在命令行中指定)

在这种情况下,您希望 cpu 能够预测这一点并始终选择正确的路径。

这是否意味着通过分支预测,代码就像根本没有 if 语句一样快?

或者,还有实际成本吗?

我可以想象一些可能不会消失的成本......

  • 第一次调用,可能会出错,或者分支预测器始终正确需要多长时间。
  • 也许如果程序很大,随着指令缓存被清除,分支的知识就会丢失?
  • 也许你有条件代码(也可能是 else)的事实意味着指令缓存不能容纳那么多,所以通常会减慢你的程序
  • 我敢打赌,它采取正确路径的验证不可能是免费的,并且它会消耗一些资源

  • 这些是真的吗?还有其他人吗?

    最佳答案

    某些架构可以使正确预测的分支或多或少自由。这称为分支折叠。基本上发生的情况是,当前端的分支预测器看到它之前遇到过并且其目标已知的分支时,它可以将指令发送到分支目标,而不是将分支发送到管道中。前端还是要看到分支,但是后端从来没有,所以如果后端稍微落后一点,气泡就平衡了,就好像分支从来没有存在过一样。

    不过,这还不是全部。一个分支很可能不会在前几次被错误预测,如果它是一个条件分支,不知何故仍然必须解决该条件。

    关于cpu - 正确的分支预测是免费的吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30904380/

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