What is the difference between 3 types of DMA?1). chaining dma described in AN456 ( PCI Express High Performance Reference Design ) 2). sgdma described in Embedded Peripherals IP 3). modular sgdma ( msgdma ) described in AN431 ( PCI Express to External Memory Reference Design ) and in Altera Wiki
With a well written driver software, and suffiecently large transfers, the SGDMA IP can be less CPU intensive compared to the DMA IP. The downside of SGDMA is that the software for the SGDMA can be much more complex, and understanding how to make the CPU and the SGDMA work together in parallel takes some time; there can be some risk of race conditions if you dont have experience with this type of software. The Modular SGDMA is reported to fix some architectural anomalies in the SGDMA, but I cant comment on these specifcally as the SGDMA has been working sufficently in my application.