Weighted and prioritized task scheduler
First Claim
Patent Images
1. A device comprising:
- a port to receive one or more data streams, each data stream including one or more data frames;
a task scheduler coupled to the port, the task scheduler to generate a task identifier for every data frame received;
a first queue coupled to the task scheduler to hold task identifiers of a first priority type;
a second queue couple to the task scheduler to hold task identifiers of a second priority type, the second priority type different than the first priority type;
a switch coupled to the first and second queues, the switch configured to retrieve task identifiers from the first queue and the second queue in a fair manner; and
a third queue coupled to the switch, the third queue to hold task identifiers retrieved by the switch.
2 Assignments
0 Petitions
Accused Products
Abstract
In one embodiment, a method, system, and apparatus provide prioritized, fair, and weighted task scheduling for a shared execution queue. New tasks are prioritized according to their processing requirements and held in one or more queues according to their priority levels. Tasks are retrieved from each queue in a fair and weighted manner according to the priority level of each queue. In one embodiment, tasks of approximately equal total processing requirements/time are retrieved from each storage queue in a given task retrieval cycle.
91 Citations
30 Claims
-
1. A device comprising:
-
a port to receive one or more data streams, each data stream including one or more data frames;
a task scheduler coupled to the port, the task scheduler to generate a task identifier for every data frame received;
a first queue coupled to the task scheduler to hold task identifiers of a first priority type;
a second queue couple to the task scheduler to hold task identifiers of a second priority type, the second priority type different than the first priority type;
a switch coupled to the first and second queues, the switch configured to retrieve task identifiers from the first queue and the second queue in a fair manner; and
a third queue coupled to the switch, the third queue to hold task identifiers retrieved by the switch. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10)
-
-
11. A method comprising:
-
receiving one or more data streams, each data stream including one or more data frames of one or more data frame types;
determining a task priority level for each data frame received;
routing each data frame to one of one or more storage queues based on the task priority level of each data frame; and
retrieving the data frames from the one or more storage queues during a task retrieval cycle according to a fair and weighted processing scheme based on task priority level. - View Dependent Claims (12, 13, 14, 15, 16, 17, 18)
-
-
19. A method comprising:
-
receiving one or more data streams, each data stream including one or more data frames of one or more data frame types;
determining a task priority level for each data frame received;
assigning a unique task identifier to each received data frame;
storing each task identifier to one of multiple storage queues according to the task priority level of the corresponding data frame; and
retrieving task identifiers from the one or more storage queues during a task retrieval cycle according to a weighted processing scheme based on task priority levels. - View Dependent Claims (20, 21, 22, 23)
-
-
24. A machine-readable medium having one or more instructions for scheduling processing tasks, which when executed by a processor, causes the processor to perform operations comprising:
-
receiving one or more data streams, each data stream including one or more data frames of one or more data frame types;
determining the task priority level for each of the data frames received;
routing each data frame to one of one or more storage queues based on the task priority level of each data frame; and
retrieving the data frames from the one or more storage queues during a task retrieval cycle according to a fair and weighted processing scheme based on task priority levels. - View Dependent Claims (25, 26, 27, 28, 29, 30)
-
Specification