Loading article…
コンピュータ アーキテクチャにおいて、分岐ターゲット予測器は、プロセッサの実行ユニットによって分岐命令のターゲットが計算される前に、実行される条件付き分岐命令または無条件分岐命令のターゲット、つまり次に実行される命令のアドレスを予測するプロセッサの一部です。
分岐ターゲット予測は、条件分岐が実行されるかどうかの 2 進法を推測する 分岐予測とは異なります。
より並列化されたプロセッサ設計では、命令キャッシュのレイテンシが長くなり、フェッチ幅が広くなるにつれて、分岐ターゲットの抽出がボトルネックになります。繰り返しは次のようになります。
- 命令キャッシュは命令ブロックをフェッチする
- ブロック内の命令は分岐を識別するためにスキャンされる
- 最初に予測された分岐が特定される
- そのブランチのターゲットが計算される
- 命令フェッチは分岐先で再開される
この繰り返しに 2 サイクルかかるマシンでは、予測された分岐が行われるたびに、マシンは 1 サイクルのフェッチを失います。予測された分岐は 10 命令ごとに発生するため、フェッチ帯域幅が大幅に低下する可能性があります。命令キャッシュのレイテンシが長いマシンでは、さらに大きな損失が発生します。損失を軽減するために、一部のマシンでは分岐ターゲット予測を実装しています。分岐のアドレスが与えられると、その分岐のターゲットを予測します。このアイデアを改良したものとして、前の連続した命令の実行の開始アドレスが与えられると、連続した命令の実行の開始を予測します。
この予測子は上記の再発を次のように減らします。
- 実行の最初の命令のアドレスをハッシュする
- その命令実行における分岐先のアドレスの予測を取得する
- 予測される分岐に対応するアドレスを選択する
予測 RAM は命令キャッシュのサイズの 5 ~ 10% にすることができるため、フェッチは命令キャッシュ フェッチよりもはるかに高速に行われ、この繰り返しもはるかに高速になります。速度が十分でない場合は、ターゲット分岐のターゲット アドレスを予測することで並列化できます。
参照
- 間接分岐制御(IBC)
- 間接分岐予測バリア(IBPB)
- 間接分岐制限投機(IBRS)
- シングルスレッド間接分岐予測器(STIBP)
さらに読む
- ドライセン。 Hölzle (1992)、正確な間接分岐予測
- Ertl; Gregg (2001)、現代アーキテクチャにおける効率的な仮想マシンインタープリタの動作
外部リンク
- 「分岐ターゲット バッファー」。(EE461)
- Fog, Agner . 「Intel、AMD、VIA CPU のマイクロアーキテクチャ」(PDF) 。2017 年 8 月 9 日閲覧。
