Hi
I want to design an architecture to implement Parallel programming on C6678 (Data parallel).
I want Edma3 to sevice all the cores (1 to 7) and make L2SARAM of all the cores(1 to 7) to aping_pong buffer except Core_0;
In this regard, I designed an architecture as below:
1) I allocated Core_0 for Network and EDMA3 control, and management.
2) All the cores are related to Core_0 by definition of some registers in MSMC memory.
3) each core (1 to 7) has its own region in DDR3 memory.
4) if a core (1 to 7) is to use EDMA3, it should ask Core_0 to do so.
I should mention that the same task(program) run on core(1 to 7).
But I think this architecture may decrease the performance in practice!! Because whenever any specific Core wants to use EDMA3, it should ask
Core_0.
Another way is to use Core_0 for Network managing and Cores 1 to 7 for OpenMP; but this way is very complicated for me because of some problems such as belows:
1) I don't know how to execute OpenMP on Core 1 to 7 with respect to the Master Thread ID which is not 0 any more!!
2) I should maintanance cache coherency for all the Cores (1 to 7) when using OpenMP and it is very complicated especially when using several functions for OpenMP
programming.
It seems that using EDMA3 is very easier than OpenMP because OpenMP is not user freindly at all. (I have already used OpenMP programming in Visuall Studio
on desktop processor).
Do you have any better suggestion? guide me please?