CMPにおけるオンチップルータの 細粒度パワーゲーティングの

NoC のための
多電源可変パイプラインルータ
松谷 宏紀
(東京大学)
枚田 優人
(慶應義塾大学)
鯉渕 道紘 (国立情報学研究所)
宇佐美 公良
(芝浦工業大学)
中村 宏
(東京大学)
天野 英晴
(慶應義塾大学)
Number of PEs (caches are not included)
最近のメニーコアプロセッサ
picoChip PC102
256
picoChip PC205
ClearSpeed CSX700
128
64
Intel 80-core
TILERA TILE64
ClearSpeed CSX600
Intel SCC
32
MIT RAW
チップ内のメニーコア同士をつなぐために、
UT TRIPS (OPN)
Network-on-Chip (NoC) が使われている
16
STI Cell BE
8
Sun T1
Fujitsu SPARC64
Intel Core, IBM Power7
AMD Opteron
4
2
Sun T2
2002
2004
2006
2008
2010
共有メモリ型 CMP: Network-on-Chip
• タイル型 CMP の構成例
– 各タイルは、プロセッサ、L1キャッシュ、L2キャッシュバンク
– L2バンクは全体として1つの共有メモリ  NUCA
[Hardavellas, ISCA’09]
UltraSPARC
L1キャッシュ (I & D)
(各 16kB)
L2キャッシュバンク
(各 256kB、4-way)
共有メモリ型 CMP: Network-on-Chip
• タイル型 CMP の構成例
– 各タイルは、プロセッサ、L1キャッシュ、L2キャッシュバンク
– L2バンクは全体として1つの共有メモリ  NUCA
– タイル間の接続  Network-on-Chip
[Hardavellas, ISCA’09]
UltraSPARC
L1キャッシュ (I & D)
(各 16kB)
L2キャッシュバンク
(各 256kB、4-way)
オンチップルータ
CMP 向け Network-on-Chip の低消費電力化について検討
問題点: DVFS for Network-on-Chip
• 各ルータに DVFS を適用すると、
– 動作周波数がルータごとに異なる
– 異なる周波数ドメイン間の通信が必要
333MHz
400MHz
問題点: DVFS for Network-on-Chip
• 各ルータに DVFS を適用すると、
– 動作周波数がルータごとに異なる
– 異なる周波数ドメイン間の通信が必要
333MHz
400MHz
一般的な解決策
1. 隣接ルータの動作周波数
比を 1:k に制限(k は整数)
– E.g., 150MHz、300MHz
2. 思い切って、非同期 NoC
にする
– 万能だが、コストが高い
解決策 1、2 の代替案として、多電源可変パイプラインルータを提案
多電源可変パイプラインルータ
• DVFS for NoC の問題点
– ルータごとに周波数が異なる
– 異なる周波数ドメイン間の通信が発生
• 多電源可変パイプラインルータ
– 全ルータが同じ動作周波数で動作
– 電圧とルータパイプラインの深さを変える
パイプライン、電圧の切り替えポリシの例
• 低負荷時は、3サイクルモード @ Vdd-low
• 高負荷時は、2サイクルモード @ Vdd-high
• 常温動作時は、2サイクルモード @ Vdd-high
• 高温動作時は、3サイクルモード @ Vdd-high
発表の流れ: 多電源可変パイプラインルータ
• DVFS for NoC の問題点
– ルータごとに周波数が異なる
– 異なる周波数ドメイン間の通信が発生
• 多電源可変パイプラインルータ
– 全ルータが同じ動作周波数で動作
– 電圧とルータパイプラインの深さを変える
• 切り替えポリシ
– 低消費電力化ポリシ
– タイミング違反回避ポリシ
• 評価
– 回路レベル評価
– システムレベル評価
オリジナルルータ: パイプライン構造
Routing comp (RC) Switch traversal
Arbitration (VSA)
(ST)
Link traversal
(LT)
Arbiter
X+
FIFO
X+
X-
FIFO
X-
Y+
FIFO
Y+
Y-
FIFO
Y-
Core
FIFO
5x5
Crossbar
Core
多電源可変パイプラインルータ
Vdd-high
切り替え信号
Vdd-low
電圧スイッチ
Arbiter
X+
FIFO
X+
X-
FIFO
X-
Y+
FIFO
Y+
Y-
FIFO
Y-
Core
FIFO
5x5
Crossbar
Core
多電源可変パイプラインルータ
Vdd-high
切り替え信号
Vdd-low
電圧スイッチ
Arbiter
レベルシフタ
X+
FIFO
X+
X-
FIFO
X-
Y+
FIFO
Y+
Y-
FIFO
Y-
Core
FIFO
5x5
Crossbar
Core
多電源可変パイプラインルータ
Vdd-high
切り替え信号
Vdd-low
電圧スイッチ
Arbiter
Pipeline
control U
出力ラッチのバイパス用
レベルシフタ
X+
FIFO
X+
X-
FIFO
X-
Y+
FIFO
Y+
Y-
FIFO
Y-
5x5
Core
Crossbar
Core
FIFO
出力ラッチをバイパスするかどうかで、パイプライン段数が切り替わる
可変パイプライン: パイプラインモード3種
すべてのルータに同じ周波数を与える
• 3サイクルモード
• 2サイクルモード
– 出力ラッチを使う
@Router 1
RC/
VSA
ST
LT
– 出力ラッチはバイパスする
@Router 2
RC/
VSA
ST
LT
通信遅延が大きい
(3-cycle per hop)
クリティカルパス遅延が小
Vdd-low (省電力)
@Router 1
RC/
VSA
ST,LT
@Router 2
RC/
VSA
ST,LT
通信遅延が小さい
(2-cycle per hop)
クリティカルパス遅延が大
Vdd-high (電力喰い)
可変パイプライン: パイプラインモード3種
すべてのルータに同じ周波数を与える
• 4サイクルモード
– 適応型ルーティングを使用可
@Router 1
RC
VSA
ST
@Router 2
LT
RC
VSA ST
通信遅延が大きい
(4-cycle per hop)
混雑リンク、故障ルータを動的
に回避できる
LT
4x4 NoC (ホットスポット1ヶ所)
4サイクルモードは、ホットスポット発生時や故障時に効果を発揮する
多電源可変パイプラインルータ: 実装
• スタンダードセル
– Fujitsu 65nm
– 電圧スイッチ、レベルシフタ
は芝浦工大・宇佐美研製
• 論理合成
– Synopsys Design Compiler
VDD
Vdd-low Vdd-high
Clock
Clock is stopped not
to affect the current
• 配置配線
Select
– Synopsys IC Compiler
• RC 抽出
– Cadence QRC
• 回路レベルシミュレーション
– Synopsys HSIM
Energy is
consumed
Voltage
switch
Current
(VddH)
Fujitsu 65nm (0.8V1.2V, 25C)
可変パイプライン: 周波数と電圧の設定例
すべてのルータが 392.2MHz で動作する
• 3サイクルモード
• 2サイクルモード
– 出力ラッチを使う
@Router 1
RC/
VSA
ST
LT
– 出力ラッチはバイパスする
@Router 2
RC/
VSA
ST
LT
@Router 1
RC/
VSA
ST,LT
@Router 2
RC/
VSA
ST,LT
通信遅延が大きい
通信遅延が小さい
(3-cycle per hop)
(2-cycle per hop)
遅延: 1831psec @ 1.2V
遅延: 2550psec @ 1.2V
Vdd-low: 0.83V
Vdd-high: 1.20V
全ルータは 392.2MHz 動作、3サイクルは 0.83V、2サイクルは 1.2V
発表の流れ: 多電源可変パイプラインルータ
• DVFS for NoC の問題点
– ルータごとに周波数が異なる
– 異なる周波数ドメイン間の通信が発生
• 多電源可変パイプラインルータ
– 全ルータが同じ動作周波数で動作
– 電圧とルータパイプラインの深さを変える
• 切り替えポリシ
– 低消費電力化ポリシ
– タイミング違反回避ポリシ
• 評価
– 回路レベル評価
– システムレベル評価
ポリシ1: スタンバイ時の低消費電力化
• 先読みルーティングにより、
パケット到着を予期
[松谷, ASPDAC’08]
• パケットが来たら、
– 3サイクル  2サイクル
1. 電圧を Vdd-high にする
2. パイプライン段の切り換え
• パケットが通過したら、
– 2サイクル  3サイクル
1. パイプライン段の切り替え
2. 電圧を Vdd-low にする
ポリシ1: スタンバイ時の低消費電力化
• 先読みルーティングにより、
パケット到着を予期
[松谷, ASPDAC’08]
• パケットが来たら、
– 3サイクル  2サイクル
1. 電圧を Vdd-high にする
2. パイプライン段の切り換え
• パケットが通過したら、
– 2サイクル  3サイクル
1. パイプライン段の切り替え
2. 電圧を Vdd-low にする
昇圧は高々2サイクル
1ホップ目の先読みは困難
[松谷, NOCS’10]
1ホップ目のみ3サイクル転送
昇圧
3cycle
ポリシ1: スタンバイ時の低消費電力化
• 先読みルーティングにより、
パケット到着を予期
[松谷, ASPDAC’08]
• パケットが来たら、
– 3サイクル  2サイクル
1. 電圧を Vdd-high にする
2. パイプライン段の切り換え
• パケットが通過したら、
– 2サイクル  3サイクル
1. パイプライン段の切り替え
2. 電圧を Vdd-low にする
昇圧は高々2サイクル
1ホップ目の先読みは困難
[松谷, NOCS’10]
1ホップ目のみ3サイクル転送
昇圧
3cycle 2cycle
ポリシ1: スタンバイ時の低消費電力化
• 先読みルーティングにより、
パケット到着を予期
[松谷, ASPDAC’08]
• パケットが来たら、
– 3サイクル  2サイクル
1. 電圧を Vdd-high にする
2. パイプライン段の切り換え
• パケットが通過したら、
– 2サイクル  3サイクル
1. パイプライン段の切り替え
2. 電圧を Vdd-low にする
昇圧は高々2サイクル
1ホップ目の先読みは困難
[松谷, NOCS’10]
1ホップ目のみ3サイクル転送
昇圧
3cycle 2cycle 2cycle
ポリシ1: スタンバイ時の低消費電力化
• 先読みルーティングにより、
パケット到着を予期
[松谷, ASPDAC’08]
• パケットが来たら、
– 3サイクル  2サイクル
1. 電圧を Vdd-high にする
2. パイプライン段の切り換え
昇圧は高々2サイクル
1ホップ目の先読みは困難
[松谷, NOCS’10]
1ホップ目のみ3サイクル転送
3cycle 2cycle 2cycle 2cycle
• パケットが通過したら、
– 2サイクル  3サイクル
1. パイプライン段の切り替え
2. 電圧を Vdd-low にする
スタンバイ時は Vdd-low、パケットが来たら 2サイクル@ Vdd-high
ポリシ2: 温度変化によるタイミング違反回避
• ルータが温度センサを持ち、
遅延マージンの変化を検出
近隣プロセッサによって
ルータも温度変化する
Normal temp.
(2-cycle@Vdd-high)
High temp.
(3-cycle@Vdd-high)
ポリシ2: 温度変化によるタイミング違反回避
• ルータが温度センサを持ち、
遅延マージンの変化を検出
• 動作温度が急上昇したら、
– 遅延マージンを増やす
– 2サイクル @ Vdd-high
 3サイクル @ Vdd-high
