マルチ・チャネル DMA PCI Express* 用インテル FPGA IP ユーザー・ガイド

ID 683821
日付 10/06/2023
Public

このドキュメントの新しいバージョンが利用できます。お客様は次のことを行ってください。 こちらをクリック 最新バージョンに移行する。

ドキュメント目次

3.1.1. 書き込みデータムーバー

Host-to-Device Data Mover (H2DDM) モジュールは、PCIe ハード IP および Avalon-MM Write Master/Avalon-ST Source インターフェイスを介して、ホストメモリーからローカルメモリーにデータを転送します。

H2DDM には、キュー・ディスクリプター・フェッチと H2D データペイロード転送の 2 つの使用モードがあります。

ディスクリプターのフェッチに使用される場合、完了データの宛先は、実際のデータ転送のために H2DDM または D2HDM にディスパッチされる前にディスクリプターが格納される内部ディスクリプター FIFO です。

データペイロード転送に使用される場合、H2DDM は次のように PCIe アドレス (ソース)、データサイズ、MRRS 値などのディスクリプター情報に基づいて Mem Rd TLP を生成します。
  • MRRS アドレス境界への最初の MemRd
  • 次はフル MRRS サイズの MemRd
  • 最後に残りの部分的な MRRS MemRd
受信したコンプリーションは、読み出しデータがユーザーロジックに順番に配信されるように並べ替えられます。
ディスクリプターが完了すると、つまり、すべての読み出しデータが受信され、Avalon-MM 書き込みマスター/Avalon-ST ソースのインターフェイスに転送されると、H2DDM は以下を含むハウスキーピング・タスクを実行します。
  • 有効な場合、完了したキューの MSI-X をスケジュールする
  • 有効な場合、完了したキューの Writeback Consumed Head Pointer をスケジュールする
  • ソフトウェア ポーリング用の消費ヘッド ポインターを更新する

MSI-X と Writeback は、順不同の書き込みによる競合状態を回避するために、D2HDM を介したホストへのメモリー書き込みです。更新されたステータスに基づいて、ソフトウェアは送信バッファーの解放を続行し、ディスクリプター・リング エントリを再利用できます。