DE2346525A1 - Virtuelle speichereinrichtung - Google Patents
Virtuelle speichereinrichtungInfo
- Publication number
- DE2346525A1 DE2346525A1 DE19732346525 DE2346525A DE2346525A1 DE 2346525 A1 DE2346525 A1 DE 2346525A1 DE 19732346525 DE19732346525 DE 19732346525 DE 2346525 A DE2346525 A DE 2346525A DE 2346525 A1 DE2346525 A1 DE 2346525A1
- Authority
- DE
- Germany
- Prior art keywords
- address
- memory
- virtual
- translation
- bits
- 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.)
- Granted
Links
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
- G06F12/1027—Address translation using associative or pseudo-associative address translation means, e.g. translation look-aside buffer [TLB]
- G06F12/1045—Address translation using associative or pseudo-associative address translation means, e.g. translation look-aside buffer [TLB] associated with a data cache
- G06F12/1054—Address translation using associative or pseudo-associative address translation means, e.g. translation look-aside buffer [TLB] associated with a data cache the data cache being concurrently physically addressed
Description
Böblingen, 13. September 1973 lw/aa-fr
Anmelderin: International Business Machines
Corporation, Armonk, N.Y. 10504
Amtl. Aktenzeichen: Neuanmeldung
Aktenzeichen der Anmelderin: PO 972 010 2346525
Die Erfindung betrifft ein Rechnerspeichersystem einschließlich einer virtuellen Speichereinrichtung zur Umwandlung einer virtuellen
Adresse in eine reale physikalische Adresse.
Es sind verschiedene Techniken bekannt, bei denen mehrere Computer
programme entweder durch eine einzige oder mehrere Zentraleinheiten
ausgeführt werden und gemeinsam einen Speicher benutzen. Ein durch Programme in dieser Weise gemeinsam benutzter
Speicher erfordert eine extrem hohe Speicherkapazität, die oft größer ist als die tatsächliche Kapazität des Speichers. Um mit
dieser Situation fertig zu werden, verwendet man das Prinzip des virtuellen Speichers. Wenn ein System z.B. ein Adreßschema
24
mit 24 Bits verwendet, dann stehen 2 Bytes oder annähernd 16 Millionen adressierbare Bytes des virtuellen Speichers zur Verfügung. Dieser virtuelle Speicher wird in Segmente unterteilt, von denen jedes in Seiten unterteilt ist und jede Seite besteht aus einer vorbestimmten Anzahl von Bytes. Die einem virtuellen Speicher zugeordneten Segment- und Seitenadressen sind willkürliche Programmbezeichnungen und nicht tatsächliche Stellen im Hauptspeicher. Virtuelle Segmente und Seiten können daher nach Bedarf in den Hauptspeicher eingesetzt und aus diesem herausgenommen werden.
mit 24 Bits verwendet, dann stehen 2 Bytes oder annähernd 16 Millionen adressierbare Bytes des virtuellen Speichers zur Verfügung. Dieser virtuelle Speicher wird in Segmente unterteilt, von denen jedes in Seiten unterteilt ist und jede Seite besteht aus einer vorbestimmten Anzahl von Bytes. Die einem virtuellen Speicher zugeordneten Segment- und Seitenadressen sind willkürliche Programmbezeichnungen und nicht tatsächliche Stellen im Hauptspeicher. Virtuelle Segmente und Seiten können daher nach Bedarf in den Hauptspeicher eingesetzt und aus diesem herausgenommen werden.
A 0 9 8 1 8/1052
— ο —
Die willkürliche Lagerung von Segmenten und Seiten im Hauptspeicher
erfordert die Übersetzung einer virtuellen Adresse in eine reale Adresse unter Verwendung eines Satzes von Übersetzungstabellen,
die im Hauptspeicher stehen. In einem virtuellen Speichersystem wird eine Anzahl derartiger Übersetzungstabellensätze verwendet,
von denen jeder aus einer Segmenttabelle und einer Anzahl von Seitentabellen besteht. Jede Seitentabelle in einem Satz von übersetzungstabellen
gibt die tatsächliche Lage aller Seiten eines Segmentes in der Segmenttabelle an. Enthält z.B. eine bestimmte
Segmenttabelle 16 Speicherplätze, so enthält der Satz Übersetzungstabellen 16 Seitentabellen und eine Segmenttabelle.
Bei einer Übersetzung wird der richtige Satz von Übersetzungstabellen
ausgewählt und die Segmenttabelle in diesem Satz zum Auffinden der Lage der Seitentabellen im realen Speicher verwendet.
Mit der richtigen Seitentabelle wird dann die tatsächliche Lage der adressierten Seite herausgefunden. Der Byteteil einer virtuellen
Adresse gibt die reale Lage im Speicher an, so daß der Byteteil mit der Seitenlage zur Angabe der echten Adresse im Hauptspeicher
zusammengefügt wird, wenn Segment- und Seitenteil der virtuellen Adresse einmal zur Angabe einer Seitenlage übersetzt
worden sind.
Damit man nicht bei jeder Speicheradressierung die Adresse übersetzen
muß, werden laufende Übersetzungen virtueller Adressen in reale Adressen in einer anderen sogenannten Übersetzungsnebentabelle festgehalten, wo man solche realen Adressen mit Hilfe einer
virtuellen Adresse erhalten kann, ohne den beschriebenen Überset-'
zungsprozeß durchlaufen zu müssen. Die Benutzung der Übersetzungsnebentabelle
reduziert die Anzahl der durchzuführenden Übersetzungen wesentlich und verbessert somit die Leistung des virtuellen
Speichersystems beträchtlich. Dadurch wird jedoch auch insofern eine Fehlermöglichkeit eingeführt, als die bei der Ableitung der
realen in der Nebentabelle gespeicherten Adressen verwendeten Übersetzungstabellen evtl.. nicht dieselben sein könnten wie die
Tabellen, die zu den gegenwärtig gebrauchten Daten gehören. Auch
409818/1052
PO 972 010
wenn eine Übereinstimmung zwischen der virtuellen Adresse der
gegenwärtig gebrauchten Daten und einer der in der Uebentabelle
gespeicherten Übersetzungen vorliegt, kann die zu der gespeicherten übersetzung gehörende reale Adresse die falsche Adresse sein.
Dieses Problem kann dadurch gelöst werden, daß man jedesmal alle Übersetzungen, die in der Nebentabelle gespeichert sind, löscht,
wenn neu gewählte Übersetzungstabellen benutzt werden. Dadurch wird der Maschinenbetrieb jedoch beträchtlich langsamer, da die
unter Verwendung der Übersetzungstabellen notwendigen Übersetzungen
bedeutend zunehmen.
Der Erfindung liegt die Aufgäbe zugrunde, in einer virtuellen Speichereinrichtung mit einer Übersetzungsnebentabelle die Sicherheit
und die Arbeitsgeschwindigkeit zu erhöhen.
Diese Aufgabe wird erfindugsgemäß durch die im Kennzeichen des Hauptanspruches beschriebene Einrichtung gelöst.
Indem man eine Bezeichnung für jede Übersetzung in der Nebentabelle
speichert, sollen Fehler bei der Übersetzung virtueller in reale Adressen vermieden werden. Außerdem sollen Übersetzungsfehler,
die aus der Verwendung von mehr als einer Übersetzungstabelle resultieren, verhindert werden. Weiterhin sollen durch
die Erfindung Übersetzungsfehler verhindert werden, die auf Änderungen der Größe des Segment- und Seitenteiles der virtuellen
Adresse zurückzuführen sind und es soll derselbe Speicher durch virtuelle und reale Adressen adressiert werden können.
Die Erfindung gestattet die Verwendung von mehreren Sätzen von Übersetzungstabellen nebeneinander, ohne daß bei Übergang von
einem Satz zum anderen die in der Nebentabelle gespeicherten Übersetzungen gelöscht werden müßten.
Eine Ersparnis wird dadurch erzielt, daß die Einrichtungen zur
Erzeugung der erfindungsgemäßen Bezeichnung auch gleichzeitig dazu verwendet werden können, zwischen den verschiedenen Größen
409818/1052
PO 972 010
der Segment- und Seitenteile der virtuellen Adressen und zwischen
virtuellen und realen Adressen zu unterscheiden.
Ein Ausführungsbeispiel der Erfindung ist in den Zeichnungen dargestellt und wird anschließend näher beschrieben.
Es zeigen:
Fig. 1 ein vorgezogenes Format einer virtuellen Adresse,
Fig. 2 in einem Diagramm die übersetzung einer virtuellen
in eine reale Adresse,
Fig. 3 vorgezogene Formate für Eintragungen in Segment
tabellen und Seitentabellen,
Fig. 4 in einem Blockschema die Beziehung zwischen
dem Übersetzungsprozeß und Elementen eines Ausführungsbeispieles der Erfindung,
Fig. 5 ein vorgezogenes Format für Eintragungen in eine
Übersetzüngsnebentabelle,
Fign. 6a + 6b in einem Blockschema ein Ausführungsbeispiel
der Erfindung,
Fig. 7 in einem detaillierten Blockdiagramm die Schrittschaltung der Fig. 6,
Fig. 8 ein Signalablaufdiagramm des Ausführungsbeispieles
der Erfindung, und
Fig. 9 in einer Tabelle die Beziehung zwischen binärem
und Graycode, wie sie im Ausführungsbeispiel der Erfindung verwendet werden.
po 972 oio 409818/1052
Da die Erfindung hauptsächlich in der neuartigen strukturellen
Kombination und dem Betriebsverfahren bekannter Computerschaltungen
und Geräte und nicht in deren spezifischer detaillierter Struktur beruht, sind Struktur, Steuerung und Anordnung dieser bekannten
Schaltungen und Geräte in den Zeichnungen durch leicht verständliche
Blöcke und schematische Diagramme dargestellt, die nur die spezifischen Einzelheiten wiedergeben, die sich auf die vorliegende
Erfindung beziehen. Verschiedene Teile dieser Systeme wurden auch entsprechend verdichtet und vereinfacht, um die Darstellung
nicht unnötig zu verwirren und die erfindungswesentlichen Teile herauszustreichen.
In Fig. 1 ist ein vorgezogenes Format für eine virtuelle Adresse gezeigt. Die 24 Bit umfassende virtuelle Adresse ist in drei
Felder unterteilt: ein Segmentfeld (SX) , welches die Bits 8 bis 15 belegt, ein Seitenfeld (PX), welches die Bits 16 bis 20 belegt
und ein Bytefeld, welches die Bits 21 bis 31 belegt. Mit diesem Format besteht der virtuelle Speicher aus 256 Segmenten,
von denen jedes bis zu 32 Seiten umfaßt und jede Seite enthält bis zu 2048 Bytes. Die Felddefinitionen sind natürlich willkürlich.
Das Adreßfeld kann z.B. auch so definiert v/erden, daß SX die Bits 8 bis 11, PX die Bits 12 bis 19 und das Bytefeld die
Bits 20 bis 31 belegt. Bei einem solchen Format umfaßt der virtuelle Speicher 16 Segmente mit je bis zu 256 Seiten und jede
Seite umfaßt bis zu 4096 Bytes. Die Bits 0 bis 7 werden in diesem
vorgezogenen Ausführungsbeispiel nicht benutzt, können jedoch auf Wunsch zur Erweiterung der virtuellen Adresse in einem
32 Bit umfassenden Adreßsystem benutzt werden. Ein solches System hat über 4 Milliarden Bytes eines virtuellen Speichers. Das
Segmentfeld dient als Index für eine Eintragung in der Segmenttabelle. Die Eintragung in der .Segmenttabelle enthält einen Wert,
der die Basisadresse der Seitentabelle enthält, die zu dem durch das Segmentfeld bezeichneten Segment gehört. Das Seitenfeld dient
als Index für eine Eintragung in der Seitentabelle. Die Eintra-
4098 18/1052
PO 972 010
gung in der Seitentabelle enthält einen Wert, der die echte, d.h.
reale Adresse der Seite darstellt. Das Bytefeld wird bei der Übersetzung nicht verändert und wird an die übersetzte Seitenadresse
angefügt, wodurch man die reale Hauptspeicheradresse erhält.
Der übersetzungsprozeß wird weiter im Zusammenhang mit Fig» 2
erklärt. Der Übersetzungsprozeß ist ein zweistufiges Tabellensuchverfahren
auf den Segment- und Seitentabellen vom Hauptspeicher. Der Segmentadreßteil (SX) der virtuellen Adresse wird
zu einer Segmenttabellenursprungsadresse (STO) addiert, die in einem Steuerregister 2 gespeichert ist, um eine Segmenttabelleneintragung
4 aus der Segmenttabelle 6 zu erhalten (Steuerregister 2 enthält im allgemeinen auch die Länge [LTH] der Segmenttabelle),
Diese Segmenttabelleneintragung enthält eine Seitentabellenursprungsadresse (PTO), die zum Seitenadreßteil (PX) der virtuellen
Adresse addiert wird und die Adresse einer Seitentabelleneintragung 8 in der Seitentabelle 10 liefert. Die Seitentabelleneintragung
8 enthält eine reale Adresse, die mit dem Byteteil der virtuellen Adresse verkettet wird und die reale Adresse eines
Datenbyte bildet. Um die Wiederholung dieses Übersetzungsprozesses für jeden Speicherbezug zu vermeiden, wird zum Speichern
des SX-Teiles der virtuellen Adresse zusammen mit der entsprechenden
aus der Seitentabelle für dieses Segment ausgelesenen realen Adresse ein eigener Zuordnungsspeicher, im folgenden auch
Übersetzungsnebentabelle genannt, vorgesehen. Der Zuordnungs-speicher wird kontinuierlich auf den neuesten Stand gebracht,
so daß er die virtuelle und die reale Seitenadresse der zuletzt
bezogenen Seiten enthält. Am Anfang einer übersetzung wird daher die zu übersetzende virtuelle Seitenadresse mit dem Inhalt
des Zuordnungsspeichers daraufhin verglichen, ob die reale Adresse bereits verfügbar ist. vlenn sie schon verfügbar ist, liefert
der Zuordnungsspeicher die reale Seitenadresse, die dann mit dem Byteteil der virtuellen Adresse verknüpft wird und die reale
PO 972 οίο 409818/1052
Hauptspeicheradresse bildet. Wenn die zu übersetzende virtuelle Adresse nicht im Zuordnungsspeicher gefunden wird, wird sie, wie
oben beschrieben, übersetzt und zusammen mit ihrer realen Adresse in den Zuordnungsspeicher gesetzt.
Fig. 3 zeigt ein Ausführungsbeispiel für die Segmenttabelleneintragungen
4 und die Seitentabelleneintragungen 8. Für jeden virtuellen Adreßraum gibt es eine Segmenttabelle mit entsprechenden
Seitentabellen. Ursprung und Länge der aktiven Segmenttabelle sind im Steuerregister (Fig. 2) enthalten. Die Segmenttabelleneintragung
4 enthält zu Kontrollzwecken ein Längenfeld (LTH) in
den Bits 0 bis 3, welches die Länge der Seitentabelle in Schritten angibt, die gleich einem Sechzehntel der Maximalgröße sind. Bit
31, das I-Bit gibt die Gültigkeit der in der Segmenttabelleneintragung
enthaltenen Information an. Wenn das I-Bit auf 1 steht, kann die Eintragung nicht für Übersetzungen benutzt werden.
Die Seitentabelleneintragung 8 enthält in den Bitpositionen 0 bis 12 die 13 werthohen Bits der realen Speicheradresse. (Die
wertniederen realen Bits 20-31 der virtuellen Speicheradresse werden mit den werthohen Bits aus der Seitentabelle verbunden und
liefern die Byteverschiebung innerhalb der Seite). Zu jeder Seitentabelleneintragung
gehört ebenfalls ein I-Bit (Ungültigkeit). Wenn das I-Bit auf 1 steht, kann die Eintragung nicht für Übersetzungen
benutzt werden.
übersetzungsnebentabelle
Um eine Adresse nicht jedesmal bei Adressierung des Speichers übersetzen zu müssen, sind laufende übersetzung virtueller Adressen
in reale Adressen in einer sogenannten übersetzungsnebentabelle, im folgenden auch DLAT genannt, enthalten. Nach Darstellung
in Fig. 4 fragt die von der Zentraleinheit gelieferte virtuelle Adresse 12 gleichzeitig die übersetzungsnebentabelle 14 und einen
Zuordnungsspeicher 16 für den Puffer des Speichers ab. Die DLAT 14 enthält kürzlich übersetzte virtuelle Adressen zusammen mit den
zugehörigen realen Adressen, während der PufferZuordnungsspeicher
po 97201c 409818/1052
16 die realen Adressen von Daten enthält, die in den Hochgeschwindigkeitspuffer
eingegeben wurden. Die in der DLAT und im Zuordnung sspeicher enthaltenen Tabellen können in jeder bekannten
Art angeordnet und adressiert v/erden. So kann z.B. jeder ein Assoziativspeicher oder ein Speicher sein, der durch in der virtuellen
Adresse enthaltene Bits adressiert wird, wobei die DlAT durch Bits adressiert wird, die vom virtuellen Teil der Adresse
kommen und der Zuordnungsspeicher durch Bits adressiert wird, die vom realen Teil der Adresse kommen.
Um zu überprüfen, ob die DLAT richtig adressiert wurde, wird ein Teil der virtuellen Adresse aus dem virtuellen Adreßteil der
DLAT ausgelesen und mit dem entsprechenden Teil der von der Zentraleinheit gelieferten virtuellen Adresse 12 im Vergleicher 18
verglichen. Om sicherzustellen, daß die in den Hochgeschwindigkeitspuffer eingegebenen Daten auch die von der virtuellen Adresse
12 angeforderten Daten sind, wird in ähnlicher Weise die aus der DLAT 14 ausgelesene reale Adresse mit der aus dem Pufferzuordnungsspeicher
16 ausgelesenen realen Adresse im Vergleicher 20 verglichen.
Die Ausgangssignale der Vergleicher 18 und 20 werden einem UND-Glied
22 zugeführt, welches auf der Leitung 24 ein Ausgangssignal erzeugt, wenn die angeforderten Daten im Hochgeschwindigkeitspuffer
stehen. Entsprechende Teile der virtuellen und der realen Adresse werden über die Leitungen 26 und 28 dem Pufferspeicher-Adreßregister
30 so zugeführt, daß die Daten vom Puffer adressiert werden können. Wenn eine der virtuellen Adresse 12 entsprechende
reale Adresse in der DLAT 14 enthalten ist, die Daten jedoch nicht im Hochgeschwindigkeitspuffer stehen, veranlaßt das Ausgangssignal
des Vergleichers 20 nach Inversion durch den Inverter 32 zusammen mit dem Ausgangssignal des Vergleichers 18 das UND-Glied
34 zur Erzeugung eines Signales auf der Leitung 36, welches anzeigt, daß auf den Hauptspeicher Bezug genommen werden muß. Wenn
die virtuelle Adresse 12 nicht mit einer in der DLAT 14 enthaltenen
virtuellen Adresse übereinstimmt, veranlaßt das Ausgangssignal
PO 972 οίο 409818/1052
des Vergleichers 18 die ÜND-I-Inverterschaltung 38 zur Erzeugung
eines Signales auf der Leitung 40, welches dem System anzeigt, daß der oben im Zusammenhang mit Fig. 2 beschriebene
übersetzungsprozeß eingeleitet werden muß. Allgemein bekannt und daher nicht näher beschrieben ist die Art, wie mit dem Inhalt
des Pufferspeicher-Adreßregisters 30 und dem Signal auf der Leitung
24 ein Pufferzugriffszyklus sowie mit den Signalen auf den
Leitungen 36 und 40 eine entsprechende Reaktion des Systemes eingeleitet werden kann.
ilach Darstellung iri Fig. 6 enthält die Über Setzungsnebentabelle
46 insgesamt 64 Wörter, von denen jedes zwei virtuelle Adreßeintragungen zusammen mit den entsprechenden realen Adreßeintragungen
umfaßt. Einzelheiten des Formates der DLAT-Eintragung sind in Fig. 5 gezeigt. Ein 12 Bit großer Teil einer jeder Eintragung
umfaßt die realen Adreßbits, die die übersetzung des
SX-Teiles und des PX-Teiles dieser virtuellen Adresse bilden.
Außerdem enthält jede DLAT-Eintragung 8 virtuelle Adreßbits, ein Paritätsbit P, sechs Speicherschutzbits und drei Bits
mit der Bezeichnung ID, die nach der vorliegenden Erfindung erzeugt und anschließend beschrieben werden.
Die in der DLAT 46 gespeicherten realen Adreßbits sind nicht die realen Adreßbits, die man durch den beschriebenen Übersetzungsprozeß
erhält, sondern leicht veränderte Versionen dieser Adressen, die man durch einen "Vorsatz" genannten Prozeß erhält. Das Vorsetzen
oder der Vorsatz ist ein bei der Mehrfachverarbeitung benutztes Verfahren, welches mehr als einem Prozessor den Zugriff
zu einem bestimmten Speicher gestattet, ohne daß dadurch die Zustandsinformation
eines jeden anderen Prozessors beeinflußt wird» Die Zustandsinformation ist im allgemeinen in einem bestimmten
Speicherteil gespeichert. Das Vorsetzen besteht aus der Veränderung von Adressen um 1 Bit, wodurch vermieden wird, daß die
Daten eines Prozessor eine Zustandsinformation von einem anderen
409818/1052
- IO -
Prozessor zerstören. Das vorliegende Ausführungsbeispiel bezieht
sich auf eine Mehrfachverarbeitungsmaschine, in der das Vorsetzen so gehandhabt wird, daß man die Daten im Hauptspeicher durch
Adressen mit Vorsatz erhält. Alle echten Adressen erhalten daher durch die Vorsatzschaltung 45 einen Vorsatz auf Daten, die von
einem Vorsatzregister 47 empfangen werden, bevor sie in die DLAT 14 eingegeben werden, so daß absolute Adressen von der DLAT zum
Vergleich mit den im PufferZuordnungsspeicher 16 enthaltenen
absoluten Adressen verfügbar sind. Das Vorsetzen ist eine allgemein
bekannte Technik und wird daher nicht näher beschrieben.
In der DLAT sind Speicherschutzschlüssel enthalten, mit denen festgestellt werden kann, ob der Zugriff zu Puffereintragungen
zulässig ist, ohne daß erst der Schutzschlüssel mit der Prozessorspeicherschutzeinrichtung
geprüft werden muß. Wenn also der richtige Speicherschutzschlüssel in der DLAT steht, wird beim Zugriff
keine Zeit verloren. Der Speicherschutz bildet keinen Teil der Erfindung und wird daher nicht näher beschrieben.
Zu jeder DLAT-Eintragung gehören drei codierte Bezeichnungsbits,
die sogenannten ID-Bits. Sie dienen hauptsächlich der Bezeichnung
der Übersetzungstabellen, die für die jeweilige DLAT-Eintragung Anwendung finden. Sie geben jedoch auch die Größe der Seiten- und
Segmentteile der virtuellen Adresse an. Die ID-Bits v/erden durch
einen sogenannten STO-Stapel 49 (STOK ID Generator) erzeugt. Der Stapel erzeugt ID-Bits in den in Fig. 9 gezeigten Kombinationen.
Von den dargestellten Kombinationen stellen O1O bis 111 verschiedene Kombinationen von ursprünglicher Segmenttabelle
und der Seiten- und Segmentgrößen dar. Wenn einer dieser sechs ID-Bezeichner erzeugt wird, werden die ID-Bits vom STOK ID-Generator
49 der DLAT 46 zugeführt, wo sie mit jeder neuen in die DLAT 46 eingelesenen Übersetzung eingeschoben und in den Ver-
po 972 οίο 4098 18/10 52
gleichern 52 und 54 mit dem Bezeichner einer jeder aus der DLAT
ausgelesenen übersetzung verglichen werden. Ttfenn der aus der
DLAT 46 ausgelesene Bezeichner ID mit dem durch den STOK ID-Generator
49 erzeugten Bezeichner identisch ist, entsprechen ursprüngliche Segmenttabelle, Seitengröße und Segmentgröße, die in der
virtuellen Adresse der DLAT-Übersetzung verwendet wurden, der ursprünglichen Segmenttabelle, Seitengröße und Segmentgröße, die
in der jetzt die DLAT abfragenden virtuellen Adresse verwendet wurden. Dieser erfolgreiche DLAT-Vergleich der ID-Bits gestattet
die Verwendung der in der DLAT gespeicherten Übersetzung zur Speicherabfrage. Wenn vom STOK ID-Generator 49 ein anderer Bezeichner
geliefert wird, als aus der DLAT 46 ausgelesen wird, heißt das, daß ursprüngliche Segraenttabelle, Seitengröße oder
Segmentgröße der die DLAT abfragenden virtuellen Adresse nicht mit der übersetzung in der DLAT übereinstimmen. In diesem Fall
wurde die falsche Adresse aufgrund der Abfrage aus dem STO-Stapel 49 ausgelesen. Wenn dieser Fall eintritt, erfolgt kein erfolgreicher
DLAT-Vergleich und dadurch wird verhindert, daß die in der DLAT gespeicherte Übersetzung zur Abfrage des Speichers
benutzt wird. Stattdessen wird auf den Übersetzungstabellensatz zurückgegriffen, um eine neue übersetzung der virtuellen Adresse
in eine reale Adresse vorzunehmen. Wenn diese neue Übersetzung erzeugt wird, wird sie in die Nebentabelle 46 mit einem durch
den Stapel 49 gelieferten neuen Bezeichner eingeschoben.
Die Eingabe zum STOK ID-Generator 49 ist die Ausgabe des Wortauswahldecodierers
57, der eines von sechs möglichen im STOK-Speicher 55 gespeicherten Wörtern ausv/ählt. Somit umfaßt die Eingabe zum
STOK-Generator 49 sechs Datenbits, die bis auf eines alle binäre Hüllen sind. Das verbleibende Bit ist eine binäre Eins, deren
Bitposition von einem Mal zum anderen abhängig von dem im STOK
Speicher 55 adressierten Wort wechselt. Jedes Wort des STOK-Speichers 55 speichert die Bits 8 bis 25 der Adresse der ursprünglichen
Segmenttabelle, wobei ein Bit die Seitengröße und ein Bit die Segmentgröße, beide gespeichert im .STOK-Speicher von
den Steuerregistern, angibt, wenn die jeweilige Kombination von
no 972 οίο 4098 18/1052
ursprünglicher Segmenttabelle, Seitengröße und Segmentgröße benutzt wurden. Die Ausgabe des STOK ID-Generators ist also
tatsächlich codierte Information über die Lage im STOK-Speicher des die letzte Kombination von ursprünglicher Segmenttabelle,
Seitengröße und Segmentgröße enthaltenden Wortes, das den Steuerregistern 51 zugeführt wurde.
Ein Zeiger 59 ist die Ausgabe der Schrittschaltung (Fig. 7) , die drei Datenbits im Graycode an den Wortwahldecodierer 57 so
liefert, daß dieser adressiert werden kann, um Zugriff zu jedem der sechs Wörter des STOK-Speichers in der in Fig. 9 gezeigten
Reihenfolge zu nehmen. Einzelheiten dieser Schrittschaltung sind
in Fig. 7 gezeigt und werden später genauer beschrieben. Im Augenblick genügt die Feststellung, daß die Schrittschaltung
frei läuft, an jedem Punkt jedoch durch ein Signal von einer Zeigerhalteverriegelung 61 gestoppt werden kann, die ein Schaltsignal
an den Zeiger 59 liefert und ihn an dem Wort stoppt, welches die Bits für die letzte benutzte virtuelle Adresse enthält.
Ein Eingangssignal zur Zeigerhalteverriegelung 61 ist das Ausgangssignal
einer Vergleicherschaltung 53, die die Ausgabe des STOK-Speichers 55 mit den im Steuerregister 51 gespeicherten
Daten vergleicht. Wenn sie übereinstimmen, sendet die Vergleicherschaltung ein Signal an die Zeigerhalteverriegelung 61 und verriegelt
den Zeiger 59 dadurch so, daß er den Hinweis auf die Adresse der verglichenen Bits festhält. Solange sich die verwendete
Seitengröße, Segmentgröße oder Segmenttabellenursprung in den virtuellen, den Speicher abfragenden Adressen nicht ändert,
wird das Ausgangssignal der Verriegelung 61 auf einem hohen Signalpegel und damit die Ausgabe des Zeigers festgehalten.
Ändern sich verwendete ursprüngliche Segmenttabelle, Seitengröße und Segmentgröße in einer bestimmten virtuellen Adresse, wird die
Zeigerhalteverriegelung 61 durch den Freigabeimpuls LR entriegelt, der den Zeiger 59 freigibt und durch den Zähler 63 so weiterschalten
läßt, daß die Ausgabe des Wortauswahldecodierers 57 Wörter des
409818/1052
PO 972 O10
STOK-Speichers 55 in vorgewählter Reihenfolge adressiert. Bei der Adressierung eines jeden Wortes wird es in die Vergleicherschaltung
53 ausgelesen und mit den Daten in den Steuerregistern verglichen. Dieser Vorgang läuft weiter, bis ein erfolgreicher Vergleich
die Identität der Daten in den Registern 51 mit denen in einer Wortzeile des STOK-Speichers 55 gespeicherten Daten anzeigt.
Die Vergleicherschaltung verriegelt dann die Zeigerhalteverriegelung 61 und stoppt dadurch den Zeiger an der Adresse der Wortzeile,
die zum Identitätsvergleich führte. Die Adresse des Wortes, welches übereinstimmt, wird dann dem STOK ID-Generator 49 zugeführt
und an die DLAT 46 drei neue codierte ID-Bits geliefert.
Wenn zwischen den im STOK-Speicher 55 und den in den Steuerregistern
51 gespeicherten Daten kein identischer Vergleich auftritt, nachdem die Ausgabe der Schrittschaltung die STOK-Anordnung
55 einmal durch alle Wörter hat laufen lassen, wird die Schrittschaltung durch die Zeigerhalteverriegelung 61 gestoppt.
Die Ausgabe des Zählers 63 wird dann durch Entfernung des Zählerleitsignales GC zum UND-Glied 65 abgeleitet. Stattdessen
wird die Ausgabe eines Register 67, welches die Graycodewerte für die Beauftragung der Adresse für das Wort, welches die älteste
Eintragung für die STOK-Anordnung enthält, durch das UND-Glied 69 zum Zeiger 59 von einem Zähler 67 geleitet, der auch FIFO-Zähler
genannt wird. Der Zeiger 59 adressiert daher den Wortauswahldecodierer 57 und beauftragt ihn mit der Erzeugung der
Adresse der ältesten Eintragung im STOK-Speicher 55. Die Daten in den Steuerregistern 51 werden dann in dieses Wort gespeichert
und ausgelesen, was zu einem identischen Vergleichersignal vom Vergleicher 53 führt, welches die Zeigerhalteverriegelung
61 verriegelt und den Zeiger 59 auf der Adresse der eingegebenen Wörter hält. Ein den FIFO-Zähler 67 festhaltendes
HF-Signal wird dann von diesem Zähler weggenommen, so daß er einen Schritt zur nächsten Graycodezahl in der in Fig. 9 gezeigten Reihenfolge
weiterlaufen kann, wodurch die Adresse gespeichert wird, an der die nächste Eintragung vorzunehmen ist. Wenn dieser Vorgang einmal abgeschlossen ist, wird das FIFO-HF-Leitsignal weg-
409818/1052
PO 972 010
genommen und der STOK ID-Generator 49 liefert eine ID-Anzeige,
welches die Adresse der Eintragung in die DLAT 46 angibt.
Wenn die an einer bestimmten Adresse im STOK-Speicher 55 gespeicherten
Daten in der oben beschriebenen Weise verändert werden, müssen alle DLAT-Eintragungen, die sich auf diese Adresse beziehen,
aus der DLAT 46 herausgenommen werden. Wenn also der Bezeichner ID für diese Adresse zuerst der DLAT zugeführt wird, wird er
in den Vergleieherschaltungen 52 mit den ID's in jeder in der
DLAT 46 gespeicherten Eintragung verglichen. Die Eintragungen mit demselben ID werden dann dadurch ungültig gemacht, daß man
die ID-Bits durch 0OO ersetzt, so daß sie unmöglich mit irgendeinem
vom STOK-Speicher gelieferten ID übereinstimmen und so eine fehlerhafte DLAT-übereinstimmung anzeigen können. Somit
braucht nur noch eine der acht möglichen dreistelligen ID-Kombinationen
erklärt zu werden. Diese ID-Kombination wird benutzt, wenn
der Hauptspeicher durch reale Adressen und nicht durch virtuelle Adressen abgefragt wird. Wenn eine reale Adresse verwendet wird,
geht der Speicher in die dynamische Adressenübersetzung DAT oder den echten Betrieb und liefert einen Impuls an das Schaltglied 71,
welches die adressierten Daten von der Eingabe des STOK ID-Generators
49 ableitet, so daß dieser die Zahlenkomblnation OO1 erzeugt
.
Einzelheiten der STOK-Schrittschaltung werden im Zusammenhang mit den Fign. 6 und 7 erklärt. Der Zähler 69, der Zeiger 59 und
der FIFO-Zähler 67 enthalten jeweils drei UHD/ODER-Inverterschaltungen.
Im Diagramm werden die FIFO- und die Zählerverriegelungen als Verriegelungen bezeichnet, v/ährend die Zeigerschaltungen
als Trigger bezeichnet werden. Tatsächlich handelt es sich überall um identische UND/ODER-Inverterverriegelungen, die sich
lediglich dadurch unterscheiden, daß an den Zähler und FIFO Taktimpulse geliefert werden, die zu einer anderen Zeit auftreten
als die an den Trigger gesendeten Taktimpulse. Die Ausgabe
PO 972 οίο 409818/1052
der Zeigertrigger liefert drei Bits eines Graycode parallel an den Wortwahldecodierer 57. Jede der Verriegelungen im. Zähler und
in der FIFO-Schaltung empfängt einen Taktverriegelungsimpuls LC
während die Verriegelungen im Zeiger 59 einen Taktimpuls empfangen, der zeitlich später auftritt und mit Triggerschaltung TC
bezeichnet ist. Entsprechend geht der Zeigerhaiteimpuls HP auf
jede der Verriegelungsschaltungen im Zeiger 59 und der FIFO-Halteimpuls
HF wird jeder Verriegelung in der FIFO-Schaltung zugeführt. In der Schrittschaltung befinden sich drei separate
Sätze von UND-Gliedern 65 bis 69, von denen jeder eine Triggerschaltung
anstelle der schematisch in Fig. 6 dargestellten einen einzigen Schaltung adressiert. Die dargestellte Schaltung liefert
die Graycodeausgabe in der in Fig. 9 gezeigten Reihenfolge, wenn sie freigegeben wird.
Im allgemeinen treten die Adressen von für ein gegebenes Programm benutzten Tabelleneintragungen in einer geordneten Reihenfolge
auf. Um die überlagerung von in der DLAT gehaltenen Adressen aufgrund
der im allgemeinen regelmäßigen Reihenfolge dieser Tabelleneintragungsadressen so klein wie möglich zu halten, werden die
zur Adressierung der DLAT verwendeten virtuellen Adreßbits (8 bis 20) mit den aktiven Bezeichnungsbits gemäß nachfolgender
Aufstellung zur Erzeung einer 6 Bit großen DLAT-Adresse durch
Exklusiv-ODER-Operationen gemischt, die in einer deterministischen
Art willkürlich festgelegt ist
15 | PO 972 010 | V | 9 | V | 8 | = | 1 | 8/1052 |
16 | V | 14 | V | ID2 | = | 2 | ||
17 | ¥ | 13 | V | IDl | 40981 | 3 | ||
18 | V | 12 | ¥ | ID0 | 4 | |||
19 | V | 11 | 5 | |||||
2O | V | 10 | 6 | |||||
— Xb —
Die in die DLAT übernommenden virtuellen Adreßbits sind für dieses
Ausführungsbeispiel die Bits 8 bis 15. Um eine virtuelle Adresse zu übersetzen, wird die DLAT an einer von 64 Adressen
abgefragt und die beiden Eintragungen ausgewählt. Die virtuellen Bits 8 bis 15 in der von der Zentraleinheit gelieferten Adresse
werden mit den aus der DLAT ausgelesenen werthohen virtuellen Bits verglichen und der Bezeichner ID mit dem laufend aktiven
ID verglichen. Wenn eine Übereinstimmung vorliegt, erhält man die übersetzte Adresse und den Schutzschlüssel von dem realen
Adressenfeld und dem Schlüsselfeld. Wenn die Schutzbestimmungen nicht verletzt wurden, wird die reale Adresse mit dem Inhalt des
Pufferzuordnungsspeichers 16 verglichen, um festzustellen, ob sie dort bereits steht. Wenn die Daten dieser Adresse nicht im
Puffer 77 stehen, wird der Hauptspeicher angefragt.
Wenn sich in der DLAT keine Übersetzung findet, nimmt das System
die übersetzung vor (siehe Fig. 2) und setzt sie in die DLAT.
Weitere Einzelheiten des Ausführungsbeispieles der Erfindung sind in Fig. 6b gezeigt. Die Bits 8 bis 31 der von der Zentraleinheit
gelieferten virtuellen Adresse werden einer Speicheradreß-Sammelleitung 44 zur Verteilung innerhalb des Datenverarbeitungssystems
zugeleitet. Mit den Bits 8 bis 2O wird die Übersetzungsnebentabelle
46 adressiert, die die virtuellen Adreßbits 8 bis 15 enthält. Die von der Zentraleinheit gelieferten Bits 8 bis 15 der
virtuellen Adresse werden ebenfalls einem Vergleicher 52 zugeführt. Wenn dieser Eingangssignale empfängt, die miteinander
übereinstimmen, erzeugt er ein Signal auf der Leitung 54, welches eine DLAT-Übereinstimmung anzeigt. Gleichzeitig mit dem Zugriff
zur DLAT wird auch der Pufferzuordnungsspeicher 56 durch die Bits 21 bis 26 der von der Zentraleinheit gelieferten Adresse adressiert.
Diese Bits der virtuellen Adresse entsprechen echten Hauptspeicherstellen. Daher paßt ihre Verwendung bei der Adressierung
des Zuordnungsspeichers 56 zur realen Adreßorientierung des Pufferspeichers. Im Ausführungsbeispiel enthält der Pufferzuordnungsspeicher
64 Wörter, von denen jedes vier oder acht
PO 972 οίο 409818/1052
reale Adressen abhängig von der Puffergröße enthält. Die Bits bis 26 adressieren daher vier bzw. acht reale Adressen. Die Bits
21 bis 28 sind an die drei Bits angehängt, welche eine der vier oder acht Pufferzuordnungsspeicherspalten bezeichnen, und im Pufferspeicheradreßregister
68 enthalten sind, und werden zur Adressierung eines von 1024 oder 2048 Doppelwörtern benutzt, die zur
übertragung an die Zentraleinheit im Hochgeschwindigkeitspuffer gespeichert sind. Die Bits 29 bis 31 (die wertniederen realen
Adreßbits) der von der Zentraleinheit gelieferten virtuellen Adresse brauchen zur Adressierung des Hochgeschwindigkeitspuffers
nicht verwendet zu werden, v/eil im Ausführungsbeispiel jedes Doppelwort im Puffer acht Datenbytes enthält, von denen jedes aus
acht Datenbits und einem Paritätsbit besteht. Die Zentraleinheit benutzt die drei wertniederen Bits (Bit 29 bis 31) zur Auswahl
eines der acht aus dem Hochgeschwindigkeitspuffer gelesenen Bytes.
Wenn weder der Vergleicher 58 noch der Vergleicher 60 (keine Übereinstimmung im Pufferzuordnungsspeicher - Daten nicht im
Hochgeschwindigkeitspuffer) oder der Vergleicher 52 (keine DLAT-übereinstimmung
- übersetzung noch nicht verfügbar) keine Übereinstimmung festgestellt hat, läuft das Verfahren in der im Zusammenhang
mit Fig. 4 beschriebenen Art weiter.
Fig. 8 enthält ein Ablaufdiagramm für die Bestimmung einer bestimmten
logischen oder virtuellen Adresse nach der oben beschriebenen Erfindung.
Obwohl in der obigen Beschreibung verschiedene Parameter entweder explizit oder inplizit angegeben wurden, haben diese
keinerlei einschränkenden Charakter. Ebenso brauchen die Ausdrücke "virtueller Speicher" und "virtuelle Adresse" nicht auf
hier gegebenen Definitionen beschränkt zu werden. Wesentlich ist die Umwandlung einer virtuellen Adresse in eine reale Adresse,
bevor sie zur Speicheradressierung benutzt wird. Pufferzugriffe
brauchen nicht unbedingt verzögert zu werden, bis die Adreßvergleiche
abgeschlossen sind. Der Zugriff zum Puffer kann z.B.
409818/1052
durch die virtuelle Adresse eingeleitet werden und dann abhängig vom Ergebnis des Adreßvergleiches die Systembenutzung der aus dem
Puffer ausgelesenen Daten später im Arbeitszyklus verhindert werden. Auch in einem solchen System ist der Puffer in dem Sinne
auf reale Adressen ausgerichtet, daß sein Pufferzuordnungsspeicher reale Adressen enthält.
PO 972 οίο 409818/1052
Claims (9)
- PATENTANSPRÜCHEVirtuelle Speichereinrichtung mit Übersetzungstabellen zur übersetzung von virtuellen Adressen in reale Adressen und einer Übersetzungsnebentabelle zur Speicherung der aktuellen, virtuellen und zugehörigen realen Adressen, dadurch gekennzeichnet, daß für jeden von mehreren verwendeten Sätzen von Übersetzungstabellen (6, 10) ein Bezeichner (ID) festgelegt und zusammen mit den aktuellen Adressen in der Übersetzungsnebentabelle (DLAT) gespeichert wird,wobei bei einem Zugriff zur Nebentabelle dieser Bezeichner mit dem zu der zugreifenden virtuellen Adresse gehörenden Bezeichner verglichen wird (52, Fig. 6b).
- 2. Einrichtung nach Anspruch 1, wobei die virtuelle Adresse einen Segmentteil und einen Seitenteil enthält, dadurch gekennzeichnet, daß der Bezeichner (ID) neben dem aktiven Satz Übersetzungstabellen auch die Größe des Segment- und des Seitenteiles der virtuellen Adresse angibt.
- 3. Einrichtung nach Anspruch 2, gekennzeichnet durch ein Steuerregister (51) zur Speicherung von Steuerdaten über den Ursprung (STO) der aktiven Segmenttabelle und die Größe des Segment- und des Seitenteiles der virtuellen Adresse sowie durch einen Speicher (55) zur Speicherung der Inhalte des Steuerregisters für die verschiedenen Sätze von Übersetzungstabellen.
- 4. Einrichtung nach Anspruch 3, gekennzeichnet durch einen Vergleicher (53) zum Vergleich der aus dem Speicher (55) ausgelesenen Daten mit den gerade im Steuerregister (51) stehenden aktuellen Steuerdaten und durch eine von diesem Vergleicher gesteuerte Sucheinrichtung (Fig. 7) zum Absuchen des Speichers (55) zum Auffinden der aktuellen · Steuerdaten.409818/1052PO 972 O1O- 2O -
- 5. Einrichtung nach Anspruch 4, gekennzeichnet durch einen Wortauswahldecodierer (57) zur Ansteuerung des Speichers (55), welcher ein im Graycode codiertes Adressensignal empfängt und eine Adresse "1 aus N" abgibt, sowie durch einen ID-Generator (49), welcher aus der Adresse "1 aus N" ein codiertes Signal zur Weiterleitung an die Nebentabelle (46) und an den, an den Ausgang der Nebentabelle angeschlossenen Vergleicher (52) erzeugt.
- 6. Einrichtung nach Anspruch 5, dadurch gekennzeichnet, daß der ID-Generator (59) den Bezeichner (ID) auch einem Mischcodierer (Fig. 6b) zuführt, der aus den virtuellen Adressenbits (8-20) und den Bezeichnerbits (0-2) eine Adresse (0-6) zur Ansteuerung der Nebentabelle (46) erzeugt.
- 7. Einrichtung nach Anspruch 5, dadurch gekennzeichnet, daß die Sucheinrichtung (Fig. 7) folgende aus Verriegelungsschaltungen aufgebaute Einrichtungen aufweist: einen Zähler (67), einen Zeiger (59) und einen FIFO-Zähler (67).
- 8. Einrichtung nach Anspruch 1, dadurch gekennzeichnet, daß bei Verwendung von realen Adressen zur Adressierung des Hauptspeichers ein besonderer Bezeichner (001, Fig. 9) verwendet wird.
- 9. Einrichtung nach Anspruch 1, dadurch gekennzeichnet, daß Eintragungen in der Nebentabelle (46) dadurch ungültig gemacht werden, daß darin ein besonderer Bezeichner (000, Fig. 9) gespeichert wird.po 972 οίο 40 98 18/ 10 52
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US29819072A | 1972-10-17 | 1972-10-17 | |
US29810072A | 1972-10-17 | 1972-10-17 |
Publications (3)
Publication Number | Publication Date |
---|---|
DE2346525A1 true DE2346525A1 (de) | 1974-05-02 |
DE2346525B2 DE2346525B2 (de) | 1974-10-31 |
DE2346525C3 DE2346525C3 (de) | 1979-10-11 |
Family
ID=26970474
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
DE2346525A Expired DE2346525C3 (de) | 1972-10-17 | 1973-09-15 | Virtuelle Speichereinrichtung |
Country Status (5)
Country | Link |
---|---|
US (1) | US3781808A (de) |
CA (1) | CA986230A (de) |
DE (1) | DE2346525C3 (de) |
FR (1) | FR2203539A5 (de) |
GB (1) | GB1438039A (de) |
Families Citing this family (58)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4010451A (en) * | 1972-10-03 | 1977-03-01 | National Research Development Corporation | Data structure processor |
US3846763A (en) * | 1974-01-04 | 1974-11-05 | Honeywell Inf Systems | Method and apparatus for automatic selection of translators in a data processing system |
JPS5615066B2 (de) * | 1974-06-13 | 1981-04-08 | ||
US3990051A (en) * | 1975-03-26 | 1976-11-02 | Honeywell Information Systems, Inc. | Memory steering in a data processing system |
US3976978A (en) * | 1975-03-26 | 1976-08-24 | Honeywell Information Systems, Inc. | Method of generating addresses to a paged memory |
US4044334A (en) * | 1975-06-19 | 1977-08-23 | Honeywell Information Systems, Inc. | Database instruction unload |
FR2348544A1 (fr) * | 1976-04-15 | 1977-11-10 | Honeywell Bull Soc Ind | Ensemble double de memoire associative |
JPS52130532A (en) * | 1976-04-27 | 1977-11-01 | Fujitsu Ltd | Address conversion system |
US4053948A (en) * | 1976-06-21 | 1977-10-11 | Ibm Corporation | Look aside array invalidation mechanism |
US4084230A (en) * | 1976-11-29 | 1978-04-11 | International Business Machines Corporation | Hybrid semiconductor memory with on-chip associative page addressing, page replacement and control |
US4128875A (en) * | 1976-12-16 | 1978-12-05 | Sperry Rand Corporation | Optional virtual memory system |
US4136385A (en) * | 1977-03-24 | 1979-01-23 | International Business Machines Corporation | Synonym control means for multiple virtual storage systems |
US4096573A (en) * | 1977-04-25 | 1978-06-20 | International Business Machines Corporation | DLAT Synonym control means for common portions of all address spaces |
US4241401A (en) * | 1977-12-19 | 1980-12-23 | Sperry Corporation | Virtual address translator utilizing interrupt level code |
US4218743A (en) * | 1978-07-17 | 1980-08-19 | International Business Machines Corporation | Address translation apparatus |
US4170039A (en) * | 1978-07-17 | 1979-10-02 | International Business Machines Corporation | Virtual address translation speed up technique |
US4215402A (en) * | 1978-10-23 | 1980-07-29 | International Business Machines Corporation | Hash index table hash generator apparatus |
GB2052117B (en) * | 1979-07-04 | 1982-10-20 | Int Computers Ltd | Data processing systems |
US4507781A (en) * | 1980-03-14 | 1985-03-26 | Ibm Corporation | Time domain multiple access broadcasting, multipoint, and conferencing communication apparatus and method |
US4399504A (en) * | 1980-10-06 | 1983-08-16 | International Business Machines Corporation | Method and means for the sharing of data resources in a multiprocessing, multiprogramming environment |
DE3107632A1 (de) * | 1981-02-27 | 1982-09-16 | Siemens AG, 1000 Berlin und 8000 München | Verfahren und schaltungsanordnung zur adressierung von adressumsetzungsspeichern |
US4513368A (en) * | 1981-05-22 | 1985-04-23 | Data General Corporation | Digital data processing system having object-based logical memory addressing and self-structuring modular memory |
JPS5853079A (ja) * | 1981-09-25 | 1983-03-29 | Fujitsu Ltd | Stoスタツク制御方式 |
WO1984002784A1 (en) * | 1982-12-30 | 1984-07-19 | Ibm | Virtual memory address translation mechanism with controlled data persistence |
JPS59203290A (ja) * | 1983-05-04 | 1984-11-17 | Hitachi Ltd | アドレス変換制御方式 |
US4731739A (en) * | 1983-08-29 | 1988-03-15 | Amdahl Corporation | Eviction control apparatus |
US4680700A (en) * | 1983-12-07 | 1987-07-14 | International Business Machines Corporation | Virtual memory address translation mechanism with combined hash address table and inverted page table |
US4674039A (en) * | 1984-10-09 | 1987-06-16 | Chouery Farid A | Method for determining whether a given value is included in an ordered table of values stored in a computer readable memory |
US5347636A (en) * | 1985-11-08 | 1994-09-13 | Nec Corporation | Data processor which efficiently accesses main memory and input/output devices |
US4751670A (en) * | 1986-03-31 | 1988-06-14 | Honeywell Inc. | High integrity digital processor architecture |
WO1988002148A1 (en) * | 1986-09-15 | 1988-03-24 | Motorola, Inc. | A transparent translation method and apparatus for use in a memory management unit |
US4797817A (en) * | 1986-12-10 | 1989-01-10 | Ncr Corporation | Single cycle store operations in a virtual memory |
US5226132A (en) * | 1988-09-30 | 1993-07-06 | Hitachi, Ltd. | Multiple virtual addressing using/comparing translation pairs of addresses comprising a space address and an origin address (sto) while using space registers as storage devices for a data processing system |
US5109496A (en) * | 1989-09-27 | 1992-04-28 | International Business Machines Corporation | Most recently used address translation system with least recently used (LRU) replacement |
US5584003A (en) * | 1990-03-29 | 1996-12-10 | Matsushita Electric Industrial Co., Ltd. | Control systems having an address conversion device for controlling a cache memory and a cache tag memory |
GB2251102B (en) * | 1990-12-21 | 1995-03-15 | Sun Microsystems Inc | Translation lookaside buffer |
JPH0540696A (ja) * | 1991-08-02 | 1993-02-19 | Canon Inc | 仮想記憶アドレス制御の方法及びその情報処理装置 |
US5410664A (en) * | 1993-03-31 | 1995-04-25 | Intel Corporation | RAM addressing apparatus with lower power consumption and less noise generation |
DE69434669T2 (de) * | 1993-10-29 | 2006-10-12 | Advanced Micro Devices, Inc., Sunnyvale | Spekulative Befehlswarteschlange für Befehle mit variabler Byteslänge |
US5574928A (en) * | 1993-10-29 | 1996-11-12 | Advanced Micro Devices, Inc. | Mixed integer/floating point processor core for a superscalar microprocessor with a plurality of operand buses for transferring operand segments |
EP0651321B1 (de) * | 1993-10-29 | 2001-11-14 | Advanced Micro Devices, Inc. | Superskalarmikroprozessoren |
US5630082A (en) * | 1993-10-29 | 1997-05-13 | Advanced Micro Devices, Inc. | Apparatus and method for instruction queue scanning |
US5689672A (en) * | 1993-10-29 | 1997-11-18 | Advanced Micro Devices, Inc. | Pre-decoded instruction cache and method therefor particularly suitable for variable byte-length instructions |
DE69427265T2 (de) * | 1993-10-29 | 2002-05-02 | Advanced Micro Devices Inc | Superskalarbefehlsdekoder |
US5878245A (en) | 1993-10-29 | 1999-03-02 | Advanced Micro Devices, Inc. | High performance load/store functional unit and data cache |
EP0651332B1 (de) | 1993-10-29 | 2001-07-18 | Advanced Micro Devices, Inc. | Linearadressierter Mikroprozessorcachespeicher |
US5559975A (en) | 1994-06-01 | 1996-09-24 | Advanced Micro Devices, Inc. | Program counter update mechanism |
US5737550A (en) * | 1995-03-28 | 1998-04-07 | Advanced Micro Devices, Inc. | Cache memory to processor bus interface and method thereof |
US6813699B1 (en) | 1995-06-02 | 2004-11-02 | Transmeta Corporation | Speculative address translation for processor using segmentation and optional paging |
US5796974A (en) * | 1995-11-07 | 1998-08-18 | Advanced Micro Devices, Inc. | Microcode patching apparatus and method |
US5724551A (en) * | 1996-05-23 | 1998-03-03 | International Business Machines Corporation | Method for managing I/O buffers in shared storage by structuring buffer table having entries include storage keys for controlling accesses to the buffers |
TW508494B (en) * | 2001-03-28 | 2002-11-01 | Shansun Technology Company | Data protection device capable of self-defining address arrangement sequence in protection area of storage device |
US6745313B2 (en) | 2002-01-09 | 2004-06-01 | International Business Machines Corporation | Absolute address bits kept in branch history table |
US7958374B2 (en) | 2002-03-19 | 2011-06-07 | Shansun Technology Company | Digital information protecting method and apparatus, and computer accessible recording medium |
US9081725B2 (en) | 2002-03-19 | 2015-07-14 | Shansun Technology Company | Digital information protecting method and apparatus, and computer accessible recording medium |
US9092359B2 (en) | 2012-06-14 | 2015-07-28 | International Business Machines Corporation | Identification and consolidation of page table entries |
US9811472B2 (en) * | 2012-06-14 | 2017-11-07 | International Business Machines Corporation | Radix table translation of memory |
US9753860B2 (en) | 2012-06-14 | 2017-09-05 | International Business Machines Corporation | Page table entry consolidation |
Family Cites Families (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US3569938A (en) * | 1967-12-20 | 1971-03-09 | Ibm | Storage manager |
US3611316A (en) * | 1969-12-24 | 1971-10-05 | Ibm | Indirect indexed searching and sorting |
US3685020A (en) * | 1970-05-25 | 1972-08-15 | Cogar Corp | Compound and multilevel memories |
FR10582E (fr) * | 1970-06-29 | 1909-07-30 | Paul Alexis Victor Lerolle | Jeu de serrures avec passe-partout |
US3670310A (en) * | 1970-09-16 | 1972-06-13 | Infodata Systems Inc | Method for information storage and retrieval |
US3701107A (en) * | 1970-10-01 | 1972-10-24 | Rca Corp | Computer with probability means to transfer pages from large memory to fast memory |
US3699533A (en) * | 1970-10-29 | 1972-10-17 | Rca Corp | Memory system including buffer memories |
US3701984A (en) * | 1971-03-05 | 1972-10-31 | Rca Corp | Memory subsystem array |
US3693165A (en) * | 1971-06-29 | 1972-09-19 | Ibm | Parallel addressing of a storage hierarchy in a data processing system using virtual addressing |
-
1972
- 1972-10-17 US US00298190A patent/US3781808A/en not_active Expired - Lifetime
-
1973
- 1973-07-30 GB GB3612372A patent/GB1438039A/en not_active Expired
- 1973-09-11 CA CA180,753A patent/CA986230A/en not_active Expired
- 1973-09-15 DE DE2346525A patent/DE2346525C3/de not_active Expired
- 1973-09-19 FR FR7334200A patent/FR2203539A5/fr not_active Expired
Also Published As
Publication number | Publication date |
---|---|
CA986230A (en) | 1976-03-23 |
GB1438039A (en) | 1976-06-03 |
DE2346525B2 (de) | 1974-10-31 |
US3781808A (en) | 1973-12-25 |
FR2203539A5 (de) | 1974-05-10 |
DE2346525C3 (de) | 1979-10-11 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
DE2346525A1 (de) | Virtuelle speichereinrichtung | |
DE2231146C3 (de) | Datenverarbeitungsanlage mit virtueller Adressierung | |
DE2131066C3 (de) | Anordnung zum Adressieren eines Tabellenspeichers | |
DE2726488C2 (de) | Adressenübersetzungseinrichtung | |
DE2235841C2 (de) | Datenverarbeitungsanlage mit Speichersteuerung für mindestens einen Prozessor und diesen zugeordneten Pufferspeichern | |
DE2227882C2 (de) | Virtuelle Speicheranordnung | |
DE4410060B4 (de) | Übersetzungsvorrichtung zum Umsetzen einer virtuellen Speicheradresse in eine physikalische Speicheradresse | |
DE3011552C2 (de) | ||
DE3151745C2 (de) | ||
DE2515696C2 (de) | Datenverarbeitungssystem | |
DE1499182C3 (de) | Datenspeichersystem | |
DE1815234A1 (de) | Adressiereinrichtung fuer ein Speichersystem mit einem Grossraumspeicher und einem schnellen Arbeitsspeicher | |
DE2360303C2 (de) | Datenverarbeitungsanlage mit Adreßübersetzung für Ein-/Ausgabekanäle | |
DE2551238C3 (de) | Datenkonzentrator | |
DE2154106A1 (de) | Arbeitsspeicherwerk | |
DE2302074A1 (de) | Speicherschutzanordnung in einem multiprozessorsystem | |
DE2523414A1 (de) | Hierarchische speicheranordnung | |
DE2339636A1 (de) | Programmsteuereinrichtung | |
DE2928488A1 (de) | Speicher-subsystem | |
DE1933685B2 (de) | Mehrere Programme simultan verarbeitende Datenverarbeitungsanlage | |
DE2801611A1 (de) | Verfahren und anordnung zum adressieren und speichern von daten in speichern mit wahlfreiem zugriff | |
DE1474062B2 (de) | Datenverarbeitungsanlage mit einer anzahl von pufferspeichern | |
DE3330845C2 (de) | ||
DE1449544A1 (de) | Datenverarbeitende Maschine mit ueberlappend abrufbarem Speicherwerk | |
DE2900586C2 (de) | Anordnung zum Decodieren von Codewörtern variabler Länge |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C3 | Grant after two publication steps (3rd publication) | ||
8339 | Ceased/non-payment of the annual fee |