DE3518818C2 - - Google Patents
Info
- Publication number
- DE3518818C2 DE3518818C2 DE3518818A DE3518818A DE3518818C2 DE 3518818 C2 DE3518818 C2 DE 3518818C2 DE 3518818 A DE3518818 A DE 3518818A DE 3518818 A DE3518818 A DE 3518818A DE 3518818 C2 DE3518818 C2 DE 3518818C2
- Authority
- DE
- Germany
- Prior art keywords
- data
- vector
- associative
- memory
- converted
- 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
- G06F15/00—Digital computers in general; Data processing equipment in general
- G06F15/76—Architectures of general purpose stored program computers
- G06F15/80—Architectures of general purpose stored program computers comprising an array of processing units with common control, e.g. single instruction multiple data processors
- G06F15/8053—Vector processors
- G06F15/8076—Details on data register access
-
- 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/901—Indexing; Data structures therefor; Storage structures
- G06F16/9014—Indexing; Data structures therefor; Storage structures hash tables
-
- 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/90339—Query processing by using parallel associative memories or content-addressable memories
Description
Die Erfindung betrifft eine Datenverarbeitungsvorrichtung
und ein Verfahren zur Umsetzung von Vektordaten gemäß den
Oberbegriffen der unabhängigen Ansprüche 1 und 17.
Eine solche Vorrichtung und ein solches Verfahren sind aus
der US-PS 41 28 880 bekannt.
Die Datenbanktechnik, die eine wirksame Verarbeitung oder
Steuerung großer Datenmengen ermöglicht, handhabt hauptsäch
lich drei Datenbanktypen,nämlich hierarchische, netzwerk
artige und Vergleichsdatenbaken. Während die ersten zwei
Datenbanktypen zur Verarbeitung großer Datenvolumen mit
hoher Geschwindigkeit entwickelt wurden und komplexe Verar
beitungen erfordern, die für den in Datenbankoperationen er
fahrenen Benutzer geeignet sind, werden bei Vergleichsdaten
banken verhältnismäßig kleine Datenmengen durch eine einfache
Operation verarbeitet. Man nimmt an, daß sich letztere Technik
in der Zukunft beträchtlich ausdehnen wird. Dabei gibt es
jedoch das Problem, daß sich die Verarbeitungsgeschwindigkeit
mit wachsender Datenkapazität verringert.
Fig. 1 zeigt eine schematische Darstelung einer logischen
Datenstruktur einer Vergleichsdatenbank, die als Beispiel
Information über Bauteie enthält. Die Information wird in
Form einer Tabelle in einer Plattenspeichereinheit 110
(Fig. 2) gespeichert.
Eine Tabelle 100 enthält eine Zeile 101, die Datensatz
oder "tupple" heißt und eine Spalte 102. Aus Fig. 2 ist zu
ersehen, daß die Daten physikalisch in Datensatzeinheiten
in Blöcken fester Länge (120 a, 120 b, usw.) gespeichert sind,
die jeweils eine Seite auf der Platte 110 bilden. Eine Seite
enthält normalerweise mehrere Datensätze. Eine Adresse eines
Datensatzes auf einer Platte (als Datensatzadresse bezeichnet)
weist eine Seitenummer und eine Versatzadresse vom Kopf einer Seite auf.
Solch ein Beispiel offenbart ein Bericht von C.J. Date in
"An Introduction to Database Sysstems" (3. Auflage, Seite
173-174). In diesem Bericht wird die Datensatzadresse mit
"tupple identifier" (TID) bezeichnet.
Ein in einem Datenspeicher 200 gespeichertes Vergleichsdaten
banksteuerprogramm 240 liest Seiten, die die benötigten Daten
sätze enthalten von der Platte und speichert die Seiten in
einen Eingabe/Ausgabepufferbereich 201 im Datenspeicher. Die
auf diese Weise erhaltenen Seiten und Datensätze werden in
Fig. 2 jeweils mit den Bezugsziffern 220 a, 220 b und 221 a,
221 b bezeichnet. Anders als eine auf der Platte gespeicherte
Seite oder ein Datensatz, die jeweils mittels einer Daten
satzadresse und einer Seitennummer adressiert werden, adres
siert man eine Seite und einen Datensatz im Datenspeicher
mittels einer Datenspeicheradresse; folglich muß das Ver
gleichsdatenbank-Steuerprogramm eine Prozedur enthalten,
die die Adressen umsetzt.
Wenn der Datenspeicher eine kleine Datenspeicherkapazität
hat, muß, um einen Datensatz vom Speicher zu erhalten, jede
Seite gelesen werden, womit der Hauptteil der Verarbeitungs
zeit für Eingabe/Ausgabeprozesse für den Zugriff zur Platte
101 verbraucht wird. Neuerliche Fortschritte in der Halb
leitertechnologie ermöglichten jedoch sehr große Daten
speicher, beispielsweise mit 32 Megabyte (MB) Kapazität,
die das Speichern aller Tabellen oder aller Seiten im Puffer
bereich 201 im Datenspeicher ermöglichen, wodurch sich die
zur Eingabe/Ausgabe für den Zugriff zur Platte 110 nötige
Zeit wesentlich verringern läßt.
Dabei bleibt das Problem, die
Ausführungszeit des Prozesses zu verringern, bestehen.
Zur Erhöhung der Verarbeitungsgeschwindigkeit wurden bereits
verschiedene Vektorprozessoren vorgeschlagen, beispielsweise
CRAY-1, die als die erste Maschine dieses Typs entwickelt
wurde.
In der Vergangenheit wurden jedoch solche Datensätze, wie die
in Fig. 1 dargestellte Verarbeitungseinheit verarbeitet.
Dieses Verfahren kann vorteilhaft bei einem Datenspeicher
kleiner Kapazität beispielsweise, wenn der Pufferbereich
nicht mehr als einigen Seiten entspricht, verwendet werden.
Andererseits variiert, wenn angenommen wird, daß die Daten
elemente in Datensatzrichtung einen Vektor bilden, der Daten
typ und die arithmetische Operation zwischen diesen Daten
elementen; deshalb eignet sich eine solche Datenstruktur nicht
für die Vektorverarbeitung. Umgekehrt läßt sich, wenn der
Hauptspeicher eine große Kapazität besitzt, das folgende
Verarbeitungssystem gemäß dem von der vorliegenden Erfin
dung vorgeschlagenen neuen Prinzip ausführen.
Dabei kann jeder Satz von Datenelementen die in Spalten
richtung erhalten werden, falls die gesamte von der Platte
geholte Tabelle zuvor im Datenspeicher gespeichert wird, als
Vektordaten angenommen werden. Dann kann die Vektor
verarbeitung vorteilhaft angewendt werden, da
- a) jedes Vektoreement vom selben Datentyp ist, und
- b) jedes Vektorelement derselben arithmetischen Verar
beitung, wie z. B. Verschieben (move), Vergleich
(comparison) oder Auswählen (selection) unterworfen
wird. Die folgenden Abschnitte behandeln die neuen
Operationen eines konkreten Vergleichsdatenbank
programms, wobei jeder Schritt eines Datenwieder
gewinnungsspiels, durch das die Teilenamen,
für die der Herstellername HITACHI ist, gewonnen
werden, beschrieben wird, z. B. aus der Zeile 101
der Tabelle 100 in Fig. 1.
- 1. Im Vektorarbeitsbereich 18 des Datenspeichers 200 (durch die Bezugsziffer 7 in Fig. 2 bezeichnet), wird eine Liste von Datensatzadressen der zur Tabelle ge hörenden Datensätze erzeugt. Diese Tabelle hat gewöhn lich einen Index für jede der Spalten. Für jeden Datensatz enthält dieser Index ein aus dem Spalten wert und einer Datensatzadresse bestehendes Paar (in Fig. 2 nicht dargestellt). Folglich kann die Datensatzadressliste, falls der Index im Vektorformat aufgebaut ist, mittels einer Vektorverschiebeanweisung erzeugt werden. Es sei beispielsweise angenommen, daß ein Index für die Teilecodes der Bauteiletabelle 100 in Fig. 1 erzeugt wird. In diesem Fall sind jedoch die erhaltenen Datensatzadressen nicht notwendigerweise in der Reihenfolge der Seitennummern geordnet, d. h., daß sie bezüglich der Seitennummern zufällig anfallen.
- 2. Eine Datenspeicheradressliste der zur Tabelle gehören
den Datensätze wird in einem Vektorarbeitsbereich 31
des Datenspeichers 200 (durch die Bezugsziffer 6 in
Fig. 2 bezeichnet) erzeugt. Diese Maßnahme führt die
oben beschriebene Adressumsetzung aus, um erfindungs
gemäß die Verarbeitungsgeschwindigkeit zu erhöhen.
Für jeden Datensatz war es bisher nötig, eine Seitennummer aufgrund einer Datensatzadresse zu extrahieren und nach der Seite mit derselben Seitennummer in den Seiten (221 a, 221 b, usw.) des Pufferbereichs 201 von Fig. 2 zu suchen. Die dafür nötige Verarbeitungszeit erhöhte sich mit größer werdender Pufferbereichskapazität. Zusätzlich wurde im Stand der Technik nicht versucht, die Verarbeitungsgeschwindigkeit mittels der Vektorarithmetik operation zu erhöhen, weil die Vektorverarbeitung nicht anwendbar war; folglich stellte diese Prozedur einen Engpaß in der Systemleistungsfähigkeit dar, falls sie in einem Vergleichsdatenbanksystem in einem Datenspeicher großer Kapazität verwendet wurde. - 3. Auf der Basis einer im obigen Abschnitt (2.) erzeugten Daten speicheradresse des Datensatzes wird die Postennamen adresse der Herstellernamens für jeden Datensatz be rechnet, und derjenige Datensatz, dessen Hersteller name HITACHI lautet, durch Vergleich mit dem Hersteller namen ausgewählt. Diese Prozedur wird durch Befehle, wie einen Vektoradditionsbefehl und einen Vektorver gleichsbefehl durchgeführt.
- 4. Die die Wiedergewinnungsprozedurbedingungen erfüllenden Datensätze werden übertragen. Nur solche Bauteile- Namenposten der in Schritt (3.) gewählten Datensätze werden zu einem Bereich beispielsweise einem Anzeige bereich übertragen und as Wiedergewinnungsergebnisse abgespeichert. Diese Verarbeitung wird mittels Be fehlen, wie einem Vektorverschiebebefehl mit einer indirekten Adressierfunktion durchgeführt.
Von den oben beschriebenen Verarbeitungsschritten (1.)
bis (4.) ist die Adreßumsetzung von Schritt (2.) die schwierig
ste Verarbeitung bei der Anwendung der Vektorverarbeitung
hierauf, um die Verarbeitungsgeschwindigkeit durch Verwendung
eines Vektorprozessors zu erhöhen, und ist deshalb ein
Engpaß in der Systemleistungsfähigkeit. Beim Versuch,
die Verarbeitungsgeschwindigkeit bei derVergleichsdatenbank-
Verarbeitung mittels der Vektoroperation zu erhöhen, ist
dieses Problem neuartig.
Aus der US-PS 40 24 508 ist ein Adreßumsetzverfahren in
einer Datenbank bekannt. Bei diesem Verfahren wird ein
Deskriptor für alle die Seiten vorbereitet, die zumindest
einen der in der Datenbank enthaltenen Datensätze aufweisen
und die bereits in einen Arbeitsspeicher (Datenspeicher) ausgelesen wurden.
Jeder Deskriptor enthält eine Seitennummer und eine Arbeits
speicheradresse einer entsprechenden Seite. Wenn eine
Arbeitsspeicheradresse eines Datensatzes zu ermitteln
ist, muß ein Deskriptor, der dieselbe Seitennummer wie
die die dem Datensatz zugeteilt wurde, gesucht werden.
Die Deskriptoren sind im Arbeitsspeicher vorgesehen und
miteinander sequentiell verkettet. Deshalb erhöht sich
die Verarbeitungszeit für das Suchen mit der Zahl der
Deskriptoren.
Aus der US-PS 41 28 880 und dem Fachbuchartikel "Rechner
architektur" von W. K. Giloi, Springer-Verlag 1981, S. 178-
194, sind Vektorprozessoren bzw. Pipelineprozessoren be
kannt, also übliche Vektorfunktionseinheiten zur Umsetzung
von Vektordaten. Die daraus bekannten Vektorfunktionsein
heiten können nur solche Vektorumsetzungen durchführen, die
auf einer vorgegebenen Gleichung oder numerischen Formel be
ruhen. Eine Verwendung eines Assoziativspeichers zur Um
setzung von Vektordaten ist darin nicht offenbart.
Die DE-AS 25 25 287 offenbart lediglich die Struktur eines
bekannten Assoziativspeichers, der einen RAM-Baustein ver
wendet. Dieser Assoziativspeicher wird in üblicher Weise an
gewendet, in dem eine virtuelle Speicheradresse in eine ent
sprechende physikalische Speicheradresse zu jedem Umsetz
zeitpunkt umgewandelt wird. Dies ist jedoch eine Skalarver
arbeitung. Somit lehrt die DE-AS 25 25 287 die Verwendung
eines Assoziativspeichers zur Umsetzung von Vektoren
nicht.
Es ist Aufgabe der Erfindung, eine Datenverarbeitungsvorrichtung mit einer
Datenumsetzvorrichtung und ein Verfahren anzugeben, mit de
nen vektorartige Daten in andere Vektordaten mit hoher Ge
schwindigkeit ohne die Verwendung üblicher Vektorfunktions
einheiten umgesetzt werden können.
Die obige Aufgabe wird bei einer Datenverarbeitungsvorrich
tung nach dem Oberbegriff des Anspruchs 1 erfindungsgemäß
durch die in seinem kennzeichnenden Teil angegebenen Merkma
le gelöst.
Die Unteransprüche 2 bis 16 kennzeichnen jeweils vorteilhaf
te Ausbildungen davon.
Ein Verfahren zur Umsetzung von Vektordaten gemäß dem Ober
begriff des Patentanspruchs 17, das die obige Aufgabe löst,
wird erfindungsgemäß durch die in dessen kennzeichnendem
Teil angegebenen Merkmale gelöst.
Anspruch 18 kennzeichnet eine vorteilhafte Weiterbildung davon.
Vorteilhaft ist,
daß die Registrieroperation und
die Wiedergewinnungsoperation hinsichtlich des Assoziativspeichers je
weils nur eine Zeitdauer benötigen, die einen Zyklus zur Verarbeitung
eines Vektorelements beträgt. Üblicherweise wird für die Wiedergewinnung ein Operations
vorgang nach der Beendigung des vorangehenden Operations
schritts ausgeführt, das heißt, daß herkömmlich ein Hol
schritt, der einen assoziativen Kennbegriff liest, ein
Rechenschritt, der eine Spaltenadresse für den Assoziativ
speicher berechnet, ein Holschritt, der den Inhalt des Assoziativspei
chers holt, ein Vergleichsschritt, der die Daten am Assoziativspei
cherausgang vergleicht und ein Speicherschritt, der die Daten am
wiedergewonnenen Ausgang abspeichert, nacheinander ausgeführt
wurden. Auch wenn ein Befehl für jeden Zyklus in jedem
Schritt ausgeführt würde, wären fünf Zyklen nötig, die Ge
samtverarbeitung durchzuführen. Folglich ist die Verarbei
tungsgeschwindigkeit durch die Anwendung der vorliegenden
Erfindung fünfmal so schnell wie die Geschwindigkeit bei
herkömmlicher Verarbeitung.
Zusätzlich gibt es keine Möglichkeit, daß ein Benutzer
fälschlich zu von anderen Benutzern einer Assoziativ
speicherzeile gespeicherten Daten zugreift, da die dem Be
nutzer eigene Kennung nicht willkürlich vom Benutzer ver
ändert werden kann und diese ebenfalls vom Assoziativspei
cher gespeichert ist.
Die Erfindung wird im folgenden anhand der Zeichnung näher
beschrieben. Es zeigt
Fig. 1 ein vereinfachtes Diagramm, das einen logischen Daten
aufbau einer Vergleichsdatenbank darstellt;
Fig. 2 ein Blockschaltbild, das ein Vergleichsdatenbank
system zeigt, bei dem die Datenumsetzvorrichtung
gemäß der Erfindung angewendet wird;
Fig. 3 ein Blockdiagramm, das Operationen von Vektorbefehlen
zeigt, die die Datenumsetzvorrichtung gemäß der Er
findung verwenden;
Fig. 4 ein vereinfachtes Diagramm, das ein Datenaufbau
beispiel eines Speichers für Assoziativdaten dar
stellt, der in der Datenumsetzvorrichtung gemäß der
Erfindung verwendet wird; und
Fig. 5 ein Schaltbild eines Ausführungsbeispiels der Daten
umsetzvorrichtung gemäß der Erfindung.
Im folgenden wird ein Ausführungsbeispiel der Erfindung anhand
der Zeichnung beschrieben.
Fig. 3 zeigt ein Diagramm, das die Operationen neuer Vektor
befehle darstellt, die mittels der Vektorumsetzvorrichtung
gemäß der Erfindung implementiert werden können, nämlich des
Assoziativspeicher-Vektorregistrierbefehls und Assoziativ
speicher-Vektorwiedergewinnbefehls (abgekürzt Registrier-
und Wiedergewinnbefehl). Diese Vektorbefehle werden in einem
gemeinsamen Befehlsformat 1 dargestellt. Die zwei oberen Bytes
eines 4-Byte-Befehls 1 kennzeichnen einen Operationscode für
beide Befehle. Das unterste Byte wird zum Kennzeichnen
zweier allgemeiner Register R 1 und R 2 verwendet. Ein durch
R 1 gekennzeichnetes allgemeines Register 2 speichert die
Anzahl von Vektorelementen eines umzusetzenden Vektors. Ein
allgemeines Register 3, das durch R 2 gekennzeichnet ist,
enthält die erste Adresse eines Vektors 6, der als Wieder
gewinnungsausgangsdatenposten des Wiedergewinnungsbefehls
verwendet wird oder ein Registriereingangsdatum des Regi
strierbefehls. Ein allgemeines Register 4, das durch (R 2 + 1)
gekennzeichnet ist, speichert die Anfangsadresse von Eingabedaten eines
umzusetzenden Vektors 7, von dem ein Vektorelement die als ein Assozia
tivkennbegriff vom Benutzer spezifizierte Seitenadresse ist.
Jedes Vektorelement besteht aus vier Byte und wird aufein
anderfolgend im Datenspeicher angeordnet.
Ein Benutzerkennzeichenregister 13 enthält ein Benutzerkenn
zeichen, durch das jeder Benutzer identifiziert wird. Das
Betriebssystem setzt einen jedem Benutzer eigenen Wert in
dieses Register und der Wert kann vom Benutzer nicht ge
ändert werden. Beispielsweise setzt das VOS3-Betriebssystem
des Allzweck M280H-Prozessors von HITACHI LIMITED die An
fangsadresse der Adressumsetztabelle für virtuelle/reelle
Adressräume für jeden Benutzerbereich in das erste Steuer
register, das heißt, dieses Steuerregister kann als das
obengenannte Benutzerkennungsregister verwendet werden.
Fig. 4 ist ein vereinfachtes Schema, das den Aufbau eines
Speichers für Assoziativdaten oder eines Umsetztabellen
speichers 23, der in diesem Ausführungsbeispiel verwendet
wird, zeigt. Jeder Eintrag oder jede Zelle des Speichers
23 enthält drei Felder aus je vier Byte. Ein erstes Feld
41 speichert einen vom Benutzer gekennzeichneten assoziativen
Kennbegriff, ein zweites Feld 42 enthält eine Benutzer
kennung des Benutzers, der den Kennbegriff dieses
Eintrags spezifiziert, und ein drittes Feld 43 speichert
ein Wiedergewinnungsausgangsdatum, zugeordnet dem
Kennbegriff desselben Eintrags. Wenn ein Benutzer den
Kennbegriff spezifiziert und eine Benutzerkennung
eingibt, gibt der Speicher 23 einen Wiedergewinnungsdaten
posten von einer Assoziativspeicherzelle, deren erstes und
zweites Feld mit den eingegebenen Werten übereinstimmen, aus.
Diese Funktion wird benötigt, wenn mehrere Vergleichsdaten
bankprogramme unabhängig die jeweiligen in Fig. 2 gezeigten
Datenbänke verarbeiten. Da die Datensatzadressen einzeln nur
einer jeweiligen Datenbank zugeordnet sind, müssen Mittel
vorgesehen werden, eine jeweilige Datenbank zu identifizieren.
Dazu muß zusätzlich zur Datensatzadresse Information zur
Kennzeichnung eines Vergleichsdatenbankprogramms, das ist
eine Kennung eines zu einer Vergleichsdatenbank zugreifenden
Benutzers ebenfalls in die Daten für die Adressumsetzung
enthalten sein, damit nicht fälschlich zu den Inhalten anderer
Vergleichsdatenbänke oder Pufferbereiche anderer Benutzer zugegriffen
wird. Fig. 4 stellt ein Beispiel einer Konfiguration
mit vier Einträgen dar.
Fig. 5 zeigt ein Blockschaltbild eines konkreten Ausführungs
beispiels einer Vektorprozessorschaltung, die die Registrie
rung und Wiedergewinnung im Assoziativspeicher ausführt.
Ein Vektorprozessor 300 enthält eine Vektorarithmetikein
heit 302 und eine Befehlssteuereinheit 10 und enthält
außerdem einen Vektordatenumsetzer 301 gemäß der vorliegenden
Erfindung.
Zuerst wird die Operation des Registrierbefehls anhand der
Fig. 5 beschrieben. Wenn ein Registrierbefehl in ein Be
fehlswortregister 12 eingegeben wird, holt eine Befehlssteuer
einheit 10 die ersten Adressen gemäß dem ersten und zweiten
Operanden, die vom Befehl spezifiziert sind, aus einer Gruppe
allgemeiner Register (GRPS) 11 und speichert die geholten
Adressen in ein erstes Operandenadreßregister (OP1AR) 26
und ein zweites Operandenadreßregister (OP2AR) 15. Außerdem
wird die Anzahl der Vektorelemente, die in einem allgemei
nen Register 11 gespeichert ist, einem Vektorlängenregister
60 übertragen. Eine Vektorsteuerschaltung 61 steuert den
Vektordatenumsetzer 301 nach Maßgabe eines Operationscodes
im Befehlswortregister 12 und der Vektorelementzahl im
Vektorlängenregister 60, um einen Registrier- oder Wieder
gewinnungsbefehl auszuführen. Die Signale a bis e werden nach
Maßgabe sowohl des Registrier- als auch Wiedergewinnungs
befehls erzeugt und steuern verschiedene Register, um in
diese wiederholt Eingangssignale zu setzen, bis alle
Vektorelemente der angegebenen Länge darin gespeichert sind.
Das Signal f wird entsprechend dem Registrierbefehl erzeugt
und weist den Speicher 23 an, auf den Leitungen 50, 51 und
52 gelieferte Daten zu speichern. Der Speicher 23 führt
eine Leseoperation aus, wenn das Signal f nicht anliegt.
Der Ausgang der OP1AR wird als eine Holadresse für den
Vektorarbeitsbereich 31 zum Datenspeicher 200 über eine
Adreßleitung 29 übertragen, und das gelesene Datum in ein
erstes Operandenlesedaten-A-Register (OP1DRA) 32 gespeichert.
Gleichzeitig wird der Ausgang des OP2AR als Holadresse für
den Vektorarbeitsbereich 18 zum Datenspeicher 200 über
eine Adreßleitung 17 übertragen und das geholte Datum in
ein zweites Operandendatenregister (OP2DR) 19 eingespeichert.
Die Inhalte von OP1AR und OP2AR werden jeweils mit vier durch
Addierer (+4) 30 und 16 in jedem Zyklus inkrementiert, um
aufeinanderfolgend jeweils die fortlaufenden ersten und
zweiten Operanden, die einem jeweiligen Vektor in jedem Zyklus
entsprechen, zu holen.
Der in den Fig. 4 und 5 dargestellte Assoziativspeicher
gestattet die Registrierung von vier Einträgen entsprechend
den dargestellten vier Zeilen des Assoziativspeichers
23. Zu registrierende Informationsteile werden in vier
Gruppen klassifiziert. Jede Gruppe wird fest einem der
vier Einträge in 1: 1 Korrespondenz zugeordnet. Jeder
Informationsteil wird als einer der Einträge abhängig davon
zu welcher Gruppe der Informationsteil zugehört, registriert.
Diese Registrationsart ist allgemein als 4 × 1 strukturiertes
Kongruenzsystem bekannt.
Bei dem in Fig. 5 dargestellten Ausführungsbeispiel er
mittelt eine Störschutzschaltung (HASH) 24 die Zeile ent
sprechend dem zu registrierenden Eintrag.
Die Störschutzschaltung (HASH) 24 erzeugt Ausgangssignale
von dem Benutzerkennungsregister (USERIDR) 13 und dem OP2DR
empfängt. In der HASH-Schaltung werden zwei niederwertige
Bits des USERIDR mit denen des OP2DR exclusiv ODER, und zwar
jeweils die Bits derselben Bitstelle, verknüpft und die sich
ergebenden zwei Bits als Zeilenadresse ausgegeben. Ein Ver
gleicher 21, ein Gatter 22 und der Speicher 23 für Assozia
tivdaten bilden die Assoziativspeichereinrichtung.
Wenn ein Registrierbefehl ausgeführt wird, wird der Ausgang
des OP2DR über eine Leitung 50 in das erste Feld des Assozia
tivspeichereintrags, das von der Zeilenadresse der HASH-
Schaltung 24 gekennzeichnet ist, der Ausgang von USERIDR in
das zweite Fed über eine Leitung 51 und der Ausgang des
OP1DRA in das dritte Feld über eine Leitung 52 gespeichert.
Die Speicheroperation wird sukzessive für jeden Zyklus syn
chron mit dem den OP1AR und OP2AR-Adreßfortschreiboperationen
zugeteilten Zyklen ausgeführt.
Auf diese Weise können die Daten für den Kennbe
griff-Vektor, der die assoziativen Kennbegriffe als Vektorele
mente aufweist, und die Wiedergewinnungsvektordaten, die die
Wiedergewinnungsausgangsdaten als Vektorelemente haben,
sequentiell für jedes einzelne Vektorelement in die ent
sprechenden Felder des Speichers 23 für Assoziativdaten
registriert werden. Beispielsweise wird der Registrierbefehl automatisch
durch das Steuerprogramm oder gemäß einer Benutzerangabe
ausgeführt, wenn Seiten aufeinanderfol
gend von der Platte 110 in den Datenspeicher 200 geholt werden.
Nun wird die Operation des Wiedergewinnbefehls beschrieben.
Die Befehlssteuereinheit 10 speichert die Anfangsadressen
jeweils des ersten und zweiten Operaden im OP1AR und OP2AR
in derselben Weise wie für die Verarbeitung eines Registrier
befehls.
Jedes Element des zweiten Operanden wird vom Vektorarbeits
bereich 18 geholt und in das OP2DR gespeichert, und eine
Spaltenadresse des Speichers 23 wird durch eingebende Aus
gänge vom OP2DR und USERIDR in die HASH-Schatung in der
selben Weise wie beim Registrierbefehl beschrieben, erzeugt.
Wenn ein Wiedergewinnbefehl ausgeführt wird, werden eingegebenen und umzusetzen
den Vektordaten 7, die Vektorelemente desselben Typs
wie die Kennbegriffe aufweisen, in den Vektorar
beitsbereich 18 gespeichert. Die gespeicherten Daten werden
für jedes Vektorelement mittels der Adresse geholt, die
vom OP2AR geliefert wird und in das OP2DR geladen. Ab
hängig von den Inhalten der OP2DR und USERIDR wird ein
Assoziativspeichereintrag, der durch die Zeilenadresse
vom HASH gekennzeichnet ist, geholt und der Ausgang (Daten
leitung 25) vom ersten Feld und der Ausgang (Datenleitung
35) vom zweiten Feld mit den Ausgängen von OP2DR und USERIDR
jeweils mittels einer Vergleichsschaltung 21 verglichen
und bestimmt, ob sie jeweils mit den Vergleichsdatenposten
identisch sind oder nicht. Wenn diese beiden Felder je
weils passen, steuert die Vergleichsschaltung 21 ein Gatter
22 mittels eines Ausgangssignals auf einer Signalleitung
53, so daß der Wiedergewinnungsausgang (Datenleitung 27)
vom dritten Feld des Assoziativspeichereintrags in das
erste Operandenspeicherdatenregister (OP1DRB) 33 gespei
chert wird. Während des nächsten Zyklus wird der Ausgang
des OP1DRB in den Vektorarbeitsbereich 31 über eine Lei
tung 54 durch das Ausgangssignal vom OP1AR , das die Spei
cheradresse darstellt, gespeichert. Offensichtlich initiiert
die Vergleichsschaltung 21 die Vergleichsverarbeitung für
das nächste Vektorelement während dieses Zyklus.
Da der Addierer 30 den Inhalt des OP1AR in jedem Zyklus
inkrementiert, wird der erste Operand für jeden Zyklus mit
dem Inhalt der Wiedergewinnungsdaten in einem Eintrag im
Assoziativspeicher geladen, für den sowohl der Benutzer
spezifizierte assoziative Kennbegriff als auch die Be
nutzerkennung, als Vektorelemente des zweiten Operan
denvektors übereinstimmen. Falls jedoch kein Assoziativ
speichereintrag, dessen Inhalt gleich den Vektorelementen
ist, existiert, wird die Datenspeicheroperation des
betreffenden Elements des ersten Operanden nicht ausgeführt;
oder ein gekennzeichneter Wert z. B. "0" in das Feld des
Elements eingetragen, was leicht vom Gatter 22 wie folgt
auszuführen ist. Wenn die Vergleichsschaltung 21 ein
Ausgangssignal abgibt, das ein nicht übereinstimmendes Er
gebnis angibt, speichert das Gatter 22 einen bestimmten
Wert wie z. B. "0" in das OP1DRB.
Auf diese Weise wird der Vektorarbeitsbereich 31 mit den
umgesetzten Ausgabe-Vektordaten geladen, deren Wiedergewinnungs
ausgangsdatum als ein Vektorelement den im Vektorarbeits
bereich 18 gespeicherten umzusetzenden Eingabe-Vektordaten entspricht.
Die Vektordatenumsetzung wird sequentiell für jedes Vektor
element ausgeführt, was bedeutet, daß die Vektorprozessor
funktionen für diese Verarbeitung gut geeignet sind.
In dem Ausführungsbeispiel von Fig. 5 kann obwohl der
Assoziativspeicher in vier Zeilen
entsprechend dem 4 × 1 strukturierten Kongruenzsystem eingeteilt ist, die Anzahl von Zeilen
und Spalten jeweils ohne jede Schwierigkeit erhöht wer
den. Wenn die Anzahl der Spalten erhöht wird, muß die Er
satzsteuerung zwischen zwei Spalten durchgeführt werden, was
leicht mittels einer bekannten Technik erreicht werden kann.
Dieses Ausführungsbeispiel kann leicht modifiziert werden,
um einen dritten Operanden zu spezifizieren, dessen Bits
jeweils die Anwesenheit oder Abwesenheit jedes
Vektorelements des Umsetzvektors im Assoziativspeicher
angeben, zu jedem Vektorelement der umgesetzten Vektor
daten addiert.
Als nächstes wird die Verwendung dieser zwei Befehle genauer
anhand Fig. 2 beschrieben. Wenn das Vergleichsdatenbank
programm initiiert wird, ist der Pufferbereich 201 noch
leer. Folglich werden die Seiten, die die Bauteiletabelle
von Fig. 1 enthalten, zur Gänze aus dem Plattenspeicher
110 geholt und in geeignete Positionen des Pufferspeichers
201 gespeichert. Eine Liste der geholten Seitennummern wird
als die Vektordaten 7 im Datenspeicher erstellt, und eine
Liste von Datenspeicheradressen im Pufferbereich, der die
Seiten speichert, als die Vektordaten 6 erstellt. Schließ
lich wird ein Registrierbefehl, der die Vektordaten 6 und
die Vektordaten 7 jeweils als ersten und zweiten Operanden
angibt, ausgeführt. In diesem Falle wird die Seitenzahl
als Anzahl der Vektorelemente spezifiziert. Durch die Aus
führung des Registrierbefehls wird die Beziehung zwischen den Seitennummern und den Datenspeicheradressen in den Asso
ziativspeicher eingetragen.
Wenn zu der Vergleichsdatenbank eine Wiedergewinnungsanfor
derung ausgeht, wird der obengenannte Schritt (2.) ausgeführt,
der die Adreßumsetzung bewirkt. Dann extrahiert das Ver
gleichsdatenbankprogramm nur den Teil der Seitenzahl aus
der Datensatzadreßliste und speichert das Datum in das
Feld für die Vektordaten 7 im Datenspeicher. In dieser
Situation wird, falls ein Wiedergewinnungsbefehl, der die
Vektordaten 6 und die Vektordaten 7 jeweils als ersten und
zweiten Operanden angibt, ausgeführt wird, die Datenspei
cheradresse der Seite, die den jeweiligen Datensatz spei
chert, aus den Vektordaten 6 erhalten. In diesem Fall
wird die Anzahl der Datensätze als Vektorelementanzahl
gekennzeichnet. Schließlich wird die Datenspeicheradresse
eines jeweiligen Datensatzes durch eine einfache Vektor
anweisung wie eine ADD-Anweisung und eine Move-Anweisung
mit einer indirekten Adreßfunktion
berechnet, weil die Datenspeicheradresse des Datensatzes
durch Verschmelzung der Datenspeicher-Seitenadresse mit
dem Versatzadressenteil in der Datensatzadresse
gebildet wird.
Diese einfachen
Befehle werden durch die Vektorarithmetikeinheit 302 in
Fig. 2 ausgeführt.
Obwoh in dem oben beschriebenen Befehlsanwendungsbeispiel
angenommen ist, daß die Seiten alle zuvor von der Platte
geholt werden, können diese Befehle auch angewendet werden,
wenn die Seiten auf Anforderung von der Platte 110 gelesen
werden. In diesem System werden, nachdem der Wiedergewin
nungsbefehl ausgeführt ist, die Vektordaten 6 geprüft
und eine Liste von Datensätzen erstellt für die die Adreß
umsetzung nicht auszuführen ist. Unter Bezug auf die
erstellte Liste wird eine Liste von zu lesenden Seiten
nummern erstellt und dann die betreffenden Seiten von
der Platte 110 gelesen. Danach wird eine Liste von Sei
tennummern geholt und eine Liste von Datenspeicheradressen
in dem entsprechenden Pufferbereich dem Assoziativspeicher
durch einen Registrierbefehl eintragen.
Das obige Ausführungsbeispiel kann dahingehend modifiziert
werden, daß eine Datenspeichereinrichtung mit dem Daten
speicher 200 verbunden wird, wie die aus der US-PS
41 28 880 bekannten Vektorregister, so daß die hinzuge
fügte Datenspeichereinrichtung statt der Vektorarbeits
bereiche 18 bzw. 31 verwendet werden kann.
Claims (19)
1. Datenverarbeitungsvorrichtung mit
einem Datenspeicher (200) der Vektordaten speichert;
einer Umsetzeinrichtung, die aufeinanderfolgend eine Vielzahl von Vektorelementen umzusetzender Vektordaten empfängt und diese als Vektorelemente umgesetzter Vektor daten ausgibt;
einer Leseeinrichtung (15, 16), die nach Maßgabe von Programmbefehlen sequentiell Vektorelemente der umzu setzenden Vektordaten aus einem Bereich des Datenspeichers (200) ausliest, der von dem Programmbefehl gekennzeichnet ist und die geholten Vektorelemente sequentiell der Umsetzeinrichtung als einzugebende Vektorelemente zur Verfügung stellt, und
einer Einschreibvorrichtung (26, 30, 33), die nach Maßgabe des Programmbefehls sequentiell in einen Bereich des Datenspeichers (200), der vom Programmbefehl ange geben ist, von der Umsetzeinrichtung erhaltene Vektor elemente der umgesetzten Vektordaten abhängig von den aufeinanderfolgenden Eingaben durch die Leseeinrichtung einspeichert,
dadurch gekennzeichnet,
daß die Umsetzeinrichtung eine Assoziativspeicherein richtung (21-23) ist, die assoziative Kennbegriffe und diesen entsprechende Datenposten speichert, wobei die assoziativen Kennbegriffe Vektorelemente der umzu setzenden Vektordaten und die Datenposten Vektorelemente der umgesetzten Vektordaten darstellen, und
die Assoziativspeichereinrichtung die von der Leseein richtung geholten Vektorelemente der umzusetzenden Daten als assoziative Kennbegriffe empfängt und auf einanderfolgend entsprechende Datenposten an die Ein schreibvorrichtung als Vektorelemente der umgesetzten Vektordaten ausgibt.
einem Datenspeicher (200) der Vektordaten speichert;
einer Umsetzeinrichtung, die aufeinanderfolgend eine Vielzahl von Vektorelementen umzusetzender Vektordaten empfängt und diese als Vektorelemente umgesetzter Vektor daten ausgibt;
einer Leseeinrichtung (15, 16), die nach Maßgabe von Programmbefehlen sequentiell Vektorelemente der umzu setzenden Vektordaten aus einem Bereich des Datenspeichers (200) ausliest, der von dem Programmbefehl gekennzeichnet ist und die geholten Vektorelemente sequentiell der Umsetzeinrichtung als einzugebende Vektorelemente zur Verfügung stellt, und
einer Einschreibvorrichtung (26, 30, 33), die nach Maßgabe des Programmbefehls sequentiell in einen Bereich des Datenspeichers (200), der vom Programmbefehl ange geben ist, von der Umsetzeinrichtung erhaltene Vektor elemente der umgesetzten Vektordaten abhängig von den aufeinanderfolgenden Eingaben durch die Leseeinrichtung einspeichert,
dadurch gekennzeichnet,
daß die Umsetzeinrichtung eine Assoziativspeicherein richtung (21-23) ist, die assoziative Kennbegriffe und diesen entsprechende Datenposten speichert, wobei die assoziativen Kennbegriffe Vektorelemente der umzu setzenden Vektordaten und die Datenposten Vektorelemente der umgesetzten Vektordaten darstellen, und
die Assoziativspeichereinrichtung die von der Leseein richtung geholten Vektorelemente der umzusetzenden Daten als assoziative Kennbegriffe empfängt und auf einanderfolgend entsprechende Datenposten an die Ein schreibvorrichtung als Vektorelemente der umgesetzten Vektordaten ausgibt.
2. Datenverarbeitungsvorrichtung nach Anspruch 1,
dadurch gekennzeichnet,
daß die Datenverarbeitungsvorrichtung einen Daten
speicher enthält und daß der Datenspeicher (200)
einen Vektorarbeitsbereich (31) enthält, um Vektordaten
zu und von dem Datenspeicher zu übertragen.
3. Datenverarbeitungsvorrichtung nach Anspruch 2,
dadurch gekennzeichnet,
daß die assoziativen Kennbegriffe in der Assoziativ
speichereinrichtung (21-23) zu Datensatzadressen
in einem externen Speicher in Beziehung stehen, wobei
die Datensätze in die Datenspeicheradressen der Daten
sätze geholt werden.
4. Datenverarbeitungsvorrichtung nach Anspruch 3,
dadurch gekennzeichnet,
daß die assoziativen Kennbegriffe in der Assoziativ
speichereinrichtung (21-23) zu Datensatzadressen
in einem externen Speicher in Beziehung stehen, wobei
die Datensätze in die Datenspeicheradressen der Daten
sätze geholt werden.
5. Datenverarbeitungsvorrichtung nach Anspruch 1,
dadurch gekennzeichnet,
daß die Assoziativspeichereinrichtung weiterhin Benutzer kennungen in Korrespondenz zu dem assoziativen Kennbe griffen speichert und einen der Datenposten abgibt, der beiden assoziativen Kennbegriffen entspricht, wenn ein eingegebener Kennbegriff mit diesem einen assoziati ven Kennbegriff und gleichzeitig eine zugeführte Benutzer kennungseingabe mit einer diesem assoziativen Kennbegriff entsprechenden Benutzerkennung übereinstimmt und
die Datenverarbeitungsvorrichtung Register (13) enthält, die mit der Assoziativspeichereinrichtung verbunden sind und eine Benutzerkennung halten, die der Assoziativ speichereinrichtung einzugeben ist.
daß die Assoziativspeichereinrichtung weiterhin Benutzer kennungen in Korrespondenz zu dem assoziativen Kennbe griffen speichert und einen der Datenposten abgibt, der beiden assoziativen Kennbegriffen entspricht, wenn ein eingegebener Kennbegriff mit diesem einen assoziati ven Kennbegriff und gleichzeitig eine zugeführte Benutzer kennungseingabe mit einer diesem assoziativen Kennbegriff entsprechenden Benutzerkennung übereinstimmt und
die Datenverarbeitungsvorrichtung Register (13) enthält, die mit der Assoziativspeichereinrichtung verbunden sind und eine Benutzerkennung halten, die der Assoziativ speichereinrichtung einzugeben ist.
6. Datenverarbeitungsvorrichtung nach Anspruch 1,
dadurch gekennzeichnet,
daß die Assoziativspeichereinrichtung aufweist:
- - einen Speicher für Assoziativdaten (23), mit einem ersten Feld (41), das die assoziativen Kennbegriffe speichert und einem zweiten Feld (43), das Wiederge winnungsdatenposten speichert, die gemäß den assozia tiven Kennbegriffen wiederzugewinnen sind; und
- - eine Vergleichsvorrichtung (21), die die von der Ausleseeinrichtung sequentiell gelieferten Vektorele mente mit den assoziativen Kennbegriffen vergleicht und ein Ausgangssignal erzeugt, wenn das geholte Vektorelement mit einem der assoziativen Kennbegriffe übereinstimmt.
7. Datenverarbeitungsvorrichtung nach Anspruch 6,
dadurch gekennzeichnet,
daß der Speicher (23) für Assoziativdaten weiterhin ein drittes Feld (42) aufweist, das Benutzerkennungen speichert, die jeweils einen mit dem assoziativen Kenn begriff in Beziehung stehenden Benutzer bezeichnen; und
daß die Vergleichseinrichtung (21) eine einen Benutzer angebende Benutzerkennung, die mit den umzusetzenden Vektorelementen in Beziehung steht, holt und die geholte Benutzerkennung mit den im dritten Feld des Speichers (23) für Assoziativdaten gespeicherten Benutzerkennung vergleicht.
daß der Speicher (23) für Assoziativdaten weiterhin ein drittes Feld (42) aufweist, das Benutzerkennungen speichert, die jeweils einen mit dem assoziativen Kenn begriff in Beziehung stehenden Benutzer bezeichnen; und
daß die Vergleichseinrichtung (21) eine einen Benutzer angebende Benutzerkennung, die mit den umzusetzenden Vektorelementen in Beziehung steht, holt und die geholte Benutzerkennung mit den im dritten Feld des Speichers (23) für Assoziativdaten gespeicherten Benutzerkennung vergleicht.
8. Datenverarbeitungsvorrichtung nach Anspruch 6,
dadurch gekennzeichnet,
daß der Speicher (23) ein Lese/Schreibspeicher ist
und daß die Vorrichtung weiterhin aufweist:
eine Einspeichervorrichtung (50) für assoziative Kennbe griffe, die diese in das erste Feld (41) einspeichert, und
eine Einspeichervorrichtung (32, 52) für Wiedergewinnungs daten, die die Wiedergewinnungsdaten in das zweite Feld (43) entsprechend den assoziativen Kennbegriffen einspeichert.
eine Einspeichervorrichtung (50) für assoziative Kennbe griffe, die diese in das erste Feld (41) einspeichert, und
eine Einspeichervorrichtung (32, 52) für Wiedergewinnungs daten, die die Wiedergewinnungsdaten in das zweite Feld (43) entsprechend den assoziativen Kennbegriffen einspeichert.
9. Datenverarbeitungsvorrichtung nach Anspruch 7,
dadurch gekennzeichnet,
daß der Speicher (23) für Assoziativdaten ein Lese/
Schreibspeicher ist und
die Datenverarbeitungsvorrichtung weiterhin aufweist:
eine Einspeichervorrichtung (50), die die assoziativen Kennbegriffe in das erste Feld (41) des Speichers (23) für Assoziativdaten einschreibt;
eine Einspeichervorrichtung (32, 52), die die entsprechend den assoziativen Kennbegriffen wiedergewonnenen Daten in das zweite Feld (43) einschreibt; und
eine Einspeichervorrichtung (41) für Benutzerkennungen, die diese von de assoziativen Kennbegriffen abhängigen Benutzerbegriffe in das dritte Feld (42) einspeichert.
eine Einspeichervorrichtung (50), die die assoziativen Kennbegriffe in das erste Feld (41) des Speichers (23) für Assoziativdaten einschreibt;
eine Einspeichervorrichtung (32, 52), die die entsprechend den assoziativen Kennbegriffen wiedergewonnenen Daten in das zweite Feld (43) einschreibt; und
eine Einspeichervorrichtung (41) für Benutzerkennungen, die diese von de assoziativen Kennbegriffen abhängigen Benutzerbegriffe in das dritte Feld (42) einspeichert.
10. Datenverarbeitungsvorrichtung nach Anspruch 1,
dadurch gekennzeichnet,
daß sie weiterhin aufweist:
eine Störschutzschaltung (HASH 24), die mit der Asso ziativspeichervorrichtung (21-23) durch die Leseein richtung (19) verbunden ist und zumindest einen der Einträge in der Assoziativspeichereinrichtung (21-23) abhängig von einem Teil der Daten eines Vektorelements, das durch die Leseeinrichtung ausgelesen wurde, spezi fiziert.
eine Störschutzschaltung (HASH 24), die mit der Asso ziativspeichervorrichtung (21-23) durch die Leseein richtung (19) verbunden ist und zumindest einen der Einträge in der Assoziativspeichereinrichtung (21-23) abhängig von einem Teil der Daten eines Vektorelements, das durch die Leseeinrichtung ausgelesen wurde, spezi fiziert.
11. Datenverarbeitungsvorrichtung nach Anspruch 1,
dadurch gekennzeichnet,
daß ein Zyklus, in dem ein einzelnes Vektorelement
von der Leseeinrichtung ausgelesen wird, ein Zyklus,
in dem jeder Vektor durch die Assoziativspeicherein
richtung verglichen wird und ein Zyklus, in dem ein
jeweiliges Vektorelement von der Einspeichervorrichtung
eingespeichert wird, miteinander synchron sind.
12. Datenverarbeitungsvorrichtung nach Anspruch 11,
dadurch gekennzeichnet,
daß die Leseeinrichtung (15, 16, 19) aufweist:
ein erstes Register (15), das die Anfangsadresse der im Datenspeicher enthaltenen umzusetzenden Vektordaten speichert;
ein zweites Register (19), das ein Vektorelement eines aus dem Datenspeicher geholten umzusetzenden Vektor datums basierend auf einer vom ersten Register (15) angegebenen Adresse speichert; und
einen ersten Addierer (16), der den Inhalt des ersten Registers in jedem Zyklus um einen Wert, der der Daten länge des Vektorelements entspricht, fortschreibt; und
die Einspeichervorrichtung (26, 30, 33) aufweist:
ein drittes Register (26), das die Anfangsadresse der umgesetzten Vektordaten im Datenspeicher speichert;
ein viertes Register (33), das Wiedergewinnungsdaten, die aus der Assoziativspeichereinrichtung (21-23) geholt sind und in den Datenspeicher aufgrund einer vom dritten Register (26) angegebenen Adresse einzu speichern sind, speichert; und
einen zweiten Addierer (30), der das dritte Register (26) für jeden Zyklus um einen Wert, der der Datenlänge der Wiedergewinnungsdaten entspricht, fortschreibt.
ein erstes Register (15), das die Anfangsadresse der im Datenspeicher enthaltenen umzusetzenden Vektordaten speichert;
ein zweites Register (19), das ein Vektorelement eines aus dem Datenspeicher geholten umzusetzenden Vektor datums basierend auf einer vom ersten Register (15) angegebenen Adresse speichert; und
einen ersten Addierer (16), der den Inhalt des ersten Registers in jedem Zyklus um einen Wert, der der Daten länge des Vektorelements entspricht, fortschreibt; und
die Einspeichervorrichtung (26, 30, 33) aufweist:
ein drittes Register (26), das die Anfangsadresse der umgesetzten Vektordaten im Datenspeicher speichert;
ein viertes Register (33), das Wiedergewinnungsdaten, die aus der Assoziativspeichereinrichtung (21-23) geholt sind und in den Datenspeicher aufgrund einer vom dritten Register (26) angegebenen Adresse einzu speichern sind, speichert; und
einen zweiten Addierer (30), der das dritte Register (26) für jeden Zyklus um einen Wert, der der Datenlänge der Wiedergewinnungsdaten entspricht, fortschreibt.
13. Datenverarbeitungsvorrichtung nach Anspruch 12,
dadurch gekennzeichnet,
daß die Assoziativspeichereinrichtung (21-23) aufweist:
eine Toreinrichtung (22), die die wiedergewonnenen Daten zum vierten Register (33) entsprechend dem Aus gangssignal der Vergleichseinrichtung, das das überein stimmende Ergebnis anzeigt, überträgt.
eine Toreinrichtung (22), die die wiedergewonnenen Daten zum vierten Register (33) entsprechend dem Aus gangssignal der Vergleichseinrichtung, das das überein stimmende Ergebnis anzeigt, überträgt.
14. Datenverarbeitungsvorrichtung nach Anspruch 13,
dadurch gekennzeichnet,
daß die Toreinrichtung (22) einen bestimmten Wert in
das vierte Register (33) lädt, wenn das Ausgangssignal
des Vergleichers (21) in einem Zyklus nicht auftritt.
15. Datenverarbeitungsvorrichtung nach einem der Ansprüche
1 bis 14,
dadurch gekennzeichnet,
daß die Leseeinrichtung auf einen ersten Befehl hin assoziative Vektorkennbegriffe aus einem durch den ersten Bfehl angegebenen Bereich des Datenspeichers ausliest und die ausgelesenen assoziativen Vektorkenn begriffe einem Assoziativspeicher einspeist, ein als Ergebnis der Umsetzung des assoziativen Vektorkennbe griffs entstehendes Vektordatum aus einem durch den ersten Befehl angegebenen Bereich des Datenspeichers ausliest und das umgesetzte Ergebnisvektordatum dem Assoziativspeicher zuführt,
auf einen zweiten Befehl hin ein Vektordatum aus einem durch den zweiten Befehl angegebenen Bereich des Daten speichers ausliest und dieses Vektordatum dem Assoziativ speicher als Wiedergewinnung-Vektorkennbegriff zuführt, und
die Einschreibvorrichtung auf den zweiten Befehl hin Wiedergewinnungs-Vektordaten entsprechend dem Wieder gewinnungs-Vektorkennbegriff, der aus dem Assoziativ speicher ausgelesen wurde, als Ergebnis der Umsetzung in einen durch den zweiten Befehl angegebenen Bereich des Datenspeichers einschreibt.
daß die Leseeinrichtung auf einen ersten Befehl hin assoziative Vektorkennbegriffe aus einem durch den ersten Bfehl angegebenen Bereich des Datenspeichers ausliest und die ausgelesenen assoziativen Vektorkenn begriffe einem Assoziativspeicher einspeist, ein als Ergebnis der Umsetzung des assoziativen Vektorkennbe griffs entstehendes Vektordatum aus einem durch den ersten Befehl angegebenen Bereich des Datenspeichers ausliest und das umgesetzte Ergebnisvektordatum dem Assoziativspeicher zuführt,
auf einen zweiten Befehl hin ein Vektordatum aus einem durch den zweiten Befehl angegebenen Bereich des Daten speichers ausliest und dieses Vektordatum dem Assoziativ speicher als Wiedergewinnung-Vektorkennbegriff zuführt, und
die Einschreibvorrichtung auf den zweiten Befehl hin Wiedergewinnungs-Vektordaten entsprechend dem Wieder gewinnungs-Vektorkennbegriff, der aus dem Assoziativ speicher ausgelesen wurde, als Ergebnis der Umsetzung in einen durch den zweiten Befehl angegebenen Bereich des Datenspeichers einschreibt.
16. Datenverarbeitungsvorrichtung nach Anspruch 15,
gekennzeichnet durch
eine Einrichtung, die auf den ersten Befehl hin auf
einanderfolgend eine Benutzerkennung dem Assoziativ
speicher zuführt und auf den zweiten Befehl hin aufeinander
folgend eine Benutzerkennung dem Assoziativspeicher
als ein Element eines jeweiligen Vektorkennbegriffs
zuführt.
17. Verfahren zur Umsetzung von Vektordaten mit folgenden
Schritten:
- a) aufeinanderfolgendes Auslesen von Vektorelementen von in einem durch einen Programmbefehl angegebenen Speicherbereich eines Datenspeichers gespeicherten Vektordaten;
- b) aufeinanderfolgendes Eingeben der ausgelesenen Vektor elemente in eine Umsetzeinrichtung für jeden Zyklus synchron mit dem Lesezyklus und parallel zum Lese schritt a);
- c) aufeinanderfolgendes Ausgeben jeweiliger Vektorele mente umgesetzter Vektordaten aus der Umsetzein richtung entsprechend den eingegebenen und aus dem Datenspeicher ausgelesenen Vektorelementen synchron mit dem Lesezyklus in Schritt a); und
- d) aufeinanderfolgendes Einspeichern jeweiliger Vektor elemente der umgesetzten Vektordaten, die die Umsetz einrichtung ausgegeben hat in einen Speicherbereich des Datenspeichers, der von dem Programmbefehl ange geben ist für jeden Zyklus synchron mit dem Lesezyklus des Schritts a);
dadurch gekennzeichnet,
daß die Umsetzeinrichtung eine Assoziativspeicherein
richtung (21-23) ist,
und
das Verfahren weiterhin folgende Schritte aufweist:
das Verfahren weiterhin folgende Schritte aufweist:
- A. Speichern von assoziativen Kennbegriffen und den jeweiligen assoziativen Kennbegriffen entsprechende Datenposten in die Assoziativspeichereinrichtung vor dem Leseschritt a), wobei die assoziativen Kenn begriffe Vektorelemente der umzusetzenden Vektordaten und die Datenposten Vektorelemente der umgesetzten Vektordaten darstellen; und
- B. aufeinanderfolgende Ausgabe eines einem wiederge wonnenen Vektorelement der umgesetzten Vektordaten entsprechenden Datenpostens durch die Assoziativ speichereinrichtung in Reaktion auf jedes ausgelesene Vektorelement der Vektordaten, das als eine assozia tive Kennbegriffseingabe umzusetzen ist, wenn der eingegebene assoziative Kennbegriff mit einem in der Assoziativspeichereinrichtung gespeicherten assoziativen Kennbegriff übereinstimmt, um dadurch die umgesetzten Vektordaten, die aus den ausgegebenen Datenposten bestehen, als die Vektorelemente zu erzeugen.
18. Verfahren nach Anspruch 17,
dadurch gekennzeichnet,
daß der Schritt A) folgende Teilschritte enthält
- A1) in einem von einem Programmbefehl angegebenen Bereich des Datenspeichers wird ein erstes Vektordatum erzeugt, das als Vektorelemente assoziative Kennbe griffe aufweist, die in die Assoziativspeicherein richtung (21-23) einzutragen sind;
- A2) in einem von einem Programmbefehl angegebenen Bereich des Datenspeichers wird ein zweites Vektordatum generiert, das als Vektorelemente Wiedergewinnungs begriffe aufweist, die in die Assoziativspeicherein richtung (21-23) einzutragen sind, wobei das erste Vektordatum dem zweiten Vektordatum Vektor element für Vektorelement entspricht;
- A3) Einschreiben jedes Vektorelements des ersten Vektor datums für jeden Zyklus in einen entsprechenden Eintrag der Assoziativspeichereinrichtung (21-23); und
- A4) Einschreiben jedes Vektorelements des zweiten Vektor datums für jeden Zyklus in einen entsprechenden Eintrag der Assoziativspeichereinrichtung (21-23) synchron mit dem Zyklus und parallel zum Teilschritt A3).
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP59104542A JPS61210477A (ja) | 1984-05-25 | 1984-05-25 | ベクトル型連想メモリシステム |
Publications (2)
Publication Number | Publication Date |
---|---|
DE3518818A1 DE3518818A1 (de) | 1985-11-28 |
DE3518818C2 true DE3518818C2 (de) | 1988-06-01 |
Family
ID=14383374
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
DE19853518818 Granted DE3518818A1 (de) | 1984-05-25 | 1985-05-24 | Datenverarbeitungsvorrichtung und verfahren und vorrichtung zur umsetzung von datenelementen |
Country Status (3)
Country | Link |
---|---|
US (1) | US4780810A (de) |
JP (1) | JPS61210477A (de) |
DE (1) | DE3518818A1 (de) |
Families Citing this family (15)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPS621067A (ja) * | 1985-02-25 | 1987-01-07 | Hitachi Ltd | ベクトル処理装置 |
US5086498A (en) * | 1987-01-23 | 1992-02-04 | Hitachi, Ltd. | Parallel computer with asynchronous communication facility |
JPS63251835A (ja) * | 1987-04-08 | 1988-10-19 | Hitachi Ltd | ベクトル処理装置 |
US5710932A (en) * | 1987-07-28 | 1998-01-20 | Hitachi, Ltd. | Parallel computer comprised of processor elements having a local memory and an enhanced data transfer mechanism |
US5297255A (en) * | 1987-07-28 | 1994-03-22 | Hitachi, Ltd. | Parallel computer comprised of processor elements having a local memory and an enhanced data transfer mechanism |
JP3079153B2 (ja) * | 1987-10-07 | 2000-08-21 | ジー. ゴルバテンコ,ジョージ | メモリ・スペース・アレイ |
JPH07104868B2 (ja) * | 1988-04-08 | 1995-11-13 | インターナシヨナル・ビジネス・マシーンズ・コーポレーシヨン | データ記憶検索システム |
US6112019A (en) * | 1995-06-12 | 2000-08-29 | Georgia Tech Research Corp. | Distributed instruction queue |
US6424969B1 (en) * | 1999-07-20 | 2002-07-23 | Inmentia, Inc. | System and method for organizing data |
US6944619B2 (en) * | 2001-04-12 | 2005-09-13 | Primentia, Inc. | System and method for organizing data |
US6889225B2 (en) * | 2001-08-09 | 2005-05-03 | Integrated Silicon Solution, Inc. | Large database search using content addressable memory and hash |
US20040158561A1 (en) * | 2003-02-04 | 2004-08-12 | Gruenwald Bjorn J. | System and method for translating languages using an intermediate content space |
JP4681863B2 (ja) * | 2004-11-30 | 2011-05-11 | キヤノン株式会社 | 画像処理装置、および、その制御方法 |
US11144522B2 (en) | 2014-10-27 | 2021-10-12 | Kinaxis Inc. | Data storage using vectors of vectors |
WO2016067107A1 (en) | 2014-10-27 | 2016-05-06 | Kinaxis Inc. | Data storage using vectors of vectors |
Family Cites Families (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
GB1265006A (de) * | 1968-11-08 | 1972-03-01 | ||
US3699533A (en) * | 1970-10-29 | 1972-10-17 | Rca Corp | Memory system including buffer memories |
GB1289249A (de) * | 1971-05-05 | 1972-09-13 | ||
US4024505A (en) * | 1974-11-18 | 1977-05-17 | Compucorp | Interface system for coupling an indeterminate number of peripheral devices to a central processing unit |
DE2525287B2 (de) * | 1975-06-06 | 1977-03-24 | Siemens AG, 1000 Berlin und 8000 München | Assoziativspeicher |
US4024508A (en) * | 1975-06-19 | 1977-05-17 | Honeywell Information Systems, Inc. | Database instruction find serial |
US4084231A (en) * | 1975-12-18 | 1978-04-11 | International Business Machines Corporation | System for facilitating the copying back of data in disc and tape units of a memory hierarchial system |
US4128880A (en) * | 1976-06-30 | 1978-12-05 | Cray Research, Inc. | Computer vector register processing |
US4115850A (en) * | 1976-11-03 | 1978-09-19 | Houston George B | Apparatus for performing auxiliary management functions in an associative memory device |
US4392200A (en) * | 1980-01-28 | 1983-07-05 | Digital Equipment Corporation | Cached multiprocessor system with pipeline timing |
JPS57134750A (en) * | 1981-02-12 | 1982-08-20 | Nippon Telegr & Teleph Corp <Ntt> | Relation algebra operating device |
US4410944A (en) * | 1981-03-24 | 1983-10-18 | Burroughs Corporation | Apparatus and method for maintaining cache memory integrity in a shared memory environment |
-
1984
- 1984-05-25 JP JP59104542A patent/JPS61210477A/ja active Pending
-
1985
- 1985-05-24 US US06/737,453 patent/US4780810A/en not_active Expired - Fee Related
- 1985-05-24 DE DE19853518818 patent/DE3518818A1/de active Granted
Also Published As
Publication number | Publication date |
---|---|
JPS61210477A (ja) | 1986-09-18 |
US4780810A (en) | 1988-10-25 |
DE3518818A1 (de) | 1985-11-28 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
DE3518818C2 (de) | ||
DE3151745C2 (de) | ||
DE4410060B4 (de) | Übersetzungsvorrichtung zum Umsetzen einer virtuellen Speicheradresse in eine physikalische Speicheradresse | |
DE2807476C2 (de) | Speichereinrichtung mit mehreren virtuellen Adreßräumen | |
DE3932675C2 (de) | ||
DE2227882C2 (de) | Virtuelle Speicheranordnung | |
DE2725718C2 (de) | Datenverarbeitungsanordnung zum Übersetzen von virtuellen Adressen | |
DE2712575C2 (de) | Assoziatives Speichersystem in hochintegrierter Halbleitertechnik | |
DE1499182C3 (de) | Datenspeichersystem | |
DE3833933A1 (de) | Informationsverarbeitungseinrichtung mit einer adressenerweiterungsfunktion | |
DE2230102A1 (de) | Rechenwerk fuer variable wortlaengen | |
DE19961499A1 (de) | Caching von Objekten in Platten-gestützten Datenbanken | |
DE2339741A1 (de) | Anordnung zur bildung einer relativen adresse fuer einen speicher | |
DE2459006A1 (de) | Verfahren und einrichtung zur entwicklung absoluter adressen bei segmentadressierung | |
DE10002120A1 (de) | Logikstruktur eines Adressumsetzpuffers | |
DE2737353A1 (de) | Verfahren zum testen der adressbildung in einem dv-system und vorrichtung zur durchfuehrung des verfahrens | |
DE60307527T2 (de) | Tupleraumoperationen für eine feinkörnige Systemsteuerung | |
DE3932695A1 (de) | Datenverarbeitungssystem vom mehrfach virtuellen adressraum-typ | |
DE1574502C3 (de) | Assoziativspeicher | |
DE3919802A1 (de) | Speicherbaustein mit vektorprozessoren und einem skalarprozessor | |
DE2613800C2 (de) | ||
DE2702722A1 (de) | Instruktionsinterpretation in elektronischen datenverarbeitungsanlagen | |
EP0057755B1 (de) | Mikrorechnersystem zum raschen Auffinden von Kennzeichenblöcken | |
DE2062164A1 (de) | Verfahren zur Erzeugung eines mehr stufigen Index für gespeicherte Daten einheiten | |
DE19905541A1 (de) | Verfahren zum Steuern des Speicherzugriffs in einer Maschine mit einem Speicher mit ungleichmäßigem Zugriff und Maschine zur Ausführung eines solchen Verfahrens |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
OP8 | Request for examination as to paragraph 44 patent law | ||
D2 | Grant after examination | ||
8364 | No opposition during term of opposition | ||
8339 | Ceased/non-payment of the annual fee |