チャネルの動的 On/Off 制御のための 先読みルータアーキテクチャ

46
チチチチチチチ On/Off チチチチチチ チチチチチチチチチチチチチ チチ チチ ( チチ ) チチ チチ ( NII ) チ チチ ( チチ ) チチ チチ ( チチ )

description

チャネルの動的 On/Off 制御のための 先読みルータアーキテクチャ. 松谷 宏紀 (慶大) 鯉渕 道紘 (NII) 王  代涵 (慶大) 天野 英晴 (慶大). Network-on-Chip (NoC). タイルアーキテクチャ プロセッサコア Network-on-Chip (NoC) NoC アーキテクチャ ネットワークトポロジ パケットルーティング オンチップルータ. Core. Router. タイルアーキテクチャ例 (16- core). 代表的な NoC アーキテクチャ. Network-on-Chip (NoC). - PowerPoint PPT Presentation

Transcript of チャネルの動的 On/Off 制御のための 先読みルータアーキテクチャ

チャネルの動的 On/Off 制御のための

先読みルータアーキテクチャ

松谷 宏紀 ( 慶大 )

鯉渕 道紘 ( NII )

王  代涵 ( 慶大 )

天野 英晴 ( 慶大 )

Network-on-Chip (NoC)• タイルアーキテク

チャ– プロセッサコア– Network-on-Chip (NoC)

• NoC アーキテクチャ– ネットワークトポロジ– パケットルーティング– オンチップルータ

RouterRouterCoreCore

タイルアーキテクチャ例 (16-core)

代表的な NoC アーキテクチャシステム名 トポロジ ルーティン

グスイッチン

グフロー制御

MIT RAW 2-D mesh (32bit) XY DOR WH, no VC Credit

UPMC SPIN Fat Tree (32bit) Up*/down* WH, no VC Credit

QuickSilver ACM H-Tree (32bit) Up*/down* 1-flit, no VC Credit

UMass Amherst aSOC

2-D mesh Shortest-path Pipelined CS, no VC

Timeslot

Sun T1 Crossbar (128bit) - - Handshake

Cell BE EIB Ring (128bit) Shortest-path Pipelined CS, no VC

Credit

TRIPS (operand)

2-D mesh (109bit)

YX DOR 1-flit, no VC On/off

TRIPS (on-chip) 2-D mesh (128bit)

YX DOR WH, 4 VCs Credit

Intel SCC 2-D torus (32bt) XY,YX DOR, odd-even TM

WH, no VC Stall/go

Intel Teraflops NoC

2-D mesh (32bit) Source routing

WH, 2 lanes On/off

TILE64 iMesh 2-D mesh (32bit) XY DOR WH, no VC Credit

Network-on-Chip (NoC)• タイルアーキテク

チャ– プロセッサコア– Network-on-Chip (NoC)

• NoC アーキテクチャ– ネットワークトポロジ– パケットルーティング– オンチップルータ

– NoC のリーク電力を 減らしたい

RouterRouterCoreCore

タイルアーキテクチャ例 (16-core)

ルータのリーク電力を減らすため , ルータにパワーゲーティングを施す

オンチップルータ : パワーゲーティング

• チャネル (FIFO) への電力供給を On/Off– パケットが無ければ スリープ– パケットが来たら ウェイクアップ

5x5 XBAR

ARBITER

X+

X-

Y+

Y-

CORE

X+

X-

Y+

Y-

CORE

sleep

sleep

sleep

sleep

sleep

[ 松谷 ,ASPDAC’08]

[ 松谷 ,NOCS’08]

オンチップルータ : パワーゲーティング

• チャネル (FIFO) への電力供給を On/Off– パケットが無ければ スリープ– パケットが来たら ウェイクアップ

5x5 XBAR

ARBITER

X+

X-

Y+

Y-

CORE

X+

X-

Y+

Y-

CORE

sleep

sleep

sleep

sleep

[ 松谷 ,ASPDAC’08]

[ 松谷 ,NOCS’08]

オンチップルータ : パワーゲーティング

• チャネル (FIFO) への電力供給を On/Off– パケットが無ければ スリープ– パケットが来たら ウェイクアップ

5x5 XBAR

ARBITER

X+

X-

Y+

Y-

CORE

X+

X-

