Document

チャネルの動的On/Off制御のための
先読みルータアーキテクチャ
松谷 宏紀 (慶大)
鯉渕 道紘 (NII)
王 代涵 (慶大)
天野 英晴 (慶大)
Network-on-Chip (NoC)
• タイルアーキテクチャ
– プロセッサコア
– Network-on-Chip
(NoC)
Core
Router
• NoC アーキテクチャ
– ネットワークトポロジ
– パケットルーティング
– オンチップルータ
タイルアーキテクチャ例 (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
Sun T1
Crossbar (128bit)
Cell BE EIB
Ring (128bit)
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
2-D mesh (32bit)
Source
WH, 2 lanes
On/off
Shortest-path Pipelined CS,
no VC
-
-
Shortest-path Pipelined CS,
no VC
Timeslot
Handshake
Credit
Network-on-Chip (NoC)
• タイルアーキテクチャ
– プロセッサコア
– Network-on-Chip
(NoC)
Core
Router
• NoC アーキテクチャ
– ネットワークトポロジ
– パケットルーティング
– オンチップルータ
– NoC のリーク電力を
減らしたい
タイルアーキテクチャ例 (16-core)
ルータのリーク電力を減らすため,ルータにパワーゲーティングを施す
オンチップルータ: パワーゲーティング
• チャネル (FIFO) への電力供給を On/Off
[松谷,ASPDAC’08]
[松谷,NOCS’08]
– パケットが無ければ  スリープ
– パケットが来たら  ウェイクアップ
ARBITER
X+
sleep
X+
X-
sleep
X-
Y+
sleep
Y+
Y-
sleep
Y5x5 XBAR
CORE
sleep
CORE
オンチップルータ: パワーゲーティング
• チャネル (FIFO) への電力供給を On/Off
[松谷,ASPDAC’08]
[松谷,NOCS’08]
– パケットが無ければ  スリープ
– パケットが来たら  ウェイクアップ
ARBITER
X+
sleep
X+
X-
sleep
XY+
Y+
Y-
Y-
sleep
5x5 XBAR
CORE
sleep
CORE
オンチップルータ: パワーゲーティング
• チャネル (FIFO) への電力供給を On/Off
[松谷,ASPDAC’08]
[松谷,NOCS’08]
– パケットが無ければ  スリープ
– パケットが来たら  ウェイクアップ
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
– 手前のルータで待たされ,
パイプラインストール発生
• バッファの部分的
PG [Chen,ISLPED’03]
– 大きなバッファの一部を常にアクティブ
•
ARBITER
Slow-silent VCs
[松谷,NOCS’08]
ウェイクアップする
X+
sleep
– 仮想チャネルまで待たされる
(VC) 単位の PG
• Look-ahead
ルータ
Xsleep
[松谷,ASPDAC’08]
– 2個前のルータがパケット到着を予め通知
– Dimension-order
routing(固定型) のみを対象
Y+
sleep
Y-
X+
XY+
Y-
sleep
5x5 XBAR
CORE
sleep
CORE
本研究では,様々な 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
Sun T1
Crossbar (128bit)
Cell BE EIB
Ring (128bit)
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)
Intel Teraflops
2-D mesh (32bit)
本発表では2次元メッシュを対象
Shortest-path Pipelined CS,
no VC
-
-
Shortest-path Pipelined CS,
no VC
Timeslot
Handshake
Credit
XY,YX DOR,
WH, no VC
Stall/go
計算コア
odd-even TMルータ
Source
WH, 2 lanes
On/off
既存の NoC : ルーティングの分類
• 固定型ルーティング
– Source-destination 間の
経路は1つに固定
X方向
• ランダム型ルーティング
– Source-destination 間に
複数の経路
– ランダムに1つを選択
Y方向
• 適応型ルーティング
– Source-destination 間に
複数の経路
– 混雑に応じて1つを選択
例) 次元順ルーティング
既存の 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つを選択
• 適応型ルーティング
NW
– Source-destination 間に
複数の経路
– 混雑に応じて1つを選択
SW
West-first の禁止ターン
既存の NoC : North-last routing
• 固定型ルーティング
– Source-destination 間の
経路は1つに固定
• ランダム型ルーティング
– Source-destination 間に
複数の経路
– ランダムに1つを選択
• 適応型ルーティング
NW
NE
– Source-destination 間に
複数の経路
– 混雑に応じて1つを選択
North-last の禁止ターン
既存の NoC : Negative-first routing
• 固定型ルーティング
– Source-destination 間の
経路は1つに固定
• ランダム型ルーティング
– Source-destination 間に
複数の経路
– ランダムに1つを選択
• 適応型ルーティング
NW
ES
– Source-destination 間に
複数の経路
– 混雑に応じて1つを選択
Negative-first の禁止ターン
既存の NoC : Odd-even turn-model
• 固定型ルーティング
偶数列か奇数列かによって禁止ターン違う
– Source-destination 間の
経路は1つに固定
• ランダム型ルーティング
– Source-destination 間に
複数の経路
– ランダムに1つを選択
• 適応型ルーティング
– Source-destination 間に
複数の経路
– 混雑に応じて1つを選択
ES
EN
Odd-even (偶数列) の禁止ターン
NW
SW
Odd-even (奇数列) の禁止ターン
既存の NoC : Opt-y routing (1/3)
• 固定型ルーティング
– Source-destination 間の
経路は1つに固定
• ランダム型ルーティング
• Fully adaptive routing
– 仮想チャネル (VC)を用い,
任意のターンを許可
– NS方向に VC 2本
– Source-destination 間に
複数の経路
– ランダムに1つを選択
WS
NW
SW
• 適応型ルーティング
– Source-destination 間に
複数の経路
– 混雑に応じて1つを選択
WN
NS方向に仮想チャネル0を使う場合
(※) 点線のターンは「これ以上 West
方向に進まないとき」のみ許可
既存の NoC : Opt-y routing (2/3)
• 固定型ルーティング
– Source-destination 間の
経路は1つに固定
• ランダム型ルーティング
• Fully adaptive routing
– 仮想チャネル (VC)を用い,
任意のターンを許可
– NS方向に VC 2本
– Source-destination 間に
複数の経路
– ランダムに1つを選択
• 適応型ルーティング
– Source-destination 間に
複数の経路
– 混雑に応じて1つを選択
NS方向に仮想チャネル1を使う場合
(※) 点線のターンは「これ以上 West
方向に進まないとき」のみ許可
既存の NoC : Opt-y routing (3/3)
• 固定型ルーティング
– Source-destination 間の
経路は1つに固定
• ランダム型ルーティング
– Source-destination 間に
複数の経路
– ランダムに1つを選択
• 適応型ルーティング
– Source-destination 間に
複数の経路
– 混雑に応じて1つを選択
• Fully adaptive routing
– 仮想チャネル (VC)を用い,
任意のターンを許可
– NS方向に VC 2本
N1
N0
S1
S0
N0
N1
S0
S1
NS方向の仮想チャネル番号切替え
(※) 点線のターンは「これ以上 West
方向に進まないとき」のみ許可
既存の NoC : 固定型ルーティング・ルータ
• 衝突しなければ 3 cycle でヘッダがルータを通過
– RC (Routing Computation)
– VSA (Virtual Channel / Switch Allocation)
– ST (Switch Traversal)
•
(1) 出力チャネル
の候補は1つだけ
例)
ルータ(a)
からルータ(c) にパケットを転送
@ROUTER A
@ROUTER B
@ROUTER C
HEAD RC VSA ST
RC VSA ST
RC VSA ST
DATA 1
SA ST
(2)2その出力チャネルに
DATA
SA
対してアービトレーション
DATA 3
1
2
3
4
SA ST
ST
SA
SA
ST
5
6
7
SA ST
ST
SA
SA
ST
8
9
10
ST
SA
ST
11
12
出力チャネルは1つに固定
2ホップ先のチャネルを正確に予測可能
ELAPSED
TIME [CYCLE]
ヘッダがルータ(a)に注入され,
データ3がルータ(c)を通過するまで12サイクル
既存の NoC : 適応型ルーティング・ルータ
• 衝突しなければ 3 cycle でヘッダがルータを通過
– RC (Routing Computation)
– VSA (Virtual Channel / Switch Allocation)
– ST (Switch Traversal)
•
(2) Output selection
(1) 出力チャネルの
function (OSF)
候補は複数個ある
例)
ルータ(a) からルータ(c)
にパケットを転送
@ROUTER A
@ROUTER B
@ROUTER C
HEAD RC VSA ST
RC VSA ST
RC VSA ST
DATA 1
SA ST
(3)2その出力チャネルに
DATA
SA
対してアービトレーション
DATA 3
1
2
3
4
SA ST
ST
SA
SA
ST
5
6
7
SA ST
ST
SA
SA
ST
8
9
10
ST
SA
ST
11
12
1ホップ先で動的に経路が変わる

