Jungo WinDriver: パフォーマンス

WinDriver パフォーマンス


パフォーマンスの概要

WinDriver の独自のアーキテクチャで、ユーザーモードですべての開発しながら、カーネルモードのパフォーマンスを実現します。

WinDriver について

WinDriver は、あらゆるタイプのハードウェアをコントロールできる、ユーザーモードのハードウェアにアクセスする API を提供することにより、カーネルモードのデバイス ドライバを記述する必要はありません。WinDriver のユーザーモード API が WinDriver のカーネル モジュールを呼び、対象のハードウェアをコントロールします (WinDriver のアーキテクチャを参照)。

カーネルモードのパフォーマンス

WinDriver の API は、最小のパフォーマンス オーバーヘッドになるように最適化されています。カーネルモード パフォーマンスが必要なドライバのために、WinDriver は "Kernel PlugIn" 機能を提供します。このパワフルな機能により、コードの作成とデバッグをユーザーモードで行い、パフォーマンスに関してクリティカルなコードをカーネルモードで実行して、カーネルモードのパフォーマンスを達成します。

WinDriver の Kernel PlugIn を使用するには、最初に標準の WinDriver ツールでドライバのコードをユーザーモードで生成し、デバッグします。次に、パフォーマンスに関してクリティカルなモジュールを識別し、それらを WinDriver の Kernel PlugIn に移動します。そのモジュールはカーネルモードで実行されるため、コールのオーバーヘッドがありません。この独自の機能により、カーネルに関する知識がなくてもユーザーモードのコードを OS のカーネル内で実行できます。

WinDriver の処理速度

WinDriver の Kernel PlugIn を使用して、カスタム カーネルドライバと同じスループットを期待できます。対象の OS とハードウェアの制限にのみ影響を受けます。Kernel PlugIn を使用して、到達できるスループットは、1 秒間に 100,000 回以上の割り込みを処理できます。

64-bit データ転送

WinDriver では、64-bit ハードウェアで提供される帯域幅を使用して、32-bit OS で起動する x86 プラットフォームで 64-bit データ転送を実行できます。その結果、WinDriver を使用して開発したドライバは、DDK を使用して記述したドライバやこの機能をサポートしていない他のドライバ開発ツールと比べ、より良いパフォーマンスを十分に達成できます。

上の図では、一般的なドライバが memcpy() を使用してデータ転送するよりも、WinDriver を使用して記述したドライバが、64-bit データ転送 (QuadWord) を使用して、より良いデータ転送率を達成してることを示しています。WinDriver の QuadWord を使用した場合、Read 処理のデータ転送では、22% 以上、Write 処理のデータ転送では、31% 以上のデータ転送率を達成しています。

パフォーマンスの向上に関して

ユーザーモードのドライバを記述し、デバッグした後、対象のコードで十分な速度を達成していない特定のモジュールを検出することがあります (たとえば、割り込み処理や IO マップ領域へのアクセス)。この場合、以下の 2 つの方法のいずれかでパフォーマンスを改善してください:

  • 対象のユーザーモードのドライバのパフォーマンスを改善
  • 対象のコードのパフォーマンスに関する部分を WinDriver の Kernel PlugIn へ移行

どの方法がベストか、チェック リストを参考にしてください。

テクニカル リファレンス

WinDriver 製品には、さまざまな開発段階に合わせて、開発に役立つテクニカル ドキュメントを用意しています。

評価段階または WinDriver を使い始めたばかりのユーザーは、クイック スタート ガイドが有効です。

より詳細な情報が必要な場合、WinDriver の技術に関する情報が必要な場合、ユーザー マニュアルを参考にしてください

詳細

製品に関するご質問は、こちらからお問い合わせください!