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.

IPC vs EDMA3

Other Parts Discussed in Thread: TMS320C6657

Hi,

I have some questions about IPC:

1. Since EDMA3 has higher throughput, why use Multicore Navigator ? Which peripherals require using Navigator ?

2. What's the difference between IPC and EDMA3 ? 

Thanks,

dp

  • DP,

    Seems to me that you are trying to compare packet DMA (part of Navigator subsystem) and EDMA3. If you go through a short online training on "multicore Navigator overview", that should answer most of your questions.

    http://focus.ti.com/docs/training/catalog/events/event.jhtml?sku=OLT110027

    Regards,

    Ghouse

  • DP,

    A rather lengthy explanation:

    IPC (InterProcessor Communication) is a rather overused term. In general, it refers to synchronization/messaging between processors or even tasks.  On Keystone devices (and earlier TI processors) there are also “IPC” registers, which provide a rudimentary core-to-core interrupt capability.

    EDMA3 is a normal (though very flexible) DMA, which can be used for simple messaging schemes by using its Transfer Completion interrupts.  So in this respect, EDMA3 can be used as an IPC module.

    Multicore Navigator is a combination of a hardware Queue Manager Subsystem (a Queue Manager plus several dedicated firmware processors and other auxiliary pieces) plus a number of pktDMAs (Packet DMA) that are distributed around the device. The number of pktDMAs varies from device to device, but in Appleton (TCI6614) there are pktDMAs in these IP:

    AIF
    BCP
    FFTC (x2)
    NetCP
    QMSS (infrastructure – a memory to memory pktDMA)
    SRIO

    There are several ways that Navigator can be used as an IPC module:

    Synchronization:
    -          Queues can be polled, by multiple “slaves” if necessary.
    -          Special queues can trigger CP-INTC interrupts.
    -          QMSS INTD can be used independently to trigger interrupts.
    Messaging:
    -          QM by itself can be used for zero-copy or shared memory messages.
    -          QM with Infrastructure pktDMA for point-to-point messages. Rx queues can be polled or interrupt driven.
    -          QM with Infrastructure pktDMA and Accumulator.  Accumulator firmware performs Rx queue management in the background with interrupts to host.

    So it is much more flexible than the IPC registers and EDMA3 combined.

    Differences between EDMA3 and pktDMA:

    EDMA3 is slightly faster.
    pktDMA is more flexible.
    pktDMA is unconcerned with data format or stride. It simply moves chunks of data.
    pktDMA (and QM) handle atomicity issues.
    pktDMA is easier to program and use, though it requires more initial setup than EDMA3.
    There is a wider variety of ways to respond to pktDMA outputs (descriptors written to Rx queues).
    pktDMA transfers can be chained from one to another.
     
  •  db_woodall, 

    Thanks  for your expatiation, it make me clear.

    Is there only one peripheral SRIO using pktDMA in C665x? Does EMAC of C665x using pktDMA ? 

    Regards,

    dp 

  • DP,

    NetCP is the Network Co-Processor. This is the relevant part of the EMAC peripheral, so yes it does use pktDMA.

    Regards,
    RandyP

  • RandyP,

    In the functional block diagram of C6678, there is a network coprocessor which including switch and accelerator.

    But in the functional block diagram of C6657, there is only MAC without mention of network coprocessor.

    So please confirm it.

    Regards,

    dp 

     

  • DP,

    Good point. My answer was not to the point of your question on the C665x. My apologies.

    The C6657 uses a different EMAC module which does not include the same pktDMA capability, nor the NetCP. It does have its own DMA capability, but it is implemented differently from the other Keystone devices. The EMAC User's Guide from the TMS320C6657 Product Folder has the details on this.

    The C6657's EMAC does not go through the EDMA3 module for data transfers. It has its own built-in DMA capability which has some similarities with the pktDMA.

    Regards,
    RandyP

  • RandyP,

    Thanks for your expatiation. 

    Regards,

    dp