若い分岐命令が分岐予測メカニズムによって既に処理されているが、対応する lhr (または実装によっては ghr) がまだ古い分岐の実際の結果で更新されていない場合、長いパイプラインで実行可能なシナリオであるかどうか疑問に思っています。パイプラインの長さのため。
これは実行可能なシナリオですが、どのように回避されますか?
若い分岐命令が分岐予測メカニズムによって既に処理されているが、対応する lhr (または実装によっては ghr) がまだ古い分岐の実際の結果で更新されていない場合、長いパイプラインで実行可能なシナリオであるかどうか疑問に思っています。パイプラインの長さのため。
これは実行可能なシナリオですが、どのように回避されますか?
質問で言及したシナリオは正当に思えますが、これが Branch Predictor に関連する機能/パフォーマンスの問題を引き起こすかどうかは疑問です. 2 つの連続するブランチがあるシナリオを考えてみましょう。古いブランチの予測結果は、若いブランチには表示されません。しかし、背中合わせのブランチがある場合、次の結果が考えられます。
同じことが、分岐が行われず、正しく/間違って予測されるシナリオにも当てはまります。これがあなたの質問に答えることを願っています。