PowerPoint プレゼンテーション

オンチップルータにおける仮想チャネル
単位の走行時パワーゲーティング
SWoPP’07 では Look-ahead
によるウェイクアップ方法の提案
松谷 宏紀
(慶大)
鯉渕 道紘 (NII)
王 代涵 (慶大)
本発表では仮想チャネル単位のパワーゲーティングを想定した
パケットルーティングアルゴリズムについて検討
天野 英晴 (慶大)
はじめに: リーク電力の削減テクニック
• リーク電力の増加
– スタンバイ電力の大部分
– 今後も増加傾向
Dynamic
Leakage power (55%)
例) オンチップルータのスタンバイ電力
200MHz 動作時, 90nm CMOS
はじめに: リーク電力の削減テクニック
• リーク電力の増加
– スタンバイ電力の大部分
– 今後も増加傾向
Dynamic
Leakage power (55%)
例) オンチップルータのスタンバイ電力
200MHz 動作時, 90nm CMOS
• パワーゲーティング
– リーク電力の削減方法
– 回路への電力供給を遮断
• パワーゲーティングの粒度
Vdd
パワースイッチ
仮想 Vdd
回路
– コアレベル [Ishikawa,IEICE’05]
– 演算器レベル [Hu,ISLPED’04]
GND
– ゲートレベル [Usami,ICCD’06]
本発表では,マルチコアSoCの通信機構のパワーゲーティングに着目
本発表の流れ
• マルチコア SoC の通信機構
– Network-on-Chip (NoC)
– 仮想チャネルルータの構造
– ルータの消費電力
• 仮想チャネルのパワーゲーティング
– パワーゲーティングの影響
– ルーティング方式の提案
• 評価
– ルーティング方式の比較
– スループット性能への影響
– どれだけリーク電力が減るか
Network-on-Chip (NoC)
Core
[Dally,DAC’01]
[Vangal,ISSCC’07]
On-chip router
• プロセッサコア
–
• オンチップルータ
16-Core Tile Architecture
パケットスイッチネットワーク (ルータを止めると
不規則トポロジになったり, 通信に影響が出る)
(*) 京大/VDEC/ASPLA 90nm CMOS 使用
Network-on-Chip (NoC)
Core
[Dally,DAC’01]
[Vangal,ISSCC’07]
On-chip router
• プロセッサコア
– コア単位でスリープ可
– 面積は大きいが, 省
電力対策も進んでる
例) スタンバイ電流 11uA
[Ishikawa,IEICE’05]
• オンチップルータ
– 面積は小さい
– コアの省電力化が進
むにしたがい, 目立っ
てくる
16-Core Tile Architecture
パケットスイッチネットワーク (ルータを止めると
不規則トポロジになったり, 通信に影響が出る)
(*) 京大/VDEC/ASPLA 90nm CMOS 使用
オンチップルータ: ハードウェア構成
• 5入力5出力のルータ, データ(フリット)幅は 64-bit
1ポート当り複数の入力バッファ (この図では 2系統) を持つ  仮想チャネル2本
ARBITER
X+
FIFO
X+
X-
FIFO
X-
Y+
FIFO
Y+
Y-
FIFO
Y5x5 XBAR
CORE
FIFO
CORE
配置配線後のゲート数は 62.8[kilo gates]で,全体の 66.8% が FIFO
オンチップルータ: 仮想チャネル(VC)機構
• VC の利点 – 先詰まりの防止 (1車線と2車線の道路の例)
前方で右折したいが先が詰
まってて進めない (怒)
この帯域が無
駄になっている
右折レーンを有効活用
オンチップルータ: 仮想チャネル(VC)機構
• VC の利点 – 先詰まりの防止 (1車線と2車線の道路の例)
この帯域が無
駄になっている
• VC の実装 – 1物理ポートの時分割多重
[Dally,TPDS’92]
パケット(a)は先が詰まって進めないので, 先にパケット(b) がクロスバを通過
PACKET(a)
PACKET(b)
VC#0
VC#1
VC を持つとスループットは向上するが, 面積とリーク電力は増える
仮想チャネルルータ: 消費電力の解析
• 90nmで配置配線し, 200MHz でシミュレーション
5ポートのうち0個のポートが使用中(スタンバイ時)の消費電力 @ 200MHz
Total leakage (55.0%)
Dynamic
VC buf’s leakage (49.4%)
スタンバイ電力の内訳 @ 200MHz
VCバッファのリークがスタンバイ電力の約半分  ここを削減する!
本発表の流れ
• マルチコア SoC の通信機構
– Network-on-Chip (NoC)
– 仮想チャネルルータの構造
– ルータの消費電力
• 仮想チャネルのパワーゲーティング
– パワーゲーティングの影響
– ルーティング方式の提案
• 評価
– ルーティング方式の比較
– スループット性能への影響
– どれだけリーク電力が減るか
オンチップルータ: 仮想チャネルの PG
• チャネル単位の走行時パワーゲーティング
– パケットが無ければ  スリープ
– パケットが来たら  ウェイクアップ
ARBITER
X+
sleep
X+
X-
sleep
X-
Y+
sleep
Y+
Y-
sleep
Y5x5 XBAR
CORE
sleep
CORE
オンチップルータ: 仮想チャネルの PG
• チャネル単位の走行時パワーゲーティング
– パケットが無ければ  スリープ
– パケットが来たら  ウェイクアップ
ARBITER
X+
sleep
X+
X-
sleep
XY+
Y+
Y-
Y-
sleep
5x5 XBAR
CORE
sleep
CORE
オンチップルータ: 仮想チャネルの PG
• チャネル単位の走行時パワーゲーティング
– パケットが無ければ  スリープ
– パケットが来たら  ウェイクアップ
ARBITER
X+
sleep
X+
X-
sleep
XY+
Y+
sleep
• ルータのパワーゲーティング
– 比較的大きなバッファを想定 [Chen,ISLPED’03] [Soteriou,TPDS’07]
YYsleep
[Chen,ISLPED’03]
– Drowsy や Gated Vdd SRAM を使用
5x5 XBAR
• 小規模ルータ
(4フリットのバッファ)
を想定
CORE
sleep
– プロセッサのレジスタ, 演算器の PG に近い
CORE
[Hu,ISLPED’04]
パワーゲーティング: 様々なオーバヘッド
• 性能オーバヘッド
– ウェイクアップ遅延により
スループット性能が低下
On/Offに遅延がかかる +
動的電力も消費
Vdd
パワースイッチ
sleep
• 電力オーバヘッド
– パワースイッチのOn/Off電力
– スリープ期間が短いと,
逆に消費電力が増える
仮想 Vdd
回路
GND
• Look-ahead によるウェイクアップ方法
– 性能ペナルティを軽減
[松谷,SWoPP’07] [松谷,ASPDAC’08]
今回は, 少ないスタンバイ電力で高いピーク性能を出すルーティング
ルーティング: 仮想チャネル切り替えポリシ
• スリープ制御
ウェイクアップ遅延とスリープ遅延
(電
源On/Offに要す遅延)の影響を受ける
– VC#0 は常に ON
– それ以外の VC はパケットが来たら起床, 通過したらスリープ
–
VC#0
VC#0
VC#0
VC#1
VC#1
VC#1
VC#2
VC#2
VC#2
ルータ(a)
ルータ(b)
ルータ(c)
ルーティング: 仮想チャネル切り替えポリシ
• スリープ制御
– VC#0 は常に ON
– それ以外の VC はパケットが来たら起床, 通過したらスリープ
• 仮想チャネルの切り替え
– パケット送信時は VC#0 を使う
– 経路の途中でパケットが衝突したら VC番号を +1 する
VC#0
VC#0
VC#0
VC#1
VC#1
VC#2
VC#2
VC#2
ルータ(a)
ルータ(b)
ルータ(c)
VC#1
衝突!!
負荷が高くなるに従い, 残りの VCs (VC#1, VC#2, …) が徐々に活性化される
 小さなスタンバイ電力で高いピーク性能を実現
ルーティング: いろいろなグループ化
• 4VC x 1 (レーン数1)
– VC#0 だけ常に ON
– パケットは VC#0  VC#1  VC#2  VC#3 の順に遷移
すべてのパケット
VC#0
衝突
VC#1
衝突
VC#2
3回まで VC を切り替えられるので先詰まりには強い
VC#0 より上位はウェイクアップ遅延の影響を受ける
–
衝突
VC#3
ルーティング: いろいろなグループ化
• 4VC x 1 (レーン数1)
– VC#0 だけ常に ON
– パケットは VC#0  VC#1  VC#2  VC#3 の順に遷移
すべてのパケット
VC#0
VC#1
VC#2
VC#3
• 2VC x 2 (レーン数2)
– VC#0 と VC#2 が常に ON
– 宛先アドレスが偶数パケットは VC#0  VC#1 の順に遷移
– 宛先アドレスが奇数パケットは VC#2  VC#3 の順に遷移
VC#0
衝突
VC#1
宛先IDが偶数のパケット
–
VC#2
衝突
VC#3
宛先IDが奇数のパケット
ウェイクアップ遅延は減るが, 1回までしか VC を切り替えられな
いので先詰まりに弱い
ルーティング: いろいろなグループ化
• 4VC x 1 (レーン数1)
– VC#0 だけ常に ON
– パケットは VC#0  VC#1  VC#2  VC#3 の順に遷移
すべてのパケット
VC#0
VC#1
VC#2
VC#3
• 2VC x 2 (レーン数2)
– VC#0 と VC#2 が常に ON
– 宛先アドレスが偶数パケットは VC#0  VC#1 の順に遷移
– 宛先アドレスが奇数パケットは VC#2  VC#3 の順に遷移
dst=0,2,4
VC#0
VC#1
• 1VC x 4 (レーン数4)
dst=1,3,5
VC#2
VC#3
VC を切り替えられないので先詰まりには弱い
全VCが ON なのでウェイクアップ遅延の影響は無い
– 全部の VC が常に ON
– 宛先を “mod 4” して使う VC を決定する
dst=0,4
VC#0
dst=1,5
VC#1
dst=2,6
VC#2
dst=3,7
VC#3
ルーティング: デッドロックフリー保証
• 仮想チャネルレイヤ
– 同一 VC 番号のバッファから成る仮想ネットワーク
• デッドロックフリー
[Duato,TPDS’93] [Koibuchi,ICPP’03]
– レイヤ間は一方通行 VC#0  VC#1  VC#2  VC#3
– 最下層のみ deadlock-free なら, 他は任意のルーティング
VC Layer #0
VC#0
VC#0
VC#0
VC Layer #1
VC#1
VC#1
VC#1
VC Layer #2
VC#2
VC#2
VC#2
VC Layer #3
VC#3
VC#3
VC#3
ルータ(a)
ルータ(b)
ルータ(c)
本発表の流れ
• マルチコア SoC の通信機構
– Network-on-Chip (NoC)
– 仮想チャネルルータの構造
– ルータの消費電力
• 仮想チャネルのパワーゲーティング
– パワーゲーティングの影響
– ルーティング方式の提案
• 評価
– ルーティング方式の比較
– スループット性能への影響
– どれだけリーク電力が減るか
評価: ルーティング方式の比較
• スループット vs. リークで比較
–
–
–
–
仮想チャネル1本:
仮想チャネル2本:
仮想チャネル4本:
仮想チャネル8本:
4VC x 1 の例
VC#0
Leakage
1VC x 1
2VC x 1, 1VC x 2
Throughput
4VC x 1, 2VC x 2, 1VC x 4
8VC x 1, 4VC x 2, 2VC x 4, 1VC x 8
衝突
すべてのパケット
2VC x 2 の例
VC#0
Better!
衝突
VC#1
衝突
VC#2
衝突
VC#3
3回まで VC を切り替えられるので先詰まりには強い
VC#0 より上位はウェイクアップ遅延の影響を受ける
VC#1
宛先IDが偶数のパケット
VC#2
衝突
VC#3
宛先IDが奇数のパケット
ウェイクアップ遅延は減るが, 1回までしか VC を切り替えられないので先詰まりに弱い
評価: ルーティング方式の比較
• スループット vs. リークで比較
–
–
–
–
仮想チャネル1本:
仮想チャネル2本:
仮想チャネル4本:
仮想チャネル8本:
Better!
Leakage
1VC x 1
2VC x 1, 1VC x 2
Throughput
4VC x 1, 2VC x 2, 1VC x 4
8VC x 1, 4VC x 2, 2VC x 4, 1VC x 8
• ネットワークシミュレータ
– スループットの測定
– リーク電力計算機能を実装
[Hu,ISLPED’04] のモデルを使用
• トラフィックパターン
– Uniform と NPB ベンチマーク集
Table: 評価パラメータ
トポロジ
2-D Mesh (16, 64)
ルーティング
次元順ルーティング
パケットサイズ 5-flit (1-flit header)
バッファサイズ 4-flit (WH
switching)
VC数
1, 2, 4, 8
ウェイクアップ
遅延
5-cycle
評価: リーク削減量のモデリング
• パワーゲーティングの電力モデル [Hu,ISLPED’04]
– Eoverhead: パワースイッチのOn/Off に要すエネルギー
– Esaved:
N-cycle のスリープによって削減できるリーク
何サイクルスリープできれば, Eoverhead と Esaved が等しくなるか?
評価: リーク削減量のモデリング
• パワーゲーティングの電力モデル [Hu,ISLPED’04]
– Eoverhead: パワースイッチのOn/Off に要すエネルギー
– Esaved:
N-cycle のスリープによって削減できるリーク
何サイクルスリープできれば, Eoverhead と Esaved が等しくなるか?
各VCの電力パラメータ (*)
Supply voltage
1.0 V
Switching factor
0.12
Leakage power
52 uW
Dynamic power (200MHz)
78 uW
Dynamic power (500MHz)
194 uW
Power switch size ratio
0.1
Power switch cap ratio
0.5
(*) ルータ回路を 90nm で配置配線し,
Power Compiler を使って電力を測定
リーク電力の遷移 (200MHz - 500MHz)
これ以外の値は [Hu,ISLPED’04] より
評価結果: スループット vs. リーク電力
• ルーティングの比較
–
–
–
–
仮想チャネル1本:
仮想チャネル2本:
仮想チャネル4本:
仮想チャネル8本:
1VC x 1
2VC x 1, 1VC x 2
4VC x 1, 2VC x 2, 1VC x 4
8VC x 1, 4VC x 2, 2VC x 4, 1VC x 8
Better!
Leakage
• ただし
4VC x 1
– 比較対象が多すぎる。。。
Throughput
– スループット vs. リーク電力のグラフにプロット
– 特に効率が良いものを選択し, リーク電力の削減量を説明
評価結果: スループット vs. リーク電力
• ルーティングの比較
–
–
–
–
■VC1本:
▲VC2本:
●VC4本:
▼VC8本:
Better!
Leakage
1VC x 1
2VC x 1, 1VC x 2
Throughput
4VC x 1, 2VC x 2, 1VC x 4
8VC x 1, 4VC x 2, 2VC x 4, 1VC x 8
仮想チャネルが8本もあっても利用率が極端に低い 
仮想チャネル4本のときとほぼ同性能
Uniform (16-core)
Uniform (64-core)
評価結果: スループット vs. リーク電力
• ルーティングの比較
Better!
Leakage
– ■VC1本: 1VC x 1
– ▲VC2本: 2VC x 1, 1VC x 2
– ●VC4本: 4VC x 1, 2VC x 2, 1VC x 4
Throughput
レーン数が多いので, ウェイクアップ遅延が減ったが, 先
詰まりには弱くなり性能が劣化
2VCx2, 1VCx4
4VCx1
Uniform (16-core)
Uniform (64-core)
評価結果: スループット vs. リーク電力
• ルーティングの比較
– ■VC1本: 1VC x 1
– ▲VC2本: 2VC x 1
– ●VC4本: 4VC x 1
Better!
Leakage
Throughput
16コアでは 2VCx1, 4VCx1 が効率が良く, 64コアでは 4VCx1 が性能が良い
Uniform (16-core)
Uniform (64-core)
評価結果: 平均リーク電力
• ルーティング方式の比較
– 1VC x 1 (レーン数1)
– 2VC x 1 (レーン数1)
– 4VC x 1 (レーン数1)
VC4個分(PG時)のリーク
VC1個分のリーク
Uniform (16-core)
VC1個分のリーク
IS.W (16-core)
4VCx1の場合, ピーク時でも PG 無しの 36%~53% のリークで動作
まとめ: 仮想チャネル単位パワーゲーティング
• ルータのリーク対策
– プロセッサの省電力化が進むにつれて今後は必要
– ルータのパワーゲーティング  性能や電力オーバヘッド
• 本発表では
– 仮想チャネル単位の走行時パワーゲーティング
– レイヤ構造を利用したルーティングの提案
最初は VC0 を使い, パケットが衝突する度に仮想チャネル番号を +1 する
 低負荷なら VC0 のみ ON, 負荷が高くなれば VC1, VC2 が徐々にON
• ルーティング方式の比較
– 4VCx1, 2VCx1 の電力効率が高い
– 4VCx1 の場合, ピーク時でも 36%~53% のリークで動作
Backup slides
今後の課題: Slow-Silent Virtual Channel
• 仮想チャネルを増やすことで消費電力を削減
– 仮想チャネルの本数を増やす  スループット向上
– 仮想チャネルの動作周波数と電圧を下げる
– 仮想チャネル単位の PG でリークを削減
• Voltage and Frequency Scaling
VC を増やせば性能向上
– 性能が向上した分, 動作周波数と電圧
を低減  電力削減
(V  Vth )
f
CV
Pswitching  a  C  f V 2
– 仮想チャネルの追加するとリーク増大
仮想チャネルの本数と性能
仮想チャネル単位の PG で問題を解決
評価結果: スループット
• ルーティング方式の比較
– 1VC x 1 (レーン数1)
– 2VC x 1 (レーン数1)
– 4VC x 1 (レーン数1)
Uniform (16-core)
IS.W (16-core)
オンチップルータ: パイプライン構造
• 衝突しなければ 3 cycle でヘッダがルータを通過
– RC (Routing Computation)
– VSA (Virtual Channel / Switch Allocation)
– ST (Switch Traversal)
• 例) ルータ(a) からルータ(c) にパケットを転送
@ROUTER A
@ROUTER B
@ROUTER C
HEAD RC VSA ST
RC VSA ST
RC VSA ST
DATA 1
ST
ST
DATA 2
ST
ST
ST
ST
DATA 3
1
2
3
4
5
6
ST
ST
7
8
9
ST
10
11
12
ELAPSEDデータ3がルータ(c)に届くまで12サイクル
TIME [CYCLE]
ヘッダがルータ(a)に注入されてから,
パワーゲーティング: 様々なオーバヘッド
• 面積オーバヘッド
– パワースイッチ
[関ら, ICD/ARC研’07]
• 性能オーバヘッド
– Wakeup 時間が大きいと,
– パイプラインストール発生
パケット到着を早期に検出したい
• 電力オーバヘッド
– パワースイッチの操作
– スリープ期間が短いと,
– 逆に消費電力が増える
短いスリープを検出して回避したい
スリープ中
アクティブ
FIFO
ウェイクアップする
まで待たされる
パワーゲーティング: 様々なオーバヘッド
• 面積オーバヘッド
スリープ中
アクティブ
– パワースイッチ
FIFO
[関ら, ICD/ARC研’07]
• 性能オーバヘッド
ウェイクアップする
まで待たされる
– Wakeup 時間が大きいと,
– パイプラインストール発生
パケット到着を早期に検出したい
• 電力オーバヘッド
– パワースイッチの操作
– スリープ期間が短いと,
– 逆に消費電力が増える
短いスリープを検出して回避したい
Vdd
パワースイッチ
sleep
仮想 Vdd
On/Off時に動的電力を消費
回路 (これが
リーク削減効果より大きいと損)
GND
チャネルへのパケットの到達を早期に知らせるスリープ制御が有効
評価方針: VC単位のパワーゲーティング
• 性能オーバヘッド
On/Offに遅延がかかる + 動的電力も消費
– ウェイクアップ遅延により
スループット性能が低下
Vdd
パワースイッチ
sleep
• 電力オーバヘッド
– パワースイッチのOn/Off電力
– スリープ期間が短いと,
逆に消費電力が増える
Q. 何サイクルスリープできれば元が取れる?
仮想 Vdd
回路
GND
• 仮想チャネルのグループ化
– 4VC x 1レーン
– 2VC x 2レーン
– 1VC x 4レーン
4回まで VC を切り替えられるので先詰まりには強い
VC#0 より上位はウェイクアップ遅延の影響を受ける
VC を切り替えられないので先詰まりには弱い
全VCが ON なのでウェイクアップ遅延の影響は無い
Q. どのようなグループ化が性能と消費電力で有利か?
評価: 評価項目とシミュレーション環境
• 動作周波数の影響
– トラフィックは uniform, VC 数は4本
– 200 & 500MHz のパワーゲーティング・パラメータを比較
• 仮想チャネル数の影響
– トラフィックは uniform, 動作周波数は 500MHz を想定
– VC 数が 4本と8本の場合を比較
• 実アプリケーションの場合
– VC 数は 4本, 動作周波数は 500MHz を想定
– トラフィックは NPB ベンチマーク集から5種類を選択
表3: ネットワークシミュレータのパラメータ
トポロジ
2次元メッシュ
ルーティング
次元順ルーティング
パケットサイズ
表4: パワーゲーティングのパラメータ
200MHz
500MHz
損益分岐点
6サイクル
14サイクル
5フリット (ヘッダを含む)
ウェイクアップ遅延(*)
2サイクル
5サイクル
バッファサイズ
4フリット (ワームホール)
通信遅延
1ホップ当り 3サイクル
スリープ遅延(**)
10サイクル
25サイクル
(*) 活性化中の VC のウェイクアップ遅延は 0
(**) アイドルを検出し電力供給停止までの遅延