Abstract
Embodiments of the present invention relate to a method and system for automatically configuring network processing software to reduce memory latency associated with parallel processing using a plurality of processing elements.
Claims
-
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.
- The method of claim 1, wherein the network processing code comprises a domain specific language.
- The method of claim 1, wherein the local memories are caches.
-
A method for automatically configuring network processing software, comprising:
analyzing network processing code to detect and interpret language therein relating to data structures;
generating profiling information for the network processing code, the profiling information including information relating to accesses to the data structures;
using the profiling information, 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.
- The method of claim 4, wherein (b) includes simulating execution of the network processing code.
- The method of claim 4, wherein the network processing code comprises a domain specific language.
- The method of claim 4, wherein the local memories are caches.
-
A method for automatically configuring network processing software, comprising:
providing code analyzer and modifier software configured to generate network processing software associated with parallel processing of a plurality of packet flows using a plurality of processing elements;
providing first network processing code to the code analyzer and modifier software as input;
executing the code analyzer and modifier software to form modified network processing code as output, the modified network processing code being configured to implement a distribution of packet-flow-specific data structures across respective local memories of the plurality of processing elements such that processing of each distinct flow of the plurality of packet flows is restricted to a single processing element;
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.
- The method of claim 8, wherein the code analyzer and modifier software is configured to analyze the first network processing code to detect and interpret language therein relating to data structures.
- The method of claim 8, wherein the code analyzer and modifier software is configured to simulate execution of the first network processing code to generate profiling information for the first network processing code, the profiling information including information relating to accesses to data structures accessed by the first network processing code to process the packet flows.
- The method of claim 8, wherein the code analyzer is configured to generate code for implementing a common classifier to distribute packets to appropriate processing elements.
-
A system comprising:
a memory including computer-executable instructions;
a processor coupled to the memory to execute the instructions, the instructions when executed implementing a process for automatically configuring network processing software, the process including:
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.
-
A system comprising:
a memory including computer-executable instructions;
a processor coupled to the memory to execute the instructions, the instructions when executed implementing a process for automatically configuring network processing software, the process including:
analyzing network processing code to detect and interpret language therein relating to data structures;
generating profiling information for the network processing code, the profiling information including information relating to accesses to the data structures;
using the profiling information, 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.
- A machine-readable medium storing computer-executable code analyzer and modifier software configured to generate network processing software associated with parallel processing of a plurality of packet flows using a plurality of processing elements, the code analyzer and modifier software being adapted to receive first network processing code as input, and to form modified network processing code as output, the modified network processing code being configured to implement a distribution of packet-flow-specific data structures across respective local memories of the plurality of processing elements such that processing of each distinct flow of the plurality of packet flows is restricted to a single processing element, the modified network processing code being executing to generate run-time adaptive code to change the distribution of the data structures, based at least in part on frequency of accesses to the data structures, and generate a classifier associated with the first 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.
- The machine-readable medium of claim 14, wherein the code analyzer and modifier software is adapted to analyze the first network processing code to detect and interpret language therein relating to data structures.
- The machine-readable medium of claim 14, the code analyzer and modifier software being further adapted to simulate execution of the first network processing code to generate profiling information for the first network processing code, the profiling information including information relating to accesses to data structures accessed by the first network processing code to process the packet flows.
Owners (US)
-
Intel Corporation
(Aug 12 2003)
Explore more patents:
Applicants
-
Intel Corp
Explore more patents:
Inventors
-
Jason James L
Explore more patents:
-
Kunze Aaron R
Explore more patents:
-
Johnson Erik J
Explore more patents:
-
Vin Harrick
Explore more patents:
-
Sahita Ravi
Explore more patents:
CPC Classifications
IPC Classifications
Download PDF
Document Preview
Document History
- Publication: May 19, 2009
-
Application:
Aug 13, 2003
US 63950103 A
-
Priority:
Aug 13, 2003
US 63950103 A