DE2349590A1 - Vorrichtung zur datenverarbeitung - Google Patents

Vorrichtung zur datenverarbeitung

Info

Publication number
DE2349590A1
DE2349590A1 DE19732349590 DE2349590A DE2349590A1 DE 2349590 A1 DE2349590 A1 DE 2349590A1 DE 19732349590 DE19732349590 DE 19732349590 DE 2349590 A DE2349590 A DE 2349590A DE 2349590 A1 DE2349590 A1 DE 2349590A1
Authority
DE
Germany
Prior art keywords
address
circuits
bistable
virtual
virtual address
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.)
Pending
Application number
DE19732349590
Other languages
English (en)
Inventor
Richard Lawrence Grimsdale
David John Kibble
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.)
National Research Development Corp UK
Original Assignee
National Research Development Corp UK
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 National Research Development Corp UK filed Critical National Research Development Corp UK
Publication of DE2349590A1 publication Critical patent/DE2349590A1/de
Pending legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/10Address translation

Description

„-ing: Woligang BeIcM
6 Frankiuit a. M. 1
Parksbaße 13
7663
NATIONAL RESEARCH DEVELOPMENT CORPORATION, London, England
Vorrichtung zur Datenverarbeitung
Die Erfindung betrifft eine Vorrichtung zur Verarbeitung von Datenstrukturen, d.h. sie betrifft eine Schaltungsanordnung zur Datenverarbeitung, die in Rechenanlägen eingesetzt werden kann und die Verarbeitung von Datenstrukturen erlaubt. Die Vorrichtung nach dieser Erfindung ist besonders für einen Einsatz in Rechenanlagen geeignet, deren Datenausgabe in graphischer Form erfolgt.
Drei verschiedene Datenstrukturen, die Listen-, Zweig- und Ring-' struktur, die im folgenden noch genauer beschrieben werden, sind bei der graphischen Softwärekodierung,bei der Text- und der Datengruppenverarbeitung besonders wichtig. Bei der Verarbeitung dieser und anderer Datenstrukturen liegt der Nachteil bekannter Vorrichtungen darin,- daß dem Auswechseln verschiedener Daten untereinander gegenüber arithmetischen Operationen zu wenig Beachtung geschenkt wird. Werden z.B. in einem Rechner mehrere Parameter
409816/0850
2349530
zur graphischen Ausgabe von Daten verwendet, und ist es dabei vielleicht erwünscht, einen dieser Parameter auszuwechseln, so kann eine erneute Berechnung der gesamten Gruppe von Koordinaten und Vektoren vermieden werden, wenn eine sinnvolle Datenstruktur in dem oder den Rechenspeichern verwendet wird. Die Veränderung der Datenstruktur mittels einer Vorrichtung zur Verarbeitung der Datenstruktur ermöglicht es, die Koordinaten und Vektoren mit einem Minimum an neu durchzuführender Berechnung aufzufinden.
Aufgabe dieser Erfindung ist es, eine Vorrichtung zur Datenverarbeitung anzugeben, die die Beeinflussung und Verarbeitung der Datenstrukturen erleichtert.
Diese Aufgabe wird erfindungsgemäß dadurch gelöst, daß ein Adressenumsetzer mit an die Adresseneingähge eines Arbeitsspeichers angeschlossenen Ausgängen vorgesehen ist, der virtuelle Adressen in reale Adressen umsetzt, wobei jede reale Adresse einer entsprechenden virtuellen Adresse zugeordnet ist, und am Ausgang des Adressenumsetzers ein die reale Adresse kennzeichnendes Signal erscheint, wenn die zugeordneten virtuellen Adressen in Form eines elektrischen Signals dem Adressenumsetzer zugeführt werden, und daß der Adressenumsetzer Vorrichtungen enthält, die als Antwort auf entsprechende Befehlssignale die Zuordnung zwischen realen und virtuellen Adressen verändern.
Wird die Vorrichtung nach dieser Erfindung in Verbindung mit einem herkömmlichen Rechner eingesetzt, so lassen sich Speicherplätze von Datenwörtern in Form virtueller Speicherplätze sehr schnell durch. Änderung der virtuellen Adressen der Datenwörter ändern, ohne daß die Daten tatsächlich bewegt werden. Dadurch wird die zur Ausführung eines Programms benötigte Rechnerzeit verkürzt. Der Einsatz einer Vorrichtung nach dieser Erfindung erlaubt es schließlich, daß viele Programme verkürzt werden können.
409816/08S0
Die Vorrichtung nach dieser Erfindung enthält bevorzugt einen relativ großen Hauptspeicher, der mit dem Hauptspeicher eines Rechners identisch sein kann und eine ziemlich kleine Zugriffszeit besitzen kann, sie enthält außerdem einen kleinen Speicher als Arbeitsspeicher mit sehr kleiner Zugriffszeit. Der Hauptspeicher kann z.B. aus einem Ringkernspeicher bestehen, der Arbeitsspeicher ist dann aus einer integrierten Schaltung mit mehreren bistabilen Schaltkreisen aufgebaut, die ein Register darstellen. In solch einer Anordnung können Daten in dem Arbeitsspeicher sehr schnell von einem virtuellen Speicherplatz in einen anderen überführt werden, da der Speicher klein ist und die vorübergehend zu verändernden Adressen entsprechend kurz sind. Zwischen dem Arbeitsspeicher und dem Hauptspeicher sind Datenkanäle vorgesehen, mittels derer Datenwörter vom Hauptspeicher in den Arbeitsspeicher und umgekehrt eingelesen werden, wobei die Adressen der Speicherplätze des Hauptspeichers beim Ein- und Auslesen zeitlich im Arbeitsspeicher gespeichert werden.
Werden der Vorrichtung weitere logische Schaltungen hinzugefügt, die als Antwort auf ein oder auf mehrere Ansteuersignale ein oder mehrere Bits einer virtuellen Adresse ändern, so lassen sich dadurch die Programme weiter verkürzen, oder es läßt sich ein Unterprogramm für zwei gleichartige Punktionen verwenden. Die logischen Schaltungen können ein Exklusives ODER-Glied für jedes Bit enthalten, welches in Abhängigkeit von einem, der logischen Schaltung zugeführten,binären Signal verändert oder nichtverändert wird. Das binäre Signal kann von einem bistabilen Speicher erzeugt werden, der von der Programmsteuereinheit der Vorrichtung gesteuert wird.
Außerdem kann noch ein kleiner Hilfsspeicher mit kurzer Zugriffszeit vorgesehen werden, um Daten schnell innerhalb des Arbeitsspeichers und des Hilfsspeichers zu verarbeiten, ohne dabei auf den Hauptspeicher zurückgreifen zu müssen.
4 0-9 8 16/08 SO
Die Vorrichtung kann außerdem einen Programmspeicher zur Speicherung von Befehlen enthalten. Der Programmspeicher ist dabei an den Adressenumsetzer angeschlossen, er veranlaßt, daß im Adressenumsetzer Veränderungen der Zuordnung zwischen realen und virtuellen Adressen vorgenommen werden. Normalerweise auftretende Befehlsfolgen können dabei in einem Mikroprogramm-Speicher gespeichert werden, der aus einem Festspeicher bestehen kann. Ein aus dem Programmspeicher erhaltener Befehl kann dadurch durchgeführt werden, daß eine Folge von Mikrobefehlen aus dem Mikroprogrammspeicher ausgeführt wird.
Sofern die Vorrichtung einen Teil eines Rechners darstellt, sind herkömmliche Eingabe- und Ausgabeeinheiten vorhanden, andernfalls müssen sie natürlich in der Vorrichtung vorgesehen sein. Wenn die Vorrichtung als Teil einer graphischen Anzeigeeinheit eingesetzt wird, wird sie an ein Gerät zur Vektorerzeugung und zur graphischen Datenausgabe, wie z.B. an eine Elektronenstrahlröhre, angeschlossen.
Der Adressenumsetzer wird bevorzugt so ausgebildet, daß durch ihn nur eins oder mehrere der signifikanteren Bits in den den realen Adressen zugeordneten virtuellen Adressen verändert werden. Dadurch wird bewirkt, daß die Zuordnung zwischen einem Block von virtuellen und realen Adressen und nicht nur zwischen einzelnen Wörtern geändert wird; ein solcher Block kann zur Speicherung eines Datenbündels, d.h. zur Speicherung einer Wortgruppe, in der untereinander verwandte Datenwörter zu einer Einheit zusammengefaßt sind, eingesetzt werden.
Der Adressenumsetzer kann z.B. mehrere Gruppen von sogenannten bistabilen Schaltkreisen erster Art enthalten, und zwar je eine Gruppe für die virtuelle Adresse je eines Blocks. Dieses bistabilen Schaltkreise erster Art sind in der Lage, die realen Adressen der den Block bezeichnenden Bits zu speichern. Der Adressenumsetzer
409816/0850
enthält zwei Dekodierkreise, denen die virtuellen Adressen der Blöcke zugeführt werden, und die für jede virtuelle Adresse ein eigenes Ausgangssignal erzeugen. Die bistabilen Schaltkreise erster Art sind über eine Gruppe von Torschaltungen an den Ausgang des Adressenumsetzers und an die Eingangssetzanschlüsse der bistabilen Schaltkreise zweiter Art angeschlossen. Die Torschaltungen werden dabei von den Ausgangssignalen des ersten Dekodierkreises und einem Taktpuls*eines ;:Täktgenerators ausgesteuert.
Die Vorrichtung zur Veränderung der Zuordnung zwischen realen und virtuellen Adressen kann außerdem zwei Gruppen von sogenannten bistabilen Schaltkreisen zweiter Art enthalten, wobei die Anzahl der bistabilen Schaltkreise in jeder der zwei Gruppen gleich der Anzahl der zur Identifizierung eines Blockes benötigen Bits ist. Die bistabilen Schaltkreise erster Art sind über eine Gruppe von Torschaltungen an die Eingangssetzanschlüsse der bistabilen Schaltkreise zweiter Art angekoppelt. Diese Torschaltungen werden von den AusgangsSignalen des zweiten Dekodierkreises und des Taktgenerators ausgesteuert. Außerdem sind noch zwei weitere Gruppen von Torschaltungen zwischen den Ausgangsanschlüssen der bistabilen Schaltkreise zweiter Art und den Setzeingängen der bistabilen Schaltkreise erster Art vorgesehen. Diese zwei weiteren Gruppen von Torschaltungen werden von den Ausgangssignalen des ersten und des zweiten Dekodierkreises bei gleichzeitig anliegenden Taktpulsen ausgesteuert.
Die zwei realen Adressen zugeordneten virtuellen Adressen können in ihrer Zuordnung verändert werden, wenn die beiden virtuellen Adressen und der erste Taktpuls und anschließend der. zweite Taktpuls an die beiden Dekoder angelegt werden. Beim ersten Taktpuls .werden die den virtuellen Adressen zugeordnete realen Adressen in die entsprechenden Gruppen der bistabilen Schaltkreise zweiter Art eingeschrieben, und beim zweiten Taktpuls werden die realen Adressen in die entsprechenden Gruppen der bistabilen Schaltkreise erster Art eingeschrieben. Dabei sind die Ausgänge der
Dekodierkreise so mit der zweiten Gruppe der Torschaltungen verbunden, daß die beiden realen Adressen als Ergebnis ihres Durchgangs durch die bistabilen Schaltkreise zweiter Art innerhalb der. Gruppe der bistabilen Schaltkreise erster Art ihre Plätze geändert haben.
Im folgenden werden Ausführungsbeispiele der Erfindung anhand der Zeichnung näher beschrieben.
Fig. 1 zeigt ein Blockschaltbild einer Vorrichtung zur Datenverarbeitung nach dieser Erfindung;
Fig. 2a und 2b zeigen ein Blockschaltbild eines Adressenumsetzers, der in der in Fig. 1 dargestellten Anordnung verwendet werden kann;
Fig. 3 zeigt eine Anordnung von Datenbündeln in einer freien Liste und einer Stapelliste in der Vorrichtung zur Datenverarbeitung;
Fig. 4 zeigt Abzweig- und Ringdatenstrukturen in der Vorrichtung zur Datenverarbeitung.
In Fig. 1a enthält eine Steuerschaltung 21 alle die Einheiten eines herkömmlichen Rechners 21a, die nicht im Hauptspeicher enthalten sind. Dieser Hauptspeicher ist in Fig. 1 durch den Speicher 10 mit wahlfreiem Zugriff dargestellt, der im weiteren auch mit RAM-Speicher (random access memory) bezeichnet wird. Die Steuerschaltung enthält einen Programmspeicher 21b, der auch Teil des RAM-Speichers 10 sein kann, und sie enthält als Mikroprogramm speicher 21c für Unterpro gramme einen Festspeicher ( read only memory). Hierfür geeignete Festspeicher sind in dem Buch von W. Renwick· and A.J. Cole, published by Chapman and Hall, 1971, Kapitel 10, insbesondere in den Teilen 10.1, 10.2 und 10.5 beschrieben. Die für den Rechner 21a geschriebenen Programme werden
409816/0850
23A9590
teilweise in herkömmlicher Weise und teilweise unter Verwendung spezieller Befehle ausgeführt, wobei eine Vorrichtung zur Verarbeitung von Datenstrukturen mit einem Arbeitsspeicher 13» einem Adressenumsetzer 14 und logischen Schaltkreisen 17 und 18 verwendet werden. Da die Funktionsweise und der Aufbau des Rechners und der Übertragung der Datenwörter zwischen den einzelnen Schaltkreisen der Fig. 1 nicht Gegenstand der vorliegenden Erfindung sind und für den Durchschnittsfachmann aus vielen Beispielen bekannt sind, werden sie hier nicht weiter beschrieben.' Verwiesen sei nur auf die Darstellungw. von Thomas G. Bartee, "Digital Computer Fundamentals", McGraw-Hill, 1966, Kapitel 6.2, Seite 154 bis 157,und Kapitel 9.1 bis 9.6 und Kapitel 9.10,und außerdem auf die Darstellung von H. Hellerman, "Digital Computer System Principles", McGraw-Hill, 1967, Kapitel 5.3, Seiten 212 bis 214. In Fig. 1 sind Kanäle zur Datenübertragung dick ausgezogen, Steuerkanäle sind dagegen mit dünnen Linien dargestellt.
Der RAM-Speicher 10 speichert 4,096 16-Bit-Wörter, und.^edes dieser Wörter kann mit zwölf Bits adressiert werden, um Zugriff zu dem RAM-Speicher zu erhalten, werden Adressen einem Zugriffsspeicherregister (MAR-Register) 11 zugeführt. Daten, die eingelesen oder ausgelesen werden sollen, laufen alle durch ein Datenregister (MDR-Register) 12. Vom Arbeitsspeicher 13 können Wörter in das MAR-Register 11. übergeleitet werden, um als Adressen für Speicherplätze des RAM-Speichers zu dienen. Daten können auch zwischen dem MDR-Register 12 und dem Arbeitsspeicher 13 ausgetauscht werden, der wegen der erforderlichen Arbeitsgeschwindigkeit als integrierter Schaltkreis ausgeführt ist, die MAR-Register und MDR-Register werden außerdem noch von anderen Schaltkreisen aus angesteuert, um Zugriff zum Hauptspeicher zu ermöglichen. Der Arbeitsspeicher 13 besteht aus sechzehn 16-Bit-Registern, die als vier Gruppen zu vier 16-Bit-Registern angesehen werden, von denen jede eine Datenstruktureinheit, ein sogenanntes Datenbündel, wie es in dieser Ausführungsform der Erfindung verwendet wird,
Λ' 4 0*9816/0 8 60
speichern kann. Im Arbeitsspeicher 13 wird jedes Wort in zwei Teile geteilt, die ersten vier Bits ermöglichen den Zugriff zum Arbeitsspeicher über eine vier Bit-Adresse, die letzten zwölf Bits stellen die erforderlichen Bits zum Adressieren des RAM-Speichers dar.
Der Arbeitsspeicher wird über einen Adressenumsetzer 14 adressiert, wobei virtuelle Adressen verwendet werden, die in Gruppen A, B,
C und D mit einzelnen Wörtern AQ, A1, A2, A*, BQ D2, D,
unterteilt sind. In Fig. 1 sind diese virtuellen Adressen im Arbeitsspeicher 13 dargestellt. Um aufzuzeigen, daß die realen oder tatsächlichen Adressen, die den virtuellen Adressen zugeordnet sind, sich in jeder beliebigen Position befinden können, sind die Bezeichnungen nicht in einer festgelegten Reihenfolge angegeben.
Um Rechenzeit zu sparen und die Länge der Rechnerprogramme abzukürzen, werden die im Arbeitsspeicher 13 gespeicherten Datenbündel, während der Rechner arbeitet, nicht von einem Speicherplatz auf einen anderen Speicherplatz geleitet. Demgegenüber wird jedem Speicherplatz eine virtuelle Adresse gegeben, die mittels des Adressenumsetzers 14 verändert werden kann. Befehle zur Veränderung der virtuellen Adresse werden vom Programmspeicher 21b in den Kanal 15 gegeben. Der Adressenumsetzer 14 ist über die beiden identischen logischen Schaltkreise 17 und mit einem 4-Bit Register 19 für virtuelle Adressen verbunden. Virtuelle Adressen werden vom RAM-Speicher 10, vom Arbeitsspeicher 13f vom Hilfsspeicher 20 und vom Rechner 21a dem Adressenumsetzer zugeführt. Diese Übertragung von Daten findet unter Aufsicht der Steuerschaltung 21 statt. Die Aufgabe der Schaltkreise 17 und soll spater erläutert werden. Zur Vereinfachung der Darstellung
09 816/0850
sind nur die Torschaltungen und Verstärker des Kreises 17 gezeigt. Zwei UND-Glieder 87 und 88, ein Verstärker 89, ein invertierender Verstärker 90 und ein ODER-Glied 91 sind in diesem Schaltkreis 17 vorgesehen.
Der Hilfsspeicher 20, der auch vier Gruppen von vier 16-Bit-Wörter speichert, ist an die MAR-Register 11 und MDR-Register 12 angeschlossen, er ist außerdem in der Lage, eine sehr schnelle Bewegung der Datenbtindel durchzuführen, bevor sie in den Hauptspeicher 10 zurückgegeben werden. Der Hilfsspeicher 20 besitzt keine zugeordneten virtuellen Adressen, seine Speicherplätze sind mit Wq bis Z* bezeichnet.
Arbeits- und Hilfsspeicher besitzen einen Kanal zur Steuerschaltung 21 des Rechners, die die Steuerung der Arbeitsschritte der in Fig. 1 dargestellten Anlage in herkömmlicher, für den mit Rechnertechnik vertrauten Fachmann bekannten Weise durchführt. Die Steuerschaltung 21 besitzt unter Verwendung des MÄR-Registers 11 über das MDR-Register 12 Zugriff zum Hauptspeicher 10.
Der Adressenumsetzer soll nun anhand der Fig. 2a und 2b genauer beschrieben werden. Der Umsetzer besitzt acht bistabile Schaltkreise, die 1-Bit-Speicher 23, 23· bis 26, 26» darstellen. Die einzelnen 1-Bit-Speicher sind in vier Gruppen unterteilt, von denen eine durch die Gruppe 23, 23* gegeben ist. Im Betrieb enthält iJede dieser Gruppen die reale Adresse von einem Speicherplatz eines Datenbündels im Hauptspeicher 10. Da es vier Datenbündelplätze im Arbeitsspeicher gibt, sind zwei Bits zur Adressierung jedes dieser Plätze erforderlich. Die zwei signifikantesten Bits werden für diese Adressierung verwendet und die nachfolgenden zwei signifikantesten Bits ermöglichen den Zugriff zu den einzelnen Wörtern in den Datenbündeln. Die reale Adresse eines Datenbündel-
409816/0850
platzes im Arbeitsspeicher wird durch das Öffnen zweier ausgewählter Tor schaltungen der Tor schaltungen 27 bis 42 erreicht.
Um die reale Adresse eines Datenbündelplatzes zu erhalten, wird jede virtuelle Adresse in Form zweier Bits einem Dekoder
82 zugeführt,, der aus den zwei Bits eines der vier Ausgangssignale OCq bis Kit, erzeugt.
Dm virtuelle Adressen zu verändern (z.B. durch die Verwendung des als EXC A, B geschriebenen Befehls) ist ein weiterer Dekoder
83 erforderlich, der Ausgangssignale ßn bis ft-z zur Verfügung stellt. Außerdem werden die beiden weiteren Paare von - 1-Bit-Registern 44, 44f und 45, 45* verwendet, um virtuelle Adressen dadurch zu verändern, daß die in den Register 23, 23' bis 26, 26' gespeicherten Bits von einem Registerpaar in ein anderes überführt werden. Die tatsächlichen oder realen Adressen der Speicherplätze im Arbeitsspeicher durchlaufen auf diese Weise die Register 23, 23f bis 26, 26», wenn der Befehl EXC erscheint.
Ist z.B. die virtuelle Adresse A der realen Adresse zugeordnet, die durch die in den Registern 23, 23' gespeicherten Bits gegeben ist, und werden die die virtuelle Adresse A kennzeichnenden Bits von den Schaltkreisen 17, 18 und 19 dem Dekoder 82 zugeführt, dann erzeugt dieser Dekoder ein Ausgangssignal 0^. Die UND-Glieder 27 und 28 werden durch das Ausgangssignal 0^0 geöffnet, wenn ein Taktimpuls tQ von dem durch den Schaltkreis 16 gesteuerten Taktgenerator 84 zugeführt wird. Die Aussteuersignale für die Torschaltungen sind in Fig. 2a neben die jeweils entsprechende Torschaltung angeschrieben. Der Inhalt der Speicher 23, 23' erscheint dann an den Ausgängen -46 und 47 und gibt die Adresse des Speicherplatzes des Arbeitsspeichers an, der der virtuellen Adressen A zugeordnet ist. Auf diese Weise kann jede Adresse aus den Registern 23, 23* bis 26, 26* an den Ausgängen
409816/0850
46 und 47 gewonnen werden, die einer virtuellen Adresse zugeordnet ist.
Wenn der Befehl EXC (A, B) gegeben wird, erzeugt der Dekoder 82 erneut das Ausgangs signal #Q, zur gleichen Zeit erzeugt der zweite Dekoder 83 dasjenige Ausgangssignal, da;s einen Zugriff auf die B zugeordnete reale Adresse ermöglicht, z.B. also /3^. Die in den Registern24 und 24· gespeicherte reale Adresse erscheint dann an den Ausgängen 48 und 49, wenn ein Taktimpuls tQ auftaucht. In diesem Beispiel wird also nach dem Taktimpuls tQ der Inhalt der Register 23, 23 * in die Register 44, 44» eingelesen und der Inhalt der Register 44, 44' wird in die Register 45, 45' eingelesen. Wenn der vom Schaltkreis 16 gesteuerte Taktgenerator 84 einen zweiten Taktimpuls t^ erzeugt, so gehen die der Gruppe 59 bis 66 von UND-Torschaltungen zugehörende Torschaltungen 61 und 62 in einen geöffneten Zustand über, da das Signal β ^ noch anliegt und veranlaßt, daß der Inhalt der Register 44, 44' in die Register 24* 24! eingelesen wird. Zur gleichen Zeit gehen die der Gruppe 51 bis 58 von UND-Gliedern zugehörende Torschaltungen 51, 52 in einen geöffneten Zustand über, da das Signal (Xq noch anliegt und veranlaßt, daß der Inhalt der Register 45, 45! in die Register 23, 23' eingelesen wird. Auf diese Weise sind die zwei Bits, die zuvor in den Registern 23, 23' gespeichert waren, nun in den Registern 24, 24' gespeichert, und die zuerst in den Registern 24, 24' gespeicherten Bits sind nun in den Registern 23, 23' gespeichert, mit dem Ergebnis, daß der zuerst der virtuellen Adresse A zugeordnete Speicherplatz nun der virtuellen Adresse B zugeordnet ist, und umgekehrt der zuerst der virtuellen Adresse B zugeordnete Speicherplatz nur der virtuellen Adresse A zugeordnet ist.
Eine weitere Verminderung der Länge der Programme wird durch Verwendung einesnKennzeichens" (flag) erreicht, das durch Verändern eines Bits von jeder Adresse gewisse Veränderungen der virtuellen Adressen des Arbeitsspeichers und der realen Adressen des Hilfs-
409816/0850
Speichers verursacht. Dieses Kennzeichen kann durch einen Befehl an die Steuerschaltung 21 oder durch den Wert eines Bits im Wort eines Datenbündels festgelegt werden. Es kann also während des gesamten Programms auf einen festen Wert festgelegt werden, oder es kann sich während des Programms verändern.
Das Kennzeichen verursacht, daß die Exclusiv-ODER-Funktion auf das binäre Kennzeichensignal und das zweit--signifikanteste Bit der Adresse angewendet wird, wenn der Befehl, der das Kennzeichen festlegt, direkt nach der Adresse eines Datenbündels im Arbeitsspeicher mit einem Indexstrich versehen ist (z.B. A1)»oder auf das viertsignifikanteste Bit angewendet wird, wenn der Indexstrich unmittelbar nach einer virtuellen Adresse eines Wortes eines Datenbündels erscheint (zoB. A2 1). Die Exclusiv-ODER-Schaltkreise 17 und 18 liegen in den Kanälen für die zweitsignifikantesten und viertsignifikantesten Bits und werden durch ein binäres Eingangssignal ausgesteuert, welches an die Eingänge 70 und 71 angelegt, wird und dem Kennz©iehensignal entspricht<,
Durch die Veränderung des zweitsignifikantesten Bits werden di@ virtuellen "Adressen in folgender Weise veränderts
Durch die Veränderung des viertsignifikantesten Bits Yerwendung. .des Kanals 81 erfolgen in gleicher Weise di© fraasformationens
V · ¥1
β> W,
W2
18/OiSO
Die Berechnung gewisser einfacher Ausdrücke wird im Rechner 21a gemäß den Datenbündeln ausgeführt, die in vorgegebenen virtuellen Adressen gespeichert sindj ist z.B. in der virtuellen Adresse A ein Datenbündel gespeichert, welches einem Wert f im Hauptspeicher entspricht, und entspricht der virtuelle Adresse B ein Wert g und der virtuellen Adresse C der Operator minus, dann veranlaßt ein Rechenbefehl den Rechner, die Berechnung von f - g vorzunehmen. Entspricht dagegen die virtuelle -Adresse C
f der Operation "geteilt durch", so wird die Berechnung von —
S . vorgenommen.
Die Arbeitsweise des Arbeits- und des Hilfsspeichers wird durch folgende Befehle gesteuert, die durch den Rechner 21a gegeben werden während er ein Programm ausführt, und die als Unterprogramme in Festspeicher gehalten werden: LOAD A WITH CQ
Dieser Befehl veranlaßt, daß die virtuellen Speicherplätze Aq, A-, Ag und A, des~Arbeitsspeichers durch den Rechner 21a. mit den Inhalten des Datenbündels gefüllt werden, das aus vier Wörtern besteht, von denen das erste Wort dieselbe Adresse im Hauptspeicher besitzt wie die Inhalte von CQ; d.h. es ist A0: = ( (C0) )
A1: = ( (C0)-+ D
A2: = ( (C0) + 2)
A3: = ( (C0) + 3)
wobei die Schreibweise ( ) für «Inhalt von" steht. , DUMP B INTO W1 -· ~
Dieser Befehl überträgt die Inhalte des virtuellen Speicherplatzes B in diejenigen vier Speicherplätze des Hauptspeichers, die mit der Adresse beginnen,-die in dem realen Speicherplatz W1 gespeichert«· ist· d.h. es ist -
AO 9.8 16/0850
(W1)
= (B0)
(V1) + 1 : = (B1)
(W1) + 2 : = (B2)
(W1) + 3 : = (B3)
COPY C1 INTO X,
Durch diesen Befehl werden die Inhalte der virtuellen Adresse C1 in den realen Speicherplatz X^ des HilfsSpeichers übertragen. SDCCR (W1, Z0)
Durch diesen Befehl werden die Inhalte der realen Speicherplätze W1 und Zq des Hilfsspeichers ausgetauscht.
Es sollen nun mehrere Beispiele für die Verwendbarkeit der Vorrichtung zur Datenverarbeitung nach Fig. 1 gegeben werden. Die dort abgebildete Vorrichtung nach dieser Erfindung ist besonders zur Verarbeitung von Datenstrukturen geeignet, die bei graphischen Darstellungen Verwendung finden. Die drei wichtigsten dieser Strukturen sind, wie schon erläutert, die Listen-, Abzweig- und Ringstrukturen. Zuerst soll nun eine Listenstruktur betrachtet werden, bei der eine unbekannte Anzahl von Datenwörtern oder Befehlen zu speichern ist. FQr diesen Fall ist die Verwendung einer Liste eine bekannte und zweckmäßige Technik. Jedes Datenbündel enthält in der Liste eine bestimmte Information und außerdem die Adresse, bekannt als Zeiger,des nachfolgenden Datenbündels dieser Liste.
In dieser Beschreibung wird nun eine Konvention übernommen, nach der die virtuelle Adresse D0 den Stapelzeiger enthält, der die Adresse desjenigen Speicherplatzes im Hauptspeicher wiedergibt, in dem sich das erste Datenbündel der Liste befindet, nach der außerdem der virtuelle Speicherplatz Dp den freien Zeiger enthält, der die Adresse des ersten Speicherplatzes einer Liste aller leeren Speicherplätze im Hauptspeicher angibt. Fig. 3 zeigt eine Teil-
A0 98 16/0850
_ -' 234959Q
darstellung des Haupt- und des Arbeitsspeichers der Fig..1, sie zeigt, wie die Stapelliste und die freie Liste verteilt sind. Der virtuelle Speicherplatz DQ enthält einen Zeiger 3»-3 der die Adresse des ersten Wortes eines Datenbündels darstellt, welches im Hauptspeicher 4 Speicherplätze einnimmt. Das letzte Wort dieses Datenbündels enthält die Zahl 23» die die Adresse des nächsten Datenbündels dieser Liste darstellt, usw. Der virtuelle Speicherplatz D1 enthält die Zahl 12, die die Adresse im Hauptspeicher für den ersten Speicherplatz eines freien Datenbündels im Hauptspeicher darstellt. Jedes Datenbündel in der freien Liste enthält die Adresse des nächsten Datenbündels dieser freien Liste.
Das folgende, im Festspeicher 21c gespeicherte Unterprogramm wird durch die Befehle PUSH oder PULL adressiert, die.in einem Programm für den Rechner 21a auftreten können, es wird verwendet, um der Stapelliste Daten hinzuzuaddieren oder aus der Stapelliste Daten zu entfernen.
1. "LOAD A WITH D1'
2. IF A3 = 0 GO TO LIST MPTY
3. COPY D0' INTO B3
4. COPY D1' INTO D0'
5. COPY A3 INTO D1' ' ■
6. DUMP B INTO D0'
Wenn es erforderlich ist, einen Eingriff in die Stapelliste vorzunehmen, so werden die zu speichernden Datens vom Rechner 21a gesteuert, zuvor in die virtuellen Speicherplätze Bq, B^ und B2 gegeben, und das obengenannte Unterprogramm wird mit dem durch den Befehl PUSH festgelegten Kennzeichen F = O in das Rechnerprogramm eingeführt. Der Befehl 3 füllt den Datenbündelplatz A mit dem im Hauptspeicher durch die Adresse D1 gegebenen Datenbündel auf«, Der Befehl 2 soll dieses Unterprogramm beenden9 wenn die Liste leer ist. Durch den Befehl 3 wird der augenblicklich vorhandene Stapelzeiger in den virtuellen Speicherplatz B^ gegeben v und
409818/08S0
durch den Befehl 4 wird ein neuer Stapelzeiger erzeugt, dessen Adresse mit der Adresse des ersten Platzes eines freien Datenbündels in der freien Liste identisch ist. Durch den Befehl 5 wird ein neuer Zeiger der freien Liste eingeführt, in dem die Inhalte des ersten freien Datenbündels übernommen werden, die die Adresse des nächsten freien Datenbündels in D« überführen. Durch den Befehl 6 werden die neuen, in den virtuellen Speicherplätzen Bq, B1 und Bg vorhandenen Daten in denjenigen Speicherplatz eingeschrieben, der nun der erste Datenbündelplatz der Stapelliste wird, und der vorher der erste Datenbündelplatz der freien Liste darstellte.
Um aus der Stapelliste Daten zu entnehmen, wird das Kennzeichen F durch Steuerung durch das Rechnerprogramm auf den Wert F = 1 gesetzt. Der Befehl 1 bewirkt dann in diesem Fall, daß die virtuelle Adresse A mit dem Inhalt des ersten Dätenbündels der Stapelliste belegt wird, da D1* in DQ übergeht. Die erforderlichen Daten können nun von Aq, A und Ag gewonnen werden. Im Befehl 3 geht Dq1 in D1 über, so daß die Adresse des Zeigers der freien Liste in den virtuellen Speicherplatz B, eingegeben wird. Im Befehl 4 wird der Zeiger der Stapelliste von DQ zum neuen Zeiger der freien Liste in D1 gemacht ,und im Befehl 5 wird das letzte Wort in der virtuellen Adresse A in die virtuelle Adresse Dq gegeben, um den neuen Zeiger der Stapelliste bereitzustellen. Der letzte Befehl addiert ein Datenbündel, welches bis. auf den Zeiger 12 leer ist, zu der freien Liste, wobei die Adresse dieses Datenbündels mit der Adresse desjenigen Datenbündels übereinstimmt, welches sich nun in der virtuellen Adresse A befindet und darauf wartet, daß aus ihm Daten ausgelesen werden«
Es soll nun ein Beispiel der Behandlung des zweiten Typs von Datenstrukturen, der Abzweigstruktur gegeben werden. Mittels einer Abzweigstruktur kann ein zu berechnender Ausdruck durch Datenbündel dargestellt werden, die im Hauptspeicher gespeichert sind
und mit Hilfe von Zeigern ,untereinander verbunden 'werden. Die auf
4 09816/085 0
diese "Weise gebildete Struktur erlaubt es, einen Ausdruck zu berechnen, wenn eine Veränderung in einem Parameter vorliegt, ohne daß die gesamte Berechnung wieder erneut durchgeführt wird, vorausgesetzt, daß die Art des Parameters und der Rechenschritte dies erlaubt.
ist in
Eine Abzweigstruktur für den Ausdruck ex|(f - g + ·? Fig. 4 dargestellt, in der Datenbündel 1 bis 8 durch Pfeile miteinander verbunden sind. Die Datenbündel sind von zwei verschiedenen Typen ,und ihre Verbindungen untereinander werden durch die folgende Beschreibung ihrer Formen deutlich.
Das Format des Datenbündels eines Operanden lautet folgendermaßen:
Zeiger für den Wert
L oder R Zeiger oben
■- ■ Zeiger zur Weiterver
arbeitung im Ring
Ein Beispiel für ein Datenbündel eines Operanden ist das Datenbündel Nr. 7, welches in den letzten 12 Bits des ersten Wortes die Adresse des Werts von dem Parameter g speichert. In den ersten 4 Bits des zweiten Worts ist ein Bit gespeichert, welches der Kennzeichnung von R dient und angibt, daß das Datenbündel Nr ο 7 von dem in der Hierachie nächst höheren Datenbündel, d.h. also vom Datenbündel Nr. 4, dessen Adresse in-den letzten 12 Bits des zweiten Worts gespeichert ist, nach rechts abzweigt. Die letzten 12 Bits des dritten Wortes in dea Datenbündel stehen» wie noch näher erläutert wird, zur Verwendung in einer Datenringstruktur zur Verfügung, um Parameter in" die Abzweigstruktur einzuführen.
409816/0850
Das Format des Datenbündels eines Operators lautet folgendermaßen:
Operator Zeiger für den Wert
L,R oder T Zeiger oben
Zeiger unten L
Zeiger unten R
Ein Beispiel für das Format eines Datenbündels für einen Operator ist durch das Datenbündel 3 gegeben, in dessen ersten vier Bits des ersten Wortes der plus-Operator gespeichert ist, in dessen letzten zwölf Bits des ersten Wortes die Adresse des Wertes des Resultats der ausgeführten Operation gespeichert ist. Die ersten vier Bits des zweiten Wortes kennzeichnen R und geben an, daß dieses Datenbündel eine rechts liegende Abzweigung vom nächst höheren Datenbündel darstellt. Wäre an dieser Stelle das Symbol T gespeichert, so würde damit angegeben, daß sich das Datenbündel an der Spitze der Abzweigstruktur befindet. Die weiteren zwölf Bits des zweiten Wortes, geben die Adresse des nächst höheren Datenbündels wieder. In den letzten zwölf Bits des dritten und vierten Wortes sind die Adressen der links und rechts liegenden, nächst niederen Datenbündel gespeichert.
Wie schon früher ausgeführt wurde, ist der Rechner 21a so ausgelegt, daß er den zu berechnenden Ausdruck dadurch herstellt, daß das Datenbündel aus A genommen wird und entsprechend dem im Datenbündel mit der virtuellen Adresse C enthaltenen Operator unter Verwendung des Datenbündels mit der virtuellen Adresse B berechnet wird.
Bei den Verschiebeoperationen (push and pull operations) steuert ein Festspeicher 21c vorhandenes Mikroprogramm die Berechnung oder die teilweise Wiederherstellung des zu berechnenden Ausdrucks. Dieses Mikroprogramm besitzt folgende Gestalt:
40*98 18/0 8 50,
1. LOAD C WITH C2
2. COPy C2 INTO D3
3. SET F WITH SIDE (C1)
4. EXC (C, A»)
5. LOAD C WITH A1,,
6. LOAD B1 WITH C3 1 . . . '
7. EVALUATE
8. IF SIDE (C1) IS ΝΟΤ=£Γ GO TO 3
9. PUSH C1
10. LOAD C WITH D3
11. GO TO 2.
Anfänglich enthält die virtuelle Adresse C2 einen Zeiger, der bei der Eingabe eines Parameterwertes verwendet wird, d.h. das Programm, welches den Rechner 21a steuert, übernimmt alle neuen Parameter in einen Speicherplatz des Hauptspeichers und überträgt die Adresse dieses Speicherplatzes an die virtuelle Adresse C2. Hat sich z.B. der Wert von g gerade geändert und werden die Adressen des Hauptspeichers mit den Nummern der Datenbündel in Fig. 4 bezeichnet, so enthält C2 dann die Nummer 7. Der erste Befehl überträgt das in 7 enthaltene Datenbündel nach C, und der zweite Befehl erhält den Zeiger zur weiteren Verwendung in D3. Befehl, 3 setzt das Kennzeichen F entsprechend dem in Cj enthaltenen Wert entweder auf den Wert L (links) oder, sofern der Befehl 1 = R lautet, auf den Wert R(rechts). Das Kennzeichen F besitzt damit den Wert 1. Unter Verwendung des Adressenumsetzers 14 und der logischen Schaltung überträgt der Befehl 4 das Datenbündel 7 in die virtuelle Adresse B, da mit F =1 die Adresse A1 in B übergeht. Das Datenbündel, welches den Wert g kennzeichnet, wird damit in der virtuellen Adresse B gehalten, wo es gemäß seiner Adresse im Rechenvorgang verwendet wird. Auf den Befehl 5 hin wird das Datenbündel 4, dessen Adresse in A^ = A2 gespeichert ist, nach C überführt, so daß C den minus-Operator enthält. Das Datenbündel 6 wird auf
A09816 /0850
den Befehl 6 in die virtuelle Adresse A gegeben, so daß der Wert von f nun in dieser Adresse gespeichert ist. Die Datenbündel 4, 6 und 7 besitzen damit eine solche Position, daß der Ausdruck f - g aufgrund des Befehls 7 im Rechner 21a berechnet wird.
Der Befehl 8 beendet das Unterprogramm, wenn die Spitze der Abzweigschaltung erreicht ist; in dem hier betrachteten Beispiel kehrt das Unterprogramm zu dem Befehl 3 zurück und führt nun die Berechnung von (f-g)+(r|) in ähnlicher Weise wie für die geschilderten Datenbündel 4, 6 und 7 aus, dabei ist jetzt allerdings F=O. Ist die Spitze der Abzweigstruktur erreicht, so wird der nach oben orientierte Zeiger des Datenbündels an der Spitze durch den Befehl 9 zur weiteren Verwendung gestapelt. Der zur nächsten Folge von Arbeitsschritten überführende Zeiger wird durch den Befehl 10 aus D, gewonnen. Die nächste Folge von Arbeitsschritten wird dann durch den Befehl 11 begonnen.
Ein Beispiel der Behandlung der dritten Datenstruktur, nämlich der Ringstruktur, wird nun anhand Fig. 4 gegeben. Die Datenbündel 2, 6, 7, 8 und 9 sind in Form einer Liste über die Verbindung 80 verbunden, wird das Ende der Liste außerdem mit dem Anfang der Liste verbunden, so ergibt sich ein Ring. Zu Anfang wird der Ring durch Steuerung eines Mikroprogramms im Festspeicher mit dem Datenbündel 2 eingegeben. Die Parameter f, g, h und j werden durch einen in dieser Reihenfolge gegebenen Aufruf in den Arbeitsspeicher gegeben, in dem ein Mikroprogramm die Werte der Parameter in das entsprechende Datenbündel eingibt. Das Unterprogramm ist beendet, sobald das Datenbündel 2 erneut den Ring durchläuft.
Das dritte Wort jedes Datenbündels 2, 6S 7, 8 und 9 ist mit USE bezeichnet und enthält .einen Zeiger einer Ringstruktur. Dabei stellt jedes Wort aber einen Teil eines eigenen, von anderen Ringen verschiedenen ,Ringes dar. Dabei wird angenommen, daß mehrere Abzweigstrukturen vorhanden sind, von denen jeweils einige die einzelnen Parameter verwenden. Wird ein Parameter geändert, z.B. g,
409816/0850
so wird der g enthaltende Ring, der Datenbündel aus verschiedenen Abzweigstrukturen enthält, durchlaufen.
Obwohl die Vorrichtung zur Datenverarbeitung nach den Fig. 1 und mit Datenbündeln von vier Wörtern mit je 16 Bits arbeitet, ist es offensichtlich, daß alle Datenbündel mit brauchbarem Umfang und
brauchbarer Wortlänge bei dieser Vorrichtung verwendet werden
können. Außerdem müssen die in Fig. 1 benötigten Blockschaltungen nicht unbedingt mit den dargestellten und beschriebenen Schaltungen übereinstimmen. Insbesondere können andere Ausführungen des Adressenumsetzers verwendet werden.
409 816/0850

Claims (8)

  1. Patentansprüche
    Vorrichtung zur Datenverarbeitung, mit einem Arbeitsspeicher zur Speicherung von Datenwörtern an mehreren Speicherplätzen, wobei ^eder Speicherplatz eine eigene reale Adresse besitzt, die, wenn sie in Form eines Adressensignals einem Adresseneingang des Arbeitsspeichers zugeführt wirdj, das in dieser Adresse gespeicherte Datenwort an den Ausgang des Arbeitsspeichers gelangen läßt, dadurch gekennzeichnet, daß ein Adressenumsetzer (14) mit an die Adresseneingänge des Arbeitsspeichers (13) angeschlossenen Ausgängen vorgesehen ist, der virtuelle Adressen in reale Adressen umsetzt, wobei jede reale Adresse einer entsprechenden virtuellen Adresse zugeordnet ist, und am Ausgang des Adressenumsetzers (14) ein die reale Adresse kennzeichnendes Signal erscheint, wenn die zugeordnete virtuelle Adresse in Form eines elektrischen Signales dem Adressenumsetzer (14) zugeführt ist, und daß der Adressenumsetzer Vorrichtungen (27 bis 58 und 82 bis 84) enthält, die als Antwort auf entsprechende Befehlssignale die Zuordnung zwischen realen und virtuellen Adressen ändern.
  2. 2. Vorrichtung nach Anspruch 1, ·
    dadurch gekennzeichnet, daß ein Hauptspeicher (10) mit großer Kapazität und mit einer bezüglich des Arbeitsspeichers (13) großen Zugriffszeit vorgesehen ist, und daB _¥orriciitmigen zur Übertragung von Datenwörtern zwischen, den Speichern vorgesehen sind.
    09 816/0850
  3. 3. Vorrichtung nach Anspruch 2,
    dadurch gekennzeichnet, daß ein Hilfsspeicher (20) vorgesehen ist, der gegenüber dem Hauptspeicher .(1O) eine relativ kleine Zugriffszeit besitzt, und daß Vorrichtungen zur Übertragung von Datenwörtern zwischen den drei Speichern (10, 13, 20) vorgesehen sind.
  4. 4. Vorrichtung nach den Ansprüchen 1,2 oder 3* dadurch gekennzeichnet,
    daß logische Schaltungen (17, 18) vorgesehen sind, die durch Aussteuerung mit entsprechenden Aussteuersignalen mindestens ein Bit einer virtuellen Adresse in entsprechender Weise ändern.
  5. 5. Vorrichtung nach einem der Ansprüche 1 bis 4, dadurch gekennzeichnet,
    daß im Adressenumsetzer (14) eins oder mehrere des5 signifikanteren Bits von virtuellen Adressen geändert werden können, wobei die Zuordnung eines Blockes voa virtuellen und von realen Adressen und nicht nur die Zuordnung zwischen einzelnen liortern geändert wird.
  6. 6. Vorrichtung nach einem oder mehreren der Ansprüchen 1 bis 5,
    dadurch gekennzeichnet, daß der Adressenumsetzer (14) mehrere Gruppen von bistabilen Schaltkreisen erster Art (23 bis 26) enthält, von denen jeweils eine Gruppe je einer virtuellen Adresse, und jeweils ein bistabiler Schaltkreis in jeder Gruppe einer 1-Bit-Signifikanz einer virtuellen Adresse zugeordnet ist, daß mehrere Ausgangsanschlüsse (46 und 47) vorgesehen sind, von denen je einer mit einer entsprechenden Bit-Signifikanz einer virtuellen Adresse zugeordnet ist,, daß eine erste Gruppe von Torschaltungen (27 bis 34)
    40*9816/0850
    vorgesehen ist, von denen jeweils eine Torschaltung zwischen jeden bistabilen Schaltkreis und dem derselben Bit-Signifikanz zugeordneten Ausgangsanschluß gekoppelt ist, daß ein erster Dekoder (82) vorgesehen ist, der eine virtuelle Adresse empfängt und ein dieser virtuellen Adresse entsprechendes Ausgangssignal abgibt, und daß dieser erste Dekoder (82) das Ausgangssignal als Aussteuersignal an Torschaltungen in der ersten Gruppe der Torschaltungen abgibt, die an bistabile Schaltkreise derjenigen virtuellen Adresse angekoppelt sind, die auch das Ausgangssignal besitzt.
  7. 7. Vorrichtung nach Anspruch 6,
    dadurch gekennzeichnet, daß der Adressenumsetzer (14) zwei Gruppen von bistabilen Schaltkreisen zweiter Art (44 bis 45) enthält, von denen je ein bistabiler Schaltkreis einer Bit-Signifikanz einer virtuellen Adresse zugeordnet ist, daß jeder bistabile Schaltkreis in beiden Gruppen einen Setzeingang besitzt, dem Signale zugeführt werden, die den Leitfähigkeitszustand dieser Schaltkreise ändern, daß jeder bistabile Schaltkreis der beiden Gruppen außerdem einen Ausgangsanschluß besitzt, dessen Ausgangs spannung den augenblicklich vorhandenen Leitfähigkeitszustand des bistabilen Schaltkreises angibt, daß eine zweite Gruppe von Torschaltungen (35j,bis 42), eine dritte Gruppe von Torschaltungen (51 bis 58) und eine vierte Gruppe von Torschaltungen (59 bis 66) vorgesehen ist, wobei die erste und zweite Gruppe der Torschaltungen zwischen die Ausgangsanschlüsse der bistabilen Schaltkreise (23 bis 26) und die Setzeingänge der ersten und zweiten Gruppe der bistabilen Schaltkreise (44 bis 45) geschaltet sind, und die Übertragung des Leitfähigkeitszustandes der bistabilen Schaltkreise zwischen den bistabilen Schaltkreisen erster Art und zweiter Art und derselben Bit-
    40*9 8 167085 0
    Signifikants derselben virtuellen Adresse ermöglichen, wobei die dritte und vierte Gruppe der Torschaltungen zwischen die Ausgangsanschlüsse der ersten und zweiten Gruppe der bistabilen Schaltkreise (44 bis 45) und der Setzeingänge der bistabilen Schaltkreise (23 bis 26) geschaltet sind und die Übertragung des Leitfähigkeitszustandes der bistabilen Schaltungen zwischen den bistabilen Schaltkreisen erster Art und zweiter Art mit derselben Bit-Signifikanz derselben virtuellen Adresse ermöglichen, daß ein zweiter Dekodierer (83) vorgesehen ist, der eine virtuelle Adresse empfängt und ein dieser virtuellen Adresse entsprechendes Ausgangssignal abgibt, daß der erste Dekodierer (82) und der zweite Dekodierer (83) jedes Ausgangssignal als Aussteuersignal an die Torschaltungen der ersten und dritten Gruppen, bzw. der zweiten und vierten Gruppen abgeben und die Übertragung des Leitfähigkeitszustandes der bistabilen Schaltkreise erster Art derselben virtuellen Adresse, die auch das entsprechende Ausgangssignal besitzt, ermöglichen, und daß ein Taktpulsgenerator (84) vorgesehen ist, der Aussteuerimpulse an Torschaltungen der ersten und zweiten Gruppe abgibt und anschließend Aussteuerimpulse an Torschaltungen der dritten und vierten Gruppe abgibt, in denen eine Änderung der virtuellen Adresse vorgenommen wird.
  8. 8. Vorrichtung nach einem der Ansprüche 6 oder 7» dadurch gekennzeichnet, daß in jeder Gruppe zwei bistabile Schaltkreise vorgesehen sind, und daß jeder bistabile Schaltkreis einem signifikanteren Bit zugeordnet ist.
    40*9816/0850
    Verwendung der Yorrichtung nach einem oder mehreren der Ansprüche 1 bis 8,
    dadurch gekennzeichnet,
    daß diese Vorrichtung in digitalen Rechenanlagen eingesetzt wird.
    ReRb/Pi.
    40*9816/085-0
    Leerseite
DE19732349590 1972-10-03 1973-10-03 Vorrichtung zur datenverarbeitung Pending DE2349590A1 (de)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
GB4549472A GB1444228A (en) 1972-10-03 1972-10-03 Data structure processor

Publications (1)

Publication Number Publication Date
DE2349590A1 true DE2349590A1 (de) 1974-04-18

Family

ID=10437431

Family Applications (1)

Application Number Title Priority Date Filing Date
DE19732349590 Pending DE2349590A1 (de) 1972-10-03 1973-10-03 Vorrichtung zur datenverarbeitung

Country Status (3)

Country Link
JP (1) JPS4994239A (de)
DE (1) DE2349590A1 (de)
GB (1) GB1444228A (de)

Families Citing this family (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS5191300A (en) * 1975-02-10 1976-08-10 Sutebiosaido no seiseihoho
JPS5672750A (en) * 1979-11-19 1981-06-17 Nec Corp Memory device
US4860192A (en) * 1985-02-22 1989-08-22 Intergraph Corporation Quadword boundary cache system
US5255384A (en) * 1985-02-22 1993-10-19 Intergraph Corporation Memory address translation system having modifiable and non-modifiable translation mechanisms
US4933835A (en) * 1985-02-22 1990-06-12 Intergraph Corporation Apparatus for maintaining consistency of a cache memory with a primary memory
US4899275A (en) * 1985-02-22 1990-02-06 Intergraph Corporation Cache-MMU system
US4884197A (en) * 1985-02-22 1989-11-28 Intergraph Corporation Method and apparatus for addressing a cache memory
US5091846A (en) * 1986-10-03 1992-02-25 Intergraph Corporation Cache providing caching/non-caching write-through and copyback modes for virtual addresses and including bus snooping to maintain coherency

Also Published As

Publication number Publication date
GB1444228A (en) 1976-07-28
JPS4994239A (de) 1974-09-06

Similar Documents

Publication Publication Date Title
DE2455803C2 (de) Mehrprozessor-Datenverarbeitungsanlage
DE2145120A1 (de) Digitales Datenverarbeitungsgerat
DE1956604B2 (de) Datenverarbeitungsanlage
DE2556661A1 (de) Steuerschaltung mit adressenerweiterung
DE1499201A1 (de) Datenaufbereitungs-Einrichtung
DE1901343B2 (de) Datenverarbeitungsanlage zur Ausführung von Mateirenrechnungen
DE3015875A1 (de) Speicherzugriffssystem und verfahren fuer einen zugriff zu einem digitalen speichersystem
DE1900141B2 (de) Hilfssteuerwerk fur eine Datenver arbeitungsanlage
DE2747146A1 (de) Datenverarbeitungsanlage
DE2310631B2 (de) Speicherhierarchie fur ein Datenverarbeitungssystem
DE2423265C3 (de) Optimierende Rechenmaschine
DE2817073A1 (de) Adressenberechnungsanordnung
DE2458525B2 (de) Speicheranordnung mit Haupt- und Pufferspeicher
DE2349590A1 (de) Vorrichtung zur datenverarbeitung
DE3107568A1 (de) Datenverarbeitungseinrichtung
DE2739525A1 (de) Prozessor
DE2245284A1 (de) Datenverarbeitungsanlage
EP0009625B1 (de) Datentransferschalter mit assoziativer Adressauswahl in einem virtuellen Speicher
DE2306679A1 (de) Einrichtung zum bearbeiten digitaler daten
DE4103880C2 (de) Bildverarbeitungsgerät und -verfahren
DE2331394B1 (de) Datenverarbeitungsanlage mit virtueller adressierung
DE2024584B2 (de) Steuereinrichtung für eine allgemeine Datenverarbeitungseinrichtung
DE1296427B (de) Datenbearbeitungssystem
DE2355814C2 (de) Kanalzugriffseinrichtung für eine hierarchische Speicheranordnung
DE2713068A1 (de) Sequentielle datenverarbeitungsanlage

Legal Events

Date Code Title Description
OHA Expiration of time for request for examination