This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

Performance of EDMA3 Transfer Controller?

Other Parts Discussed in Thread: TMS320C6455

Hi All,

  I am working on TMS320C6455 pocessor. 

   In order save the CPU time,by using 3 dimensional using EDMA,I transfered a pixel for every 4 pixels(both in horizontal and vertical direction)from a buffer as shown in below figure.

 

                       - - - -
                       - - - -
                       - - - -
                       - - - -
                       - - - -
                       - - - -
                       - - - -
                       - - - -
                       - - - -
    |
    |  
    |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
 

But this transfer had increased the DMA wait time to 6 times compared to previous.

Can anyone tell me why the DMA wait time is increased alot?

Is the below mentioned Reason is correct for drastic increase in DMA waits?

 In EDMA3 control user guide it was mentioned that

"In case of 3D transfer, if ACNT != BINDX then command is not optimized."

In my case ACNT = 1,SRCBINDX = 4,so whether each CMD will transfer 1 byte at a time which consumes huge time to transfer the data.

 

Thanks In Advance,

satish

  • Please provide specifics of both transfers - what changed between the first and second transfer? Will you please also reference the specific section in the documentation?

  • What do you mean by "increase in DMA waits"?  Are you saying it takes longer for the DMA to complete the transfer?  Yes, if you're only doing 8-bit transfers then you should expect the DMA to transfer things inefficiently.  That said, the whole point of the DMA is to not make the CPU wait around.  So as long as you structure your code such that the CPU is busy doing something else while the DMA is transferring data, it shouldn't matter.

    Please elaborate if I've missed what you're asking.

    Brad

    PS.  Please clean up your tags:
    https://community.ti.com/forums/t/111.aspx

     

  • Hi Satish,

    EDMA transfer efficiency depends on the type of transfer than the number of bytes of transfer.

    Say for the same amount of data transfer, 1D transfer time < 2D transfer time < 3D transfer time.

    This is becuase of the address generation logic and the strides of the EDMA H/w logic.

    So it is not advised to use 3D transfer unless otherwise there is a dire need of it.

    In my experience for scaledown of video data or de-interleaving or 422->420 conversion of video data, CPU+DMA(2D) would be better interms of efficiency than DMA(3D).

    Regards,

    Venu