38
NoC のののの のののののののののののののの 松松 松松 松松 松松 松松 松松 松松松 松松 松松 松 松松 松松 ( 松松松松 ) ( 松松松松松松 ) ( 松松松松松松松松 ) ( 松松松松松松 ) ( 松松松松 ) ( 松松松松松松 )

NoC のための 多電源可変パイプラインルータ

Embed Size (px)

DESCRIPTION

NoC のための 多電源可変パイプラインルータ. ( 東京大学 ) ( 慶應義塾大学 ) ( 国立情報学研究所 ) ( 芝浦工業大学 ) ( 東京大学 ) ( 慶應義塾大学 ). 松谷 宏紀 枚田 優人 鯉渕 道紘 宇佐美 公良 中村 宏 天野 英晴. 最近のメニーコアプロセッサ. picoChip PC102. picoChip PC205. 256. ClearSpeed CSX700. 128. Intel 80-core. ClearSpeed CSX600. 64. TILERA TILE64. Intel SCC. 32. - PowerPoint PPT Presentation

Citation preview

NoC のための多電源可変パイプラインルータ

松谷 宏紀枚田 優人鯉渕 道紘宇佐美 公良中村 宏 天野 英晴

( 東京大学 )

( 慶應義塾大学 )

( 国立情報学研究所 )

( 芝浦工業大学 )

( 東京大学 )

( 慶應義塾大学 )

最近のメニーコアプロセッサ

4

8

16

32

64

128

256

2002 2004 2006 2008 2010

MIT RAW

STI Cell BE

Sun T1 Sun T2

TILERA TILE64

Intel Core, IBM Power7AMD Opteron

Intel 80-coreClearSpeed CSX600

ClearSpeed CSX700

picoChip PC102 picoChip PC205

UT TRIPS (OPN)

Nu

mb

er o

f P

Es

(cac

hes

are

no

t in

clu

ded

)

2

Fujitsu SPARC64

Intel SCC

チップ内のメニーコア同士をつなぐために、Network-on-Chip (NoC) が使われている

共有メモリ型 CMP: Network-on-Chip

• タイル型 CMP の構成例– 各タイルは、プロセッサ、 L1 キャッシュ、 L2 キャッ

シュバンク– L2 バンクは全体として 1 つの共有メモリ NUCA

UltraSPARC

L1 キャッシュ (I & D)

L2 キャッシュバンク ( 各 16kB)

( 各 256kB 、 4-way)

[Hardavellas, ISCA’09]

共有メモリ型 CMP: Network-on-Chip

• タイル型 CMP の構成例– 各タイルは、プロセッサ、 L1 キャッシュ、 L2 キャッ

シュバンク– L2 バンクは全体として 1 つの共有メモリ NUCA– タイル間の接続 Network-on-Chip

UltraSPARC

L1 キャッシュ (I & D)

L2 キャッシュバンク ( 各 16kB)

( 各 256kB 、 4-way)

[Hardavellas, ISCA’09]

オンチップルータ 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 の問題点– ルータごとに周波数が異なる– 異なる周波数ドメイン間の通信が発生

• 多電源可変パイプラインルータ– 全ルータが同じ動作周波数で動作– 電圧とルータパイプラインの深さを変える

• 切り替えポリシ– 低消費電力化ポリシ– タイミング違反回避ポリシ

• 評価– 回路レベル評価– システムレベル評価

Arbiter

X+

X-

Y+

Y-

Core

X+

X-

Y+

Y-

Core

5x5Crossbar

FIFO

FIFO

FIFO

FIFO

FIFO

オリジナルルータ : パイプライン構造Routing comp (RC)Arbitration (VSA)

Switch traversal (ST)

Link traversal (LT)

X+

X-

Y+

Y-

Core

FIFO

FIFO

FIFO

FIFO

FIFO

X+

X-

Y+

Y-

Core

Arbiter

5x5Crossbar

多電源可変パイプラインルータ

切り替え信号

Vdd-high Vdd-low

電圧スイッチ

X+

X-

Y+

Y-

Core

FIFO

FIFO

FIFO

FIFO

FIFO

切り替え信号

Vdd-high Vdd-low

電圧スイッチ

X+

X-

Y+

Y-