• 常温に戻ったら、
– 遅延マージンを有効活用
– 3サイクル @ Vdd-high
 2サイクル @ Vdd-high
近隣プロセッサによって
ルータも温度変化する
Normal temp.
(2-cycle@Vdd-high)
High temp.
(3-cycle@Vdd-high)
発表の流れ: 多電源可変パイプラインルータ
• DVFS for NoC の問題点
– ルータごとに周波数が異なる
– 異なる周波数ドメイン間の通信が発生
• 多電源可変パイプラインルータ
– 全ルータが同じ動作周波数で動作
– 電圧とルータパイプラインの深さを変える
• 切り替えポリシ
– 低消費電力化ポリシ
– タイミング違反回避ポリシ
• 評価
– 回路レベル評価 (面積、切り替え遅延、エネルギー、BET)
– システムレベル評価 (アプリ性能、スタンバイ電力)
回路評価: 面積オーバヘッド
Vdd-high
切り替え信号
Vdd-low
電圧スイッチ
Arbiter
Pipeline
control U
出力ラッチのバイパス用
レベルシフタ
X+
FIFO
X+
X-
FIFO
X-
回路評価: 面積オーバヘッド
オリジナルルータ、多電源可変パイプラインルータのゲート数 [kilo gates]
Router
Level shifter
Voltage switch
Original
59.41
0
0
Proposed
63.13
4.11
0.54
Vdd-high
切り替え信号
Total
59.41
67.78 (+14.1%)
Vdd-low
電圧スイッチ
Arbiter
Pipeline
control U
出力ラッチのバイパス用
レベルシフタ
X+
FIFO
X+
X-
FIFO
X-
回路評価: 切り替え遷移時間、エネルギー
Vdd-high は 1.2V、 Vdd-low は 0.6V~1.1V
• Vdd-low から Vdd-high
• Vdd-high から Vdd-low
– E.g., 0.8V から 1.2V へ
遷移時間は 3.1 nsec
231 pJ 消費
– E.g., 1.2V から 0.8V へ
遷移時間は 5.3 nsec
148 pJ チャージ
Energy consumed
Energy charged
切り替えエネルギー (左軸)
切り替え時間 (右軸)
回路評価: 切り替えエネルギーの損益分岐点
Vdd-high は 1.2V、 Vdd-low は 0.6V~1.1V
• Vdd-low から Vdd-high
• Vdd-high から Vdd-low
– E.g., 0.8V から 1.2V へ
遷移時間は 3.1 nsec
231 pJ 消費
– E.g., 1.2V から 0.8V へ
遷移時間は 5.3 nsec
148 pJ チャージ
一度の電圧切り替えで
83 pJ (=231-148) 消費
Energy
consumed
Vdd-low にすればスタンバイ電力が減るが、
頻繁に電圧切り替えを行うと、逆に消費電力が増える
Energy charged
Break-even time (BET) は、オーバヘッドエネルギー
83 pJ を償却するのに必要な時間
切り替えエネルギー
(左軸)
 BET は 58 nsec
