「DMAって何?」
応用情報技術者試験でもコンピュータシステム分野で頻出ですが、
- CPUを使わずに転送できる?
- 割込みと何が違う?
- DMAコントローラって何?
- なぜ高速化できるの?
で混乱する人がかなり多いテーマです。
この記事では、
- DMAとは?
- なぜ必要なのか?
- DMAの処理の流れ
- 割込み制御との違い
- 試験での頻出ポイント
を5分で理解できるように解説します!
まず結論
DMAとは?
「CPUを介さずに主記憶と入出力装置の間でデータ転送を行う仕組み」
です!
超簡単にいうと
「荷物運びを専門業者に任せる」
イメージです。
なぜ必要?
通常のデータ転送では、
CPUが転送作業を担当します。
通常の転送
入出力装置
↓
CPU
↓
主記憶
問題
CPUが
データ1個転送
データ1個転送
データ1個転送
を繰り返す。
結果
CPUが忙しくなる。
DMAの登場
DMA
Direct Memory Access
(直接メモリアクセス)
DMA利用時
入出力装置
↓
DMA
↓
主記憶
CPUは?
ほぼ転送に関与しない。
イメージ
CPU
荷物運び
をしていた。
DMA導入後
専門業者へ委託
CPUは他の仕事ができる。
DMAコントローラ
超頻出!
DMAコントローラ
DMA転送を管理する装置
役割
- 転送開始
- 転送管理
- 転送終了通知
処理の流れ
超重要!
① CPUがDMA設定
転送元
転送先
転送量
を指定。
② DMA転送開始
DMA
↓
直接転送
③ CPUは別作業
並行して処理可能。
④ 転送完了
DMAが
割込み通知
を送る。
イメージ
CPU
↓ 設定
DMA転送
↓
完了
↓
割込み通知
DMAのメリット
超頻出!
CPU負荷軽減
高速転送
並行処理可能
DMAのデメリット
重要!
制御回路が必要
メモリ競合が発生する場合がある
割込み制御との違い
超頻出!
| 比較 | 割込み制御 | DMA |
|---|---|---|
| データ転送 | CPUが実施 | DMAが実施 |
| CPU負荷 | 高い | 低い |
| 転送速度 | 普通 | 高速 |
| 用途 | 少量データ | 大量データ |
イメージ
割込み制御
CPUが運ぶ
DMA
DMAが運ぶ
DMAが活躍する例
重要!
- SSD
- HDD
- ネットワーク通信
- 音声データ
- 動画データ
大量データ転送で活躍。
応用情報で超頻出
かなり狙われる👇
- DMA
- DMAコントローラ
- CPU負荷軽減
- 割込み
- 入出力制御
よくあるひっかけ
「DMAはCPUを使わない」
→ △半分正しい!
転送設定や完了確認には
CPUが関与します。
1分で復習!
DMA
直接メモリアクセス
役割
CPUを介さず転送
DMAコントローラ
転送管理
効果
- CPU負荷軽減
- 高速転送
超重要
転送完了時は割込み通知
練習問題
問題
DMAの特徴として最も適切なものはどれか。
ア
CPUが全てのデータ転送を行う
イ
主記憶と入出力装置間を直接転送できる
ウ
暗号化を高速化する技術
エ
キャッシュヒット率を向上させる技術
解答
正解:イ
解説
DMAは、DMAコントローラを利用して主記憶と入出力装置間で直接データ転送を行う仕組みです。
まとめ
DMAとは
「CPUの代わりにデータ転送する仕組み」
超重要
- DMAコントローラ
- CPU負荷軽減
- 大量データ転送
- 転送完了時の割込み
まずは、
「CPUが荷物を運ぶのが割込み制御」
「専門業者が運ぶのがDMA」
このイメージを持つとかなり理解しやすくなります!
知識に自信ができた方は、今度は自身のキャリアアップに向けて準備してみませんか?

未経験から、ITエンジニアへ。
「IT業界に興味はあるけれど、自分にできるか不安」「何から始めればいいのか分からない」そんな方のために、Tech GO は未経験からのIT転職を専門的にサポートします。求人を紹介するだけではなく、あなたの強みを整理し、応募準備から入社後の成…
まずは無料でキャリア相談

コメント