Core

レベルシフタArbiter

5x5Crossbar

多電源可変パイプラインルータ

X+

X-

Y+

Y-

Core

X+

X-

Y+

Y-

Core

FIFO

FIFO

FIFO

FIFO

FIFO

Pipeline control U

出力ラッチのバイパス用

出力ラッチをバイパスするかどうかで、パイプライン段数が切り替わる

Arbiter

5x5Crossbar

多電源可変パイプラインルータ

切り替え信号

Vdd-high Vdd-low

電圧スイッチ

レベルシフタ

可変パイプライン : パイプラインモード 3 種

• 3 サイクルモード– 出力ラッチを使う

通信遅延が大きい  (3-cycle per hop)

クリティカルパス遅延が小

Vdd-low ( 省電力 )

• 2 サイクルモード– 出力ラッチはバイパスす

通信遅延が小さい    (2-cycle per hop)

クリティカルパス遅延が大

Vdd-high ( 電力喰い )

RC/VSA

ST LT RC/VSA

ST LT

@Router 1 @Router 2

RC/VSA

ST,LT

@Router 1 @Router 2

RC/VSA

ST,LT

すべてのルータに同じ周波数を与える

• 4 サイクルモード– 適応型ルーティングを使用

通信遅延が大きい  (4-cycle per hop)

混雑リンク、故障ルータを動的に回避できる

VSA ST LT ST LT

@Router 1 @Router 2

RC VSARC

4x4 NoC ( ホットスポット 1 ヶ所 )

4 サイクルモードは、ホットスポット発生時や故障時に効果を発揮する

可変パイプライン : パイプラインモード 3 種

すべてのルータに同じ周波数を与える

• スタンダードセル– Fujitsu 65nm– 電圧スイッチ、レベルシフ

タ は芝浦工大・宇佐美研製

• 論理合成– Synopsys Design Compiler

• 配置配線– Synopsys IC Compiler

• RC 抽出– Cadence QRC

• 回路レベルシミュレーション– Synopsys HSIM

Fujitsu 65nm (0.8V1.2V, 25C)

Vdd-low

VDD

Clock

Select

Energy is consumed

Clock is stopped not to affect the current

Vdd-high

Voltage switch

多電源可変パイプラインルータ : 実装

Current (VddH)

可変パイプライン : 周波数と電圧の設定例

• 3 サイクルモード– 出力ラッチを使う

通信遅延が大きい  (3-cycle per hop)

遅延: 1831psec @ 1.2V

Vdd-low : 0.83V

• 2 サイクルモード– 出力ラッチはバイパスす

通信遅延が小さい    (2-cycle per hop)

遅延: 2550psec @ 1.2V

Vdd-high : 1.20V

RC/VSA

ST LT RC/VSA

ST LT

@Router 1 @Router 2

RC/VSA

ST,LT

@Router 1 @Router 2

RC/VSA

ST,LT

すべてのルータが 392.2MHz で動作する

全ルータは 392.2MHz 動作、 3 サイクルは 0.83V 、 2 サイクルは 1.2V

発表の流れ : 多電源可変パイプラインルータ

• DVFS for NoC の問題点– ルータごとに周波数が異なる– 異なる周波数ドメイン間の通信が発生

• 多電源可変パイプラインルータ– 全ルータが同じ動作周波数で動作– 電圧とルータパイプラインの深さを変える

• 切り替えポリシ– 低消費電力化ポリシ– タイミング違反回避ポリシ

• 評価– 回路レベル評価– システムレベル評価

ポリシ 1: スタンバイ時の低消費電力化• 先読みルーティングによ

り、パケット到着を予期

• パケットが来たら、– 3 サイクル 2 サイクル1. 電圧を Vdd-high にする2. パイプライン段の切り換

• パケットが通過したら、– 2 サイクル 3 サイクル1. パイプライン段の切り替

え2. 電圧を Vdd-low にする

[ 松谷 , ASPDAC’08]

ポリシ 1: スタンバイ時の低消費電力化• 先読みルーティングによ

り、パケット到着を予期

• パケットが来たら、– 3 サイクル 2 サイクル1. 電圧を Vdd-high にする2. パイプライン段の切り換

