読み方 : ディーエムエー
DMA 【Direct Memory Access】 ダイレクトメモリアクセス

DMAが実装されていない場合、機器内の装置間や回路間でデータを転送するには、CPUが転送元からデータを読み込み、転送先に書き込むという処理を繰り返す必要がある。この転送方式を「PIO」(Programmed I/O)という。
一方、DMAではCPUがDMAC(DMAコントローラ)という専用の制御回路に指示を出し、コントローラがCPUに代わってデータの読み書きを行う。CPUとDMACは並行して独立に動作するため、CPUは指示を出したらデータ転送が完了するまで他の処理を進めることができる。DMACは転送が終わったら割り込み信号でこれをCPUに伝える。
DMACに対して転送を要求するために用いる通信経路の「DMAチャネル」という。DMACは複数の伝送を同時に制御できるようになっており、2個、4個、8個といった数のチャネルを持っている。チャネルは0から始まる通し番号で識別され、各装置は一つを指定・占有してデータ伝送を行う。
DMAが考案された時代には、CPUの処理能力が装置の入出力能力を下回ることもあったため、専用の回路で高速にデータ転送を処理することで機器全体の能力を大きく向上させる効果があった。現代ではCPUが高速になり転送に追いつかないという事態は起きなくなったが、逆にCPUが各装置の応答を待たずに処理を進めることができるという利点がある。
(2025.10.10更新)