DE3545125C2 - - Google Patents
Info
- Publication number
- DE3545125C2 DE3545125C2 DE3545125A DE3545125A DE3545125C2 DE 3545125 C2 DE3545125 C2 DE 3545125C2 DE 3545125 A DE3545125 A DE 3545125A DE 3545125 A DE3545125 A DE 3545125A DE 3545125 C2 DE3545125 C2 DE 3545125C2
- Authority
- DE
- Germany
- Prior art keywords
- input
- memory
- signal
- string
- memory cell
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Expired
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F7/00—Methods or arrangements for processing data by operating upon the order or content of the data handled
- G06F7/02—Comparing digital values
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/90—Details of database functions independent of the retrieved data types
- G06F16/903—Querying
- G06F16/90335—Query processing
- G06F16/90344—Query processing by using string matching techniques
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Physics & Mathematics (AREA)
- Databases & Information Systems (AREA)
- General Engineering & Computer Science (AREA)
- Data Mining & Analysis (AREA)
- Computational Linguistics (AREA)
- Computational Mathematics (AREA)
- Mathematical Analysis (AREA)
- Mathematical Optimization (AREA)
- Pure & Applied Mathematics (AREA)
- Compression, Expansion, Code Conversion, And Decoders (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Description
Die Erfindung betrifft einen Zeichenfolgen-Komparator zum
Aufsuchen der Adresse einer gespeicherten Zeichenfolge, deren Inhalt im
wesentlichen dem einer eingegebenen Referenzfolge entspricht.
Zeichenfolgen-Komparatoren werden vielfältig verwendet,
beispielsweise zum Aussortieren spezifischer Folgen
in Bildmuster- bzw. Zeichenerkennungssystemen, zum
Aussortieren von Schlüsselworten aus in Wortprozessoren
untergebrachten Texten, als Hilfe für Sprachübersetzungen,
zum Dekodieren kodierter Texte, zum Aufbau
nicht strukturierter Datenbanken mit Bildern (pictures),
gespeicherten Duplikaten oder Abbildungen
(images), Mustern, Texten usw. Mit anderen Worten,
Zeichenfolgen-Komparatoren sind für "intelligente"
Informationsverarbeitung unbedingt notwendig.
Im allgemeinen wird der Vergleich von
Zeichenfolgen mit Hilfe sequentieller Programmverarbeitung
unter Verwendung allgemein einsetzbarer Computer
ausgeführt. Die Bearbeitung ist daher sehr zeitaufwendig,
so daß der Vergleich von Zeichenfolgen auf
Einzelbearbeitungen beschränkt ist. Beispielsweise
sind für den Nachweis einer Folge von n Zeichen oder
Buchstaben in einem Text aus m Zeichen n(m - n + 1) Vergleiche
nötig. Um ein Folge der Länge n = 10³ in einem
Text mit der Gesamtlänge m = 10⁹, der auf einer Magnetscheibe
oder auf einer optischen Speicherscheibe gespeichert
ist, herauszufinden, sind daher 10¹² Vergleiche
nötig. Es ist leicht ersichtlich, daß es fast unrealistisch
ist, eine gewünschte Information aus einer großen
Menge von Informationen, beispielsweise von Texten,
Abbildungen, Bildern oder Stimmen usw. herauszufinden.
Entsprechend ist das Wiederauffinden von Informationen
in einem großen Informationsvorrat
auf einige spezielle Fälle beschränkt, beispielsweise
auf das Wiederauffinden mit Hilfe von vorher
ausgewählten Schlüsselworten oder das Wiederauffinden
strukturierter Daten in einer Tabelle. Desweiteren ist
die Verarbeitungszeit bei "flexiblem"
Wiederauffinden sehr lang, d. h. beim Wiederauffinden
von Zeichenfolgen, die der Referenzfolge
gleichen oder beim Auffinden der Referenzfolge selbst.
Zum besseren Verständnis der Erfindung werden im folgenden
die Probleme beim Vergleich von Zeichenfolgen
unter Bezugnahme auf die Fig. im einzelnen
erläutert.
Fig. 10 zeigt ein Beispiel für einen englischen Text,
wie er für den Zeichenfolgen-Vergleich verwendet wird.
Zur Vereinfachung der Zeichnung ist nur der Anfang des
Textes dargestellt. Ein solcher Text ist in einem Datenspeicher
eines Wortprozessors gespeichert. Ein Zeichenfolgen-
Komparator soll direkt gewünschte Zeichenfolgen
im Text mit Hilfe von Schlüsselworten auffinden.
Um beispielsweise festzustellen, ob der in Fig. 10
gezeigte Text Zeichenfolgen wie "memory" oder "bubble"
enthält, müssen nicht nur Zeichenfolgen wieder aufgefunden
werden, die mit den Referenzfolgen identisch
sind, sondern auch solche, deren Zeichenfolge zumindest
teilweise mit der Referenzfolge übereinstimmt. Zum
Wiederauslesen verwendete Zeichenfolgen lauten beispielsweise
"memory", "memories", "bubble" oder
"bubbles". Ein solcher Vergleich zwischen den Referenzfolgen
und dem Orginaltext ist sehr zeitaufwendig, wenn
er mit einem programmgesteuerten Computer herkömmlicher
Art ausgeführt wird.
Ein auf einer DIN-A4-Seite untergebrachter durchschnittlicher
englischer Text enthält etwa 3000 Zeichen
pro Seite inklusive der Zwischenräume zwischen
den Worten. Die Referenzfolgen "memory" und "bubble"
bestehen beide aus 6 Zeichen. Für einen Vergleich
zwischen einer Folge von 6 Buchstaben und einer Folge
von 3000 Zeichen sind etwa so viele Vergleiche nötig
wie das Produkt der beiden Zahlen ergibt. Selbst wenn
ein Zeichenvergleich in einem Mikroprozessor nur 1 µ
sec dauert, so beträgt die gesamte Wiederauffindungszeit
für jede Referenzfolge 18 msec pro Seite.
In Wirklichkeit beträgt die Anzahl von in einem zu
durchsuchenden Text vorhandenen Zeichen etwa 10⁹, wobei
eine Referenzfolge länger als 100 Zeichen lang sein
kann. Darüber hinaus kann die Anzahl der Referenzfolgen
einige Zehn betragen. In einem solchen Fall dauert
ein Vergleich mehrere hundert Stunden. Es ist jedoch
praktisch unmöglich einen solchen Vergleich durchzuführen.
Daher wird praktisch aus gegebenen Referenzfolgen
zunächst ein Schlüsselwort manuell extrahiert
und dann die Vergleiche für das Schlüsselwort mit Hilfe
eines Computers ausgeführt.
Bei einem aus der DE-AS 25 38 401 bekannten Zeichenfolgen-
Komparator wird die zu untersuchende Zeichenfolge
mehrfach und jeweils relativ zueinander verschoben
in verschiedene Zeilen eines Assoziativspeichers
so eingespeichert, daß die gesamte Zeichenfolge
durch die Suchmaske abgedeckt werden kann. Dieser
Zeichenfolgen-Komparator ist jedoch nur für relativ
kurze Folgen konzipiert, bei denen die zu untersuchende
Zeichenfolge etwa 8 bis 10 Zeichen, die Referenzfolge
etwa 1 bis 3 Zeichen lang sind. Der apparative Aufwand
und der Zeichenaufwand sind jedoch direkt mit den Folgenlängen
verknüpft, und dementsprechend ist dieser
Zeichenfolgen-Komparator für die Untersuchung von
längeren Texten nicht geeignet.
Der Erfindung liegt die Aufgabe zugrunde einen Zeichenfolgen-
Komparator und ein Vergleichsverfahren zu schaffen, mit
dem "flexibel" in kurzer Zeit jede gewünschte Zeichenfolge
in nicht strukturierten Zeichenfolgen wie Texten,
Abbildungen (images), Mustern oder Bildern (pictures)
ausgelesen bzw. extrahiert werden kann.
Die Lösung dieser Aufgabe erfolgt durch die im Anspruch 1 angegebenen
Merkmale. Die Unteransprüche betreffen vorteilhafte Ausgestaltungen der
Erfindung.
Bei dem erfindungsgemäßen Zeichenfolgen-
Komparator kann die Länge der Referenzfolge
beliebig festgelegt werden, und er ist preisgünstig
herstellbar.
Ausführungsformen der Erfindung werden anhand der beigefügten Zeichnungen
erläutert.
Es zeigt:
Fig. 1 ein Blockdiagramm eines Ausführungsbeispiels des
erfindungsgemäßen Zeichenfolgen-Komparators;
Fig. 2 die Darstellung eines im Speicher eines Zeichenfolgen-
Komparators gemäß Fig. 1 verwendeten Speichermusters;
Fig. 3 ein Blockdiagramm eines Ausführungsbeispiels
eines in Fig. 1 dargestellten Zeilen-Selektors;
Fig. 4 ein Blockdiagramm eines Ausführungsbeispiels
des in Fig. 1 dargestellten Spalten-Selektors;
Fig. 5 ein Blockdiagramm eines Ausführungsbeispiels
des in Fig. 1 dargestellten Schreibdaten-Generators;
Fig. 6 ein Blockdiagramm eines weiteren Ausführungsbeispiels
des in Fig. 1 dargestellten Schreibdaten-
Generators;
Fig. 7 ein Blockdiagramm eines weiteren Ausführungsbeispiels
des erfindungsgemäßen Zeichenfolgen-Komparators;
Fig. 8 ein Blockdiagramm eines Ausführensbeispiels
des in Fig. 7 dargestellten Zeilen-Selektors;
Fig. 9 ein Blockdiagramm eines weiteren Ausführungsbeispiels
des erfindungsgemäßen Zeichenfolgen-Komparators;
und
Fig. 10 ein Beispiel einer wieder aufzufindenden Zeichenfolge.
Fig. 1 zeigt ein erstes Ausführungsbeispiel des erfindungsgemäßen
Zeichenfolgen-Komparators.
Der dargestellte Zeichenfolgen-Komparator umfaßt eine
Speicherzellen-Matrix und hat im wesentlichen zwei
Grundfunktionen, nämlich Datenspeicherung und Datenvergleich.
Entsprechend einem Betriebsart-Signal führt
der Zeichenfolgen-Komparator entweder die Speicherung
oder den Vergleich aus. Im Speicherbetrieb empfängt der
Zeichenfolgen-Komparator Eingangsdaten sowie eine Speicheradresse
und schreibt die Eingangsdaten in eine
Spalte der Speicherzellen-Matrix ein, die aufgrund
des Speicheradresse ausgewählt wurde. Als Daten können
beispielsweise ein Text, ein Abbild (image), ein Bild
(picture) oder eine Stimme, die jeweils lange Speicherfolgen
bilden, verarbeitet werden. Solche Daten werden
kodiert und dann sukzessive als Eingangsdaten eingegeben.
Andererseits empfängt der Zeichenfolgen-Komparator
im Vergleichsbetrieb eine Referenzfolge und liest alle
in einer Zeile der Speicherzellen-Matrix liegenden
Speicherzellen aus, die aufgrund der Referenzfolge
vorgegeben sind.
Für diesen Zweck weist der Speicherfolgen-Komparator
eine aus einer großen Anzahl von in Matrixform angeordneten
Speicherzellen zusammengesetzte Speichermatrix
110 auf, die über eine Schreibimpuls-Leitung 104
Schreibsynchronisierungsimpulse empfangen kann. Wort-
oder Zeilenleitungen der Speichermatrix 110 sind einzeln
bzw. in 1 : 1-Relation mit Zeilenwähl-Leitungen 121
eines Zeilen-Selektors 120 verbunden, der sowohl über
einen Datenbus 101 gelieferte Daten als auch den Inhalt
155 eines Zählers 150 als Eingangsdaten als auch ein
über eine Leitung 103 als Steuersignal zugeführtes
Betriebsart-Signal empfangen kann. Die Speichermatrix
110 weist außerdem Bit- oder Spaltenleitungen auf,
die einzeln mit Spaltenwähl-Leitungen 131 eines Spalten-
Selektors 130 verbunden sind, der sowohl das Betriebsarten-
Signal über die Leitung 103 als auch eine Speicheradresse
über einen Adressenbus 132 empfangen kann.
Zusätzlich ist die Speichermatrix 110 mit einem
Daten-Schreib-Generatur 140 verbunden, der
über den Datenbus 101 Eingangsdaten empfängt und selektiv
Daten-Schreib-Leitungen 141
aktiviert, die mit den Zeilenwähl-
Leitungen 121 der Speichermatrix 110 verbunden sind.
Darüber hinaus sind die Spaltenwähl-
Leitungen 131 der Speichermatrix 110 jeweils über
Ausleseleitungen 111 mit einem Eingang von parallel
in einer UND-Gatter-Gruppe 170 angeordneten UND-Gattern
verbunden. Der andere Eingang eines jeden UND-Gatters
ist mit dem Ausgang eines entsprechenden, in einer
Schalter-Gruppe 160 angeordneten Schalters verbunden.
Zwei Eingänge eines jeden Schalters sind jeweils mit
den Ausgängen zweier benachbarter in einer Registergruppe
180 angeordneten Register verbunden, um den jeweiligen
Eingangswert in Übereinstimmung mit einem
Shift-Signal 165 wahlweise auszugeben. Der Eingang
eines jeden Registers ist mit dem Ausgang des
entsprechenden UND-Gatters verbunden, um das Ergebnis
der logischen Funktion des UND-Gatters zu empfangen
und um seinen Inhalt synchron mit jedem in Form eines
negativen Impulses anliegenden Taktsignals 152 auf
den neuesten Stand zu bringen. Der Ausgang eines jeden
Registers der Registergruppe 180 ist mit einem Kodierer
190 verbunden. Dieser weist eine Koinzidenzsignal-Leitung
191 sowie einen Ausgangsdatenbus 192 zur Abgabe
der Vergleichsadresse auf.
In diesem speziellen Fall ist die Speichermatrix 110
mit Hilfe konventioneller Speicherzellen aufgebaut,
auf die in Übereinstimmung mit der Adresse der fraglichen
Daten zugegriffen werden kann. Die Eingangsdaten
werden in jeder Spalte der Speichermatrix 110 gespeichert.
In diesem Ausführungsbeispiel kann die Speichermatrix
110 N Folgen von Zeichen speichern, wobei jede
Folge maximal M Elemente aus Zeichen mit einer Länge
von J × K Bits aufweist. Wenn jedes Zeichen in K Teilen
mit einer Länge von J Bits als Teileingangsdaten über
den Datenbus 101 eingegeben wird, kann die Speichermatrix
110 aus Speicherzellen aufgebaut werden, die
matrixförmig aus 2 J × K × M Zeilen und N Spalten aufgebaut
ist. Mit anderen Worten, die Speichermatrix 110
hat eine Speicherkapazität von 2 J × K × M Worten aus N
Bits. Daher kann die Speichermatrix 110 beispielsweise
aus K × M Blocks zusammengesetzt sein, die jeweils aus
2 J Zeilen und N Spalten von Speicherzellen bestehen und
beispielsweise eine Kapazität von 2 J Worten à N Bits
aufweisen.
In diesem Fall ist die Anzahl der Bits des Zählers
150, der einen der Blocks bezeichnet bzw. ansteuert,
größer als log₂ (K × M). Die Bit-Zahl der Registrierungsadresse
132 und die der Vergleichsadresse 192,
die beide Spalten der Speichermatrix 110 ansteuern,
beträgt jeweils log₂ N.
Der Zeichenfolgen-Komparator kann je nach Auswahl der
Werte für J, K, M und N verschieden aufgebaut werden.
Z. B. soll eine Folge aus alphanumerischen Zeichen,
japanischen Katakana-Zeichen usw. bestehen, wobei jedes
Zeichen in einem 8-Bit-US-ASCII-Code dargestellt und
über den Eingangs-Datenbus 101 in zwei Schritten eingegeben
wird: Zunächst die vier höchstwertigen Bits und
dann die vier geringstwertigen Bits. Das bedeutet, daß
J = 4 und K = 2 sind. Wenn M (die maximale Länge einer
in einer Spalte speicherbaren Zeichenfolge) mit 8 und
die Anzahl Speicherzellen in der Speichermatrix 110
mit 1M Bit angenommen werden, beträgt die Anzahl der
Spalten N = 4096. Die Bit-Anzahl des Zählers 150, der
Speicheradresse 132 und der Vergleichsadresse 192 beträgt
entsprechend 4 Bits, 12 Bits und 12 Bits. Die
Anzahl der Speicherblocks beträgt 16 und die Wortanzahl
in jedem Block ebenfalls 16. Insgesamt kann der Speicher
mit einer Speicherkapazität von 256 Worten 4096
Bits 4096 Folgen speichern, wobei jede Folge maximal
aus 8 Zeichen zusammengesetzt ist.
Im folgenden sollen anhand von Fig. 2 der Speicherbetrieb
und der Vergleichsbetrieb im einzelnen erklärt
werden.
Fig. 2 zeigt den Inhalt der Speichermatrix 110. In
dieser Fig. ist als Beispiel eine Zeichenfolge "RAM"
in der Spalte J oder an der Speicheradresse J der Speichermatrix
110 gespeichert. Jeder Buchstabe bzw. jedes
Zeichen der Eingabefolge, die in 8-Bit-ASCII-Code dargestellt
ist, ist in zwei Teile aufgespalten, nämlich
die vier höchstwertigen und die vier niedrigstwertigen
Bits, die dann in zwei verschiedenen Speicherblocks
gespeichert werden. Die Folge "RAM" ist im ASCII-Code
als "52, 41, 4 D" in Hexadezimal-Notierung dargestellt.
Die in ASCII-Code dargestellte Folge ist in zwei Teildatenstücke
aufgespalten, die jeweils aus 4 Bits bestehen
und jeweils in einer Spalte eines Speicherblocks
so gespeichert sind, daß in jedem Block "1" in nur
einer durch die Teildaten spezifizierten Reihe steht.
In diesem Beispiel ist "1" in den 0ten bis 5ten
Blocks jeweils in der 5ten, 2ten, 4ten, 1ten, 4ten
und Dten Reihe gespeichert. In den anderen Reihen ist
"0" gespeichert. Insgesamt ist jedes Zeichen im ASCII-
Code in zwei aufeinanderfolgenden Blocks gespeichert.
Im folgenden wird der Speicherbetrieb unter der Annahme
erläutert, daß die Folge "RAM" unter einer Adresse
J in der Speichermatrix 110 gespeichert ist. Wenn das
Betriebsart-Signal auf der Leitung 103 einen logischen
Wert "1" annimmt, wird der Zeichenfolgen-Komparator
in Speicherbetrieb gebracht. Als Antwort auf das Betriebsart-
Signal 103 mit "1" dekodiert der Spalten-
Selektor 130 die Adresseninformation, die die Adresse
"J" ergibt und über dem Adressenbus 132 geliefert wird.
Der Spalten-Selektor 130 selektiert die J te Spaltenwähl-
Leitung 131. Zusätzlich wird das Anfangs-Setz-
Signal 151 an den Zähler 150 geleitet, um seinen Zählerstand
bzw. -inhalt 155 zu löschen. Als Antwort auf
das Betriebsart-Signal 103 "1" und entsprechend dem
gelöschten Zählerinhalt 155 des Zählers 150 wählt bzw.
steuert der Zeilenselektor 120 den 0ten Block der
Speichermatrix 110 an und aktiviert parallel alle Zeilenwähl-
Leitungen 121 im 0ten Speicherblock.
Wie schon dargestellt, wird die Folge "RAM" im ASCII-
Code mit "52, 41, 4 D" wiedergegeben und jedes Zeichen
in zwei Teildatenelemente aufgespalten, die vier höchstwertigen
und die vier geringstwertigsten Bits. Insbesondere
die Eingangsdaten 110 setzen sich aus einer Folge
von Teildatenelementen "5", "2", "4", "1", "4" und
"D" zusammen. Auf diese Weise empfängt der Daten-
Schreib-Generator 140 über den Datenbus 101 zugeleitete
Eingangsdaten, dekodiert diese und liefert dann die
dekodierten Daten an die Daten-Schreib-Leitungen 141.
Speziell aktiviert der Daten-Schreib-Generator 140
zunächst nur eine Zeile eines jeden Blocks der Speichermatrix
110, der mit dem Wert "5" in Hexadezimal-Notierung
über die Eingangsdaten 101 bestimmt wird. Wie
sich aus Fig. 2 ergibt, wird auf diese Weise synchron
mit dem Schreibimpuls 104 eine "1" gespeichert und zwar
in der 5ten Zeile, was durch das aus 4 Bits bestehenden
und eine "5" in Hexadezimal-Notierung bedeutende
Eingangsteilsignal 101 bestimmt wird, in der J ten
Spalte, was durch die Speicheradresse 132 bestimmt
wird, im 0ten Block, was durch Zähler 150 über den
Block-Zeilen-Selektor bestimmt wird. Wenn der Schreibvorgang
der ersten Teilinformation beendet ist, wird der Inhalt
des Zählers 150 mit dem Taktsignal 152 versorgt und um
"1" erhöht, so daß der Zähler dann den ersten Block des
Speichers 110 zum Speichern der nächsten Teilinformation
"2" bestimmt.
Um die gesamte Folge "RAM" zu speichern, wird der oben
beschriebene Schreibvorgang fünfmal für die übrige
Teildatenfolge "2", "4", "1", "4" und "D" wiederholt.
Nach Beendigung aller Operationen sind die Eingangsdaten
in der J ten Spalte des Speichers 110 - wie in
Fig. 2 dargestellt - gespeichert.
In diesem Beispiel können maximal 8 Zeichen in jeder
Spalte des Speichers 110 gespeichert werden. Um eine
Folge von mehr als 8 Zeichen zu speichern, werden die
über die ersten 8 hinausgehenden Zeichen in der benachbarten
Spalte gespeichert, indem die Speicheradresse
132 erhöht wird. Auf diese Weise kann eine Folge von
beliebiger Zeichenlänge gespeichert werden.
Als nächstes wird der Vergleichsbetrieb durch die Eingabe
von "RAM" als Referenzfolge beschrieben, während
die gleiche Folge in der J ten Spalte des Speichers
110 gespeichert ist. Zunächst wird "0" als ein Betriebswahl-
Signal 103 zur Festlegung des Vergleichsbetriebs
abgegeben. Dann aktiviert der Zeilen-Selektor 120
eine Zeilenwähl-Leitung 121, die durch die Eingangsdaten
101 bestimmt ist, in dem Block, der von dem Signal
155 des Zählers 150 ausgewählt ist. Andererseits treibt
der Spalten-Selektor 130 alle Spaltenwähl-Leitungen
131 parallel.
Der Zähler 150 gibt aus seiner interen Schaltung ein
Carry- bzw. Übertragssignal 165 ab, wenn der Inhalt des
Zählers 0 ist. In diesem Beispiel wird das Übertragssignal
165 jeweils für 16 Eingangsteildaten abgegeben,
weil der Speicher 110 aus 16 Blocks zusammengesetzt ist
und die Bit-Anzahl des Zählers 150 4 Bits beträgt.
Das Übertragssignal 165 wird an den Steuereingang eines
jeden Schalters der Schaltergruppe 160 abgegeben. Jeder
Schalter wählt den A-Eingang, wenn das Übertragssignal
165 angelegt wird. An den A-Eingang des 0ten Schalters
ganz links wird immer "1" angelegt. Die A-Eingänge der
anderen Schalter sind mit dem Ausgang des Registers 180
der jeweils links anschließenden Spalte und der B-Eingang
eines jeden Schalters ist mit dem Ausgang des
Registers 180 jeweils derselben Spalte verbunden.
Gleichzeitig mit dem Anlegen des Betriebsart-Signals
103 wird der Zähler 150 gelöscht und alle Register
180 werden durch das Anfangs-Setz-Signal 151 gesetzt.
Andererseits wird eine Folge von Teildatenelementen
der Referenzfolge synchron mit einem negativem Taktimpuls-
Signal 152 eingegeben. In diesem Beispiel werden
die Teildatenelemente der Folge "RAM", d. h., "5", "2",
"4", "1", "4" und "D", nacheinander über den Eingangsdatenbus
101 angelegt. Der Inhalt 155 des Zählers 150
wird bei jedem Taktsignal 152 um "1" erhöht. Auf diese
Weise aktiviert der Zeilen-Selektor 120 nacheinander die
5te Zeile des 0ten Blocks, die 2te Zeile des 1ten
Blocks, die 4te Zeile des 2ten Blocks, die 1. Zeile
des 3ten Blocks, die 4te Zeile des 4ten Blocks und
die Dte Zeile des 5ten Blocks. Die in den jeweiligen
auf diese Weise angesteuerten Zeilen gespeicherten
Signale werden nacheinander über die Ausleseleitung 111
synchron mit dem Taktsignal 152 für jeden Block ausgelesen.
Die ausgelesenen Signale werden dann an die UND-
Gatter-Gruppe 170 weitergeleitet.
Wenn das erste Eingangsdatenelement "5" in Hexadezimal-
Notierung in diesem eingegeben ist, wird das Übertrags-
Signal 165 an die Schalter-Gruppe 160 geleitet, so daß
alle Schalter in der Schalter-Gruppe 160 aktiviert
werden und den A-Eingang aller Schalter ausgeben. Da
alle Register der Registergruppe 180 durch das Anfangs-
Setz-Signal 151 gesetzt sind, um ein Signal mit dem
logischen Pegel "1" abzugeben, liefern in diesem Moment
alle Schalter ein Signal "1" an die UND-Gatter. Daher
wird das auf dem ersten Eingangsdatenelement 101 basierende
Auslesesignal 111 über das zugehörige UND-Gatter
170 in das Register 180 eingegeben und synchron mit
dem Taktsignal 152 gespeichert. Wie aus Fig. 2 ersichtlich,
wird "1" als Auslesesignal 111 aus der J ten
Spalte des Speichers ausgegeben.
Danach gibt jeder Schalter in der Schalter-Gruppe 160
seinen B-Eingang an das zugehörige UND-Gatter im Bereich
170 ab, da das Übertragssignal 165 nicht an die
Schalter-Gruppe 160 abgegeben wird, bis die 16te Teilinformation
eingegeben wird. Entsprechend wird das
Ergebnis des logischen Produkts jedes Auslesesignals
111 mit dem Ausgangswert des zugehörigen Speichers bzw.
Register in der Registergruppe 180 von dem zugehörigen
UND-Gatter ausgegeben und im korrespondierenden Speicher
der Registergruppe 180 synchron mit jedem Taktsignal
152 festgehalten. Wenn die Folge "RAM" eingegeben
ist, werden alle Auslesesignale 111 der J ten Spalte
bei jedem Taktsignal 152 "1" sein, und daher wird, wenn
die Eingabe der Referenzfolge "RAM" vollständig durchgeführt
ist, der Inhalt des Registers 180 entsprechend
der J ten Spalte "1" werden, während von den anderen
Registern 180 "0" ausgegeben wird.
Der Inhalt aller Register 180 wird als Vergleichsergebnissignal
181 an den Kodierer 190 weitergeleitet. Wenn
das Vergleichsergebnissignal 181 "1" einschließt, gibt
der Kodierer 190 als Ausgangssignal ein Koinzidenz-Signal
191 an eine externe Vorrichtung ab und wandelt
die Position der Spalte, die das Vergleichsergebnissignal
"1" liefert, in eine Adresse in Binärcode um. Das
Koinzidenz-Signal 191 gibt an, ob die Information,
die mit der Referenzinformation identisch ist, in dem
Speicher 110 gespeichert ist oder nicht, und die Vergleichsadresse
181 gibt die Position der Spalte an,
bei der das Vergleichssignal 191 "1" war, d. h. die
Adresse der Stelle, die die Information speichert,
die mit der Referenzinformation identisch ist. In diesem
Beispiel wird die Vergleichsadresse 192, welche
die J te Spalte des Speichers bezeichnet, ausgegeben.
Wenn eine Folge aufgespalten und in mehreren Spalten
gespeichert ist, und wenn eine Referenzfolge eine über
die Anzahl der Blocks im Speicher 110 hinausgehende
Länge aufweist, wird die Vergleichsfunktion ähnlich
wie oben beschrieben ausgeführt. In diesem Fall wird
der Zähler auf den Wert "0" zurückgestellt, wenn die
Anzahl von Teildatenelementen, die nacheinander dem
Zeilen-Selektor 120 im Laufe des Vergleichsbetriebs
zugeleitet wurden, die Anzahl der Speicherblocks übersteigt.
Dann liefert der Zähler 150 als Ausgangssignal
ein Übertragssignal 165 an jeden Schalter 160, um dessen
Ausgang mit dessen A-Eingang zu verbinden, der
mit dem unmittelbar links von der Spalte des Schalters
liegenden Register verbunden ist. Daher wird das Ergebnis
des logischen Produkts benachbarter Ausleseausgangssignale
111 des Speichers 110 in jedem Speicher 180
festgehalten. Folglich kann der Vergleich für eine
Folge beliebiger Länge ausgeführt werden, wobei die
Folge in mehreren Spalten gespeichert ist.
Bei einer mehrfachen Übereinstimmung, bei der mehrere
in dem Speicher 110 gespeicherte Informationen mit
der Referenzfolge übereinstimmen, wird das Vergleichsergebnissignal
181 "1" von mehreren Registern erzeugt.
In diesem Fall kodiert der Kodierer 190 die Position
der eine "1" enthaltenden Register in der Reihenfolge
vom Register mit dem höchsten Stellenwert zu dem mit
dem niedrigsten Stellenwert von links nach rechts.
Daher gibt der Kodierer 190 als erstes Ausgangssignal
die Vergleichsadresse 192 des Registers mit dem höchsten
Stellenwert wieder, das eine "1" enthält. Um die
übrigen Vergleichsadressen 192 auszugeben, ist, wie
in Fig. 1 mit durchbrochenen Linien dargestellt, ein
Dekoder 200 vorgesehen, der die Vergleichsadressen
192 des Kodierers 190 dekodiert und ein Rückstellsignal
an das Register 180 abgibt, das durch die geradeausgelesene
Vergleichsadresse 192 bestimmt wird. Dann
gibt der Kodierer 190 die nächste Vergleichsadresse
192 ab. Durch sequentielle Erzeugung des Rückstellsignals
bei jeder Ausgabe der Vergleichsadresse 192, werden
die übrigen Vergleichsadressen 192 nacheinander
an die externe Vorrichtung abgegeben.
Der Vergleich mittels Maskierung eines Teils jeder
Zeichenfolge kann durchgeführt werden, indem verhindert
wird, daß das Taktsignal 152 an die Register 180
weitergeleitet wird, während das Auslesesignal 111,
welches die zu maskierenden Teildaten betrifft, ausgegeben
werden.
Ein Zeichenfolge-Komparator der oben beschriebenen
Art kann unter Verwendung eines herkömmlichen Speichers
für 2 J × K × M Worte N Bits hergestellt werden. Der
Zeichenfolgen-Komparator ist in der Lage, den Vergleich
für eine Folge mit beliebiger Länge auszuführen.
Fig. 3 zeigt ein Ausführungsbeispiel des Zeilen-
Selektors 120 des Zeichenfolgen-Komparators
gemäß Fig. 1. Der dargestellte Zeilen-Selektord 120
weist einen die Eingangsdaten 101 empfangenden Zeilen-
Dekoder 310 auf sowie einen Block-Dekoder 320, der den
Inhalt 155 des Zählers 150 empfängt. Der Block-Dekoder
320 umfaßt mehrere parallele Ausgangsleitungen und wird
so betrieben, daß er eine der Ausgangsleitungen, die
durch den Inhalt 155 des Zählers 150 bestimmt wird,
treibt. Der Zeilen-Dekoder 310 umfaßt mehrere parallele
Ausgangsleitungen und wird so betrieben, daß er eine
der Ausgangsleitungen treibt, die durch die Eingangsdaten
bestimmt wird, wobei die Eingangsdaten ein Teildatenelement
einer Referenzfolge oder einer Eingangsfolge
darstellen. Die Ausgangsleitungen des Zeilen-Dekoders
310 sind jeweils mit einem von zwei Eingängen von ODER-
Gattern verbunden, die parallel angeordnet sind und
eine ODER-Gatter-Gruppe 330 bilden. Der andere Eingang
eines jeden ODER-Gatters wird mit dem Betriebswahl-
Signal 103 versorgt. Die Ausgänge aller ODER-Gatter
sind mit allen UND-Gatter-Gruppen 340 verbunden, die
alle mit jeweils einem der Speicherblocks verbunden
sind. Andererseits ist jeder Ausgang des Block-Dekoders
320 mit einer zugehörigen UND-Gatter-Gruppe 340
verbunden.
Jede der UND-Gatter-Gruppe 340 umfaßt mehrere parallel
angeordnete UND-Gatter mit zwei Eingängen. In jeder
UND-Gatter-Gruppe ist ein Eingang eines jeden UND-Gatters
mit dem Ausgang des zugehörigen ODER-Gatters in
der ODER-Gatter-Gruppe 330 verbunden; die anderen Eingängen
aller UND-Gatter sind gemeinsam mit der einen
zugehörigen Ausgangsleitung des Block-Dekoders 320
verbunden. Die Ausgänge aller UND-Gatter werden zur
zugehörigen Zeile des Speichers 110 über jede Zeilenwähl-
Leitung 121 geführt.
Im Speicherbetrieb wird eine "1" als Betriebswahlsignal
103 angelegt. Dann wird eine "1" von allen ODER-Gattern
der ODER-Gatter-Gruppe 330 an alle UND-Gatter aller
UND-Gatter-Gruppen 340 abgegeben. Andererseits aktiviert
der Block-Dekoder 320 nur eine Ausgangsleitung,
die durch den Zählerausgang 155 des Zählers 150 bestimmt
wird. Daraufhin werden alle Zeilenwähl-Leitungen
121 in einer UND-Gatter-Gruppe 340, die durch den Zählerausgang
155 bestimmt werden, parallel betrieben.
Dadurch werden alle Zeilen des spezifizierten Speicherblocks
in Dateneinschreibstellung gebracht.
Im Vergleichsbetrieb wird als Vertriebswahlsignal 103
"0" angelegt. Daher wird "1" nur von einem ODER-Gatter
in der ODER-Gatter-Gruppe 330 abgegeben, welches durch
die Eingangsdaten 101 bestimmt wird, so daß die UND-
Gatter mit der gleichen Nummer wie die entsprechende
Gattergruppe 340 ein Signal "1" an ihrem einen Eingang
empfangen. Andererseits aktiviert der Block-Dekoder 320
nur eine Ausgangsleitung, die durch den Zählerstand 155
des Zählers 150 spezifiziert wird. Auf diese Weise wird
nur eine der Zeilenwähl-Leitungen 120, die durch den
Zeilen-Dekoder 310 ausgewählt wird, in einer UND-Gatter-
Gruppe 340 getrieben, die ihrerseits durch den Zählerausgang
155 des Zählers über den Block-Dekoder 320
bestimmt wird.
Fig. 4 gibt ein Ausführungsbeispiel des Spalten-Selektors
130 des Zeichenfolgen-Komparators gemäß Fig.
1 wieder. Der Spalten-Selektor 130 umfaßt einen Dekoder
410, der die Speicheradresse 132 empfängt. Der Dekoder
hat außerdem parallele Ausgangsleitungen, die jeweils
mit einem Eingang des zugehörigen, zwei Eingänge umfassenden
ODER-Gatter in einer Gatter-Gruppe 430 verbunden
sind. Der Dekoder 410 wird so betrieben, daß er die
Eingangsadresse dekodiert, um selektiv ein Binärsignal
"1" auf einer seiner Ausgangsleitungen abzugeben, die
durch die Eingangsdaten bestimmt wird. Der Spalten-Selektor
130 weist außerdem einen Inverter 420 auf, der
einen mit der Leitung 103 verbundenen Eingang zum Empfang
des Betriebssignals sowie einen Ausgang umfaßt,
der jeweils mit den anderen Eingängen aller ODER-Gatter
in der ODER-Gatter-Gruppe 430 verbunden ist, um diese
mit dem invertierten Betriebssignal zu versorgen. Die
Ausgänge der jeweiligen ODER-Gatter der ODER-Gatter-
Gruppe 430 sind mit den jeweiligen Spaltenwähl-Leitungen
131 verbunden.
Im Speicherbetrieb wird als Betriebswahlsignal 103
eine "1" an den Inverter 420 gelegt, so daß das Binärsignal
"0" an die zweiten Eingänge aller ODER-Gatter
in der ODER-Gatter-Gruppe 430 geliefert wird. Auf diese
Weise treibt der Dekoder 410 wahlweise eine der Spaltenwähl-
Leitungen 131 an, die durch die Speicheradresse
132 ausgewählt ist, und ermöglicht es, daß die Eingangsdaten
in die wahlweise getriebene Spalte eingeschrieben
werden.
Da im Vergleichsbetrieb eine "0" als Betriebswahlsignal
an den Inverter 420 gelegt wird, liefert dieser als
Ausgangssignal eine binäre "1" an alle ODER-Gatter
in der ODER-Gatter-Gruppe 430, so daß alle Spaltenwähl-
Leitungen 131 parallel getrieben werden ohne Beeinflussung
durch die Ausgänge des Dekoders 410. Auf diese
Weise können die Daten aller Spalten des Speichers 110
parallel ausgelesen werden.
Fig. 5 zeigt ein Ausführungsbeispiel des Daten-
Schreib-Generators 140 des Zeichenfolgen-Komparators
gemäß Fig. 1. Der Daten-Schreib-Generator weist einen
Dekoder 510 mit einem Eingang auf, der mit dem Datenbus
101 verbunden ist, um die Eingangsdaten als Speicherinformation
zu empfangen. Der Dekoder 510 hat ebensoviele
Ausgänge wie es Zeilen in jedem Speicherblock gibt
und gibt jeweils das Binärsignal "1" auf einer seiner
Ausgangsleitungen ab, die durch die Eingangsdaten 110
bestimmt werden. Aus Fig. 5 ergibt sich, daß jeder Ausgang
des Dekoders 510 verzweigt ist und mit der Daten-
Schreib-Leitung 141 gleicher Nummer eines jeden Speicherblocks
verbunden ist.
Als Dekoder 510 kann auch der Zeilen-Dekoder 310 verwendet
werden, wie er beim Zeichenfolgen-Komparator gemäß
Fig. 3 Verwendung findet. Aus diesem Grund sind die
Ausgangsleitungen des Zeilen-Dekoders 310, wie in Fig.
5 dargestellt, entsprechend mit den Daten-Schreib-Leitungen
141 verbunden. Auf diese Weise kann der Zeilen-
Selektor 120 ebenfalls als Daten-Schreib-Generator
140 verwendet werden.
Fig. 6 gibt ein weiteres Ausführungsbeispiel des Daten-
Schreib-Generators 140 des Zeichenfolgen-Komparators
gemäß Fig. 1 wieder. Zusätzlich zum Dekoder 510
gemäß Fig. 5 ist eine Flip-Flop-Gruppe 610 vorgesehen.
Die Flip-Flops in der Flip-Flop-Gruppe 610 werden
durch ein Löschsignal 611 gelöscht, was in Fig. 1
nicht dargestellt ist. Die Eingangsdaten 101 bestimmen
über den Dekoder 510 ein Flip-Flop.
Der Unterschied zwischen großen und kleinen Buchstaben
des ASCII-Codes für das englische Alphabet wird durch
das sechste Bit vom niedrigstwertigen Bit aus bestimmt. Bei
der Speicherung der Eingangsdaten 101 ist es wünschenswert,
daß große und kleine Buchstaben gleich behandelt
werden. Im Englischen ändert sich bei Hauptworten im
Plural oft die Endung, und Verben werden in Abhängigkeit
vom Tempus flektiert. Wenn solche Worte den gleichen
Stamm haben und in dieselbe Gruppe eingeordnet
werden, kann eines dieser Worte die Gruppe repräsentieren,
wodurch folglich eine wesentliche Reduktion der
Spalten, die zum Speichern ähnlicher Worte gebraucht
werden, erreicht wird. In diesem Fall muß eine Vielzahl
von Teildaten in demselben Block gespeichert werden.
Für diesen Zweck ist das Flip-Flop 610 vorgesehen.
Wenn eine Vielzahl von Teildaten dem Dekoder 510
zugeleitet werden, nachdem das Löschsignal 610 an alle
Flip-Flops in der Flip-Flop-Gruppe 610 angelegt wurde,
wird die logische Summe, die eine Vielzahl von Teildatenelementen
betrifft, in der Flip-Flop-Gruppe 610
gespeichert und dann an die entsprechenden Daten-
Schreib-Leitungen 141 abgegeben.
In Fig. 7 ist ein weiteres Ausführungsbeispiel des
erfindungsgemäßen Zeichenfolgen-Komparators dargestellt.
Der Zeichenfolgen-Komparator ist in der Lage,
im Speicher gespeicherte Folge zu löschen und die
Adressen leerer Speicherbereiche auszulesen. Für diesen
Zweck ist der Zeichenfolgen-Komparator gemäß Fig.
1 zusätzlich mit einer EXKLUSIV-ODER-Gatter-Gruppe
730 ausgestattet. Darüber hinaus wurden einige Änderungen
am Speicher 110 und am Zeilen-Selektor 120 vorgesehen.
An die Stelle des Speichers 110 tritt ein erweiterter
Speicher 710, der sich aus einem, dem Speicher
110 in Fig. 1 entsprechenden Speicherteil 704 und
einem Indikator 706 zusammensetzt, der aus einer Zeile
von Speicherzellen besteht, mit deren Hilfe angegeben
wird, welche Spalte benutzt wird. Anstelle des Zeilenselektors
120 gemäß Fig. 1 wird ein erweiterter Zeilen-
Selektor 720 verwendet, der nicht nur die Zeilenwähl-
Leitungen 121 steuert, die mit dem Speicherteil
704 verbunden sind, sondern darüber hinaus eine mit
dem Indikator 706 verbundene Zeilenwähl-Leitung.
Die EXKLUSIV-ODER-Gatter-Gruppe 730 umfaßt ebensoviele
EXKLUSIV-ODER-Gatter mit je zwei Eingängen wie der
erweiterte Speicher 710 Spalten aufweist. Die ersten
Eingänge der EXKLUSIV-ODER-Gatter der EXKLUSIV-ODER-Gatter-
Gruppe 730 sind zum Empfang eines invertierten
Signals (I) 731 verbunden, während die zweiten Eingänge
jeweils mit den entsprechenden Spalten des erweiterten
Speichers 710 verbunden sind. Ein Ausgang eines jeweili
gen EXKLUSIV-ODER-Gatters 730 ist mit dem ersten Ein
gang des zugehörigen UND-Gatters in der UND-Gatter-Grup
pe 170 verbunden. Das invertierte Signal 731 wird eben
falls dem Zähler 150 zugeleitet, so daß dieser entweder
durch das Anfangs-Setz-Signal 151 oder durch das inver
tierte Signal 731 gelöscht wird. Darüber hinaus wird
ein erstes Betriebswahlsignal (M 1) 732 sowie ein zwei
tes Betriebswahl-Signal (M 2) 733 dem Zeilen-Selektor
720 zugeleitet. Das zweite Betriebswahlsignal 733 ist
ähnlich dem Betriebswahlsignal 103 im Ausführungsbei
spiel gemäß Fig. 1 und wird daher dem Spalten-Selektor
130 zugeleitet. Das erste Betriebswahlsignal 732 wird
auch an die Daten-Schreib-Leitung des Indikators 706
gelegt.
Die übrigen Elemente, wie beispielsweise der Spalten-Se
lektor 130, der Daten-Schreib-Generator 140, die Schal
tergruppe 160, und UND-Gatter-Gruppe 170, die Register-
Gruppe 180 und der Kodierer 190 können die gleichen
sein, wie bei dem Zeichenfolgen-Komparator gemäß Fig. 1.
Daher entfällt eine Beschreibung derjenigen Elemen
te, die mit denen in Fig. 1 übereinstimmen.
Der Zeichenfolgen-Komparator kann wahlweise einen der
folgenden Betriebszustände entsprechend den logischen
Werten des ersten Betriebswahlsignals (M 1) 732, des
zweiten Betriebswahlsignals (M 2) 733 und des inver
tierten Betriebsignals (I) 731 annehmen. Unter der
Verwendung der Bezeichnung der Signale als (M 1, M 2,
I) können die 5 Betriebsarten folgenderweise bezeichnet
werden:
(0, 0, 0)Vergleichsbetrieb;
(0, 1, X)Löschbetrieb;
(1, 0, 0)Anfangs-Setz-Betrieb der Registergruppe
180;
(1, 0, 1)Auslesen des Inhalts des Indikators des
erweiterten Speichers 710 und
(1, 1, 0)Speichern von Zeichenfolgen;
dabei kann "X" entweder den Wert
"1" oder "0" annehmen.
Im Speicherbetrieb werden alle Zeichenwähl-Leitungen
121 eines durch den Inhalt 155 des Zählers 150 ausge
wählten Speicherblocks parallel zusammen mit der Zei
chenwähl-Leitung 721 des Indikators 706 durch den Zei
len-Selektor 720 aktiviert, der als erstes und zweites
Betriebswahlsignal 732, 733, eine "1" empfängt. Da das
erste Betriebswahlsignal 732 an die Daten-Schreib-Lei
tung des Indikators 706 gelegt wird, wird ein Binär
signal "1", das anzeigt, daß die Spalte mit Speicherin
formation besetzt worden ist, in der Spalte des Indika
tors 706 gespeichert, die durch die Speicheradresse
132 bestimmt wird. Im Speicherteil 704 wird danach
die Folge genau wie im Speicher 110 des Zeichenfolgen-
Komparators gemäß Fig. 1 gespeichert.
Im Löschbetrieb treibt der Zeilen-Selektor 720 eben
falls die Zeilenwähl-Leitung 721 des Indikators 706.
Da jedoch das erste Betriebswahlsignal 732 "0" an die
Datenschreibleitung des Indikators 706 gelegt wird,
wird ein Binärsignal "0" in der Spalte des Indikators
706 gespeichert, die durch die Speicheradresse 132
bestimmt wird.
Mit anderen Worten besagt der Inhalt in jeder Spalte
des Indikators 706 auf Grund der binären Daten "1"
oder "0", ob die entsprechende Spalte des Speicherteils
704 eine wiederaufzubereitende Folge speichert oder
nicht.
Beim Auslesen des Inhaltes des Indikators 706 wird
zunächst das Anfangs-Setz-Signal 151 an die Register
in der Registergruppe 180 abgegeben, um deren Inhalt
auf "1" zu setzen. Danach werden drei Betriebssignale
mit den Werten (1, 0, 1) als das erste Betriebswahlsignal
732, das zweite Betriebswahlsignal 733 und als das
invertierte Betriebssignal 731 angelegt. Dann aktiviert
der Zeilenselektor 720 nur die Zeilenwählleitung 721
des Indikators 706, während der Spalten-Selektor 130
alle Spaltenwähl-Leitungen 131 parallel aktiviert. Dadurch
wird der Inhalt des Indikators 706 über die mit dem
Speicher 710 verbundenen Auslese-Leitungen 111 ausgege
ben. Die Auslesesignale 111 einer jeder Spalte werden
dann einem Eingang eines EXKLUSIV-ODER-Gatters in der
EXKLUSIV-ODER-Gatter-Gruppe 730 zugeleitet. Der andere
Eingang der EXKLUSIV-ODER-Gatter empfängt eine "1"
des invertierten Betriebssignals 731. Folglich gibt
das EXKLUSIV-ODER-Gatter das invertierte Signal des
Auslesesignals 111 des Indikators 706 ab. Dieser Aus
gangswert wird einem der Eingänge der zugehörigen UND-
Gatter in der UND-Gatter-Gruppe 170 zugeleitet. Der
andere Ausgang der UND-Gatter ist mit dem Schalter
160 verbunden. Zu diesem Zeitpunkt wird das Übertrags
signal 165 abgegeben, da der Zähler 150 durch das inver
tierte Betriebssignal 131 "1" gelöscht wird. Daraufhin
wählt jeder Schalter den A-Eingang und gibt ein Binär
signal "1" an die UND-Gatter ab.
Dadurch wird jedes Auslesesignal 111 über das UND-Gat
ter 170 synchron mit dem Taktsignal 152 in das zugehöri
ge Register 180 eingegeben und gespeichert. Die im
Register 180 gespeicherte Information ist gegenüber
der im Indikator 706 gespeicherten invertiert. Mit
anderen Worten entspricht eine im Register 180 gespei
cherte "1" einer leeren Spalte in dem Speicher 710.
Die Adresse der leeren Spalte wird über den Kodierer
190 als Vergleichsadresse 192 abgegeben, wodurch die
Adresse von Spalten angezeigt wird, in die zusätzliche
Daten gespeichert werden kann. Gleichzeitig wird das
Koinzidenzsignal 191 vom Kodierer 190 abgegeben: Sofern
es noch leere Spalten gibt, wird eine "1" abgegeben,
sonst eine "0".
Der Zeichenfolgen-Komparator ist ebenfalls in der La
ge, lange Eingabefolgen, die jeweils zur Speicherung
mehrerer Spalten benötigen, wie dies beim Zeichenfol
gen-Komparator gemäß Fig. 1 dargestellt ist. Wenn
mehrere lange aufeinanderfolgende, leere Spalten zur
Speicherung einer langen, zusätzlichen Folge nötig
sind, können leere Adressen erhalten werden, indem
ebensoviele Taktsignale 152 aufgegeben werden, wie
leere Spalten nötig sind.
Selbst wenn das Taktsignal 152 dem Zähler 150 zugelei
tet wird, gibt der Zähler 150 als Ausgangssignal wei
ter das Übertragungssignal 165 ab, weil er als inver
tiertes Signal 731 die "1" empfängt. Durch das Übertra
gungssignal 165 wählt jeder Schalter in der Schalter
gruppe 160 seinen A-Eingang und benachbarte Register
180 sind über die UND-Gatter 170 in Serie verbunden.
Wenn die Taktsignale 152 n-mal angelegt werden, wird
daher die "1" nur in den Registern 180 gespeichert,
die den Spalten entsprechen, die in der Speichermatrix
auf der linken Seite mehr als n leere Spalten hinter
einander haben. Die Adressen der Spalten werden über
den Kodierer 190 als Vergleichsadresse 192 ausgegeben.
Die Hauptadresse der in n aufeinanderfolgenden Spalten
gespeicherten Referenzfolge kann dadurch erhalten wer
den, daß n von der Vergleichsadresse 192 abgezogen
wird. Auf diese Weise kann die Speicheradresse leicht
erhalten werden, unter der eine lange Folge in mehreren
aufeinanderfolgenden Spalten gespeichert werden kann.
Auf der Basis der auf diese Weise erhaltenen Speicher
adresse kann ein Speichervorgang ähnlich dem anhand des
ersten Ausführungsbeispiels gemäß Fig. 1 erklärten
ausgeführt werden.
Im Vergleichsbetrieb werden das invertierte Signal
731 "1" und das Anfangs-Setz-Signal 151 angelegt, so
daß der Zähler 150 gelöscht wird und gleichzeitig je
des Register 180 gesetzt wird. Danach werden 3 Betriebs
signale der Werte (0, 0, 0) und das Taktsignal 152 ange
legt. Dann aktiviert der Zeilenselektor 720 die Zeilenwähl-
Leitung 721 des Indikators 706, während der Spalten-
Selektor 130 alle Spaltenwähl-Leitungen 131 aktiviert.
Dadurch wird der Inhalt des Indikators 706
über die mit dem Speicher 710 verbundenen Auslese-Lei
tungen 111 ausgegeben. Das Auslesesignal 111 einer
jeden Spalte wird dann an den einen Eingang eines jeden
EXKLUSIV-ODER-Gatters in der EXKLUSIV-ODER-Gatter-Grup
pe 710 angelegt. Der andere Eingang des EXKLUSIV-ODER-
Gatters empfängt als das invertierte Betriebssignal
731 eine "0". Folglich liefert das EXKLUSIV-ODER-Gatter
das gleiche Ausgangssignal wie das Auslesesignal 111
des Indikators 706. Dieses Ausgangssignal wird einem
Eingang der zugehörigen UND-Gatter in der UND-Gatter-
Gruppe 170 zugeleitet. Der andere Eingang des UND-Gatters
ist mit dem Schalter 160 verbunden. In diesem
Moment wird, da der Zähler 150 durch das invertierte
Betriebssignal 731 "1" gelöscht ist, das Übertragssig
nal 165 ausgegeben. Folglich wählt jeder Schalter in
der Schaltergruppe 160 den A-Eingang und gibt ein binä
res Signal "1" an das UND-Gatter ab. Dadurch wird jedes
Auslesesignal 111 synchron mit dem Taktsignal 152 über
das UND-Gatter 170 in das Register 180 eingegeben und
gespeichert. Nach allem wird "1" als Anfangswert nur
in den Registern 180 gespeichert, die den Spalten ent
sprechen, in denen eine Datenfolge gespeichert ist.
Nachdem die obengenannte Funktion ausgeführt ist, wird
der Zähler 150 durch das invertierte Signal 731 in
Form eines positiven Pulses gelöscht. Als nächstes
wird die Referenzinformation 101 synchron mit dem Takt
signal 152 als Teilinformation der Referenzfolge ange
legt, so daß der Vergleich genau wie bei dem Zeichenfol
gen-Komparator gemäß Fig. 1 ausgeführt wird.
Wie oben beschrieben, kann der Zeichenfolgen-Komparator
mit herkömmlichen Speicherzellen ausgeführt werden
und ist in der Lage, eine Folge beliebiger Länge zu
verarbeiten. Zusätzlich kann eine Übereinstimmung mit
leeren Spalten eliminiert werden, weil eine "1" als
Anfangswert nur in den Registern 180 gespeichert ist,
die den Spalten entsprechen, in denen eine Datenfolge
gespeichert ist. Ein weiterer Vorteil ist, daß der
Zeichenfolgen-Komparator keine externen Bauteile zur
Kontrolle leerer Spalten bedarf, weil die Adressen
aufeinanderfolgender leerer Spalten mit beliebiger
Länge als Vergleichsadresse 192 ausgegeben werden kann,
wodurch der Zeichenfolgen-Komparator wesentlich verein
facht wird.
Fig. 8 zeigt ein Ausführungsbeispiel des Zeilenselek
tors 720 des Zeichenfolgen-Komparators gemäß Fig. 7.
Der Zeilen-Selektor 720 umfaßt ein die Eingangsdaten
101 sowie den Inhalt 155 des Zählers 150 empfangenden
Zeilenwählteil 810, ein EXKLUSIV-ODER-Gatter 820, ein
UND-Gatter 830 sowie ein ODER-Gatter 840. Das Zeilen
wählteil 810 entspricht dem Zeilen-Selektor 120 des
Zeichenfolgen-Komparators gemäß Fig. 3. Die drei Gat
ter 820, 830 und 840 empfangen entsprechend zwei Be
triebswahlsignale 732 und 733. Der Ausgangswert des
EXKLUSIV-ODER-Gatters 820 wird invertiert und dann
weitergeleitet, um die Signaleingänge des Zeilen-Deko
ders 310 und des Block-Dekoders 320 im Zeilen-Selektor
120 freizugeben. Wenn das eingegebene Freigabesignal
"0" ist, nimmt jeder Ausgang des Zeilen-Dekoders 310
und des Block-Decoders den Wert "0" an. Das Ausgangs
signal des UND-Gatters 830 wird dem Betriebssignalein
gang 103 der ODER-Gatter-Gruppe 330 gemäß Fig. 3 zuge
leitet. Zusätzlich ist der Ausgang des ODER-Gatters
840 mit der Zeilenwähl-Leitung 721 des Indikators 706
verbunden.
Im Speicherbetrieb, bei dem sowohl der Leitung für
das erste Betriebswahlsignal 732 als auch der Leitung
für das zweite Betriebswahlsignal 733 eine "1" zugelei
tet wird, da die Freigabesignaleingänge der beiden
Dekoder 310 und 320 mit dem logischen Pegel "1" ver
sorgt werden, treibt der Zeilen-Selektor 720 parallel
die Zeilenwähl-Leitungen 121 und 721 vergleichbar zum
Speicherbetrieb des ersten Ausführungsbeispiels gemäß
Fig. 1. Im Vergleichsbetrieb, in dem "0" sowohl der
Leitung für das erste Betriebswahlsignal 732 als auch
der Leitung für das zweite Betriebswahlsignal 733 zuge
führt wird, treibt, da gleichzeitig eine "1" an den
Freigabesignaleingang der Dekoder 310 und 320 zugelei
tet wird, der Zeilen-Selektor 720 wahlweise eine Zeilen
wähl-Leitung 121, die sowohl durch den Inhalt 155 des
Zählers 150 als auch durch die Eingangsdaten bestimmt
wird, ähnlich wie im Vergleichsbetrieb des Ausführungs
beispiels gemäß Fig. 1. In anderen Situationen, bei
denen die Kombination des ersten und zweiten Betriebs
wahlsignals 732 und 733 den Wert (1, 0) oder (0, 1)annehmen,
wird nur die mit dem Indikator 706 verbundene
Zeilenwähl-Leitung 721 getrieben. Wie oben beschrieben,
können verschiedene Operationen des Zeichenfolgen-Kompa
rators ausgeführt werden durch Steuerung der beiden Be
triebssteuersignale, die für das Treiben der Zeilen
wähl-Leitungen 121 und 721 zuständig sind.
Fig. 9 zeigt ein drittes Ausführungsbeispiel des erfin
dungsgemäßen Zeichenfolgen-Komparators. Dieser Kompara
tor unterscheidet sich von dem gemäß Fig. 1 in mehre
ren Punkten:
Er enthält zwei Speicher 110, zwei Zeilen-Selektoren
120 und zwei Daten-Schreib-Generatoren 140 an Stelle
eines einzigen Zeilen-Selektors 120 und an Stelle des
einzigen Daten-Schreib-Generators 140; darüber hinaus
ist eine weitere UND-Gatter-Gruppe 910 vorgesehen zur
Bildung des logischen Produkts der Auslesesignale 111
der beiden Speicher 110. Entsprechend wird ein 8-Bit-
ASCII-Code, der in die 4 höchstwertigen Datenbits und
in die 4 niedrigstwertigen Datenbits aufgeteilt ist,
parallel in die beiden Speicher 110 eingegeben. Dies
stellt einen wesentlichen Unterschied zum Zeichenfol
gen-Komparator gemäß Fig. 1 dar, bei dem der 8-Bit-
ASCII-Code als Serie zweier 4-Bit-Teildatenelemente
aus den 4 höchstwertigen beziehungsweise den 4 niedrigst
wertigen Datenbits seriell eingegeben wird. Daher
ist der zum Vergleichen und Speichern nötige Zeitbe
darf gegenüber dem Zeichenfolge-Komparator gemäß Fig. 1
auf die Hälfte reduziert.
Es können die gleichen Speicher 110, Zeilen-Selektoren
120, Spaltenselektoren 130, Daten-Schreib-Generatoren
140, der gleiche Zähler 150, die gleiche Schaltergruppe
160, UND-Gatter-Gruppe 170, Registergruppe 180 und
der gleiche Kodierer 190 wie in Fig. 1 verwendet werden.
Die unterbrochenen Linien in der Schaltergruppe 160
und in der UND-Gatter-Gruppe 170 deuten an, daß die
Signale beide Gruppen passieren, das heißt, die Aus
gangssignale der UND-Gatter-Gruppe 910 werden in die
UND-Gatter-Gruppe 170 eingegeben, ohne in die Schalter
gruppe 160 eingegeben zu werden und die Ausgangssignale
der Registergruppen 180 werden der Schaltereinheit
160 zugeleitet, ohne der UND-Gatter-Gruppe 170 zugelei
tet zu werden.
Jedes Zeichen der gespeicherten Folgen und der Referenz
folgen wird als 8-Bit-ASCII-Code und parallel in die
Speicher 110 eingegeben, indem die Folgen in zwei 4-Bit-
Teil-Daten-Elemente aufgespalten werden, nämlich in
die vier höchstwertigen und in die vier niedrigstwerti
gen Datenbits. Die Auslesesignale 111 der jeweiligen
4-Bit-Teildaten eines jeden Speichers 110 werden in
die UND-Gatter-Gruppe 910 eingegeben und dann an die
UND-Gatter-Gruppe 170 ausgegeben. Die Ausgangswerte
der UND-Gatter-Gruppe 910 entsprechen den Auslesesigna
len 111 in Fig. 1. Die Ausgangssignale der UND-Gatter-
Gruppe 910 zeigen an, ob jedes Zeichen der gespeicher
ten Folge in den beiden Speichern identisch ist mit
der Referenzfolge, die durch Teilung in zwei Teildaten
eingegeben wurde. Das logische Produkt wird sukzessive
in jedem UND-Gatter 910 für den Ausgangswert für
jedes Zeichen der gespeicherten Zeichenfolge erzeugt.
Das Ausgangssignal des UND-Gatters wird in dem zugehöri
gen Register der Registergruppe 180 gespeichert. Das
Vergleichsergebnissignal 181, das heißt das Ausgangs
signal des Registers 180, wird über den Kodierer 190
als Vergleichsadresse 192 ausgegeben. Auf diese Weise
wird der Vergleich wie in dem Zeichenfolgen-Komparator
gemäß Fig. 1 ausgeführt.
Bei der Speicherung werden ASCII-Codes für jedes Zei
chen gemäß dem in Fig. 2 gezeigten Muster in den bei
den Speichern 110 gespeichert, wie dies bei dem Kompara
tor gemäß Fig. 1 geschieht, nachdem eine Aufteilung in
zwei 4-Bit-Teildaten stattgefunden hat, nämlich in die
höchstwertigen vier Datenbits und in die vier Teildaten
bits niedrigster Wertigkeit.
Wie oben beschrieben ist die zur Speicherung und zum
Vergleich nötige Zeit gegenüber dem Zei
chenfolgen-Komparator gemäß Fig. 1 wesentlich abge
kürzt. Die Elemente des Zeichenfolgen-Komparators kön
nen reduziert werden, indem der Zeichen-Dekoder 310 im
Zeichenselektor 120 ebenfalls als Daten-Schreib-Genera
tor 140 verwendet wird und indem einer der beiden
Block-Dekoder 320 in den beiden Zeilen-Selektoren wegge
lassen wird. Wenn die zugehörigen Auslesesignale 111
der beiden Speicher 110 miteinander durch verdrahtete
UND-Glieder verbunden werden, können die UND-Gatter in
der UND-Gatter-Gruppe 910 wegfallen. Dadurch wird bei
nur geringer Zunahme der Hardware die Betriebsgeschwin
digkeit wesentlich gesteigert.
Zusätzlich kann der Zeichenfolgen-Komparator mit einem
Indikator zur Anzeige der Besetzung der Spalten des
Speichers 110 gemäß Fig. 7 ausgerüstet werden. Mit
diesem Indikator können leere Spalten des Speichers
110 leicht herausgefunden werden.
Wie im einzelnen dargestellt, kann der erfindungsgemäße
Zeichenfolgen-Komparator mit herkömmlichen, preiswerten
Speicherzellen hergestellt werden, wodurch sich die
Kosten reduzieren lassen. Ein Zeichenfolgen-Komparator,
der in der Lage ist, N Eingangsfolgen zu speichern,
wobei jede Folge aus M Elementen von J mal K Bits lan
gen Zeichen zusammengesetzt ist, kann mit Hilfe eines
Speichers mit 2 J × K × M Worten à N Bits oder mit K
Speichern hergestellt werden, wobei jeder Speicher eine
Kapazität von 2 J mal M Worten zu N Bits hat. Daher
können unter Verwendung eines 1M Bit-Speicherchips 8192
Folgen in einem Chip gespeichert werden, wobei jede
Folge die Länge von M=8 und jedes Zeichen der Folge
durch einen 8-Bit-ASCII-Code mit J=2 und K=4 darge
stellt ist.
Wie gesagt, ist der Zeichenfolge-Komparator bei Verwen
dung eines 1M Bit-Speichers in der Lage, 8192 Folgen
in einem Chip zu speichern, wobei jede Folge aus 256
Zeichen zusammengesetzt ist. Das bedeutet, daß 8192
Schlüsselworte gleichzeitig aus Folgen extrahiert bezie
hungsweise wiederaufbereitet werden können, die eine
Originaldokumentdatei bilden können, die beispielsweise
unter Verwendung eines Wortprozessors erstellt wurde.
Angesichts der Schwierigkeiten bei der gleichzeitigen
Wiederaufbereitung beziehungsweise beim Wiederauffinden
vieler Schlüsselworte beim Stand der Technik stellt
der erfindungsgemäße Zeichenfolgen-Komparator eine
bahnbrechende Vorrichtung dar.
Der Zeichenfolgen-Komparator kann auch bei der Klassifi
zierung spezifischer Sequenzen in Systemen zur Musterer
kennung beispielsweise einer Vorrichtung zur optischen
Zeichenerkennung (OCR) und einer Spracherkennungsvor
richtung verwendet werden. Ein nur aus einem hochinte
grierten (LSI-)Chip bestehender Zeichenfolgen-Kompara
tor kann als Wörterbuch für die Übersetzung mensch
licher Sprache verwendet werden. Mit 10 solcher Chips
kann ein etwa 80 000 Worte des praktischen Bedarfs umfas
sendes Wörterbuch erhalten werden. Zu diesem Zweck wird
ein herkömmlicher RAM mit jedem Chip verbunden und
eine Übersetzung für jedes Wort in Zusammenhang mit
dem Klassifikationskode für jede Folge gespeichert.
Mit dieser Anordnung können 8192 Übersetzungen für
die entsprechenden Worte auf einem Chip oder 80 000
Übersetzungen insgesamt auf 10 Chips sofort nach der
Eingabeoperation der Folgen erhalten werden. Der her
kömmliche RAM ist in der Lage, verschiedene Informationen
entsprechend dem Klassifikationskode der Folgen
zu speichern, so daß verschiedene Informationsverar
beitungsfunktionen ausgeführt werden können. Wenn bei
spielsweise Verarbeitungsbefehle für den Klassifikations
kode von Folgen entsprechend einem Sprachteil-
Code (part-of-speech-code), entsprechend der Häufigkeit
des Erscheinens von spezifischen Folgen und entspre
chend aus Folgen zusammengesetzter Sätze gespeichert
werden, kann eine Sammlung und Anordnung von Wissensin
formationen leicht hergestellt werden.
Zusätzlich kann der Zeichenfolgen-Komparator eine lange
Folge in mehreren Spalten des Speichers speichern.
Darüber hinaus kann der Speicher Eingabefolgen mit
beliebiger Länge speichern und vergleichen. Der Kompara
tor ist darüber hinaus in der Lage, leere Spalten mit
beliebiger Länge im Speicher als Vergleichsadresse 192
auszugeben, was die externe Steuerung und Überwachung
leerer Spalten erleichtert und zu einer Kostenreduktion
führt.
Für die Verarbeitungsgeschwindigkeit des Zeichenfolgen-
Komparators gilt folgendes: Eine Zykluszeit T C eines im
Speicher 110 oder 710 verwendeten RAMs entspricht der
Verarbeitungszeit für ein Zeichen in einer Folge. Ange
nommen T C beträgt 100 ms, so beträgt die zum Vergleich
eines Originaltexts mit der Länge von 10⁹ Zeichen mit
einer Folge von 10³ erforderliche Zeit 10 Sekunden. Im
Vergleich dazu beträgt die zum Vergleich notwendige
Zeit 10 Stunden, wenn der Vergleich mit einem Computer
mittels eines hochentwickelten Programms gemäß dem
Stand der Technik aufgeführt wird. Auf diese Weise kann
die Vergleichszeit mit Hilfe des erfindungsgemäßen
Zeichenfolgen-Komparators wesentlich abgekürzt werden.
Mit dem erfindungsgemäßen Zeichenfolgen-Komparator
werden zwei wichtige Probleme gelöst, die bei der Daten
verarbeitung gemäß dem Stand der Technik mit Hilfe von
Mikrocomputern und ausgeklügelten Programmen auftraten:
lange Bearbeitungszeit und mangelnde Flexibilität bei
Vergleichen mittels Klassifizierung von Folgen. Zu
beachten ist, daß der Zeichenfolgen-Komparator gemäß
der Erfindung mittels eines LSI-Chips hergestellt wer
den kann, wie sie für die Extraktion von Schlüsselwor
ten aus Originaltextdateien, für ein Wörterbuch zur
Übersetzung menschlicher Sprachen und für die Klassifi
zierung spezifischer Sequenzen in Mustererkennungs
systemen notwendig sind.
Claims (23)
1. Zeichenfolgen-Komparator zum Aufsuchen der Adresse
einer gespeicherten Zeichenfolge, deren Inhalt im wesentlichen
dem einer eingegebenen Referenzfolge entspricht,
gekennzeichnet durch
- - einen eine Anzahl in Matrixform angeordnete Speicherzellen aufweisenden Speicher (110) mit mehreren Zeilen und mehreren Spalten, wobei die Zeilenposition einer jeden Speicherzelle dem Inhalt der gespeicherten Zeichenfolge und die Spaltenposition einer jeden Speicherzelle der Adresse der gespeicherten Zeichenfolge entspricht;
- - eine mit dem Speicher (110) verbundene Einrichtung (120) zum Auswählen derjenigen Zeile der Speicherzellenmatrix, die dem Inhalt der zu vergleichenden eingegebenen Referenzfolge entspricht, so daß der Inhalt der Speicherzellen der mittels der Zeilenwählvorrichtung ausgewählten Zeile ausgelesen werden kann;
- - eine mit den Spalten der Speicherzellenmatrix verbundene Vorrichtung (160, 170, 180) zum Auslesen und Ausgeben des Inhalts derjenigen Speicherzellen der Spalten, die in der mittels der Zeilenwählvorrichtung ausgewählten Zeile liegen; und
- - einen Kodierer (190), der die Ausgangssignale der Auslesevorrichtung empfängt und sie kodiert, so daß eine Adresse für die gespeicherte Zeichenfolge entsteht, die im wesentlichen den gleichen Inhalt wie die eingegebene Referenzfolge hat.
2. Zeichenfolgen-Komparator nach Anspruch 1,
dadurch gekennzeichnet, daß die Zeilenwählvorrichtung
einen die zu vergleichende eingegebene
Referenzzeichenfolge empfangenden Dekoder aufweist
und zumindest eine dem Inhalt der eingegebenen Referenzzeichenfolge
entsprechende Zeile der Speicherzellenmatrix
auswählt.
3. Zeichenfolgen-Komparator nach einem der Ansprüche
1 oder 2, dadurch gekennzeichnet,
daß die gespeicherten Zeichenfolgen aus einer Vielzahl
von Zeichen zusammengesetzt ist, die jeweils eine Länge
von J × K Bits haben, und daß die Speicherzellenmatrix
eine Speicherkapazität von 2 J × K × M Worten mit
je N bits hat und in K × M Speicherblocks unterteilt
ist, die jeweils 2 J Zeilen und M Spalten aufweisen, so
daß jedes Zeichen der Zeichenfolgen in K Elemente mit
je J Bitdaten unterteilt ist, und die K Elemente der
Daten sequentiell in den Spalten gleicher Nummer in den
jeweiligen Speicherblocks gespeichert sind.
4. Zeichenfolgen-Komparator nach einem der Ansprüche
1 bis 3, dadurch gekennzeichnet,
daß die Referenzfolge aus mehreren Zeichen zusammengesetzt
ist, die jeweils J × K Bits haben, wobei
jedes Zeichen der Referenzfolge in K Elemente zu J
Datenbits unterteilt ist, so daß die Datenelemente
mit einer Länge von J Bits nacheinander dem Zeichenfolgen-
Komparator entsprechend einem Taktsignal zugeleitet
werden, und daß die Zeilenwählvorrichtung mit einer
Zähleinrichtung zum Zählen der Taktsignale versehen
ist, um die Zeilenwählvorrichtung mit dem Zählerausgangswert
zu versorgen, der den Speicherblock bestimmt,
welcher dem eingegebenen Datenelement mit der Länge von
J Bits entspricht.
5. Zeichenfolgen-Komparator nach einem der Ansprüche
1 bis 4, dadurch gekennzeichnet,
daß die Zeilenwählvorrichtung folgende Elemente aufweist:
- - einen ersten Dekoder, der die Datenelemente der zu vergleichenden Referenzfolge empfängt, um die Datenelemente zu dekodieren und 2 J parallele Binärsignale zu erzeugen, welche die Zeilenposition in jedem Speicherblock darstellen, der dem Inhalt des empfangenen Datenelements entspricht;
- - einen zweiten Dekoder, der den Inhalt der Zähleinrichtung empfängt, um den Zählerausgangswert zu dekodieren und K × M parallele Binärsignale zu erzeugen, die den Speicherblock repräsentieren, der dem Zählerausgang entspricht; und
- - eine UND-Gatter-Gruppe 2 J × K × M UND-Gattern, die in K × M Gruppen unterteilt sind, wobei jede Gruppe 2 J UND-Gatter aufweist und die ersten Eingänge aller UND-Gatter einer Gruppe so verbunden sind, daß sie die parallelen Binärsignale der ersten Dekoders je einzeln in einer 1 : 1 Beziehung empfangen und deren zweite Eingänge so verbunden sind, daß sie das entsprechende einzelne Binärsignal des zweiten Dekoders empfangen, wobei die Ausgänge aller UND-Gatter mit den entsprechenden Zellen einzeln in 1 : 1 Relation mit den jeweiligen Zeilen der Speicherzellenmatrix verbunden sind, so daß eine von dem ersten Dekoder entsprechend dem empfangenen Datenelement der Referenzfolge bestimmte Zeile in einem von dem zweiten Dekoder ausgewählten Speicherblock selektiert wird.
6. Zeichenfolgen-Komparator nach einem der Ansprüche
1 bis 5, weiter gekennzeichnet
durch folgende Elemente:
- - eine mit allen Spalten der Speicherzellenmatrix verbundene Vorrichtung zum Lesen und Ausgeben des Inhalts der Speicherzellen all der Spalten, die zu der mittels der Zeilenauswählvorrichtung gewählten Zeile gehören; und
- - einen Kodierer, der den Ausgangswert der Lesevorrichtung empfängt und zu einer Adresse für die gespeicherte Zeichenfolge kodiert, die im wesentlichen denselben Inhalt hat wie die eingegebene Referenzfolge.
7. Zeichenfolgen-Komparator nach einem der Ansprüche
1 bis 8, dadurch gekennzeichnet,
daß die Lesevorrichtung folgende Elemente aufweist:
- - eine Gruppe von N UND-Gattern, wobei ein Eingang eines jeden UND-Gatters so verbunden ist, daß er das Auslesesignal von der entsprechenden Spalte der Speicherzellenmatrix empfängt;
- - eine Gruppe von N Registern, die alle den Ausgangswert des zugehörigen UND-Gatters empfangen und festhalten, um das ausgelesene Signal an den Kodierer abzugeben; und
- - eine Gruppe von N Schaltern, bei denen jeweils der erste Eingang mit dem Ausgang des Registers verbunden ist, das zu der dem Schalter benachbarten Spalte gehört, wobei jeder Schalter einen zweiten, mit dem Ausgang des Registers der gleichen Spalte verbundenen Eingang aufweist und wobei ein Ausgang jedes Schalters mit dem anderen Eingang des zugehörigen UND- Gatters verbunden ist, so daß das logische Signal der sequentiell ausgelesenen Signale einer jeden Spalte der Speicherzellenmatrix durch das zugehörige UND-Gatter erhalten und dann in dem entsprechenden Register gespeichert wird, so daß es an den Kodierer weitergegeben wird.
8. Zeichenfolgen-Komparator nach einem der Ansprüche
1 bis 9, dadurch gekennzeichnet,
daß zu Beginn der Eingabe der Referenzfolge an die
Speichereinheit jedes Register initialisiert und jeder
Schalter so gesteuert wird, daß sein erster Eingang
mit seinem Ausgang verbunden wird, und daß danach jeder
Schalter in einer Stellung gehalten wird, in der sein
zweiter Eingang mit seinem Ausgang verbunden ist, bis
alle Speicherblöcke vom ersten bis zum letzten Speicherblock
jeweils von der Zeilenwählvorrichtung aktiviert
wurden.
9. Zeichenfolgen-Komparator nach einem der Ansprüche
1 bis 8, weiter gekennzeichnet durch:
- - eine Spaltenauswählvorrichtung, die so ausgelegt ist, daß sie parallel alle Spalten der Speicherzellenmatrix aktiviert, wenn der Komparator in Vergleichsbetrieb gebracht wird, wobei die Spaltenwählvorrichtung auf eine Eingabeadresse anspricht und eine Spalte der Speicherzellenmatrix entsprechend der Eingangsadresse auswählt, wenn der Komparator in Speicherbetrieb gebracht wird;
- - eine Vorrichtung zum Einschreiben der Eingabedaten in eine von der Spaltenwählvorrichtung ausgewählte Spalte der Speicherzellenmatrix;
- - eine mit allen Spalten der Speicherzellenmatrix verbundene Einrichtung zum Lesen und Ausgeben des Inhalts der Speicherzellen aller Spalten, die zu der von der Zeilenwählvorrichtung ausgewählten Zeile gehören; und
- - einen das Ausgangssignal der Lesevorrichtung empfangenden Kodierer zum Kodieren des Ausgangssignals und zum Erzeugen einer Adresse für die gespeicherte Zeichenfolge, die im wesentlichen den gleichen Inhalt hat wie die eingegebene Referenzfolge.
10. Zeichenfolgen-Komparator nach Anspruch 9,
dadurch gekennzeichnet, daß die gespeicherten
Zeichenfolgen aus mehreren Zeichen zusammengesetzt
sind, die jeweils eine Länge von J × K Bits
haben, und wobei die Speicherzellenmatrix eine Speicherkapazität
von 2 J × K × M Worten zu N Bits hat und in K ×
M Speicherblocks unterteilt ist, die jeweils aus 2 J
Reihen zu M Spalten bestehen, so daß jedes Zeichen der
Zeichenfolge in K Elemente zu J Datenbits aufgeteilt
ist und die K Datenelemente nacheinander in die Spalte
gleicher Nummer in den jeweiligen Speicherblocks gespeichert
werden.
11. Zeichenfolgen-Komparator nach Anspruch 9 oder
10, dadurch gekennzeichnet, daß die
Referenzfolge aus mehreren Zeichen mit je J × K Bits
besteht und jedes Zeichen der Referenzfolge in K Elemente
zu J Datenbits unterteilt ist, so daß die Datenelemente
mit einer Länge von J Bits entsprechend einem
Taktsignal nacheinander in den Zeichenfolgen-Komparator
eingegeben werden, und wobei die Zeilenwählvorrichtung
mit einer Einrichtung zum Zählen der Taktsignale verbunden
ist, um die Zeilenwählvorrichtung mit dem Zählerausgangswert
zu versorgen, der den Speicherblock bestimmt,
welcher dem eingegebenen Datenelement der Länge
J Bits entspricht.
12. Zeichenfolgen-Komparator nach einem der Ansprüche
9 bis 11, dadurch gekennzeichnet, daß
die Zeilenwählvorrichtung folgende Elemente aufweist:
- - einen ersten Kodierer, der die Datenelemente der zu vergleichenden Referenzfolge empfängt, um die Datenelemente in 2 J parallele Binärsignale zu kodieren, die die Zeilenposition eines jeden Speicherblocks darstellen, die dem Inhalt der empfangenen Datenelemente entspricht;
- - einen zweiten Kodierer, der den Inhalt der Zähleinrichtung empfängt, um den Zählerausgangswert in K × M parallele Binärsignale zu kodieren, die den Speicherblock repräsentieren, der dem Zählerausgangswert entspricht;
- - eine ODER-Gatter-Gruppe mit 2 J ODER-Gattern, bei denen jeweils ein erster Eingang das zugehörige kodierte Signal des ersten Kodierers empfängt und wobei die zweiten Eingänge aller ODER-Gatter das Betriebswahlsignal empfangen, das den Speicherbetrieb oder Vergleichsbetrieb angibt; und
- - eine UND-Gatter-Gruppe mit 2 J × K × M UND-Gattern die in K × M Gruppen unterteilt sind, wobei jede Gruppe 2 J UND-Gatter aufweist und die UND-Gatter jeder Gruppe einen ersten Eingang haben, der die Ausgangssignale der zugehörigen ODER-Gatter je einzeln, also in 1 : 1 Relation empfängt, wobei die anderen Eingänge das zugehörige eine Binärsignal von dem zweiten Kodierer empfangen und wobei die Ausgänge aller UND-Gatter jeweils mit den zugehörigen Zeilen der Speicherzellenmatrix in 1 : 1 Relation verbunden sind;
- - wobei, wenn durch das Betriebswahlsignal der Speicherbetrieb angezeigt wird, alle Zeilen eines durch den zweiten Dekoder bestimmten Speicherblocks aktiviert werden, und, wenn der Vergleichsbetrieb durch das Betriebswahlsignal angezeigt wird, selektiv eine von dem ersten Kodierer entsprechend dem empfangenen Datenelement der Referenzfolge bestimmte Zeile in einem durch den zweiten Kodierer bestimmten Speicherblock aktiviert wird.
13. Zeichenfolgen-Komparator nach Anspruch 12,
dadurch gekennzeichnet, daß die Lesevorrichtung
folgende Elemente aufweist:
- - eine Gruppe von N UND-Gattern, wobei jedes UND-Gatter einen Eingang aufweist, der das Auslesesignal von der entsprechenden Spalte der Speicherzellenmatrix empfängt;
- - eine Gruppe von N Registern, die jeweils den Ausgangswert der zugehörigen UND-Gatter zur Ausgabe des Auslesesignals an den Kodierer empfangen und festhalten; und
- - eine Gruppe von N Schaltern, die jeweils einen ersten Eingang aufweisen, der mit dem Ausgang des der zum Schalter benachbarten Spalte zugehörigen Registers verbunden ist, wobei jeder Schalter einen zweiten Eingang aufweist, der mit dem Ausgang des Registers der gleichen Spalte wie der Schalter verbunden ist, und wobei ein Ausgang jedes Schalter mit dem anderen Eingang des zugehörigen UND-Gatters verbunden ist, so daß das logische Produkt der sequentiellen Auslesesignale einer jeden Spalte der Speicherzellenmatrix mit Hilfe des zugehörigen UND-Gatters gewonnen und dann in dem zugehörigen Register gespeichert wird, so daß es an den Kodierer geliefert wird.
14. Zeichenfolgen-Komparator nach Anspruch 13,
dadurch gekennzeichnet, daß bei Beginn
der Eingabe der Referenzfolge an die Speichereinrichtung
jedes Register initialisiert und jeder Schalter
so gesteuert wird, daß sein erster Eingang mit seinem
Ausgang verbunden ist, und danach jeder Schalter in
einem Zustand gehalten wird, daß sein zweiter Eingang
mit seinem Ausgang verbunden ist, bis alle Speicherblöcke
vom ersten bis zum letzten Speicherblock von
der Zeilenwählvorrichtung einmal aktiviert wurden.
15. Zeichenfolgen-Komparator nach Anspruch 13,
dadurch gekennzeichnet,
- - daß nur eines der von dem ersten Dekoder abgegebenen Binärsignale, welches der Zeilenposition der Speicherzellenmatrix entspricht, die durch die Eingabe der Referenzdaten bestimmt wird, "1" ist, während die übrigen Binärsignale "0" sind;
- - daß nur eines der vom zweiten Kodierer abgegebenen Binärsignale, welches dem bestimmten Speicherblock entspricht, "1" ist, während die anderen Binärsignale den Wert "0" annehmen und
- - daß das Betriebswahlsignal den Wert "1" annimmt, wenn der Speicherbetrieb angeordnet ist, während es den Wert "0" annimmt, wenn der Vergleichsbetrieb angeordnet ist.
16. Zeichenfolgen-Komparator nach Anspruch 13,
dadurch gekennzeichnet, daß die Spaltenwählvorrichtung
einen Dekoder enthält, der die Eingabeadresse
zum Auswählen einer Spalte der Speicherzellenmatrix
enthält, welche der Eingabeadresse
entspicht.
17. Zeichenfolgen-Komparator nach Anspruch 13,
dadurch gekennzeichnet, daß die Spaltenwählvorrichtung
folgende Elemente umfaßt:
- - einen die zu speichernde Eingabeadresse empfangenden Dekodierer, der die Daten in N parallele Binärsignale kodiert, welche die Spaltenposition der Speicherzellenmatrix wiedergeben, die dem Inhalt der Eingangsdaten entspricht, und
- - N ODER-Gatter, deren jeweils erster Eingang eines der zugehörigen parallelen Binärsignale empfängt und deren zweite Eingänge ein invertiertes Betriebssignal empfangen, während alle Ausgänge der ODER-Gatter mit den entsprechenden Spalten der Speicherzellenmatrix verbunden sind,
- - wobei, wenn der Speicherbetrieb angeordnet ist, eine durch die Eingabeadresse bestimmte Spalte der Speicherzellenmatrix ausgewählt wird, und wenn Vergleichsbetrieb angeordnet ist, alle Spalten der Speicherzellenmatrix der Speichereinrichtung aktiviert werden.
18. Zeichenfolgen-Komparator nach Anspruch 13, dadurch
gekennzeichnet, daß die Daten-
Schreibeinrichtung einen Kodierer enthält, der die
zu speichernden Eigangsdaten empfängt und parallele
Binärsignale aus 2 J Bits erzeugt, wobei jedes dieser
Binärsignale der Zeilen gleicher Nummer aller Speicherblocks
zugeleitet wird.
19. Zeichenfolgen-Komparator nach Anspruch 13, dadurch
gekennzeichnet, daß die Daten-
Schreibeinrichtung folgende Merkmale umfaßt:
- - einen, die zu speichernden Eingangsdaten empfangenden Kodierer zur Erzeugung paralleler Binärsignale und
- - eine Gruppe von 2 J Flip-Flops, die alle einen Setz- Eingang aufweisen, die das entsprechende eine parallele Binärsignal vom Dekoder empfangen und die jeweils einen Rücksetz-(Reset-)Eingang aufweisen, der ein Löschsignal empfängt, wobei ein Ausgang eines jeden Flip-Flops mit den Zeilen gleicher Nummer aller Speicherblöcke verbunden ist.
20. Zeichenfolgen-Komparator nach Anspruch 19,
dadurch gekennzeichnet, daß nur eines
der parallelen Binärsignale, die von der Daten-Schreibeinrichtung
an die Zeile der Speicherzellenmatrix abgegeben
werden, die für den Inahlt der zu speichernden
Eingangsdaten bestimmt ist, den Wert "1" hat, während
die anderen Binärsignale den Wert "0" haben.
21. Zeichenfolgen-Komparator gemäß Anspruch 13,
dadurch gekennzeichnet, daß die Speichereinrichtung
ferner einen mit allen Spalten der Speicherzellenmatrix
verbundenen Indikatorbereich aufweist,
der angibt, welche der angeschlossenen Spalten eine
Folge speichert, wobei der Indikatorbereich durch die
Zeilenwählvorrichtung entsprechend einem weiteren
Betriebsart-Signal aktiviert wird und auch durch ein
zweites Betriebswahl-Signal beschrieben wird.
22. Zeichenfolgen-Komparator nach Anspruch 21,
ferner gekennzeichnet durch eine Gruppe
von EXKLUSIV-ODER-Gattern, deren jeweils erster Eingang
mit der zugehörigen Spalte der Speicherzellenmatrix
verbunden ist und deren zweiter Eingang ein Steuersignal
empfängt, wobei ein Ausgang eines jeden EXKLUSIV-ODER-
Gatters mit dem einen Eingang des zugehörigen UND-Gatters
verbunden ist.
23. Zeichenfolgen-Komparator nach Anspruch 13,
dadurch gekennzeichnet, daß die Speichereinrichtung
ein Paar von Speicherzellenmatrizen mit
einer Speicherkapazität von 2 J × K × M Worten mit je
N Bits aufweist, wobei jede Speicherzellenmatrix mit
einer Zeilenwählvorrichtung und einer Datenschreibeinrichtung
verbunden ist, wobei die Spaltenwähleinrichtung
so ausgelegt ist, daß sie gleichzeitig die korrespondierenden
Spalten der beiden Speicherzellenmatrizen
auswählen kann und wobei die Auslesesignale der korrespondierenden
Spalten beider Speicherzellenmatrizen
über zweite UND-Gatter den ersten Eingängen der zugehörigen
ersten UND-Gatter zugeleitet werden.
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP59267837A JPS61145636A (ja) | 1984-12-19 | 1984-12-19 | 記号列照合装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
DE3545125A1 DE3545125A1 (de) | 1986-09-04 |
DE3545125C2 true DE3545125C2 (de) | 1988-09-01 |
Family
ID=17450306
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
DE19853545125 Granted DE3545125A1 (de) | 1984-12-19 | 1985-12-19 | Zeichenfolgen-komparator |
Country Status (3)
Country | Link |
---|---|
US (1) | US4907194A (de) |
JP (1) | JPS61145636A (de) |
DE (1) | DE3545125A1 (de) |
Families Citing this family (27)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH01103341A (ja) * | 1987-10-16 | 1989-04-20 | Nec Corp | アドレス検出回路 |
JP2715465B2 (ja) * | 1988-08-31 | 1998-02-18 | 日本電気株式会社 | 記号列照合装置 |
JPH0395629A (ja) * | 1989-09-08 | 1991-04-22 | Fujitsu Ltd | データ処理装置 |
US5339447A (en) * | 1989-11-17 | 1994-08-16 | Texas Instruments Incorporated | Ones counting circuit, utilizing a matrix of interconnected half-adders, for counting the number of ones in a binary string of image data |
US5070480A (en) * | 1990-01-08 | 1991-12-03 | Caywood John M | Nonvolatile associative memory system |
EP0485522A4 (en) * | 1990-05-30 | 1993-08-04 | Daniel W. Hammerstrom | Neural network using virtual-zero |
US5369773A (en) * | 1991-04-26 | 1994-11-29 | Adaptive Solutions, Inc. | Neural network using virtual-zero |
US5241507A (en) * | 1991-05-03 | 1993-08-31 | Hyundai Electronics America | One transistor cell flash memory assay with over-erase protection |
JP2794138B2 (ja) * | 1991-08-13 | 1998-09-03 | 三菱電機株式会社 | 半導体記憶装置 |
US6000008A (en) * | 1993-03-11 | 1999-12-07 | Cabletron Systems, Inc. | Method and apparatus for matching data items of variable length in a content addressable memory |
US5586288A (en) * | 1993-09-22 | 1996-12-17 | Hilevel Technology, Inc. | Memory interface chip with rapid search capability |
US5602764A (en) * | 1993-12-22 | 1997-02-11 | Storage Technology Corporation | Comparing prioritizing memory for string searching in a data compression system |
KR950034265A (ko) * | 1994-02-10 | 1995-12-28 | 도자끼 시노부 | 연상메모리 |
JPH11149481A (ja) * | 1997-11-19 | 1999-06-02 | Sharp Corp | 情報処理装置 |
US6832225B1 (en) * | 1998-12-14 | 2004-12-14 | Canon Research Centre France S.A. | Method and device for recording and searching for a document on a communication network |
US7039637B2 (en) * | 1998-12-31 | 2006-05-02 | International Business Machines Corporation | System and method for evaluating characters in an inputted search string against a character table bank comprising a predetermined number of columns that correspond to a plurality of pre-determined candidate character sets in order to provide enhanced full text search |
US7031002B1 (en) | 1998-12-31 | 2006-04-18 | International Business Machines Corporation | System and method for using character set matching to enhance print quality |
US7191114B1 (en) | 1999-08-27 | 2007-03-13 | International Business Machines Corporation | System and method for evaluating character sets to determine a best match encoding a message |
US8954484B2 (en) | 2009-06-12 | 2015-02-10 | Cray Inc. | Inclusive or bit matrix to compare multiple corresponding subfields |
US8212695B2 (en) * | 2009-02-05 | 2012-07-03 | Polytechnic Institute Of New York University | Generating a log-log hash-based hierarchical data structure associated with a plurality of known arbitrary-length bit strings used for detecting whether an arbitrary-length bit string input matches one of a plurality of known arbitrary-length bit strings |
JP6123088B1 (ja) * | 2016-02-25 | 2017-05-10 | 楽天株式会社 | ブロック符号化装置、ブロック復号化装置、情報処理装置、プログラム、ブロック符号化方法及びブロック復号化方法 |
US10169451B1 (en) * | 2018-04-20 | 2019-01-01 | International Business Machines Corporation | Rapid character substring searching |
US10747819B2 (en) | 2018-04-20 | 2020-08-18 | International Business Machines Corporation | Rapid partial substring matching |
US10782968B2 (en) * | 2018-08-23 | 2020-09-22 | International Business Machines Corporation | Rapid substring detection within a data element string |
US10732972B2 (en) | 2018-08-23 | 2020-08-04 | International Business Machines Corporation | Non-overlapping substring detection within a data element string |
US10996951B2 (en) | 2019-09-11 | 2021-05-04 | International Business Machines Corporation | Plausibility-driven fault detection in string termination logic for fast exact substring match |
US11042371B2 (en) | 2019-09-11 | 2021-06-22 | International Business Machines Corporation | Plausability-driven fault detection in result logic and condition codes for fast exact substring match |
Family Cites Families (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US3257646A (en) * | 1963-01-24 | 1966-06-21 | Ibm | Variable word length associative memory |
US3448436A (en) * | 1966-11-25 | 1969-06-03 | Bell Telephone Labor Inc | Associative match circuit for retrieving variable-length information listings |
JPS5936795B2 (ja) * | 1979-08-17 | 1984-09-05 | シャープ株式会社 | 電子辞書 |
US4384325A (en) * | 1980-06-23 | 1983-05-17 | Sperry Corporation | Apparatus and method for searching a data base using variable search criteria |
JPS57138077A (en) * | 1981-02-18 | 1982-08-26 | Nec Corp | Variable length string buffer device |
US4499535A (en) * | 1981-05-22 | 1985-02-12 | Data General Corporation | Digital computer system having descriptors for variable length addressing for a plurality of instruction dialects |
US4499553A (en) * | 1981-09-30 | 1985-02-12 | Dickinson Robert V | Locating digital coded words which are both acceptable misspellings and acceptable inflections of digital coded query words |
JPS61107596A (ja) * | 1984-10-31 | 1986-05-26 | Nec Corp | 連想記憶装置 |
-
1984
- 1984-12-19 JP JP59267837A patent/JPS61145636A/ja active Granted
-
1985
- 1985-12-19 US US06/811,073 patent/US4907194A/en not_active Expired - Lifetime
- 1985-12-19 DE DE19853545125 patent/DE3545125A1/de active Granted
Also Published As
Publication number | Publication date |
---|---|
DE3545125A1 (de) | 1986-09-04 |
US4907194A (en) | 1990-03-06 |
JPS61145636A (ja) | 1986-07-03 |
JPH0533422B2 (de) | 1993-05-19 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
DE3545125C2 (de) | ||
DE3750492T2 (de) | Datenbanksystem für Parallelprozessor. | |
DE3587137T2 (de) | Inhaltsadressierbarer speicher. | |
DE2554442C2 (de) | Vorrichtung zum Vergleich logischer Größen mit einer Gruppe logischer Bezugsgrößen | |
DE3801380C2 (de) | ||
DE3788563T2 (de) | Verfahren und Einrichtung um eine Datenbankadresse zu bestimmen. | |
DE60035171T2 (de) | Verfahren und Schaltungen zum schnellen Auffinden des minimalen / maximalen Wertes in einer Menge von Zahlen | |
DE69809997T2 (de) | Ein Verfahren und Gerät, um in einem inhaltsadressierbaren Speicher zu suchen | |
DE68907518T2 (de) | Inhaltsadressierte Speicheranordnung. | |
DE3327379A1 (de) | Einrichtung und verfahren zum umordnen von datensaetzen | |
DE2821285A1 (de) | Verfahren und vorrichtung zur datenverarbeitung mit informationsabtastung unter verwendung von pruefsummen | |
DE68927625T2 (de) | Folgenkollationierungssystem zum Suchen nach einer Charakterfolge willkürlicher Länge innerhalb eines gegebenen Abstands einer Referenzfolge | |
DE3587176T2 (de) | Verfahren und einrichtung zum mischen/sortieren von daten. | |
DE2725396C3 (de) | ||
DE69022402T2 (de) | System zur integrität der speicherdaten. | |
DE68927527T2 (de) | Bedrahtete Datensortierschaltung | |
DE2900586C2 (de) | Anordnung zum Decodieren von Codewörtern variabler Länge | |
DE1524373C3 (de) | Paralleldruckwerk | |
DE4210109C2 (de) | Sortiervorrichtung zum Sortieren von Daten und Sortierverfahren | |
DE2006672A1 (de) | Vorrichtung zur Sichtbarmachung von Daten | |
DE60001585T2 (de) | Datenverarbeitungseinrichtung und -verfahren | |
DE3688737T2 (de) | Kontextadressierbarer umlaufspeicher. | |
DE2525394B2 (de) | Verfahren und schaltungsanordnung zum uebertragen, einspeichern und ausspeichern von binaercodierten datenbloecken | |
DE3623910C2 (de) | ||
DE3586451T2 (de) | Geraet zur datenwiederauffindung. |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
OP8 | Request for examination as to paragraph 44 patent law | ||
8125 | Change of the main classification |
Ipc: G06F 7/02 |
|
D2 | Grant after examination | ||
8364 | No opposition during term of opposition | ||
8339 | Ceased/non-payment of the annual fee |