Direct Memory Access
CPUからメモリBUS制御を渡してもらい、データを一気に転送する方法。
DMAはPDPシリーズにおいて採用されている。後年の数MHzで動作するマイクロプロセッサでは、CPUによるデータ転送でハードディスク等の10MB/秒程度の転送速度を発揮する事は困難であったため、専用のコントローラでデータ転送を行う必要があった。このコントローラは、データ転送を高速に行う機能に特化したCPUであったともいえる。例として、Z80にはZ80DMA、MC68000には、MC68450などのDMAコントローラ(DMAC)が存在した。そのほか、日立のH8マイコンにDMACが存在している。
Intelのi80286(APX286)などでは、当時通常のI/Oを制御するためには充分な動作速度だった事、主流のパーソナルコンピュータにおいて、i8249等の低速なDMACしか搭載されておらず、他に適当なDMACが存在しなかった事などから、DMAはあまり使用されなくなった。
CPUの世代がPentiumになり、充分に高速になると、今度は、低速なI/Oの管理がボトルネックとなったため、いわゆるチップセットにI/O専用の高速なDMACが搭載されたり、周辺機器制御LSIが簡単なDMA機能を持つようになり、再度DMAが活用されるようになった。Pentium以降主流となったPCIバスでは、バスマスタリングとしてDMAが実装されている。