← Back to Patent Explorer
US4285049A Expired / Lapsed US ⏱️ 0.0 years remaining

Apparatus and method for selecting finite success states by indexing

Assignee: DATAFUSION Corp A CORP
•
Filing: 1978-10-11
•
Granted: 1981-08-18
•
Expires: 1998-10-11
📄 Original PDF 🌐 Google Patents 🔄 Sync Now

Abstract

Abstract A finite state automaton (FSA) may be used to search a stream of input digital code data representing patterns such as text characters, for example, to identify a plurality of designated query words. When a particular one of the sought values of a character or other code element is identified in the input stream, the proper next state for the FSA is typically selected with the aid of a control table memory with multiple entries for each state. According to the invention, the portion of that memory associated with each multiple exit decision state typically consists of only a single word which contains a base state number and a group of indexing bits, one bit for each possible input code element configuration, with set bits corresponding to the multiple values being sought when the FSA is in that particular state. In response to an input code element value that represents a success, an index number is generated from that value and the set indexing bits. That index number is then combined with the base state number to produce the identity of the next success state. The number of indexing bits is reduced for certain codes, such as those representing text characters, by separating the normal elements of the input code into smaller elements, called "nibbles," thereby limiting the number of different input code configurations that must be processed by the FSA in any one state.

Inventors

  • 👤 Richard M. Bird
  • 👤 Ju C. Tu

Bibliographic Details

Application Number —
Jurisdiction US
Data Source google_patents
Last Synchronized 2026-10-29 03:38
CPC Classifications
G; G06; G06F; G06F16/00; G06F16/90; G06F16/903; G06F16/90335; G06F16/90344

Claims Analysis

