IP Library › Granted Patent US 11,461,132
Granted Patent B2
US 11,461,132 · App. 16/847,641 · Granted Oct 4, 2022

Time based priority queue

Inventors: Ayelet Wald (Munich, DE); Dan Touitou (Munich, DE); Michael Naaman (Munich, DE); Alexander Kravtsov (Hod Hasharon, IL); Michael Charny (Hod Hasharon, IL); Max Komm (Munich, DE)
Assignee: Huawei Technologies Co., Ltd.
G06F9/4881G06F9/321G06F9/4818G06F9/5027G06F9/546
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,461,132
App. No.
16/847,641
Granted
Oct 4, 2022
Kind
B2
Abstract

A system for managing computational tasks in a queuing dataset includes at least one processor and a scheduler executed by the at least one processor. The scheduler is configured to simultaneously and circularly change an association of each of a plurality of computational task bins with a respective one of a plurality of time based priorities ordered in a fixed ascending order; receive a plurality of computational tasks; and allocate each of the plurality of computational tasks to one of the plurality of computational task bins according to a respective time constraint of the respective computational task and a current association of the plurality of computational task bins with the plurality of time based priorities. The scheduler is further configured to empty the computational task bin currently associated with the highest time based priority by sequentially outputting the computational tasks thereof.

Claims (49)

1. A system for managing computational tasks in a queuing dataset, the queuing dataset comprising a plurality of computational task bins associated with a plurality of time based priorities, the system comprising:

at least one processor; and

a scheduler, executed by the at least one processor and being configured to:

receive a plurality of computational tasks, each respective computational task being associated with a respective time constraint,

allocate each respective computational task to a respective computational task bin according to the respective time constraint of the respective computational task and a current association of the plurality of computational task bins with the plurality of time based priorities,

empty a respective computational task bin currently associated with a highest time based priority by sequentially outputting the computational tasks thereof, and

change an association of each of the plurality of computational task bins with a respective one of a plurality of time based priorities ordered in a fixed ascending order, the fixed ascending order of the time based priorities being maintained by: applying a round robin scheme when the computational task bin currently associated with the highest time based priority is empty and maintaining the current fixed ascending order when the computational task bin currently associated with the highest time based priority is not empty;

wherein the scheduler is configured to perform the receiving, allocating, emptying, and changing independently from one another and in an uninterruptable manner.

2. The system of claim 1 , wherein the scheduler is further configured to periodically update a time stamp by incrementing the time stamp in multiples of predefined time slice intervals since a last time stamp update, employ the time stamp to determine correct computational task bin allocations for computational tasks, in each cycle of the round robin scheme, and in associating the computational task bins to their respective computational tasks.

3. The system of claim 1 , wherein the scheduler is further configured to count a respective current number of computational tasks in each respective computational task bin, and during task processing, to indicate whether a respective computational task bin is empty or full, according to the respective current number of computational tasks.

4. The system of claim 3 , wherein each respective time based priority of a respective computational task bin comprises a respective index from a plurality of indices associated with the plurality of computational task bins, the respective index corresponding to a current number of computational tasks in the corresponding respective computational task bin.

5. The system of claim 4 , wherein each respective time based priority further comprises a time stamp, and wherein each respective time based priority is represented by a combined word.

6. The system of claim 5 , wherein the scheduler is further configured to employ the combined word in a task processing operation selected from a group consisting of:

updating the time stamp,

updating values indexed by the plurality of indices, and

round robin cycling the plurality of indices.

7. The system of claim 1 , wherein each computational task allocated to a respective computational task bin is assigned with a task priority in a respective priority queue of the respective computational task bin.

8. The system of claim 7 , wherein the respective priority queue is a First In First Out (FIFO) queue.

9. The system of claim 1 , wherein according to the time constraints of the computational tasks, the computational tasks of each of the plurality of computational task bins are arranged in a plurality of First In First Out (FIFO) queues each having one of a plurality of queue priorities, wherein the emptying is performed according to the plurality of queue priorities.

