Network Processors and Pipeline Optimization Methods
First Claim
1. A network processor, comprising:
- a packet classification engine for classifying each of a plurality of packets according to packet type;
a processing pipeline having a plurality of stages for processing each of the plurality of packets in a pipelined manner, each stage of the plurality of stages including one or more processors; and
a controller for providing the plurality of packets to the processing pipeline in an order that is based at least partially on (i) packet types of the plurality of packets as classified by the packet classification engine and (ii) estimates of processing times for processing packets of the packet types at each stage of the plurality of stages of the processing pipeline.
0 Assignments
0 Petitions
Accused Products
Abstract
A network processor of an embodiment includes a packet classification engine, a processing pipeline, and a controller. The packet classification engine allows for classifying each of a plurality of packets according to packet type. The processing pipeline has a plurality of stages for processing each of the plurality of packets in a pipelined manner, where each stage includes one or more processors. The controller allows for providing the plurality of packets to the processing pipeline in an order that is based at least partially on: (i) packet types of the plurality of packets as classified by the packet classification engine and (ii) estimates of processing times for processing packets of the packet types at each stage of the plurality of stages of the processing pipeline. A method in a network processor allows for prefetching instructions into a cache for processing a packet based on a packet type of the packet.
-
Citations
20 Claims
-
1. A network processor, comprising:
-
a packet classification engine for classifying each of a plurality of packets according to packet type; a processing pipeline having a plurality of stages for processing each of the plurality of packets in a pipelined manner, each stage of the plurality of stages including one or more processors; and a controller for providing the plurality of packets to the processing pipeline in an order that is based at least partially on (i) packet types of the plurality of packets as classified by the packet classification engine and (ii) estimates of processing times for processing packets of the packet types at each stage of the plurality of stages of the processing pipeline. - View Dependent Claims (2, 3, 4, 5, 6)
-
-
7. A method in a network processor, comprising:
-
classifying each packet of a plurality of packets into a corresponding packet type of a plurality of packet types; determining an order of processing the plurality of packets in a processing pipeline based at least partially on (i) the corresponding packet type of each packet of the plurality of packets and (ii) estimates of processing times for processing packets of the plurality of packet types at each stage of a plurality of stages of the processing pipeline; and providing the plurality of packets to the processing pipeline in said order. - View Dependent Claims (8, 9, 10)
-
-
11. A method in a network processor, the network processor including a processing pipeline having a plurality of stages, the method comprising:
-
receiving a plurality of packets into the network processor in a first order; classifying each packet of the plurality of packets into a corresponding packet type of a plurality of packet types; determining a second order in which to provide the plurality of packets to the processing pipeline based at least partially on the corresponding packet type of each packet of the plurality of packets; and providing the plurality of packets to the processing pipeline in said second order. - View Dependent Claims (12, 13, 14)
-
-
15. A method in a network processor, said network processor including a processing pipeline having a plurality of stages, said method comprising:
-
processing a packet of a packet type by a processor of a stage of the plurality of stages; prefetching, into a particular cache, instructions for processing packets of said packet type while said processor is processing said packet; and obtaining said instructions from said particular cache to process said packet by a particular processor of a particular stage of the plurality of stages, said particular stage located after said stage in said processing pipeline. - View Dependent Claims (16, 17, 18)
-
-
19. A method in one or more computers, the method comprising:
-
obtaining information, for each packet type of a plurality of packet types and for each processor design of a plurality of processor designs for each stage of a plurality of stages of a processing pipeline, including a corresponding estimate of processing time for processing a packet of the packet type by a processor of the processor design; specifying a linear program based on said information, said linear program including a corresponding binary variable for each processor design of the plurality of processor designs for each stage of the plurality of stages of the processing pipeline; solving said linear program to assign a corresponding value to the corresponding binary variable for each processor design of the plurality of processor designs for each stage of the plurality of stages of the processing pipeline; and outputting design information relating to processor designs of the plurality of processor designs to be used for a network processor based on the corresponding value of the corresponding binary variable for each processor design of the plurality of processor designs for each stage of the plurality of stages of the processing pipeline. - View Dependent Claims (20)
-
Specification