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
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/90—Details of database functions independent of the retrieved data types
- G06F16/903—Querying
- G06F16/90335—Query processing
- G06F16/90344—Query 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 Vo → V 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 (RGV → V). 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 (V → RGV). 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 (RGV → V) 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 (RGV → V), 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.
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)
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 |
EP0100801B1 (de) * | 1982-08-06 | 1987-05-27 | L'universite De 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)
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 |
-
1978
- 1978-03-28 FR FR7808864A patent/FR2421422A1/fr active Granted
-
1979
- 1979-03-21 DE DE19792911147 patent/DE2911147A1/de active Granted
- 1979-03-28 NL NL7902431A patent/NL7902431A/xx not_active Application Discontinuation
Also Published As
Publication number | Publication date |
---|---|
NL7902431A (nl) | 1979-10-02 |
FR2421422A1 (fr) | 1979-10-26 |
DE2911147A1 (de) | 1979-10-11 |
FR2421422B1 (de) | 1980-08-22 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
DE2415900C3 (de) | Rechenautomat mit mehreren mit je einem Vorratsspeicher versehenen Rechenanlagen | |
DE1499182C3 (de) | Datenspeichersystem | |
DE3650156T2 (de) | Auf regeln basiertes datenwiederauffindverfahren und anordnung. | |
DE1928202C3 (de) | Einrichtung zur Erstellung statistischer Daten über den Operationsablauf programmgesteuerter Datenverarbeitungsanlagen | |
DE3750277T2 (de) | Verfahren und Vorrichtung zur Rückgewinnung von Symbolketten aus Daten. | |
CH627580A5 (de) | Austauschanordnung zur bereitstellung von austauschadressen fuer den betrieb eines pufferspeichers in einer speicherhierarchie. | |
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. | |
DE2331589A1 (de) | Datenverarbeitungsanordnung | |
DE3327379A1 (de) | Einrichtung und verfahren zum umordnen von datensaetzen | |
DE3688738T2 (de) | Musteradressierbarer speicher. | |
DE2703559C2 (de) | ||
DE2054941C2 (de) | Anordnung zur Auswahl von Datensätzen | |
DE2911147C2 (de) | ||
DE3688737T2 (de) | Kontextadressierbarer umlaufspeicher. | |
DE1449774C3 (de) | Speichereinrichtung mit kurzer Zugriffszeit | |
DE1774211C3 (de) | Datenspeicheranordnung für ein Datenverarbeitungssystem | |
DE1774607B2 (de) | Speicheranordnung mit einem informationszerstoerend lesbaren speicher | |
DE69031324T2 (de) | Inhaltsadressierbarer Speicher | |
DE2519195A1 (de) | Assoziativspeicher | |
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 | |
DE3240926C2 (de) | Logikanalysator | |
DE2816838C2 (de) | Verfahren und Prioritätssteuereinheit zum Zuordnen von Prioritäten |
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 |