DE2911147C2 - - Google Patents

Info

Publication number
DE2911147C2
DE2911147C2 DE2911147A DE2911147A DE2911147C2 DE 2911147 C2 DE2911147 C2 DE 2911147C2 DE 2911147 A DE2911147 A DE 2911147A DE 2911147 A DE2911147 A DE 2911147A DE 2911147 C2 DE2911147 C2 DE 2911147C2
Authority
DE
Germany
Prior art keywords
state
search
search key
data record
information
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
DE2911147A
Other languages
English (en)
Other versions
DE2911147A1 (de
Inventor
Jean-Claude Grigny Fr Viault
Claude Asnieres Fr Michel
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.)
INDUSTRIELLE DES NOUVELLES TECHNIQUES RADIOELECTRIQUES ET DE L'ELECTRONIQUE FRANCAISE ASNIERES FR Ste
Original Assignee
INDUSTRIELLE DES NOUVELLES TECHNIQUES RADIOELECTRIQUES ET DE L'ELECTRONIQUE FRANCAISE ASNIERES FR Ste
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 INDUSTRIELLE DES NOUVELLES TECHNIQUES RADIOELECTRIQUES ET DE L'ELECTRONIQUE FRANCAISE ASNIERES FR Ste filed Critical INDUSTRIELLE DES NOUVELLES TECHNIQUES RADIOELECTRIQUES ET DE L'ELECTRONIQUE FRANCAISE ASNIERES FR Ste
Publication of DE2911147A1 publication Critical patent/DE2911147A1/de
Application granted granted Critical
Publication of DE2911147C2 publication Critical patent/DE2911147C2/de
Granted legal-status Critical Current

Links

