Device and method for synchronizing tasks executed in parallel on a platform comprising several calculation units

US9513973B2 · US · B2

Patent metadata
FieldValue
Publication numberUS-9513973-B2
Application numberUS-201214129895-A
CountryUS
Kind codeB2
Filing dateJun 25, 2012
Priority dateJun 29, 2011
Publication dateDec 6, 2016
Grant dateDec 6, 2016

How to read this patent

A practical reading order for non-experts. Skip the full description unless you need deep technical detail.

  1. Title

    What the patent document calls the invention.

  2. Abstract

    A short plain-language summary of the technical disclosure.

  3. Assignees and inventors

    Who owns or filed the patent and who is credited as inventor.

  4. Key dates

    Filing, priority, publication, and grant dates set the timeline.

  5. First independent claim

    The legal scope of protection — read this for what is actually claimed.

  6. CPC / IPC classifications

    Technology tags used to group this patent with similar filings.

  7. Citations and related patents

    Prior art links and similar publications in this corpus.

Abstract

Official abstract text for this publication.

A device and method for synchronizing tasks executed in parallel on a platform comprising comprises several computation units. The tasks are apt to be preempted by the operating system of the platform, and the device comprises at least one register and one recording module installed in the form of circuits on said platform, said recording module being suitable for storing a relationship between a condition to be satisfied regarding the value recorded by one of said registers and one or more computation tasks, the device comprising a dynamic allocation module installed in the form of circuits on the platform and configured to choose a computation unit from among computation units of the platform when said condition is fulfilled, and for launching the execution on the chosen computation unit of a software function for searching for the tasks on standby awaiting the fulfillment of the condition and notifications of said tasks.

First claim

Opening claim text (preview).

