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
Application number
DE3545125A
Other languages
English (en)
Other versions
DE3545125A1 (de
Inventor
Hachiro Yamada
Kousuke Tokio/Tokyo Jp Takahashi
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
NEC Corp
Original Assignee
NEC Corp
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by NEC Corp filed Critical NEC Corp
Publication of DE3545125A1 publication Critical patent/DE3545125A1/de
Application granted granted Critical
Publication of DE3545125C2 publication Critical patent/DE3545125C2/de
Granted legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F7/00Methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F7/02Comparing digital values
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/90Details of database functions independent of the retrieved data types
    • G06F16/903Querying
    • G06F16/90335Query processing
    • G06F16/90344Query 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.
DE19853545125 1984-12-19 1985-12-19 Zeichenfolgen-komparator Granted DE3545125A1 (de)

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)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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 連想記憶装置

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