A parallel pattern detection engine (PPDE) comprise multiple processing
units (PUs) customized to do various modes of pattern recognition. The
PUs are loaded with different patterns and the input data to be matched
is provided to the PUs in parallel. Each pattern has an Opcode that
defines what action to take when a particular data in the input data
stream either matches or does not match the corresponding data being
compared during a clock cycle. Each of the PUs communicate selected
information so that PUs may be cascaded to enable longer patterns to be
matched or to allow more patterns to be processed in parallel for a
particular input data stream.