D3 のメモリの使い方は、カタログ数値から逆算するとカメラ全体の DRAM 容量は 512MB, そのうちファームウェアの作業領域が25D6MB, 撮影バッファが 256MB のようです。
PC と同じと考えると、カメラにはメイン CPU の他に、DMA (Direct Memory Access) コントローラが搭載されているはずです。撮影中は CPU がカメラのコントロール及び圧縮に使われているはずのですので、メモリ-メモリ間の転送及び撮影バッファからメモリーカードへの転送は DMA コントローラが一手に引き受けているはずです。
CPU がソフトウェアでメモリ-メモリ間の転送をしていたら無駄なので、それ専用のハードウェアが搭載されていることが多いです。それが DMA コントローラです。
D3 のメモリの使い方は、カタログ数値から逆算するとカメラ全体の DRAM 容量は 512MB, そのうちファームウェアの作業領域が25D6MB, 撮影バッファが 256MB のようです。
PC と同じと考えると、カメラにはメイン CPU の他に、DMA (Direct Memory Access) コントローラが搭載されているはずです。撮影中は CPU がカメラのコントロール及び圧縮に使われているはずのですので、メモリ-メモリ間の転送及び撮影バッファからメモリーカードへの転送は DMA コントローラが一手に引き受けているはずです。
CPU がソフトウェアでメモリ-メモリ間の転送をしていたら無駄なので、それ専用のハードウェアが搭載されていることが多いです。それが DMA コントローラです。
私がプログラムを組むとすると、撮影して圧縮等の各種作業が完了したら作業領域にデータを置いたままにして、直ぐに次の撮影の準備に取りかかるようにプログラムを組むと思います。作業領域からバッファ領域への転送やメモリーカードへの転送は DMA コントローラにまかせるでしょう。
たぶん、DMA コントローラの処理速度が間に合っていないのではないかと思うのですが…
私の勝手な予想なので間違っている可能性もありますが、皆さんはどう思われますか??