Y+

Y-

CORE

sleep

sleep

sleep

sleep

sleep

ただし , 動的なスリープ制御によって性能のオーバヘッドが生じる

[ 松谷 ,ASPDAC’08]

[ 松谷 ,NOCS’08]

パワーゲーティング : 性能オーバヘッド

• ウェイクアップ遅延– スリープ中のチャネルにパケットが到達– 手前のルータで待たされ , パイプラインストール発生

5x5 XBAR

ARBITER

X+

X-

Y+

Y-

CORE

X+

X-

Y+

Y-

CORE

sleep

sleep

sleep

sleep

sleep

ウェイクアップするまで待たさ

れる

例 ) Intel’s 80-tile の FPMAC は 6-cycle[Vangal,ISSCC’07]

• チャネルの動的 On/Off– 履歴などに基づきチャネルの電源を On/Off

• バッファの部分的 PG– 大きなバッファの一部を常にアクティブ

• Slow-silent VCs– 仮想チャネル (VC) 単位の PG

• Look-ahead ルータ– 2 個前のルータがパケット到着を予め通知– Dimension-order routing( 固定型 ) のみを対象

[ 松谷 ,ASPDAC’08]

[ 松谷 ,NOCS’08]

[Chen,ISLPED’03]

[Soteriou,TPDS’07]

本研究では , 様々な NoC に“先読みによるパワーゲーティング”を適用

発表の流れ• Network-on-Chip (NoC)

– ルータのパワーゲーティング

• 既存の NoC アーキテクチャ– トポロジ , ルーティング– ルータアーキテクチャ

• 先読み NoC アーキテクチャ– 固定型ルーティングの場合– 適応型ルーティングの場合

• 評価– 制御信号の複雑さ– 通信遅延とスループット性能

Wakeup!

既存の NoC アーキテクチャシステム名 トポロジ ルーティン

グスイッチン

グフロー制御

MIT RAW 2-D mesh (32bit) XY DOR WH, no VC Credit

UPMC SPIN Fat Tree (32bit) Up*/down* WH, no VC Credit

QuickSilver ACM H-Tree (32bit) Up*/down* 1-flit, no VC Credit

UMass Amherst aSOC

2-D mesh Shortest-path Pipelined CS, no VC

Timeslot

Sun T1 Crossbar (128bit) - - Handshake

Cell BE EIB Ring (128bit) Shortest-path Pipelined CS, no VC

Credit

TRIPS (operand)

2-D mesh (109bit)

YX DOR 1-flit, no VC On/off

TRIPS (on-chip) 2-D mesh (128bit)

YX DOR WH, 4 VCs Credit

Intel SCC 2-D torus (32bt) XY,YX DOR, odd-even TM

WH, no VC Stall/go

Intel Teraflops NoC

2-D mesh (32bit) Source routing

WH, 2 lanes On/off

TILE64 iMesh 2-D mesh (32bit) XY DOR WH, no VC Credit

ルータ 計算コア

本発表では 2 次元メッシュを対象

既存の NoC : ルーティングの分類• 固定型ルーティング

– Source-destination 間の経路は 1 つに固定

• ランダム型ルーティング– Source-destination 間に

複数の経路– ランダムに 1 つを選択

• 適応型ルーティング– Source-destination 間に

複数の経路– 混雑に応じて 1 つを選択

例 ) 次元順ルーティング

X方向

Y方向

既存の NoC : ルーティングの分類• 固定型ルーティング

– Source-destination 間の経路は 1 つに固定

• ランダム型ルーティング– Source-destination 間に

複数の経路– ランダムに 1 つを選択

• 適応型ルーティング– Source-destination 間に

複数の経路– 混雑に応じて 1 つを選択

例 ) West-first, Negative-first, North-last, Odd-even, Opt-y, DP

既存の NoC : West-first routing

• 固定型ルーティング– Source-destination 間の

経路は 1 つに固定

• ランダム型ルーティング– Source-destination 間に

複数の経路– ランダムに 1 つを選択

• 適応型ルーティング– Source-destination 間に

複数の経路– 混雑に応じて 1 つを選択

West-first の禁止ターン

NW

SW

既存の NoC : North-last routing

• 固定型ルーティング– Source-destination 間の

経路は 1 つに固定

