US5553272A
Expired / Lapsed
US
⏱️ 0.0 years remaining
VLSI circuit structure for determining the edit distance between strings
Assignee: University of South Florida
•
Filing: 1994-09-30
•
Granted: 1996-09-03
•
Expires: 2014-09-30
Abstract
Abstract The edit distance between two strings a1, . . . , am and b1, . . . , bn is the minimum cost s of a sequence of editing operations (insertions, deletions and substitutions) that convert one string into the other. This invention provides VLSI circuit structure for computing the edit distance between two strings over a given alphabet. The circuit structure can perform approximate string matching for variable edit costs. More importantly, the circuit structure does not place any constraint on the lengths of the strings that can be compared. It makes use of simple basic cells and requires regular nearest-neighbor communication, which makes it suitable for VLSI implementation.
Inventors
- 👤 Nagarajan Ranganathan
- 👤 Raghu Sastry
Bibliographic Details
Application Number
—
Jurisdiction
US
Data Source
google_patents
Last Synchronized
2026-11-08 23:40
CPC Classifications
G; G06; G06F; G06F7/00; G06F7/02; G06V; G06V10/00; G06V10/94
Claims Analysis
Total Claims: 24
Claim 1
Independent Claim
217 words
A VLSI circuit structure for use in determining an edit distance between two strings, comprising (a) a systolic array of processing elements; (b) each processing element receiving as inputs a pair of string symbols; (c) each processing element including a comparator which compares the pair of string symbols input to the processing element and outputs a signal which has a first value if the pair of string symbols match and a second value if the pair of the string symbols do not match; (d) each processing element further including a difference computation module which receives difference values associated with the pair of string symbols input to the processing element and also receives the output of the comparator, said difference computation module having stored therein editing costs for predetermined editing operations associated with the string symbols, said difference computation module producing a pair of outputs for the pair of string symbols, each of the outputs comprising a new difference value related to the editing cost for the pair of string symbols that was input and compared by the comparator, and (e) each processing element producing a pair of outputs, each of which comprises one string symbol of the pair of string symbols and the new difference value related to the editing cost for the pair of string symbols.
Claim 2
Dependent Claim
217 words
A VLSI circuit structure for use in determining an edit distance between two strings, comprising (a) a systolic array of processing elements; (b) each processing element receiving as inputs a pair of string symbols; (c) each processing element including a comparator which compares the pair of string symbols input to the processing element and outputs a signal which has a first value if the pair of string symbols match and a second value if the pair of the string symbols do not match; (d) each processing element further including a difference computation module which receives difference values associated with the pair of string symbols input to the processing element and also receives the output of the comparator, said difference computation module having stored therein editing costs for predetermined editing operations associated with the string symbols, said difference computation module producing a pair of outputs for the pair of string symbols, each of the outputs comprising a new difference value related to the editing cost for the pair of string symbols that was input and compared by the comparator, and (e) each processing element producing a pair of outputs, each of which comprises one string symbol of the pair of string symbols and the new difference value related to the editing cost for the pair of string symbols.
Claim 3
Dependent Claim
94 words
A VLSI circuit structure as defined in claim 1, wherein the stystolic array of processing elements is designed to compute a distance matrix, each matrix element of which is represented by a pair of difference values and the left and top boundaries of which comprise accumulated edit values, each difference value representing the difference between a matrix element and its left and top neighbors, and wherein each difference value has a range from ±max (I,D), where I and D are insertion and deletion cost values stored in the computation modules of the processing elements.
Claim 4
Dependent Claim
194 words
A VLSI circuit structure as defined in claim 2, wherein the systolic array of processing elements is designed such that a processing element receives inputs from and direct outputs to processing elements on its opposite sides, the difference computation module of a processing element comprising a three-way minimum comparator which receives the 1 or 0 output from the comparator of the processing element and a pair of difference value inputs (left in , right in ) from the processing elements on the left and right sides of the processing element, and directs difference value outputs (left out , right out ) to the processing elements on the left and right sides of the processing element; the pair of difference value outputs (left out , right out ) being determined by the three-way minimum comparator as follows: right.sub.out =min(left.sub.in +I, right.sub.in +D, dia)-right.sub.in left.sub.out =min(left.sub.in +I, right.sub.in +D, dia)-left.sub.in Where dia=0 if the output of the comparator is 1 dia=S if the output of the comparator is 0 S=substitution cost value stored in the difference computation module D=deletion cost value stored in the difference computation module I=insertion cost value stored in the difference computation module.
Claim 5
Dependent Claim
29 words
A VLSI circuit structure according to claim 3 wherein said outputs of said processing elements comprise strings of string symbols with new difference values interleaved between the string symbols.
Claim 6
Dependent Claim
34 words
A VLSI circuit structure according to claim 4 further comprising an accumulator in circuit communication with one of said processing elements, said accumulator accumulating a value having a larger bit-width than the difference values.
Claim 7
Dependent Claim
34 words
A VLSI circuit structure according to claim 3 further comprising an accumulator in circuit communication with one of said processing elements, said accumulator accumulating a value having a larger bit-width than the difference values.
Claim 8
Dependent Claim
29 words
A VLSI circuit structure according to claim 2 wherein said outputs of said processing elements comprise strings of string symbols with new difference values interleaved between the string symbols.
Claim 9
Dependent Claim
34 words
A VLSI circuit structure according to claim 7 further comprising an accumulator in circuit communication with one of said processing elements, said accumulator accumulating a value having a larger bit-width than the difference values.
Claim 10
Dependent Claim
34 words
A VLSI circuit structure according to claim 2 further comprising an accumulator in circuit communication with one of said processing elements, said accumulator accumulating a value having a larger bit-width than the difference values.
Claim 11
Dependent Claim
29 words
A VLSI circuit structure according to claim 1 wherein said outputs of said processing elements comprise strings of string symbols with new difference values interleaved between the string symbols.
Claim 12
Dependent Claim
34 words
A VLSI circuit structure according to claim 10 further comprising an accumulator in circuit communication with one of said processing elements, said accumulator accumulating a value having a larger bit-width than the difference values.
Claim 13
Dependent Claim
34 words
A VLSI circuit structure according to claim 1 further comprising an accumulator in circuit communication with one of said processing elements, said accumulator accumulating a value having a larger bit-width than the difference values.
Claim 14
Dependent Claim
301 words
A circuit structure for use in determining an edit distance between a first string of string symbols and a second string of string symbols, comprising: (a) a linear systolic array of processing elements having a first end processing element and a second end processing element, the first string of string symbols being input into said linear systolic array at said first end processing element and the second string of string symbols being input into said linear systolic array at said second end processing element; (b) each processing element receiving as inputs string symbols with at least one value interleaved between the string symbols; (c) each processing element including a comparator which compares at least a pair of the string symbols input to the processing element and generates an output signal which has a first value if the pair of the string symbols match and a second value if the pair of the string symbols do not match; (d) each processing element further including a difference computation module which receives the at least one value interleaved between the string symbols input to the processing element and also receives a signal associated with the output signal of the comparator; said difference computation module having stored therein editing costs for predetermined editing operations associated with the string symbols; said difference computation module producing a pair of outputs for each pair of the string symbols, each of the outputs comprising a new scaled value related to the editing cost for the pair of the string symbols that was input and compared by the comparator; and (e) each processing element generating a pair of outputs, each of which comprises one string symbol of the pair of the string symbols and the new scaled value related to the editing cost for the pair of the string symbols.
Claim 15
Dependent Claim
301 words
A circuit structure for use in determining an edit distance between a first string of string symbols and a second string of string symbols, comprising: (a) a linear systolic array of processing elements having a first end processing element and a second end processing element, the first string of string symbols being input into said linear systolic array at said first end processing element and the second string of string symbols being input into said linear systolic array at said second end processing element; (b) each processing element receiving as inputs string symbols with at least one value interleaved between the string symbols; (c) each processing element including a comparator which compares at least a pair of the string symbols input to the processing element and generates an output signal which has a first value if the pair of the string symbols match and a second value if the pair of the string symbols do not match; (d) each processing element further including a difference computation module which receives the at least one value interleaved between the string symbols input to the processing element and also receives a signal associated with the output signal of the comparator; said difference computation module having stored therein editing costs for predetermined editing operations associated with the string symbols; said difference computation module producing a pair of outputs for each pair of the string symbols, each of the outputs comprising a new scaled value related to the editing cost for the pair of the string symbols that was input and compared by the comparator; and (e) each processing element generating a pair of outputs, each of which comprises one string symbol of the pair of the string symbols and the new scaled value related to the editing cost for the pair of the string symbols.
Claim 16
Dependent Claim
89 words
A circuit structure according to claim 13, wherein said linear systolic array of processing elements computes a distance matrix, each matrix element of which is represented by a pair of difference values and the left and top boundaries of which comprise accumulated edit values, each difference value representing the difference between a matrix element and its left and top neighbors, and wherein each difference value has a range from±max (I,D), where I and D are insertion and deletion cost values stored in the computation modules of the processing elements.
Claim 17
Dependent Claim
159 words
A circuit structure according to claim 14, said difference computation modules comprising a three-way minimum comparator which receives a signal associated with the output signal of the comparator and a pair of difference value inputs (left in , right in ) from the processing elements on the left and right sides of the processing element, and directs difference value outputs (left out , right out ) to the processing elements on the left and right sides of the processing element; the pair of difference value outputs (left out , right out ) being determined by the three-way minimum comparator as follows: right.sub.out =min(left.sub.in +I, right.sub.in +D, dia)-right.sub.in left.sub.out =min(left.sub.in +I, right.sub.in +D, dia)-left.sub.in Where dia=0 if the output of the comparator is 1 dia=S if the output of the comparator is 0 S=substitution cost value stored in the difference computation module D=deletion cost value stored in the difference computation module I=insertion cost value stored in the difference computation module.
Claim 18
Dependent Claim
34 words
A circuit structure according to claim 15 further comprising an accumulator in circuit communication with one of said end processing elements, said accumulator accumulating a value having a larger bit-width than the difference values.
Claim 19
Dependent Claim
25 words
A circuit structure according to claim 13 wherein said outputs comprise strings of string symbols with the new scaled values interleaved between the string symbols.
Claim 20
Dependent Claim
35 words
A circuit structure according to claim 13 further comprising an accumulator in circuit communication with one of said end processing elements, said accumulator accumulating a value having a larger bit-width than the new scaled values.
Claim 21
Dependent Claim
18 words
A circuit structure according to claim 13 wherein said values interleaved between the string symbols comprise difference values.
Claim 22
Dependent Claim
25 words
A circuit structure according to claim 19 wherein said outputs comprise strings of string symbols with the new scaled values interleaved between the string symbols.
Claim 23
Dependent Claim
34 words
A circuit structure according to claim 20 further comprising an accumulator in circuit communication with one of said end processing elements, said accumulator accumulating a value having a larger bit-width than the difference values.
Claim 24
Dependent Claim
19 words
A circuit structure according to claim 13 wherein said values interleaved between the string symbols consist of difference values.
References Cited (Backward Citations)
US4450520A
Cited
US4979101A
Cited
US4760523A
Cited
US4698751A
Cited
US4845610A
Cited
US5051947A
Cited
US4992933A
Cited
US4958377A
Cited
US4835775A
Cited
US4958348A
Cited
US5377349A
Cited
US5329405A
Cited
US5008818A
Cited
US5157671A
Cited
US5276741A
Cited
US5179378A
Cited
US5440753A
Cited
USPTO Annuity & Maintenance Windows
| Annuity Stage | Window Opens | Payment Deadline | Surcharge Period Until | Estimated Fee | Status |
|---|---|---|---|---|---|
| 3.5 Years (Year 4) | 1999-09-03 | 2000-03-04 | 2000-09-03 | $2000.00 | Window Closed / Lapsed |
| 7.5 Years (Year 8) | 2003-09-03 | 2004-03-04 | 2004-09-03 | $3760.00 | Window Closed / Lapsed |
| 11.5 Years (Year 12) | 2007-09-03 | 2008-03-04 | 2008-09-03 | $7700.00 | Window Closed / Lapsed |