US 9,811,467 B2
Method and an apparatus for pre-fetching and processing work for procesor cores in a network processor
Wilson Parkhurst Snyder, II, Holliston, MA (US); Richard Eugene Kessler, Northboroug, MA (US); Daniel Edward Dever, North Brookfield, LA (US); and Nitin Dhiroobhai Godiwala, Boylston, KY (US)
Assigned to Cavium, Inc., San Jose, CA (US)
Filed by Cavium, Inc., San Jose, CA (US)
Filed on Feb. 3, 2014, as Appl. No. 14/171,290.
Prior Publication US 2015/0220360 A1, Aug. 6, 2015
Int. Cl. G06F 9/46 (2006.01); G06F 12/0862 (2016.01); G06F 12/0811 (2016.01)
CPC G06F 12/0862 (2013.01) [G06F 12/0811 (2013.01); G06F 2212/1024 (2013.01); G06F 2212/6028 (2013.01)] 13 Claims
OG exemplary drawing
 
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.