DMA support for AAX DSP plug-ins, with emulation for AAX Native.
On this page
DMA facility overview
AAX provides an abstract interface for accessing the host environment's DMA or other memory-transfer facilities. All platform-specific details are handled by the AAX host environment, allowing plug-ins that use this interface to be re-targeted to to Native or DSP environments without changing their memory transfer implementation.
DMA transfer modes
AAX hosts may support the following DMA modes, as listed in AAX_IDma::EMode :
- In Scatter mode, data is transferred from a linear buffer to a series of offset segments in a circular buffer. This mode is most often used to transfer data from linear internal memory to a large external memory buffer.
- In Gather mode, data is collected from a series of offset segments in a circular buffer and concatenated in a linear buffer. This mode is most often used to transfer data from an external memory buffer to an internal memory buffer.
- In Burst mode, data is written linearly from one location to another. Burst mode transfers may be used for linear transfers of data to or from external memory. During the transfer, the source data is broken into a series of individual bursts. This mode is included for completeness, though the Scatter/Gather modes are expected to be more appropriate for the vast majority of real-world DMA use cases.
Registering for DMA transfers
Algorithm Components register for DMA transfers by adding one or more DMA fields to their context via AAX_IComponentDescriptor::AddDmaInstance(). At runtime, each field will be populated with a valid DMA interface for the specified DMA mode.
DMA restrictions
The following restrictions apply to DMA transfers on all AAX platforms:
- The maximum burst size for any DMA transfer is 64B. The minimum burst size is 1B.
- Only one DMA transfer request may be posted per AAX_IDma object per processing callback.
- Scatter and Gather requests each require that the circular memory buffer be padded by at least the size of one burst
Additional information
TI DSP Guide