IP Library Granted Patent US 11,113,101
Granted Patent B2
US 11,113,101 · App. 15/613,760 · Granted Sep 7, 2021

Method and apparatus for scheduling arbitration among a plurality of service requestors

Inventors: Timothy Toshio Nakada (Santa Clara, CA); Jason Daniel Zebchuk (Watertown, MA); Tejas Maheshbhai Bhatt (Sunnyvale, CA); Mark Jon Kwong (Santa Clara, CA)
Assignee: MARVELL ASIA PTE, LTD.
G06F9/4881G06F9/5011G06F9/5027G06F13/1605G06F13/1663G06F15/7817G06F9/505G06F9/5044G06F13/37G06F2209/5021
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,113,101
App. No.
15/613,760
Granted
Sep 7, 2021
Kind
B2
Abstract

Method and system embodying the method for scheduling arbitration among a plurality of service requestors encompassing: designating among the plurality of service requestors all the service requestors that have an active request; determining whether at least one of the designated service requestors has an un-served status indicator which is set; and when the determining is positive then: selecting one of the at least one designated service requestors in accordance with a pre-determined policy; and clearing the un-served status indicator for the selected service requestor, is disclosed.

Claims (65)

1. An apparatus for scheduling arbitration among a numbered plurality of service requestors, comprising:

at least one host and at least one engine, the at least one engine comprising at least one digital signal processor and/or at least one hardware accelerator, the at least one host and the at least one engine being configured to generate requests to be enqueued into the plurality of service requestors, wherein each request comprises a job or a non-job; and

a job arbitrator and assignor communicatively coupled to the plurality of service requesters and being configured to:

designate among the plurality of service requestors all the service requesters that have an active request at a top entry indicating that a job is ready to be processed and that at least one engine capable of processing the job is available;

determine whether at least one of the designated service requestors has an un-served status indicator which is set;

select one of the at least one designated service requestors in accordance with a pre-determined policy and clear the un-served status indicator for the selected service requestor in response to the determination being positive; and

submit the active request from the selected service requester to one of the at least one engine capable of processing the job.

2. The apparatus as claimed in claim 1 , wherein when the determination is negative, the job arbitrator and assignor is further configured to:

set the un-served status indicator for each of the at least one designated service requestors;

select one of the at least one designated service requestors in accordance with the pre-determined policy; and

clear the un-served status indicator for the selected service requestor.

3. The apparatus as claimed in claim 1 , wherein the job arbitrator and assignor is further configured to:

determine a priority level of each of the plurality of service requestors; and

designate in the plurality of service requestors all the service requestors that have the highest determined priority level and an active request.

4. The apparatus as claimed in claim 3 , wherein the at least one host is configured to:

set a priority level of each of the plurality of service requestors.

5. The apparatus as claimed in claim 1 , wherein the job arbitrator and assignor is further configured to:

set the un-served status indicator for each of the plurality of requestors before the designating from the plurality of service requestors all the service requestors that have an active request.

6. The apparatus as claimed in claim 1 , wherein the job arbitrator and assignor is configured to select the pre-determined policy from a group consisting of:

round-robin;

random selection;

lowest numbered service requestor;

least recently used service requestor;

most recently used service requestor;

highest numbered service requestor; and

according to a configurable, complete and fixed order between the service requestors.

7. The apparatus as claimed in claim 1 , wherein the plurality of service requestors comprises a plurality of queues.

8. A method for scheduling arbitration among a numbered plurality of service requestors, comprising:

enqueuing at the plurality of service requestors, requests generated by at least one host and at least one engine, the at least one engine comprising at least one digital signal processor and/or at least one hardware accelerator, wherein each request comprises a job or a non-job;

performing, by a job arbitrator and assignor communicatively coupled to the plurality of service requestors the actions of;

designating among the plurality of service requestors all the service requestors that have an active request at a top entry indicating that a job is ready to be processed and that at least one engine capable of processing the job is available;

determining whether at least one of the designated service requesters has an un-served status indicator which is set; and in response to the determination being positive:

selecting one of the at least one designated service requestors in accordance with a pre-determined policy;

clearing the un-served status indicator for the selected service requestor; and

submitting the active request from the selected service requestor to one of the at least one engine capable of processing the job.

9. The method as claimed in claim 8 , wherein when the determination is negative, comprising:

setting the un-served status indicator for each of the at least one designated service requestors;

selecting one of the at least one designated service requesters in accordance with the pre-determined policy; and

clearing the un-served status indicator for the selected service requestor.

10. The method as claimed in claim 8 , further comprising;

determining a priority level of each of the plurality of service requestors; and

wherein the designating in the plurality of service requestors all the service requestors that have an active request comprises:

designating from the plurality of service requestors all the service requestors that have the highest determined priority level and an active request.

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

setting a priority level of each of the plurality of service requestors.

12. The method as claimed in claim 8 , further comprising:

setting the un-served status indicator for each of the plurality of requestors before the designating all the service requestors that have an active request from the plurality of service requestors.

13. The method as claimed in claim 8 , wherein the pre-determined policy is selected from a group consisting of:

round-robin;

random selection;

lowest numbered service requestor;

least recently used service requestor;

most recently used service requestor;

highest numbered service requestor; and

according to a configurable, complete and fixed order between the service requestors.

14. The method as claimed in claim 8 , wherein the plurality of service requestors comprises a plurality of queues.

15. A non-transitory computer readable medium comprising:

a plurality of executable instructions that when executed by an apparatus for scheduling arbitration among a plurality of service requestors cause the apparatus to:

generate requests to be enqueued into the plurality of service requestors by at least one host and at least one engine, the at least one engine comprising at least one digital signal processor and/or at least one hardware accelerator, wherein each request comprises a job or a non-job;

perform, by a job arbitrator and assignor communicatively coupled to the plurality of numbered service requestors, the actions of:

designate among the plurality of service requestors all the service requestors that have an active request at a top entry indicating that a job is ready to be processed and that at least one engine capable of processing the job is available;

determine whether at least one of the designated service requestors has an un-served status indicator which is set;

select one of the at least one designated service requestors in accordance with a pre-determined policy;

clear the un-served status indicator for the selected service requestor in response to the determination being positive; and

submit the active request from the selected service requestor to one of the at least one engine capable of processing the job.

Assignments (4)
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 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Aug 12, 2017
From: NAKADA, TIMOTHY TOSHIO; ZEBCHUK, JASON DANIEL; BHATT, TEJAS MAHESHBHAI; KWONG, MARK JON
To: CAVIUM, INC.
Reel/Frame 043276/0887 →
Continuity (1)
Related Publication 20180349180A1 · Dec 6, 2018