Pattern matching in a multiprocessor environment with finite state automaton transitions based on an order of vectors in a state transition table
First Claim
1. A method for pattern matching in a plurality of interconnected processing engines, comprising:
- accepting at least one input sequence of symbols over an interface;
accepting a specification of transitions among states associated with a finite state automaton for matching an input sequence to one or more patterns, the specification comprising a state transition table having a first dimension corresponding to states and a second dimension corresponding to input symbols, with each transition being associated with at least one symbol, with multiple subsets of transitions comprising vectors in the first dimension each associated with a respective input symbol and specifying next state transitions for each current state, and with the input symbol associated with a given vector in the first dimension of the state transition table being determined by the position of the given vector in the table;
selecting an order associated with the vectors that is different from the order of the vectors in the state transition table;
storing data that specifies the transitions according to the selected order; and
performing pattern matching in a plurality of interconnected processing engines including determining whether the accepted input sequence matches a pattern based on the stored data, with the determining including, for at least one input symbol in the accepted input sequence;
translating the input symbol in the accepted input sequence to a different symbol according to the change in position of a given vector between the order defined by the state transition table and the order defined by the stored data,determining one of the vectors that corresponds to the translated input symbol, anddetermining a transition from a current state to a next state based on the determined vector and the stored data.
9 Assignments
0 Petitions
Accused Products
Abstract
Pattern matching in a plurality of interconnected processing engines includes: accepting a stream of input sequences over an interface and storing the input sequences; storing instructions for matching an input sequence to one or more patterns in memory accessible by a first set of one or more processing engines, and storing instructions for matching an input sequence to one or more patterns in memory accessible by a second set of one or more processing engines; distributing information identifying selected input sequences to the first and second sets of processing engines; and retrieving the identified input sequences to perform pattern matching in the first and second sets of processing engines.
134 Citations
77 Claims
-
1. A method for pattern matching in a plurality of interconnected processing engines, comprising:
-
accepting at least one input sequence of symbols over an interface; accepting a specification of transitions among states associated with a finite state automaton for matching an input sequence to one or more patterns, the specification comprising a state transition table having a first dimension corresponding to states and a second dimension corresponding to input symbols, with each transition being associated with at least one symbol, with multiple subsets of transitions comprising vectors in the first dimension each associated with a respective input symbol and specifying next state transitions for each current state, and with the input symbol associated with a given vector in the first dimension of the state transition table being determined by the position of the given vector in the table; selecting an order associated with the vectors that is different from the order of the vectors in the state transition table; storing data that specifies the transitions according to the selected order; and performing pattern matching in a plurality of interconnected processing engines including determining whether the accepted input sequence matches a pattern based on the stored data, with the determining including, for at least one input symbol in the accepted input sequence; translating the input symbol in the accepted input sequence to a different symbol according to the change in position of a given vector between the order defined by the state transition table and the order defined by the stored data, determining one of the vectors that corresponds to the translated input symbol, and determining a transition from a current state to a next state based on the determined vector and the stored data. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63)
-
-
64. A system for pattern matching, comprising:
-
a plurality of interconnected processing engines; an interface to at least one of the processing engines configured to accept at least one input sequence of symbols; and memory accessible by one or more of the processing engines that stores data that specifies transitions among states associated with a finite state automaton for matching an input sequence to one or more patterns, based on an accepted specification comprising a state transition table having a first dimension corresponding to states and a second dimension corresponding to input symbols, with each transition being associated with at least one symbol, with multiple subsets of transitions comprising vectors in the first dimension each associated with a respective input symbol and specifying next state transitions for each current state, and with the input symbol associated with a given vector in the first dimension of the state transition table being determined by the position of the given vector in the table; at least one of the processing engines being configured to translate input symbols in the input sequence according to a selected order associated with the vectors that is different from the order of the vectors in the state transition table; and at least one of the processing engines being configured to determine whether the accepted input sequence matches a pattern based on the stored data that specifies the transitions, with the determining including, for at least one input symbol in the accepted input sequence; translating the input symbol in the accepted input sequence to a different symbol according to the change in position of a given vector between the order defined by the state transition table and the order defined by the stored data, determining one of the vectors that corresponds to the translated input symbol, and determining a transition from a current state to a next state based on the determined vector and the stored data. - View Dependent Claims (65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77)
-
Specification