420 likes | 594 Views
プログラムの実行経路の偏りに 着目した分岐予測法. ○ 築地 孝典,井上 弘士,村上 和彰 九州大学 大学院 システム情報科学府 . 発表手順. 従来の分岐予測器 分岐予測の目的と動作 消費エネルギーモデル ホットパス分岐予測法( HPBP 法) 動作原理 消費エネルギーモデル 評価 結果 考察 関連研究 おわりに まとめ 今後の課題. 分岐予測とは. 分岐予測とは 分岐命令の分岐成立 / 不成立を命令フェッチ時に予測 命令パイプライン処理における分岐ハザードの解決 分岐予測の実現法.
E N D
プログラムの実行経路の偏りに 着目した分岐予測法プログラムの実行経路の偏りに 着目した分岐予測法 ○築地 孝典,井上 弘士,村上 和彰 九州大学 大学院 システム情報科学府
発表手順 • 従来の分岐予測器 • 分岐予測の目的と動作 • 消費エネルギーモデル • ホットパス分岐予測法(HPBP法) • 動作原理 • 消費エネルギーモデル • 評価 • 結果 • 考察 • 関連研究 • おわりに • まとめ • 今後の課題
分岐予測とは • 分岐予測とは • 分岐命令の分岐成立/不成立を命令フェッチ時に予測 • 命令パイプライン処理における分岐ハザードの解決 • 分岐予測の実現法 • 分岐先予測(Branch Target Buffer) • 分岐成立時の分岐先はどこか • 分岐方向予測 • 分岐成立か不成立か
Selector BP1 BP2 大規模化・複雑化する分岐予測器 • 分岐予測の重要性 • 予測ミスペナルティ大 • 予測精度がプロセッサの性能に与える影響大 • 分岐予測器の現状 • 分岐予測精度向上を目指した大規模化・複雑化 例1:2レベル分岐予測器(Gshare) 例2:トーナメント分岐予測器 分岐履歴 グローバル 分岐履歴 PC XOR
分岐予測における消費エネルギーの増大 • 分岐予測器の消費エネルギーモデル • 分岐予測はテーブルアクセス • 消費エネルギーはテーブルサイズに依存 • 分岐予測器の消費エネルギーの増大 • 大規模化・複雑化によるテーブルサイズの増大 • チップ全体の10%以上※ EBPRED = (Edir + Ebtb) × Nbpred EBPRED:分岐予測器の消費エネルギー Edir:分岐方向予測器の消費エネルギー Ebtb:Branch Target Bufferの消費エネルギー Nbranch:分岐予測回数(通常、全命令) ※参考論文:[Chaver 2003] 「毎命令」「大きなテーブル」にアクセスしていることが問題!
A B C D E F G 分岐予測器の低消費エネルギー化に向けたアプローチ • 基本的な考え方 • 予測が容易な分岐命令にはエネルギーをかけない • 予測が容易な分岐命令とは? • ホットパスに着目 パス 上から下へ流れる命令列 ABDFABDFG ACEFACEFG CEFCEFG 左図中のパス ホットパス パスの中で全実行時間に 占める割合が多いもの
ホットパスに着目した低消費エネルギー化 • ホットパスの特徴を利用 • ホットパス中の分岐命令が高確率で決まった方向に分岐 • ホットパス分岐予測法(HPBP法) • ホットパス専用の分岐予測器 • 少数の分岐命令情報のみ必要なため、エネルギーは少ない • ホットパス実行中 • ホットパス分岐予測法を使用 • ホットパス以外を実行中 • 従来型分岐予測器を使用 A 従来型分岐予測器 (エネルギー大) ホットパス分岐予測法 (エネルギー小) B C D E F ホットパス
ホットパス実行時間の割合 ホットパス実行時間が全実行時間に占める割合 (%) ベンチマークプログラム
ホットパス テーブル Z 分岐命令 アドレス 分岐先 アドレス A C先頭 A終端 E先頭 C終端 B C E終端 A先頭 D E F ホットパス分岐予測法(HPBP法) PC HPBP法 従来型 分岐予測器 ヘッドテーブル パスの先頭 アドレス ポインタ A先頭 C先頭 A終端 ルックアップテーブル 分岐不成立
HPBP法の内部構成 ヘッドテーブル • ホットパスを実行中か否かの判定機構 • ヘッドテーブル • ホットパスの先頭アドレスを格納 • 各ホットパステーブルへの参照アドレスを格納 • ホットパス中の予測機構 • ホットパステーブル • ホットパス中の分岐命令と分岐先アドレスを登録 • ルックアップテーブル • ホットパステーブルから読み出した分岐命令と分岐先アドレスを格納 パスの先頭 アドレス ポインタ ルックアップテーブル 読み出し 分岐命令 アドレス 分岐先 アドレス 分岐命令 アドレス 分岐先 アドレス ホットパス テーブルA ホットパス テーブルB
ホットパス テーブル Z 分岐命令 アドレス 分岐先 アドレス A C先頭 A終端 E先頭 C終端 B C E終端 A先頭 D E F HPBP法の動作 PC HPBP法 従来型 分岐予測器 ヘッドテーブル パスの先頭 アドレス ポインタ A先頭 ルックアップテーブル
Z A C先頭 A終端 E先頭 C終端 B C E終端 A先頭 D E F HPBP法の動作 PC HPBP法 従来型 分岐予測器 ホットパス テーブル ヘッドテーブル パスの先頭 アドレス ポインタ 分岐命令 アドレス 分岐先 アドレス A先頭 ヒット! C先頭 A終端 ルックアップテーブル
ホットパス テーブル Z 分岐命令 アドレス 分岐先 アドレス A C先頭 A終端 E先頭 C終端 B C E終端 A先頭 D E F HPBP法の動作 PC HPBP法 従来型 分岐予測器 ヘッドテーブル パスの先頭 アドレス ポインタ A先頭 C先頭 A終端 ルックアップテーブル 分岐不成立
ホットパス テーブル Z 分岐命令 アドレス 分岐先 アドレス A C先頭 A終端 E先頭 C終端 B C E終端 A先頭 D E F HPBP法の動作 PC HPBP法 従来型 分岐予測器 ヘッドテーブル パスの先頭 アドレス ポインタ A先頭 一致! C先頭 A終端 ルックアップテーブル C先頭
Z A C先頭 A終端 E先頭 C終端 B C E終端 A先頭 D E F HPBP法の動作 PC HPBP法 従来型 分岐予測器 ホットパス テーブル ヘッドテーブル パスの先頭 アドレス ポインタ 分岐命令 アドレス 分岐先 アドレス A先頭 E先頭 C終端 ルックアップテーブル
ホットパス テーブル Z 分岐命令 アドレス 分岐先 アドレス A C先頭 A終端 E先頭 C終端 B C E終端 A先頭 D E F HPBP法の動作 PC HPBP法 従来型 分岐予測器 ヘッドテーブル パスの先頭 アドレス ポインタ A先頭 E先頭 C終端 ルックアップテーブル 分岐不成立
ホットパス テーブル Z 分岐命令 アドレス 分岐先 アドレス A C先頭 A終端 E先頭 C終端 B C E終端 A先頭 D E F HPBP法の動作 PC HPBP法 従来型 分岐予測器 ヘッドテーブル パスの先頭 アドレス ポインタ A先頭 一致! E先頭 C終端 ルックアップテーブル E先頭
Z A C先頭 A終端 E先頭 C終端 B C E終端 A先頭 D E F HPBP法の動作 PC HPBP法 従来型 分岐予測器 ホットパス テーブル ヘッドテーブル パスの先頭 アドレス ポインタ 分岐命令 アドレス 分岐先 アドレス A先頭 A先頭 E終端 ルックアップテーブル
ホットパス テーブル Z 分岐命令 アドレス 分岐先 アドレス A C先頭 A終端 E先頭 C終端 B C E終端 A先頭 D E F HPBP法の動作 PC HPBP法 従来型 分岐予測器 ヘッドテーブル パスの先頭 アドレス ポインタ A先頭 A先頭 E終端 ルックアップテーブル 分岐不成立
ホットパス テーブル Z 分岐命令 アドレス 分岐先 アドレス A C先頭 A終端 E先頭 C終端 B C E終端 A先頭 D E F HPBP法の動作 PC HPBP法 従来型 分岐予測器 ヘッドテーブル パスの先頭 アドレス ポインタ A先頭 一致! A先頭 E終端 ルックアップテーブル A先頭
Z A C先頭 A終端 E先頭 C終端 B C E終端 A先頭 D E F HPBP法の動作 PC HPBP法 従来型 分岐予測器 ホットパス テーブル ヘッドテーブル パスの先頭 アドレス ポインタ 分岐命令 アドレス 分岐先 アドレス A先頭 ホットパス が終了 ルックアップテーブル
Z A C先頭 A終端 E先頭 C終端 B C E終端 A先頭 D E F HPBP法の動作 PC HPBP法 従来型 分岐予測器 ホットパス テーブル ヘッドテーブル パスの先頭 アドレス ポインタ 分岐命令 アドレス 分岐先 アドレス A先頭 ヒット! C先頭 A終端 ルックアップテーブル
ホットパス テーブル Z 分岐命令 アドレス 分岐先 アドレス A C先頭 A終端 E先頭 C終端 B C E終端 A先頭 D E F HPBP法の動作 PC HPBP法 従来型 分岐予測器 ヘッドテーブル パスの先頭 アドレス ポインタ A先頭 C先頭 A終端 ルックアップテーブル 分岐不成立
ホットパス テーブル Z 分岐命令 アドレス 分岐先 アドレス A C先頭 A終端 E先頭 C終端 B C E終端 A先頭 D E F HPBP法の動作 PC HPBP法 従来型 分岐予測器 ヘッドテーブル パスの先頭 アドレス ポインタ A先頭 一致! C先頭 A終端 ルックアップテーブル C先頭
Z A C先頭 A終端 E先頭 C終端 B C E終端 A先頭 D E F HPBP法の動作 PC HPBP法 従来型 分岐予測器 ホットパス テーブル ヘッドテーブル パスの先頭 アドレス ポインタ 分岐命令 アドレス 分岐先 アドレス A先頭 E先頭 C終端 ルックアップテーブル
ホットパス テーブル Z 分岐命令 アドレス 分岐先 アドレス A C先頭 A終端 E先頭 C終端 B C E終端 A先頭 D E F HPBP法の動作 PC HPBP法 従来型 分岐予測器 ヘッドテーブル パスの先頭 アドレス ポインタ A先頭 ホットパス から離脱 E先頭 C終端 ルックアップテーブル 予測ミス!
HPBP法の消費エネルギーモデル(1/2) • HPBP法の消費エネルギーEHPBP EHPBP = (Eht × Nht) + (Ehpt × Nhpt) + (Elut × Nlut) + (Ebpred ×Nbpred) Eht,Nht:ヘッドテーブル・アクセスの消費エネルギー,アクセス回数 Ehpt ,Nhpt:ホットパステーブル・アクセスの消費エネルギー,アクセス回数 Elut ,Nlut:ルックアップテーブル・アクセスの消費エネルギー,アクセス回数 Ebpred,Nbpred :従来型分岐予測器の消費エネルギー,アクセス回数 Nht,Nbpred:ホットパス以外の実行命令数 Nlut,Nhpt:ホットパス中の実行命令数
消費エネルギーの定性的評価(2/2) • Eht,Ehpt,Elut,Ebpredの比較(テーブルサイズによる比較) • ヘッドテーブル:32エントリ(1Kbit) • ホットパステーブル:50エントリ(3Kbit) • ルックアップテーブル:1エントリ(60bit) • 従来型分岐予測器:2KエントリGshare(64Kbit) 従来型分岐予測器のサイズ >>HPBP法のサイズ 消費エネルギー削減率は ホットパス実行の割合に依存
評価実験 • 評価対象 • BASE:従来方式、分岐予測器はGshareを使用 • HPBP8,16,32: • ヘッドテーブルエントリ数8,16,32のHPBP法 • ホットパステーブルのエントリ数は50 • ホットパス外命令はGshareを使用 • 評価項目 • 分岐予測ミス率 • 分岐予測器の消費エネルギー • 実験環境 • プロセッサ・シミュレータ:SimpleScalar • プロセッサ構成:8ウェイ・スーパスカラ • ベンチマークプログラム • SPEC2000:整数3個 • 入力:smallinput
予測ミス率 予測ミス率 (%) ベンチマークプログラム
消費エネルギー削減率 消費エネルギー削減率 (%) ベンチマークプログラム
考察 • ヘッドテーブル・エントリ数による影響 • エントリ数を多くしてもエネルギー削減効果は上がらない場合もある(むしろ下がる場合もある) • エントリ数を増やしてもホットパス実行時間が増えない パスの実行時間が全実行時間に占める割合が○%以下のものは登録しないようにする
関連研究 • 分岐予測器の消費エネルギーモデル(再掲) • Edir,Ebtbの削減(※) • 予測が容易な分岐命令に対し、使用するテーブルを制限 • フェイズごとのプロファイル情報から予測が容易な分岐命令を発見 • 関連研究と提案手法の違い • 予測が容易な分岐命令の発見法 • ホットパスに着目 • ホットパス専用の分岐予測機構を追加 • ホットパス中の分岐命令情報のみ必要なため、テーブルサイズが小さい • テーブル検索ではなく、FIFO(First In First Out) EBPRED = (Edir + Ebtb) × Nbpred ※参考論文:[Chaver 2003]
おわりに • まとめ • ホットパスを利用した分岐予測法の提案・評価 • 予測ミス率は平均約2.2ポイントの増大(性能低下) • 消費エネルギーは最大68%、平均約40%削減 • 今後の課題 • 予測精度の向上 • ホットパステーブルの更新 • プロセッサ全体での消費エネルギーを評価
考察 • HPBP法の問題点 • 先頭アドレスが等しいパスを複数登録できない ABD・・がホットパス表に登録されている場合 ACD・・もHPBP法で予測し、予測が外れる ACD・・の実行頻度が高いと・・・ 予測ミスが頻発 ホットパス実行モードでの実行時間の短縮 (消費エネルギーの増大) A B C D
予測ミス率と消費エネルギー削減率 消費エネルギー削減率 予測ミス率 (%) (%) ベンチマークプログラム
考察 実行時間の長いパス上位10本 良かった例では登録できなかったパスが少なく また登録できたパスの合計実行時間は全実行時間の多くを占める
予測ミス率と消費エネルギー削減率 消費エネルギー削減率 予測ミス率 (%) (%) ベンチマークプログラム
実行時間の長いパス上位10本 181mcf ref.in 164gzip lgred.graphic 割合A:そのパスの実行時間が全実行時間に占める割合 割合B:登録できたパスの実行時間の合計が全実行時間に占める割合 先頭アドレスの重複により、ホットパステーブルに登録できなかったもの
分岐命令 アドレス 分岐先 アドレス 消費エネルギーモデル E1 ホットパス テーブル E1:ホットパスヘッドテーブル E2:ホットパステーブル E3:ルックアップテーブル E0:従来型分岐予測器 ホットパスヘッド テーブル phase1 パスの先頭アドレス PC 検索 Etotal = E1 × ホットパス以外の実行命令数 + E2 × ホットパス中の実行分岐命令数 + E3 × ホットパス中の実行命令数 + E0 × ホットパス以外の実行命令数 E2 順番に取り出す ヒットしなかった 場合従来の分岐 予測器を使用 E0 ルックアップテーブル PC 比較 E3 phase2
ホットパス検出・登録 • ホットパス検出法 • オンライン・プロファイリング • プログラム実行中にホットパスを推定する • ホットパス推定用のエネルギーがかかる • 正しいホットパスを検出できるかわからない • 実行トレースの解析 • プログラムを一度実行し、そのトレース情報から ホットパスを検出する • ホットパスを検出した入力と異なった入力がきたときにホットパスが誤っている可能性がある