IP Library Granted Patent US 8,943,505
Granted Patent B2
US 8,943,505 · App. 13/594,088 · Granted Jan 27, 2015

Hardware assisted real-time scheduler using memory monitoring

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 8,943,505
App. No.
13/594,088
Granted
Jan 27, 2015
Kind
B2
Abstract

Apparatus and method for real-time scheduling. An apparatus includes first and second processing elements and a memory. The second processing element is configured to generate or modify a schedule of one or more tasks, thereby creating a new task schedule, and to write to a specified location in the memory to indicate that the new schedule has been created. The first processing element is configured to monitor for a write to the specified location in the memory and execute one or more tasks in accordance with the new schedule in response to detecting the write to the specified location. The first processing element may be configured to begin executing tasks based on detecting the write without invoking an interrupt service routine. The second processing element may store the new schedule in the memory.

Claims (36)

1. An device, comprising:

a system memory of the device;

a first processing element, comprising or coupled to the system memory; and

a second processing element, coupled to the system memory, and configured to:

generate or modify a real-time schedule of one or more real-time tasks, thereby creating a new real-time schedule; and

write to a specified location in the system memory, thereby indicating that the new real-time schedule has been created;

wherein the first processing element is configured to:

monitor for a write to the specified location in the system memory; and

execute the one or more real-time tasks in accordance with the new real-time schedule in response to detecting the write to the specified location in the system memory without invoking an interrupt service routine.

2. The device of claim 1 , wherein the first processing element is configured to monitor for a write to the specified location based on a monitor interval specified by the second processing element.

3. The device of claim 1 , wherein the second processing element is further configured to store the new real-time schedule in the system memory.

4. The device of claim 1 , wherein the second processing element is configured to write to the specified location in the system memory by asserting control over a bus.

5. The device of claim 1 ,

wherein the first processing element is a processor core; and

wherein a thread of the processor core is configured to monitor for the write and to execute the one or more real-time tasks.

6. The device of claim 1 , wherein the first processing element is a processor comprising a plurality of cores, wherein a first core is configured to monitor for the write, and wherein a second core is configured to execute the one or more real-time tasks.

7. The device of claim 1 , wherein the first processing element is a multithreaded processor, wherein a first processor thread of the multithreaded processor is configured to monitor the specified location in the system memory, and wherein a second processor thread of the multithreaded processor is configured to execute the one or more real-time tasks.

8. The device of claim 1 , wherein the second processing element is comprised in a peripheral device of a host device.

9. The device of claim 8 , wherein the first processing element is comprised in another peripheral device of the host device.

10. The device of claim 8 , wherein the first processing element is comprised in the host device.

11. The device of claim 1 , wherein the device comprises a processor, and wherein the first and second processing elements comprise processor cores of the processor.

12. The device of claim 1 , wherein the second processing element comprises a coprocessor.

13. The device of claim 1 , wherein the second processing element comprises a hardware programmable device.

14. A method, comprising:

monitoring, by a first processing element of a device, for a write to a specified location in a system memory of the device;

generating or modifying, by a second processing element of the device, a real-time schedule of one or more real-time tasks, thereby creating a new real-time schedule;

writing, by the second processing element of the device, to the specified location in the system memory, thereby indicating that the real-time schedule has been generated or modified;

detecting, by the first processing element of the device, the write to the specified location in the system memory; and

executing, by the first processing element of the device, based on said detecting, one or more real-time tasks in accordance with the new real-time schedule without invoking an interrupt service routine.

15. The method of claim 14 , wherein the first processing element begins said monitoring based on a monitor interval specified by the second processing element.

16. The method of claim 14 , further comprising:

storing the new real-time schedule, by the second processing element, in the system memory.

17. The method of claim 14 , wherein said writing comprises asserting control over a bus of the first processing element.

18. The method of claim 14 , wherein the second processing element is a coprocessor configured to implement a real-time scheduler and the first processing element is a processor core.

19. The method of claim 14 , wherein the first processing element is a processor comprising a plurality of cores, wherein a first core is configured to perform said monitoring, and wherein a second core is configured to perform said executing.

20. The method of claim 14 , wherein the first processing element is a multithreaded processor, wherein a first thread of the multithreaded processor performs said monitoring and wherein a second thread of the multithreaded processor performs said executing.

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 Aug 24, 2012
From: CHANDHOKE, SUNDEEP
To: NATIONAL INSTRUMENTS CORPORATION
Reel/Frame 028845/0317 →