DMAとは?だいれくとめもりあくせす
DMA(Direct Memory Access:直接メモリアクセス)は、入出力装置と主記憶の間のデータ転送を、プロセッサを介さずDMAコントローラが直接行う方式。転送中プロセッサは別の処理を進められるため、大量のデータを扱う装置ほど効果が大きい。転送の完了は割込み(実行中の処理を一時止めて、別の処理を先にさせる仕組み)によってプロセッサへ通知される。
最終更新:2026-10-10
この語が出る過去問を解く →背景
入出力装置はプロセッサに比べて動きが遅く、プロセッサが1語ずつ転送に付き合うと、待ち時間のぶんだけ計算が止まってしまう。転送という単純な作業を専用の回路に預ければ、プロセッサは待たずに次の仕事へ進める。この分業として考えられたのがDMAである。
具体例
ディスクから1Mバイト読み出す場合、プログラム制御では1語ごとにプロセッサが介在するが、DMAでは開始アドレスと転送語数を設定するだけで済む。ネットワークインタフェースやGPUでも同じ仕組みが使われている。
試験での引っ掛け
DMA中も、主記憶とやり取りする通り道(メモリバス)はプロセッサと共有されるため、プロセッサのメモリアクセスと競合して速度が落ちることがある(DMAがバスを使う間プロセッサが待たされることを、サイクルスチールと呼ぶ)。またDMAが書き換えた主記憶の領域は、キャッシュに残る内容と食い違うので、両者をそろえる制御が必要になる。
関連用語
出た過去問
出典:令和5年度 公開問題 基本情報技術者試験 科目A 問3(IPA)解説で登場
コンピュータの高速化技術の一つであるメモリインタリーブに関する記述として,適切なものはどれか。
正解:主記憶を複数の独立して動作するグループに分けて,各グループに並列にアクセスする方式
要点:メモリインタリーブは主記憶を分割し並列アクセスする技術
メモリインタリーブは主記憶を複数のバンク(独立して動作するグループ)に分割し、連続アドレスを各バンクに振り分けて並列にアクセスする高速化技術である。1バンクのアクセスが完了するのを待たずに次のバンクへアクセスできるため、実効的な転送速度が上がる。キャッシュやDMAとは別の仕組みである点に注意する。
出典・参考
解説は資格暗記が独自に作成しています。過去問の出典は各問題に記載のとおりです。