DE3545125A1 - Zeichenfolgen-komparator - Google Patents

Zeichenfolgen-komparator

Info

Publication number
DE3545125A1
DE3545125A1 DE19853545125 DE3545125A DE3545125A1 DE 3545125 A1 DE3545125 A1 DE 3545125A1 DE 19853545125 DE19853545125 DE 19853545125 DE 3545125 A DE3545125 A DE 3545125A DE 3545125 A1 DE3545125 A1 DE 3545125A1
Authority
DE
Germany
Prior art keywords
input
memory
column
data
signal
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.)
Granted
Application number
DE19853545125
Other languages
English (en)
Other versions
DE3545125C2 (de
Inventor
Erfinder Wird Nachtraeglich Benannt Der
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, der als Baustein in einem Informationsverarbeitungssystem verwendet wird, insbesondere einen Zeichenfolgen-Komparator zum Aussortieren bzw. Auslesen von bestimmten Zeichenfolgen aus einem langen, aus vielen Zeichenfolgen zusammengesetzten Orginaltext.
Zeichenfölgen-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.
Gemäß dem Stand der Technik 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 η Zeichen oder Buchstaben in einem Text aus m Zeichen n(m-n+l) Vergleiche nötig. Um eine Folge der Länge n = 10 in einem
Text mit der Gesamtlänge m=10 , der auf einer Magnetscheibe oder auf einer optischen Speicherscheibe gespei-
1 2 chert 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 ijn einem großen Informationsvorrat beim Stand der Technik auf einige spezielle Fälle beschränkt, beispielsweise auf das Wiederauffinden mit Hilfe von vorher ausgewählten Schiüsselwerten oder das Wiederauffinden strukturierter Daten in einer Tabelle. Ein weiterer Nachteil eines Zei1enfolgen-Komparators gemäß dem Stand der Technik ist,daß die Verarbeitungszeit bei "flexi-
blem" Wiederauffinden sehr lang ist, 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 ein bekannter Zeichenfölgen-Komparator und dessen Nachteile unter Bezugnahme auf die Figuren im einzelnen erläutert.
Figur 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 Zeichenfölgen-Komparator soll direkt gewünschte Zeichenfolgen im Text mit Hilfe von SchiüsselWorten auffinden.
Um beispielsweise festzustellen, ob der in Figur 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 3.000 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 3.000 Zeichen sind etwa so viele Vergleiche nötig wie das Produkt der beiden Zahlen ergibt. Selbst wenn ein Zeichenvergleich in einem Mikroprozessor nur 1 /A-see 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
9 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 in Wirklichkeit aus gegebenen Referenzfolgen ein zunächst Schlüsselwort manuell extrahiert und dann die Vergleiche für das Schlüsselwort mit Hilfe eines Computers ausgeführt.
Es ist daher Aufgabe der Erfindung, einen verbesserten Zeichenfolgen-Komparator ohne die genannten Nachteile zu schaffen.
Ziel der Erfindung ist die Schaffung eines Zeichenfolgen-Komparators und eines Vergleichsverfahrens, 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.
Ziel der Erfindung ist es auch, einen Zeichenfolgen-Komparator zu schaffen, bei dem die Länge der Referenzfolge beliebig festgelegt werden kann.
Darüber hinaus ist es Ziel der Erfindung, einen preisgünstigen Zeichenfolgen-Komparator zu schaffen.
Zur Lösung dieser Aufgabe wird ein Zeichenfolgen-Komparator zum Aufsuchen der Adresse einer gespeicherten Zeichenfolge geschaffen, die im wesentlichen den gleichen Inhalt wie eine eingegebene Referenzfolge hat. Der Zeichenfolgen-Komparator umfaßt eine Speichereinheit, bei der eine Anzahl Speicherzellen in Form einer mehrere Zeilen und Spalten aufweisenden Matrix angeordnet sind, wobei die Zeilenposition einer jeden Spei-
cherzeile dem Inhalt der Zeichenfolge und die Spaltenposition der Speicherzelle der gespeicherten Adresse der Zeichenfolge entspricht, und eine mit der Speichereinheit gekoppelte Zeilenauswahlinrichtung zur Auswahl einer Zeile der Speicherzellenmatrix der Speichereinheit, die dem Inhalt der zu vergleichenden eingegebenen Referenzfolge entspricht, so daß der Inhalt der Speicherzellen, die zu einer mit Hilfe der Zeilenauswahl ei nrichtung ausgelesenen Zeile gehören, ausgelesen wird.
Gemäß einem weiteren Ziel der Erfindung wird ein Zeichenfolgen-Komparator zum Aufsuchen der Adresse einer gespeicherten Zeichenfolge geschaffen, die im wesentlichen den gleichen Inhalt wie eine eingegebene Referenzfolge hat, wobei beide Folgen aus mehreren Zeichen mit einer Länge von JxK Bits zusammengesetzt ist. Der Zeichenfölgen-Komparator umfaßt folgende Merkmale:
- eine Speichereinrichtung mit einem aus in Form einer "Matrix mit 2 χ K χ M Zeilen und N Spalten angeordneten Zeichenelementen bestehenden Speicher und einem getrenntem Indikator, der in einer Zeile mit N Spalten angeordnet ist und zur Angabe der Besetzung einer jeden Spalte der Speicherzellenmatrix dient;
- eine mit der Speichervorrichtung verbundene Einrichtung zum Auswählen einer Zeile der Speicherzel1en-
matrix der Speichervorrichtung entsprechend den zu vergleichenden Eingangsdaten;
- eine Einrichtung die in Abhängigkeit von einem Taktsignal Eingangsdaten zählt und den Inhalt an die Zeilenwählvorrichtung abgibt;
- eine Lesevorrichtung zum Lesen des Inhalts der Speicherzellen, die zu der von der Zeilenwählvorrichtung ausgewählten Zeile gehören, und zum Ausgeben des Inhalts der Speicherzellen der Spalte der ausgewählten Zeile; und
- einen Kodierer, der das Ausgangssignal der Lesevorrichtung empfängt und den Inhalt der Speicherzellen der Spalte in der jeweiligen Zeile entsprechend den Adressen für die zu vergleichenden Eingangsdaten kodiert.
In Übereinstimmung mit einem weiteren Ziel der Erfindung 'wird ein Zeichenfölgen-Komparator zum Aufsuchen der Adresse von eingegebenen Referenzdaten geschaffen, die mit schon in N Arten von Folgen gespeicherten Daten verglichen werden sollen, wobei jede Folge aus M Elementen von JxK Bit langen Zeichen besteht. Dieser Zeichenfölgen-Komparator umfaßt folgende Merkmale:
- mehrere Speichereinheiten, wobei jede einen aus mehreren in Form einer 2 χ K χ M Zeilen und N Spalten aufweisenden Matrix angeordneten Speicherelementen bestehenden Speicher und einem getrennten Indikator auf-
weist, der in einer Zeile mit N Spalten angeordnet ist und zur Anzeige der Besetzung einer jeden Spalte der Speicherzellenmatrix dient:
■ mehrere Zeilenwählvorrichtungen, wobei jede Zeilenwählvorrichtung mit jeder Speichervorrichtung verbunden ist und zur Auswahl einer den zu vergleichenden Eingangsdaten entsprechenden Zeile der Speicherzellenmatrix der Speichervorrichtung dient; eine in Abhängigkeit von einem Taktsignal Eingangsdaten zählende Zählvorrichtung, die den Inhalt an die Zeilenwählvorrichtung abgibt;
Spaltenwählvorrichtung, die in Abhängigkeit von Eingangsdaten, die bei einer Eingangsadresse gespeichert werden sollen, eine Spalte der Matrix der Speichereinheit entsprechend der Eingangsadresse auswählt; mehrere Datenschreibvorrichtungen , die jeweils die zu speichernden Eingangsdaten in die Spalten gleicher Nummer einer jeder Matrix einschreiben, die durch die Spaltenwählvorrichtung ausgewählt wird; Lesevorrichtung zum Lesen des Inhalts der Speicherzellen, die zu einer durch die Zeilenwählvorrichtung ausgewählten Zeile gehören und zum Ausgeben des Inhalts der Speicherzellen der Spalte der ausgewählten Zeile; und
einen Ausgangssignale von der Lesevorrichtung empfangenden Kodierer, der den Inhalt der Speicherzellen einer Spalte in der entsprechend der Adressen für die
zu suchenden Eingangsdaten ausgewählten Zeile kodiert.
Die genannten und weitere Ziele, Merkmale und Vorteile der Erfindung ergeben sich aus der folgenden Beschreibung bevorzugter Ausführungsbeispiele im Zusammenhang mit der Zeichnung. Es zeigen:
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;
Fjg. 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ührungs-
bei spiels des erfindungsgemäßen Zeichenfölgen-Komparators;
Fig. 8 ein Blockdiagramm eines Ausführungsbeispiels des in Fig. 7 dargestellten Zeilen-Selektors;
Fig. 9 ein Blockdiagramm eines weiteren Ausführungsbeispiels des erfindungsgemäßen Zeichenfölgen-Komparators; und
Fig. IG ein Beispiel einer wieder aufzufindenden Zeichenfolge.
Fig. 1 zeigt ein erstes Ausführungsbeispiel des erfindungsgemäßen Zeichenfölgen-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 Zeichenfölgen-Komparator entweder die Speicherung oder den Vergleich aus. Im Speicherbetrieb empfängt der Zeichenfölgen-Komparator Eingangsdaten sowie eine Speicheradresse und schreibt die Eingangsdaten in eine Spalte der Speicherzellen-Matrix ein, die aufgrund der Speicheradresse ausgewählt wurde. Als Daten können beispielsweise ein Text, ein Abbild (image), ein Bild
- 10 -
(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 Zeichenfölgen-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 Speicherfölgen-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. Wortoder Zeilenleitungen der Speichermatrix 110 sind einzeln bzw. in l:l-Relation mit Zei1enwähl-Leitungen eines Zeilen-Selektors 120 verbunden, der sowohl über e.inen 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 Schreibdaten- bzw. Daten-Schrei b-Generator 140 verbunden, der
- 11 -
über den Datenbus 101 Eingangsdaten empfängt und selektiv Schreibdaten- bzw. Daten-Schreib- Leitungen 141 aktiviert, die mit den Zeilenleitungen bzw. Zeilenwähl-Leitungen 121 der Speichermatrix 110 verbunden sind.
Darüber hinaus sind die Spaltenleitungen bzw. Spaltenwähl -Lei tungen 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 Schiebe- - bzw. Shift-Signal 165 wahlweise auszugeben. Der Eingang eines jeden Registers ist mit dem Ausgang des entsprechenden UND-Gutters 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-Lei tung 191 sowie einen Ausgangsdatenbus 192 zur Abgabe der Vergleichsadresse auf.
- 12 -
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 JxK 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 χ K χ M Zeilen und N Spalten aufgebaut ist. Mit anderen Worten, die Speichermatrix' 110 hat eine Speicherkapazität von 2 χ K χ M Worten aus N Bits. Daher kann die Speichermatrix 110 beispielsweise aus KxM Blocks zusammengesetzt sein, die jeweils aus 2, Reihen und N Spalten von Speicherzellen bestehen und beispielsweise eine Kapazität von 2 Worten ä N Bits aufwei sen.
In diesem Fall ist die Anzahl der Bits des Zählers 150, der einen der Blocks bezeichnet bzw. ansteuert, größer als log2 (K χ M). Die Bit-Anzahl der Registrierungsadresse 132 und die der Vergleichsadresse 192, die beide Spalten der Speichermatrix 110 ansteuern, beträgt jeweils log9 N.
- 13 -
Der Zeiehenfölgen-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ängeeiner in einer Spalte speicherbaren Zeichenfolge) mit 8 und die Anzahl Speicherzellen in der Speichermatrix 110 mit VMBit angenommen werden, beträgt die Anzahl der Spalten N=4.096. 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 ä 4.096 Bits 4.096 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 Figur ist als Beispiel eine Zeichenfolge "RAM"
- 14 -
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, 4D" 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 0-ten bis 5-ten Blocks jeweils in der 5-ten, 2-ten, 4-ten, 1-ten, 4-ten und D-ten 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 Zeilenfölgen-Komparator in Speicherbetrieb gebracht. Als Antwort auf das Betriebsart-Signal 103 mit "1" dekodiert der Spalten-
- 15 -
Selektor 130 die Adresseninformation, die die Adresse "J" ergibt und über dem Adressenbus 132 geliefert wird. Der Spalten-Selektor 130 treibt selektiv die J-te Spaltenwähl -Lei tung 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 Zei1enselektor 120 den 0-ten Block der Speichermatrix 110 an und treibt parallel alle Zeilenwähl-Leitungen 121 im 0-ten Speicherblock.
Wie schon dargestellt, wird die Folge "RAM" im ASCII-Code mit "52, 41, 4D" wiedergegeben und jedes Zeichen in zwei Tei1datenelemente 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-Schrei b-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 Reihe eines jeden Blocks der Speichermatrix 110, der mit dem Wert "5" in Hexadezimal-Notierung über die Eingangsdaten 101 bestimmt wird. Wie sich aus Figur 2 ergibt, wird auf diese Weise synchron
- 16 -
• U-
mit dem Schreibimpuls 104 eine "1" gespeichert und zwar in der 5-ten Reihe, 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 0-ten Block, was durch Zähler 150 über den Reihen-Selektor bestimmt wird. Wenn der Schreibvorgang der ersten Tei1 information 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 11D" wiederholt. Nach Beendigung aller Operationen sind die Eingangsdaten in der J-ten Spalte des Speichers 110 - wie in Figur 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.
- 17 -
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 treibt der Zeilen-Selektor 120 selektiv eine Reihenwä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 Α-Eingang, wenn das Übertragssignal 165 angelegt wird. An den Α-Eingang des 0-ten Schalters ganz links wird immer "1" angelegt. Die Α-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.
- 18 -
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 treibt der Reihen-Selektor 120 nacheinander die 5-te Reihe des 0-ten Blocks, die 2-te Reihe des l-ten Blocks, die 4-te Reihe des 2-ten Blocks, die !-Reihe des 3-ten Blocks, die 4-te Reihe des 4-ten Blocks und die D-te Reihe des 5-ten Blocks. Die in den jeweiligen auf diese Weise angesteuerten Reihen 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 betrieben werden und den Α-Eingang aller Schalter ausgeben. Da alle Register der Registergruppe 180 durch das Anfangs-
- 19 -
Setz-Signai 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 Figur 2 ersichtlich, wird "!"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 16-te 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 120 entsprechend der J-ten Spalte "1" werden, während von den anderen Registern 180 "0" ausgegeben wird.
- 20 -
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 192 "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 Reihen-Selektor 120 im Laufe des Vergleichsbetriebs zugeleitet wurden, die Anzahl der Speicherblocks übersteigt. Dann liefert der Zähler 150 als Ausgangssignal
- 21 -
ία-
ein Übertragssignal 165 an jeden Schalter 160, um dessen Ausgang mit dessen Α-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 Ausgangsignal 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 Figur 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
- 22 -
■ Ml·'
gibt der Kodierer 190 die nächste Vergleichsadresse 192 ab. Durch sequentielle Erzeugung des Rückstel1 signals 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 Zeichenfölge-Komparator der oben beschriebenen Art kann unter Verwendung eines herkömmlichen Speichers für 2 χ K χ M Worte a N Bits hergestellt werden. Der Zeichenfölgen-Komparator ist in der Lage, den Vergleich für eine Folge mit bel-iebiger Länge auszuführen.
Figur 3 zeigt ein Ausführungsbeispiel des Zeilen- bzw. Reihen-Selektors 120 des Zeichenfolgen- Komperators gemäß Figur 1. Der dargestellte Zeilen- Selektor 120 weist einen die Eingangsdaten 101 empfangenden Zeilen-Dekoder 310 auf sowie einen Block-Dekoder 320, der den Inhalt 155 des Zählers 155 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,
- 23 -
treibt. Der Zei!en-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änge 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.
- 24 -
. So-
Im Speicherbetrieb wird eine "1" als Betriebswahl signal 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 Zei1enwä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 Vertriebswahl signal 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 Si,gnal "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.
- 25 -
Figur 4 gibt ein Ausführungsbeispiel des Spalten-Selektors 130 des Zeichenfölgen-Komparators gemäß Figur 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 -Lei tungen 131 an, die durch die Speicheradresse
- 26 -
132 ausgewählt ist, und ermöglicht es, daß die Eingangsdaten in die wahlweise getriebene Spalte eingeschrieben werden.
Da im Vergleichsbetrieb eine "O" 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.
Figur 5 zeigt ein Ausführungsbeispiel des Daten-Schrei b-Generators 140 des Zeichenfölgen-Komparators gemäß Figur 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 wird. Aus Figur 5 ergibt sich, daß jeder Ausgang des Dekoders 510 verzweigt ist und mit der Daten-Schrei b-Leitung 141 gleicher Nummer eines jedes Speicherblocks verbunden ist.
- 27 -
Als Dekoder 510 kann auch der Zeilen-Decoder 310 verwendet werden, wie er beim Zeichenföl gen-Komparator gemäß Figur 3 Verwendung findet. Aus diesem Grund sind die Ausgangsleitungen des Zeilen-Dekoders 310, wie in Figur 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.
Figur 6 gibt ein weiteres Ausführungsbeispiel des Daten-Schrei b-Generators 140 des Zeichenfölgen-Komparators gemäß Figur 1 wieder. Zusätzlich zum Dekoder 510 gemäß Figur 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 Figur 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 sechsteBit des niedrigstwertigen Bits 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 gleise -
chen 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 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-Schrei b-Leitungen 141 abgegeben.
In Figur 7 ist ein weiteres Ausführungsbeispiel des erfindungsgemäßen Zeichenfölgen-Komparators dargestellt. Der Zeichenfölgen-Komparator ist in der Lage, im Speicher gespeicherte Folgen zu löschen und die Adressen leerer Speicherbereiche auszulesen. Für diesen Zv/eck ist der Zeichenf öl gen-Komparator gemäß Figur 1 zusätzlich mit einer EXKLUSIV-ODER-Gatter-Gruppe 730 ausgestattet. Darüber hinaus wurden einige Änderungen am Speicher 110 und am Zei1en-Selektor 120 vorgesehen. An die Stelle des Speichers 110 tritt ein erweiterter Speicher 710, der sich aus einem, dem Speicher 110 in Figur 1 entsprechenden Speicherteil 704 und
- 29 -
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äß Figur 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 Zei1enwä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 jeweiligen EXKLUSIV-ODER-Gatters 730 ist mit dem ersten Eingang des zugehörigen UND-Gatters in der UND-Gatter-Gruppe 170 verbunden. Das invertierte Signal 731 wird ebenfalls dem Zähler 150 zugeleitet, so daß dieser entweder durch das Anfangs-Setz-Signal 151 oder durch das invertierte Signal 731 gelöscht wird. Darüber hinaus wird ein erstes Betriebswahl signal (Ml) 732 sowie ein zweites Betriebswahl-Signal (M2) 733 dem Zei1en-Selektor 720 zugeleitet. Das zweite Betriebswahlsignal 733 ist ähnlich dem Betriebswahlsignal 103 im Ausführungsbei-
- 30 -
spiel gemäß Figur 1 und wird daher dem Spalten-Selektor 130 zugeleitet. Das erste Betriebswahlsignal 732 wird auch an die Daten-Schreib-Leitung des Indikators gelegt.
Die übrigen Elemente, wie beispielsweise der Spalten-Selektor 130, der Daten-Schreib-Generator 140, die Schaltergruppe 160, die UND-Gatter-Gruppe 170, die Register-Gruppe 180 und der Kodierer 190 können die gleichen sein, wie bei dem Zeichenfölgen-Komparator gemäß Figur 1. Daher entfällt eine Beschreibung derjenigen Elemente, die mit denen in Figur 1 übereinstimmen.
Der Zeichenfolgen-Komparator kann wahlweise einen der folgenden Betriebszustände entsprechend den logischen Werten des ersten Betriebswahlsignals (Ml) 732, des zweiten Betriebswahlsignals (M2) 733 und des invertierten Betriebssignals (I) 731 annehmen. Unter der Verwendung der Bezeichnung der Signale als (Ml, M2, 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
- 31 -
. of·
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 ausgewählten Speicherblocks parallel zusammen mit der Zeichenwähl -Leitung 721 des Indikators 706 durch den Zeilen-Selektor 720 getrieben, der als erstes und zweites Betriebswahlsignal 732, 733 eine "1" empfängt. Da das erste Betriebswahlsignal 732 an die Daten-Schreib-Leitung des Indikators 706 gelegt wird, wird ein Binärsignal "1", das anzeigt, daß die Spalte mit Speicherinformation besetzt worden ist, in der Spalte des Indikators 706 gespeichert, die durch die Speicheradresse 132 bestimmt wird. Im Speicherteil 704 wird danach die Folge genau wie im Speicher 110 des Zeichetnfolgen-Komparators gemäß Figur 1 gespeichert.
Im Löschbetrieb treibt der Reihen-Selektor 720 ebenfalls die Reihenwähl-Leitung 721 des Indikators 706. Da jedoch das erste Betriebswahl signal 732 "0" an die Datenschrei bleitung des Indikators 706 gelegt wird, wird ein Binärsignal "0" in der Spalte des Indikators 706 gespeichert, die durch die Speicheradresse 132 bestimmt wird.
- 32 -
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 Betriebswahl signal 732, das zweite Betriebswahl signal 733 und als das invertierte Betriebssignal 731 angelegt. Dann treibt der Zei1enselektor 720 nur die Zei1enwählleitung 721 des Indikators 706, während der Spalten-Selektor 130 alle Spaltenwähl-Leitungen 131 parallel treibt. Dadurch wird der Inhalt des Indikators 706 über die mit dem Speicher 710 verbundenen Auslese-Leitungen 111 ausgegeben. 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 Betriebssi cjnal s 731. Folglich gibt das EXKLUSIV-ODER-Gatter das invertierte Signal des Auslesesignals 111 des Indikators 706 ab. Dieser Ausgangswert wird einem der Eingänge der zugehörigen UND-
- 33 -
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 Übertragssignal 165 abgegeben, da der Zähler 150 durch das invertierte Betriebssignal 131 "1." gelöscht wird. Daraufhin wählt jeder Schalter den Α-Eingang und gibt ein Binärsignal "1" an die UND-Gatter ab.
Dadurch wird jedes Auslesesignal 111 über das UND-Gatter 170 synchron mit dem Taktsignal 152 in das zugehörige 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 gespeicherte "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 eis noch leere Spalten gibt, wird eine "1" abgegeben, sonst eine "0".
Der Zeichenfolgen-Komparator ist ebenfalls in der Lage, lange Eingabefolgen, die jeweils zur Speicherung mehrerer Spalten benötigen, wie dies beim Zeichenfolgen-Komparator gemäß Figur 1 dargestellt ist. Wenn
- 34 -
(,ο-
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 zugeleitet wird, gibt der Zähler 150 als Ausgangssignal weiter das Übertragungssignal 165 ab, weil er als invertiertes Signal 731 die "1" empfängt. Durch das Übertragungssignal 165 wählt jeder Schalter in der Schaltergruppe 160 seinen Α-Eingang und benachbarte Register 180 sind über die UND-Gatter 170 in Serie verbunden. Wenn die Taktsignale 152 η-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 η leere Spalten hintereinander haben. Die Adressen der Spalten werden über den Kodierer 190 als Vergleichsadresse 192 ausgegeben. Die Hauptadresse der in η aufeinanderfolgenden Spalten gespeicherten Referenzfolge kann dadurch erhalten werden, daß η 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-
- 35 -
adresse kann ein Speichervorgang ähnlich dem anhand des ersten Ausführungsbeispiels gemäß Figur 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 jedes Register 180 gesetzt wird. Danach werden 3 Betriebssignale der Werte (0,0,0) und das Taktsignal 152 angelegt. Dann treibt der Reihenselektor 720 die Reihenwähl-Leitung 721 des Indikators 706, während der Spalten-Selektor 130 alle Spaltenwähl-Leitungen 131 parallel treibt. Dadurch wird der Inhalt des Indikators 706 über die mit dem Speicher 710 verbundenen Auslese-Leitungen 111 ausgegeben. Das Auslesesignal 111 einer jeden Spalte wird dann an den einen Eingang eines jeden EXKLUSIV-ODER-Gatters in der EXKLUSIV-ODER-Gatter-Gruppe 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-
- 36 -
nal 165 ausgegeben. Folglich wählt jeder Schalter in der Schaltergruppe 160 den Α-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 entsprechen, 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 Taktsignal 152 als Tei1information der Referenzfolge angelegt, so daß der Vergleich genau wie bei dem Zeichenfolgen-Komparator gemäß Figur 1 ausgeführt wird.
Wie oben beschrieben, kann der Zeichenfölgen-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
- 37 -
aufeinanderfolgender leerer Spalten mit beliebiger Länge als Vergleichsadresse 192 ausgegeben werden kann, wodurch der Zeichenfölgen-Komparator wesentlich vereinfacht wird.
Figur 8 zeigt ein Ausführungsbeispiel des Zeilenselektors 720 des Zeichenfölgen-Komparators gemäß Figur 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 Zeilenwählteil 810 entspricht dem Zei1enSelektor 120 des Zeichenfolgen-Komparators gemäß Figur 3. Die drei Gatter 820, 830 und 840 empfangen entsprechend zwei Betriebswahlsignale 732 und 733. Der Ausgangswert des EXKLUSIV-ODER-Gatters 820 wird invertiert und dann weitergeleitet, um die Signal eingänge des Zeilen-Dekoders 310 und des Block-Dekoders 320 im Zeilen-Selektor 120 freizugeben. Wenn das eingegebene Freigabesignal "0" ist, nimmt jeder Ausgang des Zeilen-Dekoders 310 ü"nd des Block-Decoders den Wert "0" an. Das Ausgangssignal des UND-Gatters 830 wird dem Betriebssignaleingang 103 der ODER-Gatter-Gruppe 330 gemäß Figur 3 zugeleitet. Zusätzlich ist der Ausgang des ODER-Gatters 840 mit der Zei1enwähl-Leitung 721 des Indikators 706 verbunden.
- 38 -
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" zugeleitet wird, da die Freigabesignal eingänge der beiden Dekoder 310 und 320 mit dem logischen Pegel "1" versorgt werden, treibt der Zeilen-Selektor 720 parallel die Zei1enwähl-Leitungen 121 und 721 vergleichbar zum Speicherbetrieb des ersten Ausführungsbeispiels gemäß Figur 1. Im Vergleichsbetrieb, in dem "0" sowohl der Leitung für das erste Betriebswahl signal 732 als auch der Leitung für das zweite Betriebswahl signal 733 zugeführt wird, treibt, da gleichzeitig eine "1" an den Freigabesignal eingang der Dekoder 310 und 320 zugeleitet wird, der Zeilen-Selektor 720 wahlweise eine Zeilenwä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ührungsbeispiels gemäß Figur 1. In anderen Situationen, bei denen die Kombination des ersten und zweiten Betriebswahlsignals 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 Zeichenfölgen-Komparators ausgeführt werden durch Steuerung der beiden Betriebssteuersignale, die für das Treiben der Zeilenwähl-Leitungen 121 und 721 zuständig sind.
Figur 9 zeigt ein drittes Ausführungsbeispiel des erfin-
- 39 -
dungsgemäßen Zeichenfölgen-Komparators. Dieser Komparator unterscheidet sich von dem gemäß Figur 1 in mehreren Punkten:
Er enthält zwei Speicher 110, zwei Zei1en-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 Zeichenfolgen-Komparator gemäß Figur 1 dar, bei dem der 8-Bit-ASCII-Code als Serie zweier 4-Bit-TeiIdatenelemente aus den 4 höchstwertigen beziehungsweise de.n 4 niedrigstwertigen Datenbitsseriell eingegeben wird. Daher ist der zum Vergleichen und Speichern nötige Zeitbedarf gegenüber dem Zeichenfölge-Komparator gemäß Figur 1 auf die Hälfte reduziert.
Es können die gleichen Speicher 110, Zei1en-Selektoren
120, Spaltenselektoren 130, Daten-Schreib-Generatoren
140, dergleiche Zähler 150, diegleiche Schaltergruppe
160, UND-Gatter-Gruppe 170, Registergruppe 180 und
- 40 -
j ο 4 5 ι 2 ο
dergleiche Kodierer 190 wie in Figur 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 Ausgangssignale der UND-Gatter-Gruppe 910 werden in die UND-Gatter-Gruppe 170 eingegeben, ohne in die Schaltergruppe 160 eingegeben zu werden und die Ausgangssignale der Registergruppen 180 werden der Schaltereinheit 160 zugeleitet, ohne der UND-Gatter-Gruppe 170 zugeleitet zu werden.
Jedes Zeichen der gespeicherten Folgen und der Referenzfolgen wird als 8-Bit-ASCII-Code und parallel in die Speicher 110 eingegeben, indem die Folgen in zwei 4-Bit- - Tei1-Daten-Elemente aufgespalten werden, nämlich in die vier höchstwertigen und in die vier niedrigstwertigen Datenbits. Die Auslesesignale 111 der jeweiligen 4-Bit-Tei!daten eines jeden Speichers 110 werden in die UND-Gatter-Gruppe 910 eingegeben und dann an die UND-Gatter-Gruppe 170 ausgegeben. Die Ausgangswerte (Ter UND-Gatter-Gruppe 910 entsprechen den Auslesesignalen 111 in Figur 1. Die Ausgangssignale der UND-Gatter-Gruppe 910 zeigen an, ob jedes Zeichen der gespeicherten 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
- 41 -
jedes Zeichen der gespeicherten Zeichenfolge erzeugt. Das Ausgangssignal des UND-Gatters wird in dem zugehörigen Register der Registergruppe 180 gespeichert. Das Vergleichsergebnissignal 181, das heißt das Ausgangssignal des Registers 180, wird über den Kodierer 190 als Vergleichsadresse 192 ausgegeben. Auf diese Weise wird der Vergleich wie in dem Zeichenfolgen-Komparator gemäß Figur 1 ausgeführt.
Bei der Speicherung werden ASCII-Codes für jedes Zeichen gemäß dem in Figur 2 gezeigten Muster in den beiden Speichern 110 gespeichert, wie dies bei dem Komparator gemäß Figur 1 geschieht, nachdem eine Aufteilung in zwei 4-Bit-Tei1 daten stattgefunden hat, nämlich in die höchstwertigen vier Datenbits und in die vier Teildatenbits niedrigster Wertigkeit.
Wie oben beschrieben ist die zur Speicherung und zum Vergleich nötige Zeit gegenüber dem String- bzw. Zeichenfol gen-Komparator gemäß Figur 1 wesentlich abgekürzt. Die Elemente des Zeichenfölgen-Komparators können reduziert werden, indem der Zeichen-Dekoder 310 im Zeichenselektor 120 ebenfalls als Daten-Schreib-Generator 140 verwendet wird und indem einer der beiden Block-Dekoder 320 in den beiden Zei1en-Selektoren weggelassen wird. Wenn die zugehörigen Auslesesignale 111 der beiden Speicher 110 miteinander durch verdrahtete
- 42 -
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 Betriebsgeschwindigkeit wesentlich gesteigert.
Zusätzlich kann der Zeichenfölgen-Komparator mit einem Indikator zur Anzeige der Besetzung der Spalten des Speichers 110 gemäß Figur 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 Zeichenfölgen-Komparator mit herkömmlichen, preiswerten Speicherzellen hergestellt werden, wodurch sich die Kosten reduzieren lassen. Ein Zeichenfölgen-Komparator, der in der Lage ist, N Eingangsfolgen zu speichern, wobei jede Folge aus M Elementen von J mal K Bits langen Zeichen zusammengesetzt ist, kann mit Hilfe eines Speichers mit 2 χ K χ M Worten ä N Bits oder mit K Speichern hergestellt werden, wobei jeder Speicher eine Kapazität von 2 mal M Worten zu N Bits hat. Daher können unter Verwendung eines 1 MBit-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 dargestellt ist.
Wie gesagt ist der Zeichenfölge-Komparator bei Verwen-
- 43 -
dung eines 1 MBit-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 beziehungsweise 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 Schiüsselworte beim Stand der Technik stellt der erfindungsgemäße Zeichenfölgen-Komparator eine bahnbrechende Vorrichtung dar.
Der Zeichenfölgen-Komparator kann auch bei der Klassifizierung spezifischer Sequenzen in Systemen zur Mustererkennung beispielsweise einer Vorrichtung zur optischen Zeichenerkennung (OCR) und einer Spracherkennungsvorrichtung verwendet werden. Ein nur aus einem hochintegrierten (LSI-)Chip bestehender Zeichenfolgen-Komparator kann als Wörterbuch für die Übersetzung menschlicher Sprache verwendet werden. Mit 10 solcher Chips kann ein etwa 80000 Worte des praktischen Bedarfs umfassendes 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
- 44 -
die entsprechenden Worte auf einem Chip oder 80000 Übersetzungen insgesamt auf 10 Chips sofort nach der Eingabeoperation der Folgen erhalten werden. Der herkömmliche RAM ist in der Lage, verschiedene Informationen entsprechend dem Klassifikationskode der Folgen zu speichern, so daß verschiedene Informationsverarbeitungsfunktionen ausgeführt werden können. Wenn beispielsweise Verarbeitungsbefehle für den Klassifikationskode von Folgen entsprechend einem Sprachteil-Code (part-of-speech-code), entsprechend der Häufigkeit des Erscheinens von spezifischen Folgen und entsprechend aus Folgen zusammengesetzter Sätze gespeichert werden, kann eine Sammlung und Anordnung von Wissensinformationen leicht hergestellt werden.
Zusätzlich kann der Zeichenfölgen-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 Komparator ist darüber hinaus in der Lage, leere Spalten mit b-eliebiger 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 Zeichenfölgen-Komparators gilt folgendes: Eine Zykluszeit T- eines im
- 45 -
u-
Speicher 110 oder 710 verwendeten RAMs entspricht der Verarbeitungszeit für ein Zeichen in einer Folge. Angenommen Tp 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 ausgeführt wird. Auf diese Weise kann die Vergleichszeit mit Hilfe des erfindungsgemäßen Zeichenfölgen-Komparators wesentlich abgekürzt werden.
Mit dem erfindungsgemäßen Zeichenfölgen-Komparators werden zwei wichtige Probleme gelöst, die bei der Datenverarbeitung 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 Zeichenfölgen-Komparator gemäß der Erfindung mittels eines LSI-Chips hergestellt werden kann, wie sie für die Extraktion von Schlüsselworten aus Originaltextdateien, für ei'n Wörterbuch zur Übersetzung menschlicher Sprachen und für die Klassifizierung spezifischer Sequenzen in Mustererkennungssystemen notwendig sind.
Die Erfindung wurde anhand spezieller Ausführungsbei-
- 46 -
η-
spiele dargestellt und beschrieben. Es ist jedoch festzuhalten, daß die Erfindung in keiner Weise auf die dargestellten Strukturen begrenzt ist, sondern daß vielmehr Änderungen und Abweichungen vorgenommen werden können, ohne daß der Rahmen der Erfindung verlassen würde.
- 47 -

Claims (38)

Zeichenfolgen-Komparator RICHARD GLAWE Dr.-lng WALTER MOLL Dipl.-Phys. Dr. rer.nat. ULRICH GLAWE Dipl.-Phys. Dr. rer. nat. 8000 München 26 Postfach 260162 Liebherrstraße 20 Tel. (089) 226548 Telex 5 22 505 Telefax (089) 223938 MÜNCHEN KLAUS DELFS Dipl.-Ing. ULRICH MENGDEHL Dipl.-Chem. Dr. rer. nat HEINRICH NIEBUHR Dipl.-Phys. Dr. phil. habil. 2000 Hamburg 13 Postfach 2570 Rothenbaumchaussee Tel.(040)4102008 Telex 212921 Telefax (040) 458984 Patentansprüche
1. Zeichenfölgen-Komparator zum Aufsuchen der Adres
se einer gespeicherten Zeichenfolge mit einem Inhalt,
der im wesentlichen dem einer eingegebenen Referenzzeichenfolge entspricht, gekennzei chnet
durch
- einen eine Anzahl in Matrixform angeordnete Speicherzellen aufweisenden Speicher mit mehreren Zeilen und
mehreren Spalten, wobei die Zeilenposition einer
jeden Speicherzelle dem Inhalt der gespeicherten
•a-
Zeichenfolge und die Spaltenposition einer jeden Speicherzelle der Adresse der gespeicherten Zeichenfolge entspricht; und
- eine mit dem Speicher verbundene Einrichtung 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.
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 treibt.
3. Zeichenfölgen-Komparator nach einem der Ansprüche 1 bis 2, dadurch gekennzeichnet,
- daß mit allen Spalten der Speicherzellenmatrix eine Vorrichtung zum Auslesen und Ausgeben des Inhalts all der Speicherzellen einer Spalte verbunden ist, die zu der mittels der Zeilenwählvorrichtung ausgewählten Zeile gehören und dadurch,
- daßein Kodierer die Ausgangssignale der Auslesevor-
— 7-
richtung 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.
4. Zeichenfölgen-Komparator nach einem der Ansprüchel bis 3, 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 χ Κ χ Μ Worten mit je N Bits hat und in K χ Μ Speicherblocks unterteilt ist, die jeweils 2 Reihen 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 Mummer in den jeweiligen Speicherblocks gespeichert sind.
5. Zeichenfolgen-Komparator nach einem der Ansprüche 1 bis 4, dadurch gekennzeichnet, daß die Referenzfolge aus mehreren Zeichen zusammengesetzt ist, die jeweils JxK Bits haben und 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 Zeichen-
-3-
• L-
folgen-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.
6. Zeichenfölgen-Komparator nach einem der Ansprüche 1 bis 5, 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 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ähleinrich- ~tung empfängt, um den Zählerausgangswert zu dekodieren und KxM parallele Binärsignale zu erzeugen, die den Speicherblock repräsentieren, der dem Zählerausgang entspricht; und
- eine UND-Gatter-Gruppe mit 2 χ Κ χ Μ UND-Gattern, die in K χ Μ Gruppen unterteilt sind, wobei jede Gruppe 2 UND-Gatter aufweist und die ersten Ein-
-4-
gänge aller UND-Gatter einer Gruppe so verbunden sind, daß sie die parallelen Binärsignale des 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 Zeilen einzeln in 1:1 Relation mit den jeweiligen Zeilen der Speicherzel1enrr.atrix verbunden sind, so daß selektiv eine von dem ersten Dekoder entsprechend dem empfangenen Datenelement der Referenzfolge bestimmte Zeile in einem von dem zweiten Dekoder ausgewählten Speicherblock getrieben wird.
7. Zeichenfölgen-Komparator nach einem der Ansprüche 1 bis 6 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
-5-
denselben Inhalt hat wie die eingegebene Referenzfolge.
8. Zeichenfölgen-Komparator nach einem der Ansprüche 1 bis 7, 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 Speicherzellenmatriχ empfängt;
- eine Gruppe von N Registern, die alle den Ausgangs wert 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 zu 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
-6-
gespeichert wird, so daß es an den Kodierer weitergegeben wird.
9. Zeichenfölgen-Komparator nach einem der Ansprüchel bis 8, dadurch gekennzeichnet, daß am Anfang 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 Zeichenwählvorrichtung getrieben wurden.
10. Zeichenfölgen-Komparator nach einem der Ansprüche 1 bis 9, weiter g e k e η η.ζ ei c h η e t durch:
- eine Spaltenauswählvorrichtung, die so ausgelegt ist, daß sie parallel alle Spalten der Speicherzellenmatrix treibt, wenn der Komparator in Vergleichsbetrieb gebracht wird, wobei die Spaltenwählvorrichtung auf eine Eingabeadresse anspricht und selektiv eine Spalte der Speicherzellenmatrix entsprechend der Eingangsadresse treibt, wenn der Komparator in Speicherbetrieb gebracht wird;
- eine Vorrichtung zum Einschreiben der Eingabedaten in eine von der Spaltenwählvorrichtung ausgewählte
-7-
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 anfangenden 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.
11. Zeichenfolgen-Komparator nach Anspruch 10, dadurch gekennzeichnet, daß die gespeicherten Zeichenfolgen aus mehreren Zeichen zusammengesetzt ist, die jeweils eine Länge von JxK Bits haben, und wobei die Speicherzellenmatrix eine Speicherkapazität von 2 χ K χ M Worten zu N Bits hat und in K χ M Speicherblocks unterteilt ist, die jeweils aus 2 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 wird.
12. Zeichenfolgen-Komparator nach Anspruch 10 oder
-8-
11, 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 Lange von J Bits entsprechend einem Taktsignal nacheinander in den Zeichenfölgen-Komparator eingegeben werden, und wobei die Zeichenwähl vorrichtung mit einer Einrichtung zum Zählen der Taktsignale verbunden ist, um die Zeichenwähl vorrichtung mit dem Zählerausgangswert zu versorgen, der den Speicherblock bestimmt, welcher dem eingegebenen Datenelement der Länge J Bits entspricht.
13. Zeichenfölgen-Komparator nach einem der Ansprüche 10 bis 12, dadurch gekennzeichne t,daß die Zeilenwählvorrichtung folgende Elemente aufweist:
- einen ersten Kodierer, der die Datenelemente der zu vergleichenden Referenzfolge empfängt, um die Datenelemente in 2 parallele Binärsignale zu kodieren, die die Zei1enposition 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;
-9-
eine ODER-Gatter-Gruppe mit 2 ODER-Gattern, bei denen jeweils ein erster Eingang so verbunden ist, daß er das zugehörige kodierte Signal des ersten Kodierers empfängt und wobei die zweiten Eingänge aller ODER-Gatter so verbunden sind, daß sie das Betriebswahlsignal empfangen, das den Speicherbetrieb oder Vergleichsbetrieb angibt; und
eine UND-Gatter-Gruppe mit 2J χ Κ χ Μ UND-Gattern die in K χ Μ Gruppen unterteilt sind, wobei jede Gruppe 2J UND-Gatter aufweist und die UND-Gatter jeder Gruppe einen ersten Eingang haben, der so verbunden ist, daß er die Ausgangssignale der zugehörigen ODER- Gatter je einzeln, also in 1:1 Relation empfängt, wobei die anderen Eingänge so verbunden sind, daß sie 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 Betriebswahl signal der Speicherbetrieb angezeigt wird, alle Zeilen eines durch den zweiten Dekoder bestimmten Speicherblocks getrieben 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
-10-
■Μ-
einem durch den zweiten Kodierer bestimmten Speicherblock getrieben wird.
14. Zeichenfölgen-Komparator nach Anspruch 13, dadurch gekennzeichnet, daß die Lesevorrichtung folgende Elemente aufweist:
- eine Gruppe von N UND-Gattern, wobei jedes UND-Gatter einen Eingang aufweist, der so verbunden ist, daß er 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 Schalters 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ß
-11-
es an den Kodierer geliefert wird.
15. Zeichenfolgen-Komparator nach Anspruch 14, 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 getrieben wurden.
16. Zeichenfolgen-Komparator nach Anspruch 14, 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 Betriebswahl signal den Wert "1" annimmt,
-12-
wenn der Speicherbetrieb angeordnet ist, während es den Wert "0" annimmt, wenn der Vergleichsbetrieb angeordnet ist.
17. Zeichenfölgen-Komparator nach Anspruch 14, dadurch gekennzeichnet, daß die Spaltenwählvorrichtung einen Dekoder enthält, der die Eingabeadresse zum selektiven Treiben einer Spalte der Speicherzellenmatrix enthält, welche der Eingabeadresse entspricht.
18. Zeichenfölgen-Komparator nach Anspruch 14, 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 so verbun-
- den ist, daß er eines der zugehörigen parallelen Binärsignale empfängt und deren zweite Eingänge so verbunden sind, daß sie 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
-13-
jOHÖ I/O
durch die Eingabeadresse bestimmte Spalte der Speicherzellenmatrix selektiv getrieben wird, und wenn Vergleichsbetrieb angeordnet ist, alle Spalten der Speicherzellenmatrix der Speichereinrichtung getrieben werden.
19. Zei1enfölgen-Komparator nach Anspruch 14, dadurch gekennzei chnet , daß die Daten-Schreibeinrichtung einen Kodierer enthält, der die
zu speichernden Eingangsdaten empfängt, um parallele
Binärsignale aus 2 Bits erzeugt, wobei jedes dieser
Binärsignale der Zeilen gleicher Nummer aller Speicherblocks zugeleitet wird.
20. Zeichenfolgen-Komparator nach Anspruch 14, dadurch gekennzeichnet, daß die Daten-Schreibvorrichtung folgende Merkmale umfaßt:
- einen, die zu speichernden Eingangsdaten empfangenden Kodierer zur Erzeugung paralleler Binärsignale
- eine Gruppe von 2 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
-14-
aller Speicherblöcke verbunden ist.
21. Zeichenfölgen-Komparator nach Anspruch 20, dadurch gekennzeichnet, daßnureines der parallelen Binärsignale, die von der Daten-Schreibeinrichtung an die Zeile der Speicherzellenmatrix abgegeben werden, die für den Inhalt der zu speichernden Eingangsdaten bestimmt ist, den Wert "1" hat, während die anderen Binärsignale den Wert "0" haben.
22. Zeichenfölgen-Komparator gemäß Anspruch 14, dadurch g e k e η η ζ e i c h η e t , 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 weiterem Betriebsart-Signal getrieben wird und auch durch ein zweites Betriebswahl-Signal beschrieben wird.
23. Zeichenfölgen-Komparator nach Anspruch 22, ferner gekennzeichnet, durch eine Gruppe von EXKLUSIV-ODER-Gattern, deren jeweils erster Eingang mit der zugehörigen Spalte der Speicherzellenmatrix verbunden ist, deren zweiter Eingang ein Steuersignal empfängt, wobei ein Ausgang eines jeden EXKLUSIV-ODER-
-15-
Gatters mit dem einen Eingang des zugehörigen UND-Gatters verbunden ist.
24. Zeichenfölgen-Komparator nach Anspruch 14, dadurch g e k e η η ζ e i c h η e t , daß die Speichereinrichtung ein Paar von Speicherzellenmatrizen mit einer Speicherkapazität von 2 χ 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 treiben 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.
25. Zeichenfölgen-Komparator zum Suchen der Adresse einer gespeicherten Zeichenfolge, die im wesent-1-ichen den gleichen Inhalt wie eine eingegebene Referenzfolge aufweist, wobei jede Folge aus mehreren Zeichen zusammengesetzt ist, die jeweils eine Länge von JxK Bits aufweisen,
g e k en nzeichnet durch,
- eine Speichereinrichtung mit einem aus in Form einer Matrix mit 2 χ K χ M Zeilen und N Spalten angeordne-
-16-
ten Speicherzellen bestehenden Speicher und einem getrennten Indikator, der in einer Zeile mit N Spal-
ten angeordnet ist und die Besetzung einer jeden Spalte der Speicherzellenmatrix angibt;
- eine mit der Speichervorrichtung gekoppelten Vorrichtung zum Auswählen einer den zu vergleichenden Eingangsdaten entsprechenden Zeile der Speicherzellenmatrix der Speichervorrichtung;
- eine Vorrichtung zum Zählen der Eingangsdaten in Abhängigkeit von einem Taktsignal und zum Ausgeben des Inhalts der Zeilenwählvorrichtung;
- eine Lesevorrichtung zum Lesen des Inhalts der Speicherzellen, die zu der durch die Zeilenwählvorrichtung ausgewählten Zeile gehören und zum Ausgeben des Inhalts der Speicherzellen der Spalte der ausgewählten Zeile und
- einen die Ausgangssignale der Lesevorrichtung empfangenden Kodierer, der den Inhalt der Speicherzellen der Spalte in der ausgewählten Zeile jeweils in eine Adresse für die zu suchenden Eingabedaten kodiert.
26. Zeichenfolgen-Komparator nach Anspruch 25, dadurch g e k e η η ζ e i c h η e t , daß die Zeichenwählvorrichtung folgende Merkmale aufweist:
- einen ersten zu vergleichende und zu speichernde Eingabendaten empfangenden Dekodierer, der-die Daten
-17-
in Signale dekodiert, die der Zeile der Speicherzellenmatrix entsprechen und die Zeilenposition der Speicherzellenmatrix wiedergeben, die dem Inhalt der Eingabedaten entspricht;
einen den Inhalt der Zählvorrichtung empfangenden zweiten Dekoder, der den Inhalt in Signale dekodiert, die der Zeile der Speicherzellenmatrix entsprechen und die dem Inhalt entsprechende Zeilenposition der Speicherzellenmatrix wiedergeben; eine UND-Gatter-Gruppe mit 2 ODER-Gattern, deren ODER-Gatter einen ersten Eingang aufweisen, die das eine zugehörige dekodierte Signal von dem ersten Dekoder empfangen, sowie einen zweiten Eingang haben, der ein Betriebswahl-Signal empfängt, das den Speicherbetrieb bzw. den Vergleichsbetrieb angibt; und eine UND-Gatter-Gruppe mit 2J χ Κ χ Μ UND-Gattern, bei der jedes UND-Gatter jeweils eines der dekodierten Signale des Dekoders sowie das Ausgangssignal der zugehörigen ODER-Gatter in der ODER-Gatter-Gruppe empfängt;
ein EXKLUSIV-ODER-Gatter, das zwei Betriebswahl signale empfängt und ein Signal abgibt, das die Eingänge sowohl des ersten als auch des zweiten Dekoders freigibt;
ein UND-Gatter, das dieselben beiden Betriebswahlsignale empfängt und ein Signal an die zweiten Ein-
-18-
gänge aller ODER-Gatter der ODER-Gatter-Gruppe abgibt; und
- ein ODER-Gatter, das dieselben beiden Betriebswahlsignale empfängt und ein Signal abgibt, um die mit dem Indikatorteil verbundene Leitung zu treiben.
27. Zeichenfölgen-Komparator nach Anspruch 25, weiter g e k e η η ζ e i c h η e t durch,
- eine mit allen Spalten der Speicherzellenmatrix verbundene Vorrichtung zum Lesen und Ausgeben des Inhalts der Speicherzellen aller zu einer von der Zeilenwählvorrichtung gewählten Zeile gehörenden Spalten und
- einen Kodierer, der die Ausgangssignale der Lesevorrichtung empfängt und in eine Adresse für die gespeicherte Zeichenfolge kodiert, die im wesentlichen den gleichen Inhalt wie die eingegebene Referenzfolge aufweist.
28. Zeichenfölgen-Komparator nach Anspruch 25, g~ekennzei cn net durch folgende Merkmale der Leseeinrichtung
- eine Gruppe von N EXKLUSIV-ODER-Gattern, die alle einen ersten mit der zugehörigen einen Spalte der Speicherzellenmatrix verbundenen ersten Eingang haben, um das Auslesesignal zu empfangen sowie einen zweiten Eingang aufweisen, der ein invertiertes Be-
-19-
triebssignal empfängt;
- eine Gruppe von N UND-Gattern, deren erster Eingang so angeschlossen ist, daß er das Ausgangssignal der zugehörigen EXKLUSIV-ODER-Gatter empfängt ;und
- eine Gruppen von N Schaltern, die jeweils einen ersten Eingang aufweisen, der mit dem Ausgang des Registers, der neben dem Schalter angeordneten Spalte verbunden ist, und wobei jeder Schalter einen zweiten Eingang aufweist, der mit dem Ausgang des Registers verbunden ist, das in der gleichen Spalte wie der Schalter angeordnet ist, wobei ein Ausgang eines jeden Schalters mit dem anderen Eingang des zugehörigen UND-Gatters verbunden ist, so daß das logische Produkt der sequentiell ausgelesenen Signale einer jeden Spalte der Speicherzellenmatrix durch das entsprechende UND-Gatter gewonnen und dann in dem zugehörigen Speicher gespeichert wird, so daß es dem Kodierer zugeleitet wird.
29. Zeichenfölgen-Komparator gemäß Anspruch 28, dfadurch gekennzei chnet , daß bei Beginn der Eingabe der Referenzfolge an die Speichereinrichtung jedes Register initialisiert und jeder Schalter so gesteuert wirü, daß sein erster Eingang mit dem Ausgang verbunden ist, und das danach jeder Schalter in einer Stellung gehalten wird, in der sein zweiter Eingang mit seinem Ausgang verbunden ist, bis alle
-20-
Speicherblocks vom ersten bis zum letzten Speicherblock von der Zeilenwählvorrichtung einmal getrieben wurde.
30. Zeichenfolgen-Komparator nach Anspruch 25, dadurch gekennzeichnet, daß die Speicherzellenmatrix mit 2 χ K χ M Worten ä N Bits in K χ M Speicherblocks unterteilt ist, so daß die Eingangsdaten mit einer Länge von JxK Bits in K Elemente mit J Datenbits unterteilt und die K Elemente der Daten nacheinander in der Spalte mit gleicher Nummer in den jeweiligen Speicherblocks durch Zusammenwirken der Zeilenwahlvorrichtung und der Datenschreibvorrichtung gespeichert werden.
31. Zeichenfolgen-Komparator nach Anspruch 28, dadurch gekenn ζ ei chnet, daß die Betriebsarten durch den logischen Wert des ersten Betriebswahl-Signals (Ml), des zweiten Betriebswahl-Signals (M2) und des invertierten Betriebssignals (I)5 dargestellt als (Ml, M2, I), folgendermaßen gesteuert wird:
(0, 0, 0) Vergleichsbetrieb; (0, 1, X) Löschbetrieb;
(1, 0, 1) Auslesen des Inhalts des Indikatorteils; (1, 1, 0) Speichern von Zeichenfolgen, wobei "X" den Wert "1" oder "0" annehmen kann.
32. Zeichenfolgen-Komparator nach Anspruch 21,
-21-
dadurch gekennzeichnet, daß im Speicherbetrieb eine "1" in der durch die Speicheradresse bestimmte Spalte der Indikatoreinrichtung gespeichert wird.
33. Zeichenfölgen-Komparator nach Anspruch 31, dadurch gekennzeichnet, daß im Löschbetrieb eine "1" in die Spalte der Indikatorvorrichtung gespeichert wird, wenn die Eingangsdaten in der Spalte gleicher Nummer der Speichervorrichtung gespeichert ist, während ansonsten "0" gespeichert wird.
34. Zeichenfölgen-Komparator nach Anspruch 34, dadurch gekennzeichnet, daß beim Auslesebetrieb eine "1" vom Kodierer ausgegeben wird, wenn leere Spalten vorhanden sind, während sonst "0" ausgegeben wird.
35. Zeichenfölgen-Komparator nach Anspruch 31, dadurch gekennzeichnet, daß im Vergleichsbetrieb vom Kodierer eine "1" ausgegeben wird, wenn die Referenzdaten identisch mit den gespeicherten Daten sind, während ansonsten eine "0" ausgegeben wird.
36. Zeichenfolgen-Komparator zum Aufsuchen der Adresse von eingegebenen Referenzdaten, die mit schon als N Arten von Folgen gespeicherten Daten verglichen
-22-
werden sollen, wobei jede Folge aus M Elementen zu je J X K Bit langen Zeichen zusammengesetzt ist, zum Löschen der gespeicherten Daten und zum Auslesen leerer Adressen,
gekennzeichnet durch,
- mehrere Speichervorrichtungen, die jeweils einen
aus in Form einer 2 χ K χ M Zeilen und N Spalten aufweisenden Matrix angeordneten Speicherzellen bestehenden Speichersowie einen getrennten Indikator, der in einer Reihe mit N Spalten angeordnet ist und dazu dient, die Belegung einer jeden Spalte der Speicherzellenmatrix anzuzeigen;
- mehrere Reihenwählvorrichtungen, die mit jeder Speichervorrichtung verbunden sind, zum Auswählen einer Zeile der Speicherzellenmatrix der Speichervorrichtung entsprechend den zu vergleichenden Eingangsdaten;
- eine Eingangsdaten in Abhängigkeit von einem Taktsignal zählende Zählvorrichtung zum Ausgeben des Inhalts der Zeilenwählvorrichtung;
- eine Spaltenwählvorrichtung, die in Abhängigkeit von in einer Eingabeadresse zu speichernden Eingabedaten Spalten der Matrix der Speichervorrichtung entsprechend der Eingabeadresse auswählt;
- mehrere Datenschreibvorrichtungen, die jeweils zu speichernde Eingabedaten in die Spalte mit der gleichen Nummer einer jede von der Spaltenwählvorrichtung
-23-
ausgewählten Spalte der Matrix einschreiben;
- eine Lesevorrichtung zum Lesen des Inhalts der Speicherzellen, die zu einer durch die Zeilenwählvorrichtung ausgewählten Zeile gehören, und zum Ausgeben des Inhalts der Speicherzellen der Spalte der ausgewählten Zeile; und
- einen das Ausgangssignal der Schreibvorrichtung empfangenden Kodierer, der den Inhalt der Speicherzellen der Spalte der entsprechend der Adresse für die zu suchenden Eingangsdaten ausgewählten Zeile kodiert.
37. Zeichenfolgen-Komparator gemäß Anspruch 36, dadurchgekennzeichnet, daß die Schreibvorrichtung folgende Merkmale aufweist:
- eine Gruppe von N UND-Gattern, deren einer Eingang so verbunden ist, daß er das Auslesesignal der zugehörigen Spalte der Speicherzellenmatrix empfängt;
- eine Gruppe von N Registern, die jeweils das Ausgangssignal der zugehörigen UND-Gatter empfangen und festhalten, um das Auslesesignal an den Kodierer auszugeben; und
- eine Gruppe von N Schaltern, die jeweils einen ersten Eingang haben, der mit dem Ausgang des Registers verbunden ist, das zu der mit dem Schalter benachbarten Spalte gehört, die jeweils einen zweiten Eingang aufweisen, der mit dem Ausgang des Registers verbunden ist, das zu derselben Spalte wie der Schalter gehört,
-24-
• as-
wobei ein Ausgang eines jeden Schalters mit dem anderen Eingang des zugehörigen UND-Gatters verbunden ist, so daß das logische Produkt der sequentiellen Auslesesignale einer jeden Spalte der Speicherzellenmatrix durch die zugehörigen UND-Gatter erhalten und dann in dem zugehörigen Register gespeichert wird, so daß es dem Kodierer zugeleitet wird.
38. Zeichenfolgen-Komparator nach Anspruch 36, dadurch gekennzei chnet , daß die Eingabedaten geteilt und parallel allen Zeilenwählvorrichtungen zugeführt werden.
-25-
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 true DE3545125A1 (de) 1986-09-04
DE3545125C2 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
JPH05501317A (ja) * 1990-05-30 1993-03-11 アダプティブ・ソリューションズ・インコーポレーテッド 仮想ゼロ値を用いるニューラル・ネットワーク
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
US7031002B1 (en) 1998-12-31 2006-04-18 International Business Machines Corporation System and method for using character set matching to enhance print quality
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
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 楽天株式会社 ブロック符号化装置、ブロック復号化装置、情報処理装置、プログラム、ブロック符号化方法及びブロック復号化方法
US10747819B2 (en) 2018-04-20 2020-08-18 International Business Machines Corporation Rapid partial substring matching
US10169451B1 (en) * 2018-04-20 2019-01-01 International Business Machines Corporation Rapid character substring searching
US10732972B2 (en) 2018-08-23 2020-08-04 International Business Machines Corporation Non-overlapping substring detection within a data element string
US10782968B2 (en) * 2018-08-23 2020-09-22 International Business Machines Corporation Rapid substring detection within a data element string
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
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

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE2538401B1 (de) * 1975-08-28 1976-12-09 Siemens Ag Verfahren und anordnung zum auffinden eines kurzen, einem suchbegriff gleichen begriffs aus einer laengeren zeichenkette

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 連想記憶装置

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE2538401B1 (de) * 1975-08-28 1976-12-09 Siemens Ag Verfahren und anordnung zum auffinden eines kurzen, einem suchbegriff gleichen begriffs aus einer laengeren zeichenkette

Also Published As

Publication number Publication date
DE3545125C2 (de) 1988-09-01
US4907194A (en) 1990-03-06
JPH0533422B2 (de) 1993-05-19
JPS61145636A (ja) 1986-07-03

Similar Documents

Publication Publication Date Title
DE3545125C2 (de)
DE2205422C2 (de) Verfahren und Einrichtung zur Dekompression verdichteter Daten
DE3801380C2 (de)
DE2725395B2 (de) Einrichtung zur Echtzeittransformation von m in Zeilen angeordneten Wörtern der Bitlänge n in n in Spalten angeordnete Wörter der Bitlänge n
DE2744109C2 (de)
DE2208664A1 (de) Verfahren zur Decodierung eines vorsatzfreien Verdichtungscodes veränderlicher Länge
DE3327379A1 (de) Einrichtung und verfahren zum umordnen von datensaetzen
DE3618136C2 (de)
DE2725396A1 (de) Pufferspeicher
DE3505314C2 (de)
DE2452498A1 (de) Verfahren und vorrichtung zur erzeugung von zeichenmustern
DE1449544A1 (de) Datenverarbeitende Maschine mit ueberlappend abrufbarem Speicherwerk
DE2900586C2 (de) Anordnung zum Decodieren von Codewörtern variabler Länge
DE1524373C3 (de) Paralleldruckwerk
DE1964570B2 (de) Verfahren zum wiederauffinden gespeicherter informationen
DE3214117C2 (de) Elektronisches Übersetzungsgerät
DE4210109C2 (de) Sortiervorrichtung zum Sortieren von Daten und Sortierverfahren
DE2721527A1 (de) Mikrofilm-suchlesegeraet
DE69729818T2 (de) Sortier- und Mischprozessor und Sortier- und Mischprozessanlage
DE2826450B2 (de) Verfahren zum Steuern der Übertragung digitaler Signale und Anordnung zur Durchfuhrung des Verfahrens bei einer digitalen Faksimileübertragungseinrichtung
DE2234362C3 (de) Einrichtung zur Verarbeitung digitaler Symbolinformation zur Darstellung von Texten auf einem Bildmonitor
DE2006672A1 (de) Vorrichtung zur Sichtbarmachung von Daten
DE1499713A1 (de) Verfahren und Schaltungsanordnung zum Packen von Informationen in einem zyklisch umlaufenden Speicher mit wahlfreiem Zugriff zu den auf den Spuren befindlichen Speicherzellen
DE60001585T2 (de) Datenverarbeitungseinrichtung und -verfahren
DE2107005A1 (de) Zeichengenerator zum Erzeugen von Zeichen am Schirm einer Elektronenstrahlröhre

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