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 Zeichenkette

Info

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
Application number
DE19752538401
Other languages
English (en)
Other versions
DE2538401B1 (de
DE2538401A1 (de
Inventor
Balazs Dipl.-Ing.; Zimmerl Oswald Dr.-Ing.; 8000 München Cserhati
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.)
Siemens AG
Original Assignee
Siemens AG
Filing date
Publication date
Application filed by Siemens AG filed Critical Siemens AG
Priority to DE19752538401 priority Critical patent/DE2538401C2/de
Publication of DE2538401B1 publication Critical patent/DE2538401B1/de
Publication of DE2538401A1 publication Critical patent/DE2538401A1/de
Application granted granted Critical
Publication of DE2538401C2 publication Critical patent/DE2538401C2/de
Expired legal-status Critical Current

Links

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
\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
f) Trcffcrsignal Eingang /7/ 4 Bit
g) Trcffcrsignal Ausgang Ho 4 Bil
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ß,
Hierzu S Bhitt Zeichnungen
700 630/37«
851976

Claims (6)

Patentansprüche;
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
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.
DE19752538401 1975-08-28 Verfahren und Anordnung zum Auffinden eines kurzen, einem Suchbegriff gleichen Begriffs aus einer längeren Zeichenkette Expired DE2538401C2 (de)

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