今回は「DMA」についてです。
1.初めに
わからない用語を調べた際、用語の説明をするために他の用語が出現してくるので結局何を意味するのかわからなくなったという経験はありませんか?
私は結構あります。
特に、業界特有の用語なんてその業界の方は知ってて当たり前のように使用してくるので、全く解読できなかったりします。
残念ながら、本ブログに関しても同じことが言えます。
人それぞれどこまで理解しているかは当然異なってきますので、万人が理解できる記事を書くというのは不可能なのです。
超初心者に合わせて毎回基礎中の基礎から説明してたら本題に入れませんからね。
なので、本サイトでは基本的な用語から専門的な用語まで個別にまとめ、簡単に検索できるような構成にしてあります。
もしわからない単語が出てきたら、画面右もしくは最下部に表示されている「サイト内を検索」から用語を検索するか、トップの「用語集」ボタンにまとめた取り扱い用語一覧から目的の用語を検索してみてください。
2.DMAとは?
DMAとは、[Direct Memory Access]の略称です。
ダイレクト(直接)にアクセスするメモリという名称通り、CPUを介さずに直接メモリにアクセスするデータ転送方式のことです。
CPUは、自らデータを読み込み、転送先であるメモリ(メインメモリなど)にアクセスしてデータの書き込み処理をすることが可能です。
なのですが、CPUは他にも様々な演算を行います。
その為、CPUがデータの転送(読み込み/書き込み動作)を請け負うと、少なからず負担になってしまいます。
そこで、データの転送をCPU以外に委託して、CPUへの負担を軽減しようと考えました。
ここで登場するのがDMAです。
システムをDMAに対応させてあると、CPUは別途用意された専用のコントローラに指示を出し、この専用のコントローラがデータ転送を請け負うようになります。
CPUの部下にデータ転送に特化した部下が付いたと思ってくれれば良いです。
こうすることでCPUへの負荷が軽減され、システム全体の性能の向上・高速処理が可能になっています。
このDMA機能を実現するための回路(専用のICチップ)のことを、DMAコントローラと呼びます。
DMAコントローラは、通常はマザーボードに搭載されていて、同時に複数の伝送が可能になっています。
マザーボードではなくバス上にDMAコントローラを配置する方式の場合は、バスマスタDMA方式と呼ばれます。
「バス上に存在してマスターとして機能するDMA」というそのまんまな名称ですね。
ちなみに、DMAコントローラは“DMAC”という略称になっていることもあるのですが、DMACにすると“ジメチルアセトアミド”という化学物質と名称が被ります。
3.まとめ
DMAとは、CPUを介さずに直接メモリにアクセスするデータ転送方式のことです。
以上、「DMA」についてでした。