図 1. 読み出しトランザクション
代表的な読み出しトランザクションにおける NoC の動作は、次のようになります。
- AXI マスターが読み出し要求を NMU に送信します。
- NMU が、次の機能を実行します。
- AXI マスター クロック ドメインから NoC クロック ドメインへの非同期クロック乗せ換えおよびレート マッチ。
- ターゲット NSU のデスティネーション ルックアップ。
- アドレス リマップ (仮想化の場合)。
-
AxSizeMaster
からAxSizeNoC
への読み出し要求 (AxAddr
、AxSize
、AxLen
、AxBurst
、AxCache
) の AXI 変換。 - 読み出しチョッピング。
- 読み出しタグ変更および読み出しリオーダー バッファー (RROB) のエントリ挿入によるアウトオブオーダー読み出しデータ リターンの追跡。
- 読み出し要求を NoC パケット プロトコル (NPP) フォーマットへパケット化し、レート制限および ECC 生成を実行。
- VC マッピング、VC アービトレーション、および DBI (Data Bus Inversion) 生成の後、パケットを NoC チャネルへ送信。
- NMU が NPP をシステム内の NPS に転送します。
- NPS が、次の機能を実行します。
- ターゲット出力ポートのデスティネーション テーブル ルックアップ。
- 出力ポートでの LRU (Least Recently Used) アービトレーション。
- NPP パケットが 1 つまたは複数の NPS を経由してデスティネーション NSU に到達します。
- デスティネーションで、NSU が次の機能を実行します。
- 読み出し要求のパケットの分解と、ECC チェックおよび訂正。
- AXI-ID 圧縮および AXI 排他アクセスの監視。
- ダウンサイジングまたは AXI4 から AXI3 への変換のための読み出しチョッピング。
- 読み出しトラッカーのエントリ挿入による NoC スレーブからの読み出しデータ インターリーブ追跡。
-
AxSizeNoC
からAxSizeSlave
への要求の AXI 変換。 - NoC クロック ドメインから AXI スレーブ クロック ドメインへの非同期クロック乗せ換えおよびレート マッチ。
- AXI フォーマットの読み出し要求を NoC スレーブ AXI に送信。
- スレーブ AXI が読み出し要求を処理し、NSU に応答を返します。
- NSU が、次の機能を実行します。
- AXI スレーブ クロック ドメインから NoC クロック ドメインへの非同期クロック乗せ換えおよびレート マッチ。
-
AxSizeSlave
からAxSizeNoC
への読み出し応答の AXI 変換。 - 読み出しトラッカー内の読み出しデータを
AxSizeNoC
に合わせて再構築。
-
- 読み出し応答を NPP パケット フォーマットへパケット化し、ECC を生成。
- VC マッピングおよび VC アービトレーションの後、パケットを NoC チャネルへ送信。
- AXI スレーブ クロック ドメインから NoC クロック ドメインへの非同期クロック乗せ換えおよびレート マッチ。
- NPP フォーマットの読み出し応答パケットが (ほとんどの場合) 複数の NPS を経由して NMU に到達します。
- 読み出し応答パケットが NMU に到達すると、NMU は次の機能を実行します。
- DBI (Data Bus Inversion) と ECC チェック。読み出し応答の ECC 訂正とパケット分解。
- 読み出しデータを要求順に並べ替え、
AxSizeMaster
境界に合わせて再構築。
- 読み出しデータを要求順に並べ替え、
-
AxSizeNoC
からAxSizeMaster
への読み出し応答データの AXI 変換。 - NoC クロック ドメインから PL マスター クロック ドメインへの非同期クロック乗せ換えおよびレート マッチ。
- AXI 読み出し応答を NoC マスター AXI に返す。
- DBI (Data Bus Inversion) と ECC チェック。読み出し応答の ECC 訂正とパケット分解。