DMAコントローラーは、CPUが各データを読み書きして運ぶ代わりに、データ転送を管理するハードウェアです。CPUの初期設定と、DMAによる転送を分けて考えましょう。
1.CPUから設定を受け取る
CPUやドライバーが、転送元・転送先・データ量・方向などを設定します。実際のアドレス指定や制約は装置とシステムの方式に依存します。DMAを使っても、CPUが一切不要になるわけではありません。
2.転送と完了通知を分ける

DMAコントローラーや装置内のDMA機能が転送を行います。CPUはほかの処理を進められますが、主記憶やバスの帯域を共有する場合は競合もあります。完了は割込みなどで通知できます。
3.大量転送などで負担を減らす
ネットワーク・ストレージ・音声などで使われます。設定や同期の負担もあるため、DMAならどんな転送でも必ず最速とは限りません。DMA制御・バスの調停・CPU側の処理分担を区別します。
理解を確かめる確認問題
DMAコントローラーに任せる主な処理は、データ転送と暗号化のどちらでしょうか。
解答・解説を見る
ここで扱う基本の役割はデータ転送です。CPUは設定や完了後の処理に関わります。
まとめ:設定するCPUと、転送する装置
転送の指示、実際のデータ移動、完了通知の3つに分けて確認しましょう。

コメント