IP Library Granted Patent US 10,459,770
Granted Patent B2
US 10,459,770 · App. 15/588,015 · Granted Oct 29, 2019

Method and apparatus for port access management at a distributed job manager in a digital multi-processor system

Inventors: Kalyana Sundaram Venkataraman (Santa Clara, CA); Tejas Maheshbhai Bhatt (Sunnyvale, CA); Hong Jik Kim (San Jose, CA); Eric Marenger (Montreal, CA); Ahmed Shahid (San Jose, CA); Jason Daniel Zebchuk (Watertown, MA)
Assignee: Cavium, LLC
G06F9/5083G06F9/44505G06F9/5011
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 10,459,770
App. No.
15/588,015
Granted
Oct 29, 2019
Kind
B2
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 (65)

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;

first 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 second determine whether the job has been serviced by a port identified by the active_slot_id;

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.

2. 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.

3. 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.

4. 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.

5. 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.

6. 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.

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;

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.

8. 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.

9. 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.

10. The method as claimed in claim 7 , wherein the recalculating the value of active_slot_id, comprises:

applying 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.

11. 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.

12. 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.

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

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.

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 Jun 29, 2017
From: VENKATARAMAN, KALYANA SUNDARAM; BHATT, TEJAS MAHESHBHAI; KIM, HONG JIK; MARENGER, ERIC; SHAHID, AHMED; ZEBCHUK, JASON DANIEL
To: CAVIUM, INC.
Reel/Frame 042866/0465 →