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.

TMS320C5515 DMA Precedence Rule/Priority

Hi,

 

I have a situation where a single 8KByte block of DARAM has to be accessed from eight DMAs so as you understand, timing, latency and dma element ordering does play a large role here.

It is stated in spruft2.pdf that dma transfer elements (DMA element tasks) are served in a round robin fashion regarding the channels (2.11).

Yet it does not clearly distinguish if it means all 16 channels are in the same round robin or that rule is for the four channels within each DMA controller.

Also it does not specify entirely what rule apply between them when two or more DMA controllers are competing for the same 8K block, is it a similar round robin yet in this case not for channels but at controller level?

So my questions are these

1. please clear if my understanding is right that within a controller only one channel is active at any given clock cycle, the active channel has to finish its current dma element in order for the controller to proceed to the next channel and so on in the round robin, 1,2,3,4,1,2,3,4 etc.

2. Is there a possibility that all four controllers can concurrently, in the same clock cycle, compete (via one of their channels) for the same 8K DARAM or SARAM block? if that can be done then what is the rule of servicing all of them?

 

Christos

 

  • Hi Christos,

    1) Yes, only one DMA channel from a controller can be active at any given time. In case the DMA is based on hardware sync event, then each channel is serviced as and when the sync even is received. In the case that all DMA channels within a controller are enabled and DMA is not based on any sync event, the channels will be serviced in a round robin fashion.

    2) The four controllers are completely independent of each other. However, they cannot access RAM simultaneously. At a time only one controller can have access. The operation has to finish before the other controller can get access. It is always based on 'first come first serve' basis.

    Regards,

    Mugdha 

  • Hi Mugdha,

     

    Thanks for clearing this out.

     

    Regards,

    Christos