コンピュータ

DMA(ダイレクトメモリアクセス)とは

DMA(ダイレクトメモリアクセス)

DMAとは

DMA(Direct Memory Access)とは、入出力装置から主記憶装置(メインメモリ)へのデータ転送をCPUを介さず直接行う方式のことです。

Direct Memory Access(ダイレクトメモリアクセス)の名前の通り、CPUを介さずにメモリに直接アクセスする方式です。

コンピュータは様々な機器とデータのやり取りを行います。DMAでは、この様々な機器とのやり取り(データ転送)をDMAコントローラが制御します。

DMAのイメージ例

上記図はDMAのイメージ例です。ハードディスクから主記憶装置へのデータ転送をDMAコントローラが制御しています。

簡単な流れ

  • CPUはDMAコントローラにデータ転送の命令を出す
  • CPUの命令を受けてDMAコントローラがデータ転送の制御を行う
  • データ転送が終わったら、割り込みを発生させてCPUに通知する

プログラム制御方式との違い

プログラム制御方式とは、入出力装置から主記憶装置(メインメモリ)へのデータ転送をCPUが直接制御する方式のことです。

プログラム制御方式のイメージ例

プログラム制御方式はCPUがデータ転送を直接制御するため、CPUへの負担が大きく処理効率の悪い方式です。(低速な入出力処理を待っている間、CPUは他の処理ができない)

DMAでは、CPUに代わってDMAコントローラがデータ転送を制御します。その結果、CPUはCPUにしかできない作業に集中することができます。

YouTubeでも解説しています。チャンネル登録と高評価よろしくお願いします!
ITを分かりやすく解説

チャンネル登録はこちら

フォローはこちら