Operation Theory
•
35
In a multi -user or multi-tasking OS, like Microsoft Windows, Linux, and so
on, it is difficult to allocate a large continuous memory block to do the DMA
transfer. Therefore, the PLX IOP-480 provides the function of scatter
/gather or chaining mode DMA to link the non-continuous memory blocks
into a linked list so that users can transfer very large amounts of data
without being limited by the fragment of small size memory. Users can
configure the linked list for the input DMA channel or the output DMA
channel. Figure 19 shows a linked list that is constructed by three DMA
descriptors. Each descriptor contains a PCI address, a local address, a
transfer size, and the pointer to the next descriptor. Users can allocate
many small size memory blocks and chain their associative DMA de-
scriptors altogether by their application programs. DAQ/PXI-20XX software
driver provides simple settings of the scatter/gather function, and some
sample programs are also provided within the ADLINK all-in-one CD.
Figure 19: Scatter/gather DMA for data transfer
In non-chaining mode, the maximum DMA data transfer size is 2M double
words (8M bytes). However, by using chaining mode, scatter/gather, there
is no limitation on DMA data transfer size. Users can also link the de-
scriptor nodes circularly to achieve a multi -buffered mode DMA.