Patent ID: 9542238
Date: 2017-01-10
CPC Classifications: G06F

Claim:
1. In a multi-core system configured to execute a plurality of tasks and having a semaphore engine and a direct memory access (DMA) engine, a method comprises: selecting, by a task scheduler of a first core, a first task for execution by the first core, wherein executing the first task comprises allocating an entry in a workspace memory of the first core, and requesting a semaphore lock of a first semaphore identified by a first semaphore identifier; in response to the semaphore lock request, the task scheduler of the first core switching the first task to an inactive state and selecting a next task for execution by the first core; in response to the semaphore lock request, the semaphore engine, acquiring the semaphore lock of the first semaphore for the first task; in response to acquiring the semaphore lock of the first semaphore for the first task, the semaphore engine providing a data transfer request to the DMA engine; in response to the data transfer request, transferring, by the DMA engine, data associated with the locked first semaphore to the entry of the workspace memory of the first core; after the transferring the data, the task scheduler switching the first task from the inactive state to a ready for scheduling state so that the first task can be selected for execution by the task scheduler; when there is no other task waiting to acquire lock of the first semaphore, the DMA engine transferring modified data from the entry of the workspace memory of the first core to external memory; and when there is at least one other task waiting to acquire lock of the first semaphore, the method further comprises: