AnsweredAssumed Answered

MDMA throughput with DMA service

Question asked by amsk on Aug 1, 2018
Latest reply on Aug 10, 2018 by Jithul_Janardhanan

I tested EE-401 "SC58x_MDMA_Throughput" with the following settings on ADZS-SC584-EZLITE.
 1) MDMA2
 2) SYSCLK = 225 MHz
 3) DMA count = 16384 bytes
 4) MSIZE = 32
 5) PSIZE = 4
 6) from C1L1S1 to C1L1S1

 

The measured throughput is 893.9 MB/s.

 

I changed the code to use the DMA Service "adi_mdma_Copy1D" instead of "MDMA_CONFIG".
The throughput is degraded to 224.7 MB/s.
Does the DMA Service support maximum theoretical throughput?

 

I think it is caused by setting DMA_CFG.PSIZE=0 and DMA_CFG.EN=1 simultaneously in the DMA service (MDmaUpdateXferStatus()).
I modified the code as shown below, the throughput changed to 895.6 MB/s.
====
before:
 adi_mdma_Copy1D(hStream, pMemDest, pMemSrc, ADI_DMA_MSIZE_32BYTES, Bytes/32);
after:
 adi_mdma_Copy1D(hStream, pMemDest, pMemSrc, 0x520, Bytes/32);

Outcomes