Part Number: TMS320C6678
Other Parts Discussed in Thread: 4460, 66AK2G12
Tool/software: TI C/C++ Compiler
Hi there,
I'm interested in implementing some parallel master-slave model where core 0 works as master and all other cores execute a job once the master notified them. I went through several recommended approaches and measured the latency for requesting from all slaves and receiving the acknowledgement from all slaves (without job). The latencies using following three approaches are:
| 1 | 2 | 3 | 4 | 5 | 6 | 7 | |
| Notify | 4469 | 5918 | 6835 | 7754 | 9421 | 13138 | 14634 |
| MessageQ | 13610 | 20000 | 28100 | 36600 | 45000 | 57800 | 63000 |
| Navigator | 1556 | 2155 | 2590 | 3487 | 4460 | 5435 | 6380 |
Note that:
1) I went through the optimization guide for Notify and message queue
2) I haven't amended the navigator to use monolithic descriptors
The jobs which should be divided among slaves are either 8000 cycles or 40'000 cycles long (before parallelization, note that this is dictated by the application): the notification times above are way too long. I am looking for something which uses around 100 cycles.
- Are the timings around what you would expect?
- Is it possible to get this job done with a latency of around 100 cycles?
- Do you expect using the interrupt controller in combination with e.g. semaphores to be faster?
- Would you know of an example which configures the interrupt controller to manually trigger interrupts on other cores?
Thank you very much for your answer.
(
My related posts:
https://e2e.ti.com/support/processors/f/791/t/815698
http://e2e.ti.com/support/processors/f/791/p/813105/3010666#3010666
)