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
OG exemplary drawing
 
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.