連載
» 2016年08月22日 11時30分 UPDATE

Q&Aで学ぶマイコン講座(29):DMAのメリットって何? (1/3)

マイコンユーザーのさまざまな疑問に対し、マイコンメーカーのエンジニアがお答えしていく本連載。今回は、初級〜中級者の方からよく質問される「DMA(Direct Memory Access)のメリットって何?」です。

[菅井賢(STマイクロエレクトロニクス),EDN Japan]

過去の質問一覧はこちら

 素朴な疑問から技術トラブルなどマイコンユーザーのあらゆる悩みに対し、マイコンメーカーのエンジニアが回答していく連載「Q&Aで学ぶマイコン講座」。

 今回は、初級〜中級者から多く寄せられる質問です。

 マイコンの説明書やカタログに「DMAを使うとデータ転送の効率が上がる」と書かれていますが、そもそも「DMA」とは何ですか? どのような機能で、どのような場合に使うとメリットがあるのでしょうか?使用する際の注意点も教えてください。

 「DMA」とはDirect Memory Accessの略です。CPUを使わずに、バスを通じて周辺機能(アナログ機能、通信機能など)とメモリ間(フラッシュメモリ、ROM、RAM)のデータ転送を直接行う機能のことです。

図1 DMAの基本動作例 図1:DMAの基本動作例 (クリックで拡大)
RAMからデータを取り出して通信機能へ送る場合

 通常、データ転送はCPUが行いますが、DMAを搭載しているマイコンでは、DMAがCPUに代わって、データを転送してくれます(図1参照)。

 そのためCPUは算術/論理演算などのCPUでしかできない仕事だけすればよくなります。結果的に、DMAを搭載することで、マイコンの性能を総合的に上げることができるのです。

 DMAの最大の利点は、ハードウェアを使って直接データ転送するので、高速・大容量のデータ転送が可能になることです。転送元と転送先は、メモリと周辺機能で自由に選択できます(ただし、マイコンによっては制限があります)。しかし、1本しかないバスをCPUと分け合って使うため、バスの使用権の調整が必要になります。

 この“バスの調整”は英語で「バスアービトレーション(Bus Arbitration)」と呼ばれ、日本語では「バス権の調停」と呼ばれています。

       1|2|3 次のページへ

Copyright© 2017 ITmedia, Inc. All Rights Reserved.

RSSフィード

EDN 海外ネットワーク

All material on this site Copyright © 2005 - 2017 ITmedia Inc. All rights reserved.
This site contains articles under license from UBM Electronics, a division of United Business Media LLC.