Using Scatter-Gather DMA (Direct Memory Access) with NI DAQ Device

Updated Dec 11, 2019

Reported In

Hardware

  • Multifunction I/O Device
  • GPIB Instrument Control Device

Issue Details

My DAQ device uses scatter-gather DMA to get data from the board to my computer, what does this mean?

Solution

When a block move operation occurs, traditional DMA controllers need a contiguous (nonsegmented) block of physical memory. On most systems, it is difficult to get nonsegmented memory returned from the operating system.

The MITE and NI-STC DMA controllers can take segmented memory and perform a move operation on this memory using "scatter-gather" DMA. In this method, the DMA controllers store the starting addresses of all the memory segments. After the move operation starts, the DMA controller automatically feeds the DMA controller the start address of the next segment after the previous segment of memory is completed. Using this method, you do not need a contiguous block of memory from the operating system. This makes DMA ideal for non deterministic operating systems. 

See related links below for more information on DMA and how it is used with NI products.