私の質問はMysticalの答えから出てきます。私が理解したように、あなたは分岐命令を持っています、それは別の命令に行くことができます、例えばのように、0x123344
またはそれは実行を続けることができます。
分岐予測器が過去のパターンからそれらのいずれかから推測した場合、それが間違いを犯したことをどのように認識し、それを元に戻しますか?
私の質問はMysticalの答えから出てきます。私が理解したように、あなたは分岐命令を持っています、それは別の命令に行くことができます、例えばのように、0x123344
またはそれは実行を続けることができます。
分岐予測器が過去のパターンからそれらのいずれかから推測した場合、それが間違いを犯したことをどのように認識し、それを元に戻しますか?
これはすべて、過去にCPUの一部がアイドル状態のままだったステージングされたプロセッサからのものであり、現在は可能な限りすべての小さな部分を利用しています。分岐イベントや条件付きイベントがなかった場合、これはスムーズですが、時々、何が起こっているかを変更する必要があります。
したがって、Mysticalが述べたように、予測子は推測を行い、ほとんどの時間アイドル状態のコンピューティング能力が待機しないようにします。プロセッサは推測されたものを続行し、待機していた前の命令が完了すると、予測子が比較されます。正しく推測された場合は何も起こりません。間違って推測された場合は信号が送信され、予測ポイントの後のステージがスローされ、正しい値で再実行されます。
これが技術レベルでどのように行われるかは、アーキテクチャによって異なります。誤った予測の後に計算されたすべてのものが無効になり、それらのプロセスがやり直されるので、それはそれほど元に戻すアクションではありません。