Forums

How to do task synchronization in multicore TI DSP?

Started by ashok_friendsonly December 2, 2008
Hi Guys

If anybody knows how to do task synchronization in multicore TI DSP?

I have tried semaphore, but it didn't work? will it actualy works in
multi core?

Waiting for your valuable advice

Thanks and Regards
Hi Ashok,

On the high level, task sync is performed with DSP/BIOS Link calls,
which (the DBL) must be present on both GPP and DSP sides.

On the low level (device registers), sync is being done using an
interprocessor interrupt mechanism. Both GPP and DSP (or if we are
talking about DSP-only multicores, e.g. TMS320C6474 that has 3xC64+,
the DSP CPUs) can set an interrupt to each other by setting a bit in a
communication register.

Some of the peripheral devices can be made available to both cores,
which makes it possible to use devices' interrupts as sync signals
to the cores - however it might be seen as a questionable method.

Using interprocessor interrupts you can effectively synchronize tasks
on different CPUs by implementing semaphores, mutexes, messages or event
flag groups.

Rgds,

Andrew

P.S. I cross posted my email to the c6x group in a hope that more good
comments than mine, might be added there.

> Subject: How to do task synchronization in multicore TI DSP?
> Posted by: "ashok_friendsonly" ashok_friendsonly@ ashok_friendsonly
> Date: Tue Dec 2, 2008 6:04 am ((PST))
>
> Hi Guys
>
> If anybody knows how to do task synchronization in multicore TI DSP?
>
> I have tried semaphore, but it didn't work? will it actualy works in
> multi core?
>
> Waiting for your valuable advice
>
> Thanks and Regards
>