Scatter-gather
Transfer, który czyta z kilku osobnych obszarów pamięci lub do nich zapisuje za jednym razem, bez wcześniejszego kopiowania ich w jedno miejsce.
Podstawowy kanał DMA przenosi tylko jeden ciągły blok. W trybie scatter-gather dostaje listę deskryptorów (adres i długość każdego kawałka) i przechodzi po niej po kolei, bez budzenia procesora w międzyczasie. Gather zbiera z wielu miejsc przy nadawaniu, scatter rozprasza przy odbiorze.
Klasycznym przykładem są karty sieciowe: nagłówek protokołu leży w jednym buforze, dane w drugim, a karta czyta oba bezpośrednio. Ten sam pomysł istnieje w oprogramowaniu jako readv() i writev(), wprowadzone w 4.2BSD. W firmware często łączy się go z pierścieniem deskryptorów, który kontroler DMA obiega w nieskończoność.