10. The system of claim 1 , wherein each of the plurality of computational task bins has a corresponding tree structure comprising inner nodes and leaf nodes, wherein each leaf node corresponds to a respective computational task bin and indicates a number of computational tasks in the respective computational task bin.

11. The system of claim 1 , wherein the scheduler is further configured to employ hardware level atomic operations in task processing operations, the hardware level atomic operations being selected from a group comprising of:

updating a time stamp,

updating values indexed by a plurality of indices,

round robin cycling the plurality of indices,

managing a priority queue for each respective computational task bin,

updating a tree of counters for each of a plurality of priority queues, and

managing a plurality of FIFO queues.

12. A system for managing computational tasks in a queuing dataset, the queuing dataset comprising a plurality of computational task bins associated with a plurality of time based priorities, the system comprising:

at least one processor; and

a scheduler, executed by the at least one processor and being configured to:

receive a plurality of computational tasks, each respective computational task being associated with a respective time constraint,

allocate each respective computational task to a respective computational task bin according to the respective time constraint of the respective computational task and a current association of the plurality of computational task bins with the plurality of time based priorities,

empty a respective computational task bin currently associated with a highest time based priority by sequentially outputting the computational tasks thereof, and

change an association of each of the plurality of computational task bins with a respective one of a plurality of time based priorities ordered in a fixed ascending order;

wherein the scheduler is configured to perform the receiving, allocating, emptying, and changing independently from one another and in an uninterruptable manner, and

wherein the scheduler is further configured to employ a plurality of time-based priority queues for each computational task bin of the plurality of computational task bins, every time-based priority queue covering a different time range.

13. The system of claim 12 , wherein the scheduler is further configured to count a respective current number of computational tasks in each respective computational task bin, and during task processing, to indicate whether a respective computational task bin is empty or full, according to the respective current number of computational tasks.

14. The system of claim 13 , wherein each respective time based priority of a respective computational task bin comprises a respective index from a plurality of indices associated with the plurality of computational task bins, the respective index corresponding to a current number of computational tasks in the corresponding respective computational task bin.

15. The system of claim 14 , wherein each respective time based priority further comprises a time stamp, and wherein each respective time based priority is represented by a combined word.

16. The system of claim 15 , wherein the scheduler is further configured to employ the combined word in a task processing operation selected from a group consisting of:

updating the time stamp,

updating values indexed by the plurality of indices, and

round robin cycling the plurality of indices.

17. A method for managing computational tasks in a queuing dataset, the dataset comprising a plurality of computational task bins associated with a plurality of time based priorities, the method comprising:

receiving a plurality of computational tasks, each respective computational task being associated with a respective time constraint;

allocating each respective computational task to one of the plurality of computational task bins according to the respective time constraint of the respective computational task and a current association of the plurality of computational task bins with the plurality of time based priorities;

emptying a respective computational task bin currently associated with a highest time based priority by sequentially outputting the computational tasks thereof; and

changing an association of each of the plurality of computational task bins with a respective one of a plurality of time based priorities ordered in a fixed ascending order, the fixed ascending order of the time based priorities being maintained by: applying a round robin scheme when the computational task bin currently associated with the highest time based priority is empty and maintaining the current fixed ascending order when the computational task bin currently associated with the highest time based priority is not empty,

wherein the receiving, allocating, emptying, and changing are independent from one another and are each performed in an uninterruptable manner.

Assignments (3)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Aug 18, 2022
From: WALD, AYELET; KRAVTSOV, ALEXANDER; KOMM, MAX; CHARNY, MICHAEL
To: HUAWEI TECHNOLOGIES CO., LTD.
Reel/Frame 060847/0470 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Aug 18, 2022
From: TOGA NETWORKS LTD.
To: HUAWEI TECHNOLOGIES CO., LTD.
Reel/Frame 061207/0738 →
EMPLOYMENT AGREEMENT Recorded Aug 18, 2022
From: TOUITOU, DAN; NAAMAN, MICHAEL
To: TOGA NETWORKS LTD.
Reel/Frame 061207/0896 →
Continuity (2)
Continuation PCTEP2018078245 · Oct 16, 2018
Related Publication 20200241918A1 · Jul 30, 2020