Parallel network processor array
First Claim
1. A method for performing variable time processes in parallel on a plurality of ordered incoming packets, on a plurality of processors, the method comprising:
- assigning each of the plurality of ordered incoming packets to one of the plurality of processors, the packets comprising at least a portion of a micro-flow;
pre-processing each of the plurality of ordered incoming packets to determine whether processing on a previous packet is in progress, the previous packet comprising at least a portion of the micro-flow; and
processing each of the plurality of ordered incoming packets on the a processor of the plurality of processors to which the ordered incoming packet is assigned, in response to completion of processing of the previous packet.
8 Assignments
0 Petitions
Accused Products
Abstract
A method and system performs parallel processing of asynchronous processes on ordered entities. A system focuses on the average time and variance of the variable time process. Each processor can run multiple contexts. The processing may be divided into a number of stages, each of which can be performed by each of the processors. A system also needs to ensure that the order of the entities is preserved as desired. This order may be maintained by performing some type of pre-processing on the entities to determine their order, and then not starting processing on an entity until the processing of any entity which must precede that entity has been completed. For processing of packets in a network, it may be needed to ensure that packets in the same flow maintain their order after processing. A system also may determine the number of processors that optimally are needed in order to process an incoming stream of entities at a desired speed. This computation may depend on how many different contexts each processor runs. In addition, this computation also may depend on whether there is an input buffer available to store the incoming entities, and the capacity of such an input buffer.
159 Citations
7 Claims
-
1. A method for performing variable time processes in parallel on a plurality of ordered incoming packets, on a plurality of processors, the method comprising:
-
assigning each of the plurality of ordered incoming packets to one of the plurality of processors, the packets comprising at least a portion of a micro-flow;
pre-processing each of the plurality of ordered incoming packets to determine whether processing on a previous packet is in progress, the previous packet comprising at least a portion of the micro-flow; and
processing each of the plurality of ordered incoming packets on the a processor of the plurality of processors to which the ordered incoming packet is assigned, in response to completion of processing of the previous packet. - View Dependent Claims (2, 3, 4, 5)
-
-
6. A method to process in parallel on a plurality of processors, a plurality of packets in a network which comprise a micro-flow, the method comprising:
-
assigning each of the plurality of packets to one of the plurality of processors;
determining whether a first packet in the plurality of packets comprising the micro-flow is currently being processed at the time when a subsequent packet of the plurality of packets comprising the micro-flow is received;
responsive to determining that the first packet in the plurality of packets is currently being processed;
not starting processing of the subsequent packet of the plurality of packets;
at a later time determining whether the first packet in the plurality of packets is currently being processed;
responsive to determining that the first packet in the plurality of packets is not currently being processed, starting processing of the subsequent em packet of the plurality of packets; and
processing each of the plurality of packets on a processor of the plurality of processors to which the packet is assigned.
-
-
7. An electronically readable medium storing a program for permitting a computer to perform a method to process in parallel on a plurality of processors, a plurality of packets in a network which comprise flows micro-flow, the method comprising:
-
assigning each of the plurality of packets to one of the plurality of processors;
determining whether a first packet in the plurality of packets comprising the micro-flow is currently being processed when a subsequent packet in the plurality of packets comprising the micro-flow is received;
responsive to determining that the first packet in the plurality of packets is currently being processed;
not starting processing of the subsequent one packet of the plurality of packets;
redetermining at a later time whether the first packet in the plurality of packets is currently being processed;
responsive to determining that the first packet in the plurality of packets is not currently being processed, starting processing of the subsequent packet of the plurality of packets; and
processing each of the plurality of packets on the corresponding one a processor of the plurality of processors to which it the packet is assigned.
-
Specification