A packet co-processing system for improving the performance of an
Application Specific Integrated Circuit (ASIC), including: a set of N
search engines, logically disposed so as to form a chain of search
engines, including: (a) a first search engine for connecting to the ASIC;
(b) a terminal search engine, and (c) a set of N-2 intermediate search
engines, logically disposed between the first search engine and the
terminal search engine (N=2), and wherein each particular search engine
includes: (i) an input selector including a parsing unit configured to:
(A) select a particular set of fields containing at least a portion of at
least one field from a larger, first set of fields submitted to the
particular search engine, and (B) produce a Synthesized Key using data
from the particular set of fields; (ii) search logic configured to: (A)
search a memory, in response to the Synthesized Key, for a key entry
matching the Synthesized Key, and (B) retrieve associated data
corresponding to the Synthesized Key, and (iii) an output unit for
outputting the associated data from the particular search engine, and
wherein each output unit of each intermediate search engine, and at least
one output unit of the first search engine and the terminal search
engine, output the associated data to an adjacent search engine, and
wherein the input selector of each intermediate search engine, and at
least one input selector of the first search engine and the terminal
search engine, output a second set of fields, including at least a
portion of the first set of fields, to an adjacent search engine.