DMA(でぃーえむえー)

CPU(MPU)の命令実行を介さず、専用の制御回路によって主記憶と入出力装置の間、または主記憶の領域どうしで直接データをやり取りする転送方式。Direct Memory Accessの略で、CPUの代わりに転送処理を受け持つ制御回路をDMAコントローラー(DMAC)と呼ぶ。

詳細解説

通常のプログラム制御による入出力では、CPUがデータの読み書き命令を1語ずつ実行するため、大量のデータを転送している間はCPUが他の演算を行えません。これに対しDMA方式では、CPUが転送元のアドレスや転送先のアドレス、データサイズなどをあらかじめDMAコントローラーに設定して起動をかけるだけで、実際のデータ移動はコントローラーが自律的に進めます。

転送中、DMAコントローラーはCPUとバス(データ伝送路)の使用権をバス調停機能によって調整しながらメモリアクセスを行い、指定された分量の転送が終わると外部割込みによってCPUへ完了を通知します。CPUは転送の開始指示と完了通知への応答のほかは入出力処理から解放され、その間に別のプログラムを進められるので、システム全体のスループットが上がります。また、アドレス変換やメモリ保護を担うMMU(メモリ管理ユニット)、低速な周辺機器の応答に合わせてバスサイクルを引き延ばすウェイト・レディ機能とは役割が異なります。

DMAが問われた過去問

DMAが登場する過去問

関連する分野

ハードウェア 補助記憶・入出力装置

用語集の一覧へ