×

High-speed single-pass textual search processor for locating exact and inexact matches of a search pattern in a textual stream

  • US 5,051,947 A
  • Filed: 12/10/1985
  • Issued: 09/24/1991
  • Est. Priority Date: 12/10/1985
  • Status: Expired due to Term
First Claim
Patent Images

1. A special-purpose search processor, comprising:

  • a plurality of serially-connected cells, each cell includinga pattern register for storing a character of a pattern to be searched for,a character register for storing a character of a data stream to be searched,match logic, including a comparator for generating a cell match signal by comparing the character stored in the character register with the character stored in the pattern register, anda match register for storing a match value indicative of a match between a search pattern and the data stream, and for registering any mismatch indicated by the cell match signal;

    means for connecting the character registers of the plurality of cells serially together to form a character line;

    means for connecting the match registers of the plurality of cells serially together to form a match line;

    means for initializing the cells to contain the search pattern; and

    clock means for gating the data stream from cell to cell through the character line such that the search pattern and the data stream are oppositely oriented, and a first character of the search pattern is first encountered by a first character in the data stream;

    and wherein characters in the search pattern are compared with characters in the data stream in a sequential manner, and match values are propagated along the match line in synchronism with movement of the data stream along the character line, to indicate exact and inexact matches between the search pattern and strings of characters in the data stream, and wherein inexact matches involve incorrect, missing or extra characters;

    and wherein the match logic includesmeans for loading a tolerance value onto the match line, at a selected cell position in the search pattern, for transmission onto the match line as an initial match value,a delay match register connected to receive input from the match register and to provide output on the match line to a next cell in series, wherein the presence of the delay match register synchronizes movement of match values from cell to cell with movement of the data stream through successive potentially matching positions with respect to the search pattern,means interposed between the match register and the delay match register, for selectively decrementing the match value as it is transmitted to the delay match register, whenever a non-match is detected in a cell, wherein presence of a non-zero match value on the match line is indicative of a match,means for detecting missing characters in the data stream and adjusting the match value to record a degree of mismatch with the search pattern, wherein the means for detecting missing characters generates a first alternate match value based on an assumption that a character is missing from the data stream, and discards the first alternate match if the original match value is greater, andmeans for detecting extra characters in the data stream and adjusting the match value to record a degree of mismatch with the search pattern, wherein the means for detecting extra characters generates a second alternate match value based on an assumption that there is an extra character in the data stream, and discards the second alternate match if the original match value is greater.

View all claims
  • 2 Assignments
Timeline View
Assignment View
    ×
    ×