DE2346525A1 - Virtuelle speichereinrichtung - Google Patents

Virtuelle speichereinrichtung

Info

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
Application number
DE19732346525
Other languages
English (en)
Other versions
DE2346525B2 (de
DE2346525C3 (de
Inventor
Thomas Paul Ahearn
Robert Stanley Capowski
Neal Taylor Christensen
Patrick Melvin Gannon
Erlin Earl Lee
John Stehpen Liptay
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
International Business Machines Corp
Original Assignee
International Business Machines Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by International Business Machines Corp filed Critical International Business Machines Corp
Publication of DE2346525A1 publication Critical patent/DE2346525A1/de
Publication of DE2346525B2 publication Critical patent/DE2346525B2/de
Application granted granted Critical
Publication of DE2346525C3 publication Critical patent/DE2346525C3/de
Expired legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/10Address translation
    • G06F12/1027Address translation using associative or pseudo-associative address translation means, e.g. translation look-aside buffer [TLB]
    • G06F12/1045Address translation using associative or pseudo-associative address translation means, e.g. translation look-aside buffer [TLB] associated with a data cache
    • G06F12/1054Address 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
Virtuelle Speichereinrichtung
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.
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.
Virtuelle Adresse
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.
AdreßüberSetzung
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.
Vorsätze in der DLAT
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.
Datenschutzschlüssel in der DLAT
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.
In der DLAT gespeicherte Bezeichnungsbits
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 .
STOK-Schrittschaltung
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.
Einzelheiten der DLÄT-Operation
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
Logische Adreßbits DLAT Adreßbits
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)

  1. PATENTANSPRÜCHE
    Virtuelle 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. 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. 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. 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/1052
    PO 972 O1O
    - 2O -
  5. 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. 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. 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. 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. 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
DE2346525A 1972-10-17 1973-09-15 Virtuelle Speichereinrichtung Expired DE2346525C3 (de)

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)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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

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