パイプライン化を行うと、適宜ストールを発生させる必要があります。特に、ストールの要因として大きな部分を占めるのは、分岐命令です。分岐命令の結果が確定するまで、次の PC がわからないことが原因ですが、「多分次の PC (分岐命令の**飛び先**)はこの値」と予測できれば、投機的に次の命令をフェッチして実行することができます(投機的に、というのは「無駄になるかもしれないが、予測が当たれば(性能面で)得になる」というようなニュアンスです)。
パイプライン化を行うと、適宜ストールを発生させる必要があります。特に、ストールの要因として大きな部分を占めるのは、分岐命令です。分岐命令の結果が確定するまで次の PC がわからないことが原因ですが、「次の PC は多分この値」と予測できれば、後続の命令を投機的にフェッチすることができ、パイプラインにバブルを入れずに済みます(投機的に、というのは「無駄になるかもしれないが、予測が当たれば(性能面で)得になる」というようなニュアンスです)。
分岐予測器は凝りだすと果てがありませんが、ごく単純な「常に分岐しない(次の PC は PC+4)と予想」「前回と同じ場所に分岐すると予想」などでも十分でしょう。凝った分岐予測器にチャレンジしたいとしても、それにいきなり手を出すのは推奨できません。まずは簡単な分岐予測器を作り、分岐予測ミス時にも正しく動作するような機構を正しく実装できたことを確信してから、分岐予測器を取り換えるのがおすすめです。
分岐予測器は凝りだすと果てがありませんが、ごく単純な「常に分岐しない(次の PC は PC+4)と予想」「前回成立した分岐命令と同じPCであれば、同じ場所に分岐すると予想」などでも十分でしょう。凝った分岐予測器にチャレンジしたいとしても、それにいきなり手を出すのは推奨できません。まずは簡単な分岐予測器を作り、分岐予測ミス時にも正しく動作するような機構を正しく実装できたことを確信してから、分岐予測器を取り換えるのがおすすめです。