自作RISC-Vプロセッサの性能向上対策その4。分岐予測アルゴリズムを、4ステートの分岐予測方式に切り替える。
これまでは、単純な2ステートの分岐予測アルゴリズムを利用していた。
- 当該命令で分岐すると、次に同じ命令では分岐と予測する
- 当該命令で分岐しないと、次に同じ命令では分岐しないと予測する
これを、4ステートの分岐予測アルゴリズムに切り替える。4ステートの分岐予測アルゴリズムでは、「Strong Through」「Weak Through」「Weak Jump」「Strong Jump」の4ステートである。
- Strong Throughステートの場合、当該命令で分岐すると、Weak Throughステートに移行する
- Weak Throughステートの場合、当該命令で分岐すると、Weak Jumpに移行、分岐しない場合はStrong Throughに移行する。
- Weak Jumpステートの場合、当該命令で分岐すると、Strong Jumpに移行、分岐しない場合はWeak Throughに移行する。
- Strong Jumpステートの場合、当該命令で分岐しない場合、Weak Jumpステートに移行する。
この2つを比較して、性能向上比率を測定した。
Cycle | Rate | |
---|---|---|
2-state Branch Prediction | 49889 | 100% |
4-state Branch Prediction | 45528 | 91.2% |
おおよそ9%の性能向上となった。IPCの経過グラフを作成すると、以下のようになった。
青のグラフが、前回のロードレイテンシ+1のグラフ、赤が前回のロードレイテンシ+0のグラフ、さらに黄色のグラフが分岐予測のアルゴリズムを4-stateに変更したものだ。