What is Scatter-Gather DMA (Direct Memory Access)? 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. 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.