Figure 3-8: scatter-gather dma for data transfer – ADLINK PCIe-7350 User Manual

Page 40

Advertising
background image

30

Function Block and Operation Theory

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 PCI/PCIe controller
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 4.7 shows a linked list that is constructed by three DMA
descriptors. Each descriptor contains a PCI/PCIe address, PCI/
PCIe dual address, a transfer size, and the pointer to the next
descriptor. PCI/PCIe address and PCI/PCIe dual address support
64-bit addresses which can be mapped into more than 4GB of the
address space. Users can allocate many small size memory
blocks and chain their associative DMA descriptors altogether by
their application programs. The 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 3-8: Scatter-Gather DMA for Data Transfer

Choose Finite or Continuous Operation

You can transfer data continuously to or from computer memory
(continuous operation), or you can specify the number of samples
you want to transfer (one-shot operation). In either case, the PCIe-
7350 transfers the data using direct memory access (DMA) with-
out occupying CPU resources.

Advertising