IP Library › Granted Patent US 11,507,420
Granted Patent B2
US 11,507,420 · App. 17/014,801 · Granted Nov 22, 2022

Systems and methods for scheduling tasks using sliding time windows

Inventors: Srivatsan Varadarajan (St. Louis Park, MN); Larry James Miller (Black Canyon City, AZ); Arthur Kirk McCready (Glendale, AZ); Aaron R. Larson (Shoreview, MN); Richard Frost (Avondale, AZ); Ryan Lawrence Roffelsen (Tigard, OR)
Assignee: Honeywell International Inc.
G06F9/5005G06F9/4812G06F9/4881
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 11,507,420
App. No.
17/014,801
Granted
Nov 22, 2022
Kind
B2
Abstract

Systems and methods for scheduling tasks using sliding time windows are provided. In certain embodiments, a system for scheduling the execution of tasks includes at least one processing unit configured to execute multiple tasks, wherein each task in the multiple tasks is scheduled to execute within a scheduler instance in multiple scheduler instances, each scheduler instance in the multiple scheduler instances being associated with a set of time windows in multiple time windows and with a set of processing units in the at least one processing unit in each time window, time windows in the plurality of time windows having a start time and an allotted duration and the scheduler instance associated with the time windows begins executing associated tasks no earlier than the start time and executes for no longer than the allotted duration, and wherein the start time is slidable to earlier moments in time.

Claims (47)

1. A processor, comprising:

processing units configured to execute, simultaneously, respective tasks during a time window common to the processing units, having an estimated start time, and being configurable as slidable or non-slidable; and

a scheduler configured:

to determine a slack associated with a preceding time window, and

in response to the time window being configured as slidable, to advance, simultaneously in each of the processing units and by a time no greater than the slack, an actual start time of the time window relative to the estimated start time of the time window;

wherein the time window comprises at least one scheduler instance window, wherein a scheduler instance window is constrained to contain tasks of a same type, and wherein different scheduler instance windows comprise different types of tasks.

2. The processor of claim 1 wherein the preceding time window is immediately preceding the time window.

3. The processor of claim 1 wherein:

the preceding time window has an estimated end time; and

the scheduler is configured, in response to the time window being configured as slidable, to advance, simultaneously in each of the processing units and by a time no greater than the slack, an actual end time of the preceding time window relative to the estimated end time of the preceding time window.

4. The processor of claim 1 wherein the scheduler is configured:

to determine a pre-run-time-determinable slack associated with the preceding time window;

to determine an only-at-run-time-determinable slack associated with the preceding time window; and

to determine the slack in the preceding time window as being equal to a sum of the pre-run-time-determinable slack and the only-at-run-time-determinable slack.

5. The processor of claim 1 wherein the scheduler is configured to configure the time window to be slidable.

6. The processor of claim 1 wherein the scheduler is configured to configure the time window to be non-slidable.

7. The processor of claim 1 wherein the scheduler is configured to advance the actual start time of the time window to a time no sooner than an earliest start time for the time window.

8. The processor of claim 1 wherein the scheduler is further configured to schedule:

a first task for execution by one of the processing units during the time window; and

a second task for execution by another one of the processing units during the time window.

9. The processor of claim 1 wherein the scheduler is configured to schedule multiple scheduler instances within the time window.

10. The processor of claim 9 wherein the scheduler is configured to schedule:

a first task for execution by one of the processing units during one of the multiple scheduler instances; and

a second task for execution by another one of the processing units during the one of the multiple scheduler instances.

11. A method, comprising:

determining a slack associated with a preceding time window preceding a time window having an estimated start time; and

in response to the time window being configured as slidable, advancing, simultaneously across each of multiple processing units and by a time no greater than the slack, an actual start time of the time window relative to the estimated start time of the time window;

wherein the time window comprises at least one scheduler instance window, wherein a scheduler instance window is constrained to contain tasks of a same type, and wherein different scheduler instance windows comprise different types of tasks.

12. The method of claim 11 wherein determining the slack comprises:

determining a pre-run-time-determinable slack associated with the preceding time window;

determining an only-at-run-time-determinable slack in the preceding time window; and

determining the slack in the preceding time window as being equal to a sum of the pre-run-time-determinable slack and the only-at-run-time-determinable slack.

13. The method of claim 11 , further comprising configuring the time window to be slidable before advancing the actual start time of the time window.

14. The method of claim 11 wherein advancing the actual start time of the time window comprises advancing the actual start time of the time window to a time no sooner than an earliest start time for the time window.

15. The method of claim 11 , further comprising:

executing a first task with one of the multiple processing units during the time window; and

executing a second task with another one of the multiple processing units during the time window.

16. The method of claim 11 , wherein advancing the actual start time comprises advancing, simultaneously in each of the multiple processing units and by a time no greater than the slack, an actual end time of the preceding time window relative to an estimated end time of the preceding time window.

17. The method of claim 11 , further comprising scheduling multiple scheduler instances within the time window.

18. A system, comprising:

a processor, including:

processing units configured to execute, simultaneously, respective tasks during a time window common to the processing units, having an estimated start time, and being configurable as slidable or non-slidable, and

a scheduler configured:

to determine a slack associated with a preceding time window, and

in response to the time window being configured as slidable, to advance, simultaneously in each of the processing units and by a time no greater than the slack, an actual start time of the time window relative to the estimated start time of the time window;

wherein the time window comprises at least one scheduler instance window, wherein a scheduler instance window is constrained to contain tasks of a same type, and wherein different scheduler instance windows comprise different types of tasks; and

a circuit coupled to the processor.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Sep 8, 2020
From: VARADARAJAN, SRIVATSAN; MILLER, LARRY JAMES; MCCREADY, ARTHUR KIRK; LARSON, AARON R.; FROST, RICHARD; ROFFELSEN, RYAN LAWRENCE
To: HONEYWELL INTERNATIONAL INC.
Reel/Frame 053715/0735 →
Continuity (2)
Continuation 14737010 · Jun 11, 2015
Related Publication 20200401450A1 · Dec 24, 2020