46
ATS9462 User Manual
Asynchronous DMA
Just having dual-ported memory or a FIFO, on its own, does
not solve the problem of PRF captures or streaming
applications. Software still has to get involved in re-arming
the hardware after every capture and again for reading the
data from on-board acquisition memory.
ATS9462’s proprietary AutoDMA circuitry allows the
acquisition system to be re-armed by a hardware command
and data transfer to be initiated by the hardware itself, thus
removing virtually all “in-process” software involvement.
Of course, software still has to set up the DMA when one of
the buffers fills up, but, thanks to the dual-DMA engine and
fully asynchronous driver that uses overlapped IO, these
tasks can be paralleled.
In other words, when software is re-arming DMA channel 0,
DMA channel 1 is already transferring data to host memory.
At the fastest transfer rates, users must use large buffers
(say, 8 Megabytes) to ensure that the DMA channel 1 does
not finish before the DMA channel 0 is re-armed, and vice-
versa.
Note that if data throughput is too high, a DMA_OVERFLOW
flag gets set and is available to the programmer.
Consumption of the captured data is, of course, under the
control of user-created software, and it is this that will
determine the maximum PRF instead of the bus throughput.
The important thing to note is that if AlazarAsyncRead API
function is used, CPU usage is almost 0% even when 720
MB/s DMA is going on.
ACQUIRE
ACQUIRE
ACQUIRE
ACQUIRE
TRANSFER
TRANSFER TRANSFER