• ランダム型ルーティング– Source-destination 間に

複数の経路– ランダムに 1 つを選択

• 適応型ルーティング– Source-destination 間に

複数の経路– 混雑に応じて 1 つを選択

North-last の禁止ターン

NW NE

既存の NoC : Negative-first routing

• 固定型ルーティング– Source-destination 間の

経路は 1 つに固定

• ランダム型ルーティング– Source-destination 間に

複数の経路– ランダムに 1 つを選択

• 適応型ルーティング– Source-destination 間に

複数の経路– 混雑に応じて 1 つを選択

Negative-first の禁止ターン

NW ES

既存の NoC : Odd-even turn-model

• 固定型ルーティング– Source-destination 間の

経路は 1 つに固定

• ランダム型ルーティング– Source-destination 間に

複数の経路– ランダムに 1 つを選択

• 適応型ルーティング– Source-destination 間に

複数の経路– 混雑に応じて 1 つを選択

Odd-even ( 奇数列 ) の禁止ターン

Odd-even ( 偶数列 ) の禁止ターン

偶数列か奇数列かによって禁止ターン違う

NW

SW

EN

ES

既存の NoC : Opt-y routing (1/3)

• 固定型ルーティング– Source-destination 間の

経路は 1 つに固定

• ランダム型ルーティング– Source-destination 間に

複数の経路– ランダムに 1 つを選択

• 適応型ルーティング– Source-destination 間に

複数の経路– 混雑に応じて 1 つを選択

NS 方向に仮想チャネル 0 を使う場合

SW

NWWS

WN

• Fully adaptive routing– 仮想チャネル (VC) を用

い , 任意のターンを許可

– NS 方向に VC 2 本

( ) ※ 点線のターンは「これ以上 West 方向に進まないとき」のみ許可

既存の NoC : Opt-y routing (2/3)

• 固定型ルーティング– Source-destination 間の

経路は 1 つに固定

• ランダム型ルーティング– Source-destination 間に

複数の経路– ランダムに 1 つを選択

• 適応型ルーティング– Source-destination 間に

複数の経路– 混雑に応じて 1 つを選択

NS 方向に仮想チャネル 1 を使う場合

• Fully adaptive routing– 仮想チャネル (VC) を用

い , 任意のターンを許可

– NS 方向に VC 2 本

( ) ※ 点線のターンは「これ以上 West 方向に進まないとき」のみ許可

既存の NoC : Opt-y routing (3/3)

• 固定型ルーティング– Source-destination 間の

経路は 1 つに固定

• ランダム型ルーティング– Source-destination 間に

複数の経路– ランダムに 1 つを選択

• 適応型ルーティング– Source-destination 間に

複数の経路– 混雑に応じて 1 つを選択

NS 方向の仮想チャネル番号切替え

• Fully adaptive routing– 仮想チャネル (VC) を用

い , 任意のターンを許可

– NS 方向に VC 2 本

( ) ※ 点線のターンは「これ以上 West 方向に進まないとき」のみ許可

N0

N1

N1

N0

S0

S1

S1

S0

既存の NoC : 固定型ルーティング・ルータ

• 衝突しなければ 3 cycle でヘッダがルータを通過– RC (Routing Computation)– VSA (Virtual Channel / Switch Allocation)– ST (Switch Traversal)

• 例 ) ルータ (a) からルータ (c) にパケットを転送

RC VSA ST

ST

ST

ST

RC VSA ST

ST

ST

ST

RC VSA ST

ST

ST

ST

ELAPSED TIME [CYCLE]

1 2 3 4 5 6 7 8 9 10 11 12

@ROUTER A @ROUTER B @ROUTER C

HEAD

DATA 1

DATA 2

DATA 3

ヘッダがルータ (a) に注入され , データ 3 がルータ (c) を通過するまで12 サイクル

SA

SA

SA

SA

SA

SA

SA

SA

SA

(1) 出力チャネルの候補は 1 つ

だけ

(2) その出力チャネルに対してアービトレー

ション

出力チャネルは 1 つに固定 2 ホップ先のチャネルを正確に予測可能

既存の NoC : 適応型ルーティング・ルータ

• 衝突しなければ 3 cycle でヘッダがルータを通過– RC (Routing Computation)– VSA (Virtual Channel / Switch Allocation)– ST (Switch Traversal)

