第 4 章 投機対象パスの複数化
4.5 結論
本章では,従来1本のパスのみを予測対象としていたパス予測機構に対し,複 数のパスを予測対象にすることが可能である新しいパス予測機構について提案し た.これまで1ビットによって表現されていたパス実行履歴情報をNビットに詳 細化することによって,2N −1本のパスを予測対象にすることが可能であるパス 予測機構を開発した.
提案したパス予測器では,パスごとにPHT (パターン履歴テーブル) を分ける ことにより,異なるパス間での学習結果の衝突が起こらないようにした.GAgと
Gshareという2種類の分岐予測機構をベースとしたパス予測器について検討し,
予測性能の評価を行った.その結果,SPEC CINT2000ベンチマークプログラムの
255.vortexにおいて,最大で7.6%の予測性能の向上を達成することができた.ま
た,ハッシュインデックス法により長大なパス履歴レジスタを持つことのできる パス予測器について検討し,3ビットのパス実行履歴情報を持つパス予測器が,予 測性能の幾何平均において最も優秀であることを明らかにした.評価では,#1パ スと#2パス以外のパスの実行割合が予測性能に大きく影響していることについて 述べ,いわゆるその他のパスの実行割合が高いループに対して,本提案パス予測 器が有効であることを明らかにした.
今後の課題として,ハッシュインデックス法を用いる場合,用いない場合のPHT における学習結果の衝突について詳細に調べる必要がある.そして,衝突を起こ さず,PHTを効率的に使うことのできる高性能なハッシュインデックス法につい て検討する.また,提案したパス予測器を実際の投機的並列実行システムに組み 込む場合のコストや利用方法について検討を行う必要がある.
#1path: 77.9%
#2path: 18.9%
other paths: 3.2%
#1path: 52.1%
#2path: 47.8%
other paths: 0.1%
#1path: 64.9%
#2path: 29.5%
other paths: 5.6%
0%
10%
20%
30%
40%
50%
60%
70%
80%
90%
100%
prediction accuracy
4Kbits 8Kbits 16Kbits 32Kbits 64Kbits
0%
10%
20%
30%
40%
50%
60%
70%
80%
90%
100%
prediction accuracy
4Kbits 8Kbits 16Kbits 32Kbits 64Kbits
0%
10%
20%
30%
40%
50%
60%
70%
80%
90%
100%
prediction accuracy
4Kbits 8Kbits 16Kbits 32Kbits 64Kbits
#1path: 78.2%
#2path: 21.8%
other paths: 0.0%
0%
10%
20%
30%
40%
50%
60%
70%
80%
90%
100%
prediction accuracy
4Kbits 8Kbits 16Kbits 32Kbits 64Kbits
#1path: 55.9%
#2path: 33.8%
other paths: 10.3%
#1path: 52.9%
#2path: 37.8%
other paths: 9.3%
0%
10%
20%
30%
40%
50%
60%
70%
80%
90%
100%
prediction accuracy
4Kbits 8Kbits 16Kbits 32Kbits 64Kbits
0%
10%
20%
30%
40%
50%
60%
70%
80%
90%
100%
prediction accuracy
4Kbits 8Kbits 16Kbits 32Kbits 64Kbits
#1path: 67.8%
#2path: 22.4%
other paths: 9.8%
0%
10%
20%
30%
40%
50%
60%
70%
80%
90%
100%
prediction accuracy
4Kbits 8Kbits 16Kbits 32Kbits 64Kbits
0%
10%
20%
30%
40%
50%
60%
70%
80%
90%
100%
prediction accuracy
4Kbits 8Kbits 16Kbits 32Kbits 64Kbits
#1path: 52.9%
#2path: 37.8%
other paths: 9.3%
(a) 164.gzip !"#$%&'()*
(b) 175.vpr !"#$%&'()*
(c) 167.gcc !"#$%&'()*
(d) 181.mcf !"#$%&'()*
(e) 186.crafty !"#$%&'()*
(f) 255.vortex !"#$%&'()*
(g) 256.bzip2 !"#$%&'()*
(h) 300.twolf !"#$%&'()*
図 4.10: SPEC CINT2000ベンチマークプログラムにおけるパス予測成功率
0%
10%
20%
30%
40%
50%
60%
70%
80%
90%
100%
prediction accuracy
4Kbits 8Kbits 16Kbits 32Kbits 64Kbits
#1path: 69.7%
#2path: 26.0%
other paths: 4.3%
図 4.11: 全てのプログラムにおけるパス予測成功率の幾何平均
0%
10%
20%
30%
40%
50%
60%
70%
80%
90%
100%
prediction accuracy
Gshare Bit 2 (nohash) Bit 2 (hash) Bit 3 (nohash) Bit 3 (hash) 0%
10%
20%
30%
40%
50%
60%
70%
80%
90%
100%
prediction accuracy
GAg Bit 2 (nohash) Bit 2 (hash) Bit 3 (nohash) Bit 3 (hash)
(a) GAg !"#$%&'(
(b) Gshare !"#$%&'(
図 4.12: ハッシュインデックス法を実装した場合のパス予測成功率