DMAとは?でぃーえむえー
DMAとは、CPUを経由せず、DMAコントローラが周辺デバイスと主記憶の間で直接データを転送する方式。転送のたびにCPUが読み書き命令を実行する必要がなくなるため、CPUは転送中に別の処理を進められる。あらかじめ転送元・転送先・長さを設定し、完了は割込みで知らせる。
最終更新:2026-10-06
この語が出る過去問を解く →背景
1バイトごとにCPUが読んで書くプログラム転送では、転送量に比例してCPU時間が丸ごと消える。高速な通信や周期的なAD変換ではそれだけで処理時間を使い切ってしまうため、バスを一時的にCPUから借りて転送だけを行う専用回路が置かれた。CPU負荷が下がるだけでなく、転送の周期がソフトウェアの込み具合に左右されなくなる点も効く。
具体例
マイコンでADCの変換結果を一定周期でメモリのリングバッファへ積み、規定数たまった時点だけ割込みを上げる。1サンプルごとに割込む構成に比べ、割込み回数を数百分の1に減らせる。
試験での引っ掛け
キャッシュとの整合が定番の落とし穴で、DMAが書いた領域はキャッシュの内容と食い違うため、読む前に無効化、書かせる前にフラッシュが要る。またDMAがバスを握る間はCPUのメモリアクセスが待たされ、1転送ごとに明け渡すサイクルスチールと、まとめて占有するバースト転送では最悪待ち時間が変わる。
関連用語
出た過去問
出典:令和2年度 10月試験 エンベデッドシステムスペシャリスト試験 午前Ⅱ 問3(IPA)
出典・参考
高度試験 午前I(高度午前I 相当)のシラバスの2 コンピュータシステム > 1. オペレーティングシステム > (6) 入出力管理に掲載されている用語です。
解説は資格暗記が独自に作成しています。過去問の出典は各問題に記載のとおりです。