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

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

8. ソフトウェア・プログラミング・モデル

マルチチャネル DMA IP for PCI Express Linux ソフトウェアは、次のコンポーネントでコンフィグレーションされています。
  • テスト・アプリケーション
  • カスタムドライバー用のユーザー空間ライブラリー (libmqdma)
  • DPDK Pollモードベースのドライバー
  • Chardev ベースのカーネル・モード・ドライバー (ifc_mcdma_chardev)
  • PCIe エンドポイント・ドライバー (ifc_uio)
  • カーネル・モード・ネットワーク・デバイス・ドライバー (ifc_mcdma_net)

ソフトウェア・ファイルは、以下に示すように、IP Parameter Editor から PCI Express デザイン例用のマルチチャネル DMA IP を生成すると、PCI Express デザイン例用のマルチチャネル DMA IP プロジェクト・フォルダーに作成されます。ソフトウェア・コンフィギュレーションは、 インテル® Quartus® Primeで生成されたサンプル デザインに固有のものです。

図 33. ソフトウェアのフォルダー構造
表 87.  MCDMA IP ソフトウェア・ドライバーの差別化
ドライバー 詳細 ユースケース/アプリケーション
Custom
  • スタティック・ライブラリー・ファイルおよび対応するテスト・ユーティリティーの形式でインストールできる、カスタマイズされたユーザー空間 MCDMA ライブラリー。
  • VFIO および UIO カーネル フレームワークを使用したデバイスへのアクセスをサポートします。
  • パフォーマンスと使用法を実証するために開発されたサンプル パフォーマンス ベースのアプリケーション。

カスタム API でこのドライバーを使用する独自のユーザー空間プラットフォームがある場合。

API 情報は、このユーザーガイドで共有されます。

例: DMA 機能を必要とするユーザー空間アプリケーション。

DPDK
  • DPDK インフラストラクチャーを使用したポーリング モード MCDMA ドライバーとサンプル・テスト・アプリケーションが開発されています。
  • DPDK パッチは、MSI-X をサポートし、一部のエラー ケースに対処するために提供されています。
  • DPDK ビルド時に有効にできる UIO と VFIO カーネル フレームワークの両方をサポートします。

DPDK をプラットフォームとして使用する場合、この PMD を DPDK フレームワークと統合して DMA を実行できます。

例: DPDK ベースの NFV アプリケーション

Kernel mode (No SRIOV)
  • MCDMA カーネル・モード・ドライバー。
  • DMA 操作はカーネルモードで開始され、ドライバーは chardev インターフェイスを使用してデバイスを公開します。
  • ユーザー空間に割り当てられたメモリーは、chardev システムコールを使用して DMA できます。

open、close、poll、read、write、readv、writev などの chardev API を使用する場合は、このドライバーを使用できます。

例: ファイル固有の操作を使用するアプリケーション。

Netdev
  • MCDMA ネットワーク・ドライバーは、デバイスをイーサネット・デバイスとして公開します (ifconfig デバイスをイーサネット・デバイスとして表示する)。
  • DMA 操作はカーネルモードで開始でき、すべての TCP/IP アプリケーションを使用できます。
  • DMA メモリー管理にカーネル・ベース・フレームワークを使用します。

すべての TCP/IP アプリケーションがこのドライバーを使用できます。 iperfネット・パフォーマンススケイピー このドライバーを使用します。