バースト制御ワードの挿入 - 1.2 日本語

FEC 付き Versal ACAP 統合 600G Interlaken サブシステム 製品ガイド (PG371)

Document ID
PG371
Release Date
2023-01-19
Version
1.2 日本語

tx_axis_tuser_bctl<M> 入力は、tx_axis_tuser_sop<M> または tx_axis_tuser_chan<M> の変更と同様に動作します。これらの信号がアサートされると、セグメント <M> 上のデータが Interlaken インターフェイスに現れる前に、バースト制御ワードがデータ ストリームに挿入されます。元々あるスケジューリング メカニズムを使用せず、この方法でユーザー独自のスケジューリング メカニズムを実装できます。

エンハンスト スケジューリングの動作についての理解を深めるために、次の例を考えます。BurstMax を指定する CFG_C0_TX_MAIN_REG レジスタの c0_ctl_tx_burstmax レジスタ フィールドが 256 バイトに設定され、BurstShort を指定する CFG_C0_TX_MAIN_REG レジスタの c0_ctl_tx_burstshort レジスタ フィールドが 64 バイトに設定されているとします。エンハンスト スケジューリングを使用しないか、または tx_axis_tuser_bctl<M> を使用しないと、TX ILKNF サブシステムに書き込まれた 264 バイトのパケットが Interlaken 側に現れるとき、BurstShort の要件を満たすために、パケットの後に 7 つの望ましくない IDLE 制御ワードが挿入されます。具体的には、次のプロセスが実行されます。

  • 1 つのバースト制御ワード (パケットの開始を含む) が送信される
  • 32 データ ワードが送信される
  • 1 つのバースト制御ワード (パケットの開始を含まない) が送信される
  • 1 データ ワードが送信される
  • (BurstShort の要件を満たすために) 7 つの IDLE 制御ワードが送信される

合計 42 ワードになります。

BurstShort の要件を満たすのに必要な IDLE の挿入で失われる帯域幅を最小限に抑えるために、ILKNF サブシステムは、エンハンスト スケジューリング アルゴリズムを自動的に実行するメカニズムを備えています。最後から 2 番目のバーストのサイズは Burstmax-64 です。264 バイトのパケットは、それぞれ 192 バイトと 72 バイトの 2 つのバーストに分割されます。

  • 1 つのバースト制御ワード (パケットの開始を含む) が送信される
  • 24 データ ワードが送信される
  • 1 つのバースト制御ワード (パケットの開始を含まない) が送信される
  • 9 データ ワードが送信される
  • 0 個の IDLE 制御ワードが送信される

合計 35 ワードになります。

エンハンスト スケジューリング メカニズムを使用せずに、対応する tx_axis_tuser_bctl<M> 信号を使用して、バースト制御ワードをどこに挿入するかを制御できます。同じ 264 バイト パケットで、128 バイトの送信後に tx_axis_tuser_bctl<M> がアサートされた場合、次のプロセスが実行されます。

  • 1 つのバースト制御ワード (パケットの開始を含む) が送信される
  • 16 データ ワードが送信される
  • 1 つのバースト制御ワード (パケットの開始を含まない) が送信される
  • 17 データ ワードが送信される
  • 0 個の IDLE 制御ワードが送信される

合計 35 ワードになります。

ILKNF サブシステムを介して最大限の帯域幅を確保するために、tx_axis_tuser_bctl<M> を使用するときは、『Interlaken Protocol Definition, Revision 1.2』に定義されている、Interlaken バーストのすべての規則に従ってください。特に、特定のチャネル上の (EOP でも EOP-1 でもない) 各 Interlaken バーストに対応する AXI データのサイズが、BurstMax のバイト数に等しいことを確認してください。つまり、特定のパケットの (最後の 2 つのバーストを除く) すべての Interlaken バーストに対応するデータのサイズが、BurstMax に等しくなるようにします。さらに、チャネルの変更、または次のバーストに対応するデータの転送の前に、特定の Interlaken バーストに対応するデータ全体が AXI4-Stream バスに書き込まれるようにします。