インテルのみ表示可能 — GUID: rwc1589939522664
Ixiasoft
インテルのみ表示可能 — GUID: rwc1589939522664
Ixiasoft
3.1.3. ディスクリプター
マルチチャネル DMA データ移動をサポートする DMA チャネルは、ディスクリプター・キューのペア (1 つの H2D ディスクリプター・キューと 1 つの D2H ディスクリプター・キュー) でコンフィグレーションされます。ディスクリプターは、4 KB ページ内で連続して配置されます。
各ディスクリプターのサイズは 32 バイトです。ディスクリプターは、ホストメモリー内の 4 KB ページのリンクリストに保持されます。 32 バイトのディスクリプターと 4 KB のページの場合、各ページには最大 128 個のディスクリプターが含まれます。 4 KB ページの最後のディスクリプターは「リンク・ディスクリプター」である必要があります。これは、リンクビットが 1 に設定された次の 4 KB ページへのリンクを含むディスクリプターです。リンクリストの最後のエントリは、4 KB ページのリンクリストを含む循環バッファーを実現するために、QCSR でプログラムされたベースアドレスを指すリンクである必要があります。次の図は、ディスクリプターの連結リストを示しています。
ソフトウェアとハードウェアは、次の図に示すように、テール・インデックス・ポインター (Q_TAIL_POINTER) とヘッド インデックス・ポインター (Q_HEAD_POINTER) QCSR レジスターを使用して、ディスクリプターの通信と管理を行います。 ソフトウェアが最後の有効なディスクリプター・インデックスをQ_TAIL_POINTER レジスターに書き込むと、DMA が開始します。
フィールド名 | 幅 | 説明 |
---|---|---|
SRC_ADDR [63:0] | 64 | Link bit =0 の場合、このフィールドには送信元のアドレスが含まれます。 DMA によって読み出される割り当てられた送信バッファーの開始システムアドレスであり、64 バイトにアラインされている必要があります。 キューが H2D の場合、このフィールドにはホストメモリー内のアドレスが含まれます。キューが D2H の場合、これはデバイスメモリー内の AVMM アドレスです。 リンクビットが設定されている場合、これには、ディスクリプターを含むホストメモリー内の次の 4 KB ページのアドレスが含まれます。 |
1|127|64 | 64 | Provided link=0の場合、このフィールドは次のことを意味します。 DMA によって書き込まれる割り当てられた受信バッファーの開始システムアドレスであり、64 バイトにアラインされている必要があります。 キューが D2H の場合、このフィールドにはホストメモリー内のアドレスが含まれます。キューが H2D の場合、これはデバイスメモリー内の AVMM アドレスです。 |
PYLD_CNT [147:128] | 20 | Provided link=0の場合、このフィールドは DMA ペイロード・サイズ (バイト単位) を意味します。最大 1 MB。20'h0 は 1 MB を示します。 1 ポート AVST モードの D2H キューの場合、このフィールドはキューのすべてのディスクリプターにわたって固定値であり、Q_PYLD_CNT (0x44) QCSR レジスターの値を反映する必要があります。 |
RSRVD [159:148] | 12 | 予約済み。 |
DESC_IDX [175:160] | 16 | ソフトウェア・ドライバーによって割り当てられる、各ディスクリプターの一意の識別子です。ディスクリプターのデータ転送が完了すると、この値が Q_COMPLETED_POINTER レジスターに書き込まれます。
注: 最初のディスクリプター DESC_IDX 値は 0 ではなく 1 です。
|
MSIX_EN [176] | 1 | ディスクリプターごとに MSI-X を有効にします。 |
WB_EN [177] | 1 | ディスクリプターごとに書き戻しを有効にします。 |
RSRVD [191:178] | 14 | 予約済み。 |
RX_PYLD_CNT [211:192] | 20 | D2H データ移動 (アップストリーム) の実際のペイロードを受信します。 |
RSRVD [221:212] | 10 | 予約済み。 |
SOF [222] | 1 | Avalon-ST ストリーミングの SOF インジケーターです。 H2D ストリーミングでは、このビットにより、Avalon-ST ソース・インターフェイスがh2d_st_sof_o をアサートし、ファイル/パケットの開始を示します。 D2H ストリーミングでは、ユーザーロジックがファイル/パケットの開始を示す d2h_st_sof_i をアサートすると、MWr TLP によってこのビットが記述子自体に設定されます。
注: H2D ストリーミングでは、SOF と EOF の両方を同じディスクリプター(file size = payload count) に設定できます。または複数のディスクリプターページにまたがることができます。
注: D2H ストリーミングで、ユーザーロジックがアサートによってデータ転送を途中で終了した場合、 d2h_st_eof_i ディスクリプターのデータ移動の途中で次のファイル/パケットを開始すると、次のディスクリプターの SOF ビットが MWr TLP によって設定されます。
注: SOF ビットは、Avalon-ST インターフェイスを使用したファイルデータ転送を伴う DMA のオプション機能です。
|
EOF [223] | 1 | Avalon-ST ストリーミングの EOF インジケーター。 H2D ストリーミングでは、このビットにより、Avalon-ST Source インターフェイスがh2d_st_eof_o をアサートし、ファイル/パケットの終わりを示します。 D2H ストリーミングでは、このビットは、ユーザー ロジックがd2h_st_eof_iをアサートしてパケットの終了を示すときに、ライトバック (ライトバックが有効な場合) によってディスクリプタ自体に設定されます。 EOF ビットとともに、MWr TLP は最後のディスクリプターの実際の受信ペイロード カウント (RX_PYLD_CNT)) フィールドも更新します。
注: EOF ビットは、Avalon-ST インターフェイスを使用したファイルデータ転送を伴う DMA のオプション機能です。
|
RSRVD [253:224] | 30 | 予約済み。 |
DESC_INVALID [254] | 1 | 現在のディスクリプターの内容が有効か古いかを示します。 |
LINK [255] | 1 | Link =0 ディスクリプターには、送信元アドレス、宛先アドレス、および長さが含まれます。 Link = 1 ディスクリプターには、ディスクリプターを含むホストメモリー内の次の 4 KB ページのアドレスが含まれます。 |