Caching 分支预测器如何知道它是否不正确?
这是我第二次问这个问题;第一次有人回复,但我花了太长时间回复,因此没有得到充分的理解 我想做的是更多地了解现代建筑的各个部分;我假设所有指令都是由分支预测器预测的,以便指令提取单元按照预测进行提取 另一位绅士试图帮助提及“分支指令”也与预测指令一起发送。这个“分支指令”测试分支预测器的预测是否正确。我还假设这些分支指令进入分支执行单元,不需要从内存加载任何内容 我不明白的是:Caching 分支预测器如何知道它是否不正确?,caching,assembly,architecture,cpu,Caching,Assembly,Architecture,Cpu,这是我第二次问这个问题;第一次有人回复,但我花了太长时间回复,因此没有得到充分的理解 我想做的是更多地了解现代建筑的各个部分;我假设所有指令都是由分支预测器预测的,以便指令提取单元按照预测进行提取 另一位绅士试图帮助提及“分支指令”也与预测指令一起发送。这个“分支指令”测试分支预测器的预测是否正确。我还假设这些分支指令进入分支执行单元,不需要从内存加载任何内容 我不明白的是: 分支执行单元如何知道此指令的猜测是否正确 一旦知道它是正确的,会发生什么 分支指令是否在每次预测时发出(基本上是指……
- 分支执行单元如何知道此指令的猜测是否正确
- 一旦知道它是正确的,会发生什么
- 分支指令是否在每次预测时发出(基本上是指……每次进行预测时?)
- 分支预测必须在预测指令之前还是之后
- 分支指令是否需要从内存加载任何数据?如果是,是什么
谢谢 我认为要回答您的问题,您首先需要了解分支预测是如何工作的。为了解释这一点,首先必须知道为什么它会做出这些预测。这需要了解现代处理器中的流水线是如何工作的。对我来说,最好的解释方法是从非流水线CPU如何处理指令开始 (如果我回顾一下你已经知道的事情,请耐心听我说。你对分支预测的困惑是从哪里来的还不完全清楚。) 旧的CPU,连同许多简单的现代CPU,以一种相当直接和明显的方式处理指令。它们将执行指令所需的操作分解为一系列步骤。每一条指令都是通过这些步骤运行的,一旦完成了所有这些步骤,它就会进入下一个步骤。例如,假设一个简单的非流水线CPU可能遵循以下一系列步骤: