US 7,536,674 B2
Method and system for configuring network processing software to exploit packet flow data locality
James L. Jason, Hillsboro, Oreg. (US); Aaron R. Kunze, Portland, Oreg. (US); Erik J. Johnson, Portland, Oreg. (US); Harrick Vin, Austin, Tex. (US); and Ravi Sahita, Beaverton, Oreg. (US)
Assigned to Intel Corporation, Santa Clara, Calif. (US)
Filed on Aug. 13, 2003, as Appl. No. 10/639,501.
Prior Publication US 2005/0038937 A1, Feb. 17, 2005
Int. Cl. G06F 9/44 (2006.01); G06F 9/445 (2006.01)
U.S. Cl. 717—106  [717/172; 717/177] 16 Claims
OG exemplary drawing
 
1. A method for automatically configuring network software, comprising:
analyzing network processing code to detect and interpret language therein relating to data structures;
determining a distribution of the data structures across respective local memories of a plurality of processing elements of a network processor such that data structures specific to a particular packet flow are assigned to the local memory of a single processing element;
generating modified network processing code configured to use the distribution to process packets;
generating run-time adaptive code to change the distribution of the data structures during execution of the modified network processing code, based at least in part on frequency of accesses to the data structures; and
generating a classifier associated with the network processing code, the classifier being configured to distribute arriving packets to appropriate processing elements, based upon which corresponding local memory stores the flow-specific data structures associated with the flow to which a packet belongs.