PowerPoint プレゼンテーション

ツリー型オンチップネットワークにおける
適応的アクティベーション制御
松谷 宏紀 (慶大)
鯉渕 道紘 (NII)
王 代涵 (慶大)
天野 英晴 (慶大)
はじめに
• リーク電力の増加
– スタンバイ電力の大部分
– 今後も増加傾向
Dynamic
Leakage (60.1%)
例) オンチップルータのスタンバイ電力
200MHz 動作時, 90nm CMOS
• パワーゲーティング
– リーク電力の削減方法
– 回路への電力供給を遮断
• パワーゲーティングの例
Vdd
電源スイッチ
仮想 Vdd
回路
– コアレベル [Ishikawa,IEICE’05]
– 演算器レベル [Hu,ISLPED’04]
GND
– ゲートレベル [Usami,ICCD’06]
本発表では,マルチコアSoCの通信機構のパワーゲーティングに着目
発表の流れ
• Network-on-Chip (NoC)
– ルータの消費電力
– ルータのパワーゲーティング
• Fat Tree ネットワーク
– スリープ制御の難しさ
• Bypass port 付き Fat Tree
– Buffered bypass port (Bport)
– Bufferless bypass port (Lport)
• 評価
– 面積, スループット性能
– フリット転送エネルギー, リーク
Bypass port を用いた経路
Network-on-Chip (NoC)
• プロセッサコア
Core
Router
–
• オンチップルータ
タイルアーキテクチャ例 (16-core)
Network-on-Chip (NoC)
• プロセッサコア
– 面積は大きいが, 省電
力化対策も進んでいる
– コア単位でスリープ可
Core
Router
例) スタンバイ電流 11uA
[Ishikawa,IEICE’05]
• オンチップルータ
– 面積は小さい
– 通信の基幹部なので,
スリープさせると通信に
影響が生じる
タイルアーキテクチャ例 (16-core)
次スライドでは,ルータの消費電力,パワーゲーティングについて検討
オンチップルルータ: 消費電力の解析
• 90nmで配置配線し, 200MHz でシミュレーション
ルータの全ポートのうち,
使われているポートの数 (最大帯域の30%負荷)
5ポートのうち0個のポートが使用中(スタンバイ時)の消費電力
@ 200MHz
Total leakage (60.1%)
Dynamic (39.9%)
Channels (54.0%)
スタンバイ電力の内訳 @ 200MHz
チャネル(FIFO) のリークがスタンバイ電力の半分以上ここを削減
オンチップルータ: パワーゲーティング
• チャネル (FIFO) への電力供給を On/Off
– パケットが無ければ  スリープ
– パケットが来たら  ウェイクアップ
ARBITER
X+
sleep
X+
X-
sleep
X-
Y+
sleep
Y+
Y-
sleep
Y5x5 XBAR
CORE
sleep
CORE
オンチップルータ: パワーゲーティング
• チャネル (FIFO) への電力供給を On/Off
– パケットが無ければ  スリープ
– パケットが来たら  ウェイクアップ
ARBITER
X+
sleep
X+
X-
sleep
XY+
Y+
Y-
Y-
sleep
5x5 XBAR
CORE
sleep
CORE
オンチップルータ: パワーゲーティング
• チャネル (FIFO) への電力供給を On/Off
– パケットが無ければ  スリープ
– パケットが来たら  ウェイクアップ
ARBITER
X+
sleep
X+
X-
sleep
X-
Y+
sleep
Y+
Y-
sleep
Y5x5 XBAR
CORE
sleep
CORE
ただし, 動的なスリープ制御によって性能のオーバヘッドが生じる
パワーゲーティング: 性能オーバヘッド
•• チャネルの動的
ウェイクアップ遅延
On/Off
例)
Intel’s 80-tile の FPMAC は 6-cycle
[Soteriou,TPDS’07]
[Vangal,ISSCC’07]
–– 履歴などに基づきチャネルの電源を
スリープ中のチャネルにパケットが到達
On/Off
– 手前のルータで待たされ,
パイプラインストール発生
[Chen,ISLPED’03]
• バッファの部分的
PG
– 大きなバッファの一部を常にアクティブ
•
ARBITER
[松谷,ASPDAC’08]
Look-ahead ウェイクアップする
X+
sleep
– 2個前のルータがパケット到着を予め通知
まで待たされる
• Slow-silent
VCs
X-
[松谷,NOCS’08]
sleep
X+
X-
– 仮想チャネル (VC) 単位の PG
Y+
sleep
• そもそも,バッファにメモリマクロを使えば?
Y+
– FIFO の深さが浅いため難しい
Y-
Y-
sleep
5x5 XBAR
CORE
sleep
CORE
発表の流れ
• Network-on-Chip (NoC)
– ルータの消費電力
– ルータのパワーゲーティング
• Fat Tree ネットワーク
– スリープ制御の難しさ
• Bypass port 付き Fat Tree
– Buffered bypass port (Bport)
– Bufferless bypass port (Lport)
• 評価
– 面積, スループット性能
– フリット転送エネルギー, リーク
Bypass port を用いた経路
NoC のトポロジ:
• 2-D Mesh
Mesh & Torus
• 2-D Torus
RAW [Taylor, ISCA’04]
aSOC [Liang, IEEE TVLSI’04]
ルータ
[Dally, DAC’01]
– メッシュの2倍の帯域
計算コア
NoC のトポロジ:
• Fat Tree (p, q, c)
p: 上位リンクの数
q: 下位リンクの数
c: コアのポート数
Fat Tree
SPIN
[Andriahantenaina,DATE’03]
SCORE [Caspi, FPL’00]
ACM [Furtek, FPL’04]
本研究では, Fat Tree ネットワークにお
けるチャネルの動的スリープ制御に着目
Fat Tree (2,4,1)
Fat Tree (2,4,2)
ルータ
計算コア
Fat Tree: up*/down* ルーティング
1) up移動中に a を選んだ場合
2) up移動中に b を選んだ場合
(a)
(b)
使いたいチャネルがス
リープ中でも回避できる
使いたいチャネルがス
リープ中でも回避できない
Up方向は複数経路を選択できるが, down方向は経路は固定
Fat Tree: チャネルの動的スリープ (Up)
Up 方向への移動
Router (a)
Router (b)
Up方向は複数経路を選択できるが, down方向は経路は固定
Fat Tree: チャネルの動的スリープ (Up)
Up 方向への移動
Router (a)
スリープ中
Router (b)
Up方向では, ルータ(b) がスリープ中ならルータ(a) を使えば良い
Fat Tree: チャネルの動的スリープ (Up)
Up 方向への移動
Router (a)
スリープ中
Router (b)
Up方向では, ルータ(a) がスリープ中ならルータ(b) を使えば良い
Fat Tree: チャネルの動的スリープ (Down)
Down 方向への移動
Router (a)
Router (b)
Down方向では, 移動先がスリープ中なら起きるまで待つしかない
Fat Tree: チャネルの動的スリープ (Down)
Down 方向への移動
Router (a)
Router (b)
スリープ中
Down方向では, 移動先がスリープ中なら起きるまで待つしかない
Fat Tree: チャネルの動的スリープ (Down)
Down 方向への移動
Router (a)
「待ち」が発生すると, パケットが詰
まって混雑の原因となる
Router (b)
スリープ中
Down方向では, 移動先がスリープ中なら起きるまで待つしかない
関連技術: ウェイクアップ遅延の隠蔽
• Look-ahead @ Mesh
[松谷,ASPDAC’08]
– 2個手前のルータが, パ
ケットの到着をお知らせす
る
Wakeup!
Wakeup!
× 2ホップにまたがる長い制御線
関連技術: ウェイクアップ遅延の隠蔽
• Look-ahead @ Mesh
– 2個手前のルータが, パ
ケットの到着をお知らせす
る
Wakeup!
• Look-ahead @ Fat Tree
– 2ホップにまたがる制御線
が長くなりすぎる遅延増
Wakeup!
Wakeup!
× 2ホップにまたがる長い制御線
×× ツリーでは現実的でない
発表の流れ
• Network-on-Chip (NoC)
– ルータの消費電力
– ルータのパワーゲーティング
• Fat Tree ネットワーク
– スリープ制御の難しさ
• Bypass port 付き Fat Tree
– Buffered bypass port (Bport)
– Bufferless bypass port (Lport)
• 評価
– 面積, スループット性能
– フリット転送エネルギー, リーク
Bypass port を用いた経路
Bypass port 付き Fat Tree
Down 方向への移動
Router (a)
待たされてしまう
一方, こっちのチャ
ネルは利用できる
Router (b)
スリープ中
Down方向では, 移動先がスリープ中なら起きるまで待つしかない
Bypass port 付き Fat Tree
Down 方向への移動
Router (a)
隣りのルータにパケットを
横流し (bypass port)
一方, こっちのチャ
ネルは利用できる
Router (b)
スリープ中
Down方向では, 移動先がスリープ中なら起きるまで待つしかない
Bypass port 付き Fat Tree
• どこに bypass port を設けるか?
– 隣接して配置されるルータ間
– 距離的に近接しているため, bypass してもコストは小さい
Brothers
Fat Tree (2,4,1)
Brothers
Fat Tree (2,4,2)
Fat Tree (2,4,1) のように多重度が低いと bypass port を実装できる場所が少ない
Bypass port アーキテクチャ
• Buffered bypass
(Bport)
– 通常のチャネルを追加
Router (a)
Router (b)
× バッファの面積(増)
× バッファ read/write 電力(増)
• Bufferless
bypass(Lport)
Bypass port アーキテクチャ
• Buffered bypass
(Bport)
– 通常のチャネルを追加
Router (a)
• Bufferless
bypass(Lport)
– 近接配置  バッファ不要
Router (a)
Arbitration
Router (b)
× バッファの面積(増)
× バッファ read/write 電力(増)
Router (b)
○ 面積も電力も増えない
× 隣接ルータのクロスバの調停
Bypass Port: パケットルーティング
• Bypass port の追加
– 新たな経路が発生
– Deadlock するのでは?
• 同一ツリー内の移動
– 元々 deadlock しない
• 隣接ツリー間の移動
– ツリー間移動は一方通行
– Deadlock しない
既存のFat Treeには無い経路
Bypass port は
一方通行
発表の流れ
• Network-on-Chip (NoC)
– ルータの消費電力
– ルータのパワーゲーティング
• Fat Tree ネットワーク
– スリープ制御の難しさ
• Bypass port 付き Fat Tree
– Buffered bypass port (Bport)
– Bufferless bypass port (Lport)
• 評価
– 面積, スループット性能
– フリット転送エネルギー, リーク
Bypass port を用いた経路
評価方針: Bypass Port 付き Fat Tree
• 比較対象
– オリジナル Fat Tree
– Bport 付き Fat Tree
– Lport 付き Fat Tree
• 比較項目
– 面積, スループット
– フリット転送エネルギー
– リーク電力の削減量
64-core の Fat Tree (1,4,2) (2,4,1) (2,4,2) (4,4,1) で比較
(p,q,c)は, p=上位リンク数 q=下位リンク数 c=コアポート数
Fat Tree (2,4,1)
Fat Tree (2,4,2)
面積評価: ルータと NI のゲート数で比較
• Buffered bypass
(Bport)
• Bufferless
bypass(Lport)
Arbitration
面積評価のフロー
1.
オリジナルルータ, Bport ルータ, Lport ルータ をVerilog-HDLで実装
2.
各種ルータを ASPLA 90nm で合成, 配置配線 (Design Compiler / Astro)
3.
オリジナル, Bport付き, Lport 付き Fat Tree のゲート数 (ルータと NI) をカウント
面積評価: ルータと NI のゲート数で比較
• Buffered bypass
(Bport)
• Bufferless
bypass(Lport)
Arbitration
※ コア数は 64-core
Bport 付きFat Tree
Lport 付きFat Tree
Original Fat Tree
Orig に比べて, Bport では+11.8%, Lport では+5.2% 面積が増えた
電力評価: フリット転送エネルギーを比較
• Buffered bypass
(Bport)
• Bufferless
bypass(Lport)
Arbitration
電力評価のフロー
1.
オリジナルルータ, Bport ルータ, Lport ルータ をVerilog-HDLで実装
2.
各種ルータを ASPLA 90nm で合成, 配置配線 (Design Compiler / Astro)
3.
配置配線ルータにパケット負荷を与えるシミュレーションを実行 (NC-Verilog)
4.
SAIF, SDF, SPEF を読み込んで消費電力を見積もる (Power Compiler)
電力評価: フリット転送エネルギーを比較
• Buffered bypass
(Bport)
• Bufferless
bypass(Lport)
Arbitration
※ コア数は 64-core
Bport 付きFat Tree
Lport 付きFat Tree
Original Fat Tree
Origに比べ,Bportでは+4.6%増えたが,Lportではほとんど増加せず
性能評価: パケット転送スループット
• Buffered bypass
(Bport)
• Bufferless
bypass(Lport)
Arbitration
フリットレベルネットワーク
シミュレータを使用
(※)通信パターンには uniform と
NPB トラフィックを使用
トポロジ
64-core 各種 Fat Tree
パケットサイズ
5-flit (1-flit header)
バッファサイズ
4-flit (WH switching)
VC数
2
パケット転送遅延
3-cycle per 1-hop
ウェイクアップ遅延 3-cycle
性能評価: パケット転送スループット
• Buffered bypass
(Bport)
• Bufferless
bypass(Lport)
Arbitration
Bypass port によって
NoPG並みのスループット
Bypass port の効果薄い
多重度が高い例: Fat Tree (4,4,1)
多重度が低い例: Fat Tree (2,4,1)
Bport,Lport共にNoPG並みだが,
Treeの多重度の低いと効果(薄)
面積,電力,性能評価: ここまでのまとめ
• Buffered bypass
(Bport)
• Bufferless
bypass(Lport)
Arbitration
× バッファの面積(増)
○ 面積の増分は Bport の半分
× バッファ read/write 電力(増)
○ 電力もほとんど増えない
○ Lport よりやや高スループット
× Bport よりやや低スループット
Fat Tree (2,4,2) において Lport のリーク電力の削減量を評価
スリープ評価: 実際にスリープできる期間
• チャネルの状態を分類
– ACT: Active operation
– CSS: Compensated sleep 状態
– USS: Uncompensated sleep 状態
通常どおりリークが流れる
Tbreakeven より長いスリープ
Tbreakeven より短いスリープ
負荷が高くなる
にしたがい減る
スリープ率 80%
(低負荷)
Orig
Bypass
CG.W トラフィック (64コア)
Orig
Bypass
BT.W トラフィック (64コア)
負荷が高くなるにしたがい, compensated sleep の割合が減る
スリープ評価: リーク電力の削減量
• チャネル当りのリーク電力
– パワーゲーティングしないと 0.145mW
– パワーゲーティングした場合のリークを評価
ただし, パワースイッチのOn/Off電力も含めて計算 [Hu,ISLPED’04]
負荷が高くなるにしたが
いスリープの機会が減る
Orig
Bypass
CG.W トラフィック (64コア)
Orig
Bypass
BT.W トラフィック (64コア)
Lport > Orig の順にリーク電力が減った.負荷が高くなるとメリット減
まとめ: Bypass Port 付き Fat Tree
• ルータチャネルの動的スリープ
– リーク電力削減
– ウェイクアップ遅延による性能劣化
• Fat Tree ネットワーク
– Down 方向は固定型ルーティング
– スリープ箇所を回避できない
• Bypass port 付き Fat Tree
– Buffered bypass port (Bport)
– Bufferless bypass port (Lport)
Bypass port を用いた経路
• 評価結果
– Lport は Bport より低コストで同程度のスループット
– Lport による PG によって, 性能をキープしたまま,
27.2%~42.8% のリークを削減
ご清聴ありがとうございました
Backup slides
スリープ評価: 実際にスリープできる期間
• チャネルの状態を分類
– ACT: Active operation
– CSS: Compensated sleep 状態
– USS: Uncompensated sleep 状態
sleep
ACT
通常どおりリークが流れる
Tbreakeven より長いスリープ
Tbreakeven より短いスリープ
sleep
USS
CSS
wakeup
• 全チャネルの compensated sleep の割合を求める
– トラフィック負荷を変える
– Orig と Lport で比較
パワーゲーティング: 様々なオーバヘッド
• 面積オーバヘッド
– パワースイッチ
[関, SACSIS’08]
• 性能オーバヘッド
– Wakeup 時間が大きいと,
– パイプラインストール発生
• 電力オーバヘッド
– パワースイッチの操作
– スリープ期間が短いと,
– 逆に消費電力が増える
スリープ中
アクティブ
FIFO
ウェイクアップする
まで待たされる
パワーゲーティング: 様々なオーバヘッド
• 面積オーバヘッド
スリープ中
アクティブ
– パワースイッチ
[関, SACSIS’08]
FIFO
• 性能オーバヘッド
ウェイクアップする
まで待たされる
– Wakeup 時間が大きいと,
– パイプラインストール発生
Vdd
• 電力オーバヘッド
– パワースイッチの操作
– スリープ期間が短いと,
– 逆に消費電力が増える
パワースイッチ
sleep
仮想 Vdd
On/Off時に動的電力を消費
回路 (これが
リーク削減効果より大きいと損)
GND
オンチップルータ: ハードウェア構成
• 5入力5出力の WH ルータ, データ(フリット)幅は 64-bit
1ポート当り n個の入力バッファ (この図では 2系統) を持つ  仮想チャネルn本
ARBITER
X+
FIFO
X+
X-
FIFO
X-
Y+
FIFO
Y+
Y-
FIFO
Y5x5 XBAR
CORE
FIFO
(※) 配置配線後のゲート数は 33 [kgates] 前後
CORE
[松谷,NOCS’08]
オンチップルータ: パイプライン構造
• 衝突しなければ 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
TIME [CYCLE]
ヘッダがルータ(a)に注入され,
データ3がルータ(c)を通過するまで12サイクル
Fat Tree: up*/down* ルーティング
Up方向
Down方向
共通の祖先まで up 方向, そこから down 方向に進む