Hardware assisted method and system for scheduling time critical tasks
First Claim
1. A method for monitoring a time critical task, the method comprising:
- receiving timing information for executing the time critical task, wherein the time critical task executes program instructions via a thread on a core of a processing unit;
scheduling the time critical task, wherein said scheduling comprises determining, based on the received timing information, a wakeup time, a thread cycle time, an overall thread deadline, and a time critical task deadline;
wherein the time critical task deadline is a function of the overall thread deadline and a specified thread bandwidth, wherein the specified thread bandwidth indicates a fraction of the thread cycle time reserved for the time critical task;
programming a lateness timer based on the wakeup time and the time critical task deadline;
waiting for the wakeup time to obtain;
notifying the processing unit of said scheduling, wherein said notifying indicates to the processing unit that the thread is in an idle state, wherein the idle state indicates that the thread is awake and ready to resume execution and execute the time critical task in accordance with said scheduling;
executing, on the core of the processing unit, the time critical task in accordance with said scheduling;
monitoring the lateness timer; and
asserting a thread interrupt in response to the lateness timer expiring, wherein said asserting interrupts said executing, thereby suspending execution of the time critical task.
5 Assignments
0 Petitions
Accused Products
Abstract
A method and system for scheduling a time critical task. The system may include a processing unit, a hardware assist scheduler, and a memory coupled to both the processing unit and the hardware assist scheduler. The method may include receiving timing information for executing the time critical task, the time critical task executing program instructions via a thread on a core of a processing unit and scheduling the time critical task based on the received timing information. The method may further include programming a lateness timer, waiting for a wakeup time to obtain and notifying the processing unit of the scheduling. Additionally, the method may include executing, on the core of the processing unit, the time critical task in accordance with the scheduling, monitoring the lateness timer, and asserting a thread execution interrupt in response to the lateness timer expiring, thereby suspending execution of the time critical task.
9 Citations
23 Claims
-
1. A method for monitoring a time critical task, the method comprising:
-
receiving timing information for executing the time critical task, wherein the time critical task executes program instructions via a thread on a core of a processing unit; scheduling the time critical task, wherein said scheduling comprises determining, based on the received timing information, a wakeup time, a thread cycle time, an overall thread deadline, and a time critical task deadline; wherein the time critical task deadline is a function of the overall thread deadline and a specified thread bandwidth, wherein the specified thread bandwidth indicates a fraction of the thread cycle time reserved for the time critical task; programming a lateness timer based on the wakeup time and the time critical task deadline; waiting for the wakeup time to obtain; notifying the processing unit of said scheduling, wherein said notifying indicates to the processing unit that the thread is in an idle state, wherein the idle state indicates that the thread is awake and ready to resume execution and execute the time critical task in accordance with said scheduling; executing, on the core of the processing unit, the time critical task in accordance with said scheduling; monitoring the lateness timer; and asserting a thread interrupt in response to the lateness timer expiring, wherein said asserting interrupts said executing, thereby suspending execution of the time critical task. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9)
-
-
10. A system for scheduling a time critical task, the system comprising:
-
a processing unit; a device configured as a hardware assist scheduler; and a memory coupled to the processing unit and the hardware assist scheduler; wherein the hardware assist scheduler is configured to; receive timing information for executing the time critical task, wherein the time critical task executes program instructions via a thread on a core of the processing unit; schedule the time critical task, wherein to schedule the time critical task, the device determines, based on the received timing information, a wakeup time, a thread cycle time, an overall thread deadline, and a time critical task deadline; wherein the time critical task deadline is a function of the overall thread deadline and a specified thread bandwidth, wherein the specified thread bandwidth indicates a fraction of the thread cycle time reserved for the time critical task; program a lateness timer based on the wakeup time and the time critical task deadline; wait for the wakeup time to obtain; notify the processing unit of the schedule, wherein to notify, the hardware assist scheduler is configured to indicate to the processing unit that the thread is in an idle state, wherein the idle state indicates that the thread is awake and ready to resume execution and execute the time critical task in accordance with the schedule; monitor the lateness timer; and assert a thread interrupt in response to the lateness timer expiring, wherein to assert the thread interrupt, the hardware assist scheduler is configured to interrupt execution of the thread on the core of the processing unit, thereby suspending execution of the time critical task; and wherein the processing unit is configured to; resume execution of the thread upon notification that the thread is in the idle state; and execute the time critical task on the thread. - View Dependent Claims (11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23)
-
Specification