前回までで、ISSに命令キャッシュ、データキャッシュを実装する方法について検討し、実装した。
Verilog-HDLでCPUを実装するにあたり、まだまだ必要な機能はある。次は、分岐予測を命令セットシミュレータ(ISS)を用いて実装する機能について検討しよう。
分岐予測とは
これらはコンピュータアーキテクチャの書籍を参照すると解説を簡単に見付けることができるので、こちらを参考にして欲しい。
コンピュータアーキテクチャ技術入門 ~高速化の追求×消費電力の壁 (WEB+DB PRESS plus)
- 作者: Hisa Ando
- 出版社/メーカー: 技術評論社
- 発売日: 2014/05/01
- メディア: 単行本(ソフトカバー)
- この商品を含むブログ (3件) を見る
ヘネシー&パターソン コンピュータアーキテクチャ 定量的アプローチ 第5版
- 作者: ジョン・L・ヘネシー,デイビッド・A・パターソン
- 出版社/メーカー: 翔泳社
- 発売日: 2015/01/19
- メディア: Kindle版
- この商品を含むブログ (1件) を見る
分岐予測の基本は、これまでに分岐したかどうかだ。
上記の分岐予測の機構は、Hisa Ando氏の「プロセッサを支える技術」から若干引用させて頂いた。
プロセッサを支える技術 ??果てしなくスピードを追求する世界 (WEB+DB PRESS plus)
- 作者: Hisa Ando
- 出版社/メーカー: 技術評論社
- 発売日: 2011/01/06
- メディア: 単行本(ソフトカバー)
- 購入: 22人 クリック: 250回
- この商品を含むブログ (54件) を見る
これまでの分岐予測結果と、分岐結果から次の分岐結果を予測する機構だ。
必要なのは、
- 当該分岐命令の「これまでの分岐結果(分岐結果ビットテーブル)」
- 当該分岐命令の「これまでの分岐予測結果(分岐予測結果ビットテーブル)」
例えば、分岐予測に使用するアドレスが10ビットであるならば、分岐結果ビットテーブルのエントリは210ビット=1024ビットとなる。 分岐結果ビットテーブルが3ビットで構成されているならば、分岐予測ビットテーブルのエントリ数は2(10+3)ビットの8192ビットとなる。 分岐予測結果と、分岐結果の2つを利用して次の分岐結果を予測する方式だ。
分岐予測は、2ビットを保持する分岐予測機構だ。