Go to main content
Oracle® Solaris 11.3 デバイスドライバの記述

印刷ビューの終了

更新: 2016 年 11 月
 
 

ホストプラットフォームの DMA の種類

デバイスが稼働するプラットフォームでは、ダイレクトメモリーアクセス (DMA) または DVMA (Direct Virtual Memory Access) を提供します。

DMA をサポートするプラットフォームでは、転送を行うために物理アドレスがデバイスに提供されます。この場合、DMA オブジェクトの転送は実際には物理的に不連続ないくつかの転送で構成されていることがあります。たとえば、アプリケーションで、連続したいくつかの仮想ページにまたがるバッファーを転送する際、それらの仮想ページが物理的に不連続なページにマップされるような場合です。不連続なメモリーを処理するために、通常これらのプラットフォームのデバイスにはある種の scatter/gather DMA 機能が備わっています。通常、x86 システムではダイレクトメモリー転送に物理アドレスを提供します。

DVMA をサポートするプラットフォームでは、転送を行うために仮想アドレスがデバイスに提供されます。この場合、ベースとなるプラットフォームが提供するメモリー管理ユニット (Memory Management Unit、MMU) は、これらの仮想アドレスへのデバイスアクセスを適切な物理アドレスに変換します。デバイスは、不連続な物理ページにマップされる可能性のある連続した仮想イメージに対して転送を行います。これらのプラットフォームで稼働するデバイスには、scatter/gather DMA 機能は必要ありません。通常、SPARC プラットフォームではダイレクトメモリー転送に仮想アドレスを提供します。