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.

Transfer by Multicore Navigator vs EDMA3

Hi,

I am developing APIs as the backends for parallel applications. I already implemented an API based on the LLD of the Multicore Navigator using infrastructure mode and using DMA, but I wanted to know what is the difference between comunication using the Multicore Navigator and just use the EDMA3 (based on the LLD) in terms of performance, use cases, etc.

Thanks,

Miguel

  • Miguel,

    The Multicore Navigator (QMSS and packet DMA) are typically used for packet based transfers, whereas the EDMA allows for more flexible data transfer configurations. 

    Based on this distinction, some of peripherals are designed to use either the EDMA or the packet DMA for transferring data to/from the peripheral. In these cases, there is not much of a choice in whether the EDMA or the packet DMA is used. For other applications, such as DSP-to-DSP communication, either the EDMA or the packet DMA can be used. In that case, then other considerations such as flexibility or performance should be considered.

    In terms of hardware performance (I cannot provide details about software performance), the EDMA has allows for higher throughput (especially on a per channel basis), so for applications where performance is critical, EDMA is recommended. For the EDMA, different channels support different throughputs. Some channels support up to 16000 MB/s, while other EDMA channels support up to 5333 MB/s. 

    On a per channel basis, the packet DMA has lower performance than the EDMA. The maximum throughput for the packet DMA is not identical for each peripheral, however, all packet DMA instances are capable of acheiving 1250 MB/s per channel (SRIO packet DMA channels can acheive higher performance). When using multiple channels to transfer data simultaneously, the packet DMA can also acheive 5333 MB/s (this typically requires 4 or more channels).

    I hope this helps. Please let me know if you have more questions.

    Regards,

    Derek

  • Hi Derek,

    I want to clarify what is the purpose or benefit of having the Multicore Navigator if the EDMA has a better performance?, especially for core to core communication. Also what is the advantage of packet based transfers?

    What about the off chip communication with the Hyperlink? Can I use both the EDMA and Multicore Navigator for this case?

    Miguel

     

  • Miguel,

    The Multicore Navigator is required for use with some peripherals. The queueing functionality provided by the Queue Manager works well for some peripherals so that several messages can be received and queued, and then processed in batches. Most of these peripherals also have the ability to use several packet DMA channels simultaneously, so more than one channel can be active at a time. Although a single packet DMA channel does not have performance that is as high as the EDMA, the combined performance of several packet DMA channels can reach the same performance as an EDMA channel.

    For core to core communication, the choice between EDMA and packet DMA is really up to the user. If the performance of the transfer is not critical, then the ability to store several core-to-core messages in the a queue and then process them in batches can be useful.

    HyperLink typically uses EDMA,  but it can also be used with the packet DMA. 

    Regards,

    Derek

  • Miguel,

    This this resolve your question? If so, please click  Verify Answer , below.

    Regards,

    Derek

  • Hi Dereck,

    According with this performance report on the C6678: http://www.ti.com/lit/an/sprabk5/sprabk5.pdf, the performance of the EDMA3 transfer is limited by the slower component between the source memory, bus and the destination memory, Does it hold for the Packet DMA? Also I want to know for what reason the package DMA has a slower performance than the EDMA3.

    Thanks,

    Miguel

  • Miguel,

    We are planning on adding performance data for the Multicore Navigator in the near future. The performance of a specific packet DMA interface (e.g. the combined performance of the channels) is limited by the bus. A single packet DMA channel cannot fully utilize the entire bus; however, if several packet DMA channels are used simultaneously, then the packet DMA can fully utilize the bus.

    Regards,

    Derek

  • Greetings,

    As the name said, Packet Navigator, and the guts show

    I recommend considering the use of EDMA3 for your parallel applications for control/data/IPC so long that you can get your hand on its Master/Slave details, similar to the one for the 6472 below

    Good Luck,

    Sam

  • Greetings,

    Any update/resolution?

    Sam

  • Hi Sam,

    I was wondering if in the case of EDMA3 on C6678 to fully utilize the bus I should use all the TCC at the same time for one single transfer?

    Thanks,

    Miguel

  • Greetings,

    So long that your master-slave cross-connect permit you to use all TCs simultaneously in the topology of your planned single transfer, of which I assume it is from a single source to many destinations (i.e. broadcast mode).

    I have not got my hand on the C6678 Master/Slave permutation table yet from TI.

    Good Luck,

    Sam

  • Miguel,

    You should only have to use one transfer controller to fully utilize the bus. If you use multiple transfer controllers at the same time, then the bus will still be fully utilized, but it will be divided between the transfer controllers that are in use, causing your per channel performance to actually decrease.

    Regards,

    Derek

  • Derek,

    Thanks for clarifying this.

    Miguel

  • BTW, this is the closest I can get.