Total Claims: 4
Claim 1
Independent Claim 435 words
A finite state automaton (FSA) responsive to a stream of input code elements, each code element consisting of a predetermined plurality of code bits, for searching the stream simultaneously for a plurality of specified query patterns each of which comprises an ordered plurality of code element query values; the FSA making transition in response to each input code element from one to another of a plurality of alternative states which include at least one multiple exit decision state in which the FSA searches simultaneously for a plurality of specified alternative code element query values that are code element values of respective query patterns; each code element query value being associated with a distinct next state to which the FSA makes transition in response to detection of that code element query value in the input stream; said FSA comprising input means for receiving an input stream of digital code data and for successively accessing from the stream a current one of said code elements for parallel delivery, control memory means including a plurality of state words associated with respective alternative states of the FSA, the state word associated with each said decision state including a series of ordered indexing bits corresponding to the respective possible values of said input code elements, with set bits designating said plurality of specified code element query values, and a code representation of a base state number having a predetermined relation to the next success state associated with a selected one of those query values, state register means for storing an identification of the current state and for accessing the contents of the state word associated with that state, action means controlled successively by the currently accessed input code element and by the currently accessed contents of the state word and including, when under control of the state word contents associated with said multiple exit decision state, means for simultaneously comparing said accessed input code element value and the set indexing bits in said accessed state word contents and for developing a match signal in response to detection of a match, means for deriving an index that represents the position among the set indexing bits of the bit corresponding to the input code element value, means for developing from said index and from the base state number represented in said accessed state word contents an identification of the next success state associated with the current input code element value, and means responsive to said match signal for storing the so developed next success state identification in said state register means as an identification of the next current state of the FSA.
Claim 2
Dependent Claim 435 words
A finite state automaton (FSA) responsive to a stream of input code elements, each code element consisting of a predetermined plurality of code bits, for searching the stream simultaneously for a plurality of specified query patterns each of which comprises an ordered plurality of code element query values; the FSA making transition in response to each input code element from one to another of a plurality of alternative states which include at least one multiple exit decision state in which the FSA searches simultaneously for a plurality of specified alternative code element query values that are code element values of respective query patterns; each code element query value being associated with a distinct next state to which the FSA makes transition in response to detection of that code element query value in the input stream; said FSA comprising input means for receiving an input stream of digital code data and for successively accessing from the stream a current one of said code elements for parallel delivery, control memory means including a plurality of state words associated with respective alternative states of the FSA, the state word associated with each said decision state including a series of ordered indexing bits corresponding to the respective possible values of said input code elements, with set bits designating said plurality of specified code element query values, and a code representation of a base state number having a predetermined relation to the next success state associated with a selected one of those query values, state register means for storing an identification of the current state and for accessing the contents of the state word associated with that state, action means controlled successively by the currently accessed input code element and by the currently accessed contents of the state word and including, when under control of the state word contents associated with said multiple exit decision state, means for simultaneously comparing said accessed input code element value and the set indexing bits in said accessed state word contents and for developing a match signal in response to detection of a match, means for deriving an index that represents the position among the set indexing bits of the bit corresponding to the input code element value, means for developing from said index and from the base state number represented in said accessed state word contents an identification of the next success state associated with the current input code element value, and means responsive to said match signal for storing the so developed next success state identification in said state register means as an identification of the next current state of the FSA.
Claim 3
Dependent Claim 254 words
In operation of a finite state automation (FSA) for searching an input stream of digital code elements for a plurality of specified code element query values, the FSA making transition in response to each input code element from one to another of a plurality of alternative states which include at least one multiple exit decision state, each code element query value being associated with a distinct next success state to which the FSA makes transition from said decision state in response to detection of that code element query value in the input stream; the method of controlling such transition, comprising providing a state memory means associated with said decision state, storing in said memory means an ordered series of code bits which correspond to the respective possible values of each input code element and are selectively set to designate said query values, assigning to said next success states correspondingly ordered next state identities, storing in said memory means a base state number representing the identity of the next success state associated with a selected one of said query values, electronically comparing the current input code element simultaneously to all of the set indexing bits, electronically deriving an index that represents the position among the set indexing bits of any indexing bit that matches the current input code element, deriving from said index and from said base state number an identification of the next success state associated with such indexing bit, and causing the FSA to make transition to the so identified next success state.
Claim 4
Dependent Claim 254 words
In operation of a finite state automation (FSA) for searching an input stream of digital code elements for a plurality of specified code element query values, the FSA making transition in response to each input code element from one to another of a plurality of alternative states which include at least one multiple exit decision state, each code element query value being associated with a distinct next success state to which the FSA makes transition from said decision state in response to detection of that code element query value in the input stream; the method of controlling such transition, comprising providing a state memory means associated with said decision state, storing in said memory means an ordered series of code bits which correspond to the respective possible values of each input code element and are selectively set to designate said query values, assigning to said next success states correspondingly ordered next state identities, storing in said memory means a base state number representing the identity of the next success state associated with a selected one of said query values, electronically comparing the current input code element simultaneously to all of the set indexing bits, electronically deriving an index that represents the position among the set indexing bits of any indexing bit that matches the current input code element, deriving from said index and from said base state number an identification of the next success state associated with such indexing bit, and causing the FSA to make transition to the so identified next success state.

References Cited (Backward Citations)

US3350695A Cited
US3387274A Cited
US3430205A Cited
US3440617A Cited
US3568155A Cited
US3618027A Cited
US3715730A Cited
US3771139A Cited
US3742460A Cited
US4064489A Cited
US4099242A Cited
US4118788A Cited
US4164025A Cited

USPTO Annuity & Maintenance Windows

Annuity Stage Window Opens Payment Deadline Surcharge Period Until Estimated Fee Status
3.5 Years (Year 4) 1984-08-17 1985-02-16 1985-08-18 $2000.00 Window Closed / Lapsed
7.5 Years (Year 8) 1988-08-17 1989-02-16 1989-08-18 $3760.00 Window Closed / Lapsed
11.5 Years (Year 12) 1992-08-17 1993-02-16 1993-08-18 $7700.00 Window Closed / Lapsed

Assigned Categories & Tags

No categories assigned to this patent yet.

Assign Category Tag