ある意味では、フェッチされない命令は実行できないため、命令のフェッチでは分岐予測の効果がより重要になります。
ブランチの両方のパスを実行することに関して、これは熱心な実行と呼ばれ、かなり大幅に研究されてきました。Augustus K. UhtとVijay Sindagiの「Disjoint Eager Execution:A Optimal Form of Speculative Execution」(1995)は一見の価値があるかもしれません。
熱心な実行にはいくつかの問題があります。深い推測の場合、追跡する必要のあるパスの数は指数関数的に増加する可能性があります(分岐した各分岐パスは分岐に遭遇する可能性があります)。多くの場合、分岐予測は非常に正確(> 90%正解)であるため、常に両方のパスを実行すると無駄になります。熱心な実行は、不要なコンテンツでキャッシュを「汚染」する可能性もあります。(上記の論文は、これらの問題のいくつかを回避するためにインテリジェントに制限された熱心な実行を提案しました。)代替パスの制限された熱心なフェッチは問題が少なく、短いパイプラインでの予測ミス回復の遅延を減らすのに多少魅力的です。
提案されている別のアプローチは、動的に「ハンモック」ブランチ(命令フローのメインパスに戻る短い前方ブランチ)を予測することです。Artur Klauser et al。の「予測されない命令セットアーキテクチャ用の動的ハンモック予測」(1998)は、そのアイデアを読む価値があるかもしれません。(Hyesoon Kim et al。の「Wish Branches:Combining Conditional Branching and Predication for Adaptive Predicated Execution」は、ハンモックの予測を容易にし、予測の難しいループブランチにこの予測方法を拡張するISAブランチへの追加を提案しています。)