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