• パケットが通過したら、– 2 サイクル 3 サイクル1. パイプライン段の切り替

え2. 電圧を Vdd-low にする

[ 松谷 , ASPDAC’08]

昇圧は高々 2 サイクル

3cycle

昇圧

1 ホップ目の先読みは困難

1 ホップ目のみ 3 サイクル転送[ 松谷 , NOCS’10]

ポリシ 1: スタンバイ時の低消費電力化• 先読みルーティングによ

り、パケット到着を予期

• パケットが来たら、– 3 サイクル 2 サイクル1. 電圧を Vdd-high にする2. パイプライン段の切り換

• パケットが通過したら、– 2 サイクル 3 サイクル1. パイプライン段の切り替

え2. 電圧を Vdd-low にする

3cycle

昇圧

2cycle

[ 松谷 , ASPDAC’08]

昇圧は高々 2 サイクル1 ホップ目の先読みは困難

1 ホップ目のみ 3 サイクル転送[ 松谷 , NOCS’10]

ポリシ 1: スタンバイ時の低消費電力化• 先読みルーティングによ

り、パケット到着を予期

• パケットが来たら、– 3 サイクル 2 サイクル1. 電圧を Vdd-high にする2. パイプライン段の切り換

• パケットが通過したら、– 2 サイクル 3 サイクル1. パイプライン段の切り替

え2. 電圧を Vdd-low にする

3cycle

昇圧

2cycle 2cycle

[ 松谷 , ASPDAC’08]

昇圧は高々 2 サイクル1 ホップ目の先読みは困難

1 ホップ目のみ 3 サイクル転送[ 松谷 , NOCS’10]

ポリシ 1: スタンバイ時の低消費電力化• 先読みルーティングによ

り、パケット到着を予期

• パケットが来たら、– 3 サイクル 2 サイクル1. 電圧を Vdd-high にする2. パイプライン段の切り換

• パケットが通過したら、– 2 サイクル 3 サイクル1. パイプライン段の切り替

え2. 電圧を Vdd-low にする

3cycle 2cycle 2cycle 2cycle

[ 松谷 , ASPDAC’08]

昇圧は高々 2 サイクル

[ 松谷 , NOCS’10]

スタンバイ時は Vdd-low 、パケットが来たら 2 サイクル @ Vdd-high

1 ホップ目の先読みは困難

1 ホップ目のみ 3 サイクル転送

ポリシ 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)

– システムレベル評価 ( アプリ性能、スタンバイ電力 )

回路評価 : 面積オーバヘッド

Arbiter

X+

X-

X+

X-

FIFO

FIFO

切り替え信号

Vdd-high Vdd-low

電圧スイッチ

レベルシフタ

出力ラッチのバイパス用

Pipeline control U

回路評価 : 面積オーバヘッド

Arbiter

X+

X-

X+

X-

FIFO

FIFO

切り替え信号

Vdd-high Vdd-low

電圧スイッチ

レベルシフタ

出力ラッチのバイパス用

Pipeline control U

Router Level shifter Voltage switch Total

Original 59.41 0 0 59.41

Proposed 63.13 4.11 0.54 67.78 (+14.1%)

オリジナルルータ、多電源可変パイプラインルータのゲート数 [kilo gates]

回路評価 : 切り替え遷移時間、エネルギー

• Vdd-low から Vdd-high– E.g., 0.8V から 1.2V へ

遷移時間は 3.1 nsec

231 pJ 消費

• Vdd-high から Vdd-low– E.g., 1.2V から 0.8V へ

遷移時間は 5.3 nsec

148 pJ チャージ

Vdd-high は 1.2V 、 Vdd-low は 0.6V~ 1.1V

切り替えエネルギー (左軸 ) 切り替え時間 (右軸 )

Energy consumed

Energy charged

回路評価 : 切り替えエネルギーの損益分岐点

• Vdd-low から Vdd-high– E.g., 0.8V から 1.2V へ

遷移時間は 3.1 nsec

231 pJ 消費

• Vdd-high から Vdd-low– E.g., 1.2V から 0.8V へ

遷移時間は 5.3 nsec

148 pJ チャージ

Vdd-high は 1.2V 、 Vdd-low は 0.6V~ 1.1V

