Parallel pattern detection engine
First Claim
1. A method of determining if any of N sequences of pattern occurs within a sequence of input data using a parallel pattern detection engine (PPDE) comprising the steps of:
- a) loading the N sequences of pattern into M processing units (PUs), each of the M PUs having compare circuitry for comparing each of the sequence of input data, in parallel, to a selected pattern in each of the N sequences of pattern stored in the M PUs;
b) loading identification (ID) data into each of the M PUs, wherein the ID data determines an ID for each of the M PUs;
c) loading match mode data into each of the M PUs setting criteria for determining when conditions have been met for indicating that one of the N sequences of pattern has been detected in the sequence of input data;
d) coupling a first input data in parallel to each of the M PUs;
e) comparing the first input data to the selected pattern determined by an address pointer in each of the M PUs and generating a compare output in each of the M PUs within a same clock cycle;
f) modifying the value of the address pointer in each of the M PUs in response to a logic state of the corresponding compare output and an operation code stored with the selected pattern in each of the M PUs;
g) selecting a match ID from the ID data in response to a pattern match signal indicating one of the N sequences of pattern has been detected;
h) storing the match ID and match data corresponding to the match ID; and
i) repeating steps (e-h) until a last input data of the sequence of input data has been compared.
1 Assignment
0 Petitions
Accused Products
Abstract
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.
22 Citations
10 Claims
-
1. A method of determining if any of N sequences of pattern occurs within a sequence of input data using a parallel pattern detection engine (PPDE) comprising the steps of:
-
a) loading the N sequences of pattern into M processing units (PUs), each of the M PUs having compare circuitry for comparing each of the sequence of input data, in parallel, to a selected pattern in each of the N sequences of pattern stored in the M PUs; b) loading identification (ID) data into each of the M PUs, wherein the ID data determines an ID for each of the M PUs; c) loading match mode data into each of the M PUs setting criteria for determining when conditions have been met for indicating that one of the N sequences of pattern has been detected in the sequence of input data; d) coupling a first input data in parallel to each of the M PUs; e) comparing the first input data to the selected pattern determined by an address pointer in each of the M PUs and generating a compare output in each of the M PUs within a same clock cycle; f) modifying the value of the address pointer in each of the M PUs in response to a logic state of the corresponding compare output and an operation code stored with the selected pattern in each of the M PUs; g) selecting a match ID from the ID data in response to a pattern match signal indicating one of the N sequences of pattern has been detected; h) storing the match ID and match data corresponding to the match ID; and i) repeating steps (e-h) until a last input data of the sequence of input data has been compared. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10)
-
Specification