【DMA 転送用のバッファを確保】 WinDriver PCI v14.1x テストレポート

WinDriver アプリのバージョンアップ

最近のバージョンの WinDriver で動作しているドライバアプリ (ユーザーモード) であれば、ソース中のライセンスコードを書き換え、リンクするライブラリーを wdapi1411.lib へ変更してリビルドするくらいで、移行作業はほぼ完了するかと思います。

実際に、製品説明会でいつも使用している FPGA PCI ボード用の DMA 転送のデモプログラムのバージョンアップ作業は、この程度でした。動作も問題ありませんでした。

WinDriver API の強化点

  • Windows、WDC_DMAContigBufLock: バッファを 4GB までロック可能。ビットマスクを追加可能 (v14.0 Linux 版で追加された機能と同じ)

関数 WDC_DMAContigBufLock() は、DMA バッファを連続領域で確保する機能を持ちます。この関数について強化されたようで、DMA バッファを大きく確保できれば DMA 転送における転送効率の向上が期待できそうです。ホスト PC 側メモリに確保できる DMA 転送用バッファのサイズについて、64-Bit Windows の環境下では 20数 MB 程度が最大とされてきており、この要件を考慮して DMA アプリを設計する必要がありました。

開発元である Jungo Connectivity 社からのサポートによると、Windows 8 (x64) 以上の環境なら、4GB までのサイズの連続領域バッファを確保できるようにしてあるとのことです。

テストレポート

下記は Windows 10 x64 環境で、2GB の連続領域の DMA 転送用バッファを確保することが成功した様子です。このテストでは、標準サンプルの pci_diag を使用しています。

当方テスト環境で、3GB を指定してみましたが、これは十分な領域がないとのエラーで確保は失敗しました。タイミングによっては成功するのかもしれません。それぞれの環境でお試しいただければと思います。

WinDriver Linux 版の ARM/ARM64 対応

最新が v14.11 でありますが、v14.00 のバージョンからの特筆すべき特徴として、ARM のサポートを追加しました。対応ボードについては下記の通りです。

  • Linux ARM および ARM64: 以下の開発ボードのサポートを追加
    NVIDIA Jetson TK1, NVIDIA Drive PX 2, Raspberry Pi 2, 3, 3b+, Boundary Devices SL-i.MX6 (SABRE Lite)

そして早速、Jetson TX2 Developer Kit などへの対応についての問い合わせがありましたが、Jungo Connectivity 社サポートによると、このボードをサポートする予定については、次のリリースバージョンからとのことでした。期待してお待ちいただければ幸いです。

現時点、入手しやすい Raspberry Pi でのテストなら進められるかもしれません。PCI-Express ソケットの増設などして試してみたいところです。今後、レポートいたします。

Jungo 社製品 WinDriver の詳細は今すぐこちらからチェック!

セミナーについての詳細は、こちらからご確認いただけます。

開催日以外でも随時セミナーを受け付けておりますので、 弊社問合せフォームからお気軽にご連絡ください。

シェアする

  • このエントリーをはてなブックマークに追加

フォローする