予測機構を持った低遅延オンチップ ルータアーキテクチャ
DESCRIPTION
予測機構を持った低遅延オンチップ ルータアーキテクチャ. 松谷 宏紀 ( 慶大 ) 鯉渕 道紘 (NII) 天野 英晴 ( 慶大 ) 吉永 努 ( 電通大 ). 例えば , 1 ホップ = 3 サイクルとすると ,. 16-core mesh なら最大 21 サイクル. 64-core mesh なら最大 45 サイクル. Network-on-Chip (NoC). タイルアーキテクチャ Tilera Tile64 (64 コア ) Intel 80-core (80 コア ) 通信遅延 - PowerPoint PPT PresentationTRANSCRIPT
予測機構を持った低遅延オンチップ
ルータアーキテクチャ
松谷 宏紀 ( 慶大 )鯉渕 道紘 (NII)天野 英晴 ( 慶大 )吉永 努 ( 電通大 )
Network-on-Chip (NoC)• タイルアーキテクチャ
– Tilera Tile64 (64 コア )– Intel 80-core (80 コア )
• 通信遅延– SRC から DST へパケッ
トが届くまでのサイクル数
16-core Tile architecture
On-chip routerCore
例えば , 1 ホップ = 3 サイクルとすると ,16-core mesh なら最大 21 サイクル64-core mesh なら最大 45 サイクル
タイル数は増える傾向にある
例 ) 要求を出して , パケットが届くまでに 1000-cycle かかったら使い物にならない
Network-on-Chip (NoC)• タイルアーキテクチャ
– Tilera Tile64 (64 コア )– Intel 80-core (80 コア )
• 通信遅延– SRC から DST へパケッ
トが届くまでのサイクル数
• トポロジを工夫する– 例 : Mesh Torus
• ルータを工夫する– 例 : 3 サイクル 1 サイク
ル
タイル数は増える傾向にある
遅延を減らす 2 つのアプローチ
16-core Tile architecture
On-chip routerCore
発表の流れ• Network-on-Chip (NoC)• ルータアーキテクチャ
– 通常のルータ , 低遅延ルータ– 予測ルータ
• 予測ルータアーキテクチャ– データパス構造– バッファ管理 , Stop 機構– Kill 機構
• 評価– 面積 , 消費エネルギー– 通信遅延
[ 吉永 ,SACSIS’07]
オンチップルータ : ハードウェア構成• 5 入力 5 出力の WH ルータ , データ ( フリット ) 幅は 64-bi
t
5x5 XBAR
ARBITER
FIFO
FIFO
FIFO
FIFO
FIFOX+
X-
Y+
Y-
CORE
X+
X-
Y+
Y-
CORE
( ) ※ 配置配線後のゲート数は 33 [kgates] 前後
1 ポート当り n個の入力バッファ ( この図では 2 系統 ) を持つ 仮想チャネル n本
[ 松谷 ,NOCS’08]
通常のルータ : 3 段パイプライン
• 衝突しなければ 3 cycle でヘッダがルータを通過– RC (Routing computation)– VSA (Virtual channel / switch allocation)– ST (Switch traversal)
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 サイクル
RC が終わらないと VSA を実行できない
Look-ahead ルータ : 3 段パイプライン
• 衝突しなければ 3 cycle でヘッダがルータを通過– 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 が終わらなくても VSA を実行できる
NRC: 次ルータの RC を実行 ( 自ルータの RC は手前のルータに任せる )
ルータ (b) の出力ポートはルータ (a) が決め , ルータ (c) の出力ポートはルータ (b) が…
一般的な低遅延ルータ : 2 段パイプライン
• 衝突しなければ 2 cycle でヘッダがルータを通過– NRC + VSA (Next routing computation / switch allocation)– ST (Switch traversal)
NRCVSA ST
ELAPSED TIME [CYCLE]
1 2 3 4 5 6 7 8 9
@Router A
HEAD
DATA 1
DATA 2
DATA 3
NRCVSA ST NRC
VSA ST
@Router B @Router C
NRC と VSA に依存性がないので並列実行できる 2 サイクル転送
ヘッダがルータ (a) に注入され , データ 3 がルータ (c) を通過するまで 9サイクル
1-cycle ルータもあるが ,1 ステージに詰込み過ぎ 動作周波数悪化
W. Dally, “Principles and Practices of Interconnection Networks” (2004)
• 別アプローチ 1 – Express virtual channels– 非隣接ルータ間に仮想的なバイパス経路– 隣接間通信が多いと効果が薄い
• 別アプローチ 2 – Preferred path– XY ルーティングを想定し , パケットが直進すると予測– クロスバを迂回する低遅延なパス
[Kumar,ISCA’07]
[Michelogiannakis,NOCS’07]
予測ルータ : Yet another 1-cycle router• 予測による 1 サイクル転送
– どの出力ポートが使われるか予測する (RC をプレ実行 )– 予測した出力ポートでクロスバ調停を済ます (SA をプ
レ実行 )– 予測が正しければ ST だけ (1 サイクル転送 )
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
1 ステージに処理を詰込まない ; 予測が 70% 当たれば 1.6 サイクル転送
予測が当たれば , RC と SA は省
略
予測アルゴリズム : 直前ポートを使う , 直進すると予測 , 履歴を使うなど
[ 吉永 ,SACSIS’07][ 鯉渕 ,SACSIS’08]
予測機構付きルータ : これまでの成果
• 予測を用いた低遅延ネットワークの提案– 並列計算機ネットワーク向けにスループット評価– 予測アルゴリズムの比較
• NoC における予測ルーティング– 予測ルーティングを NoC に応用– 予測成功率の解析 , スループット評価
• 本発表では , 予測ルータアーキテクチャを検討– データパス構造– バッファ管理– Stop 機構– Kill 機構
[ 吉永 ,SACSIS’07]
[ 鯉渕 ,SACSIS’08]
上記の論文は , 予測ルータアーキテクチャの詳細をカバーしていない
2 つのデータパス ( 予測用とバックアップ用 )
2 つのデータパスでバッファを共有 面積抑える片方のデータパスを早期に止める 電力抑える予測失敗時の無効フリットの伝播を止める
発表の流れ• Network-on-Chip (NoC)• ルータアーキテクチャ
– 通常のルータ , 低遅延ルータ– 予測ルータ
• 予測ルータアーキテクチャ– データパス構造– バッファ管理 , Stop 機構– Kill 機構
• 評価– 面積 , 消費エネルギー– 通信遅延
[ 吉永 ,SACSIS’07]
ルータの構成 : 通常ルータ vs. 予測ルータ
• 通常のルータ • 予測ルータ
• 予測器– チャネル毎に持つ– 直前ポート予測 (LP) など
• 事前アービトレーション– 予測に基づき , 事前にク
ロスバを割り当てる
Arbiter
5x5 XBAR
FIFO
FIFO
( 直前ポート予測 )
Arbiter
5x5 XBAR
FIFO
FIFO
Predictor
Predictor
データパス構造 : 通常ルータ vs. 予測ルータ
• 通常のルータ • 予測ルータ( 直前ポート予測 )
RC VSA STRC VSA ST
ST
Backup datapath
Prediction datapath
3-stage pipeline
各チャネルのデータパス構造
Arbiter
5x5 XBAR
FIFO
FIFO
Arbiter
5x5 XBAR
FIFO
FIFO
Predictor
Predictor
データパスを 2重化 ; 予測が当たると 1 サイクル転送 , 外れは3 サイクル
データパス構造 : Stop 機構による省電力化
• Stop 機構無し– 2 つのデータパスが常
にデータ転送– 電力オーバヘッド ( 大 )
• Stop 機構有り
RC VSA ST
ST
Backup datapath
Prediction datapath
予測が成功… 両データパスが動作予測が失敗… 両データパスが動作
予測の成否は RC(1 サイクル目 ) で判明
データパス構造 : Stop 機構による省電力化
• Stop 機構無し– 2 つのデータパスが常
にデータ転送– 電力オーバヘッド ( 大 )
• Stop 機構有り– RC(1 サイクル目 ) で片
方のデータパスを停止– 電力オーバヘッド (小 )
予測が成功… Backup path を停止予測が失敗… Prediction path を停止
予測の成否は RC(1 サイクル目 ) で判明
RC VSA ST
ST
Backup datapath
Prediction datapath
予測成功
予測が成功… 両データパスが動作予測が失敗… 両データパスが動作
予測の成否は RC(1 サイクル目 ) で判明
RC VSA ST
ST
Backup datapath
Prediction datapath
データパス構造 : Stop 機構による省電力化
• Stop 機構無し– 2 つのデータパスが常
にデータ転送– 電力オーバヘッド ( 大 )
• Stop 機構有り– RC(1 サイクル目 ) で片
方のデータパスを停止– 電力オーバヘッド (小 )
予測が成功… 両データパスが動作予測が失敗… 両データパスが動作
予測の成否は RC(1 サイクル目 ) で判明
予測が成功… Backup path を停止予測が失敗… Prediction path を停止
予測の成否は RC(1 サイクル目 ) で判明
RC VSA ST
ST
Backup datapath
Prediction datapath
予測失敗
評価では , 通常ルータ , 予測ルータ (stop 有 / 無 ) の転送エネルギー比較
RC VSA ST
ST
Backup datapath
Prediction datapath
バッファ管理 : 独立バッファ vs. 共有バッファ
• 独立バッファ方式– 2 つのデータパスが独立
したバッファを持つ– 面積オーバヘッド ( 大 )
• 共有バッファ方式– 2 つのデータパスが同じバッファを共有する
– 面積オーバヘッド (小 )
RC VSA ST
ST
Backup datapath
Prediction datapath
RC VSA ST
ST
Backup datapath
Prediction datapath
次スライドでは , データパス間のデータ書潰しが発生しないことを確認
バッファの書き潰しが起きるのでは ?
バッファ管理 : 共有バッファで書潰しは起きない
cycle-1 cycle-2 cycle-3 cycle-4
Prediction
Backup
h h h hd1
d1
d1
d2
d2
d3
ST ST ST ST
RC Backup データパスは cycle-1 で停止
予測成功時の 2 つのデータパスの動作
バッファ管理 : 共有バッファで書潰しは起きない
cycle-1 cycle-2 cycle-3 cycle-4
Prediction
Backup
h h h hd1
d1
d1
d2
d2
d3
ST ST ST ST
RC Backup データパスは cycle-1 で停止
予測成功時の 2 つのデータパスの動作
cycle-1 cycle-2 cycle-3 cycle-4
Prediction
Backup
h h h hd1
d1
d1
d2
d2
d3
ST
RC
予測失敗時の 2 つのデータパスの動作
SA ST ST
Prediction データパスは cycle-1 で停止
評価では , 通常ルータ , 予測ルータ ( バッファ独立 / 共有 ) の面積を比較
予測失敗時の動作 : 無効フリットとは ?
• 予測失敗の例 • 予測失敗時の流れ
• 1 サイクル目– RC で予測失敗が判明– Stop 信号を有効化– 間違った宛先に 1-flit 伝播
• 2 サイクル目– Stop 信号により predicti
on datapath 停止
A C
B
Router A にパケットが来た
次ホップとして Router C を予測したが
実際には Router B だった…
RC SA ST
ST
1 2 3 4
Backup
Prediction
RCStop!!
無効フリット発生
予測失敗時 : 無効フリットの Kill 機構• Kill 機構の動作 ( 予測失敗時 )
– 予測失敗を検出したら ,– 隣接ルータのチャネルに
Kill 信号を送る
• 予測失敗時の流れ
• 1 サイクル目– RC で予測失敗が判明– Stop / Kill 信号を有効化– 間違った宛先に 1-flit 伝播
• 2 サイクル目– prediction datapath 停止– 無効フリットを廃棄
RC SA ST
ST
1 2 3 4
Backup
Prediction
RCStop & Kill !!
無効フリット発生
A C
データ信号 (64-bit)
kill 信号 (1-bit)
Kill 信号と同時に来たフリットは廃棄
Router C には , 無効フリットと Kill 信号が同時に伝播
予測失敗時 : 無効フリットの Kill 機構• Kill 機構の動作 ( 予測失敗時 )
– 予測失敗を検出したら ,– 隣接ルータのチャネルに
Kill 信号を送る
• Kill 信号の引き回し– すべての隣接ルータの
チャネルへ 1-bit 信号– チャネルごとに 3 本の
Kill 信号を出力
Kill 信号と同時に来たフリットは廃棄
Router C には , 無効フリットと Kill 信号が同時に伝播
0 1 2
3 4 5
6 7 8
Router 4西ポートからの Kill信号
A C
データ信号 (64-bit)
kill 信号 (1-bit)
発表の流れ• Network-on-Chip (NoC)• ルータアーキテクチャ
– 通常のルータ , 低遅延ルータ– 予測ルータ
• 予測ルータアーキテクチャ– データパス構造– バッファ管理 , Stop 機構– Kill 機構
• 評価– 面積 , 消費エネルギー– 通信遅延
[ 吉永 ,SACSIS’07]
評価項目と比較対象• ハードウェア量
– オリジナルルータ– 予測ルータ ( バッファ独立 )– 予測ルータ ( バッファ共有 )
• 消費エネルギー– オリジナルルータ– 予測ルータ (Stop 機構無し )– 予測ルータ (Stop 機構有り )
• 通信遅延– オリジナルルータ– 予測ルータ (ideal)– 予測ルータ (LP, SS)
Arbiter
5x5 XBAR
FIFO
FIFO
Predictor
Predictor
評価に用いた予測ルータ
• データ幅は 64-bit
• 5 入力 5 出力 ワームホール方式
• 予測アルゴリズムは LP
• 仮想チャネル数は 1 と 2 の場合
面積評価 : ルータのゲート数を比較• 予測ルータ ( バッファ独立 ) • 予測ルータ ( バッファ共有 )
RC VSA ST
ST
Backup datapath
Prediction datapath
RC VSA ST
ST
Backup datapath
Prediction datapath
1. オリジナルルータ , 予測ルータ (独立 ), 予測ルータ ( 共有 ) を Verilog-HDL で実装
2. 各種ルータを ASPLA 90nm ライブラリで合成 (Design Compiler)
3. 各種ルータのゲート数をカウント
面積評価のフロー
面積評価 : ルータのゲート数を比較• 予測ルータ ( バッファ独立 ) • 予測ルータ ( バッファ共有 )
RC VSA ST
ST
Backup datapath
Prediction datapath
RC VSA ST
ST
Backup datapath
Prediction datapath
バッファ共有
バッファ独立
オリジナル バッファ共有
バッファ独立
仮想チャネル数1
仮想チャネル数2
+53.1%+21.9%
+57.2%+23.4%
オリジナルバッファ共有方式によって , 面積の増分を 21.9%~ 23.4% 増に低減
電力評価 : フリット転送エネルギーを比較
• 予測ルータ (Stop 機構無 ) • 予測ルータ (Stop 機構有 )
RC VSA ST
ST
Stop!!
Prediction datapath
RC VSA ST
ST
Backup datapath
Prediction datapath
1. オリジナルルータ , 予測ルータ (stop 有 ), 予測ルータ (stop 無 ) を Verilog-HDL で実装
2. 各種ルータを ASPLA 90nm で合成 , 配置配線 (Design Compiler / Astro)
3. 配置配線ルータにパケット負荷を与えるシミュレーションを実行 (NC-Verilog)
4. SAIF, SDF, SPEF を読み込んで消費電力を見積もる (Power Compiler)
電力評価のフロー
電力評価 : フリット転送エネルギーを比較
• 予測ルータ (Stop 機構無 ) • 予測ルータ (Stop 機構有 )
RC VSA ST
ST
Stop!!
Prediction datapath
RC VSA ST
ST
Backup datapath
Prediction datapath
Stop有 Stop 無 リンク 0.7mm
Stop有 Stop 無 リンク 0.7mm
仮想チャネル数1
仮想チャネル数2
+26.8%+10.0% +26.2%
+8.8%
オリジナル オリジナルStop 機構によって , 転送エネルギー増分を 8.8%~ 10.0% 増に低減
遅延評価 : 無負荷時の通信レイテンシ• 比較対象
– オリジナルルータ (Conv)– 予測ルータ (ideal)– 予測ルータ (SS)– 予測ルータ (LP)
• 無負荷時の遅延モデル
100% 的中
直進予測
直前予測dTTTdT sarlink )()1(
LinkBW
hdPktSizeL
linkTrT
… リンク遅延
… ルーティング遅延
aTsT
… アービトレーション遅延
… スイッチ遅延
d… ホップ数h… ヘッダサイズ
予測成功時 1,0,0 sar TTT予測失敗時 1,1,1 sar TTT
予測成功率は [ 鯉渕 ,SACSIS’08] の値を使用
遅延評価 : 無負荷時の通信レイテンシ• 比較対象
– オリジナルルータ (Conv)
– 予測ルータ (ideal)– 予測ルータ (SS)– 予測ルータ (LP)
• 評価パラメータ
100% 的中
直進予測
直前予測
予測によって , 通信遅延は 64 コアで 14.2% 減 , 289 コアで 23.7% 減
トポロジ k-ary 2-cube (k=3…17)
ルーティング
次元順 (XY routing)
パケット長 16-flitトラフィック
ユニフォームランダム
動作周波数 通常ルータ : 470.0MHz予測ルータ : 464.8MHz
ノード数 vs. 通信レイテンシ
[nse
c]
まとめ : 予測ルータアーキテクチャ• 予測機構を持つ低遅延ルータ
– 予測にもとづき RC と SA ステージをプレ実行– 予測が当たれば ST ステージだけ (1 サイクル転送 )
• 本発表では , 予測ルータのアーキテクチャを検討– バッファ共有方式– Stop 機構– Kill 機構 (今回は未実装 )
• 評価結果– 通信遅延を 14.2%~ 23.7% 削減– 面積オーバヘッドは 23.4%– エネルギーオーバヘッドは 10.0%
RC VSA ST
ST
Stop!!
これまで予測ルータのアーキテクチャの詳細はカバーしてない
[ 吉永 ,SACSIS’07]
実装のさらなる改善 , 他の低遅延ルータとの定量的な比較が必要
ご清聴ありがとうございました