# US 11,113,101 B2 · Method and apparatus for scheduling arbitration among a plurality of service requestors

> Agents: this data is available as JSON from the patentgrep API and MCP server — see https://patentgrep.com/llms.txt

- Number: US 11,113,101 B2
- Document ID: US11113101B2
- Status: Granted
- Kind: B2
- Application number: 15/613,760
- Filed: 2017-06-05
- Published: 2018-12-06
- Granted: 2021-09-07
- Earliest claimed: 2017-06-05
- Assignees: Marvell Asia Pte Ltd
- Applicants: Cavium, LLC
- Inventors: Timothy Toshio Nakada; Jason Daniel Zebchuk; Tejas Maheshbhai Bhatt; Mark Jon Kwong
- Web page: https://patentgrep.com/patent/US11113101B2

## CPC

- G06F 9/4881: {Scheduling strategies for dispatcher, e.g. round robin, multi-level priority queues}
- G06F 9/5011: {the resources being hardware resources other than CPUs, Servers and Terminals}
- G06F 9/5027: {the resource being a machine, e.g. CPUs, Servers, Terminals}
- G06F 13/1605: {based on arbitration (arbitration in handling access to a common bus or bus system G06F13/36)}
- G06F 13/1663: {Access to shared memory}
- G06F 15/7817: {Specially adapted for signal processing, e.g. Harvard architectures}
- G06F 9/5044: {considering hardware capabilities}
- G06F 9/505: {considering the load}
- G06F 13/37: using a physical-position-dependent priority, e.g. daisy chain, round robin or token passing
- G06F 2209/5021: Priority
- G06F: ELECTRIC DIGITAL DATA PROCESSING (computer systems based on specific computational models G06N)

## 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

### Claim 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.

### Claim 2 (depends on 1)

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.

### Claim 3 (depends on 1)

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.

### Claim 4 (depends on 3)

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.

### Claim 5 (depends on 1)

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.

### Claim 6 (depends on 1)

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.

### Claim 7 (depends on 1)

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

### Claim 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.

### Claim 9 (depends on 8)

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.

### Claim 10 (depends on 8)

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.

### Claim 11 (depends on 10)

The method as claimed in claim 10, further comprising:
setting a priority level of each of the plurality of service requestors.

### Claim 12 (depends on 8)

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.

### Claim 13 (depends on 8)

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.

### Claim 14 (depends on 8)

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

### Claim 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.
