このスレが適切かどうかわからないのですが、DMAについて教えてください。
DMAにていて、「メモリをコピーするのにCPUを使わずにHWのサポートで
行う仕組み」というぐらいの知識しかないのですが、これは周辺機器との間での
メモリの転送にしか使えないのでしょうか?
(たとえばプログラムからアクセスしている配列同士で任意にデータをコピー
する、memcpyのような用途に自由に使えるものなのでしょうか?)
グラフィックを画面に描画する仕組みがよくわかっていないのですが、
フレームバッファがCPUのメモリ空間にとられている場合、フレームバッファ→グラフィックチップ
の転送はDMAで行われると思うのですが(あってます?)、このフレームバッファに
データを書き込むときは、プログラムで別に計算したバッファの中身を
流し込むと思うのですが、その転送にはDMAは使えないのでしょうか(普通にmemcpyする?)?
それと、いわゆるダブルバッファというのは、フレームバッファ→グラフィックチップで
フレームバッファを複数用意して、DMAで転送する元アドレスを複数指定できる
仕組みのことなのでしょうか?それともフレームバッファは1つで、ユーザが計算している
バッファを2つ持つというようなことなのでしょうか?
よくわかっていないので的を射ない質問かもしれませんが、よろしくお願いします。