キャッシュ・リーク電力削減 アルゴリズムに関する定量的評価 福岡大学 ●小宮礼子 井上弘士 モシニャガ・ワシリー 九州大学 村上和彰 2004/04/26 1 発表手順 はじめに キャッシュ・リーク削減手法 切り替えアルゴリズムとその分類 比較対象モデルの決定 評価 おわりに 2004/04/26 2 はじめに プロセッサの消費電力 =リーク消費電力+動的消費電力 ARM-110 70% プロセッサ中のリーク電力の割合* Power: 43 % キャッシュ・メモリのリーク消費電力削減が必要!! * Fred Pollack (Intel Fellow): New Microarchitecture Challenges in the Coming Generations of CMOS Process Technologies [Micro32] 2004/04/26 3 キャッシュ・リーク削減手法 リーク削減方式 sleepモード (低リーク・低速) 従来方式 awakeモード (高速・高リーク) 共通点 ある粒度単位でsleepモードとawakeモードを用意 sleepモード領域が増加→リーク削減 sleepモードへのアクセス→ペナルティによる性能低下 使用されない領域のみsleepモードへ変更 2004/04/26 4 相違点 各モードを適用する範囲 → 粒度 sleepモード時のデータ取り扱い → データ モード切替えのタイミング → アルゴリズム <粒度> ライン セット ウェイ キャッシュ全体 <データ> 破壊 非破壊 2004/04/26 複雑 小 制御 リーク 簡単 大 リーク0 ,ミス数増加 リーク極少,ミス数変化なし 5 既存手法 DRI Decay Drowsy Hierarchy 粒度 set line 全体 データ移動部分 データ 破壊 破壊 保存 保存 (sleepへの) アルゴリズム キャッシュ 全体のミス数 ≦閾値 非アクセス サイクル数 ≧閾値 定期的 データをLoad (awakeへの) アルゴリズム キャッシュ 全体のミス数 ≧閾値 ミス発生 アクセス発生 データをStore 相違点 2004/04/26 6 研究目的 問題点 大域的な整理なし 各手法の相互評価なし 研究目的: リーク削減アルゴリズムの分類と 定量的評価 2004/04/26 研究手段 リーク削減手法の大域的分類 各手法の定量的評価 粒度はライン単位, データ保持状態は非破壊型に固定 7 リーク削減アルゴリズム • Sleep切替アルゴリズム – 対象ラインの状態を「低リーク/低速モード」へ変更 – 将来、参照されないであろうラインを検出 • Awake切替アルゴリズム – 対象ラインの状態を「高リーク/高速モード」へ変更 – 近い将来、参照されるであろうラインを検出 リーク消費エネルギーと性能オーバヘッドに影響 2004/04/26 8 切り替えアルゴリズムの分類 Sleepモードへの切替えアルゴリズム 切替えタイミング 切替え条件 条件無し 判定期間 (実行時間≧閾値)③ カウンタ値≦閾値 カウンタ型 (ミス数①、アクセス数) (種類) 条件付き カウンタ値≧閾値 判定時期 Time-Window③ 同期③ Time-Window① 同期① Time-Window 同期または非同期 (ヒット数、非アクセス時間②) No-Time-Window② 非同期② イベント型 Load命令発行④ ①DRI ②Decay T 2004/04/26 No-Time-Window④ イベント発生時④ ③Drowsy ④Hierarchy 非同期 同期 t Time-Window No-Time-Window 9 切替えタイミング <TW同期型> T <TW非同期型> 利点 判定回数が少ない t モード切替え 判定期間 欠点 モード切替えまでに 時間のロス 判定時期 t モード切替え 判定期間 T <NTW非同期型> <NTWイベント型> T:Time-Window 判定時期 条件成立 利点 モード切替えが早い 欠点 常に判定が必要 判定時期 t モード切替え 判定期間 利点 モード切替えが早い 判定時期 t モード切替え 判定期間 イベント発生 利点 モード切替えが早い 欠点 実現不可能なアル ゴリズムがある 欠点 条件がイベント型の 時のみ使用 10 Awakeモードへの切替えアルゴリズム 切替えタイミング 切替え条件 条件無し 判定期間 Time-Window (実行時間≧閾値) カウンタ値≦閾値 条件付き Time-Window (ヒット数、非アクセス時間) カウンタ型 (種類) カウンタ値≧閾値 Time-Window① イベント型 同期 同期 同期①または非同期 (ミス数①、アクセス数) No-Time-Window 非同期 Store命令発行④ No-Time-Window イベント発生時 ②③④ ②③④ Load/Store命令発行②③ ①DRI 2004/04/26 判定時期 ②Decay ③Drowsy ④Hierarchy 11 比較対象モデルの決定 (sleep-awake) モデル名 L-S L-LS NAC-S NAC-LS Non-S Non-LS 切替え条件 イベント (Load) イベント (Load) カウント (非アクセス サイクル) カウント (非アクセス サイクル) 無条件 無条件 閾値 - - 4Kcycle 4Kcycle 4Kcycle 4Kcycle 判定期間 NTW NTW NTW NTW TW TW 判定時期 イベント 発生時 イベント 発生時 非同期 非同期 同期 同期 切替え条件 イベント (Store) イベント (Load/Store) イベント (Store) イベント (Load/Store) イベント (Store) イベント (Load/Store) 判定期間 NTW NTW NTW NTW NTW NTW 判定時期 イベント 発生時 イベント 発生時 イベント 発生時 イベント 発生時 イベント 発生時 イベント 発生時 Hierarchy ---- ---- Decay ---- Drowsy アルゴリズム awake →sleep sleep →awake リーク削減手法 2004/04/26 12 比較対象モデルの決定 (sleep-awake) モデル名 L-S L-LS NAC-S NAC-LS Non-S Non-LS 切替え条件 イベント (Load) イベント (Load) カウント (非アクセス サイクル) カウント (非アクセス サイクル) 無条件 無条件 閾値 - - 4Kcycle 4Kcycle 4Kcycle 4Kcycle 判定期間 NTW NTW NTW NTW TW TW 判定時期 イベント 発生時 イベント 発生時 非同期 非同期 同期 同期 切替え条件 イベント (Store) イベント (Load/Store) イベント (Store) イベント (Load/Store) イベント (Store) イベント (Load/Store) 判定期間 NTW NTW NTW NTW NTW NTW 判定時期 イベント 発生時 イベント 発生時 イベント 発生時 イベント 発生時 イベント 発生時 イベント 発生時 Hierarchy ---- ---- Decay ---- Drowsy アルゴリズム awake →sleep sleep →awake リーク削減手法 2004/04/26 13 比較対象モデルの決定 (sleep-awake) モデル名 L-S L-LS NAC-S NAC-LS Non-S Non-LS 切替え条件 イベント (Load) イベント (Load) カウント (非アクセス サイクル) カウント (非アクセス サイクル) 無条件 無条件 閾値 - - 4Kcycle 4Kcycle 4Kcycle 4Kcycle 判定期間 NTW NTW NTW NTW TW TW 判定時期 イベント 発生時 イベント 発生時 非同期 非同期 同期 同期 切替え条件 イベント (Store) イベント (Load/Store) イベント (Store) イベント (Load/Store) イベント (Store) イベント (Load/Store) 判定期間 NTW NTW NTW NTW NTW NTW 判定時期 イベント 発生時 イベント 発生時 イベント 発生時 イベント 発生時 イベント 発生時 イベント 発生時 Hierarchy ---- ---- Decay ---- Drowsy アルゴリズム awake →sleep sleep →awake リーク削減手法 2004/04/26 14 比較対象モデルの決定 (sleep-awake) モデル名 L-S L-LS NAC-S NAC-LS Non-S Non-LS 切替え条件 イベント (Load) イベント (Load) カウント (非アクセス サイクル) カウント (非アクセス サイクル) 無条件 無条件 閾値 - - 4Kcycle 4Kcycle 4Kcycle 4Kcycle 判定期間 NTW NTW NTW NTW TW TW 判定時期 イベント 発生時 イベント 発生時 非同期 非同期 同期 同期 切替え条件 イベント (Store) イベント (Load/Store) イベント (Store) イベント (Load/Store) イベント (Store) イベント (Load/Store) 判定期間 NTW NTW NTW NTW NTW NTW 判定時期 イベント 発生時 イベント 発生時 イベント 発生時 イベント 発生時 イベント 発生時 イベント 発生時 Hierarchy ---- ---- Decay ---- Drowsy アルゴリズム awake →sleep sleep →awake リーク削減手法 2004/04/26 15 比較対象モデルの決定 (sleep-awake) モデル名 L-S L-LS NAC-S NAC-LS Non-S Non-LS 切替え条件 イベント (Load) イベント (Load) カウント (非アクセス サイクル) カウント (非アクセス サイクル) 無条件 無条件 閾値 - - 4Kcycle 4Kcycle 4Kcycle 4Kcycle 判定期間 NTW NTW NTW NTW TW TW 判定時期 イベント 発生時 イベント 発生時 非同期 非同期 同期 同期 切替え条件 イベント (Store) イベント (Load/Store) イベント (Store) イベント (Load/Store) イベント (Store) イベント (Load/Store) 判定期間 NTW NTW NTW NTW NTW NTW 判定時期 イベント 発生時 イベント 発生時 イベント 発生時 イベント 発生時 イベント 発生時 イベント 発生時 Hierarchy ---- ---- Decay ---- Drowsy アルゴリズム awake →sleep sleep →awake リーク削減手法 2004/04/26 16 比較対象モデルの決定 (sleep-awake) モデル名 L-S L-LS NAC-S NAC-LS Non-S Non-LS 切替え条件 イベント (Load) イベント (Load) カウント (非アクセス サイクル) カウント (非アクセス サイクル) 無条件 無条件 閾値 - - 4Kcycle 4Kcycle 4Kcycle 4Kcycle 判定期間 NTW NTW NTW NTW TW TW 判定時期 イベント 発生時 イベント 発生時 非同期 非同期 同期 同期 切替え条件 イベント (Store) イベント (Load/Store) イベント (Store) イベント (Load/Store) イベント (Store) イベント (Load/Store) 判定期間 NTW NTW NTW NTW NTW NTW 判定時期 イベント 発生時 イベント 発生時 イベント 発生時 イベント 発生時 イベント 発生時 イベント 発生時 Hierarchy ---- ---- Decay ---- Drowsy アルゴリズム awake →sleep sleep →awake リーク削減手法 2004/04/26 17 評価 ベンチマーク プログラム ZonC 入力 SPARCシミュレータ 抽出 ベンチマーク:SPEC2000 (int 12個,float 14個) SPARCプロセッサ (アウト・オブ・オーダ実行) 128KB,連想度2 ,データL1キャッシュ アドレス トレース 実行サイクル トレース 入力 出力 リーク削減率 2004/04/26 実行時間 増加率 キャッシュ・シミュレータ 性能・リーク消費エネルギーの測定 sleepラインへのアクセス・ペナルティ (SHP = Sleep Hit Penalty) →1~3cycle sleep/awakeモードでの リーク消費エネルギー →0.08 : 1 K.Flautner, “Drowsy Caches: Simple Techniques for Reducing Leakage Power, Proc. of the 29th Int, Symp. on Computer Architecture, pp.148-157, May 2002. 18 消費エネルギー・モデル LEtotal = CSize × CC × LEbit キャッシュ・サイズ(128K) プログラム実行時間:CC = CCconv + CCextra 削減方法なし 増加実行時間 サイクル当たりのSRAMセルリーク消費エネルギー: LEbit = SR × LEsbit + (1-SR) × LEabit 1bit-sleep-SRAMセル平均リーク消費エネルギー →0.08LEabit キャッシュ内のsleepモード部分の割合 2004/04/26 19 100 90 -20 -30 2004/04/26 SHP=1 2 3 80 80 70 70 60 60 50 50 40 40 30 30 20 20 10 10 0 0 実行時間増加率(%) -10 i164.gzip i175.vpr i176.gcc i181.mcf i186.crafty i197.parser i252.eon i253.perlbmk i254.gap i255.vortex i256.bzip2 i300.twolf f168.wupwise f171.swim f172.mgrid f173.applu f177.mesa f178.galgel f179.art f183.equake f187.facerec f188.ammp f189.lucas f191.fma3d f200.sixtrack f301.apsi 平均削減率 リーク消費エネルギー削減率(%) SHPがリーク消費エネルギー削減率に 与える影響(L-S) 100 90 -10 -20 -30 20 消費エネルギー・モデル LEtotal = CSize × CC × LEbit キャッシュ・サイズ(128K) SHPにより増加!! プログラム実行時間:CC = CCconv + CCextra 削減方法なし 増加実行時間 サイクル当たりのSRAMセルリーク消費エネルギー: LEbit = SR × LEsbit + (1-SR) × LEabit 1bit-sleep-SRAMセル平均リーク消費エネルギー →0.08LEabit キャッシュ内のsleepモード部分の割合 2004/04/26 21 リーク消費エネルギー削減率(%) 100 90 -20 -30 -50 141 SHP=1 -69 2 3 80 80 70 70 60 60 50 50 40 40 30 30 20 20 10 10 0 0 -40 -78 実行時間増加率(%) 2004/04/26 -10 i164.gzip i175.vpr i176.gcc i181.mcf i186.crafty i197.parser i252.eon i253.perlbmk i254.gap i255.vortex i256.bzip2 i300.twolf f168.wupwise f171.swim f172.mgrid f173.applu f177.mesa f178.galgel f179.art f183.equake f187.facerec f188.ammp f189.lucas f191.fma3d f200.sixtrack f301.apsi 平均削減率 SHPが実行時間増加率に与える影響 (L-S) 100 90 -10 -20 -30 -40 -50 22 モード切替えアルゴリズムの比較 100 SHP=2 SHP=3 90 80 80 70 70 60 60 50 50 40 40 30 30 20 20 10 10 0 0 -10 -20 2004/04/26 SHP=1 L-S 実行時間増加率(%) リーク消費エネルギー削減率(%) 90 100 -10 NAC-S Non-S L-LS NAC-LS Non-LS-20 23 おわりに まとめ モード切替えアルゴリズムの分類 比較評価 sleepアクセス・ペナルティの影響 →リーク削減率・実行時間へ悪影響を与える 各アルゴリズム比較 →sleep : 無条件, awake : Load/Store命令発行 今後の課題 未評価アルゴリズム・粒度・データの評価 実行時間増加による性能低下を抑える 制御回路を含めた評価 マルチスレッド環境下での評価 2004/04/26 24 2004/04/26 25 ZonCプロセッサ・モデル SPARC64プロセッサ トレースドリブン Out-of-order実行方式 ノード数 1 CPU数 1 コア数 1 CPUのクロック周波数 ウォームアップ命令数 測定対象命令数 2004/04/26 1250MHz 3,000,000 6,000,000 26 sleepラインの割合(L-S) 80 70 60 Sleep line (%) 50 40 30 20 10 0 1 22 43 64 85 106 127 148 169 190 211 232 253 274 295 316 337 358 379 400 421 442 463 484 505 キャッシュアクセス(*10000回) 2004/04/26 i164-gzip-0025 i175-vpr-0033 i176-gcc-0053 i181-mcf-0239 i186-crafty-0042 i197-parser-0114 i252-eon-0162 i253-perlbmk-0087 i254-gap-0136 i255-vortex-0062 i256-bzip2-0097 i300-twolf-0042 f168-wupwise-0007 f171-swim-0096 f172-mgrid-0103 f173-applu-0001 f177-mesa-0173 f178-galgel-0039 f179-art-0090 f183-equake-0054 f187-facerec-0034 f188-ammp-0182 f189-lucas-0466 f191-fma3d-0141 f200-sixtrack-0090 f301-apsi-0167 27 sleepラインの割合(L-LS) 50 45 40 Sleep line (%) 35 30 25 20 15 10 5 0 1 22 43 64 85 106 127 148 169 190 211 232 253 274 295 316 337 358 379 400 421 442 463 484 505 キャッシュアクセス(*10000回) 2004/04/26 i164-gzip-0025 i175-vpr-0033 i176-gcc-0053 i181-mcf-0239 i186-crafty-0042 i197-parser-0114 i252-eon-0162 i253-perlbmk-0087 i254-gap-0136 i255-vortex-0062 i256-bzip2-0097 i300-twolf-0042 f168-wupwise-0007 f171-swim-0096 f172-mgrid-0103 f173-applu-0001 f177-mesa-0173 f178-galgel-0039 f179-art-0090 f183-equake-0054 f187-facerec-0034 f188-ammp-0182 f189-lucas-0466 f191-fma3d-0141 f200-sixtrack-0090 f301-apsi-0167 28 sleepラインの割合(NAC-S) 120 100 Sleep line (%) 80 60 40 20 0 1 23 45 67 89 111 133 155 177 199 221 243 265 287 309 331 353 375 397 419 441 463 485 507 キャッシュアクセス(*10000回) 2004/04/26 i164-gzip-0025 i175-vpr-0033 i176-gcc-0053 i181-mcf-0239 i186-crafty-0042 i197-parser-0114 i252-eon-0162 i253-perlbmk-0087 i254-gap-0136 i255-vortex-0062 i256-bzip2-0097 i300-twolf-0042 f168-wupwise-0007 f171-swim-0096 f172-mgrid-0103 f173-applu-0001 f177-mesa-0173 f178-galgel-0039 f179-art-0090 f183-equake-0054 f187-facerec-0034 f188-ammp-0182 f189-lucas-0466 f191-fma3d-0141 f200-sixtrack-0090 f301-apsi-0167 29 sleepラインの割合(NAC-LS) 120 100 Sleep line (%) 80 60 40 20 0 1 23 45 67 89 111 133 155 177 199 221 243 265 287 309 331 353 375 397 419 441 463 485 507 キャッシュアクセス(*10000回) 2004/04/26 i164-gzip-0025 i175-vpr-0033 i176-gcc-0053 i181-mcf-0239 i186-crafty-0042 i197-parser-0114 i252-eon-0162 i253-perlbmk-0087 i254-gap-0136 i255-vortex-0062 i256-bzip2-0097 i300-twolf-0042 f168-wupwise-0007 f171-swim-0096 f172-mgrid-0103 f173-applu-0001 f177-mesa-0173 f178-galgel-0039 f179-art-0090 f183-equake-0054 f187-facerec-0034 f188-ammp-0182 f189-lucas-0466 f191-fma3d-0141 f200-sixtrack-0090 f301-apsi-0167 30 sleepラインの割合(Non-S) 120 100 Sleep line (%) 80 60 40 20 0 1 23 45 67 89 111 133 155 177 199 221 243 265 287 309 331 353 375 397 419 441 463 485 507 キャッシュアクセス(*10000回) 2004/04/26 i164-gzip-0025 i175-vpr-0033 i176-gcc-0053 i181-mcf-0239 i186-crafty-0042 i197-parser-0114 i252-eon-0162 i253-perlbmk-0087 i254-gap-0136 i255-vortex-0062 i256-bzip2-0097 i300-twolf-0042 f168-wupwise-0007 f171-swim-0096 f172-mgrid-0103 f173-applu-0001 f177-mesa-0173 f178-galgel-0039 f179-art-0090 f183-equake-0054 f187-facerec-0034 f188-ammp-0182 f189-lucas-0466 f191-fma3d-0141 f200-sixtrack-0090 f301-apsi-0167 31 sleepラインの割合(Non-LS) 120 100 Sleep line (%) 80 60 40 20 0 1 23 45 67 89 111 133 155 177 199 221 243 265 287 309 331 353 375 397 419 441 463 485 507 キャッシュアクセス(*10000回) 2004/04/26 i164-gzip-0025 i175-vpr-0033 i176-gcc-0053 i181-mcf-0239 i186-crafty-0042 i197-parser-0114 i252-eon-0162 i253-perlbmk-0087 i254-gap-0136 i255-vortex-0062 i256-bzip2-0097 i300-twolf-0042 f168-wupwise-0007 f171-swim-0096 f172-mgrid-0103 f173-applu-0001 f177-mesa-0173 f178-galgel-0039 f179-art-0090 f183-equake-0054 f187-facerec-0034 f188-ammp-0182 f189-lucas-0466 f191-fma3d-0141 f200-sixtrack-0090 f301-apsi-0167 32
© Copyright 2025 ExpyDoc