250 likes | 987 Views
冗長入力を持つパーセプトロン分岐予測器に関する研究. 2006 年 2 月 10 日 阿部研究室 澁川 誠. はじめに. パーセプトロンによる分岐予測法が注目されている 従来の 2 ビット飽和型カウンタによる手法より 予測精度が良い Championship Branch Prediction ( Intel . Symposium on Microarchitecture, 2004) で パーセプトロンを用いた分岐予測器が優勝. パーセプトロン分岐予測器の問題点. パーセプトロン分岐予測器の問題点 プロセッサへの実装が困難
E N D
冗長入力を持つパーセプトロン分岐予測器に関する研究冗長入力を持つパーセプトロン分岐予測器に関する研究 2006年2月10日 阿部研究室 澁川 誠
はじめに • パーセプトロンによる分岐予測法が注目されている • 従来の2ビット飽和型カウンタによる手法より予測精度が良い • Championship Branch Prediction (Intel. Symposium on Microarchitecture,2004)でパーセプトロンを用いた分岐予測器が優勝
パーセプトロン分岐予測器の問題点 • パーセプトロン分岐予測器の問題点 • プロセッサへの実装が困難 • 予測演算に必要な加算のレイテンシが大きい • 予測処理をパイプライン化する手法が提案されている • 予測できないパターンの存在 • 分岐のパターンが線形分離不可能なものは予測できない • 冗長入力の付加による解決法(MAC-RHSP)が提案されているが研究が十分とはいえない
目的 • 冗長入力の付加による効果の調査 • 予測精度の向上に最適な冗長入力の調査 • 予測処理をパイプライン化した手法(PTBP) に 冗長入力を適用し予測精度を比較評価する
分岐予測 • プロセッサにおける分岐遅延を解消する手法 • 分岐結果を得る前に結果を予測して処理を進める • 過去の分岐の振舞いなどから分岐結果を動的に予測 履歴情報 分岐予測器 グローバル分岐履歴: ・プログラム実行の流れにおける 過去h 回分の分岐の振る舞い ・GHRに保持 ローカル分岐履歴: ・一つの分岐命令の過去n 回分の分岐の振る舞い ・LHRに保持 実行パス履歴: ・これまでたどってきた過去h 個の分岐命令のアドレス ・AHRに保持 パターン履歴表 2ビット飽和型カウンタや 重みベクトルなどの保持 予測演算装置 パターン判別器や 総和演算器など 予測結果 更新処理 分岐結果
パーセプトロン • ニューロンモデルによる学習パターン識別器 • 重みつきの入力の総和が閾値 を越えると1を出力,閾値 未満なら0を出力 • 重みの更新によるパターン学習 inputs X0 X1 X2 X3 weights W1 W2 W0 W3 Y output
パーセプトロン分岐予測器 • 入力は過去h 個の分岐結果(Global History) • 分岐成立 ⇒ 1 • 分岐不成立 ⇒ 0 • 分岐命令ごとに重みを用意 • 重みつきの入力の総和が0以上なら分岐成立と予測,0未満なら分岐不成立と予測 • 実際の分岐結果に基づいて重みを更新 new old Global History Register(GHR) 1 1 0 0 ・・・・・・ 1 Branch Address Weight Vector Table PC Weight Vector 5 -11 -4 8 ・・・・・・ 2 5 -11 4 -8 2 Prediction
冗長入力の付加 • 冗長入力による効果 • 線形分離不可能なパターンの学習 • MAC-RHSPにおける冗長入力 • 分岐履歴の相関 • 区切られた4ビットのうち組み合わせられ得る全てのパターンについて排他的論理和を求めたもの GHR(h bit) new old I0 I1 I2 I3 I0 I1 I2 I3 I0 I1 I2 I3 ... ... H0 H1 Hh /4 ひとつのブロック(Hi)から生成される冗長入力 I0I1, I0I2, I0I3, I1I2, I1I3, I2I3, I0I1I2, I0I1I3, I0I2I3, I1I2I3, I0I1I2I3
予測演算のパイプライン化 • 加算処理による遅延の対策 • h 回前の分岐命令から予測を開始 • 各表から重みを一つだけ取り出し,途中結果に加算 • n回前の分岐命令のアドレスはAHR[n],分岐結果はGHR[n] Table h Table h -1 Table h -2 Table 1 Table 0 ... AHR[0] AHR[0] AHR[0] AHR[0] AHR[0] GHR[0] GHR[0] GHR[0] GHR[0] Prediction + + + +
冗長入力による効果の調査 • 冗長入力の生成方法 • 着目するパラメータ • 冗長入力の生成に使用する分岐履歴の長さ”m ” • 履歴どうしの相関を形成する範囲”l” GHR new h bit old m bit l bit 冗長入力の生成 I0 I1 I2 I3 I0 I1 I2 I3 I0 I1 I2 I3 H0 H1 H2
評価手順と環境 • 様々な冗長入力による予測精度への影響の調査 • 冗長入力を付加したパーセプトロン分岐予測器について m,l を変更して予測精度を測定 • 使用する記憶容量を制限して予測精度を測定 • 実験環境 • プロセッサシミュレータSimAlphaに各予測機構を実装し予測精度を測定 • ベンチマークプログラムにSPEC Cint2000を使用
冗長入力を付加した場合: 測定方法 • 予測器のパラメータ • 分岐履歴長h: 64 • 冗長入力生成に使用する部分履歴長 m :16, 32, 48, 64 • 履歴の相関を形成する範囲 l :3, 4, 5
冗長入力を付加した場合: 測定結果 • m,l共に値が大きいほど予測精度が優れる • 冗長なしの平均予測ミス率は3.28% • m=64,l =5の場合の平均予測ミス率は2.79% ⇒冗長なしの場合の 平均予測ミス率の 約15%が予測可能に
記憶容量を制限した場合: 測定方法 • 使用できる記憶容量を64KBに制限して測定 • 履歴の相関を形成する範囲 l に着目 分岐履歴長を64に固定した場合のパラメータ 入力数を128に固定した場合のパラメータ 入力数 入力数 分岐履歴用の重み 冗長入力用の重み エントリ数 重み表(64KB) エントリ数 lの増加による変化 lの増加による変化
記憶容量を制限した場合: 測定結果 • 使用する履歴数を64に固定した場合 • 冗長なしで3.68% • l=6で最小の3.34% ⇒ミス率を9.2%低減 • 使用する入力数を128に固定した場合 • 冗長なしで4.05% • l=4で最小の3.37% ⇒ミス率を16.8%低減
記憶容量を制限した場合: 考察 • 履歴長を64に固定した場合 • l =6までは入力数の増加により予測精度が向上 • l =7ではエントリ競合の影響が強く予測精度が悪化 • 入力数を128に固定した場合 • l =4までは履歴の相関の効果により予測精度が向上 • l =5以上では分岐履歴数が足りずに予測精度が悪化
PTBPへの履歴の相関の適用 Table h Table h -1 Table 1 • PTBP:複数パイプラインによりインデクスに経路を使用 • 提案手法 • PTBPの特性を保持するため分岐履歴の相関を入力に置き換える • 重み検索に用いた分岐アドレスに対応する分岐履歴の相関を入力とする ... AHR[0] AHR[0] AHR[0] Table 0 AHR[0] GHR[0] GHR[0] GHR[0] + + Prediction + + + + GHR[0] GHR[h] GHR[h] GHR[h] GHR[0] GHR[h] GHR[0] GHR[h] GHR[h] n 本目のパイプライン上の重み表のインデクス: AHR[0]AHR[h]AHR[2h] ・・・ AHR[(n - 1)h] n本目のパイプライン上の重みに対応する入力: GHR[n - 1] AHR[0] AHR[0] AHR[0] ... AHR[h] AHR[h] AHR[h] GHR[0]GHR[h]GHR[2h] ・・・ GHR[(n – 1)h] Table 2h Table 2h -1 Table h +1
提案手法の予測精度: 測定方法 • 記憶容量ごとに測定 • 比較対象の分岐予測器 • パーセプトロン分岐予測器 • 冗長入力を付加したパーセプトロン分岐予測器(l =4) • Piecewise Linear分岐予測器(パイプライン化/非パイプライン化) • PTBP(パイプライン化/非パイプライン化)
提案手法の予測精度: 測定結果 • 提案手法の256KBの予測ミス率:2.69% ⇒PTBPのミス率を1.1%低減
おわりに • まとめ • 冗長入力の付加による効果 • 冗長の生成に使用する履歴が長いほうが予測精度の向上効果が大きい • 履歴の相関を形成する範囲は以下の場合に最適 • 分岐履歴数が64の場合には6 • 入力数が128の場合には4 • 分岐履歴の相関をPTBPに適用する効果 • 予測ミス率がおよそ1.1%減少する • 課題 • スーパースカラプロセッサにおける予測精度の測定 • IPCの向上率による評価