| US 7,499,470 B2 | ||
| Sequence-preserving deep-packet processing in a multiprocessor system | ||
| Jean Louis Calvignac, Cary, N.C. (US); Mohammad Pevravian, Morrisville, N.C. (US); and Fabrice Jean Verplanken, La Gaude (France) | ||
| Assigned to International Business Machines Corporation, Armonk, N.Y. (US) | ||
| Filed on Dec. 24, 2007, as Appl. No. 11/963,898. | ||
| Application 11/963898 is a continuation of application No. 09/912781, filed on Jul. 25, 2001, granted, now 7,327,759. | ||
| Prior Publication US 2008/0095170 A1, Apr. 24, 2008 | ||
| This patent is subject to a terminal disclaimer. | ||
| Int. Cl. H04J 3/24 (2006.01) | ||
| U.S. Cl. 370—474 [370/410; 370/426; 370/469] | 2 Claims |

| 1. A system for transmitting multiple frames, each frame having a header field and a data field, for deep packet processing
of the data field, said frames transmitted in a given sequence, for performing the deep packet processing on the data field
of each of the frames, and for forwarding the processed frames to their destination in the same given sequence, comprising:
a) an input buffer for receiving frames for processing, having a buffer capacity of at least twice the size of the largest
frame size, said buffer incorporated into a Data Moving Unit;
b) a Frame Header Processing Unit for determining the type of deep packet processing operation to be performed on each frame;
c) a plurality of processing core engines wherein each core engine has its own deep packet processing operation to be conducted
on the data field of a frame, and an associated memory for storing a frame assigned to the engine until the engine is free
to perform said deep packet processing operation on the data field of the frame;
d) an arbitrator for assigning an ascending frame sequence number to each frame, for selecting a core engine based upon the
type of operation to be performed on the data field of each frame, and for forwarding each frame to the selected core engine
for deep-packet processing;
e) an output buffer for collecting each frame as it is processed by a core engine, said buffer having a buffer capacity of
at least twice the size of the largest frame size and comprising a portion of the Data Moving Unit; and
f) a sequencer for forwarding processed frames from the output buffer to their destination in the same order as they are received
by the input buffer.
|