パケット化オーバーヘッド - 1.0 日本語

Versal ACAP Programmable Network on Chip and Integrated Memory Controller v1.0 LogiCORE IP 製品ガイド (PG313)

Document ID
PG313
Release Date
2021-04-08
Version
1.0 日本語

実際に NoC データパスを移動できるデータ量は、パケット化オーバーヘッドの影響を受けます。FLIT の中には、データを伝送するものもあれば、トランザクション アドレスやパケット応答などプロトコル関連の情報を伝送するものもあります。

次の図に、パケット タイプと各タイプで発生するオーバーヘッドを示します。NoC パケット ドメインのデータパスは、すべて 128 ビット (16 バイト) 幅です。1 回の読み出し要求は、要求パスで 1 FLIT のヘッダー、および応答パスで n FLIT のデータを占有します。これを (a) に示します。1 回の書き込み要求は、1 FLIT のヘッダーと n FLIT のデータを占有します。たとえば、バースト開始の境界に揃っている 64 バイト転送は、データパスで 5 FLIT (1 FLIT のヘッダーと 4 FLIT のデータ) を占有します。書き込み応答は、応答パスで 1 FLIT を占有します。これを (b) に示します。
図 1. パケット FLIT のオーバーヘッド

AXI 要求がチョップ サイズ (256 バイトまたはインターリーブ メモリ チャネルの場合はインターリーブ粒度のいずれか小さい方) より小さい場合、転送はこれよりも早く終了し、使用されなかった FLIT は別のコマンドで使用できます。

データパスの生の帯域幅が X GB/s の場合、実際の帯域幅は (n/n+1) X GB/s となります (ただし n はバースト長)。

1 回の書き込み要求に対して、1 FLIT の応答が生成されます。NoC NMU のチョップ サイズは、デフォルトで 256 バイトまたはインターリーブ粒度のいずれか小さい方の値です。1 つの書き込み要求を複数の書き込みバーストにチョッピングすると、各バーストに対して書き込み応答が 1 つずつ発生します。NMU は、元の AXI 書き込みバーストからは書き込み応答が 1 つだけ見えるようにこれらの応答を 1 つにまとめます。

全二重 NoC リンクで同じ方向の読み出し要求と書き込み要求を組み合わせて送信すると、受信した応答には余分な FLIT が含まれ、ピーク帯域幅が減少します。

次の図に、例を示します。ここに示したのは、1 つの物理リンクの要求パスと応答パスで、それぞれの物理リンクの方向と FLIT の送信順を表しています。この例では、パケット サイズが 64B で、読み出しと書き込みの混合比は 50/50 です。このトラフィック比とパケット サイズの場合、要求パスには 6 FLIT が送信されます。すなわち 1 FLIT の読み出し要求、1 FLIT の書き込み要求ヘッダー、および 4 FLIT の書き込みデータです。応答パスには、4 FLIT の読み出しデータと 1 FLIT の書き込み応答が返されます。このトラフィックは、読み出しデータと書き込みデータを 50/50 の比率で混合している (つまり、読み出しと書き込みの帯域幅が同じ) ため、デッド サイクルが 1 サイクル生じています。この混合比では、6 FLIT の要求に対して常に 5 FLIT の応答が返されます。すると、応答パスには容量の空きがあるため、要求パスがボトルネックとなります。
図 2. 読み出し/書き込みトラフィックを混在させた場合のリンク使用率
注: NoC コンパイラは、1 つのマスターからの読み出しトラフィックと書き込みトラフィックを必ずしも同じ物理リンクに割り当てるとは限りません。次の例は、読み出しトラフィックと書き込みトラフィックを同じ物理リンクに混在させた場合に達成可能な帯域幅を示しています。NoC コンパイラは、利用可能な帯域幅を計算する際に FLIT のオーバーヘッドを考慮します。このセクションは、競合が発生した場合にどのようなボトルネックが存在するのかを理解するための参考情報として記載しています。
読み出し/書き込みトラフィックの混合比を変えた場合のピーク帯域幅を次の表に示します。これらの例は NoC のクロック周波数が 1GHz の場合で、数値は NoC のクロック周波数に比例して変化します。
表 1. NoC クロック周波数 = 1GHz の場合における混合トラフィックの読み出し/書き込み帯域幅
トランザクション サイズ (バイト)/周波数 0/100

(%Rd/%Wr)

30/70 50/50 70/30 100/0
32B@1000 MHz 0/10.67 4.0/9.33 8.0/8.0 13.17/5.65 16.0/0
64B@1000 MHz 0/12.8 5.05/11.79 10.67/10.67 14.45/6.19 16.0/0
256B@1000 MHz 0/15.06 6.30/14.69 14.22/14.22 15.58/6.68 16.0/0