Pattern matching using deterministic finite automata and organization of such automata
First Claim
1. A method of operating a deterministic finite state machine as implemented in an integrated circuit to detect any one of a plurality of signatures each corresponding to a succession of characters and each defined by a sequence of states in the state machine, the method comprising;
- organizing the states of the machine such that for each state after the first in any sequence there are not more than two allowed exit transitions of which one is to a default state;
examining a stream of input characters received from a communications network to determine in response to each input character a transition from a current state of the machine to a next state; and
when the machine responds to an input character to perform a transition to the default state, re-examining that input character to determine the next state of the state machine wherein input characters are held in a memory from which they are automatically read by an incrementing reader and the method further comprises comparing the current state of the machine with the default state and on detection of a match inhibiting for one incrementing cycle the incrementing of the reader.
6 Assignments
0 Petitions
Accused Products
Abstract
A deterministic finite state machine is operated to detect any one of a plurality of digital signatures each corresponding to a succession of characters and each defined by a sequence of states in the state machine. The machine is organized such that for each state after the first in any sequence there are not more than two allowed exit transitions of which one is to a default state. Input characters are examined to determine a transition from a current state of the machine to a next state. When the machine responds to an input character to perform a transition to the default state, the input character is re-examined to determine the next state of the state machine. The reduction in transitions saves considerable space in memory.
-
Citations
8 Claims
-
1. A method of operating a deterministic finite state machine as implemented in an integrated circuit to detect any one of a plurality of signatures each corresponding to a succession of characters and each defined by a sequence of states in the state machine, the method comprising;
-
organizing the states of the machine such that for each state after the first in any sequence there are not more than two allowed exit transitions of which one is to a default state; examining a stream of input characters received from a communications network to determine in response to each input character a transition from a current state of the machine to a next state; and when the machine responds to an input character to perform a transition to the default state, re-examining that input character to determine the next state of the state machine wherein input characters are held in a memory from which they are automatically read by an incrementing reader and the method further comprises comparing the current state of the machine with the default state and on detection of a match inhibiting for one incrementing cycle the incrementing of the reader. - View Dependent Claims (2, 3)
-
-
4. An integrated circuit containing a deterministic finite state machine organized to detect any one of a plurality of signatures each corresponding to a succession of characters and each defined by a sequence of states in the state machine, wherein the machine is organized:
-
(a) such that for each state after the first in any sequence there are not more than two allowed exit transitions of which one is to a default state; (b) to examine a stream of input characters received from a communications network to determine in response to each input character a transition from a current state of the state machine to a next state; and (c) when the state machine responds to an input character to perform a transition to said default state, to re-examine that input character to determine the next state of the state machine wherein the finite state machine comprises; a memory for holding successively received input characters; an incrementing reader for reading the input characters; and a comparator to compare the current state of the machine with the default state and on detection of a match to inhibit for one incrementing cycle the incrementing of the reader. - View Dependent Claims (5, 6)
-
-
7. An integrated circuit implementing a deterministic finite state machine organized to detect any one of a plurality of signatures each corresponding to a succession of characters, said state machine comprising:
-
a memory table defining a multiplicity of states and allowed transitions between some of said states, said states defining a multiplicity of state sequences each corresponding to one of said signatures, and wherein for each state after the first in any sequence there are not more than two allowed exit transitions of which one is to a default state; a memory for holding successively received input characters received from a communications network; an incrementing reader for reading the input characters to determine in response to each input character a transition from a current state of the state machine to a next state; and a comparator operative, when the state machine responds to an input character to perform a transition to said default state, to compare the current state of the machine with the default state and on detection of a match to inhibit for one incrementing cycle the incrementing of the reader whereby the state machine re-examines that input character to determine the next state of the state machine. - View Dependent Claims (8)
-
Specification