IP Library Granted Patent US 9,059,945
Granted Patent B2
US 9,059,945 · App. 13/285,773 · Granted Jun 16, 2015

Work request processor

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 9,059,945
App. No.
13/285,773
Granted
Jun 16, 2015
Kind
B2
Abstract

A network processor includes a schedule, sync and order (SSO) module for scheduling and assigning work to multiple processors. The SSO includes an on-deck unit (ODU) that provides a table having several entries, each entry storing a respective work queue entry, and a number of lists. Each of the lists may be associated with a respective processor configured to execute the work, and includes pointers to entries in the table. A pointer is added to the list based on an indication of whether the associated processor accepts the WQE corresponding to the pointer.

Claims (30)

1. A system including a scheduling processor configured to schedule work for a plurality of processors, the scheduling processor comprising:

an add work engine (AWE) configured to forward a work queue entry (WQE) to one of a plurality of input queues (IQs);

an on-deck unit (ODU) comprising a memory storing a table and a plurality of lists, the table having a plurality of entries, each entry storing a respective WQE; each of the plurality of lists being associated with a respective one of the plurality of processors configured to execute WQEs and comprising a plurality of pointers to entries in the table, each of the lists adding a pointer based on an indication of whether the associated processor accepts the WQE corresponding to the pointer; and

a get work engine (GWE) configured to move WQEs from the plurality of IQs to the table of the ODU;

wherein the indication is based on one or more of: a work group corresponding to the WQE, a comparison of a priority of the WQE against a priority of other WQEs stored at the list, and an identifier of the IQ storing the WQE.

2. The system of claim 1 , wherein the indication is received from the associated processor itself.

3. A system including a scheduling processor configured to schedule work for a plurality of processors, the scheduling processor comprising:

an add work engine (AWE) configured to forward a work queue entry (WQE) to one of a plurality of input queues (IQs);

an on-deck unit (ODU) comprising a memory storing a table and a plurality of lists, the table having a plurality of entries, each entry storing a respective WQE; each of the plurality of lists being associated with a respective one of the plurality of processors configured to execute WQEs and comprising a plurality of pointers to entries in the table, each of the lists adding a pointer based on an indication of whether the associated processor accepts the WQE corresponding to the pointer;

a get work engine (GWE) configured to move WQEs from the plurality of IQs to the table of the ODU; and

a plurality of work slots, each of the work slots being associated with a respective processor and configured to receive a WQE from the list associated with the processor.

4. The system of claim 3 , wherein the respective processor executes the WQE at the work slot.

5. The system of claim 3 , wherein each of the lists includes pointers to a common WQE in the table.

6. The system of claim 5 , wherein each of the lists is updated by removing a pointer when the associated WQE is moved to a work slot of a processor not associated with the list.

7. A method of processing work requests in a network, comprising:

forwarding a work queue entry (WQE) to one of a plurality of input queues (IQs);

moving the WQE from the IQ to one of a plurality of entries at a table;

configuring a plurality of lists to store a plurality of pointers to entries in the table, each of the lists being associated with a respective processor configured to execute WQEs; and

adding a pointer to one of the plurality of lists based on an indication of whether the associated processor accepts the WQE corresponding to the pointer;

wherein the indication is based on one or more of: a work group corresponding to the WQE, a comparison of a priority of the WQE against a priority of other WQEs stored at the list, and an identifier of the IQ storing the WQE.

8. The method of claim 7 , wherein the indication is received from the associated processor itself.

9. A method of processing work requests in a network, comprising:

forwarding a work queue entry (WQE) to one of a plurality of input queues (IQs);

moving the WQE from the IQ to one of a plurality of entries at a table;

configuring a plurality of lists to store a plurality of pointers to entries in the table, each of the lists being associated with a respective processor configured to execute WQEs;

adding a pointer to one of the plurality of lists based on an indication of whether the associated processor accepts the WQE corresponding to the pointer; and

receiving a WQE from the list to one of a plurality of work slots, each of the work slots being associated with a respective processor.

10. The method of claim 9 , further comprising executing, at the respective processor, the WQE at the work slot.

11. The method of claim 9 , wherein each of the lists includes pointers to a common WQE in the table.

12. The method of claim 11 , further comprising updating each of the lists by removing a pointer when the associated WQE is moved to a work slot of a processor not associated with the list.

Assignments (5)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded May 15, 2020
From: CAVIUM INTERNATIONAL
To: MARVELL ASIA PTE, LTD.
Reel/Frame 053179/0320 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Feb 17, 2020
From: CAVIUM, LLC
To: CAVIUM INTERNATIONAL
Reel/Frame 051948/0807 →
CERTIFICATE OF CONVERSION AND CERTIFICATE OF FORMATION Recorded Oct 2, 2018
From: CAVIUM, INC.
To: CAVIUM, LLC
Reel/Frame 047185/0422 →
RELEASE OF SECURITY INTEREST Recorded Jul 6, 2018
From: JP MORGAN CHASE BANK, N.A., AS COLLATERAL AGENT
To: CAVIUM, INC; CAVIUM NETWORKS LLC; QLOGIC CORPORATION
Reel/Frame 046496/0001 →
SECURITY AGREEMENT Recorded Aug 17, 2016
From: CAVIUM, INC.; CAVIUM NETWORKS LLC
To: JPMORGAN CHASE BANK, N.A., AS COLLATERAL AGENT
Reel/Frame 039715/0449 →