この投稿では、DMA(Direct Memory Access)について説明致します。
DMAは、CPUを介さずにMCU機能(通信やAD変換など)とRAMがデータ転送できる機能です。
メリット
- CPU負荷軽減
- 高速なデータ転送
- 割込み処理の削除
- 送受信の自動化
デメリット
- DMAによるバスの占有
- DMA設定の複雑さ
- DMAは故障検知が難しい
- DMAはキャッシュを通さずにRAMに書き込むため、キャッシュとの不整合が生じる場合がある
尚、CPUとのバス権の共用(アービトレーション)については、別の機会に説明いたします。