切り替えエネルギー (左軸 ) 切り替え時間 (右軸 )

Energy consumed

Energy charged

一度の電圧切り替えで 83 pJ (=231-148) 消費

Vdd-low にすればスタンバイ電力が減るが、      頻繁に電圧切り替えを行うと、逆に消費電

力が増える

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 スレッド )

UltraSPARC

L1 キャッシュ (I & D)

L2 キャッシュバンク ( 各 16kB)

( 各 256kB 、 4-way)

[Hardavellas, ISCA’09]

オンチップルータ

OpenMP version

IS, DC, MG, EP, LU, SP, BT, FT

CMP シミュレータ : GEMS/Simics• フルシステムシミュレーション

– 16 タイル構成、 4x4 メッシュ NoC– Sun Solaris 9 、 Sun Studio 12– NAS Parallel Bench (16 スレッド )

UltraSPARC

L1 キャッシュ (I & D)

L2 キャッシュバンク ( 各 16kB)

( 各 256kB 、 4-way)

[Hardavellas, ISCA’09]

オンチップルータ

• L2 共有型– L2 バンクを全タイルで共有 1 つの大きな共有

キャッシュ– トラフィック量が多い

• L2 非共有型– タイルごとに、プライベートな L1/L2 キャッシュを持つ

– トラフィック量が少ない

省電力ポリシ : アプリ性能オーバヘッド

スタンバイ時は 3-cycle @ Vdd-lowパケットが来たら可能な限り 2-cycle @ Vdd-high

提案ポリシ常に 2 サイクル転送 常に 3 サイクル転送@ Vdd-high @ Vdd-low

省電力ポリシ : アプリ性能オーバヘッド

• L2 共有型 CMP– トラフィック多い– All 2-cycle @ Vdd-high

と比べて、性能 2.1% 減

• L2 非共有型 CMP– トラフィック少ない– All 2-cycle @ Vdd-high

と比べて、性能 1.0% 減

スタンバイ時は 3-cycle @ Vdd-lowパケットが来たら可能な限り 2-cycle @ Vdd-high

提案ポリシ常に 2 サイクル転送 常に 3 サイクル転送@ Vdd-high @ Vdd-low

省電力ポリシ : NoC スタンバイ電力削減量

スタンバイ時は 3-cycle @ Vdd-lowパケットが来たら可能な限り 2-cycle @ Vdd-high

提案ポリシ常に 2 サイクル転送 常に 3 サイクル転送@ Vdd-high @ Vdd-low

省電力ポリシ : NoC スタンバイ電力削減量

• L2 共有型 CMP– トラフィック多い– All 2-cycle @ Vdd-high

と比べて、電力 10.4% 減

• L2 非共有型 CMP– トラフィック少ない– All 2-cycle @ Vdd-high

と比べて、電力 44.4% 減

スタンバイ時は 3-cycle @ Vdd-lowパケットが来たら可能な限り 2-cycle @ Vdd-high

提案ポリシ常に 2 サイクル転送 常に 3 サイクル転送@ Vdd-high @ Vdd-low

BET以下の切り替え多発

まとめ : 多電源可変パイプラインルータの提案

• DVFS for NoC の問題点– ルータごとに周波数が異なる– 異なる周波数ドメイン間の通信が発生

• 多電源可変パイプラインルータ– 動作周波数は固定で、電圧とパイプラインの深さを変える– パイプラインモード 3 種類

• 切り替えポリシ– 低消費電力化ポリシ、タイミング違反回避ポリシ

• 評価結果– 面積オーバヘッドは 14.1% 、 BET は 23 サイクル– アプリ性能は 1.0~ 2.1%減、スタンバイ電力は 10.4~

44.4%減

今後の課題• 温度センサの実装

– 温度変化によるタイミング違反の検出– Oscillation-Ring based Thermal Sensor (ORTS)

• Break-even time を考慮した切り替えポリシ– 現状では、 BET をまったく考慮していないため、– オーバヘッド電力の影響で低消費電力化のメリットが

小さい– E.g., 高負荷時は 2 サイクル @ Vdd-high モードに固

[Yang, ASPDAC’09]

[Wolpert, NOCS’10]

Enable

Pulse counter Thermal level

ご清聴ありがとうございました