IP Library Granted Patent US 9,811,467
Granted Patent B2
US 9,811,467 · App. 14/171,290 · Granted Nov 7, 2017

Method and an apparatus for pre-fetching and processing work for procesor cores in a network processor

Inventors: Wilson Parkhurst Snyder, II (Holliston, MA); Richard Eugene Kessler (Northboroug, MA); Daniel Edward Dever (North Brookfield, LA); Nitin Dhiroobhai Godiwala (Boylston, KY)
Assignee: Cavium, Inc.
G06F12/0862G06F12/0811G06F2212/1024G06F2212/6028
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,811,467
App. No.
14/171,290
Granted
Nov 7, 2017
Kind
B2
Abstract

A method and a system embodying the method for pre-fetching and processing work for processor cores in a network processor, comprising requesting pre-fetch work by a requestor; determining that the work may be pre-fetched for the requestor; searching for the work to pre-fetch; and pre-fetching the found work into one of one or more pre-fetch work-slots associated with the requestor is disclosed.

Claims (42)

1. A method for pre-fetching and processing work for processor cores in a network processor, comprising:

requesting work pre-fetch by a requestor comprising one of the processor cores executing a software entity;

determining that work may be pre-fetched for processing by the requestor;

searching for work by determining whether any of a plurality of groups associated with the requestor have work;

pre-fetching the work from one of the plurality of groups into one of one or more pre-fetch work-slots associated with the requestor when the work is found;

determining whether the pre-fetched work comprises a tag comprising metadata for the work;

comparing the tag with a tag of another work scheduled for the same requestor when the pre-fetched work comprises the tag;

processing the pre-fetched work when the comparing indicates that the pre-fetched work is atomic or ordered or when the pre-fetched work does not comprise the tag; and

requesting another work pre-fetch when the comparing indicates that the pre-fetched work is not atomic or ordered.

2. The method as claimed in claim 1 , wherein the requesting work pre-fetch by the requestor comprises:

requesting work pre-fetch before a currently processed work is finished.

3. The method as claimed in claim 1 , wherein the requesting work pre-fetch by the requestor comprises:

requesting work pre-fetch by the one of the processor cores.

4. The method as claimed in claim 1 , wherein the requesting work pre-fetch by the requestor comprises:

requesting work pre-fetch by a software entity executing on the one of the processor cores.

5. The method as claimed in claim 1 , wherein the determining that work may be pre-fetched for processing by the requestor comprises:

determining that at least one of the one or more pre-fetched work-slots associated with the requestor does not comprise work.

6. The method as claimed in claim 1 , wherein processing the pre-fetched work comprises:

providing the pre-fetched work from the one pre-fetch work-slot to a second pre-fetch work-slot;

deleting the pre-fetched work from the one pre-fetch work-slot.

7. The method as claimed in claim 1 , wherein the processing the pre-fetched work further comprises:

processing the pre-fetched work when all work ahead of the pre-fetched work has been processed.

8. An apparatus for pre-fetching and processing work for processor cores in a network processor, comprising:

a requestor comprising a processor core configured to request work pre-fetch from a schedule, synchronize, and order unit;

the schedule, synchronize, and order unit configured to

determine that work may be pre-fetched for processing by the requestor, and

pre-fetch work found by an arbiter into one of one or more pre-fetch work-slots associated with the requestor;

determine whether the pre-fetched work comprises a tag comprising metadata for the work;

compare the tag with a tag of another work scheduled for the same requestor when the pre-fetched work comprises the tag;

process the pre-fetched work when the comparison indicates that the pre-fetched work is atomic or ordered or when the pre-fetched work does not comprise the tag; and

request another work pre-fetch when the comparison indicates that the pre-fetched work is not atomic or ordered; and

the arbiter configured to

search for work by determining whether any of a plurality of groups associated with the requestor have work when the work may be pre-fetched for the requestor.

9. The apparatus as claimed in claim 8 , wherein the requestor is further configured to:

request work pre-fetch before a currently processed work is finished.

10. The apparatus as claimed in claim 8 , wherein the requestor comprises a software entity executing on the processor core.

11. The apparatus as claimed in claim 8 , wherein the schedule, synchronize, and order unit determines that work may be pre-fetched for processing by the requestor by being configured to:

determine that at least one of the one or more pre-fetched work-slots associated with the requestor does not comprise work.

12. The apparatus as claimed in claim 8 , wherein the schedule, synchronize, and order unit is configured to processes the pre-fetched work by being configured to:

provide the pre-fetched work from the one pre-fetch work-slot to a second pre-fetch work-slot; and

delete the pre-fetched work from the one pre-fetch work-slot.

13. The apparatus as claimed in claim 8 , wherein the schedule, synchronize, and order unit is configured to the processes the provided pre-fetched work when all work ahead of the pre-fetched work has been processed.

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
To: CAVIUM, INC.
Reel/Frame 032121/0477 →
Continuity (1)
Related Publication 20150220360A1 · Aug 6, 2015