Modules | |
Task Barrier API | |
Task Event Flag API | |
Task Queue API | |
Task Semaphore API | |
Task Signal API |
As described previously, enabling MARS tasks to send/receive data directly between each other independently of the host is the important factor in improving the usability and efficiency of MPUs. MARS provides various synchronization and communication functions which can make efficient interaction between MARS tasks or between MARS tasks and host programs.
The MARS Task Synchronization API provides the following types of synchronization objects:
(1) MARS Task Barrier
This is used to make multiple MARS tasks wait at a certain point in a program and to resume the task execution when all tasks are ready.
(2) MARS Task Event Flag
This is used to send event notifications between MARS tasks or between MARS tasks and host programs.
(3) MARS Task Queue
This is used to provide a FIFO queue mechanism for data transfer between MARS tasks or between MARS tasks and host programs.
(4) MARS Task Semaphore
This is used to limit the number of concurrent accesses to shared resources among MARS tasks.
(5) MARS Task Signal
This is used to signal a MARS task in the waiting state to change state so that it can be scheduled to continue execution.