IP Library Granted Patent US 10,019,286
Granted Patent B2
US 10,019,286 · App. 15/167,638 · Granted Jul 10, 2018

Time critical tasks scheduling

Inventors: Sundeep Chandhoke (Austin, TX); Herbert K. Salmon, IV (Austin, TX)
Assignee: NATIONAL INSTRUMENTS CORPORATION
G06F9/4887G06F9/4825G06F2209/486
View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 10,019,286
App. No.
15/167,638
Granted
Jul 10, 2018
Kind
B2
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.

Claims (59)

1. An apparatus for scheduling a time critical task, the apparatus comprising:

a hardware assist scheduler; and

a memory coupled to the hardware assist scheduler;

wherein the apparatus is configured to:

determine a schedule for the time critical task based on received timing information, wherein the schedule comprises a wakeup time, a specified thread bandwidth and an overall thread deadline, wherein the time critical task executes program instructions via a thread on a core of the processing unit in accordance with the schedule, and wherein the processing unit is configured to communicate with the memory and the hardware assist scheduler; and

suspend execution of the time critical task via assertion of a thread interrupt in response to a lateness timer expiring, wherein the lateness timer is based on the wakeup time.

2. The apparatus of claim 1 ,

wherein the time critical task is a function of the overall thread deadline and the specified thread bandwidth.

3. The apparatus of claim 1 ,

wherein the apparatus is further configured to:

notify 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.

4. The apparatus of claim 3 ,

wherein to notify the processing unit, the apparatus is further configured to:

perform a memory write to a memory monitored by the processing unit.

5. The apparatus of claim 1 ,

wherein the overall thread deadline is based on the difference between the thread cycle time and a system dependent suspend latency.

6. The apparatus of claim 1 ,

wherein to determine the schedule, the apparatus is further configured to:

determine a wakeup time, a thread cycle time, and an overall thread deadline.

7. The apparatus of claim 1 ,

wherein the thread comprises a multiplexed thread, wherein the multiplexed thread is executed on the core of the processing unit, and wherein the multiplexed thread comprises:

one or more time critical tasks; and

a best effort task.

8. A non-transitory computer readable memory medium storing program instructions executable by at least one processor to:

determine a schedule for a time critical task based on received timing information, wherein the schedule comprises a wakeup time, a specified thread bandwidth and an overall thread deadline, wherein the time critical task executes program instructions via a thread on a core of a processing unit in accordance with the schedule; and

suspend execution of the time critical task via assertion of a thread interrupt in response to a lateness timer expiring, wherein the lateness timer is based on the wakeup time.

9. The non-transitory computer readable memory medium of claim 8 ,

wherein the time critical task is a function of the overall thread deadline and the specified thread bandwidth.

10. The non-transitory computer readable memory medium of claim 8 ,

wherein the program instructions are further executable to:

notify 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.

11. The non-transitory computer readable memory medium of claim 10 ,

wherein to notify the processing unit, the program instructions are further executable to:

perform a memory write to a memory monitored by the processing unit.

12. The non-transitory computer readable memory medium of claim 8 ,

wherein the overall thread deadline is based on the difference between the thread cycle time and a system dependent suspend latency.

13. The non-transitory computer readable memory medium of claim 8 ,

wherein to determine the schedule, the program instructions are further executable to:

determine a wakeup time, a thread cycle time, and an overall thread deadline.

14. The non-transitory computer readable memory medium of claim 8 ,

wherein the thread comprises a multiplexed thread, wherein the multiplexed thread is executed on the core of the processing unit, and wherein the multiplexed thread comprises:

one or more time critical tasks; and

a best effort task.

15. A method for monitoring a time critical task, the method comprising:

determining a schedule for the time critical task based on received timing information, wherein the schedule comprises a wakeup time, a specified thread bandwidth and an overall thread deadline, wherein the time critical task executes program instructions via a thread on a core of a processing unit in accordance with the schedule; and

suspending execution of the time critical task via assertion of a thread interrupt in response to a lateness timer expiring, wherein the lateness timer is based on the wakeup time.

16. The method of claim 15 ,

wherein the time critical task is a function of the overall thread deadline and specified thread bandwidth.

17. The method of claim 15 , further comprising:

notifying 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.

18. The method of claim 15 ,

wherein the overall thread deadline is based on the difference between the thread cycle time and a system dependent suspend latency.

19. The method of claim 15 ,

wherein determining the schedule comprises:

determining a wakeup time, a thread cycle time, and an overall thread deadline.

20. The method of claim 15 ,

wherein the thread comprises a multiplexed thread, wherein the multiplexed thread is executed on the core of the processing unit, and wherein the multiplexed thread comprises:

one or more time critical tasks; and

a best effort task.

Assignments (5)
RELEASE OF SECURITY INTEREST IN PATENTS (REEL/FRAME 057280/0028) Recorded Oct 13, 2023
From: WELLS FARGO BANK, NATIONAL ASSOCIATION, AS ADMINISTRATIVE AGENT
To: NATIONAL INSTRUMENTS CORPORATION
Reel/Frame 065231/0466 →
RELEASE OF SECURITY INTEREST IN PATENTS (REEL/FRAME 052935/0001) Recorded Oct 13, 2023
From: WELLS FARGO BANK, NATIONAL ASSOCIATION, AS ADMINISTRATIVE AGENT
To: NATIONAL INSTRUMENTS CORPORATION; PHASE MATRIX, INC.
Reel/Frame 065653/0463 →
SECURITY INTEREST Recorded Jun 18, 2021
From: NATIONAL INSTRUMENTS CORPORATION
To: WELLS FARGO BANK, NATIONAL ASSOCIATION
Reel/Frame 057280/0028 →
SECURITY INTEREST Recorded Jun 14, 2020
From: NATIONAL INSTRUMENTS CORPORATION; PHASE MATRIX, INC.
To: WELLS FARGO BANK, NATIONAL ASSOCIATION
Reel/Frame 052935/0001 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded May 27, 2016
From: CHANDHOKE, SUNDEEP; SALMON, HERBERT K., IV
To: NATIONAL INSTRUMENTS CORPORATION
Reel/Frame 038740/0506 →
Continuity (3)
Continuation 14839439 · Aug 28, 2015
Continuation 13859030 · Apr 9, 2013
Related Publication 20160274939A1 · Sep 22, 2016