330 likes | 415 Views
Look-Ahead ルーティングを用いた. オンチップルータの動的パワーシャットダウン. 松谷 宏紀 ( 慶大 ) 鯉渕 道紘 ( NII ) 王 代涵 ( 慶大 ) 天野 英晴 ( 慶大 ). Dynamic. Leakage (81.1%). 例 ) オンチップルータのスタンバイ電力. 200MHz 動作時 , 90nm CMOS. Vdd. 電源スイッチ. 仮想 Vdd. 回路. GND. はじめに. リーク電力の増加 スタンバイ電力の大部分 今後も増加傾向 パワーゲーティング リーク電力の削減方法
E N D
Look-Ahead ルーティングを用いた オンチップルータの動的パワーシャットダウン 松谷 宏紀 (慶大) 鯉渕 道紘 (NII) 王 代涵 (慶大) 天野 英晴 (慶大)
Dynamic Leakage (81.1%) 例) オンチップルータのスタンバイ電力 200MHz 動作時, 90nm CMOS Vdd 電源スイッチ 仮想 Vdd 回路 GND はじめに • リーク電力の増加 • スタンバイ電力の大部分 • 今後も増加傾向 • パワーゲーティング • リーク電力の削減方法 • 回路への電力供給を遮断 • パワーゲーティングの例 • コアレベル • 演算器レベル • ゲートレベル [Ishikawa,IEICE’05] [Hu,ISLPED’04] [Usami,ICCD’06] 本発表では,マルチコアSoCの通信機構のパワーゲーティングに着目
本発表の流れ • マルチコア SoC の通信機構 • Network-on-Chip (NoC) • オンチップルータの構造 • ルータの消費電力 • ルータのパワーゲーティング • パワーゲーティングの影響 • Look-Aheadによるスリープ制御 • 評価 • 性能への影響 • どれだけスリープできるか? • どれだけ消費電力が減るか? 本発表のために、新たに追加いたしました。
Network-on-Chip (NoC) • プロセッサコア • オンチップルータ プロセッサコア ルータ ルータ間はネットワークで接続, コア間通信はパケット転送 (*) ASPLA 90nm CMOS 使用
Stop!! Network-on-Chip (NoC) • プロセッサコア • コア単位でスリープ可 • 面積は大きいが, 省電力対策も進んでる • オンチップルータ • 面積は小さい • 通信の基幹部なので • msec のウェイクアップ時間は許容しにくい D 例) スタンバイ電流 11uA [Ishikawa,IEICE’05] S ルータを止めると不規則トポロジになったり, 通信に影響が出る (*) ASPLA 90nm CMOS 使用 次スライドでは,オンチップルータの構造, 消費電力について検討する
オンチップルータ: ハードウェア構成 • 5入力5出力のルータ, データ(フリット)幅 64-bit 入力バッファ 2系統 (各系統は64-bit x 4) ARBITER X+ X+ FIFO X- X- FIFO Y+ Y+ FIFO Y- Y- FIFO 5x5 XBAR CORE CORE FIFO 配置配線後の面積は 40~45 [KGate] 程度. 全体の75% が FIFO
オンチップルータ: パイプライン構造 • 衝突しなければ 3 cycle でヘッダがルータを通過 • RC (Routing Computation) • SA (Switch Allocation) • ST (Switch Traversal) • 例) ルータ(a) からルータ(c) にパケットを転送 1パケットは, ヘッダフリット1個とデータフリット3個 @ROUTER B @ROUTER C @ROUTER A RC SA ST RC SA ST RC SA ST HEAD DATA 1 ST ST ST DATA 2 ST ST ST ST ST ST DATA 3 1 2 3 4 5 6 7 8 9 10 11 12 ELAPSED TIME [CYCLE]
5ポートルータで, n個のポートが使われているときの消費電力 @ 200MHz オンチップルータ: 消費電力の解析 • 90nmで配置配線, 200 & 500MHz でシミュレーション
Dynamic Leakage (81.1%) Channels (56.5%) オンチップルータのスタンバイ電力 オンチップルータ: 消費電力の解析 • 90nmで配置配線, 200 & 500MHz でシミュレーション 5ポートルータで, 0個のポートが使われているときの消費電力 @ 200MHz チャネルのリーク電力がスタンバイ電力の大部分 ここを削減する!
本発表の流れ • マルチコア SoC の通信機構 • Network-on-Chip (NoC) • オンチップルータの構造 • ルータの消費電力 • ルータのパワーゲーティング • パワーゲーティングの影響 • Look-Aheadによるスリープ制御 • 評価 • 性能への影響 • どれだけスリープできるか? • どれだけ消費電力が減るか?
FIFO オンチップルータ: チャネルのリーク削減 • チャネル単位の走行時パワーゲーティング • パケットが無ければ スリープ • パケットが来たら ウェイクアップ ARBITER X+ X+ FIFO X- X- FIFO Y+ Y+ FIFO Y- Y- FIFO 5x5 XBAR CORE CORE FIFO
FIFO FIFO チャネル単位のパワーゲーティングは提案されているが, 比較的大きなバッファ(数十フリット)を想定 本発表では, 小規模な4フリット程度の小さなバッファを想定する [Chen,ISLPED’03] [Soteriou,ICCD’04] オンチップルータ: チャネルのリーク削減 • チャネル単位の走行時パワーゲーティング • パケットが無ければ スリープ • パケットが来たら ウェイクアップ ARBITER X+ X+ FIFO X- X- FIFO Y+ Y+ FIFO Y- Y- FIFO 5x5 XBAR CORE CORE FIFO
アクティブ FIFO パワーゲーティング: 様々なオーバヘッド • 面積オーバヘッド • パワースイッチ • 性能オーバヘッド • Wakeup 時間が大きいと, • パイプラインストール発生 • 電力オーバヘッド • パワースイッチの操作 • スリープ期間が短いと, • 逆に消費電力が増える スリープ中 [関ら, ICD/ARC研’07] FIFO ウェイクアップするまで待たされる パケット到着を早期に検出したい 短いスリープを検出して回避したい
パワースイッチ Vdd アクティブ sleep 仮想 Vdd 回路 GND FIFO パワーゲーティング: 様々なオーバヘッド • 面積オーバヘッド • パワースイッチ • 性能オーバヘッド • Wakeup 時間が大きいと, • パイプラインストール発生 • 電力オーバヘッド • パワースイッチの操作 • スリープ期間が短いと, • 逆に消費電力が増える スリープ中 [関ら, ICD/ARC研’07] FIFO ウェイクアップするまで待たされる パケット到着を早期に検出したい On/Off時に動的電力を消費 (これがリーク削減効果より大きいと損) 短いスリープを検出して回避したい チャネルへのパケットの到達を早期に知らせるスリープ制御が有効
パケット到達まで最低 5 cycle 稼げる RC SA ST RC SA ST RC ST ST ST ST 1 2 3 4 5 6 7 Look-Ahead スリープ制御 • 要求事項 • ウェイクアップ遅延 Twakeup を隠蔽 • 短期間のスリープを回避 • 解決策: Look-ahead • Normal:ルータ(i) は, ルータ(i)の出力ポートを計算 • Look-ahead:ルータ(i) は, ルータ(i+1) の出力ポートを計算 Twakeup = 1~3 cycle Normal: パケットが router 5 を通過した時点で router 2 が使われることが判明 0 1 2 3 4 5 “2ホップ後にパケットが来るので起きろ” Look-Ahead: 6 7 8 “このスリープは短いので寝ないで待て” パケットが router 4 に到達した時点で router 2 が使われることが判明 5 cycle以下の Wakeup 遅延を隠蔽, 5 cycle以下のスリープを回避
本発表の流れ • マルチコア SoC の通信機構 • Network-on-Chip (NoC) • オンチップルータの構造 • ルータの消費電力 • ルータのパワーゲーティング • パワーゲーティングの影響 • Look-Aheadによるスリープ制御 • 評価 • 性能への影響 • どれだけスリープできるか? • どれだけ消費電力が減るか?
評価内容 スループット vs. 遅延 スリープ率, リーク削減量 評価パラメータ Ideal スリープ, ウェイクアップ遅延無し Look-ahead 5サイクル以下のウェイクアップ遅延を隠蔽 5サイクル以下の短期間スリープを回避 Naïve いっさい先読みをしない 評価: 3種類のスリープ制御を比較 (※)通信パターンには uniform トラフィックと NPB を使用
評価: 通信スループットへの影響 • ウェイクアップ時間 Twakeup = 0,1,2,3 のときの性能 • Naïve: • ウェイクアップ時間 Twakeup = 0,1,2,3 のときの性能 • Naïve:Twakeupが増えるにしたがい性能低下 MG.W トラフィック (16コア) Uniform トラフィック (16コア)
評価: 通信スループットへの影響 • ウェイクアップ時間 Twakeup = 0,1,2,3 のときの性能 • Naïve:Twakeupが増えるにしたがい性能低下 • Ideal:Twakeupによらず常に • Look-ahead: Twakeup < 5 なら常に MG.W トラフィック (16コア) Uniform トラフィック (16コア) Look-ahead によって,5サイクル以下のウェイクアップ遅延を隠蔽可
ルータ回路を 90nm CMOS で配置配線, シミュレーションして算出 評価: 損益分岐点の見積り • Hu のパワーゲーティングモデル • Eoverhead:パワースイッチのOn/Off に要すエネルギー • Esaved: N-cycle のスリープによって削減できるリーク [Hu,ISLPED’04] 何サイクルスリープできれば, Eoverheadと Esavedが等しくなる? ルータチャネル単位のパワーゲーティング [Hu,ISLPED’04] [Hu,ISLPED’04]
評価: 損益分岐点 Tbreakeven の見積り • Hu のパワーゲーティングモデル • Eoverhead:パワースイッチのOn/Off に要すエネルギー • Esaved: N-cycle のスリープによって削減できるリーク [Hu,ISLPED’04] 何サイクルスリープできれば, Eoverheadと Esavedが等しくなる? 200MHz 動作時, 損益分岐点は 6 [cycle] 500MHz 動作時, 損益分岐点は 14 [cycle] パワーゲーティング(PG)無し PG (ルータ 200MHz 動作) PG (ルータ 500MHz 動作)
評価: 実際にスリープできる期間 (200MHz) • チャネルの状態を分類 Tbreakeven = 6 • Nactive:動作中 (通常とおりリークを消費) の割合 • Ncsc: Compensated sleep (Tbreakeven 以上のスリープ) • Nusc: Uncompensated sleep (Tbreakeven 未満のスリープ) • 全チャネルの compensated sleep の割合を求める • トラフィック負荷を変える • 3種類のスリープ制御を比較 Ideal, Look-ahead, Naïve
評価: 実際にスリープできる期間 (200MHz) • チャネルの状態を分類 Tbreakeven = 6 • Nactive:動作中 (通常とおりリークを消費) の割合 • Ncsc: Compensated sleep (Tbreakeven 以上のスリープ) • Nusc: Uncompensated sleep (Tbreakeven 未満のスリープ) スリープ率 80% (低負荷) スリープ率 25% (高負荷) MG.W トラフィック (16コア) Uniform トラフィック (16コア) Ideal > Look-ahead > Naïveの順に compensated sleep が多い
電力の削減量 評価: リーク電力の削減量 (200MHz) • チャネル当りのリーク電力 • パワーゲーティングしないと 95uW • パワーゲーティングすると? [Hu,ISLPED’04] パワースイッチのOn/Off電力も含めて計算 MG.W トラフィック (16コア) Uniform トラフィック (16コア) Ideal >Look-ahead>Naïveの順に電力(少).負荷が高いとメリット減
評価: リーク電力の削減量 (500MHz) • チャネル当りのリーク電力 Tbreakeven = 14 • パワーゲーティングしないと 95uW • パワーゲーティングすると? [Hu,ISLPED’04] パワースイッチのOn/Off電力も含めて計算 MG.W トラフィック (16コア) Uniform トラフィック (16コア) Tbreakeven =6 と比べ,リーク電力の削減量が低下(uncompensated 増)
まとめ: ルータ回路のパワーゲーティング • ルータのリーク対策 • プロセッサの省電力化が進むにつれて今後は必要 • msec のウェイクアップ時間は影響(大) • 解決策 • チャネル単位の走行時パワーゲーティング • Look-ahead によるウェイクアップ遅延の隠蔽, 短期スリープの回避 • Look-ahead スリープ制御の評価結果 • ウェイクアップ遅延の隠蔽には有効 • 短期スリープの回避の効果は小さい 5サイクル先読み可能 損益分岐点は5サイクルより大
今後の検討課題 • 仮想チャネル(VC)単位のパワーゲーティング • 複数 VC を使ったルーティング • パケット送信時は VC#0 を使う • 途中で衝突したら VC番号を +1する 負荷が小さいときは VC#0 ばかり使われる VC#0 VC#0 VC#0 VC#1 VC#1 VC#1 VC#2 VC#2 VC#2 ルータ(a) ルータ(b) ルータ(c)
今後の検討課題 • 仮想チャネル(VC)単位のパワーゲーティング • 複数 VC を使ったルーティング • パケット送信時は VC#0 を使う • 途中で衝突したら VC番号を +1する 負荷が大きいときは全部の VC が使われる VC#0 VC#0 VC#0 VC#1 VC#1 VC#1 VC#2 VC#2 VC#2 ルータ(a) ルータ(b) ルータ(c) 仮想チャネルによる高いピーク性能を, 少ないスタンバイ電力で実現
Stop!! PGの粒度: なぜチャネル単位か? • コア単位 (粗粒度) • OS によって制御 • msecオーダの遅延 • リーク削減効果(大) • チャネル単位 • ハードウェア機構 • ランタイムに制御 • On/Off を細かく制御 • マルチ Vth • あまり効かなかった • 682uW 636uW D S 例) 使われているチャネルのみ残して他はスリープできる ルータを止めると不規則トポロジになったり, 通信に影響が出る (*) ASPLA 90nm CMOS 使用
パラメータの妥当性 • ウェイクアップ遅延 Twakeup • 本論文では 0~3 cycle を想定 • 3 cycle (625MHz) • 5 nsec • 損益分岐点 Tbreakeven • 本論文では 6 cycle (200MHz), 14 cycle (500MHz) • 10 cycle 前後 • 20 cycle (625MHz) [Talli, IPCCC’07] [関ら, ICD/ARC研’07] [Hu, ISLPED’04] [Talli, IPCCC’07]
Look-Ahead スリープ制御: 制限事項 • ハードウェアコスト • 1-hop 先の経路計算 • スリープ信号の生成 • 隣接ノード間通信 • 本論文では NI が sleep 信号を出すと仮定 • 適応型ルーティング (選択肢2つ) • 1) Look-ahead スリープ制御をやめる • 2) 低負荷時は, OSF で同一チャネルを使い続ける (ルーティングに依存するが増量は小さい) 0 1 2 HW量は小さいが電力を食うので損益分岐点が大きくなる恐れあり (要評価) 3 4 5 router 1 行きのパケットが着たら busy = 1 6 7 8 そもそも NoC では適応型ルーティングはあまり使われていないし…