DE2538401C2 - Verfahren und Anordnung zum Auffinden eines kurzen, einem Suchbegriff gleichen Begriffs aus einer längeren Zeichenkette - Google Patents
Verfahren und Anordnung zum Auffinden eines kurzen, einem Suchbegriff gleichen Begriffs aus einer längeren ZeichenketteInfo
- Publication number
- DE2538401C2 DE2538401C2 DE19752538401 DE2538401A DE2538401C2 DE 2538401 C2 DE2538401 C2 DE 2538401C2 DE 19752538401 DE19752538401 DE 19752538401 DE 2538401 A DE2538401 A DE 2538401A DE 2538401 C2 DE2538401 C2 DE 2538401C2
- Authority
- DE
- Germany
- Prior art keywords
- memory
- character
- line
- search term
- characters
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Expired
Links
- 230000015654 memory Effects 0.000 claims description 94
- 238000003860 storage Methods 0.000 claims description 5
- 238000000034 method Methods 0.000 description 4
- 229910052454 barium strontium titanate Inorganic materials 0.000 description 3
- 241000282898 Sus scrofa Species 0.000 description 1
- 230000015572 biosynthetic process Effects 0.000 description 1
- 150000001875 compounds Chemical class 0.000 description 1
- 238000010586 diagram Methods 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 238000005755 formation reaction Methods 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 238000004904 shortening Methods 0.000 description 1
Description
Die Erfindung betrifft ein Verfahren zum Auffinden eines aus einem oder mehreren Zeichen bestehenden
kurzen, einem Suchbegriff gleichem Begriffs aus einer längeren Zeichenkette oder aus einer Folge von kurzen
Zeichenketten, die ebenso lang wie der Suchbegriff oder nur wenig langer sind, und einen Assoziativspeicher zur
Durchführung des Verfahrens.
Bei der Verarbeitung von Daten entsteht gelegentlich die Notwendigkeit, längere Zeichenketten daraufhin zu
untersuchen, ob ein einem nur aus einem oder wenigen Zeichen bestehenden Begriff - im folgenden als
Suchbegriff bezeichnet - gleicher Begriff in ihr enthalten ist. Es treten auch Folgen von kurzen
Zeichenketten auf, die ebenso lang wie der Suchbegriff sind oder nur wenige Zeichen mehr enthalten. Eine in
Übersetzer- und Betriebssystemprogrammen häufig vorkommende Operation dieser Art ist die Operation
»Index«. Hierbei besteht im Durchschnitt die zu untersuchende Zeichenkette aus etwa 8 bis IO Zeichen,
der Suchbegriff ist etwa 1 bis 3 Zeichen lang. Hierbei ist nicht nur die Feststellung interessant, ob der dem
Suchbegriff gleiche Begriff in der längeren Zeichenkette enthalten ist oder nicht, sondern gegebenenfalls auch
die Stelle, an der er gefunden wurde. Die derzeit übliche Ausführung dieser Operation auf der Ebene von
Maschinenbefehlen erfordert schon für einen durchschnittlichen Fall etwa 100 Befehle. Zur Vereinfachung
und zeitlichen Verkürzung dieser Operation könnte man daran denken, die zu untersuchende Zeichenfolge
in einen Assoziativspeicher einzugeben und den Suchbegriff, von einem Ende der Kette her beginnend,
so lange schrittweise zu verschieben, bis der gesuchte Begriff gefunden oder die ganze Zeichenkette abgearbeitet
ist. Da die einzelnen assoziativen Vergleiche nur nacheinander durchgeführt werden können, beansprucht
ein solches Vorgehen ebenfalls »och beträchtliehe
Zeit.
Davon ausgehend besteht die Aufgabe der Erfindung darin, ein Verfahren der eingangs genannten Art
anzugeben, das eine weitere zeitliche Verkürzung des Suchvorgangs ermöglicht. Ferner ist es die Aufgabe der
Erfindung, eine zur Durchführung des Verfahrens geeignete Anordnung, insbesondere Assoziativspeicher
zu schaffen.
Gemäß der Erfindung wird der erste Teil dieser
Gemäß der Erfindung wird der erste Teil dieser
\ufgabe durch die kennzeichnenden Merkmale des
Patentanspruchs 1 gelöst. Der für die Durchführung des Verfahrens geeignete Assoziativspeicher ist horizontal
[zeilenweise), schräg und vertikal ladbar. Sein Aufbau ist den Unteransprüchen zu entnehmen.
Im folgenden wird die Erfindung an Hand von in der Zeichnung dargestellten Ausfühnmgsbeispielen ausführlich
beschrieben. Es zeigt
F i g. 1 eine schematische Darstellung zur Erläuterung einer Suchoperation mit Hilfe des Schrägladens,
Fig.2 die bei der Dateneingabe maßgebliche Struktur eines Speicherbausteins,
Fig.3 die Datenwege beim Lesen des Inhalts eines
Speicherbausteins,
F i g. 4 ein Diagramm der Breiten der Datenwege,
Fig.5 eine Einrichtung zur Bildung eines Trefferbzw.
Fehlanzeigesignals,
Fig.6 die Durchschaltung der Datenwege des Gesamtspeichers beim Schrägladen,
Fig.7 die Durchschaltung der Datenwege des
Gesamtspeichers beim Vertikaliaden,
Fig.8 die Durchschaltung der Datenwege des Gesamtspeichers beim Horizontalladen und
Fig.9 einen Multiplexer zur Umschaltung der Datenwege.
Als Zeichen wird in dieser Anmeldung stets die kleinste selbständig betrachtete Informationseinheit
bezeichnet. Für alphanumerisch codierte Daten innerhalb einer Datenverarbeitungsanlage trifft das für ein
Byte mit 8 Bit zu. Grundsätzlich könnte aber unter dem Begriff Zeichen auch ein einzelnes Bit, ein Haihbyte
(Tetrade) oder ein Zeichen des Telegrafiecodes verstanden werden. Eine Zeichenkette gilt als lang,
wenn sie erheblich mehr Zeichen als ein Suchbegriff durchschnittlicher Länge aufweist. Eine kurze Zeichenkette
ist ebenso lang wie der Suchbegriff oder nur wenig langer.
Ein für die Ausführung des angegebenen Verfahrens geeigneter Assoziativspeicher muß schräg, d. h. von
Zeile zu Zeile mit der jeweils um ein Zeichen nach links verschobenen Zeichenkette, und vertikal, d. h. spaltenweise
ladbar sein. Damit der Assoziativspeicher auch für andere Zwecke brauchbar ist, sollte auch die Möglichkeit
bestehen, ihn in konventioneller Weise horizontal (zeilenweise) zu betreiben (vgl. »The Marconi-Review«,
First Quarter, 1972). Neben den Datenwegen für die Eingabe und Ausgabe der Daten (der Zeicnenkette), für
die Eingabe des Suchbegriffs und der Maske, die bekanntlich bei jeder Teilassoziation erforderlich ist,
und für die Ausgabe der Treffersignale sind Steuerwege zur Eingabe der Adresse, des Operationscodes, des
Eingabemodus und eines Schreib/Lese-Taktes notwendig. Der Eingabemodus, der bei bekannten Assoziativspeichern
zur zwischen der Eingabe der einzuspeichernden Daten einerseits und der Eingabe des Suchbegriffs
und der zugehörigen Maske andererseits unterscheidet, muß nunmehr zusätzlich in der Lage sein, den Speicher
für das Schrägladen und das Vertikalladen vorzubereiten. Der Code des Eingabemodus umfaßt somit zwei Bit,
deren Kombinationen bedeuten können:
00 Eingabe des Suchbegriffs und der Maske
01 Horizontuliaden HL
10 Schrägladen SL
11 Vertikalladen VL
Die Adresse dient für die Auswahl einer Speicherzelle beim Horizontalladen und beim Lesen. Ferner wird sie
zur Auswahl der Spalten beim Vertikalladen benötigt. Die Anzahl der Adressenbits richtet sich naturgemäß
nach der Größe dos Speichers. Bei einer bevorzugten
Ausführungsform des Assoziativspeichers mit 16 Zeilen zu je 16 Speicherplätzen für ein Zeichen besteht die
Adresse aus 4 Bit. Darauf wird später noch näher eingegangen werden.
Der Operationscode umfaßt 2 Bit, denen beispielsweise folgende Bedeutung zugeschrieben werden kann:
00 keine Operation
01 Lesen
10 Schreiben
11 Assoziieren.
Im einzelnen laufen die Operationen Lesen, Schreiben
und Assoziieren folgendermaßen ab:
a) Lesen
Adresse anlegen, Operationscode auf »Lesen« (01) stellen, Schreib/Lese-Taki erzeugen. Am Speicherausgang
erscheint der Inhalt der adressierten Zeile.
b) Schreiben
Operationscode auf »Schreiben« (10) setzen, Eingabemodus einstellen, Adresse anlegen, Daten bereitstellen,
Schreib/Lese-Takt erzeugen.
c) Assoziieren
Operationscode auf »Assoziieren« (11) setzen, Suchbegriff
und Maske anlegen. Nach der Einschwingzeit können die Treffer- bzw. Fehlanzeige-Signale ausgewertet
werden.
Zum Auffinden eines mit einem Suchbegriff übereinstimmenden Begriffs in einer langen Zeichenkette wird
die lange Zeichenkettc in den Assoziativspeicher schräg geladen Dazu wird die lange Zeichenkette linksbündig
in die erste Speicherzeile eingegeben. Gleichzeitig erfolgt die Eingabe der Zeichenkette um ein Zeichen
nach links verschoben in die zweite Speicherzeile, um zwei Zeichen nach links verschoben in die dritte
Speicherzeile usw., bis schließlich in einer Speicherzeile
nur noch das ursprünglich am weitesten rechts stehende Zeichen der Zeichenkette enthalten ist. Nunmehr wird
der Suchbegriff ebenfalls linksbündig für alle Speicherzeilen wirksam angelegt. Ist der gesuchte Begriff in der
Zeichenkette tatsächlich enthalten, dann entsteht in einer Zeile ein Treffersignal. Die Nummer der
Speicherzeile, in der das Treffersignal gebildet wurde, gibt die Position des gesuchten Begriffs innerhalb der
Zeichenkette an. Die Kenntnis dieser Position ibt
beispielsweise für die eingangs erwähnte Operation »Index« notwendig.
Die mit Hilfe des Schrägladens durchgeführte Suchoperation ist in der F i g. 1 schematisch dargestellt.
Die durch dünne waagrechte und senkrechte Linien gebildeten Bereiche stellen die Speicherplätze für
jeweils ein Zeichen innerhalb des Assoziativspeichers SPdar. Die in den Assoziativspeicher SPgeladene
Zeichenkette ZK ist durch die dick umrandeten waagrechten Balken bezeichnet. Der aus drei Zeichen
bestehende Suchbegriff DES ist linksbündig angelegt Es wurde angenommen, daß der gleiche Begriff in der
Zeichenkette enthalten ist. Beispielsweise entsteht in der Zeile 4 (bei mit 0 beginnender Zählung) ein
Treffersignal Wo. Aus der F i g. 1 ist ersichtlich, daß be der angenommenen Länge des Suchbegriffs mit dre
Zeichen, die Ladung der vorletzten und letzter
(teilweise) belegten Speicherzeile eigentlich überflüssig
ist, da der gesuchte Begriff keinesfalls in den restlichen zwei Zeichen der Zeichenkette vollständig enthalten
sein kann. Trotzdem erfolgt die Belegung dieser beiden Speicherzeilen aus Gründen der Systematik, wobei zu
beachten ist, daß ihre Belegung keinen zusätzlichen Zeitaufwand erfordert.
In dem Fall, daß der Suchbegriff nur aus einem Zeichen besteht, kann das gewünschte Ziel auch erreicht
werden, wenn die Zeichenkette (vertikal) in die linke Spalte des Assoziativspeichers geladen und der
Suchbegriff ebenfalls an diese Spalte angelegt wird. 1st der gesuchte Begriff in der Zeichenkette enthalten, dann
entsteht in einer Zeile ein Treffersignal, welches gleichzeitig die Position des gesuchten Begriffs innerhalb
der Zeichenkette angibt. Unter den angegebenen Voraussetzungen wird jedoch ein zeitlicher Vorteil
durch das Vertikalladcn gegenüber dem Schrägladen nicht erreicht. Ein wesentlicher Gewinn kann jedoch
entstehen, wenn eine Folge von kurzen Zcichenketten, welche die gleiche Länge des Suchbegriffs haben oder
nur unwesentlich langer sind, auf das Vorhandensein eben dieses Suchbegriffs untersucht werden soll.
Während beim Schrägladcn alle Zeichenketten der Folge nacheinander in den Speicher eingegeben und
abgefragt werden müßten, wird durch das Vertikalladcn die Anzahl der Ladczyklen beträchtlich verringert.
Hierbei werden die ersten Zeichen aller Zcichcnketicn
in die linke Spalte des Assoziativspeichers, die zweiten
Zeichen aller Zcichcnkeltcn in die folgende Spalte usw. geladen, bis sovicle Spalten gefüllt sind als der
Suchbegriff Zeichen aufweist. Ergibt sich kein Trcffcrsignal, dann wird das Laden mit den zweiten Zeichen
aller Zeichenketten, gegebenenfalls mit den dritten und den folgenden Zeichen wiederholt. Das Vertikalladcn
mit Linksverschiebung wird aber nur solange wiederholt, bis sich die Zeichen am rechten Ende der
Zcichcnkcttc bzw. das Zeichen am rechten Ende der längsten Zcichcnkettc der Folge mit dem am weitesten
rechts stehenden Zeichen des Suchbegriffs decken. Der zeitliche Vorteil, der sich hier mit Hilfe des Vcrliknlladcns
ergibt, ist umso größer, je kürzer der Suchbegriff und die Zeichenketten der Folge sind.
Bevor auf den Aufbau des vollständigen Assoziativ-Speichers
näher eingegangen wird, sollen die zu seiner Herstellung dienenden integrierbaren Bausteine betrachtet
werden. Setzt man voraus, daß ein Zeichen einem Byte zu 8 Bit (gegebenenfalls mit einem
zusätzlichen 9. Bit als Paritills-Bit) gleichzusetzen ist,
dann lassen sich in einem solchen Baustein Speicherplatz
ze für 8 Zeichen und die notwendigen Hilfseinrichtungen, wie assoziative Vcrglcichcr und ähnliches, unterbringen. Die Speicherplätze sind in vier Zeilen zu zwei
SpcichcrplUtzcn angeordnet. Bezeichnet man in Über*
cinstimmung mit der Fi g. 2 die Zellen des Bausteins A,
ß, C und D1 sowie die beiden Speicherplätze Innerhalb
einer Zelle mit 0 und 1, dünn werden gleichzeitig belegt:
beim Horizontalladen die Speicherplätze A 0, A 1 oder
BO1Bi oder CO1Cl oder DO1 DI, beim Vertikalladcn
die Speicherplätze A0, ÖO, CO und DO oder Ai, Bi1
Ct und D1, beim Schrägladcn alle acht SpcichcrpUUzc.
Dabei muß bezüglich der Inhalte gelten: BQ-Ai, CO- 01 und DO- Cl.
Um die unterschiedlichen Ladevorgänge durchführen zu können, Ist, wie aus Γ i g. 2 ebenfalls ersichtlich ist,
jedem Speicherplatz mit Ausnahme des Speicherplatzes VtO ein Multiplexer zugeordnet. Die Multiplexor MA I1
MI)O bis WDI steuern die Datenwege unter dem
Einfluß des Operationscodes (Schreiben), des vorgegebenen Eingabemodus und gegebenenfalls der Adresse.
Die Adresse spielt keine Rolle beim Schrägladen.
In der Fig.2 sind ferner die Datenwege für die
Eingabe der Zeichen von Zeichenketten gemäß den verschiedenen Ablagemodi schematisch dargestellt. Die
jeweils gültigen Verbindungen sind für das Horizontalladen durch unterbrochene Linien ohne zusätzliche
Markierung, für das Schrägladen durch mit kleinen Kreisen markierten Linien und für das Vertikalladen
durch mit Kreuzen markierten Linien gekennzeichnet. Für das Laden aller zweiten Zeichen von kurzen
Zeichenketten innerhalb einer Folge gelten die Verbindungen, die durch die Linien mit kleinen Dreiecken
bezeichnet sind. In allen Fällen ist jedoch zu beachten, daß die Spalten 0 und 1 eines beliebigen Bausteins nicht
unbedingt der linken und der daran anschließenden Spalte des Assoziativspeichers angehören müssen.
Die in der Fig.2 dargestellten Datenwege gelten nicht für das Anbieten des Suchbegriffs und der Maske.
Dies geschieht in der Weise, die bei ausschließlich horizontal ladbaren Assoziativspeichern üblich ist.
Die für das Lesen des Inhalts eines Speicherbausteins notwendigen Datenwege sind in der Fig.3 dargestellt.
Zwei Multiplexer ML 0 und MLl bewirken die Auswahl
der richtigen Speicherzelle auf Grund der angegebenen Adresse.
Setzt man wieder voraus, daß ein Zeichen einem Datcnbytc mit je 8 Bit gleichzusetzen ist, dann bedeutet
das, daß jeder der in Fig.2 und 3 dargestellten Datenwege aus 8 physikalischen Leitungen besteht.
Insgesamt umfassen die Datenwege des Bausteins somit für
a) Eingabe für I lorizontalladcn HL 16 Bit
b) Eingabe für Vertikalladcn VL 32 Bil
c) Eingabe für Schrägladcn 5/- 40 Bit
d) Suchbegriff DCS \b Bit
c) Suchbcgriff-Maskc MAS 16 Bit
c) Suchbcgriff-Maskc MAS 16 Bit
f) Trcffcrsignal Eingang /7/ 4 Bit
g) Trcffcrsignal Ausgang Ho 4 Bil
h) Dutcnausgung Do te Bit
h) Dutcnausgung Do te Bit
Die genannten Datenwege sind in Fig.4 entsprechend
ihrer Breite als kürzere oder längere Strecken aufgetragen, wobei die Längeneinheit ein Bit ist. In der
Fig.4 sind einzelne Strecken oder Teile von Strecken
untereinander eingezeichnet. Das bedeutet, daß die den
Strecken zugeordneten Dalcnwcgc ganz oder teilweise
gemeinsam ausgenutzt werden. Aus der Darstellung in Fig.4 läßt sich ablesen, daß auf diese Weise jeder
Baustein 47 Anschlüsse für die Dalen-Eingubc und
•Ausgabe benötigt. Dazu kommen noch zwei Anschlüsse für den Operationscode, zwei Anschlüsse für den
Eingabemodus, zwei Anschlüsse für die Adresse und ein Anschluß für den Schrelb/Lcse-Takl. Das ergibt
insgesamt 55 Anschlüsse für den Speicherbaustein ohne die Anschlüsse für die Zuführung der Versorgungsspannung.
Jeder Baustein benötigt zu dem anhand der Fig.2
und 3 schon beschriebenen Zusatzeinrichtungen noch einen Adrcssen-Dccodiercr, der die bei zcilenwclscr
Adressierung aus zwei Bit bestehende Adresse in die Form 1 aus 4 umwandelt. Ferner sind noch vier - häufig
als überelnstlmmungs/nichtübcrclnstlmmungs.Logik bezeichnete - Einrichtungen zur Bildung der Treffersignale erforderlich. Eine derartige, an sich wohl
bekannte Einrichtung ist in der Pig.5 dargestellt Mit
Hilfe der Äquivalenzglieder EQQ bis EQiS wird der
Inhalt einer Zeile, z. B. A 0, A 1 des Speicherbausteins
Bit für Bit mit den Bit des Suchbegriffs verglichen. Die Ausgänge der Äquivalenzglieder sind mit den Eingängen
von 16 ODER-Gliedern OR 0 bis OR 15 verbunden. An die anderen Eingänge dieser ODER-Glieder werden
die Bit der Maske in der invertierten Form MAS angelegt. Am Ausgang eines ODER-Glieds erscheint
also eine logische »1«, wenn entweder Gleichheit zwischen einem Bit des Inhalts der Zeile im Speicherbaustein
und dem glcichrangigen Bit des Suchbegriffs besteht, oder wenn das betreffende Bit der Maske MAS
Null ist. Es müssen stets alle Bit der Maske innerhalb des Bereichs des Suchbegriffs I, außerhalb des Suchbegriffs
0 sein. Ein UND-Verknüpfungsglied AN 1 faßt die Ausgänge aller ODER-Glieder zusammen. Eine logische»!«
am Ausgang des UND-Glieds AN 1 zeigt einen Treffer in der zugeordneten Zeile des Speicherbausteins
an. Mit Hilfe eines weiteren UND-Glieds AN2 werden
die Treffer- bzw. Fahlanzcige-Signale gegebenenfalls vorausgehender Speicherbausteine berücksichtigt.
Ein bevorzugtes Ausführungsbcispiel des Assoziativspeichers wird mit 16 Bausteinen der beschriebenen Art,
die in vier Reihen zu je 8 Bausteinen angeordnet sind, zusammengesetzt. Der Assoziativspeicher besitzt sodann
16 Speicherzellen, in denen 16 Zeichen (Byte) gespeichert werden können. Eine Speicherzeile ist
insbesondere dadurch definiert, daß ein Treffersignal am Ausgang einer Zeile nur dann entsteht, wenn für alle
dieser Speicherzeile angehörenden Zeilen der Speicherbausteine, eventuell unter Mitwirkung der Maske,
Treffersignale gebildet werden.
Da die in die einzelnen Speicherbausteine eingegebenen Adressen nur zwischen den vier Zeilen oder den
zwei Spalten eines Speicherbausteins auswählen könncn, muß für den Assoziativspeicher ein zusätzlicher,
übergeordneter Adrcsscndccodicrer vorgesehen werden, mit dessen Hilfe die Auswahl der Speicherbaustcinc
in Zeilen- oder Spaltenrichtung erfolgt. Dazu werden für das Horizontalladcn HL oder für das Lesen die
beiden höhcrwcrligcn Bit der aus insgesamt vier Bit bestehenden Adresse benötigt. Die beiden nicderwcrtigcn
Bit werden an alle Speicherbaustcinc oder nur an die Speicherbaustcinc der ausgewählten Bausteinreihe
angelegt und ermöglichen die Wahl einer bestimmten Speicherzelle. Beim Vcrtikalladcn VL dienen die drei
höhcrwcrtigen Bit der Adresse für die Auswahl einer der 8 Gruppen von Spcichcrbauslcincn, die in
Spaltenrichtung angeordnet sind. Dafür wird zur Spaltenauswahl innerhalb der ausgewählten Speicherbausteine
nur noch das niedrigstwertige BiI gebraucht. Die von dem Operalionseodc und dem Eingabemodus
ubhllngige Zuordnung der Adrcssenbil knnn beispielsweise mit Hilfe von Multiplexern oder umschaltbarer
Adressendecodierer erfolgen. Eine weitere Möglichkeit besteht in der gesteuerten Zuführung des Schreib/Lese-Taktes.
Anderenfalls wird der Schreib/Lese-Takt ebenso wie die Steuerinformationen Operationscode und Eingabemodus
allen Bausteinen parallel zugeführt.
Die Durchschaltung der Datenwege von den Anschlußstellen des Assoziativspeichers zu den Bausteinanschlüssen
für die Eingabe einer langen Zeichenkette oder der gleichrangigen Zeichen von kurzen
Zeichenketten einer Folge hängt von dem Eingabemodus ab. Die F i g. 6 bis 8 zeigen die Verbindungen, die
während der Dateneingabe bestehen müssen. Zur Vereinfachung der Zeichnung sind in den genannten
Figuren nur zwei Reihen mit je 4 Speicherbausteinen BST vorgesehen. Die F i g. 6 zeigt die Verbindungen
beim Schrägladen SL, die F i g. 7 beim Vertikalladen VL und die F i g. 8 beim Horizontalladen HL. Ein Vergleich
der drei Figuren läßt ohne weiteres erkennen, daß die notwendigen Verbindungen in allen drei Fällen, von
einzelnen Ausnahmen abgesehen, verschieden sind. Die in Fig.8 dargestellten Verbindungen gelten auch für
das (zeilenweise) Lesen des Assoziativspeichers und beim Anlegen des Suchbegriffs. Die Verbindungen für
das Anlegen der Maske sind dazu analog.
Für das Umschalten der Verbindungen außerhalb der Speicherbausteine entsprechend dem jeweils anliegenden
Eingabemodus werden zusätzliche Umschalteeinrichtungen benötigt, die jedem Speicherbaustein zugeordnet
sind. Diese Umschaltceinrichtungen könnten grundsätzlich innerhalb der Speicherbausteinc integriert
werden, doch würde dadurch die Zahl der äußeren Anschlußpunktc der Speicherbausteine erheblich zunehmen.
Greift man den in den Fig.6 bis 8 besonders gekennzeichneten Baustein BST* heraus und betrachtet
die Verhältnisse an dessen Datenweg Z1, dann sieht
man, daß folgende Verbindungen bestehen müssen: Beim Schriigladcn SL mit dem Zeicheneingang Zu 6 des
Assoziativspeichers, beim Vcrtikalladcn V/. mit dem
Zeichcncingang ZaA und beim Horizontalladcn HL mil
dem Zeicheneingang Zu 2. Die F i g. 9 zeigt schemalisch den Speicherbaustein BST*, einem aus drei UND-Verknüpfungsgliedern
und einem ODER-Vcrknüpfungsglicd bestehenden Multiplexer und die drei Zeichcncingängc
Zu 2, ZuA und Zu β des Asso/.iativspcichcrs. Der
Multiplexer schaltet je nach dem anliegenden Kingabcmodus SL, VL oder HL einen der drei Dalenwege iiuf
den internen Datenweg ZA des Speicherbausleins durch, ils versieht sich von selbst, daß ein solcher
Multiplexer für jedes Hit eines Zeichens vorhanden sein muß,
700 630/37«
851976
Claims (6)
1. Verfahren zum Auffinden eines aus einem oder mehreren Zeichen bestehenden kurzen, einem
Suchbegriff gleichen Begriffs aus einer längeren Zeichenkette oder aus einer Folge von kurzen
Zeichenketten, die ebenso lang wie der Suchbegriff oder nur wenig länger sind, dadurch gekennzeichnet,
daß die lange Zeichenkette oder die Folge von kurzen Zeichenketten in einen Assoziativspeicher
mit zeilenweiser Ausgabe von Treffer- oder Fehlanzeigesignalen geladen wird, und zwar
al) eine lange Zeichenkette linksbündig in die erste Zeile, gleichzeitig- um ein Zeichen nach links verschoben in die nächste Zeile, um ein weiteres Zeichen nach links verschoben in die folgende Zeile usw., jedoch
al) eine lange Zeichenkette linksbündig in die erste Zeile, gleichzeitig- um ein Zeichen nach links verschoben in die nächste Zeile, um ein weiteres Zeichen nach links verschoben in die folgende Zeile usw., jedoch
a2) bei einem nur aus einem Zeichen bestehenden Suchbegriff die lange Zeichenkette vertikal in
die linke Spalte,
b) bei einer Folge von kurzen Zeichenketten die ersten Zeichen aller Zeichenketten vertikal in
die linke Spalte bis zur Füllung der Spalte, die zweiten Zeichen in die anschließende Spalte
usw., bis die Zahl der geladenen Spalten gleich der Zahl der Zeichen im Suchbegriff ist und,
sofern kein Treffersignal entsteht, gegebenenfalls erneute Eingabe in analoger Weise mit
dem zweiten (dritten usw.) Zeichen linksbündig beginnend, wobei so oft wiederholt wird, als die
Zeichenketten der Folge mehr Zeichen als der Suchbegriff enthalten,
und daß der Suchbegriff sowie eine dem Suchbegriff angepaßte Maske linksbündig angeboten wird.
2. Aus inte.grierbaren Speicherbausteinen aufgebauter
Assoziativspeicher zur Durchführung des Verfahrens nach Anspruch 1, dadurch gekennzeichnet,
daß die Anzahl der Zeilen gleich der Anzahl der Speicherplätze für je ein Zeichen in jeder Zeile ist
und daß Einrichtungen zur Umschaltung der Datenwege vorgesehen sind, derart, daß der
Assoziativspeicher horizontal, schräg und vertikal ladbar ist.
3. Integrierbarer Speicherbaustein zum Aufbau eines Assoziativspeichers nach Anspruch 2, gekennzeichnet
durch 2n+m in 2" Zeilen und 2m Spalten
angeordnete Speicherplätze (AO ... Di) je ein
Zeichen, durch jedem Speicherplatz mit Ausnahme das der ersten Zeile und der ersten Spalte
angehörenden Speicherplatzes zugeordnete Multiplexer (MA 1 ... MD1) zur Umschaltung der
Datenwege auf einen oder mehreren der Speicherplätze nach Maßgabe des Eingabemodus, durch
jeder Spalte zugeordnete Multiplexer für die Durchschaltung der Datenwege beim Lesen einer
adressierten Zeile, durch zeilenweise wirkende assoziative Vergleicher und durch nach Maßgabe
des Eingabemodus umschaltbare Adressendecodierer zur Decodierung einer Teiladresse für die Zeilenoder
Spaltenauswahl.
4. Assoziativspeicher nach Anspruch 2 mit in Reihe (in Zeilenrichtung) bzw. Gruppen (in Spaltenrichtung)
angeordneten Speicherbausteinen nach Anspruch 3, dadurch gekennzeichnet, daß jedem
Speicherbaustein mit Ausnahme des der ersten Reihe und der ersten Gruppe angehörenden
Speicherbausteins nach Maßgabe des Eingabemodus steuerbare Einrichtungen zur Umschaltung der
Datenwege zwischen den Datenweganschlüssen des Gesamtspeichers und den Datenweganschlüssen des
Speicherbausteins zugeordnet sind und daß nach Maßgabe des Eingabemodus umschaltbare Adressendecodierer
zur Decodierung der Teiladresse für die Auswahl einer Reihe oder einer Gruppe von
Speicherbausteinen vorgesehen sind.
5. Assoziativspeicher nach Anspruch^ dadurch ίο gekennzeichnet, daß die Einrichtungen zur Umschaltung
der Datenwege aus Multiplexern bestehen.
6. Assoziativspeicher nach Anspruch^ dadurch gekennzeichnet, daß die Einrichtungen zur Umschaltung
der Datenwege aus Verknüpfungsgliedern
bestehen, deren Ausgänge in Abhängigkeit von den Werten bzw. der Zuordnung der binären Eingangssignale einen der beiden binären Signalwerte
abgeben oder einen hochohmigen Zustand annehmen.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
DE19752538401 DE2538401C2 (de) | 1975-08-28 | Verfahren und Anordnung zum Auffinden eines kurzen, einem Suchbegriff gleichen Begriffs aus einer längeren Zeichenkette |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
DE19752538401 DE2538401C2 (de) | 1975-08-28 | Verfahren und Anordnung zum Auffinden eines kurzen, einem Suchbegriff gleichen Begriffs aus einer längeren Zeichenkette |
Publications (3)
Publication Number | Publication Date |
---|---|
DE2538401B1 DE2538401B1 (de) | 1976-12-09 |
DE2538401A1 DE2538401A1 (de) | 1976-12-09 |
DE2538401C2 true DE2538401C2 (de) | 1977-07-28 |
Family
ID=
Similar Documents
Publication | Publication Date | Title |
---|---|---|
DE2725395C3 (de) | Einrichtung zur Echtzeittransformation von m in Zeilen angeordneten Wörtern der Bitlänge n in n in Spalten angeordneten Wörter der Bitlänge n | |
DE1901343C3 (de) | Datenverarbeitungsanlage zur Ausführung von Mateirenrechnungen | |
DE2551239C3 (de) | Datenverarbeitungsanlage | |
DE2331589A1 (de) | Datenverarbeitungsanordnung | |
DE4019135A1 (de) | Serieller speicher auf ram-basis mit parallelem voraus-lesen | |
DE3327379A1 (de) | Einrichtung und verfahren zum umordnen von datensaetzen | |
DE3015875A1 (de) | Speicherzugriffssystem und verfahren fuer einen zugriff zu einem digitalen speichersystem | |
DE2432608C3 (de) | Speicheranordnung fur eine Datenverarbeitungseinrichtung | |
DE2123789C2 (de) | Schaltungsanordnung zur automatischen zeilen- und wortweisen Darstellung von Zeichen auf einem Video-Anzeigegerät | |
DE3148099C2 (de) | Anordnung zum Erkennen einer Digitalfolge | |
DE2310631B2 (de) | Speicherhierarchie fur ein Datenverarbeitungssystem | |
DE69020764T2 (de) | Speicheradressierung. | |
DE2261786A1 (de) | Nur-lese-speicher hoher dichte | |
DE2900586C2 (de) | Anordnung zum Decodieren von Codewörtern variabler Länge | |
DE2538401C2 (de) | Verfahren und Anordnung zum Auffinden eines kurzen, einem Suchbegriff gleichen Begriffs aus einer längeren Zeichenkette | |
DE69321544T2 (de) | Halbleiterspeicheranordnung | |
DE3828289C2 (de) | ||
DE10252059B3 (de) | Verfahren zum Betreiben einer Speicheranordnung | |
DE2233164B2 (de) | Schaltungsanordnung zur uebertragung von aufeinanderfolgenden bitstellen zwischen zwei registern | |
DE1524006B2 (de) | Vorrichtung zum erhoehen der informationsuebergaberate eines speichers | |
DE3009317A1 (de) | Hybrid-assoziativspeicher | |
DE2538401B1 (de) | Verfahren und anordnung zum auffinden eines kurzen, einem suchbegriff gleichen begriffs aus einer laengeren zeichenkette | |
DE1474041C3 (de) | Anordnung zum Sortieren von in zufälliger Reihenfolge aufgenommener Informationsbit Gruppen | |
DE2342660C3 (de) | Verfahren zum Sortieren von in einem Assoziativspeicher gespeicherten Daten und Einrichtung zur Durchführung des Verfahrens | |
DE69225260T2 (de) | Schaltung und Verfahren zur Auswahl der k-grössten Daten einer Datenfolge |