パワーゲーティング

Download Report

Transcript パワーゲーティング

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