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 cycle problem

Hi,I've run an IPC example on the simulator using IPCGR registers to notify each
core. In fact I make core0 trigger core1 then the core1 triggers core2, and so
on).I printed out the software simulation cycle which is about 500,000 during this
procedure: core0->core1->core2->core3->core0. However the same test running on
the 6678 evaluation board(frequency of 1Ghz) does not have the same result.I'll
cost about 0.5second(500,000,000 cycles) !!

1. Is there anyting wrong with my test?
2. If not,which is the most cycle-saving way to do multicore notification?

PS: I've tried to use a volatile global varible which is mapped in 2M shared memory to act as an notification trigger. Once one core modifies it ,other cores will know.The same procedure "core0->core1->core2->core3->core0" costs almost 0.5 second too.

  • 1.  Are you using MSMCRAM or DDR?  If using DDR, make sure you have cache enabled for that section (By default this should be the case).  Are you doing any System_printf() within your timing?  If so, please remove this System_printf() as this can possibly halt the target momentarily.

    2.  Are you doing anything else between notifications?  Notifications themselves should take a less than 2000 cycles each so something looks terribly wrong here.

  • judahvang, thank u for your fast reply. In my opinion ,the  first test are using IPCGR registers and interrupts which have nothing to do with memory. The given IPC example project are just provided by TI E2E community.I'll add this project as Attachment.The only modification may be adding some cycle measurements.I'll appreciate a lot if you can help me check IPC.c  at your convenience. 7848.IpcTest.zip

  • Can you remove  your printf() from your timing?

    Only do the printf at the end, after all of your timing.  I'm pretty sure these printf() are affecting your timing.

    Judah

  • Yeah ,  it  is the pinftfs that affect my  timing just as you said !  I thought they may  cost a few thousand cycles but not make a mess of timing . However thank u again for your    

    kind help!