Classifications

    • 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)
  • Databases & Information Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Computational Linguistics (AREA)
  • Data Mining & Analysis (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Description

Die Erfindung bezieht sich auf einen Assoziativ- Suchprozessor gemäß dem Oberbegriff des Anspruchs 1, mit dem mindestens ein Datensatz aus einem ungeordneten Datenfeld durch Vergleich des Datenfeldinhalts mit einem oder mehreren einen Suchschlüssel bildenden Datensatzwörtern selektierbar ist.
Assoziativ-Prozessoren sind in den verschiedensten Ausführungsformen und Betriebsweisen bekannt, darunter die wortsequentielle Betriebsweise, die auch beim Gegenstand der Erfindung angewandt wird; vgl. Proceedings of the IEEE, Vol. 61, N° 6, Juni 1973, 722-730, insbesondere Seite 723, "Word-Serial Systems".
Ein Assoziativ-Prozessor wird immer dann in Datenverarbeitungsanlagen eingesetzt, wenn aus einem großen ungeordneten Datenspeicher oder aus einem als Datenfeld bezeichneten Teil eines solchen Speichers Informationen entnommen werden sollen, die nicht durch ihren Speicherort, sondern durch ihren Inhalt bestimmt werden. Assoziativspeicher werden vielfach den frei adressierbaren Speichern vorgezogen, da sie keine Adressenlisten benötigen, die einen bedeutenden Teil des Speichers zu Lasten der eigentlichen Daten für sich in Anspruch nehmen würden. Der Suchprozeß ist bei solchen Speichern dagegen sehr kompliziert und bedarf der Steuerung entweder durch einen eigenen Suchprozessor oder durch die zentrale Rechenanlage und eine geeignete Software.
Eine der Struktur gemäß dem Oberbegriff des Anspruchs 1 vergleichbare Struktur ist für einen Assoziativ- Kellerspeicher in "IEEE Transactions on Computers", Juni 1971, 671-674, Fig. 3 dargestellt.
Das Schaltwerk dieses Prozessors weicht jedoch von demjenigen der Erfindung ab, indem dieses nämlich die Aufgabe hat, den Prozessor so zu steuern, daß der oben angesprochene Suchschlüssel in der untersuchten Information (Datensatz) an beliebiger Stelle erkannt wird, und dabei sowohl der Suchschlüssel als auch der Datensatz eine variable unterschiedliche Länge aufweisen darf und der Suchprozessor unabhängig vom zentralen Rechenwerk einer Datenverarbeitungsanlage betrieben werden kann und hinreichend einfach, kompakt und wirtschaftlich aufgebaut ist, um, gegebenenfalls parallel zu weiteren gleichartigen Prozessoren, zur Suche innerhalb je eines Datenfeldes eines Speichers sehr großer Kapazität eingesetzt werden zu können.
Diese Aufgabe wird dadurch gelöst, daß das Schaltwerk (Programmschaltwerk) für eine Schaltzustandsfolge nach einem Petri-Netzdiagramm (Fig. 2) ausgelegt ist, wobei jeder Schaltzustand in ein Zustandsregister eingeprägt ist, und das nacheinander jedes Zeichen der Zeichenfolge eines aus dem Suchfeld entnommenen Datensatzes mit den aufeinanderfolgenden Zeichen des Suchschlüssels vergleicht und den aus dem Suchfeld selektierten Datensatz festhält, falls alle Zeichen des Schlüsselworts in der gleichen Reihenfolge identifiziert werden, oder aber verwirft, falls das nicht der Fall ist.
Jeder Datensatz besteht elektronisch aus Impulsfolgen für in Buchstaben zerlegte Wörter und Markierungs- oder Indexierungszeichen (Indices) wobei der Index DC den Anfang und der Index FC das Ende eines Datensatzes, das Zeichen die Lücke zwischen den Wörtern, das Zeichen * die Unbestimmtheit eines Buchstabens, und eine Kennung die Art des Wortes bedeuten.
Nachfolgend wird die Erfindung anhand eines Ausführungsbeispiels mit Hilfe der Zeichnungen näher erläutert.
Fig. 1 zeigt das Schema eines erfindungsgemäßen Assoziativ- Suchprozessors und
Fig. 2 zeigt ein Petri-Netz, aus dem die Betriebsweise des Programmschaltwerks hervorgeht.
Der Assoziativ-Suchprozessor 1 gemäß Fig. 1 ist einerseits an eine Datenquelle 2, beispielsweise ein Plattenspeicher großer Kapazität, und andererseits an eine Datenverarbeitungsanlage 3 angeschlossen. Zur besseren Gliederung ist die Datenquelle 2 in bestimmte Datenfelder aufgeteilt, in denen ungeordnet Datensätze gespeichert sind. Jeder Datensatz besteht aus Wörtern und jedes Wort aus Einzelzeichen und aus Indices, die den Anfang DC und das Ende FC eines Datensatzes, die Trennung zwischen Wörtern , ein Unbestimmtheitszeichen * und die Art der Wörter angeben. Das Unbestimmtheitszeichen wird nachfolgend mit Joker bezeichnet und die Indices betreffend die Art eines Wortes innerhalb eines Datensatzes nennt man Kennung.
Die Datenquelle 2 kann beispielsweise ein Telefonverzeichnis sein. In diesem Fall besteht ein Datenfeld aus einem Teil dieses Verzeichnisses und jeder Datensatz betrifft Informationen betreffend einen Fernsprechteilnehmer, wobei Kennungen für den Namen, die Adresse, den Beruf, die Telefonnummer usw. vorgesehen sind.
Die Datenverarbeitungsanlage 3 wendet sich an die Datenquelle 2 in zwei Stufen: Zuerst wird das Datenfeld ausgewählt und dann ein Datensatz innerhalb des Feldes gesucht. Die Auswahl des Datenfeldes erfolgt unmittelbar über eine Verbindung 4, z. B. nach der Indexierungstechnik. Für die Auswahl eines Datensatzes innerhalb des Datenfeldes ist allein der Assoziativ-Suchspeicher zuständig. Hierzu schreibt die Datenverarbeitungsanlage in den Prozessor 1 einen Suchschlüssel, d. h. einen Auszug aus dem gesuchten Datensatz. Dann steuert die Datenverarbeitungsanlage die Datenquelle 2 an, so daß diese dem Assoziativ-Suchprozessor 1 nacheinander alle Datensätze des ausgewählten Datenfeldes liefert. Ist nach dem noch zu erläuternden Verfahren der richtige Datensatz gefunden, so wird dieser schließlich an die Datenverarbeitungsanlage 3 übertragen.
Die Struktur der Datenquelle 2 und der Datenverarbeitungsanlage 3 sind nicht Gegenstand der Erfindung und brauchen hier nicht näher erläutert zu werden.
Der Assoziativ-Suchprozessor 1 besteht im wesentlichen aus einem Suchschlüsselspeicher 40, einem Komparator 50, einem Pufferspeicher 60 und einem Programmschaltwerk 70.
Der Suchschlüsselspeicher 40 ist ein frei adressierbarer Speicher, der von der Datenverarbeitungsanlage über eine Steuerverbindung 11 zu einem Schreibzyklus veranlaßt wird, wenn über einen Dateneingangskanal 12 in diesen Speicher 40 Daten eingeschrieben werden sollen. Solange der Speicher nicht in Einschreibbetrieb ist, befindet er sich im Lesebetrieb. Dann erfolgt die Steuerung über einen Leseadressengenerator 41, der vom Programmschaltwerk 70 inkrementiert wird. Der Ausgangs- Datenkanal dieses Speichers ist an einen ersten Eingang eines Komparators 50 und an einen Eingang des Programmschaltwerks 70 angeschlossen.
Der Adressengenerator 41 besitzt einen Zähler und ein nicht dargestelltes Sicherungsregister. Dieses Register dient dazu, gewisse Zählwerte des Adressenzählers aufzuspeichern für einen Rücksprung in der Adressierung.
Der Komparator 50 ist ein Binärkomparator, der die auf dem Ausgangskanal des Suchschlüsselspeichers 40 ankommenden Daten mit den von der Datenquelle 2 über einen Datenbus 13 gelieferten Daten vergleicht.
Der Pufferspeicher 60 liegt zwischen dem Datenbus 13 und dem Datenausgang 14 des Assoziativ-Suchprozessors, d. h. zwischen der Datenquelle 2 und der Datenverarbeitungsanlage 3. Dieser Pufferspeicher wird aufgrund einer Steuerung durch das Programmschaltwerk 70 über eine Steuerverbindung 61 während des Einschreibens gesteuert und von der Datenverarbeitungsanlage über eine Steuerleitung 15 während des Auslesens gesteuert.
Das Programmschaltwerk 70 besitzt ein als Dekoder eingesetztes erstes logisches Netzwerk 71, ein zweites logisches Netzwerk 72 (Field Programmable Logic Array) und ein Zustandsregister 73. Die Dekodiermittel 71 sind eingangsseitig einerseits mit dem Leseausgang des Suchschlüsselspeichers 40 und andererseits mit dem Datenbus 13 verbunden. Das Schaltnetz 72 besitzt Eingänge, die mit den Ausgängen der Dekodiermittel 71, des Komparators 50, des Zustandsregisters 73 und mit einem Ausgang 16 der Datenverarbeitungsanlage über eine Leitung 74 zum Starten des Prozessors verbunden sind. Die Ausgänge des Schaltnetzes 72 führen zu Voreinstelleingängen des Zustandsregisters 73, zum Leseadressengenerator 41 des Suchschlüsselspeichers 40, zum Pufferspeicher 60 und über eine Vollzugsmeldungsleitung 17 zur Datenverarbeitungsanlage 3. Das Zustandsregister 73 besitzt außerdem einen Takteingang, der über eine Leitung 18 mit dem Ausgang der Datenquelle verbunden ist und mit dem Takt versorgt wird, mit dem die Daten von der Quelle auf den Bus 13 übertragen werden.
Der Betrieb des Assoziativ-Suchprozessors gemäß Fig. 1 kann in zwei Stufen eingestellt werden:
Während einer ersten Vorbereitungsstufe, die während oder nach der Vorauswahl des Datenfeldes in der Datenquelle 2 abläuft, überträgt die Datenverarbeitungsanlage 3 an den Suchschlüsselspeicher 40 einen Suchschlüssel und schaltet diesen Speicher dann wieder auf Auslesen um.
Die eigentliche Assoziativ-Suche findet in der zweiten Stufe statt, zu der die Datenverarbeitungsanlage 3 das Startsignal liefert und während der die Datenverarbeitungsanlage die Datenquelle 2 zur Ausgabe der einzelnen Datensätze des ausgewählten Datenfeldes veranlaßt. Die einzelnen auf dem Bus 13 ankommenden Daten werden an den Komparator angelegt und gleichzeitig in einen der beiden den Pufferspeicher 60 bildenden Speicherblöcke eingeschrieben. Dieser Speicherblock hat nur eine begrenzte Kapazität, die beispielsweise der maximalen Länge eines Datensatzes entspricht. Dieser Speicherblock wirkt als Stapelspeicher (FIFO). Solange keine Meldung über einen positiven Vergleich im Komparator 50 vorliegt, verfallen die am Ausgang des Pufferspeichers ankommenden Daten. Sobald ein erster positiver Vergleich gemeldet wird und ein Index FC betreffend das Ende eines Datensatzes auftritt, vertauscht das Programmschaltwerk 70 die Funktionsweise der beiden Speicherblöcke des Pufferspeichers 60 und sendet ein Schlußsignal an die Datenverarbeitungsanlage 3, die dann den Inhalt des Blockes ausliest.
Fig. 2 zeigt ein Petri-Netz, das die Betriebsweise des Programmschaltwerks 70 erläutern soll. Dieses Petri-Netz besteht aus gerichteten Wirkpfeilen zwischen Knoten, die die einzelnen Zustände P 0 bis P 6 verbinden und bedingte Übergänge zwischen den einzelnen Zuständen deutlich machen.
Das Folgeverhalten des Programmschaltwerks 70 ergibt sich aus Fig. 2, indem man ausgehend von einer durch einen Pfeil bezeichneten Startmarkierung des Zustands P 0 die einzelnen Übergänge untersucht. Ein Übergang von einem gegebenen Zustand zu einem anderen erfolgt also dann und nur dann, wenn die an die Pfeilverbindung zwischen den beiden Knoten geschriebene Bedingung erfüllt ist. Weitere Details über solche Petri-Netze sind aus dem Artikel "Petri-Nets" von Peterson im Septemberheft 1977 der Zeitschrift "Computing Surveys ACM" nachzulesen.
Als spezifisches Merkmal der Erfindung sollen nun anhand der Fig. 2 die vorgesehenen sieben Schaltzustände des Programmschaltwerks 70 als Knotenpunkte des zugehörigen Petri- Netzes erläutert werden:
a - Der Knoten P 0 wird aktiviert, wenn die Datenverarbeitungsanlage 3 den Prozessor startet oder wenn der Prozessor einen ergebnislosen Vergleichszyklus zwischen einem von der Datenquelle 2 kommenden Datensatz und dem Suchschlüssel durchlaufen hat. In diesem Zustand des Programmschaltwerkes wird die Adressierung des Suchschlüsselspeichers 40 auf den Anfang des Suchschlüssels eingestellt, was durch die Beschriftung VoV in diesem Knoten symbolisiert wird.
b - Der Knoten P 1 ist aktiviert, wenn das Programmschaltwerk nach positiven Zeichenvergleichen den Adressenzähler des Suchschlüsselspeichers 40 im Takt der Daten auf dem Bus 13 inkrementiert wird. Ein positiver Zeichenvergleich C liegt entweder bei Gleichheit der zwei miteinander verglichenen Zeichen vor oder dann, wenn eines dieser Zeichen ein Joker ist. Dieser Tatbestand ist in Fig. 2 durch zwei geschlossene Pfeilschleifen in gestrichelter Darstellung vermerkt, wobei der eine Tatbestand durch V + 1 → V(C) und der andere durch V + 1 → V (*) symbolisiert wird.
c - Der Knoten P 2 wird vom Programmschaltwerk aktiviert, wenn nach einer erfolglosen Zeichenvergleichsoperation die Neueinstellung der Adresse des Suchschlüsselspeichers 40 zu Beginn eines gerade gelesenen Wortes bewirkt werden soll (RGVV). Dann wird entweder das Verschwinden eines Wortendezeichens am Ausgang der Datenquelle 2 abgewartet, um auf den Knoten P 1 überzugehen und die Vergleiche zwischen demselben Suchschlüsselwort und dem folgenden Wort der Quelle wieder aufzunehmen, oder man wartet auf das Auftreten eines Index FC am Ende eines Datensatzes auf dem Bus 13, um auf den Knoten P 0 überzugehen und die Vergleiche zwischen dem Anfang des Suchschlüssels und dem Anfang des nächsten Datensatzes aufzunehmen.
d - Der Knoten P 3 wird aktiviert, wenn nach dem Auslesen einer Kennung aus dem Suchschlüsselspeicher 40 die Adressierung dieses Speichers blockiert wird und das Auftreten einer gleichen Kennung am Ausgang der Datenquelle 2 abgewartet wird, um erneut auf den Knoten P 1 überzugehen, während das Auftreten eines das Ende eines Datensatzes anzeigenden Index FC auf dem Bus 13 zur Umschaltung auf den Knoten P 0 führt.
e - Der Knoten P 5 wird erreicht nach dem Auslesen eines Wortendeindex aus dem Suchschlüsselspeicher 40, worauf die Inkrementierung der Adresse dieses Speichers erfolgt und der erhaltene Wert in das Sicherungsregister abgespeichert wird (V(RGV). Darauf erfolgt ein Übergang auf den Knoten P 1, wenn ein positiver Vergleich vorliegt, bzw. auf den Knoten P 2 bei negativem Vergleich.
f - Der Knoten P 6 wird aktiviert, wenn vorher der Knoten P 1 aktiviert war und ein Index FC betreffend das Ende eines Datensatzes vom Suchschlüsselspeicher 40 kommt. Der Knoten P 6 blockiert die Adressierung des Suchschlüsselspeichers.
g - Der Knoten P 4 wird aktiviert, wenn vorher der Knoten P 6 aktiviert war und ein positiver Vergleich C im Anschluß an die Auslesung eines das Einde eines Datensatzes anzeigenden Index FC auf dem Bus 13 festgestellt worden ist. In diesem Zustand sendet das Programmschaltwerk ein Suchendesignal an die Datenverarbeitungsanlage und schaltet die beiden Blöcke des Pufferspeichers 60 um. Außerdem wird wie im Knoten P 0 die Adressierung des Suchschlüsselspeichers 40 auf den Anfang eines Suchschlüssels eingestellt. Das Programmschaltwerk 70 geht auf den Knoten P 1 über, sobald ein neuer, den Beginn eines Datensatzes anzeigender Index DC von der Datenquelle 2 kommt.
Der Suchschlüssel hat beispielsweise folgendes Format
Ein aus der Quelle 2 kommender Datensatz habe etwa folgendes Format
Es wird davon ausgegangen, daß das Schaltwerk zu Beginn im Zustand P 0 ist. Hierauf erfolgt ein Übergang in den Zustand P 1 beim Auftreten des den Anfang eines Datensatzes anzeigenden Index DC auf dem Bus 13, wobei die Adresse des Suchschlüsselspeichers 40 inkrementiert wird. Nun erfolgt der Vergleich des ersten Zeichens (Buchstabe B) des Datensatzes auf dem Bus 13 mit dem ersten aus dem Suchschlüsselspeicher 40 entnommenen Zeichen (Buchstabe B).
Der Vergleich ist positiv, und das Programmschaltwerk 70 bleibt auf dem Zustand P 1 und inkrementiert die Adresse des Suchschlüsselspeichers im selben Rhythmus wie der Datenfluß auf dem Bus 13 (V + 1 → V). Der zweite Vergleich ist ebenfalls positiv, ebenso der dritte und der vierte.
Wenn nun am Ausgang des Suchschlüsselspeichers 40 der Wortendeindex erscheint, dann wird das Programmschaltwerk auf den Zustand P 5 umgeschaltet. Es inkrementiert den Adressenzähler des Suchschlüsselspeichers 40 und überträgt dessen Inhalt auf das Sicherungsregister (VRGV). Nun erfolgt der Vergleich zwischen dem im Suchschlüssel nachfolgenden Buchstaben P und dem Zeichen D des nächsten Wortes im Datensatz auf dem Bus 13. Dieser Vergleich ist negativ, so daß das Programmschaltwerk auf den Zustand P 2 übergeht.
Nun übernimmt der Adressenzähler des Suchschlüsselspeichers 40 wieder den abgespeicherten Wert (RGVV) und inkrementiert diesen Zähler nicht mehr, bis auf dem Bus 13 der ein Wortende anzeigende Index zwischen den Wörtern DE und PARIS auftritt. Dieser Index läßt das Programmschaltwerk auf den Zustand P 1 übergehen.
Das Zeichen P in dem Wort PAYS des Suchschlüssels wird mit dem Buchstaben P des Wortes PARIS auf dem Bus 13 verglichen. Da dieser Vergleich positiv ist, bleibt das Programmschaltwerk im Zustand P 1 und bewirkt den Vergleich der zwei nächsten Buchstaben (A von PAYS mit A von PARIS; Y von PAYS mit R von PARIS). Der zuletzt genannte Vergleich war negativ und läßt das Programmschaltwerk in den Zustand P 2 übergehen.
In diesem Zustand wird erneut der im Sicherungsregister gespeicherte Adressenwert in den Adressenzähler des Suchschlüsselspeichers 40 übertragen (RGVV), so daß der Buchstabe P von PAYS erneut im Suchschlüsselspeicher 40 angesteuert wird. Das Programmschaltwerk 70 bleibt im Zustand P 2 bis zum Auftreten und Verschwinden eines Wortendeindex zwischen den Wörtern PARIS und ET und gelangt dann in den Zustand P 1.
Das negative Ergebnis dieses Vergleichs zwischen dem Buchstaben P von PAYS und E aus dem Wort ET läßt das Programmschaltwerk wieder in den Zustand P 2 übergehen, worauf der Zustand P 1 erreicht wird zum Vergleich des Buchstabens P in dem Wort PAYS des Suchschlüssels mit dem Buchstaben D des Wortes DES auf dem Datenbus 13. Anschließend erfolgt wieder ein Übergang in den Zustand P 2.
Der Zustand P 1 wird wieder eingenommen zum Vergleich der Buchstaben P aus dem Wort PAYS des Suchschlüssels mit dem Buchstaben P von PAYS in dem Datensatz auf dem Bus 13. Dieser Zustand wird beibehalten während der folgenden Vergleiche, da diese Vergleiche positiv verlaufen.
Wenn dann der das Ende eines Datensatzes anzeigende Index FC am Ausgang des Suchschlüsselspeichers 40 auftritt, erfolgt wieder ein Übergang des Programmschaltwerks vom Zustand P 1 in den Zustand P 6 und von dort in den Zustand P 4 sobald ein erster positiver Vergleich festgestellt wird, d. h. sobald am Ausgang der Datenquelle 2 der das Ende eines Datensatzes anzeigende Index FC nach dem Wort BAS auftritt.
Im Zustand P 4 wird eine Meldung über die beendete Suche an die Datenverarbeitungsanlage 3 gegeben, und es wird die Schreib- Lesefunktion zwischen den beiden Blöcken des Pufferspeichers 60 vertauscht, und die Adressierung des Suchschlüsselspeichers 40 wird auf den Anfang eines Suchschlüssels eingestellt.
Wenn der das Ende eines Datensatzes anzeigende Index FC am Ausgang der Datenquelle 2 auftritt, während das Programmschaltwerk im Zustand P 1 oder P 2 ist, ergibt sich bei negativem Vergleichsergebnis ein Übergang in den Zustand P 2 und dann in den Zustand P 0. Wenn jedoch dieser Index auftritt, während das Programmschaltwerk 70 im Zustand P 3 ist, erfolgt unmittelbar eine Umschaltung auf den Zustand P 0. In all diesen Fällen wird der Vergleichsprozeß angehalten und erst wieder aufgenommen mit dem Beginn des nächsten auf dem Bus 13 gelieferten Datensatzes.
Die Dekodierung einer Kennung am Ausgang des Suchschlüsselspeichers bewirkt das Anhalten des Vergleichsvorgangs, da das Programmschaltwerk dann in den Zustand P 3 übergeht. Die Rückkehr in den Zustand P 1 erfolgt, wenn eine gleichartige Kennung auf dem Bus 13 erscheint.
Die Dekodierung eines Jokers führt stets zu einem positiven Vergleichsergebnis.
Die Verwendung von programmierbaren Schaltnetzen (Field Programmable Logic Array) sowohl für die Dekodierung der Indices und Kennungen als auch für die Fortschaltung 72 des Folgeregisters 73 ergibt eine vollkommen strukturierte und programmierbare Logik, die sehr anpassungsfähig an unterschiedliche Anwendungsfälle ist, die sich kompakt und mit geringem Stromverbrauch realisieren läßt und die sehr zuverlässig ist.
Die besondere Einfachheit der Struktur des erfindungsgemäßen Assoziativ-Suchprozessors läßt es möglich erscheinen, mehrere Exemplare eines solchen Prozessors parallel, beispielsweise mit einer einzigen Datenquelle 2, zusammenarbeiten zu lassen, beispielsweise über mehrere aktive Leseköpfe eines einzigen Plattenspeichers.

Claims (4)

1. Assoziativ-Suchprozessor, mit dem mindestens ein Datensatz aus einem Suchfeld ungeordneter Datensätze, die aus Informationsgruppen geordneter Zeichenfolgen bestehen, selektiert wird, wobei der Inhalt des Suchfeldes mit mindestens einer Informationzeichenweise verglichen wird, die ebenfalls aus einer geordneten Zeichenfolge besteht und einen Suchschlüssel bildet, und wobei der Prozessor folgende Funktionseinheiten umfaßt:
  • - einen Suchschlüsselspeicher (40),
  • - einen Komparator (50), welcher an einem ersten Eingang die nacheinander abgefragten Informationen des Suchfeldes, und an einem zweiten Eingang die im Suchschlüsselspeicher (40) enthaltenen Informationen empfängt, die im gleichen Rhythmus wie die aus dem Suchfeld stammenden Informationen gelesen werden,
  • - einen Pufferspeicher (60), welcher die am ersten Eingang des Komparators (50) eingespeisten Informationen empfängt und die selektierten Datensätze auf Befehl an den Ausgang des Suchprozessors weitergibt, und
  • - ein Schaltwerk (70),
dadurch gekennzeichnet, daß das Schaltwerk (70) so ausgelegt ist, daß es unter folgenden Bedingungen jeweils einen bestimmten, aus der Menge der insgesamt möglichen Zustände einnimmt, und zwar:
  • - einen Zustand P 0 als Anfangszustand oder am Ende eines erfolglosen Vergleichszyklus,
  • - einen Zustand P 1 am Ende eines erfolgreichen Zeichenvergleichs zwischen Suchfeld und Suchschlüssel,
  • - einen Zustand P 2 nach erfolglosem Zeichenvergleich und in Erwartung entweder des Verschwindens eines Lückenzeichens mit der Folge des Umkippens in den Zustand P 1 mit der Folge des Umkippens in den Zustand P 1 mit anschließender Wiederaufnahme des Vergleichs zwischen dem gleichen Suchschlüsselwort und dem nächsten Wort des Datensatzes, oder eines Datensatzendindexes (FC) mit der Folge des Umkippens in den Zustand P 0 mit anschließender Wiederaufnahme des Vergleichs zwischen dem Anfang des Suchschlüssels und dem Anfang des nächsten Datensatzes aus dem Suchfeld,
  • - einen Zustand P 3, wenn das Schaltwerk nach dem Lesen einer Kennung im Suchschlüsselspeicher (40) die Adressierung desselben blockiert, um entweder auf das Auftreten einer identischen Kennung in der aus dem Suchfeld stammenden Information mit der Folge des Rückkippens in den Zustand P 1, oder eines Datensatzendindexes (FC) mit der Folge des Umkippens in den Schaltzustand P 0 zu warten,
  • - einen Zustand P 5 nach Lesen eines Abstandszeichens im Suchschlüsselspeicher (40) vor dem Umkippen entweder in den Zustand P 1, falls der Zeichenvergleich mit dem nächsten Zeichen aus dem Suchschlüsselspeicher erfolgreich ist, oder in den Zustand P 2, falls der Zeichenvergleich nicht erfolgreich ist,
  • - einen Zustand P 6, wenn das Schaltwerk im Zustand P 1 einen Datensatzendindex (FC) aus dem Suchschlüsselspeicher (40) empfängt,
  • - und einen Zustand P 4, wenn sich im Schaltzustand P 6 ein erfolgreicher Zeichenvergleich nach Lesen eines Datensatzendindexes (FC) aus dem Suchfeld ergibt.
2. Suchprozessor nach Anspruch 1, dadurch gekennzeichnet, daß jeder Datensatz elektronisch aus Impulsfolgen für in Buchstaben zerlegte Wörter und Markierungs- oder Indexierungszeichen (Indices) besteht, wobei der Index DC den Anfang und der Index FC das Ende eines Datensatzes, das Zeichen die Trennung zwischen den Wörtern, das Zeichen * die Unbestimmtheit eines Buchstabens und eine Kennung die Art der Wörter bedeuten.
3. Suchprozessor nach einem der Ansprüche 1 oder 2, dadurch gekennzeichnet, daß das Schaltwerk (70) ein erstes logisches Netzwerk F.P.L.A. (71) zur Dekodierung der Indices (DC, FC) aufweist, die die Informationen eines Suchfelddatensatzes oder eines Suchschlüssels begleiten und an den Eingängen des Komparators (50) anstehen, und ein zweites logisches Netzwerk F.P.L.A. (72), das ausgangsseitig an ein im Rhythmus der an den ersten Eingang des Komparators (50) gelangenden Informationen arbeitendes Zustandsregister (73) geschaltet ist, wobei das zweite logische Netzwerk (72) die Informationen des ersten Netzwerks (71), des Komparators (50) und des Zustandsregisters (73) empfängt und die Steuerung des Suchschlüsselspeichers (40), des Zustandsregisters (73), des Arbeitstaktes und den Schreibvorgang des Pufferspeichers (60) durchführt.
DE19792911147 1978-03-28 1979-03-21 Assoziativ-suchprozessor Granted DE2911147A1 (de)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
FR7808864A FR2421422A1 (fr) 1978-03-28 1978-03-28 Processeur a recherche associative

Publications (2)

Publication Number Publication Date
DE2911147A1 DE2911147A1 (de) 1979-10-11
DE2911147C2 true DE2911147C2 (de) 1989-06-22

Family

ID=9206325

Family Applications (1)

Application Number Title Priority Date Filing Date
DE19792911147 Granted DE2911147A1 (de) 1978-03-28 1979-03-21 Assoziativ-suchprozessor

Country Status (3)

Country Link
DE (1) DE2911147A1 (de)
FR (1) FR2421422A1 (de)
NL (1) NL7902431A (de)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
FR2499732A2 (fr) * 1979-06-19 1982-08-13 Jacques Vidalin Systeme de commande des traitements repetitifs a executer sur des informations en cours de defilement
ATE27504T1 (de) * 1982-08-06 1987-06-15 Univ Bordeaux 1 Verfahren zum zusammenbringen von logischen referenzeinheiten und logischen einheiten einer datei.
US4525803A (en) * 1982-08-12 1985-06-25 L'universite De Bordeaux 1 Method for controlling the comparison to be effected between reference logical entities and logical entities issuing from a file

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE1588353A1 (de) * 1967-10-23 1970-12-10 Jovy Gmbh Dr Ing Elektronischer Spannungsbegrenzer,vorzugsweise fuer Lichtbogen-Schweisstransformatoren
DE2121298A1 (de) * 1971-04-30 1972-12-28 Runschke W Stromsteuerung, insbesondere Phasenanschnittsteuerung für Schweißstromquelle, geeignet für Einphasen- und Mehrphasenbetrieb
US3913074A (en) * 1973-12-18 1975-10-14 Honeywell Inf Systems Search processing apparatus

Also Published As

Publication number Publication date
FR2421422B1 (de) 1980-08-22
NL7902431A (nl) 1979-10-02
FR2421422A1 (fr) 1979-10-26
DE2911147A1 (de) 1979-10-11

Similar Documents

Publication Publication Date Title
DE2415900C3 (de) Rechenautomat mit mehreren mit je einem Vorratsspeicher versehenen Rechenanlagen
DE1499182C3 (de) Datenspeichersystem
DE1499203B1 (de) Schaltungsanordnung zum Speicherschutz bei Datenverarbeitungsanlagen mit Simultanbetrieb
DE1449765B2 (de) Einrichtung zur Abfrage eines assoziativen Speichers
CH638913A5 (de) Vorrichtung in textverarbeitungsanlagen zum auswaehlen von zum ordnen qualifizierten datensaetzen unterschiedlicher laenge.
DE3131341A1 (de) "pufferspeicherorganisation"
DE2331589A1 (de) Datenverarbeitungsanordnung
DE3327379A1 (de) Einrichtung und verfahren zum umordnen von datensaetzen
DE2703559C2 (de)
DE2054941C2 (de) Anordnung zur Auswahl von Datensätzen
DE2911147C2 (de)
DE1774607C3 (de) Speicheranordnung mit einem informationszerstörend lesbaren Speicher
DE1449774C3 (de) Speichereinrichtung mit kurzer Zugriffszeit
DE1774211C3 (de) Datenspeicheranordnung für ein Datenverarbeitungssystem
DE2519195A1 (de) Assoziativspeicher
DE2853165C2 (de)
EP1564754B1 (de) Verfahren und Vorrichtung zur Verwaltung von Daten in einem nichtflüchtigen Datenspeicher
EP0139817B1 (de) Verfahren und Anordnung zum Aufsuchen von einem vorgegebenen Suchargument entsprechenden Daten einer Datenfolge in einem Hybrid-Assoziativspeicher
EP0108261B1 (de) Logikanalysator
EP0489248B1 (de) Adress-Steuerung für einen First in- / First out-Speicher
DE2816838C2 (de) Verfahren und Prioritätssteuereinheit zum Zuordnen von Prioritäten
DE1774866C3 (de) Schaltung zur Bestimmung der Adresse einer in einem Speicher einer Datenverarbeitungsanlage enthaltenen, gesuchten Information
DE2938713A1 (de) Datenverarbeitungsschaltung
DE2501119A1 (de) Datenverarbeitungseinrichtung
DE2520704A1 (de) Speichersystem

Legal Events

Date Code Title Description
8110 Request for examination paragraph 44
D2 Grant after examination
8364 No opposition during term of opposition
8339 Ceased/non-payment of the annual fee