STATE MACHINE COMPRESSION
First Claim
1. A method of evaluating a state machine with respect to a data string, wherein the state machine comprises a plurality of state transition instruction that are associated with transitions from respective states, the method comprising:
- storing at least some of the state transition instructions in a first memory;
determining if a state transition instruction associated with a currently active state of the state machine comprises a multi-character state transition instruction;
in response to determining that the state transition instruction associated with the currently active state comprises a multi-character state transition instruction,determining a quantity P of transition conditions indicated in the multi-character state transition instruction, where P is greater than or equal to 2;
determining the transition conditions indicated in the multi-character state transition instruction; and
determining if the next P characters of the data string match the P transition conditions indicated in the multi-character state transition instruction.
6 Assignments
0 Petitions
Accused Products
Abstract
Compressing state transition instructions may achieve a reduction in the binary instruction footprint of a state machine. In certain embodiments, the compressed state transition instructions are used by state machine engines that use one or more caches in order to increase the speed at which the state machine engine can execute a state machine. In addition to reducing the instruction footprint, the use of compressed state transition instructions as discussed herein may also increase the cache hit rate of a cache-based state machine engine, resulting in an increase in performance.
73 Citations
20 Claims
-
1. A method of evaluating a state machine with respect to a data string, wherein the state machine comprises a plurality of state transition instruction that are associated with transitions from respective states, the method comprising:
-
storing at least some of the state transition instructions in a first memory; determining if a state transition instruction associated with a currently active state of the state machine comprises a multi-character state transition instruction; in response to determining that the state transition instruction associated with the currently active state comprises a multi-character state transition instruction, determining a quantity P of transition conditions indicated in the multi-character state transition instruction, where P is greater than or equal to 2; determining the transition conditions indicated in the multi-character state transition instruction; and determining if the next P characters of the data string match the P transition conditions indicated in the multi-character state transition instruction. - View Dependent Claims (2, 3, 4, 5)
-
-
6. An apparatus for evaluating a state machine with reference to a data string comprising a plurality of characters, the apparatus comprising:
-
a memory configured to store at least some of a plurality of state transition instructions associated with respective states of the state machine; an interface for receiving characters of the data string; and a processor for selectively accessing memory locations of the memory in response to respective characters of the data string, wherein the processor is further configured to determine if a particular state transition instruction stored in the memory comprises transition conditions associated with transitions between 2 or more sequential states of a linear path of the state machine. - View Dependent Claims (7, 8, 9, 10)
-
-
11. A method of generating a compressed state machine representative of a plurality of regular expressions that are associated with data strings, the method comprising:
-
determining state transition instructions associated with respective states of the state machine, wherein at least some of the state transition instructions indicate at least one respective transition character and at least one next state transition instruction, wherein at least one of the state transition instructions indicates two or more sequential characters of an input data stream that must be received by the state machine engine in order to initiate transition to an indicated next state transition instruction. - View Dependent Claims (12, 13, 14, 15, 16, 17, 18, 19, 20)
-
Specification