NMU および NSU インターフェイスは、次の図に示すように NoC パケット スイッチ (NPS) によって NoC に接続されます。NPS の機能は、次のとおりです。
- 各 NPS は全二重 4x4 スイッチ。
- 各ポートは、1 方向につき 8 つの仮想チャネルをサポート。
- 各ポートは完全バッファー付きで、8 つの FIFO (仮想チャネルごとに 1 つ) を内蔵。
- スイッチング システムは、クレジット ベースのフロー制御を使用。
- スイッチ通過のレイテンシは最短で 2 サイクル。
- QoS を設定可能。
- 各仮想チャネルの入力ポートごとにプログラマブルなルーティング テーブル:
- ルーティング テーブルはブート時に NPI を介してプログラム。
- NoC が停止中は、ルーティング テーブルの再プログラミングが可能。
図 1.
NoC パケット スイッチ
到着したパケットは、スイッチによって受信されます。受信側スイッチは、フロー制御クレジットを送信側スイッチに返します。フロー制御クレジットは、スイッチがデータ トランザクションを確実に受信できるようにするもので、スイッチ間通信にとって重要な役割を果たします。
データがスイッチに到着すると、スイッチはパケット ヘッダー内のデスティネーション ID を調べ、そのパケットをスイッチのどの出力ポートに転送するかを判定します。デスティネーション ID をチェックし、パケットが誤って転送された場合は致命的エラーを通知します。バッファーに格納されたデスティネーション アドレスをルーティング テーブルで使用して、必要なスイッチ出力ポートを選択します。
データ トランザクションを受信すると、対応する仮想チャネル バッファーが空の場合は、そのデータ トランザクションを出力アービトレーションで使用します。それ以外の場合は、データを仮想チャネル バッファーに格納し、次回以降の仮想チャネル アービトレーションで使用します。すべてのサイクルで、各入力ポートからのアービトレーション候補がスイッチの各出力ポートに現れます。
各仮想チャネルには 1 つの FIFO があります。したがって、各スイッチ ポートには 8 つの FIFO があります。
- HNoC ポートには、7 段 FIFO があります。
- VNoC ポートには、5 段 FIFO があります。