2ホップ先を予測することは無理
ELAPSED
TIME
[CYCLE]
ヘッダがルータ(a)に注入され,
データ3がルータ(c)を通過するまで12サイクル
発表の流れ
• 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: 次ルータのRCを実行 (自ルータのRCは手前のルータに任せる)
ルータ(b)の出力ポートはルータ(a)が決め,ルータ(c)の出力ポートはルータ(b)が…
@ROUTER A
@ROUTER B
@ROUTER C
HEAD NRC VSA ST NRC VSA ST NRC VSA ST
DATA 1
SA ST
DATA 2
SA
SA ST
ST
SA
DATA 3
1
2
3
SA
ST
SA ST
ST
SA
SA
ST
ST
SA
ST
4
5
6
7
8
9
10 11 12
1ホップ先の出力チャネルを計算
2ホップ先の入力チャネルが判明
ELAPSED
TIME
[CYCLE]
先読み NoC : 固定型ルーティング (2/3)
2ホップ先の入力チャネルに対し,どのように wakeup 信号を発行するか?
• Wakeup-0 型: 配線遅延が小さいとき
– ルータ i の NRC で, ルータ (i+2) を wakeup
– s段パイプラインのとき, (2s-1) サイクル前に wakeup 開始可
• Wakeup-1 型: 配線遅延が大きいとき
– ルータ i の VSA で, ルータ (i+2) を wakeup
– s段パイプラインのとき, (2s-2) サイクル前に wakeup 開始可
@ROUTER B
@ROUTER AWakeup-0
@ROUTER C
HEAD NRC VSA ST NRC VSA ST NRC VSA ST
DATA 1
DATA 2
SA ST
SA ST
Wakeup-1
SA ST
SA
ST
DATA 3
SA
SA
1
2
3
ST
SA ST
SA
ST
4
5
6
7
8
9
ELAPSED TIME [CYCLE]
10
ST
SA
ST
11
12
先読み 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 本
[松谷,ASPDAC’08]
– 禁止ターンがたくさんある
• 実際には何本必要か?
– チャネル当たり 1本 (N/S)
– チャネル当たり 5本
(E/W)
– ルータ当たり 12本
E/W方向への移動
N/S方向への移動
先読み NoC : 適応型ルーティング (1/6)
• 先読み (look-ahead) 型ルータ
– NRC (Next routing computation)
– VSA (Virtual channel / switch allocation)
– ST (Switch traversal)
NRC: 次ルータのRCを実行 (自ルータのRCは手前のルータに任せる)
ルータ(b)の出力ポートはルータ(a)が決め,ルータ(c)の出力ポートはルータ(b)が…
@ROUTER A
@ROUTER B
@ROUTER C
HEAD NRC VSA ST NRC VSA ST NRC VSA ST
DATA 1
SA ST
DATA 2
SA
SA ST
ST
SA
DATA 3
1
2
3
SA
ST
SA ST
ST
SA
SA
ST
ST
SA
ST
4
5
6
7
8
9
10 11 12
1ホップ先の出力チャネルを計算
2ホップ先の入力チャネルが判明
ELAPSED
TIME
[CYCLE]
先読み NoC : 適応型ルーティング (2/6)
2ホップ先の入力チャネルに対し,どのように wakeup 信号を発行するか?
• Wakeup-0 型: 配線遅延が小さいとき
– ルータ i の NRC で, ルータ (i+2) を wakeup
– s段パイプラインのとき, (2s-1) サイクル前に wakeup 開始可
• Wakeup-1 型: 配線遅延が大きいとき
– ルータ i の VSA で, ルータ (i+2) を wakeup
– s段パイプラインのとき, (2s-2) サイクル前に wakeup 開始可
@ROUTER B
@ROUTER AWakeup-0
@ROUTER C
HEAD NRC VSA ST NRC VSA ST NRC VSA ST
DATA 1
DATA 2
SA ST
SA ST
Wakeup-1
SA ST
SA
ST
DATA 3
SA
SA
1
2
3
ST
SA ST
SA
ST
4
5
6
7
8
9
ELAPSED TIME [CYCLE]
10
ST
SA
ST
11
12
先読み NoC : 適応型ルーティング (3/6)
• 適応型ルーティングにおける 2 ホップ先読み
– ルータ (i+1) がどの出力チャネルを選ぶか予測する
• Next output selection function (Next OSF)
– ルータ i がルータ (i+1) になったつもりで
– ルータ (i+1) の output selection function を実行
@ROUTER A
@ROUTER B
@ROUTER C
HEAD NRC VSA ST NRC VSA ST NRC VSA ST
DATA 1
SA ST
(1)
NRC:
DATA
2 次ルータになったつ
SA ST
もりで出力チャネルを計算 
SA
DATA候補は複数個出る
3
SA ST
SA
ST
SA ST
ST
SA
SA
ST
(2) Next OSF:
次ルータになっ
1
2
3
4
5
6
7
8
9
たつもりで OSF を実行ELAPSED TIME [CYCLE]
10
ST
SA
ST
11
12
先読み NoC : 適応型ルーティング (3/6)
• Stateless 型: スループットが低い
– ルータ (i+1) の出力チャネルの集合を O とする
– O のうち,宛先に最短で到達できるチャネル集合を O’ とする
– O’ の中からランダムに選択
• Stateful 型: スループットが高い
– O’ のうち, 現在 busy でない出力チャネルの集合 O’’ とする
– O’’ の中からランダムに選択
@ROUTER A
@ROUTER B
@ROUTER C
HEAD NRC VSA ST NRC VSA ST NRC VSA ST
DATA 1
SA ST
(1)
NRC:
DATA
2 次ルータになったつ
SA ST
もりで出力チャネルを計算 
SA
DATA候補は複数個出る
3
SA ST
SA
ST
SA ST
ST
SA
SA
ST
(2) Next OSF:
次ルータになっ
1
2
3
4
5
6
7
8
9
たつもりで OSF を実行ELAPSED TIME [CYCLE]
10
ST
SA
ST
11
12
先読み NoC : 適応型ルーティング (4/6)
• 適応型ルーティングにおける 2 ホップ先読み
– ルータ i がルータ (i+1) の出力チャネルを Next OSF する
– パケットがルータ i から (i+1) に移動するまでのタイムラグ
– ルータ i の Next OSF 結果が最良とは限らない
パケットがルータ (i+1) に到達するまでに, busy になっているかもしれない
@ROUTER A
@ROUTER B
@ROUTER C
HEAD NRC VSA ST NRC VSA ST NRC VSA ST
DATA 1
SA ST
(1)
NRC:
DATA
2 次ルータになったつ
SA ST
もりで出力チャネルを計算 
SA
DATA候補は複数個出る
3
SA ST
SA
ST
SA ST
ST
SA
SA
ST
(2) Next OSF:
次ルータになっ
1
2
3
4
5
6
7
8
9
たつもりで OSF を実行ELAPSED TIME [CYCLE]
10
ST
SA
ST
11
12
先読み NoC : 適応型ルーティング (4/6)
• Inflexible 型: スループットが低い
– ルータ (i+1) はルータ i が選択した出力チャネルを必ず使う
• Flexible 型: スループットが高い
– ルータ (i+1) はルータ i が選択した出力チャネルが busy なら
– 別の出力チャネルを利用できる
@ROUTER A
@ROUTER B
@ROUTER C
HEAD NRC VSA ST NRC VSA ST NRC VSA ST
DATA 1
SA ST
DATA 2
SA
SA ST
ST
SA
DATA 3
1
2
3
SA
ST
SA ST
ST
SA
SA
ST
4
5
6
7
8
9
ELAPSED TIME [CYCLE]
10
ST
SA
ST
11
12
先読み 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信号 • Opt-y ルーティング
– 信号は何本必要か?
• Node degree d トポロジ
– チャネル当たり (d-1)^2本
– ルータ当たり d(d-1)^2 本
[松谷,ASPDAC’08]
– 禁止ターンがない
• 何本必要か?
– チャネル当たり 7本 (N/S)
– チャネル当たり 7本
(E/W)
– ルータ当たり 28本
E/W方向への移動
N/S方向への移動
先読み NoC : 適応型ルーティング (6/6)
• West-first ルーティング
– 禁止ターンがある
• 実際には何本必要か?
–
–
–
–
–
チャネル当たり 4本 (N)
チャネル当たり 4本 (S)
チャネル当たり 7本 (E)
チャネル当たり 5本 (W)
ルータ当たり 20本
N方向への移動
S方向への移動
W方向への移動
E方向への移動
(※) 他の turn-model では wakeup
信号の配線パターンは異なるが,本
数は同じ
発表の流れ
• Network-on-Chip (NoC)
– ルータのパワーゲーティング
• 既存の NoC アーキテクチャ
– トポロジ, ルーティング
– ルータアーキテクチャ
• 先読み NoC アーキテクチャ
– 固定型ルーティングの場合
– 適応型ルーティングの場合
• 評価
– 制御信号の複雑さ
– 通信遅延とスループット性能
Wakeup
!
評価: 制御信号の複雑さ (1/2)
• Wakeup 信号
– 2ホップ先に送信
– ネットワークで全体で制
御信号は何本必要か?
E/W方向への移動
N/S方向への移動
表: 様々なネットワークサイズにおける wakeup 信号の数
kxk
4x4
8x8
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
(※) West-first, North-last, Negative-first, Odd-even はすべて一緒
評価: 制御信号の複雑さ (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) 増える
表: 先読み機構 (wakeup 信号, nbusy 信号) による配線量の増加量
Next OSF
4x4
8x8
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%
Stateful型でルーティングのadaptivityが高くなると配線量が多くなる
(※) West-first, North-last, Negative-first, Odd-even はすべて一緒
評価: 制御信号の配線遅延
• wakeup信号の配線遅延
– 2ホップ分の距離
– 配線遅延が問題
• パイプライン段の遅延
– 15 FO4 (ハイエンド向け)
– 60 FO4 (組込み向け)
配線距離[mm] vs. 配線遅延[FO4]
• 目標
– トータルで 60 FO4 未満
– NRC と Next OSF に 30
FO4 を消費
90nm CMOS process,
semi-global interconnect
コア間距離が2mmなら,wakeup信号は4mm
評価: スループット性能
• 評価項目
– ウェイクアップ遅延の影響
各種ルーティングのスループット性能
がどれだけ落ちるか?
– 先読み固定型ルーティング
ウェイクアップ遅延の影響をどれだけ
隠蔽できるか?
– 先読み適応型ルーティング
における flexible 型
inflexible 型と flexible 型では性能差
はどのくらいか?
– 先読み適応型ルーティング
における stateful 型
stateless 型と stateful 型では性能
差はどのくらいか?
• ネットワークシミュレーション
– 8 x 8 mesh
– Uniform traffic (16-flit
packet)
– Wormhole (4-flit buffer)
スループット: ウェイクアップ遅延の影響
• Dimension-order
(DOR)
– No PG
– PG (wakeup 4-cycle)
• West-first (WF)
– No PG
– PG (wakeup 4-cycle)
-20.0%
-16.7%
スループット vs. 通信遅延
スループット vs. 通信遅延
ウェイクアップ遅延によって, 9.7% ~ 20.0%スループット性能が低下
スループット: 先読み固定型ルーティング
• Dimension-order (DOR) • West-first (WF)
– No PG
– No PG
– PG (wakeup 4-cycle)
– PG (wakeup 4-cycle)
– PG (wakeup 4-cycle + look-ahead)
-20.0%
-16.7%
スループット vs. 通信遅延
スループット vs. 通信遅延
DOR (固定型) では, 先読みによってスループットの劣化を完全隠蔽
スループット: 先読み適応型 flexible 型
• West first (WF) routing
– Inflexible(wake 4cycle)
– Flexible (wake 4-cycle)
スループット vs. 通信遅延
• Opt-y routing
– Original (wake 4-cycle)
– Flexible (wake 4-cycle)
スループット vs. 通信遅延
Inflexible型は性能劣化. Flexible型はほぼウェイクアップ遅延を隠蔽
スループット: 先読み適応型 stateful 型
• West first (WF) routing
– Stateless(wake 4cycle)
– Stateful (wake 4-cycle)
スループット vs. 通信遅延
• Opt-y routing
– Stateless(wake 4cycle)
– Stateful (wake 4-cycle)
スループット vs. 通信遅延
Uniform trafficでは両者に大差無し. 局所性があればStateful型有利
まとめ: 先読みルータアーキテクチャ
• ルータのパワーゲーティング
– チャネル単位
– ウェイクアップ遅延の影響
Look-ahead ルーティングを応用
• 先読み固定型ルーティング
– ウェイクアップ遅延を完全に隠蔽
• 先読み適応型ルーティング
– Flexible 型によりウェイクアップ
遅延をほぼ隠蔽
– Stateless 型 vs. Stateful 型
• 今後の課題
– ハードウェア実装
– 面積オーバヘッドの見積り
Wakeup
!
ご清聴ありがとうございました