PCI Expressのマルチチャネル DMA インテル® FPGA IPユーザー ガイド

ID 683821
日付 4/20/2022
Public
ドキュメント目次

8.2.1. アーキテクチャー

図 38. MCDMA ドライバーのアーキテクチャー

igb_uio

これは、DPDK フレームワークによって提供される PCIe エンドポイント・カーネル・ モジュールであり、これに加えて、MSI-X および SRIOV 機能をサポートするためにいくつかのパスが追加されています。 PCIeを使用することで、 sysfs フレームワーク・ユーティリティーに割り込みます。このモジュールは読み出し、ユーザー空間がデバイスにアクセスできるようにします。

このモジュールを使用してサポートされる機能は次のとおりです。
  • チャネル BAR をプローブし、ユーザー空間にエクスポートする
  • 割り込み通知/クリアをサポートする
  • SRIOV 機能を有効にして仮想機能を設定する

igb_uio カーネルモジュールは、IOMMU プログラミングをサポートしていません。

vfio-pci

vfio-pci はベース・カーネル・モジュールであり、デバイスへのアクセスを可能にし、ioctlインターフェイスを使用して IOMMU プログラミングを可能にします。vfio-pciを使用して VF を有効にする場合は、5.7 以上のカーネルバージョンを使用する必要がある場合があります。

MCDMA PMD

これは、チャネル管理、デバイス管理、および H2D と D2H の両方の方向で DMA を実行する API を実装するポーリング・モード・ドライバーです。このモジュールは、ethdev インターフェースとしてデバイスを次のように公開します。

テスト・アプリケーションの例

aDPDK Environment Abstraction Layer (EAL) ユーティリティを使用して、メモリー管理とデバイス管理を実行します。

デバイスとの間でデータ・トラフィックを継続的に送受信するために使用しているこのアプリケーションでは、次のコマンドライン引数を入力として使用します。
  • Total message sizes/ time duration
  • Packet size per descriptor
  • Write/Read
  • Completion reporting method
  • Number of channels

テスト・アプリケーションは、DMA チャネルにアクセスするために複数のスレッドを実行します。また、パフォーマンス測定機能も備えています。使用されているスレッドの数と処理されているチャネルの数に基づいて、スレッドでキューがスケジュールされます。

testpmd

testpmd アプリケーションを使用して、パケット転送モードで DPDK をテストすることもできます。

次のコマンドライン引数は、ホストからデバイスへ、またはデバイスからホストへのデータ転送を開始するために使用されます。
  • Forwarding mode
  • Number of CPU cores
  • TX and RX channels per port
  • Number of packets per burst
  • Number of descriptors in the RX and TX ring
  • Maximum packet length