• 例 ) ルータ (a) からルータ (c) にパケットを転送

RC VSA ST

ST

ST

ST

RC VSA ST

ST

ST

ST

RC VSA ST

ST

ST

ST

ELAPSED TIME [CYCLE]

1 2 3 4 5 6 7 8 9 10 11 12

@ROUTER A @ROUTER B @ROUTER C

HEAD

DATA 1

DATA 2

DATA 3

ヘッダがルータ (a) に注入され , データ 3 がルータ (c) を通過するまで12 サイクル

SA

SA

SA

SA

SA

SA

SA

SA

SA

(1) 出力チャネルの候補は複数個あ

(3) その出力チャネルに対してアービトレー

ション

(2) Output selection function

(OSF)

1 ホップ先で動的に経路が変わる 2 ホップ先を予測することは無理

発表の流れ• Network-on-Chip (NoC)

– ルータのパワーゲーティング

• 既存の NoC アーキテクチャ– トポロジ , ルーティング– ルータアーキテクチャ

• 先読み NoC アーキテクチャ– 固定型ルーティングの場合– 適応型ルーティングの場合

• 評価– 制御信号の複雑さ– 通信遅延とスループット性能

Wakeup!

先読み NoC : 固定型ルーティング (1/3)

• 先読み (look-ahead) 型ルータ– NRC (Next routing computation)– VSA (Virtual channel / switch allocation)– ST (Switch traversal)

NRC VSA ST

ST

ST

ST

VSA ST

ST

ST

ST

VSA ST

ST

ST

ST

ELAPSED TIME [CYCLE]1 2 3 4 5 6 7 8 9 10 11 12

@ROUTER A @ROUTER B @ROUTER C

HEAD

DATA 1

DATA 2

DATA 3

NRC NRC

NRC: 次ルータの RC を実行 ( 自ルータの RC は手前のルータに任せる )

ルータ (b) の出力ポートはルータ (a) が決め , ルータ (c) の出力ポートはルータ (b) が…

SA

SA

SA

SA

SA

SA

SA

SA

SA

1 ホップ先の出力チャネルを計算 2 ホップ先の入力チャネルが判明

先読み NoC : 固定型ルーティング (2/3)

• Wakeup-0 型 : 配線遅延が小さいとき– ルータ i の NRC で , ルータ (i+2) を wakeup– s 段パイプラインのとき , (2s-1) サイクル前に wakeup 開始可

• Wakeup-1 型 : 配線遅延が大きいとき– ルータ i の VSA で , ルータ (i+2) を wakeup– s 段パイプラインのとき , (2s-2) サイクル前に wakeup 開始可

NRC VSA ST

ST

ST

ST

VSA ST

ST

ST

ST

VSA ST

ST

ST

ST

ELAPSED TIME [CYCLE]1 2 3 4 5 6 7 8 9 10 11 12

@ROUTER A @ROUTER B @ROUTER C

HEAD

DATA 1

DATA 2

DATA 3

NRC NRC

SA

SA

SA

SA

SA

SA

SA

SA

SA

Wakeup-0

Wakeup-1

2 ホップ先の入力チャネルに対し , どのように wakeup 信号を発行するか ?

先読み NoC : 固定型ルーティング (3/3)

• 2 ホップ先に wakeup信号– 信号は何本必要か?

• Node degree d トポロジ– チャネル当たり (d-1)^2

本– ルータ当たり d(d-1)^2

[ 松谷 ,ASPDAC’08]

先読み NoC : 固定型ルーティング (3/3)

• 2 ホップ先に wakeup信号– 信号は何本必要か?

• Node degree d トポロジ– チャネル当たり (d-1)^2

本– ルータ当たり d(d-1)^2

• 次元順ルーティング– 禁止ターンがたくさん

ある

• 実際には何本必要か?– チャネル当たり 1 本

(N/S)– チャネル当たり 5 本

(E/W)– ルータ当たり 12 本

[ 松谷 ,ASPDAC’08]

E/W 方向への移動 N/S 方向への移動

先読み NoC : 適応型ルーティング (1/6)

• 先読み (look-ahead) 型ルータ– NRC (Next routing computation)– VSA (Virtual channel / switch allocation)– ST (Switch traversal)

