オンチップトーラス網における 仮想チャネルフリールーティング 松谷 宏紀 (慶大) 鯉渕 道紘 (NII) 天野 英晴 (慶大) Network-on-Chip (NoC) • タイルアーキテクチャ – 演算要素, ルータ – パケット転送 タイル(RISC, DSP, RAM, I/O) ○ 利点 • 配線遅延 – グローバル配線 – 固定長, 隣接タイル間 • 各タイルごとの標準I/F 0 1 2 – モジュラリティ 3 4 5 × 欠点 6 7 8 • オーバヘッド e.g., RAW [Taylor, IEEE Micro’02] 大規模化するSoCにおいて, aSoC [Liang, IEEE TVLSI’04] 短TATを実現する設計法として注目 NoCの例 ~Viterbi Decoder on 4x4 NoC~ (0) (1) (2) (3) (4) (5) (6) (7) (8) (9) (10) (11) (12) (13) (14) (15) SISO Viterbi Decoder のタイルマッピング例 • 設計フロー – – – – シミュレーション 通信パターン解析 マッピング ルーティング NoCの例 ~Viterbi Decoder on 4x4 NoC~ (0) (2) (3) FIFO 0 FIFO 1 (4) (1) Make Path Metric (5) (6) (7) FIFO 2 FIFO 3 DELTA (8) (9) Trace Back 0 (11) Trace Back 1 (12) Trace Back 2 (13) Trace Back 3 (14) Soft Out Trace Back 1 Soft Out Trace Back 2 Soft Out Trace Back 3 Add Compare Select (10) Soft Out Trace Back 0 (15) SISO Viterbi Decoder のタイルマッピング例 • 設計フロー – – – – シミュレーション 通信パターン解析 マッピング ルーティング NoCの例 ~Viterbi Decoder on 4x4 NoC~ (0) (2) (3) FIFO 0 FIFO 1 (4) (1) Make Path Metric (5) (6) (7) FIFO 2 FIFO 3 DELTA (8) (9) Trace Back 0 (11) Trace Back 1 (12) Trace Back 2 (13) Trace Back 3 (14) Soft Out Trace Back 1 Soft Out Trace Back 2 Soft Out Trace Back 3 Add Compare Select (10) • 設計フロー – – – – シミュレーション 通信パターン解析 マッピング ルーティング Soft Out Trace Back 0 (15) SISO Viterbi Decoder のタイルマッピング例 (ルータ面積) (ルータ + コア面積) ≒ 34% NoCにおいてはルータの面積を極力小さくする必要がある 2Dトーラス v.s 2Dメッシュ サイクルが 形成 ○ トーラスの利点 • 高性能・低遅延 – メッシュの2倍の帯域 – 平均ホップ数 (小) × トーラスの欠点 • 高コスト – 総ワイヤ長が2倍 – 消費電力 15%増 [Dally, DAC’01] × トーラスではデッドロック回避のために仮想チャネル機構が必要 仮想チャネルの実装コスト Buf Buf Input Ports Crossbar Output Ports 仮想チャネルの実装コスト Buf Buf 仮想チャネルごとに バッファとコントローラ [Chien, TPDS’98] Buf Buf Input Ports Crossbar Output Ports 仮想チャネル割り当てのアービトレーション データパスの複雑化, パイプライン段の増加 仮想チャネルフリー化 トーラスによる高性能 & シンプルなルータ 既存の仮想チャネルフリー技術 Bubble Flow Control Eject-and-Reinjection [Flich, TPDS’02] [Puente, ICPP’99] • パケットの注入制限 – サイクルができないよう – パケットの注入を制限 • 中継ノードでの再注入 – 中継ノードの前後で – サイクルを断ち切る 中継ノード Bubble ×欠点 – パケットを溜め込む – バッファ量 (多) ×欠点 Eject Reinject – 再注入の遅延 – NoCでは遅延の影響 (大) NoC向けに, 通信パターンを解析した上で利用できる軽量な方法を 提案 ~NoC向け仮想チャネルフリー技術~ • 次元順ルーティング – 最短経路のみ – 仮想チャネル機構 NoCでは正味使われる 通信を特定可能 • 非最短経路を導入 – 進行方向を一部反転 – 代替経路の数を増やす • 増えた代替経路の中から… – 仮想チャネルフリー経路集合 – 効率的に探索 Wrap-aroundチャネルをす べての通信が使わない場合 通信パターンはメッシュと等価 仮想チャネルフリーな経 路集合は常に存在 デッドロックフリー経路集合の探索 • 最適な経路集合 – 仮想チャネルフリー @トーラス – 平均ホップ数最短 C=1 n1n2 C=11 C=5 C=8 n1n6 Stop! • 全数探索 – 9~64ノード – 平均ホップ数計算 – デッドロック検出 • 枝刈りによる高速化 C=10 C=8 C=10 C=12 n4n10 Stop! C=12 C=10 C=13 n9n10 – 分枝限定法 デッドロックフリー, かつ, 平均ホップ数が最小な経路集合を探索 デッドロック検出アルゴリズム ある経路集合 が与えられる 4 5 6 10 14 7451 567 11 10 9 5 1 674 ・・・・・・・ 通信パターン 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 デッドロック検出アルゴリズム ある経路集合 が与えられる 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 4 5 6 10 14 7451 Y+ Deadlock を検出 !! 別の経路集合を探索 0 1 2 3 0 1 2 3 4 5 6 7 4 5 6 7 8 9 10 11 8 9 10 11 Deadlock! 12 13 14 15 567 12 13 14 15 11 10 9 5 1 0 1 2 3 0 1 2 3 4 5 6 7 4 5 6 7 8 9 10 11 8 9 10 11 674 Y- X+ X- ・・・・・・・ 12 13 14 15 通信パターン 12 13 14 15 16ノードビットマップ (X+, X-, Y+, Y- デッドロック検出アルゴリズム 次の経路集合 を評価 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 4 7 6 2 14 7651 Y+ Deadlock を検出 !! 別の経路集合を探索 0 1 2 3 0 1 2 3 4 5 6 7 4 5 6 7 8 9 10 11 8 9 10 11 547 12 13 14 15 12 13 14 15 11 8 9 13 1 0 1 2 3 0 1 2 3 4 5 6 7 4 5 6 7 8 9 10 11 8 9 10 11 654 Y- X+ X- ・・・・・・・ 12 13 14 15 12 13 14 15 仮想チャネルフリー, かつ, 平均ホップ数が最小な経路集合を発見 通信パターン 16ノードビットマップ (X+, X-, Y+, Y- デッドロックフリー経路集合の探索 • 最適な経路集合 – 仮想チャネルフリー @トーラス – 平均ホップ数最短 C=1 n1n2 C=11 C=5 C=8 n1n6 Stop! • 全数探索 – 9~64ノード – 平均ホップ数計算 – デッドロック検出 • 枝刈りによる高速化 – 分枝限定法 C=10 C=8 C=10 C=12 n4n10 Stop! C=12 C=10 C=13 n9n10 最適な経路集合 デッドロックフリー, かつ, 平均ホップ数が最小な経路集合を探索 評価項目 1. ルータの面積評価 2. 仮想チャネルフリールーティングの性能 3. 探索時間 面積評価~仮想チャネル省略による面積削減~ • ルータ面積を比較 – DOR + v1 – DOR + v2 – DOR + v1 + N • 実装環境 – Verilog-HDL – Design Compiler – 0.35um Library 仮想チャネルフリールーティング用 Buf Buf Buf Buf Input Ports Crossbar Output Ports 面積評価~仮想チャネル省略による面積削減~ No VC 提案ルータ 2 VCs 仮想チャネルルータの 50.7% の面積 (バッファ量削減, パイプライン段数削減) 性能評価 ~シミュレーション環境~ • スループットを比較 – Mesh + v1 – Torus + v2 – Torus + v1 + N 0 1 2 3 4 5 6 7 8 9 10 11 12 13 仮想チャネルフリールーティング • 通信パターン – – – – – – Viterbi (16) BT (9, 16, 36, 64) SP (9, 16, 36, 64) CG (16, 32, 64) MG (16, 32, 64) IS (16, 32, 64) Router 14 15 Core パケットサイズ 16 flit (1 flit ヘッダ) バッファサイズ 1 flit 分 パケット転送方式 Wormhole方式 パケット転送時間 3 cycle / 1 hop 性能評価~仮想チャネル無しで性能はでるか~ • Viterbi (16) – ストリーム処理 • BT (36), SP(36) – 隣接間通信が多い Viterbi (16-node) • スループットを比較 – Mesh+v1 – Torus+v2 – Torus+v1+N BTトラフィック (36-node) 性能評価~仮想チャネル無しで性能はでるか~ • CG(32), MG(32) – BT より平均ホップ数(大) • IS (32) – All-to-All 通信を含む • スループットを比較 – Mesh+v1 – Torus+v2 – Torus+v1+N CGトラフィック (32-node) ISトラフィック (32-node) 18種中11種で Torus+v2 並の性能. IS(all-to-all)では Mesh+v1 並 経路集合の探索時間 トレース Viterbi(16 ) 時間(秒) 0.005 トレース CG(16) 時間(秒) 0.011 BT(9) 0.014 CG(32) 0.196 BT(16) 0.030 CG(64) 0.298 BT(36) 4.798 MG(16) 0.011 BT(64) 1.018 MG(32) 5.354 SP(9) 0.015 MG(64) 0.427 SP(16) 0.011 IS(16) 0.865 SP(36) 5.404 IS(32) 19.901 SP(64)4 2.6GHz 0.130 IS(64) 3600.000 ※Pentium ※カッコ内の数字はノード数を表す IS(all-to-all)を除き, 経路の探索時間は無視できるほど小さい まとめ • 本研究の目的 – トーラスによる高性能 – 仮想チャネル不要なシンプルなルータ NoCでは通信パターンが既知 • 仮想チャネルフリールーティング – 次元順ルーティングに非最短経路を導入 – デッドロックフリー経路集合を全数探索 • スループット – 18種中11種のトレースで, 仮想チャネルルータ並の性能 • ルータ面積 – 仮想チャネルルータの約半分 (バッファ量削減, パイプライン段数削減) 動的トラフィック (例:制御パケット, 同期) • 中継ノードでの再注入 [Flich, TPDS’02] – 中継ノードの前後で – サイクルを断ち切る 中継ノード Eject Reinject • 再注入の遅延 – 動的トラフィックの量が少なければ影響は小さい Head-of-Line (HoL) Blocking • 仮想チャネルの効能 – デッドロックフリー – HoL Blocking の緩和 影響は小さいと考えられる • HoL blocking 緩和効果が小さい理由 – ネットワークが小規模 – 固定型ルーティングでは, 仮想チャネル切り替えは 限定的 (主に適応型ルーティングで影響が出る) 提案 ~NoC向け仮想チャネルフリー技術~ • 次元順ルーティング – 最短経路のみ – 仮想チャネル機構 NoCでは正味使われる 通信を特定可能 • 非最短経路を導入 – 進行方向を一部反転 – 代替経路の数を増やす • 増えた代替経路の中から… – 仮想チャネルフリー経路集合 – 効率的に探索 Wrap-aroundチャネルをす べての通信が使わない場合 通信パターンはメッシュと等価 仮想チャネルフリーな経 路集合は常に存在 Network-on-Chip (NoC) • 通信パターンに合わせたルーティング • 組込みシステム設計 – Cレベル設計 – シミュレーション (2) (1) (2) (3) (4) (2) アプリケーションのタスクフロー (1) (2) (2) (2) (4) (3) NoCの物理タイル
© Copyright 2024 ExpyDoc