DMA(ダイレクトメモリアクセス)
DMAとは
DMA(Direct Memory Access)とは、入出力装置から主記憶装置(メインメモリ)へのデータ転送をCPUを介さず直接行う方式のことです。
Direct Memory Access(ダイレクトメモリアクセス)の名前の通り、CPUを介さずにメモリに直接アクセスする方式です。
コンピュータはさまざまな機器とデータのやり取りを行います。DMAでは、このさまざまな機器とのやり取り(データ転送)をDMAコントローラが制御します。
上記図はDMAのイメージ例です。補助記憶装置から主記憶装置へのデータ転送をDMAコントローラが制御しています。
このようにDMAでは、周辺機器と主記憶装置間のデータ転送をDMAコントローラが制御します。
簡単な流れ
- 入出力装置からの命令を受けたCPUはDMAコントローラにデータ転送の命令を出す
- CPUの命令を受けてDMAコントローラがデータ転送の制御を行う
- データ転送が終わったら、割り込みを発生させてCPUに通知する
プログラム制御方式との違い
プログラム制御方式とは、入出力装置から主記憶装置(メインメモリ)へのデータ転送をCPUが直接制御する方式のことです。
上記はプログラム制御方式のイメージ例です。入出力装置からの命令を受けたCPUは、CPUのレジスタを経由して主記憶装置にデータを転送します。
プログラム制御方式はCPUがデータ転送を直接制御するため、CPUへの負担が大きく処理効率の悪い方式です。(低速な入出力処理を待っている間、CPUは他の処理ができない)
DMAでは、CPUに代わってDMAコントローラがデータ転送を制御します。その結果、CPUはCPUにしかできない作業に集中することができます。
helpful
この記事は役に立ちましたか?