DE2349590A1 - Vorrichtung zur datenverarbeitung - Google Patents
Vorrichtung zur datenverarbeitungInfo
- 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
Links
- 238000012545 processing Methods 0.000 title claims description 18
- 230000015654 memory Effects 0.000 claims description 127
- 230000008859 change Effects 0.000 claims description 13
- 238000012546 transfer Methods 0.000 claims description 9
- 230000003936 working memory Effects 0.000 claims description 8
- 230000005540 biological transmission Effects 0.000 claims description 6
- 230000004044 response Effects 0.000 claims description 4
- 238000004364 calculation method Methods 0.000 description 7
- 230000014509 gene expression Effects 0.000 description 7
- 238000004590 computer program Methods 0.000 description 3
- 238000000034 method Methods 0.000 description 3
- 239000013598 vector Substances 0.000 description 3
- 238000010586 diagram Methods 0.000 description 2
- 230000006870 function Effects 0.000 description 2
- 230000008569 process Effects 0.000 description 2
- 238000011161 development Methods 0.000 description 1
- 230000009467 reduction Effects 0.000 description 1
- 238000011160 research Methods 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/10—Address translation
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Memory System (AREA)
- Memory System Of A Hierarchy Structure (AREA)
- Executing Machine-Instructions (AREA)
Description
„-ing: Woligang BeIcM
6 Frankiuit a. M. 1
Parksbaße 13
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.
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)
- PatentansprücheVorrichtung 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. 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. 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. 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. 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. 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/0850vorgesehen 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. 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 0Signifikants 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. 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/0850Verwendung 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-0Leerseite
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)
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 |
US5255384A (en) * | 1985-02-22 | 1993-10-19 | Intergraph Corporation | Memory address translation system having modifiable and non-modifiable translation mechanisms |
US4884197A (en) * | 1985-02-22 | 1989-11-28 | Intergraph Corporation | Method and apparatus for addressing a cache memory |
US4860192A (en) * | 1985-02-22 | 1989-08-22 | Intergraph Corporation | Quadword boundary cache system |
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 |
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 |
-
1972
- 1972-10-03 GB GB4549472A patent/GB1444228A/en not_active Expired
-
1973
- 1973-10-03 JP JP48111322A patent/JPS4994239A/ja active Pending
- 1973-10-03 DE DE19732349590 patent/DE2349590A1/de active Pending
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 | |
DE3685711T2 (de) | Anordnung zur simulation von rechnerfunktionen von grossrechenanlagen. | |
DE2556661A1 (de) | Steuerschaltung mit adressenerweiterung | |
DE1901343B2 (de) | Datenverarbeitungsanlage zur Ausführung von Mateirenrechnungen | |
DE3015875A1 (de) | Speicherzugriffssystem und verfahren fuer einen zugriff zu einem digitalen speichersystem | |
DE2747146A1 (de) | Datenverarbeitungsanlage | |
DE2310631B2 (de) | Speicherhierarchie fur ein Datenverarbeitungssystem | |
DE2817073A1 (de) | Adressenberechnungsanordnung | |
DE2458525B2 (de) | Speicheranordnung mit Haupt- und Pufferspeicher | |
DE2506671C3 (de) | Binärdaten-Handhabungsnetzwerk | |
DE2349590A1 (de) | Vorrichtung zur datenverarbeitung | |
DE3107568A1 (de) | Datenverarbeitungseinrichtung | |
DE1925427A1 (de) | Datenuebertragungsvorrichtung zum UEbertragen von Daten zwischen Informationsspeichern | |
DE2739525A1 (de) | Prozessor | |
DE2108157A1 (de) | Datenverarbeitungsanlage mit über lagertem Speicherverkehr | |
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 |