TASK QUEUING IN A NETWORK COMMUNICATIONS PROCESSOR ARCHITECTURE
First Claim
1. A method of assigning tasks to a plurality of queues of a processing core, comprising the steps of:
- sending, by a source processing core, a new task having an identifier;
receiving, by a destination processing core, the new task;
determining, by the destination processing core, if another task having the same identifier exists in any of the plurality of queues;
assigning, if the another task with the same identifier as the new task exists, the new task to the queue containing a task with the same identifier as the new task;
assigning, if the another task with the same identifier as the new task does not exist in the plurality of queues, the new task to the queue with the fewest number of tasks therein;
writing, by the source processing core, the new task to the assigned queue; and
executing the new task by the destination processing core.
5 Assignments
0 Petitions
Accused Products
Abstract
Described embodiments provide a method of assigning tasks to queues of a processing core. Tasks are assigned to a queue by sending, by a source processing core, a new task having a task identifier. A destination processing core receives the new task and determines whether another task having the same identifier exists in any of the queues corresponding to the destination processing core. If another task with the same identifier as the new task exists, the destination processing core assigns the new task to the queue containing a task with the same identifier as the new task. If no task with the same identifier as the new task exists in the queues, the destination processing core assigns the new task to the queue having the fewest tasks. The source processing core writes the new task to the assigned queue. The destination processing core executes the tasks in its queues.
-
Citations
25 Claims
-
1. A method of assigning tasks to a plurality of queues of a processing core, comprising the steps of:
-
sending, by a source processing core, a new task having an identifier; receiving, by a destination processing core, the new task; determining, by the destination processing core, if another task having the same identifier exists in any of the plurality of queues; assigning, if the another task with the same identifier as the new task exists, the new task to the queue containing a task with the same identifier as the new task; assigning, if the another task with the same identifier as the new task does not exist in the plurality of queues, the new task to the queue with the fewest number of tasks therein; writing, by the source processing core, the new task to the assigned queue; and executing the new task by the destination processing core. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9)
-
-
10. A method of assigning tasks to a plurality of queues associated with a processing core, comprising the steps of:
-
sending, by a source processing core, a new task having an identifier; receiving, by a destination processing core, the new task; determining, by the processing core, if another task having the same identifier exists in any of a plurality of queues; assigning, if the another task with the same identifier as the new task exists, the new task to the queue containing a task with the same identifier as the new task; assigning, if the another task with the same identifier as the new task does not exist, the new task to the queue having the smallest size; writing, by the source processing core, the new task to the assigned queue; and executing the tasks in a queue by the destination processing core. - View Dependent Claims (11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21)
-
-
22. A network processor comprising:
-
a plurality of processing cores coupled to a common communication bus; a common memory adapted for direct communication with each of the processing cores; each of the processing cores adapted to function as one of;
i) a source processing core adapted to send a new task message having an identifier to a receiving processing core adjacent thereto on the common communication bus, and ii) a destination processing core if the task message is intended for the receiving processing core,wherein the destination processing core is adapted to i) determine if another task having the same identifier as the new task message exists in any of a plurality of queues, ii) assign, if the another task with the same identifier as the new task message exists, the new task message to the queue containing a task message with the same identifier, otherwise, assign the new task message to a least loaded one of the plurality of queues, and iii) execute the task messages in the queue; and wherein the source processing core is adapted to write the new task to the assigned queue. - View Dependent Claims (23, 24, 25)
-
Specification