ナビゲーションリンクをスキップ | |
印刷ビューの終了 | |
デバイスドライバの記述 Oracle Solaris 11.1 Information Library (日本語) |
パート I Oracle Solaris プラットフォーム用デバイスドライバの設計
2. Oracle Solaris カーネルとデバイスツリー
DMA ソフトウェアコンポーネント: ハンドル、ウィンドウ、cookie
22. ドライバのコンパイル、ロード、パッケージ化、およびテスト
23. デバイスドライバのデバッグ、テスト、およびチューニング
デバイスが稼働するプラットフォームでは、ダイレクトメモリーアクセス (DMA) または DVMA (Direct Virtual Memory Access) を提供します。
DMA をサポートするプラットフォームでは、転送を行うために物理アドレスがデバイスに提供されます。この場合、DMA オブジェクトの転送は実際には物理的に不連続ないくつかの転送で構成されていることがあります。たとえば、アプリケーションで、連続したいくつかの仮想ページにまたがるバッファーを転送する際、それらの仮想ページが物理的に不連続なページにマップされるような場合です。不連続なメモリーを処理するために、通常これらのプラットフォームのデバイスにはある種の scatter/gather DMA 機能が備わっています。通常、x86 システムではダイレクトメモリー転送に物理アドレスを提供します。
DVMA をサポートするプラットフォームでは、転送を行うために仮想アドレスがデバイスに提供されます。この場合、ベースとなるプラットフォームが提供するメモリー管理ユニット (Memory Management Unit、MMU) は、これらの仮想アドレスへのデバイスアクセスを適切な物理アドレスに変換します。デバイスは、不連続な物理ページにマップされる可能性のある連続した仮想イメージに対して転送を行います。これらのプラットフォームで稼働するデバイスには、scatter/gather DMA 機能は必要ありません。通常、SPARC プラットフォームではダイレクトメモリー転送に仮想アドレスを提供します。