メモリーDMA
ADSP-2191は内蔵メモリーDMAを持っており、メモリー間あるいはメモリーとIOデバイスの間でデータ転送を行うことができます。メモリーDMAはDSPの介入を必要としないため、信号処理のバックグラウンドで高速にデータを移動することができます。
メモリーDMAはDMA転送の指定にデスクリプタを使います。ユーザーはメモリー上にデスクリプタを定義し、そのアドレスをDMAエンジンに教えることでDMAを開始します。
メモリーDMAには書き込み側(W)と読み出し側(R)の二つのDMAエンジンがあります。両者は対を成しており、それぞれがデータのコピー先とコピー元を指し示します。
書き込み側
- DMACW_PTR
- 書き込み側デスクリプタのアドレスを指し示しています。
- DMACW_CFG
- 書き込み側DMAの動作パラメータなどを設定します。
- DMACW_SRP
- 書き込み側DMAがデータを転送するメモリーページとメモリー空間を指定します。
- DMACW_SRA
- 書き込み側転送のスタートアドレスを指し示しています。
- DMACW_CNT
- 書き込み側転送の転送カウントを指し示しています。
- DMACW_CP
- 書き込み側転送の次のデスクリプタアドレスを示しています。
- DMACW_CPR
- 転送に使うデスクリプタへのポインタが有効になった、つまり転送の準備ができたことをDMAに知らせるためのものです。
- DMACW_IRQ
- 書き込み側のDMA完了割り込みをクリアするためのレジスタです。
読み出し側
- DMACR_PTR
- 読み出し側デスクリプタのアドレスを指し示しています。
- DMACR_CFG
- 読み出し側DMAの動作パラメータなどを設定します。
- DMACR_SRP
- 読み出し側DMAがデータを転送するメモリーページとメモリー空間を指定します。
- DMACR_SRA
- 読み出し側転送のスタートアドレスを指し示しています。
- DMACR_CNT
- 読み出し側転送の転送カウントを指し示しています。
- DMACR_CP
- 読み出し側転送の次のデスクリプタアドレスを示しています。
- DMACR_CPR
- 転送に使うデスクリプタへのポインタが有効になった、つまり転送の準備ができたことをDMAに知らせるためのものです。
- DMACR_IRQ
- 読み出し側のDMA完了割り込みをクリアするためのレジスタです。