The invention claimed is: 1. A device for synchronizing tasks executed in parallel on a platform comprising several computation units, the tasks being configured to be preempted by an operating system of the platform, the device comprising: at least one register and a recording module which are installed in a form of circuits on the platform, the recording module being configured to store a relationship between a condition to be satisfied on a value recorded by one of the registers and one or more computation tasks configured to be executed in parallel; a dynamic allocation module installed in the form of circuits on the platform and configured to choose a computation unit from among the computation units of the platform when the condition is fulfilled, to execute on a chosen computation unit a software function for searching for the tasks on standby awaiting fulfillment of the condition, and to notify the tasks; and a notification module configured to detect the fulfillment of the condition and to signal the fulfillment of the condition to preempted tasks in relation to the condition when the fulfillment of the condition is detected, wherein the signaling comprises sending an asynchronous signal to the computation units executing the preempted tasks on standby awaiting the condition, the asynchronous signal being sent to the computation units by means of a lookup table of correspondence between computation units and conditions, this lookup table being updated continuously by the operating system of the platform. 2. The device for synchronizing tasks as claimed in claim 1 , in which the register supports atomic operations of post-incrementation and/or of post-decrementation, configured to read the value recorded by the register and then for modifying it within one and the same atomic operation during read-access to a memory slot, related to the register. 3. A method for synchronizing tasks executed in parallel on a platform comprising several computation units and a hardware synchronization device comprising: at least one register and one dynamic allocation module; a task on standby awaiting satisfaction of a condition being preempted by an operating system of the platform, wherein when the condition is fulfilled, the dynamic allocation module chooses a computation unit to execute a software function configured to search for the tasks on standby awaiting fulfillment of the condition and to notify the tasks; and a notification module configured to detect the fulfillment of the condition and to signal the fulfillment of the condition to preempted tasks in relation to the condition when the fulfillment of the condition is detected, wherein the signaling comprises sending an asynchronous signal to the computation unit executing the preempted tasks on standby awaiting the condition, the asynchronous signal being sent to the computation unit via a lookup table of correspondence between computation units and conditions, this lookup table being updated continuously by the operating system of the platform. 4. The method for synchronizing tasks as claimed in claim 3 , in which the dynamic allocation module is configured to choose the computation unit as a function of at least one criterion from among the following: a computation load allotted to each of the computation units of the platform, an operating state of each of the computation units of the platform, a priority level allotted a priori to each of the computation units of the platform. 5. The method for synchronizing tasks as claimed in claim 4 , in which, when a condition is fulfilled, the dynamic allocation module causes an interrupt on the computation unit chosen to execute the software function for searching for and for updating a state of the tasks. 6. The method for synchronizing tasks as claimed in claim 4 , in which the dynamic allocation module transmits, as input parameter of the software function, a datum making it possible to identify the register on which the fulfilled condition is defined. 7. The method for synchronizing tasks as claimed in claim 4 , in which, when a task is preempted, a preemption indicator is activated for the condition or conditions whose fulfillment is awaited by the task, the dynamic allocation module being activated when the preemption indicator is activated and when the condition is fulfilled. 8. The method for synchronizing tasks as claimed in claim 3 , in which, when a condition is fulfilled, the dynamic allocation module causes an interrupt on the computation unit chosen to execute the software function for searching for and for updating an state of the tasks. 9. The method for synchronizing tasks as claimed in claim 8 , in which the dynamic allocation module transmits, as input parameter of the software function, a datum making it possible to identify the register on which the fulfilled condition is defined. 10. The method for synchronizing tasks as claimed in claim 8 , in which, when a task is preempted, a preemption indicator is activated for the condition or conditions whose fulfillment is awaited by the task, the dynamic allocation module being activated when the preemption indicator is activated and when the condition is fulfilled. 11. The method for synchronizing tasks as claimed in claim 3 , in which the dynamic allocation module transmits, as input parameter of the software function, a datum making it possible to identify the register on which the fulfilled condition is defined. 12. The method for synchronizing tasks as claimed in claim 3 , in which, when a task is preempted, a preemption indicator is activated for the condition or conditions whose fulfillment is awaited by the task, the dynamic allocation module being activated when the preemption indicator is activated and when the condition is fulfilled. 13. The method for synchronizing tasks as claimed in claim 12 , in which, when a task resumes its execution on a computation unit, the preemption indicator is deactivated if there no longer exists any preempted task associated with the condition. 14. The method for synchronizing tasks as claimed in claim 12 , in which, when a task is preempted, a preemption indicator is activated for the condition or conditions whose fulfillment is awaited by the task, the dynamic allocation module being activated when the preemption indicator is activated and when the condition is fulfilled. 15. The synchronization method as claimed in claim 3 , wherein modifying a value of the register comprises modifying the value of the register when a resource is freed by the task. 16. The synchronization method as claimed in claim 3 , comprising a step of recording the relationship between the condition to be satisfied and the computation units during the execution of a task comprising a phase of awaiting an asynchronous signal.

Assignees

Inventors

Classifications

  • G06F9/522Primary

    Barrier synchronisation · CPC title

  • Allocation of resources, e.g. of the central processing unit [CPU] · CPC title

  • Scheduling strategies for dispatcher, e.g. round robin, multi-level priority queues · CPC title

  • G06F9/52Primary

    Program synchronisation; Mutual exclusion, e.g. by means of semaphores · CPC title

Patent family

Related publications grouped by family.

External sources

Frequently asked questions

Answers are generated from the same data shown on this page.

What does patent US9513973B2 cover?
A device and method for synchronizing tasks executed in parallel on a platform comprising comprises several computation units. The tasks are apt to be preempted by the operating system of the platform, and the device comprises at least one register and one recording module installed in the form of circuits on said platform, said recording module being suitable for storing a relationship between…
Who is the assignee on this patent?
Thabet Farhat, Lhuillier Yves, David Raphael, and 1 more
What technology area does this patent fall under?
Primary CPC classification G06F9/522. Mapped technology areas include Physics.
When was this patent published?
Publication date Tue Dec 06 2016 00:00:00 GMT+0000 (Coordinated Universal Time) (B2). Legal status and post-grant events are not shown on this page.
What related patents are in patentsdb?
We list 8 related publications on this page (citations in our corpus or others sharing the same primary CPC).