NRC VSA ST

ST

ST

ST

VSA ST

ST

ST

ST

VSA ST

ST

ST

ST

ELAPSED TIME [CYCLE]1 2 3 4 5 6 7 8 9 10 11 12

@ROUTER A @ROUTER B @ROUTER C

HEAD

DATA 1

DATA 2

DATA 3

NRC NRC

NRC: 次ルータの RC を実行 ( 自ルータの RC は手前のルータに任せる )

ルータ (b) の出力ポートはルータ (a) が決め , ルータ (c) の出力ポートはルータ (b) が…

SA

SA

SA

SA

SA

SA

SA

SA

SA

1 ホップ先の出力チャネルを計算 2 ホップ先の入力チャネルが判明

先読み NoC : 適応型ルーティング (2/6)

• Wakeup-0 型 : 配線遅延が小さいとき– ルータ i の NRC で , ルータ (i+2) を wakeup– s 段パイプラインのとき , (2s-1) サイクル前に wakeup

開始可• Wakeup-1 型 : 配線遅延が大きいとき

– ルータ i の VSA で , ルータ (i+2) を wakeup– s 段パイプラインのとき , (2s-2) サイクル前に wakeup

開始可NRC VSA ST

ST

ST

ST

VSA ST

ST

ST

ST

VSA ST

ST

ST

ST

ELAPSED TIME [CYCLE]1 2 3 4 5 6 7 8 9 10 11 12

@ROUTER A @ROUTER B @ROUTER C

HEAD

DATA 1

DATA 2

DATA 3

NRC NRC

SA

SA

SA

SA

SA

SA

SA

SA

SA

Wakeup-0

Wakeup-1

2 ホップ先の入力チャネルに対し , どのように wakeup 信号を発行するか ?

先読み NoC : 適応型ルーティング (3/6)

NRC VSA ST

ST

ST

ST

VSA ST

ST

ST

ST

VSA ST

ST

ST

ST

ELAPSED TIME [CYCLE]1 2 3 4 5 6 7 8 9 10 11 12

@ROUTER A @ROUTER B @ROUTER C

HEAD

DATA 1

DATA 2

DATA 3

NRC NRC

SA

SA

SA

SA

SA

SA

SA

SA

SA

• 適応型ルーティングにおける 2 ホップ先読み– ルータ (i+1) がどの出力チャネルを選ぶか予測する

• Next output selection function (Next OSF)– ルータ i がルータ (i+1) になったつもりで– ルータ (i+1) の output selection function を実行

(1) NRC: 次ルータになったつもりで出力チャネルを計算 候補は複数個出る

(2) Next OSF: 次ルータになったつもりで OSF を実

先読み NoC : 適応型ルーティング (3/6)

• Stateless 型 : スループットが低い– ルータ (i+1) の出力チャネルの集合を O とする– O のうち ,宛先に最短で到達できるチャネル集合を O’ とする– O’ の中からランダムに選択

• Stateful 型 : スループットが高い– O’ のうち , 現在 busy でない出力チャネルの集合 O’’ とする– O’’ の中からランダムに選択

NRC VSA ST

ST

ST

ST

VSA ST

ST

ST

ST

VSA ST

ST

ST

ST

ELAPSED TIME [CYCLE]1 2 3 4 5 6 7 8 9 10 11 12

@ROUTER A @ROUTER B @ROUTER C

HEAD

DATA 1

DATA 2

DATA 3

NRC NRC

SA

SA

SA

SA

SA

SA

SA

SA

SA

(1) NRC: 次ルータになったつもりで出力チャネルを計算 候補は複数個出る

(2) Next OSF: 次ルータになったつもりで OSF を実

先読み NoC : 適応型ルーティング (4/6)

NRC VSA ST

ST

ST

ST

VSA ST

ST

ST

ST

VSA ST

ST

ST

ST

ELAPSED TIME [CYCLE]1 2 3 4 5 6 7 8 9 10 11 12

@ROUTER A @ROUTER B @ROUTER C

HEAD

DATA 1

DATA 2

DATA 3

NRC NRC

SA

SA

SA

SA

SA

SA

SA

SA

SA

