Forum Discussion
Altera_Forum
Honored Contributor
9 years agoI assume you are talking about the DMA that shows up in Qsys. The DMA is capable of moving data from memory to memory and only buffers a single descriptor. What that means is that after the DMA moves the data then to get the DMA to move more data you have to send it a new descriptor. So there is a lot of stop and go that happens with non-SG DMAs.
The mSGDMA which stands for modular scatter gather DMA is capable of buffering multiple descriptors and can handle ST-->MM, MM-->ST, and MM-->MM transfers. So the biggest difference is that a host doesn't have to wait for the mSGDMA to finish a transfer before telling it what to do next, it can buffer multiple descriptors and move onto the next transfer when the current transfer completes. In terms of hardware resources the mSGDMA is larger but it's also around 10 years newer so it supports many more features than the old DMA. Maybe if you explained what you want a DMA for I can recommend which one to use.