Abstract: A programmable state machine comprising a program memory and a processor is disclosed wherein the state machine operates with the processor accessing the program memory one or fewer times per state transition and wherein the data stored within the programmable memory is substantially optimized to support reduced memory requirements over those necessary according to the prior art. This is achieved by storing data as tables having a number of elements wherein some tables of data occupy less memory than other tables of data.
Abstract: A method of reprogramming classification data in a packet classification state machine without interrupting the operation of the state machine is disclosed. Data relating to a plurality of new nodes from a starting node of the classification tree within a classification tree are stored such that they accurately indicate subsequent nodes within the existing data structure. Once the data is stored, a new first node address is stored in a predetermined location. Thereby causing subsequent state machine executions to begin at a new node. The method allows a plurality of state machines to simultaneously use a same classification data memory because the method does not involve overwriting existing data.
Abstract: A programmable state machine comprising a program memory, a stack memory, and a processor is disclosed wherein the state machine operates with the processor accessing the program memory one or fewer times per state transition and wherein the processor is capable of accessing the stack and the program memory during a same state transition, at least one of a stack access operation and a program memory access operation performed independently.