• 適応型ルーティングにおける 2 ホップ先読み– ルータ i がルータ (i+1) の出力チャネルを Next OSF する– パケットがルータ i から (i+1) に移動するまでのタイムラグ– ルータ i の Next OSF 結果が最良とは限らない

パケットがルータ (i+1) に到達するまでに , busy になっているかもしれない

(1) NRC: 次ルータになったつもりで出力チャネルを計算 候補は複数個出る

(2) Next OSF: 次ルータになったつもりで OSF を実

先読み NoC : 適応型ルーティング (4/6)

NRC VSA ST

ST

ST

ST

VSA ST

ST

ST

ST

VSA ST

ST

ST

ST

ELAPSED TIME [CYCLE]1 2 3 4 5 6 7 8 9 10 11 12

@ROUTER A @ROUTER B @ROUTER C

HEAD

DATA 1

DATA 2

DATA 3

NRC NRC

SA

SA

SA

SA

SA

SA

SA

SA

SA

• Inflexible 型 : スループットが低い– ルータ (i+1) はルータ i が選択した出力チャネルを必ず使う

• Flexible 型 : スループットが高い– ルータ (i+1) はルータ i が選択した出力チャネルが busy なら– 別の出力チャネルを利用できる

先読み NoC : 適応型ルーティング (5/6)

• Inflexible 型 : スループットが低い– ルータ (i+1) はルータ i が選択した出力チャネルを必ず使う

• Flexible 型 : スループットが高い– ルータ (i+1) はルータ i が選択した出力チャネルが busy なら– 別の出力チャネルを利用できる

予めウェイクアップしたチャネルとは別のチャネルを使うことになるウェイクアップ遅延 , パワースイッチ On/Off エネルギーの無駄では?

• 別チャネルをウェイクアップさせるオーバヘッドは小さい– 予めウェイクアップしたチャネル CH0 が busy 他のパケット

が占有中– CH0 が free になるのを待つより ,別チャネルを起こしたほうが良

い• 予めウェイクアップさせるのに要した電力は無駄にならない– 予めウェイクアップしたチャネル CH0 が busy 他のパケット

が占有中– CH0 は別パケットによって使われているので ,起こしても無駄では

なかった

先読み NoC : 適応型ルーティング (6/6)

• 2 ホップ先に wakeup信号– 信号は何本必要か?

• Node degree d トポロジ– チャネル当たり (d-1)^2

本– ルータ当たり d(d-1)^2

• Opt-y ルーティング– 禁止ターンがない

• 何本必要か?– チャネル当たり 7 本

(N/S)– チャネル当たり 7 本

(E/W)– ルータ当たり 28 本

[ 松谷 ,ASPDAC’08]

E/W 方向への移動 N/S 方向への移動

先読み NoC : 適応型ルーティング (6/6)

• West-first ルーティング– 禁止ターンがある

• 実際には何本必要か?– チャネル当たり 4 本 (N)

– チャネル当たり 4 本 (S)

– チャネル当たり 7 本 (E)

– チャネル当たり 5 本 (W)

– ルータ当たり 20 本

N 方向への移動 S 方向への移動

E 方向への移動

( ) ※ 他の turn-model では wakeup 信号の配線パターンは異なるが , 本数は同じ

W 方向への移動

発表の流れ• Network-on-Chip (NoC)

– ルータのパワーゲーティング

• 既存の NoC アーキテクチャ– トポロジ , ルーティング– ルータアーキテクチャ

• 先読み NoC アーキテクチャ– 固定型ルーティングの場合– 適応型ルーティングの場合

• 評価– 制御信号の複雑さ– 通信遅延とスループット性能

Wakeup!

評価 : 制御信号の複雑さ (1/2)

• Wakeup 信号– 2 ホップ先に送信– ネットワークで全体で

制御信号は何本必要か?

k x k 4 x 4 8 x 8 16 x 16

Dimension-order 12k^2 100 580 2,692

West-first 20k^2 170 970 4,490

Opt-y 28k^2 240 1,360 6,288

表 : 様々なネットワークサイズにおける wakeup 信号の数

( ) ※ West-first, North-last, Negative-first, Odd-even はすべて一緒

E/W 方向への移動 N/S 方向への移動

評価 : 制御信号の複雑さ (2/2)

• k x k メッシュの配線量 L = 4w * k (k-1) * l– w: リンク幅 ( 例えば , データ幅 64-bit + 制御信号 4-bit)

– l: 隣接ルータ間距離 ( 例えば , 1mm)

• 先読み機構による配線量の増加量 (p は wakeup 信号の数 )

– Stateless 型は (2p * l), Stateful 型は (4p * l) 増える

Next OSF 4 x 4 8 x 8 16 x 16

Dimension-order stateless 6.1% 7.6% 8.2%

West-first stateless 10.4% 12.7% 13.8%

Opt-y stateless 14.7% 17.9% 19.3%

West-first stateful 20.8% 25.5% 27.5%

Opt-y stateful 29.4% 35.7% 38.5%

表 : 先読み機構 (wakeup 信号 , nbusy 信号 ) による配線量の増加量

( ) ※ West-first, North-last, Negative-first, Odd-even はすべて一緒Stateful 型でルーティングの adaptivity が高くなると配線量が多くなる

評価 : 制御信号の配線遅延• wakeup 信号の配線遅延

– 2 ホップ分の距離– 配線遅延が問題

• パイプライン段の遅延– 15 FO4 (ハイエンド向

け )– 60 FO4 (組込み向け )

• 目標– トータルで 60 FO4 未満– NRC と Next OSF に 3

0 FO4 を消費

配線距離 [mm] vs. 配線遅延 [FO4]

90nm CMOS process, semi-global interconnect

コア間距離が 2mm なら ,wakeup 信号は 4mm

評価 : スループット性能• 評価項目

– ウェイクアップ遅延の影響

– 先読み固定型ルーティング

– 先読み適応型ルーティングにおける flexible 型

– 先読み適応型ルーティングにおける stateful 型

• ネットワークシミュレーション– 8 x 8 mesh– Uniform traffic (16-flit packet)– Wormhole (4-flit buffer)

各種ルーティングのスループット性能がどれだけ落ちるか ?

ウェイクアップ遅延の影響をどれだけ隠蔽できるか ?

inflexible 型と flexible 型では性能差はどのくらいか ?

stateless 型と stateful 型では性能差はどのくらいか ?

スループット : ウェイクアップ遅延の影響

• Dimension-order (DOR)– No PG– PG (wakeup 4-cycle)

• West-first (WF)– No PG– PG (wakeup 4-cycle)

-20.0%

-16.7%

ウェイクアップ遅延によって , 9.7% ~ 20.0% スループット性能が低下

スループット vs. 通信遅延 スループット vs. 通信遅延

スループット : 先読み固定型ルーティング

• Dimension-order (DOR)– No PG– PG (wakeup 4-cycle)– PG (wakeup 4-cycle + look-ahead)

• West-first (WF)– No PG– PG (wakeup 4-cycle)

-20.0%

-16.7%

DOR ( 固定型 ) では , 先読みによってスループットの劣化を完全隠蔽

スループット vs. 通信遅延 スループット vs. 通信遅延

スループット : 先読み適応型 flexible 型

• West first (WF) routing– Inflexible(wake 4-

cycle)– Flexible (wake 4-cycle)

• Opt-y routing– Original (wake 4-cycle)– Flexible (wake 4-cycle)

スループット vs. 通信遅延 スループット vs. 通信遅延

Inflexible 型は性能劣化 . Flexible 型はほぼウェイクアップ遅延を隠蔽

スループット : 先読み適応型 stateful 型

• West first (WF) routing– Stateless(wake 4-

cycle)– Stateful (wake 4-cycle)

• Opt-y routing– Stateless(wake 4-

cycle)– Stateful (wake 4-cycle)

スループット vs. 通信遅延 スループット vs. 通信遅延

Uniform traffic では両者に大差無し . 局所性があれば Stateful 型有利

まとめ : 先読みルータアーキテクチャ• ルータのパワーゲーティング

– チャネル単位– ウェイクアップ遅延の影響

• 先読み固定型ルーティング– ウェイクアップ遅延を完全に隠蔽

• 先読み適応型ルーティング– Flexible 型によりウェイクアッ

プ遅延をほぼ隠蔽– Stateless 型 vs. Stateful 型

• 今後の課題– ハードウェア実装– 面積オーバヘッドの見積り

Wakeup!

Look-ahead ルーティングを応用

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