# US 2018/0321986 A1 · Method and apparatus for port access management at a distributed job manager in a digital multi-processor system

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

- Number: US 2018/0321986 A1
- Document ID: US20180321986A1
- Status: Published application
- Kind: A1
- Application number: 15/588,015
- Filed: 2017-05-05
- Published: 2018-11-08
- Earliest claimed: 2017-05-05
- Assignees: Cavium, Inc.
- Applicants: Cavium, Inc.
- Inventors: Kalyana Sundaram Venkataraman; Tejas Maheshbhai Bhatt; Hong Jik Kim; Eric Marenger; Ahmed Shahid; Jason Daniel Zebchuk
- Web page: https://patentgrep.com/patent/US20180321986A1

## CPC

- G06F 9/5083: {Techniques for rebalancing the load in a distributed system}
- G06F 9/44505: {Configuring for program initiating, e.g. using registry, configuration files}
- G06F 9/5011: {the resources being hardware resources other than CPUs, Servers and Terminals}
- G06F: ELECTRIC DIGITAL DATA PROCESSING (computer systems based on specific computational models G06N)

## Abstract

A method and a system for port access management at a distributed job manager, encompassing: initializing a port access process for each of one or more ports on a processing device; determining first whether a job is assigned to an active slot identified by an active_slot_id on the processing device, and when the determining is positive: determining second whether the job has been serviced by a port identified by the active_slot_id; and when either the first determining is negative or the second determining is positive then: retesting the first and second determining; else: determining whether the job requires an access to the port identified by the active_slot_id; and when the determining is positive: fetching the port's configuration words; processing the fetched port's configuration words; marking the job as serviced by the port upon conclusion or the processing of the fetched port's configuration words; and recalculating the value of the active_slot_id.

## Claims

### Claim 1

An apparatus for port management access at a distributed job manager, comprising:
a plurality of job managers, each job manager being configured to:
initialize a port access process for each of one or more ports on a managed processing device;
determine whether a job is assigned to an active slot identified by an active_slot_id on the processing device, and when the determining is positive then:
determine whether the job has been serviced by a port identified by the active_slot_id, and when either the first determining is negative or the second determining is positive then:
retest the first and second determining; else:
determine whether the job requires an access to the port identified by the active_slot_id; and when the determination is positive then:
fetch the port's configuration words;
process the fetched port's configuration words;
mark the job as serviced by the port upon conclusion or the processing of the fetched port's configuration words; and
recalculate the value of the active_slot_id.

### Claim 2 (depends on 1)

The apparatus as claimed in claim 1, wherein each job manager retests the first and second determination by being configured to:
retest the first and second determining after expiration of a wait state.

### Claim 3 (depends on 1)

The apparatus as claimed in claim 1, wherein each job manager is further configured to:
mark the job as serviced by the port: and
recalculate the value of the active_slot_id for the port when the job manager determines that the job does not require an access to the port identified by the active_slot_id.

### Claim 4 (depends on 1)

The apparatus as claimed in claim 1, wherein the job manager recalculates the value of active_slot_id, by being configured to:
apply the equations:
next_active_slot_id=mod(active_slot_id+1; q); and
active_slot_id=next_active_slot_id; wherein
mod is a modulo operation; and
q is a number of active job slots for the processing device.

### Claim 5 (depends on 1)

The apparatus as claimed in claim 1, wherein the job manager processes the fetched port's configuration words by being configured to:
determine whether the port is available to accept the fetched configuration words; and
process the fetched port's configuration words when the determination is positive.

### Claim 6 (depends on 5)

The apparatus as claimed in claim 5, wherein the job manager is further configured to:
enter a wait state when the port is not available to accept the fetched configuration words.

### Claim 7

A method for port management access at a distributed job manager, comprising:
initializing a port access process for each of one or more ports on a processing device;
determining first whether a job is assigned to an active slot identified by an active_slot_id on the processing device, and when the determining is positive then:
determining second whether the job has been serviced by a port identified by the active_slot_id; and when either the first determining is negative or the second determining is positive then:
retesting the first and second determining; else:
determining whether the job requires an access to the port identified by the active_slot_id; and when the determining is positive then:
fetching the port's configuration words;
processing the fetched port's configuration words;
marking the job as serviced by the port upon conclusion or the processing of the fetched port's configuration words; and
recalculating the value of the active_slot_id.

### Claim 8 (depends on 7)

The method as claimed in claim 7, wherein the retesting the first and second determining comprises:
retesting the first and second determining after expiration of a wait state.

### Claim 9 (depends on 7)

The method as claimed in claim 7, further comprising:
when the determining whether the job requires an access to the port identified by the active_slot_id is negative then;
marking the job as serviced by the port: and
recalculating the value of the active_slot_id for the port.

### Claim 10 (depends on 7)

The method as claimed in claim 7, wherein the recalculating the value of active_slot_id, comprises:
applying the equations
active_slot_id=mod(active_slot_id+1; q); and
active_slot_id=next active_slot_id; wherein
mod is a modulo operation; and
q is a number of active job slots for the processing device.

### Claim 11 (depends on 7)

The method as claimed in claim 7, wherein the processing the fetched port's configuration words comprises:
determining whether the port is available to accept the fetched configuration words; and
processing the fetched port's configuration words when the determination is positive.

### Claim 12 (depends on 11)

The method as claimed in claim 11, further comprising:
entering a wait state when the port is not available to accept the fetched configuration words.

### Claim 13

A non-transitory computer readable medium comprising:
a plurality of executable instructions that when executed by at least one processor of an apparatus for port access management at a distributed job manager cause the apparatus system to:
initialize a port access process for each of one or more ports on a processing device;
determine first whether a job is assigned to an active slot identified by an next active_slot_id on the processing device, and when the determining is positive then:
determine second whether the job has been serviced by a port identified by the active_slot_id; and when either the first determining is negative or the second determining is positive then:
retest the first and second determining; else:
determine whether the job requires an access to the port identified by the active_slot_id; and when the determining is positive then:
fetch the port's configuration words;
process the fetched port's configuration words;
mark the job as serviced by the port upon conclusion or the processing of the fetched port's configuration words; and
recalculate the value of the active_slot_id.