(23サイクル 切り替え時間
@392.2MHz)(右軸)
CMP シミュレータ: GEMS/Simics
• フルシステムシミュレーション
– 16タイル構成、4x4 メッシュ NoC
– Sun Solaris 9、Sun Studio 12
– NAS Parallel Bench (16スレッド)
OpenMP version
IS, DC, MG, EP, LU,
SP, BT, FT
[Hardavellas, ISCA’09]
UltraSPARC
L1キャッシュ (I & D)
(各 16kB)
L2キャッシュバンク
(各 256kB、4-way)
オンチップルータ
• L2 共有型
CMP
シミュレータ:
GEMS/Simics
– L2バンクを全タイルで共有  1つの大きな共有キャッシュ
• フルシステムシミュレーション
– トラフィック量が多い
– 16タイル構成、4x4 メッシュ NoC
• L2
非共有型
– Sun Solaris 9、Sun Studio 12
– タイルごとに、プライベートな L1/L2 キャッシュを持つ
– NAS Parallel Bench (16スレッド)
– トラフィック量が少ない
[Hardavellas, ISCA’09]
UltraSPARC
L1キャッシュ (I & D)
(各 16kB)
L2キャッシュバンク
(各 256kB、4-way)
オンチップルータ
省電力ポリシ: アプリ性能オーバヘッド
スタンバイ時は 3-cycle @ Vdd-low
パケットが来たら可能な限り 2-cycle @ Vdd-high
常に2サイクル転送
@ Vdd-high
提案ポリシ
常に3サイクル転送
@ Vdd-low
省電力ポリシ: アプリ性能オーバヘッド
スタンバイ時は 3-cycle @ Vdd-low
パケットが来たら可能な限り 2-cycle @ Vdd-high
常に2サイクル転送
@ Vdd-high
提案ポリシ
• L2 共有型 CMP
– トラフィック多い
– All 2-cycle @ Vdd-highと
比べて、性能 2.1% 減
常に3サイクル転送
@ Vdd-low
• L2 非共有型 CMP
– トラフィック少ない
– All 2-cycle @ Vdd-highと
比べて、性能 1.0% 減
省電力ポリシ: NoCスタンバイ電力削減量
スタンバイ時は 3-cycle @ Vdd-low
パケットが来たら可能な限り 2-cycle @ Vdd-high
常に2サイクル転送
@ Vdd-high
提案ポリシ
常に3サイクル転送
@ Vdd-low
省電力ポリシ: NoCスタンバイ電力削減量
スタンバイ時は 3-cycle @ Vdd-low
パケットが来たら可能な限り 2-cycle @ Vdd-high
常に2サイクル転送
@ Vdd-high
提案ポリシ
• L2 共有型 CMP
– トラフィック多い
– All 2-cycle @ Vdd-highと
比べて、電力 10.4% 減
BET以下の切り替え多発
常に3サイクル転送
@ Vdd-low
• L2 非共有型 CMP
– トラフィック少ない
– All 2-cycle @ Vdd-highと
比べて、電力 44.4% 減
まとめ: 多電源可変パイプラインルータの提案
• DVFS for NoC の問題点
– ルータごとに周波数が異なる
– 異なる周波数ドメイン間の通信が発生
• 多電源可変パイプラインルータ
– 動作周波数は固定で、電圧とパイプラインの深さを変える
– パイプラインモード3種類
• 切り替えポリシ
– 低消費電力化ポリシ、タイミング違反回避ポリシ
• 評価結果
– 面積オーバヘッドは 14.1%、BET は23サイクル
– アプリ性能は1.0~2.1%減、スタンバイ電力は10.4~44.4%減
今後の課題
• 温度センサの実装
– 温度変化によるタイミング違反の検出
– Oscillation-Ring based Thermal Sensor (ORTS)
Enable
[Yang, ASPDAC’09]
[Wolpert, NOCS’10]
Pulse counter
Thermal level
• Break-even time を考慮した切り替えポリシ
– 現状では、BET をまったく考慮していないため、
– オーバヘッド電力の影響で低消費電力化のメリットが小さい
– E.g., 高負荷時は 2サイクル @ Vdd-high モードに固定
ご清聴ありがとうございました