IP Library Granted Patent US 9,838,471
Granted Patent B2
US 9,838,471 · App. 14/171,108 · Granted Dec 5, 2017

Method and an apparatus for work request arbitration in a network 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,838,471
App. No.
14/171,108
Granted
Dec 5, 2017
Kind
B2
Abstract

A method and a system embodying the method for work request arbitration, comprising receiving a work request, the work request indicating one or more groups from a plurality of groups; determining at least one of a plurality of parameters in accordance with the received work request; determining eligibility to provide work among the one or more groups that have work in a work queue in accordance with a first set of the plurality of parameters; and selecting one of the determined eligible groups to provide the work in accordance with a second set of the plurality of parameters is disclosed.

Claims (62)

1. A method for work request arbitration, comprising:

receiving a work request from a requestor at an associated work-slot, the work request indicating one or more groups from a plurality of groups;

determining at least one of a plurality of parameters in accordance with the received work request;

determining eligibility to provide work among the one or more groups that have work in a work queue in accordance with a first set of the at least one of the plurality of parameters; and

selecting one of the determined eligible groups to provide the work to the associated work slot in accordance with a second set of the at least one of the plurality of parameters.

2. The method as claimed in claim 1 , wherein the determining at least one of a plurality of parameters in accordance with the received work request, comprises:

determining a work-slot structure in accordance with the work request, the work-slot structure comprising the at least one of the plurality of parameters.

3. The method as claimed in claim 1 , wherein the least one of the plurality of parameters comprises:

a mask;

a last_group; and

an affinity_left.

4. The method as claimed in claim 1 , wherein the determining eligibility to provide work among the one or more groups that have work in a work queue in accordance with a first set of the at least one of the plurality of parameters, comprises:

determining eligibility to provide work among the one or more groups that have work in the work queue in accordance with a mask, a group priority, and a group weight_left.

5. The method as claimed in claim 4 , wherein the group priority, and the group weight_left are specific for each group.

6. The method as claimed in claim 4 , wherein the determining eligibility to provide work among the one or more groups that have work in the work queue in accordance with a mask, a group priority, and a group weight_left comprises:

determining as eligible at least one of the one or more groups that have work in the work queue that are enabled by the mask, have the highest group priority, and have non-zero value of the group weight_left.

7. The method as claimed in claim 1 , wherein the selecting one of the determined eligible groups to provide the work in accordance with a second set of the at least one of the plurality of parameters, comprises:

determining whether an eligible group that was selected last time to provide work is eligible and the group's affinity_left parameter is not equal to zero; and

selecting the eligible group when the determining is affirmative.

8. The method as claimed in claim 1 , wherein the selecting one of the determined eligible groups to provide the work in accordance with a second set of the at least one of the plurality of parameters, comprises:

determining whether an eligible group that was selected last time to provide work is eligible and the group's affinity_left parameter is not equal to zero; and

selecting randomly one of the eligible groups when the determining is negative.

9. The method as claimed in claim 8 , wherein the selecting randomly one of the one or more eligible groups, comprises:

generating an entropy; and

selecting randomly one of the eligible groups in accordance with the generated entropy.

10. The method as claimed in claim 9 , wherein the selecting randomly one of the eligible groups in accordance with the generated entropy, comprises:

selecting the first eligible group starting at the generated entropy.

11. The method as claimed in claim 1 , further comprising:

setting the value of a parameter last_group equal to value of a parameter group; decrementing the value of a parameter affinity_left by one; and

decrementing the value of a parameter group weight_left by one.

12. An apparatus for work request arbitration, comprising:

at least one work-slot configured to receive a work request from an associated requestor, the work request indicating one or more groups from a plurality of groups; and

a get-work arbiter configured to:

determine at least one of a plurality of parameters in accordance with the received work request;

determine eligibility to provide work among the one or more groups that have work in a work queue in accordance with a first set of the at least one of the plurality of parameters; and

select one of the determined eligible groups to provide the work into the one work-slot in accordance with a second set of the at least one of the plurality of parameters.

13. The apparatus as claimed in claim 12 , wherein the get-work arbiter determines at least one of a plurality of parameters in accordance with the received work request by being configured to:

determine a work-slot structure selected by the requestor in accordance with the work request, the work-slot structure comprising the at least one of the plurality of parameters.

14. The apparatus as claimed in claim 12 , wherein the least one of the plurality of parameters comprises:

a mask;

a last_group; and

an affinity_left.

15. The apparatus as claimed in claim 12 , wherein the get-work arbiter determines eligibility to provide work among the one or more groups that have work in a work queue in accordance with a first set of the at least one of the plurality of parameters by being configured to:

determine eligibility to provide work among the one or more groups that have work in a work queue in accordance with a mask, a group priority, and a group weight_left.

16. The apparatus as claimed in claim 15 , wherein the group priority, and the group weight_left are specific for each group.

17. The apparatus as claimed in claim 15 , wherein the get-work arbiter determines eligibility to provide work among the one or more groups that have work in the work queue in accordance with a mask, a group priority, and a group weight_left by being configured to:

determine as eligible at least one of the one or more groups that have work in the work queue that are enabled by the mask, have the highest group priority, and have non-zero value of the group weight_left.

18. The apparatus as claimed in claim 12 , wherein the get-work arbiter selects one of the determined eligible groups to provide the work in accordance with a second set of the at least one of the plurality of parameters by being configured to:

determine whether an eligible group that was selected last time to provide work is eligible and the group's affinity_left parameter is not equal to zero; and

select the eligible group when the determining is affirmative.

19. The apparatus as claimed in claim 12 , wherein the get-work arbiter select one of the determined eligible groups to provide the work in accordance with a second set of the of the at least one plurality of parameters by being configured to:

determine whether an eligible group was selected last time to provide work is eligible and the group's affinity_left parameter is not equal to zero; and

select randomly one of the eligible groups the determination is negative.

20. The apparatus as claimed in claim 19 , further comprising:

a generator configured to generate an entropy; and

wherein the get-work arbiter is configured to select randomly one of the eligible groups in accordance with the generated entropy.

21. The apparatus as claimed in claim 20 , wherein the get-work arbiter selects randomly one of the eligible groups in accordance with the generated entropy by being configured to:

select the first eligible group starting at the generated entropy.

22. The apparatus as claimed in claim 12 , wherein the get-work arbiter is further configured to:

set the value of a parameter last_group equal to value of a parameter group;

decrement the value of a parameter affinity_left by one; and

decrement the value of a parameter group weight_left by one.

Assignments (6)
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 →
CHANGE OF NAME Recorded Dec 12, 2019
From: CAVIUM, INC.
To: CAVIUM, LLC
Reel/Frame 051260/0567 →
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 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Feb 3, 2014
From: SNYDER, WILSON PARKHURST, II; KESSLER, RICHARD EUGENE; DEVER, DANIEL EDWARD; GODIWALA, NITIN DHIROOBHAI; KRAVITZ, DAVID
To: CAVIUM, INC.
Reel/Frame 032120/0028 →