| US 7,599,361 B2 | ||
| Wire-speed packet management in a multi-pipeline network processor | ||
| Oren Malerevich, Kiryat Uno (Israel) | ||
| Assigned to P-Cube Ltd., Hertzlia (Israel) | ||
| Filed on Jul. 02, 2004, as Appl. No. 10/882,305. | ||
| Prior Publication US 2006/0002392 A1, Jan. 05, 2006 | ||
| Int. Cl. H04L 12/28 (2006.01); G06F 13/00 (2006.01) | ||
| U.S. Cl. 370—389 [370/392; 370/419; 711/108] | 20 Claims |

| 1. A network processor for maintaining processing order of data packets in a process flow, the network processor comprising:
a packet input queue, each packet in said queue having a unique flow-identification;
a plurality of pipeline units having respective inputs and outputs disposed within the network processor, each pipeline unit
(PU) capable of accepting a received packet from the packet input queue and comprising a predetermined number of pipeline
stages for processing the received packet by the network processor, wherein the number of pipeline stages is at least two;
multiple flow-identification content addressable memories (FICAM), each said FICAM associated with a respective PU and comprising
a number of locations, equal to the number of pipeline stages in said respective PU, for accepting respective flow-identifications
of packets being processed by the pipeline stages of said respective PU; each said FICAM including:
a row of content addressable memory (CAM) cells operative to store a first flow-identification, the first flow-identification
corresponding to a first packet dispatched for processing by a PU; and
a comparison unit operative:
to compare a second flow-identification corresponding to a second packet with contents of said row of CAM cells;
to make a determination if the second flow-identification is same as the first flow-identification;
to generate a hit message if said second flow-identification is the same as the first flow-identification; and
to generate a miss message when none of said multiple FICAM comparison units generate a hit message; and
a controller, responsive to said hit message, operative to reschedule said second packet such that said second packet is not
placed in a PU until said miss message is generated, to maintain processing order of said first and said second packets.
|