読み方 : ディーエムエー

DMA 【Direct Memory Access】 ダイレクトメモリアクセス

概要

DMAとは、コンピュータ内部のデータ転送方式の一つで、CPUを介さずに周辺機器やメインメモリRAM)などの間で直接データを伝送し合う方式。CPUの負荷が低く高速にデータを送ることができる。
DMAのイメージ画像

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更新)

他の用語辞典による「DMA」の解説 (外部サイト)

資格試験などの「DMA」の出題履歴

▼ 基本情報技術者試験
令5修12 問10】 DMAの説明として,適切なものはどれか。