プログラムの実行経路の偏りに 着目した分岐予測法 ○築地 孝典,井上 弘士,村上 和彰 九州大学 大学院 システム情報科学府 発表手順 • 従来の分岐予測器 – 分岐予測の目的と動作 – 消費エネルギーモデル • ホットパス分岐予測法(HPBP法) – 動作原理 – 消費エネルギーモデル • 評価 – 結果 – 考察 • 関連研究 • おわりに – まとめ – 今後の課題 2 分岐予測とは • 分岐予測とは – 分岐命令の分岐成立/不成立を命令フェッチ時に予測 – 命令パイプライン処理における分岐ハザードの解決 • 分岐予測の実現法 分岐方向予測 分岐成立か不成立か 分岐命令 アドレス 過去の 分岐結果 分岐先予測(Branch Target Buffer) 分岐成立時の分岐先はどこか 分岐命令 アドレス 分岐先 アドレス 3 大規模化・複雑化する分岐予測器 • 分岐予測の重要性 – 予測ミスペナルティ大 – 予測精度がプロセッサの性能に与える影響大 • 分岐予測器の現状 – 分岐予測精度向上を目指した大規模化・複雑化 例1:2レベル分岐予測器(Gshare) 例2:トーナメント分岐予測器 PC グローバル 分岐履歴 XOR 分岐履歴 Selector BP1 BP2 4 分岐予測における 消費エネルギーの増大 • 分岐予測器の消費エネルギーモデル EBPRED = (Edir + Ebtb) × Nbpred EBPRED:分岐予測器の消費エネルギー Edir:分岐方向予測器の消費エネルギー Ebtb:Branch Target Bufferの消費エネルギー Nbranch:分岐予測回数(通常、全命令) • 分岐予測はテーブルアクセス – 消費エネルギーはテーブルサイズに依存 • 分岐予測器の消費エネルギーの増大 – 大規模化・複雑化によるテーブルサイズの増大 ※参考論文:[Chaver 2003] – チップ全体の10%以上※ 「毎命令」「大きなテーブル」にアクセスしていることが問題! 5 分岐予測器の低消費エネルギー化に 向けたアプローチ • 基本的な考え方 – 予測が容易な分岐命令にはエネルギーをかけない • 予測が容易な分岐命令とは? – ホットパスに着目 パス A B D C E F G 上から下へ流れる命令列 左図中のパス ABDF ABDFG ホットパス ACEF CEF ACEFG CEFG パスの中で全実行時間に 占める割合が多いもの 6 ホットパスに着目した 低消費エネルギー化 • ホットパスの特徴を利用 – ホットパス中の分岐命令が高確率 で決まった方向に分岐 A • ホットパス分岐予測法(HPBP法) – ホットパス専用の分岐予測器 – 少数の分岐命令情報のみ必要なた め、エネルギーは少ない • ホットパス実行中 – ホットパス分岐予測法を使用 B C D E • ホットパス以外を実行中 – 従来型分岐予測器を使用 F ( エ従 ネ来 ル型 ギ分 ー岐 大予 )測 器 ( エホ ネッ ト ルパ ギス ー分 小岐 )予 測 法 ホットパス 7 ホットパス実行時間の割合 ホ 100 ッ 90 ト パ 80 ス 実 70 行 時 60 間 が 50 全 40 実 行 30 時 間 20 に 占 10 め 0 る 割 合 (%) 上位10本 上位20本 1 64 g zi p 1 64 1 64 1 64 1 81 1 81 g zi p mc f mc f l re f . lg r e lg r e r g e r ed f. gr a d .g r d .l o .i n ph i c l o g g ap h ic g zi p g zi p 2 56 r ef . bz i p in 2 56 AV G 2 2 lg r e f. r ed so u .g r a r ce ph i c bz i p ベンチマークプログラム 8 ホットパス分岐予測法(HPBP法) PC Z HPBP法 ホットパス テーブル ヘッドテーブル A パスの先頭 アドレス B C D E 従来型 分岐予測器 ポインタ 分岐命令 分岐先 アドレス アドレス A先頭 A終端 C先頭 C終端 E先頭 E終端 A先頭 A終端 C先頭 ルックアップテーブル F 分岐不成立 9 HPBP法の内部構成 • ホットパスを実行中 か否かの判定機構 – ヘッドテーブル ヘッドテーブル パスの先頭 アドレス ポインタ ルックアップテーブル • ホットパスの先頭アドレ スを格納 • 各ホットパステーブルへ の参照アドレスを格納 • ホットパス中の予測 機構 分岐命令 分岐先 アドレス アドレス 分岐命令 分岐先 アドレス アドレス 読 み 出 し – ホットパステーブル • ホットパス中の分岐命令 と分岐先アドレスを登録 – ルックアップテーブル • ホットパステーブルから 読み出した分岐命令と 分岐先アドレスを格納 ホットパス テーブルA ホットパス テーブルB 10 HPBP法の動作 PC Z HPBP法 ヘッドテーブル A パスの先頭 アドレス B C D E 従来型 分岐予測器 A先頭 ポインタ ホットパス テーブル 分岐命令 分岐先 アドレス アドレス A終端 C先頭 C終端 E先頭 E終端 A先頭 ルックアップテーブル F 11 HPBP法の動作 PC Z HPBP法 ヘッドテーブル A パスの先頭 アドレス B C D E 従来型 分岐予測器 ポインタ A先頭 ヒット! ホットパス テーブル 分岐命令 分岐先 アドレス アドレス A終端 C先頭 C終端 E先頭 E終端 A先頭 A終端 C先頭 ルックアップテーブル F 12 HPBP法の動作 PC Z HPBP法 ホットパス テーブル ヘッドテーブル A パスの先頭 アドレス B C D E 従来型 分岐予測器 ポインタ 分岐命令 分岐先 アドレス アドレス A先頭 A終端 C先頭 C終端 E先頭 E終端 A先頭 A終端 C先頭 ルックアップテーブル F 分岐不成立 13 HPBP法の動作 PC Z HPBP法 ヘッドテーブル A B パスの先頭 アドレス C D E 従来型 分岐予測器 ポインタ A先頭 ホットパス テーブル 分岐命令 分岐先 アドレス アドレス A終端 C先頭 C終端 E先頭 E終端 A先頭 一致! A終端 C先頭 ルックアップテーブル F C先頭 14 HPBP法の動作 PC Z HPBP法 ヘッドテーブル A パスの先頭 アドレス B C D E 従来型 分岐予測器 A先頭 ポインタ ホットパス テーブル 分岐命令 分岐先 アドレス アドレス A終端 C先頭 C終端 E先頭 E終端 A先頭 C終端 E先頭 ルックアップテーブル F 15 HPBP法の動作 PC Z HPBP法 ホットパス テーブル ヘッドテーブル A パスの先頭 アドレス B C D E 従来型 分岐予測器 ポインタ 分岐命令 分岐先 アドレス アドレス A先頭 A終端 C先頭 C終端 E先頭 E終端 A先頭 C終端 E先頭 ルックアップテーブル F 分岐不成立 16 HPBP法の動作 PC Z HPBP法 ヘッドテーブル A B パスの先頭 アドレス C D E 従来型 分岐予測器 ポインタ A先頭 ホットパス テーブル 分岐命令 分岐先 アドレス アドレス A終端 C先頭 C終端 E先頭 E終端 A先頭 一致! C終端 E先頭 ルックアップテーブル F E先頭 17 HPBP法の動作 PC Z HPBP法 ヘッドテーブル A パスの先頭 アドレス B C D E 従来型 分岐予測器 A先頭 ポインタ ホットパス テーブル 分岐命令 分岐先 アドレス アドレス A終端 C先頭 C終端 E先頭 E終端 A先頭 E終端 A先頭 ルックアップテーブル F 18 HPBP法の動作 PC Z HPBP法 ホットパス テーブル ヘッドテーブル A パスの先頭 アドレス B C D E 従来型 分岐予測器 ポインタ 分岐命令 分岐先 アドレス アドレス A先頭 A終端 C先頭 C終端 E先頭 E終端 A先頭 E終端 A先頭 ルックアップテーブル F 分岐不成立 19 HPBP法の動作 PC Z HPBP法 ヘッドテーブル A B パスの先頭 アドレス C D E 従来型 分岐予測器 ポインタ A先頭 ホットパス テーブル 分岐命令 分岐先 アドレス アドレス A終端 C先頭 C終端 E先頭 E終端 A先頭 一致! E終端 A先頭 ルックアップテーブル F A先頭 20 HPBP法の動作 PC Z HPBP法 ヘッドテーブル A パスの先頭 アドレス B C D E 従来型 分岐予測器 A先頭 ポインタ ホットパス テーブル 分岐命令 分岐先 アドレス アドレス A終端 C先頭 C終端 E先頭 ホットパス E終端 A先頭 が終了 ルックアップテーブル F 21 HPBP法の動作 PC Z HPBP法 ヘッドテーブル A パスの先頭 アドレス B C D E 従来型 分岐予測器 ポインタ A先頭 ヒット! ホットパス テーブル 分岐命令 分岐先 アドレス アドレス A終端 C先頭 C終端 E先頭 E終端 A先頭 A終端 C先頭 ルックアップテーブル F 22 HPBP法の動作 PC Z HPBP法 ホットパス テーブル ヘッドテーブル A パスの先頭 アドレス B C D E 従来型 分岐予測器 ポインタ 分岐命令 分岐先 アドレス アドレス A先頭 A終端 C先頭 C終端 E先頭 E終端 A先頭 A終端 C先頭 ルックアップテーブル F 分岐不成立 23 HPBP法の動作 PC Z HPBP法 ヘッドテーブル A B パスの先頭 アドレス C D E 従来型 分岐予測器 ポインタ A先頭 ホットパス テーブル 分岐命令 分岐先 アドレス アドレス A終端 C先頭 C終端 E先頭 E終端 A先頭 一致! A終端 C先頭 ルックアップテーブル F C先頭 24 HPBP法の動作 PC Z HPBP法 ヘッドテーブル A パスの先頭 アドレス B C D E 従来型 分岐予測器 A先頭 ポインタ ホットパス テーブル 分岐命令 分岐先 アドレス アドレス A終端 C先頭 C終端 E先頭 E終端 A先頭 C終端 E先頭 ルックアップテーブル F 25 HPBP法の動作 PC Z HPBP法 A B ホットパス テーブル ヘッドテーブル パスの先頭 アドレス C 従来型 分岐予測器 ポインタ 分岐命令 分岐先 アドレス アドレス A先頭 A終端 C先頭 C終端 E先頭 E終端 A先頭 ホットパス Dから離脱 E C終端 E先頭 ルックアップテーブル F 予測ミス! 26 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 :ホットパス中の実行命令数 27 消費エネルギーの定性的評価(2/2) • Eht,Ehpt,Elut,Ebpredの比較(テーブルサイズ による比較) – ヘッドテーブル:32エントリ(1Kbit) – ホットパステーブル:50エントリ(3Kbit) – ルックアップテーブル:1エントリ(60bit) – 従来型分岐予測器:2KエントリGshare(64Kbit) 従来型分岐予測器のサイズ >> HPBP法のサイズ 消費エネルギー削減率は ホットパス実行の割合に依存 28 評価実験 • 評価対象 – BASE:従来方式、分岐予測器はGshareを使用 – HPBP8,16,32: • ヘッドテーブルエントリ数8,16,32のHPBP法 • ホットパステーブルのエントリ数は50 • ホットパス外命令はGshareを使用 • 評価項目 – 分岐予測ミス率 – 分岐予測器の消費エネルギー • 実験環境 – プロセッサ・シミュレータ:SimpleScalar • プロセッサ構成:8ウェイ・スーパスカラ – ベンチマークプログラム • SPEC2000:整数3個 • 入力:smallinput 29 予測ミス率 予 測 ミ ス 率 (%) 18 16 14 12 10 8 6 4 2 0 BASE HPBP8 HPBP1 6 HPBP3 2 1 64 g zi p 1 64 2 56 1 64 1 1 81 1 81 2 56 A g zi p 6 4 g zi bz i p V G g zi p m m b z c c i p p f f 2 re 2 lg lgr e re f . lg r e lg r e r ef . r g r a r e f .l o g f. s o d d .g r d .l o e . i d i n n ph i c .g r a ur c g ap h e ph i c ic ベンチマークプログラム 30 消費エネルギー削減率 70 HPBP8 HPBP16 HPBP32 消 費 60 エ ネ ル 50 ギ ー 削 40 減 率 30 (%) 20 10 0 1 64 g zi p 1 64 lg r e g zi p d .g r 1 64 lg r e ap h ic g zi p d .l o g 1 64 1 81 1 81 g zi p mc f mc f re f . lgr e r e f gr a . d .i n ph i c l o g ベンチマークプログラム 2 56 r ef . bz i p in 2 56 AV G 2 2 lg r e f. r ed so u .g r a r ce ph i c bz i p 31 考察 • ヘッドテーブル・エントリ数による影響 – エントリ数を多くしてもエネルギー削減効果は上 がらない場合もある(むしろ下がる場合もある) • エントリ数を増やしてもホットパス実行時間が増えない パスの実行時間が全実行時間に占める割合が ○%以下のものは登録しないようにする 32 関連研究 • 分岐予測器の消費エネルギーモデル(再掲) EBPRED = (Edir + Ebtb) × Nbpred • Edir,Ebtbの削減(※) ※参考論文:[Chaver 2003] – 予測が容易な分岐命令に対し、使用するテーブルを制限 – フェイズごとのプロファイル情報から予測が容易な分岐命 令を発見 • 関連研究と提案手法の違い – 予測が容易な分岐命令の発見法 • ホットパスに着目 – ホットパス専用の分岐予測機構を追加 • ホットパス中の分岐命令情報のみ必要なため、テーブルサイズ が小さい • テーブル検索ではなく、FIFO(First In First Out) 33 おわりに • まとめ – ホットパスを利用した分岐予測法の提案・評価 • 予測ミス率は平均約2.2ポイントの増大(性能低下) • 消費エネルギーは最大68%、平均約40%削減 • 今後の課題 – 予測精度の向上 • ホットパステーブルの更新 – プロセッサ全体での消費エネルギーを評価 34 ご清聴ありがとうございました 考察 • HPBP法の問題点 – 先頭アドレスが等しいパスを複数登録できない ABD・・がホットパス表に登録されている場合 ACD・・もHPBP法で予測し、予測が外れる A B C D ACD・・の実行頻度が高いと・・・ 予測ミスが頻発 ホットパス実行モードでの実行時間の短縮 (消費エネルギーの増大) 36 予測ミス率と消費エネルギー削減率 BASE予測ミス率 HPBP32予測ミス率 HPBP32消費エネルギー削減率 18 予 16 測 14 80 消 70 費 60 エ ミ ス 12 率 10 (%) 8 ネ ル ギ ー 削 減 率 (%) 50 40 30 6 20 4 2 0 10 0 164 gzi p 164 1 1 2 A gzi p 164gzi p 64gzi p 181mcf 81mcf 56bzip 256bzip VG 2 lg 2 re l r l lgre r ref.i r e d .gr gred .log ef.grap ef.log gred.i n d n .gra f.sourc ap h h i c p hic e ic ベンチマークプログラム 37 考察 実行時間の長いパス上位10本 良かった例 悪かった例 181mcf ref.in 164gzip lgred.graphic 1本 3本 登録できなかったパスの合計実行時間 が全実行時間に占める割合 4.5% 13.3% 登録できたパスの合計実行時間 が全実行時間に占める割合 61.3% 36.1% 先頭アドレスの重複により 登録できなかったパス 良かった例では登録できなかったパスが少なく また登録できたパスの合計実行時間は全実行時間の多くを占める 38 予測ミス率と消費エネルギー削減率 BASE予測ミス率 HPBP32予測ミス率 HPBP32消費エネルギー削減率 18 予 16 測 14 80 消 70 費 60 エ ミ ス 12 率 10 (%) 8 ネ ル ギ ー 削 減 率 (%) 50 40 30 6 20 4 2 0 10 0 164 gzi p 164 1 1 2 A gzi p 164gzi p 64gzi p 181mcf 81mcf 56bzip 256bzip VG 2 lg 2 re l r l lgre r ref.i r e d .gr gred .log ef.grap ef.log gred.i n d n .gra f.sourc ap h h i c p hic e ic ベンチマークプログラム 39 実行時間の長いパス上位10本 181mcf ref.in 164gzip lgred.graphic NO 登録 1 ○ 10.3% 2 ○ 5.5% 3 割合A NO 登録 10.3% 1 ○ 29.1% 29.1% 15.8% 2 ○ 8.1% 37.3% 3 ○ 8.1% 45.3% 割合B 5.4% 割合A 割合B 4 ○ 5.3% 21.1% 4 5 ○ 5.3% 26.4% 5 ○ 3.5% 48.9% 6 ○ 3.2% 52.0% 7 ○ 2.7% 54.7% 8 ○ 2.5% 57.2% 6 7 4.8% ○ 8 3.9% 30.2% 3.1% 4.5% 9 ○ 3.0% 33.3% 9 ○ 2.1% 59.2% 10 ○ 2.9% 36.1% 10 ○ 2.1% 61.3% 割合A:そのパスの実行時間が全実行時間に占める割合 割合B:登録できたパスの実行時間の合計が全実行時間に占める割合 先頭アドレスの重複により、ホットパステーブルに登録できなかったもの 40 消費エネルギーモデル E1:ホットパスヘッドテーブル E2:ホットパステーブル E3:ルックアップテーブル E0:従来型分岐予測器 E1 phase1 PC Etotal = E1 × ホットパス以外の実行命令数 + E2 × ホットパス中の実行分岐命令数 + E3 × ホットパス中の実行命令数 + E0 × ホットパス以外の実行命令数 検 索 ホットパスヘッド テーブル パ ス の 先 頭 ア ド レ ス ヒットしなかった 場合従来の分岐 予測器を使用 E0 PC phase2 比較 ホットパス テーブル 分岐命令 分岐先 アドレス アドレス E2 順 番 に 取 り ルックアップテーブル 出 す E3 41 ホットパス検出・登録 • ホットパス検出法 – オンライン・プロファイリング • プログラム実行中にホットパスを推定する • ホットパス推定用のエネルギーがかかる • 正しいホットパスを検出できるかわからない – 実行トレースの解析 • プログラムを一度実行し、そのトレース情報から ホットパスを検出する • ホットパスを検出した入力と異なった入力がきたときに ホットパスが誤っている可能性がある 42
© Copyright 2024 ExpyDoc