DMAとは?でぃーえむえー
DMAとは、周辺装置と主記憶の間のデータ転送を、CPUの命令実行を介さずDMAコントローラが代行する方式。CPUは転送の起点・終点・長さを指示するだけで、完了は割込みで受け取る。その間CPUは別の処理を進められるため、大量転送のオーバヘッドが下がる。
最終更新:2026-10-06
情報処理安全確保支援士を最短で暗記・合格する →背景
プログラム制御の入出力では、CPUが1語ずつ読み書きするので転送量に比例してCPU時間が食われた。ディスクやネットワークのように塊で動くデータではこれが致命的になり、転送だけを担う専用回路を置く発想が生まれた。セキュリティ側から見ると、DMAを許す外部インタフェースは主記憶へ直接届く経路でもあり、機器を挿すだけでメモリを読み出される攻撃の的になる。
具体例
Thunderboltは外部機器にDMAを許す設計のため、AppleとMicrosoftはIOMMUでアドレス空間を隔離する仕組み(Kernel DMA Protectionなど)を標準で有効にし、接続しただけでメモリを読まれないようにしている。
試験での引っ掛け
DMAが書き換えた領域はキャッシュの内容とずれるため、読む前に無効化、書く前にフラッシュが要る。またバスの使い方でサイクルスチールとバースト転送が区別され、後者はCPUのメモリアクセスを長く待たせる。
関連用語
出典・参考
解説は資格暗記が独自に作成しています。過去問の出典は各問題に記載のとおりです。