DE68924557T2 - Seitentabellen in einem virtuellen Speicher. - Google Patents
Seitentabellen in einem virtuellen Speicher.Info
- Publication number
- DE68924557T2 DE68924557T2 DE68924557T DE68924557T DE68924557T2 DE 68924557 T2 DE68924557 T2 DE 68924557T2 DE 68924557 T DE68924557 T DE 68924557T DE 68924557 T DE68924557 T DE 68924557T DE 68924557 T2 DE68924557 T2 DE 68924557T2
- Authority
- DE
- Germany
- Prior art keywords
- virtual
- address
- page
- physical
- page table
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Expired - Fee Related
Links
- 238000013519 translation Methods 0.000 claims abstract description 153
- 230000007246 mechanism Effects 0.000 claims abstract description 68
- 238000000034 method Methods 0.000 claims abstract description 8
- 238000012545 processing Methods 0.000 claims description 50
- 238000013507 mapping Methods 0.000 claims description 5
- 238000006073 displacement reaction Methods 0.000 claims 2
- 230000008569 process Effects 0.000 abstract description 4
- 230000014616 translation Effects 0.000 description 124
- 230000006870 function Effects 0.000 description 15
- 238000012986 modification Methods 0.000 description 8
- 230000004048 modification Effects 0.000 description 8
- 230000001934 delay Effects 0.000 description 4
- 238000010586 diagram Methods 0.000 description 3
- 230000000694 effects Effects 0.000 description 1
- 230000001343 mnemonic effect Effects 0.000 description 1
- 238000012360 testing method Methods 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/10—Address translation
-
- 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]
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/68—Details of translation look-aside buffer [TLB]
- G06F2212/684—TLB miss handling
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Memory System Of A Hierarchy Structure (AREA)
- Debugging And Monitoring (AREA)
- Steroid Compounds (AREA)
Description
- Vorliegende Erfindung bezieht sich auf ein Computersystem und insbesondere auf eine Computersystemarchitektur mit einem virtuellen Speicherraum und einem Mechanismus zum Übersetzen einer virtuellen Adresse in eine physische bzw. physikalische Adresse, der ausschließlich auf der Grundlage von virtuellen Adresseninformationen arbeitet und der daher nie ein direktes Holen oder Abrufen von physikalischen Adresseninformationen aus dem physikalischen Speicher durch eine Zentraleinheit des Computersystems erfordert.
- Viele moderne Computersysteme haben einen virtuellen Adreßraum und einen physikalischen Adreßraum. Des weiteren steht ein Übersetzungsschema zur Verfügung zum Übersetzen von einer virtuellen Adresse in eine physikalische Adresse, so daß von einer virtuellen Adresse referenzierte Daten, die im physikalischen Speicher resident sind, dadurch abgerufen werden können, daß die virtuelle Adresse in eine entsprechende physikalische Adresse übersetzt wird. Beispielsweise kann der virtuelle Adreßraum auf dem konzept basieren, daß das Computersystem einen einzigen, großen Speicherraum aufweist, der gleich der Gesamtkapazität des Zusatzspeichers des Computersystems ist. Alle vom Computersystem zu verarbeitenden Anwendungsprogramme sind unter Bezugnahme auf den virtuellen Speicherraum unter Verwendung von virtuellen Adressen aufgebaut, die die Stelle der vom Programm benötigten Befehle und Daten innerhalb des virtuellen Speicherraums definieren. Wenn ein besonderes Anwendungsprogramm von der Zentraleinheit oder den Zentraleinheiten des Computersystems ausgeführt wird, werden die Programm-bezogenen Daten und Befehle von den Zusatzspeichereinrichtungen des Systems wie beispielsweise von den Magnetplatten in den physikalischen Hauptspeicher des Systems übertragen. Das Computersystem verfügt über einen Mechanismus, um die virtuellen Adressen, die vom ausgeführten Programm erzeugt werden, in korrekte Hauptspeicherstellen dynamisch zu übersetzen, von denen jede von einer einzigen physikalischen Adresse definiert wird.
- Während der Ausführung des Programms referenziert die Zentraleinheit kontinuierlich Daten und Befehle durch virtuelle Adressen, und ein Übersetzungsmechanismus muß zwischen die Zentraleinheit und den physikalischen Hauptspeicher geschaltet sein, um die von der Zentraleinheit erzeugten virtuellen Adressen kontinuierlich in die entsprechenden physikalischen Adressen zu übersetzen, wo die Daten oder Befehle im physikalischen Hauptspeicher gefunden werden können. Der virtuelle Speicherraum ist typischerweise in Speichereinheiten unterteilt, die Seiten genannt werden. Eine Seite enthält eine vordefinierte Anzahl an adressierbaren Basiseinheiten. Beispielsweise kann die adressierbare Basiseinheit ein 8- Bit-Byte umfassen, und eine Seite kann 512 Bytes umfassen. Das Format für eine virtuelle Adresse wäre, um eine adressierbare Basiseinheit eindeutig zu kennzeichnen, die Nummer der virtuellen Seite, die die adressierbare Einheit enthält, und die Bytenummer der adressierbaren Einheit innerhalb der spezifizierten Seite.
- Eine Seitentabelle wird im physikalischen Speicher aufrecht erhalten, um zwischen virtuellen Adressen und physikalische Adressen Querverweise zu haben. So wie das Computersystem dynamisch Daten zu den und von den Zusatzspeichereinrichtungen überträgt, erzeugt es Seitenrahmennummern, die die 512-Byte- Seiten des physikalischen Speichers definieren und bei Bezugnahme auf die virtuellen Adressen verwendet werden. Ein Seitentabelleneintrag wird für jede virtuelle Seite, die dann im physikalischen Speicher resident ist, geschaffen. Die Seitenrahmennummer, die einer besonderen virtuellen Seite zum Zeitpunkt des Übertragens der betreffenden Daten vom Zusatzspeicher zum Hauptspeicher zugewiesen wird, wird im Seitentabelleneintrag für diese virtuelle Seite gespeichert.
- Analog kann theoretisch eine einer bestimmten virtuellen Adresse entsprechende physikalische Adresse dadurch erhalten werden, daß der Seitentabelleneintrag für die virtuelle Seite dieser virtuellen Adresse aus dem physikalischen Speicher abgerufen wird und die Bytenummer der adressierbaren Dateneinheit mit der im Seitentabelleneintrag enthaltenen Seitenrahmennummer vereinigt wird. In der Praxis hat die Zentraleinheit jedoch einen Übersetzungspuffer (TB), d.h. einen Cache für besondere Zwecke für gerade verwendete Seitentabelleneinträge. Sehr häufig enthält der Übersetzungspuffer schon die Seitentabelleneinträge für die von einem Programm verwendeten virtuellen Adressen, und der Prozessor braucht nicht auf den physikalischen Speicher zurückgreifen, um diese zu erhalten.
- In bekannten Computersystemen befindet sich der Übersetzungspuffer in einem Übersetzungsmechanismus, der auf einem zeitablaufskritischen Datenpfad zwischen die Zentraleinheit und den Hauptspeicher geschaltet ist. Der Übersetzungsmechanismus stellt sicher, daß die Seitenrahmennummer für die virtuelle Seitennummer der virtuellen Adresse aus dem Übersetzungspuffer übersetzt wird und fügt die Bytenummer der virtuellen Adresse an die im Übersetzungspuffer aufgelistete Seitenrahmennummer, um die physikalische Adresse zur Verfügung zu stellen. Der Ausgang des Übersetzungsmechanismus ist typischerweise mit einem Eingang eines Multiplexers verbunden. Der andere Eingang des Multiplexers ist direkt mit der Zentraleinheit verbunden, um eine Umgehungsleitung um den Übersetzungsmechanismus zu schaffen. Der Ausgang des Multiplexers wird dann mit dem Hauptspeicher verbunden. Auf diese Weise kann entweder eine vom Übersetzungsmechanismus bestimmte physikalische Adresse oder eine direkt von der Zentraleinheit erzeugte Adresse an den Hauptspeicher übertragen werden.
- Ein ähnliches System ist in der WO-A-88102148 beschrieben.
- Wie oben gesagt werden die meisten Übersetzungen von virtuellen in physikalische Adressen unter Verwendung eines Übersetzungspuffers durchgeführt. Wenn jedoch ein Eintrag fehlt, d.h. wenn der Übersetzungspuffer keinen virtuellen Seitennummerneintrag für die zu übersetzende virtuelle Adresse enthält, muß der Seitentabelleneintrag für die zu übersetzende virtuelle Adresse aus dem physikalischen Speicher abgerufen und in den Übersetzungspuffer geladen werden. In den bisher bekannte Computersystemen wird die physikalischer Basisadresse der Seitentabelle in einem Register gehalten. Der Prozessor führt einen Übersetzungsalgorithmus aus unter Verwendung der im Register gespeicherten physikalischen Basisadresse und der virtuellen Seitennummer der zu übersetzenden virtuellen Adresse durch, um die physikalische Adresse des für die Übersetzung nötigen Seitentabelleneintrags zu berechnen. Dies ermöglicht dem Prozessor, den Seitentabelleneintrag direkt über die Übersetzungsmechanismus-Umgehungsleitung abzurufen. Die Seitenrahmennummer des Seitentabelleneintrags wird dann durch die Zentraleinheit in den Übersetzungspuffer als ein Eintrag geladen, der der virtuellen Seitennummer der zu übersetzenden ursprünglichen virtuellen Adresse entspricht. Der Übersetzungsmechanismus kann dann die Übersetzung abschließen, dadurch daß die Bytenummer der virtuellen Adresse zur Seitenrahmennummer, die von der Zentraleinheit in den Übersetzungspuffer geladen wurde, hinzugefügt wird.
- Eine vorrangige Aufgabe der vorliegenden Erfindung besteht im Schaffen eines Übersetzungsmechanismus, der so arbeitet, daß er alle virtuellen Adressen in physikalische Adressen unter Verwendung der virtuellen Adressen der Seitentabelleneinträge übersetzt. So wie das Betriebssystem des Computersystems Daten vom Zusatzspeicher zum Hauptspeicher dynamisch überträgt, erzeugt es eine physikalische und eine virtuelle Adresse für jeden Seitentabelleneintrag. Insofern als jedoch die Seitentabelleneinträge im physikalischen Hauptspeicher tatsächlich resident sind, ist eine physikalische Adresse vonnöten, um jeden Seitentabelleneintrag abzurufen. Wie oben erläutert verwenden die bisher bekannten Systeme die Zentraleinheit zur Erzeugung der physikalischen Adresse des Seitentabelleneintrags, holen den Seitentabelleneintrag direkt über die Umgehungsleitung und laden dann die zum Abschließen der Übersetzung nötige Seitenrahmennummer in den Übersetzungspuffer.
- Die Erfindung ist in den unabhängigen Ansprüchen 1 und 6 dargelegt. Die Unteransprüche 2 bis 5 beziehen sich auf besondere Ausführungsformen der Erfindung.
- Die grundlegende Idee der vorliegenden Erfindung beruht auf einem Verfahren, durch das ein Übersetzungsmechanismus so arbeitet, daß er einige virtuelle Adressen, d.h. virtuelle Adressen von Seitentabelleneinträgen, ohne die Seitentabeile zu verwenden, übersetzt. Dies wird dadurch erreicht, daß ein Seitentabellen- Eintragsprototyp, der eine Seitenrahmennummer enthält, die eine Verschiebung zwischen der physikalischen und der virtuellen Adresse eines jeden einzelnen Seitentabelleneintrags darstellt, geschaffen wird. Der Prototyp basiert auf dem angrenzenden Speicherraum sowohl des virtuellen als auch des physikalischen Speicherraums. Genauer gesagt befinden sich aufeinanderfolgende Seiten der Seitentabelle im virtuellen Speicher in aufeinanderfolgenden Seitenrahmen im physikalischen Speicher. Dementsprechend ist die Seitenrahmennummer des Seitentabellen-Eintragsprototyps gleich der Seitenrahmennummer der ersten Seite der Seitentabelle minus der virtuellen Seitennummer der ersten Seite der Seitentabeile. Daher ist die Seitenrahmennummer des Seitentabellen-Eintragsprototyps eine feste Verschiebung, die zur virtuellen Seitennummer der virtuellen Adresse eines jeden bestimmten Seitentabelleneintrags addiert werden kann, um die Seitenrahmennummer der physikalischen Adresse eines solchen bestimmten Seitentabelleneintrags zu erhalten.
- Gemäß der Erfindung sucht der Übersetzungspuffer, wenn eine Übersetzung einer virtuellen Adresse in eine physikalische Adresse erforderlich ist, zunächst nach der Seitennummer der zu übersetzenden virtuellen Adresse. Ist es ein "Treffer", dann wird die entsprechende im Übersetzungspuffer aufgelistete Seitenrahmennummer an den Übersetzungsmechanismus geliefert, der die Bytenummer aus der virtuellen Adresse mit der Seitenrahmennummer vereinigt, um so die physikalische Adresse zu erhalten. Die phyische Adresse wird dann an den Hauptspeicher gesandt, um die angeforderten Daten abzurufen.
- Im Falle eines "Fehltreffers" liefert die Zentraleinheit die virtuelle Adresse des Seitentabelleneintrags für die zu übersetzende virtuelle Adresse und der Übersetzungspuffer sucht nach der virtuellen Seitennummer der virtuellen Adresse des Seitentabelleneintrags. Ist es ein "Treffer", dann übersetzt der Übersetzungsmechanismus die virtuelle Adresse in die physikalische Adresse des Seitentabelleneintrags und ruft den Seitentabelleneintrag für die Zentraleinheit ab. Die Zentraleinheit lädt dann die Seitenrahmennummer des abgerufenen Seitentabelleneintrags in den Übersetzungspuffer, und der Übersetzungsmechanismus kann dann die ursprüngliche virtuelle Adresse übersetzen.
- Wenn ein zweiter "Fehltreffer" auftritt, wird die Schwierigkeit der unendlichen Rekursion von Fehltreffern dadurch vermieden, daß die Zentraleinheit den Seitentabellen-Eintragsprototyp der Erfindung verwendet, um die Seitenrahmennummer der physikalischen Adresse des für die Übersetzung der ursprünglichen virtuellen Adresse nötigen Seitentabelleneintrags zu schaffen, wie oben beschrieben wurde. Dann wird die Seitenrahmennummer in den Übersetzungspuffer geladen. Der Übersetzungspuffer kann dann dem Übersetzungsmechanismus die für die Erzeugung der physikalischen Adresse des Seitentabelleneintrags nötige Information liefern. Die Übersetzung der ursprünglichen virtuellen Adresse kann dann abgeschlossen werden, nachdem die Zentraleinheit den Seitentabelleneintrag erhalten und den Übersetzungspuffer geladen hat. Es sollte sich natürlich von selbst verstehen, daß das System so betrieben werden kann, daß mehrere oder auch weniger als zwei Rekursionsstufen durchgeführt werden, bevor der Seitentabellen- Eintragprototyp zur Erzeugung der Seitenrahmennummer der physikalischen Adresse des für die Übersetzung der ursprünglichen virtuellen Adresse benötigten Seitentabelleneintrags verwendet wird.
- Die vorliegende Erfindung schafft daher einen Mechanismus, der so arbeitet, daß alle virtuellen Adressen in physikalische Adressen übersetzt werden, ohne daß jemals ein direktes Abrufen eines Seitentabelleneintrags durch die Zentraleinheit erforderlich wäre. Es werden demgemäß die Umgehungsleitung und der Multiplexer aus der Hardware entfernt, wodurch auch die Verzögerungen an den logischen Verknüpfungsgliedern (Gate) des Multiplexers aus dem zeitablaufskritischen Datenpfad zwischen dem Hauptspeicher und der Zentraleinheit entfernt werden. Bezeichnenderweise kann das Entfernen der Multiplexer-Gate-Verzögerung eine direkte Erhöhung der Arbeitsgeschwindigkeit des Computersystems zur Folge haben. Tatsächlich ist in einigen Beispielen der Betrag der Geschwindigkeitserhöhung direkt proportional mit der Anzahl der Gate-Verzögerungen im Multiplexer dividiert durch die Gesamtanzahl von Gate-Verzögerungen im kritischen Pfad.
- Zum besseren Verständnis der oben aufgeführten und weiterer Merkmale und Vorteile der vorliegenden Erfindung sollte auf die nachfolgende detaillierte Beschreibung und die beigefügten Zeichnungen Bezug genommen werden.
- Fig. 1 ist ein Blockdiagramm eines Computersystems nach Stand der Technik.
- Fig. 2 ist ein Blockdiagramm eines Computersystems mit einer erfindungsgemäßen Architektur.
- Fig. 3 ist eine graphische Darstellung einer virtuellen Adresse.
- Fig. 4 ist eine graphische Darstellung eines Seitentabelleneintrags.
- Fig. 5 ist eine graphische Darstellung einer Übersetzung einer virtuellen Adresse in eine physikalische Adresse, wie sie vom bekannten System aus Fig. 1 durchgeführt wird.
- Fig. 5a ist ein Flußdiagramm, das die Abfolge von Operationen eines Computersystems angibt, das die Übersetzung einer virtuellen Adresse in eine physikalische Adresse, wie sie in Fig. 5 dargestellt ist, durchführt.
- Fig. 6 ist eine graphische Darstellung einer Übersetzung einer virtuellen Adresse in eine physikalische Adresse gemäß der vorliegenden Erfindung.
- Fig. 6a ist ein Flußdiagramm, das die Abfolge von Operationen eines Computersystems angibt, das die Übersetzung einer virtuellen Adresse in eine physikalische Adresse, wie sie in Fig. 6 dargestellt ist, durchführt.
- Fig. 7 ist eine graphische Darstellung eines Seitentabellen-Eintragsprototyps gemäß der vorliegenden Erfindung.
- Fig. 8 ist eine graphische Darstellung eines Übersetzungspuffers.
- Nun wird auf die Zeichnungen und zunächst auf Fig. 1 Bezug genommen; in Fig. 1 ist ein Computersystem dargestellt, das gemäß einer bisher bekannten Verbindung von Zentraleinheit 10, Übersetzungsmechanismus 11 und Hauptspeichermodul 12 angeordnet ist. Gemäß einer typischen Ausführung eines virtuellen Speicherraum-Konzepts stellen die im Speichermodul 12 zu irgend einer Zeit gespeicherten Daten und Befehle einen bestimmten Prozentsatz des Gesamtbetrags an Daten und Befehlen dar, die in einer mit der Zentraleinheit 12 verbundenen Zusatzspeichereinrichtung 13 gespeichert sind. Die Zentraleinheit 10 bezieht sich auf alle Daten und Befehle auf der Grundlage von virtuellen Adressen (VA), die die Stellen der adressierbaren Einheiten innerhalb des virtuellen Speicherraums spezifizieren. Da spezifische Daten und Befehle vom von der Zentraleinheit 10 ausgeführten Anwendungsprogramm benötigt werden, überträgt das Betriebssystem kontinuierlich Daten über einen Bus 21 von der Zusatzspeichereinrichtung 13 zum Hauptspeichermodul 12 und umgekehrt. Das Betriebssystem lädt den Hauptspeicher 12 in Übereinstimmung mit Plazierungsalgorithmen, die die korrekten Stellen für die übertragenen Daten innerhalb des Speichermoduls 12 bestimmen, und erzeugt eine geeignete physikalische Adresse (PA) zum Lokalisieren der Daten innerhalb der Hauptspeichereinrichtung 12.
- Zum Zwecke der Speicherverwaltung - insbesondere des Schutzes und der Übersetzung von virtuellen Adressen in physikalische Adressen - ist die Einheit des Speichers eine Seite. Eine Seite umfaßt eine feste Anzahl an adressierbaren Einheiten, z.B. 512 Bytes. Seiten sind immer in natürlicher Reihenfolge angeordnet; d.h. die Adresse des ersten Bytes einer Seite ist ein Vielfaches von 512. Virtuelle Adressen sind 32 Bit lang und sind von der Speicherverwaltungslogik wie in Fig. 3 gezeigt aufgeteilt.
- Nun wird auf Fig. 3 Bezug genommen; dort ist die Funktion der Bits der virtuellen Adresse wie folgt:
- Feldbereich: Bits 31:9
- Feldname: Virtuelle Seitennummer (VPN)
- Funktion: Das Feld Virtuelle Seitennummer spezifiziert die zu referenzierende virtuelle Seite. Es können beispielsweise 8.388.608 Seiten in jedem virtuellen Adreßraum sein. Jede Seite enthält 512 Bytes.
- Feldbereich: Bits 8:0
- Feldname: Bytenummer
- Funktion: Das Feld Bytenummer spezifiziert die Byteadresse innerhalb des Seite. Wie angegeben enhält eine Seite 512 Bytes.
- Die neun niederwertigen Bits wählen ein Byte innerhalb einer Seite aus und werden durch den Adressenübersetzungsvorgang nicht verändert. Die übrigen Bits werden dafür verwendet, den Seitentabelleneintrag von der Seitentabelle zu erhalten.
- Theoretisch tritt der Vorgang des Erhaltens eines Seitentabelleneintrags bei jeder Speicherreferenzierung auf. Praktisch unterhält der Übersetzungsmechanismus 11 einen Übersetzungspuffer (TB), d.h. ein Cache für besondere Zwecke mit gerade verwendeten Seitentabelleneinträgen. Unter Bezugnahme auf Fig. 8 unterhält der Übersetzungspuffer eine Auflistung der virtuellen Seitennummern (VPN) von virtuellen Adressen (VA) für gerade von der Zentraleinheit 10 verarbeitete Daten und Befehle. Gegenüber jeder virtuellen Seitennummer steht die Seitenrahmennummer (PFN) des physikalischen Speichers, in dem die von der virtuellen Adresse gekennzeichneten Daten im Hauptspeichermodul 12 gegenwärtig resident sind. In den meisten Fällen enthält der Übersetzungspuffer schon die Seitentabelleneinträge für die vom Programm erzeugten virtuellen Adressen, und die Zentraleinheit 10 muß nicht auf den Speicher zugreifen, um diese zu erhalten.
- Es gibt für jede existierende Seite des virtuellen Adreßraums einen Seitentabelleneintrag in der Seitentabelle. Wie angegeben ist die Seitentabelle einem angrenzenden Raum im physikalischen Speicher zugeordnet, und eine virtuelle Adresse ist eine nicht mit einem Vorzeichen versehene ganze Zahl von 32 Bits, die eine Bytestelle im virtuellen Adreßraum kennzeichnet. Der von einem Programmierer gesehene Adreßraum ist eine lineare Anordnung von über 4 Milliarden Bytes.
- Die Speicherverwaltung ordnet den aktiven Teil des virtuellen Adreßraums dem verfügbaren physikalischen Adreßraum zu. Die Speicherverwaltung sorgt ebenfalls für den Schutz der Seiten zwischen den Prozessen. Das Betriebssystem steuert die Speicherverwaltungstabellen, die die virtuellen Adressen den Hauptspeicheradressen zuordnen. Die nicht verwendeten Teile des virtuellen Adreßraums werden in den Zusatzspeicher 13 kopiert oder verschoben. Wenn diese Teile gebraucht werden, werden sie in das Hauptspeichermodul 12 zurückgebracht.
- Im allgemeinen wird das Übersetzen einer virtuellen Adresse in eine physikalische Adresse im bekannten System von Fig. 1 durch das Setzen eines Speicherzuordnungsfreigabe-Bits (MME-Bit) gesteuert. Wenn das MME zurückgesetzt ist (0), ist der Seitenschutz aufgehoben, und eine Umgehungsleitung 16 wird zur Durchführung einer Null-Übersetzung verwendet, wie weiter unten beschrieben wird. Wenn das MME 1 ist, wird dem Adressenübersetzungsmechanismus 11 eine virtuelle Adresse, ein beabsichtigter Zugriff (Lesen oder Schreiben), und ein Modus geliefert, auf die hin der Zugriff geprüft werden soll. Wird der Zugriff erlaubt und die Adresse weist keinen Fehler auf, ist die Ausgabe dieser Routine eine physikalische Adresse, die der spezifizierten virtuellen Adresse entspricht.
- Nun wird auf Fig. 4 Bezug genommen; dort ist eine graphische Darstellung eines Seitentabelleneintrags gezeigt. Die Bits des Seitentabelleneintrags haben die folgenden Funktionen:
- Feldbereich: Bit 31
- Feldname: Gültigkeitsbit (V)
- Funktion: Steuert die Gültigkeit des Modifikationsbits (M) und des Felds Seitenrahmennummer (PFN). Das Bit wird für Gültigkeit auf 1 gesetzt und für Ungültigkeit auf 0 zurückgesetzt. Wenn dieses Bit zurückgesetzt ist, sind die Felder Modifikation und Seitenrahmennummer für die Systemsoftware reserviert.
- Feldbereich: Bits 30:27
- Feldname: Schutz (PROT)
- Funktion: Dieses Feld ist immer gültig und wird von der Hardware sogar dann verwendet, wenn das Gültigkeitsbit auf 0 zurückgesetzt wird. Das Feld Schutz ist als immer gültig definiert und wird zuerst geprüft. Der Seitentabelleneintrag ist so definiert, daß er ein gültiges Bit hat, das nur die Gültigkeit des Modifikationsbits und des Felds Seitenrahmennummer steuert. Das Feld Schutz wird zuerst geprüft, so daß die Programme, die im Benutzer-Modus ausgeführt werden, keine Zugriffsschutzprüfungen in der Systemregion durchführen und alle verschiebbaren Seiten mit Fehlern durchsetzen können.
- Feldbereich: Bit 26
- Feldname: Modifikationsbit (M)
- Funktion: Wenn das Gültigkeitsbit auf 0 zurückgesetzt ist, ist das Modifikationsbit für die Systemsoftware und die Ein- und Ausgabeeinheiten (I/O-Einheiten) reserviert. Wenn das Gültigkeitsbit auf 1 gesetzt und das Modifikationsbit auf zurückgesetzt ist, ist die Seite nicht verändert worden. Wenn das Gültigkeitsbit und das Modifikationsbit gesetzt sind, kann die Seite verändert worden sein. Das Modifikationsbit wird von der Software zurückgesetzt. Es wird von der Zentraleinheit bei einem erfolgreichen Schreibvorgang oder Verändern der Seite gesetzt. Zusätzlich kann es bei einem Prüf-Schreibbefehl (probe-write instruction) oder einem implizierten Prüf-Schreibvorgang gesetzt werden. Das Bit ist nicht gesetzt, wenn auf die Seite nicht zugegriffen werden kann.
- Feldbereich: Bit 25
- Feldname: Unbedingt Null (Z)
- Funktion: Dieses Bit ist reserviert und muß gleich Null sein.
- Feldbereich: Bits 24:23
- Feldname: Besitzer-Bits (Owner-Bits, OWN)
- Funktion: Diese Bits sind für die Verwendung durch die Systemsoftware reserviert. Das Betriebssystem verwendet diese Systembits als Zugriffsmodus des Seitenbesitzers; d.h. den zugelassen Modus zur Veränderung der Seite. Das Feld wird von der Hardware weder geprüft noch verändert.
- Feldbereich: Bits 22:
- Feldname: Seitenrahmennummer (PFN)
- Funktion: Die höherwertigen 23 Bits der physikalischen Adresse der Basis der Seite. Das Feld wird von der Hardware nur dann verwendet, wenn das Gültigkeitsbit gesetzt ist.
- Unter erneuter Bezugnahme auf Fig. 1 erzeugt die Zentraleinheit 10 Adressen, die auf Bus 14 ausgegeben werden. Bus 14 ist sowohl mit einem Übersetzungsmechanismus-Eingabebus 15 als auch mit einem Übersetzungsmechanismus-Umgehungsbus 16 verbunden. Die vom Übersetzungsmechanismus 11 erzeugten physikalischen Adressen werden auf einen physikalischen Adreß-Ausgabebus 17 ausgegeben. Sowohl der Übersetzungsmechanismus-Umgehungsbus 16 als auch der physikalische Adreß-Ausgabebus 17 sind mit einem Eingangsanschluß eines Multiplexers 18 verbunden. Der Ausgangsanschluß des Multiplexers 18 wird vom Multiplexer-Ausgabebus 19 mit dem Hauptspeichermodul 12 verbunden. Üblicherweise sind die von der Zentraleinheit 109 erzeugten Adressen virtuelle Adressen, die über die Busse 14 und 15 an den Übersetzungsmechanismus 11 zum Übersetzen in physikalische Adressen gesandt werden. Die vom Übersetzungsmechanismus 11 erzeugten physikalischen Adressen werden über Bus 17, Multiplexer 18 und Bus 19 zum Hauptspeichermodul 12 gesandt. Auf diese Weise kann der Speicher die erforderlichen Daten an die Zentraleinheit 10 über den Bus 20 senden.
- Nun wird auf Fig. 5 Bezug genommen; der Übersetzungsmechanismus 11 und die Zentraleinheit 10 arbeiten so, daß sie virtuelle Adressen in physikalische Adressen gemäß dem in dieser Figur gezeigten Diagramm übersetzen. Eine von der Zentraleinheit 10 erzeugte virtuelle Adresse wird über die Busse 14, 15 an den Übersetzungsmechanismus 11 gesandt, der die virtuelle Seitennummer der zu übersetzenden virtuellen Adresse im Übersetzungspuffer nachschlägt (5. Fig. 8). Ein Übersetzungspuffer-"Treffer" tritt auf, wenn der Übersetzungspuffer die virtuelle Seitennummer in seiner Liste lokalisiert und die entsprechende Seitenrahmennummer an den Übersetzungsmechanismus 11 liefert. Wie in den Zeilen 1 bis 6 der Fig. 5 dargestellt ist, vereinigt der Übersetzungsmechanismus 11 die Bytenummer von der virtuellen Adresse mit der im Übersetzungspuffer aufgelisteten Seitenrahmennummer, um die physikalische Adresse zu schaffen.
- Ein Übersetzungspuffer-"fehltreffer" tritt auf, wenn dem Übersetzungspuffer eine virtuelle Seitennummer geliefert wird, für die er keine Seitenrahmennummer liefern kann. In diesem Fall wird die Zentraleinheit entsprechend informiert und muß den Seitentabelleneintrag abrufen, um den Übersetzungspuffer zu laden, so daß der Übersetzungsmechanismus 11 mit der Vervollständigung der Übersetzung fortfahren kann. Wie oben erörtert wurde, befindet sich die Seitentabelle in einem angrenzenden physikalischen Adreßraum. Die Basisadresse der Seitentabelle ist eine physikalische Adresse, die in einem Basisregister (BR) in der Zentraleinheit 10 gespeichert ist. Der Algorithmus zum Erzeugen einer physikalischen Adresse (PA) aus der zugehörigen virtuellen Adresse (VA) lautet wie folgt:
- PA=MEM(BR+4xVA< VPN> )< PFN> 'VA< 8:0>
- wobei der Apostroph hinter < PFN> eine Verknüpfung zwischen < PFN> und VA< 8:0> angibt).
- Die Ausführung dieses Algorithmus wird in den Zeilen 2 bis 6 der Fig. 5 dargestellt. Nach der Ausführung von (BR+4xVA< VPN> 'VA< 8:0> ) sendet die Zentraleinheit 10 die physikalische Adresse des Seitentabelleneintrags über Bus 14, Umgehungsbus 16, Multiplexer 18 und Bus 19 an das Hauptspeichermodul 12, um den Seitentabelleneintrag, der sich an der vom Algorithmus (Zeile 5, Fig. 5) festgelegten physikalischen Adresse befindet, abzurufen. Dann lädt die Zentraleinheit 10 die Seitenrahmennummer (PFN) des abgerufenen Seitentabelleneintrags in den Übersetzungspuffer, so daß der Übersetzungsmechanismus 11 die ursprüngliche virtuelle Adresse aus Zeile 1 von Fig. 5 wie oben beschrieben (Zeilen 1 und 6 von Fig. 5) übersetzen kann. Die verschiedenen Operationen der Zentraleinheit 10, des Übersetzungsmechanismus 11 und des Hauptspeichermoduls 12 sind im in Fig. 5a dargestellten Flußdiagramm gezeigt.
- Ein bedeutender Nachteil der bekannten Ausführung der Übersetzung von einer virtuellen in eine physikalische Adresse liegt im Vorhandensein des Multiplexers 18 im zeitablaufskritischen Datenpfad zwischen der Zentraleinheit 10 und dem Hauptspeichermodul 12. Gemäß der vorliegenden Erfindung ist die Hardware ohne eine Übersetzungsmechanismus-Umgehungsleitung und einen Multiplexer aufgebaut. Unter Bezugnahme auf Fig. 2 sind die grundlegenden Komponenten des erfindungsgemäßen Systems die Zentraleinheit 110, der Übersetzungsmechanismus 111, das Hauptspeichermodul 112 und der Zusatzspeicher 113. Es gibt jedoch einen einzigen Bus 150, der die Zentraleinheit 110 mit dem Übersetzungsmechanismus 111 verbindet, und einen einzigen Bus 160, der den Übersetzungsmechanismus 111 mit dem Hauptspeichermodul 112 verbindet. Mit anderen Worten werden alle von der Zentraleinheit 110 erzeugten Adressen zum Übersetzungsmechanismus 111 gesandt. Das in Fig. 2 dargestellte System umfaßt auch einen Bus 121, der den Zusatzspeicher 113 mit dem Hauptspeicher 112 verbindet, und einen Bus 120 für den Datenfluß vom Hauptspeicher 112 zur Zentraleinheit 110.
- Gemäß der Erfindung sind Umgehungsleitung und Multiplexer nicht vorhanden, da der Übersetzungsmechanismus 111 die Seitentabelle unter Verwendung einer virtuellen Adresse liest. Wie weiter oben erörtert kann eine unendliche Rekursion von Fehltreffern durch den Übersetzungspuffer dann auftreten, wenn dem Übersetzungspuffer nur virtuelle Adressen geliefert werden, da die Seitentabelle im physikalischen Speicher resident ist und zu einem bestimmten Zeitpunkt dem Hauptspeichermodul 112 eine physikalische Adresse zum Abrufen eines Seitentabelleneintrags geliefert werden muß, damit der Übersetzungspuffer geladen werden kann. Gemäß der Erfindung wird eine unendliche Rekursion von Fehltreffern dadurch vermieden, daß eine Seitentabellen-Eintragsprototyp (PTEP), der im Seitentabellen-Eintragsprototypregister (PTEP-Register) in der Zentraleinheit 110 enthalten ist, verwendet wird zusammen mit der virtuellen Adresse des Seitentabelleneintrags, um einen Übersetzungspuffereintrag für den Seitentabelleneintrag ohne Verwendung der Seitentabelle zu erzeugen.
- Da die Seitentabelle sowohl im physikalischen Adreßraum des Hauptspeichermoduls 112 als auch im virtuellen Adreßraum des Systems angrenzend ist, kann eine Verschiebung zwischen der physikalischen Adresse der Seitentabellenbasis und der virtuellen Adresse der Seitentabellenbasis festgelegt werden, wobei diese Verschiebung im gesamten angrenzenden Raum der Seitentabelle sowohl im physikalischen als auch im virtuellen Adreßraum konstant ist. Daher wird die Seitenrahmennummer für den prototypischen Seitentabelleneintrag gleich der Seitenrahmennummer der ersten Seite der Seitentabelle minus der virtuellen Seitennummer der ersten Seite der Seitentabelle gesetzt.
- Unter Bezugnahme auf Fig. 7 ist ein Format für einen Seitentabellen-Eintragsprototyp, wie er im PTEP-Register enthalten ist, dargestellt. Die Felder des PTEP-Register sind wie folgt definiert: Bereich Mnemonik Bedeutung Reserviert PFN Unbedingt Null Schutz Seitenrahmennummer. Die Seitenrahmennummer der ersten Seite der Seitentabelle minus der virtuellen Seitennummer der ersten Seite der Seitentabelle.
- Die Funktion für die Übersetzung einer virtuellen Adresse in eine physikalische Adresse mit der Seitentabelle im virtuellen Speicher und dem Seitentabellen- Eintragsprototyp (PTEP) kann wie folgt lauten:
- PTE_VA=BR+4xVA< VPN>
- (Die virtuelle Adresse des Seitentabelleneintrags (PTE), der der ursprünglichen virtuellen Adresse (VA) unter Verwendung der virtuellen Adresse der Seitentabellenbasis im virtuellen Speicher, die im Basisregister (BR) enthalten ist, zugeordnet ist.)
- PTE_PTE=1'PTEP< PROT> '1'ZEXT(PTE_VA< VPN> +PTEP< PFN> )
- (Der Seitentabelleneintrag, der der Seite der Seitentabelle mit PTE_VA zugeordnet ist.)
- PTE_PA=PTE_PTE< PFN> 'PTE_VA< 8:0>
- (Die physikalische Adresse des Seitentabelleneintrags, der der ursprünglichen virtuellen Adresse zugeordnet ist.)
- PA=MEM(PTE_PA)< PFN> 'VA< 8:0>
- (Die physikalische Adresse, die der ursprünglichen virtuellen Adresse entspricht.)
- Die oben genannte Funktion kann hinsichtlich des Betriebs des in Fig. 2 dargestellten Computersystems unter Bezugnahme auf Fig. 6 beschrieben werden. Ähnlich dem bekannten System wird die zu übersetzende virtuelle Adresse von der Zentraleinheit 110 über den Bus 150 zum Übersetzungsmechanismus 111 gesandt. Der Übersetzungsmechanismus 111 führt eine Operation erster Stufe durch, um die virtuelle Seitennummer der virtuellen Adresse im Übersetzungspuffer nachzuschlagen, um die entsprechende Seitenrahmennummer festzustellen. Bei einem "Treffer" vereinigt der Übersetzungsmechanismus 111 die Bytenummer der virtuellen Adresse mit der im Übersetzungspuffer gefundenen Seitenrahmennummer, um eine physikalische Adresse zu schaffen (Zeilen 1, 6 und 7 von Fig. 6). Die physikalische Adresse wird dann über den Bus 160 an das Hauptspeichermodul 112 zum Abruf der Daten gesandt.
- Wenn ein "Fehitreffer" in der ersten Stufe auftritt, führt die Zentraleinheit 110 den Algorithmus PTE_VA=BR+4xVA< VPN> aus, um die virtuelle Adresse des Seitentabelleneintrags zu finden, der der ursprünglichen virtuellen Adresse zugeordnet ist (Zeilen 1 bis 3 von Fig. 6), und sendet diese virtuelle Adresse zum Übersetzungsmechanismus 111 über den Bus 150. In der zweiten Stufe der Operation des Übersetzungsmechanismus 111 wird der Übersetzungspuffer für das Auffinden der Seitenrahmennummer für die virtuelle Adresse des Seitentabelleneintrags verwendet.
- Im Falle eines Übersetzungsmechanismus-"Treffers" vereinigt der Übersetzungsmechanismus 111 die Bytenummer der virtuellen Adresse des Seitentabel- Ieneintrags mit der entsprechenden im Übersetzungspuffer gefundenen Seitenrahmennummer, um die physikalische Adresse des Seitentabelleneintrags zu liefern (Zeilen 3 und 5 von Fig. 6). Die physikalische Adresse des Seitentabelleneintrags wird dann über den Bus 160 zum Hauptspeichermodul 112 gesandt, um den für das Laden des Übersetzungspuffers nötigen Seitentabelleneintrag abzurufen und so die Übersetzung der ursprünglichen virtuellen Adresse zu ermöglichen.
- Im Falle eines "Fehltreffers" in der zweiten Stufe der Operation im Übersetzungspuffer erzeugt gemäß der Erfindung die Zentraleinheit 110 den Übersetzungspuffereintrag für den Seitentabelleneintrag, der für die Vervollständigung der Übersetzung der ursprünglichen virtuellen Adresse nötig ist, unter Verwendung des Seitentabellen-Eintragsprototyps und der virtuellen Seitennummer der virtuellen Adresse des Seitentabelleneintrags:
- PTE_PTE=1'PTEP"PROT> '1'ZEXT(PTE_VA< VPN> +PTEP< PFN> )
- (Zeilen 3 bis 4 von Fig. 6). Die Zentraleinheit 110 kann daher durch die Durchführung der obigen Funktion die Seitenrahmennummer der physikalischen Adresse des Seitentabelleneintrags in den Übersetzungspuffer laden, wodurch der Übersetzungsmechanismus 111 mit dem Übersetzen der virtuellen Adresse des Seitentabelleneintrags in eine entsprechende physikalische Adresse fortfahren kann, ohne dabei auf die Seitentabelle im physikalischen Speicher Bezug nehmen zu müssen (Zeilen 3 and 5 von Fig. 6) gemäß der folgenden Formel:
- PTE_PA=PTE_PTE< PFN> 'PTE_VA< 8:0>
- Die Übersetzung der ursprünglichen virtuellen Adresse kann nun nach dem Abrufen des Seitentabelleneintrags vervollständigt werden (Zeile 6 von Fig. 6), dadurch daß erneut die erste Stufe der Operation wie oben beschrieben versucht wird. Bei diesem Versuch wird die Suche insofern erfolgreich sein, als die zweite Stufe der Operation für das nötige Laden des Übersetzungspuffers gesorgt hat, um die Übersetzung gemäß PA=MEM(PTE_PA)< PFN> 'VA< 8:0> vervollständigen zu können (Zeilen 6 und 7 von Fig. 6). Der Betrieb der Zentraleinheit 110, des Übersetzungsmechanismus 111 und des Hauptspeichermoduls 112 ist im Flußdiagramm von Fig. 6a dargestellt.
- Das weitgefaßte Konzept des Betriebs eines Übersetzungsmechanismus zur Übersetzung von virtuellen Adressen von Seitentabelleneinträgen ohne die Verwendung der Seitentabelle kann sogar dann ausgeführt werden, wenn die Seitentabelle im physikalischen Adreßraum nicht angrenzend ist. Dies wird dadurch erreicht, daß ein Seitentabellen-Eintragsprototyp-Mechanismus geliefert wird, der bekannte Querverweisinformationen zwischen den physikalischen Adressen für die Seitentabelleneinträge der Seitentabelle und den entsprechenden virtuellen Adressen enthält, um die Erzeugung einer physikalischen Adresse eines Seitentabelleneintrags aus der virtuellen Adresse des Seitentabelleneintrags zu ermöglichen. Im oben beschriebenen Ausführungsbeispiel wird durch die Anordnung, daß die Seitentabelle sowohl im physikalischen Adreßraum als auch im virtuellen Adreßraum angrenzend ist, eine durchgängig feste Verschiebeinformation für den Seitentabellen-Eintragsprototyp geschaffen.
- Ein weiteres Merkmal der vorliegenden Erfindung richtet sich auf die Kompatibilität der Hardwareanordnung von Fig. 2 mit bestehenden Architekturkonzepten, die die Umgehung der Speicherverwaltungsfunktion des Übersetzungsmechanismus durch die Verwendung der Umgehungsleitung aus der Anordnung nach Stand der Technik erlaubt. Dies wird mittels einer Null-Abbildungs(Zuordnungs)-Funktion erreicht, die selektiv im Übersetzungspuffer durchgeführt wird, um eine Speicherverwaltungs-Ausschaltung oder Umgehungssituation zu simulieren. Mit anderen Worten verfügt der Übersetzungspuffer über eine 1:1-Abbildung, so daß der Betrieb des Übersetzungsmechanismus keine Auswirkung auf die zu übersetzende Adresse hat. Daher würde für den Fall, daß die Zentraleinheit 110, wenn MME=0 ist wie beispielsweise während der Ausführung eines Diagnoseprogramms, eine Adresse erzeugt, die Adresse in den Übersetzungsmechanismus 111 über den Bus 150 eingegeben. Der Übersetzungsmechanismus behandelt die Adresse wie üblich. Ein Übersetzungspuffer-"Treffer" wird wie oben beschrieben behandelt.
- Für den Fall eines "Fehltreffers" im Übersetzungspuffer erzeugt die Zentraleinheit jedoch physikalische Adresseninformationen, so daß die Seitenrahmennummer der physikalischen Adresse gleich der virtuellen Seitennummer der virtuellen Adresse ist. Diese Seitenrahmennummer wird in den Übersetzungspuffer geladen, und die Suche wird erfolgreich sein, wenn der Übersetzungsmechanismus fortfährt.
- Die vorliegende Erfindung liefert einen besonders vorteilhaften Mechanismus für das Übersetzen von virtuellen Adressen in physikalische Adressen dadurch, daß der Übersetzungsmechanismus so arbeitet, daß die virtuellen Adressen der Seitentabelleneinträgen ohne Verwendung der Seitentabelle übersetzt werden. Auf diese Weise wird die Umgehungsleitung des Übersetzungsmechanismus und der Multiplexer aus dem kritischen Datenpfad zwischen der Zentraleinheit und dem Hauptspeicher entfernt. Dies kann eine direkt proportionale Erhöhung der Betriebsgeschwindigkeit der Zentraleinheit zur Folge haben, in dem die Gate-Verzögerungen des Multiplexers aus dem zeitablaufskritischen Pfad entfernt werden.
Claims (6)
1. Computersystem, das umfaßt:
(a) eine Zentraleinheit (110);
(b) ein Speichersystem (112) mit einem virtuellen Adreßraum, der von
virtuellen Adressen referenzierte Daten enthält, und einem physischen
Adreßraum, der von physischen Adressen referenzierte Daten enthält;
(c) von physischen Adressen referenzierte Daten, die einen
vorausgewählten, von virtuellen Adressen referenzierten Datenabschnitt umfassen,
derart daß die virtuellen Adressen des von virtuellen Adressen
referenzierten Datenabschnitts entsprechende physische Adressen aufweisen;
(d) einen angrenzenden Seitentabellen-Speicherraum im physischen
Adreßraum, wobei der Seitentabellen-Speicherraum von physischen
Adressen, die Stellen im Seitentabellen-Speicherraum lokalisieren,
referenziert ist, wobei alle Stellen entsprechende physische
Adresseninformationen für die vorausgewählten virtuellen Adressen des
vorausgewählten Abschnitts der von virtuellen Adressen referenzierten Daten
enthält;
(e) einen Übersetzungsmechanismus (111) zum Übersetzen von durch die
Zentraleinheit generierten virtuellen Adressen in entsprechende
physische Adressen;
(f) wobei der Übersetzungsmechanismus (111) derart zwischen die
Zentraleinheit und das Speichersystem geschaltet ist, daß die von der
Zentraleinheit generierten virtuellen Adressen in entsprechende physische
Adressen übersetzt werden und die entsprechenden physischen
Adressen an den physischen Adreßraum des Speichersystems zum Holen der
von den physischen Adressen referenzierten Daten übertragen werden;
(g) wobei der Übersetzungsmechanismus (111) einen Übersetzungspuffer
umfaßt, der vorausgewählte Abschnitte des
Seitentabellen-Speicherraums
enthält, um entsprechende physische Adressinformationen an
den Übersetzungsmechanismus zu liefern;
(h) ein virtuelles Basisadreßregister mit einer virtuellen Basisadresse eines
Satzes von angrenzenden virtuellen Adressen, die den physischen
Adressen entsprechen, die zum Referenzieren des angrenzenden
Seitentabellen-Speicherraums des physischen Adreßraums verwendet
werden;
(i) ein Seitentabellen-Prototypregister mit festen Verschiebeinformationen
zwischen einer ersten physischen Adresse, die die Basis des
angrenzenden Seitentabellen-Speicherraums im physischen Adreßraum
lokalisiert, und der im virtuellen Basisadreßregister enthaltenen virtuellen
Basisadresse; und
(k) wobei die Einrichtung zum Laden des Übersetzungspuffers mit der
Zentraleinheit (110), dem virtuellen Basisadreßregister und dem
Seitentabellen-Prototypregister derart verbunden ist, daß die Einrichtung zum
Laden des Übersetzungspuffers folgendes kann:
(i) Hinzufügen eines Abschnitts einer von der Zentraleinheit
generierten ersten virtuellen Adresse zur im virtuellen Basisadreßregister
enthaltenen virtuellen Adresse, um eine zweite virtuelle Adresse
für eine Seitentabellen-Speicherraumstelle zu schaffen, die die
entsprechenden physischen Adresseninformationen für die erste
virtuelle Adresse enthält,
(ii) Hinzufügen mindestens eines Abschnitts der zweiten virtuellen
Adresse zu den im Seitentabellen-Prototypregister enthaltenen
Verschiebeinformationen, um der zweiten virtuellen Adresse
entsprechenden physische Adresseninformationen zu liefern, und
(iii) Laden des Übersetzungspuffers mit mindestens einem Abschnitt
der zweiten virtuellen Adresse und den der zweiten virtuellen
Adresse entsprechenden physischen Adresseninformationen.
2. Computersystem nach Anspruch 1, wobei der Übersetzungsmechanismus
(111) so arbeitet, daß er eine in den Übersetzungspuffer zu ladende Null-
Abbildungsinformation generiert, um eine Null-Abbildungsinformation an den
Übersetzungspuffer zu liefern.
3. Computersystem nach Anspruch 1, wobei
(a) der virtuelle Adreßraum in Seiten unterteilt ist, wobei jede Seite durch
eine virtuelle Seitennummer gekennzeichnet ist und jede Seite eine
vorbestimmte Anzahl von adressierbaren Dateneinheiten enthält,
(b) der physische Adreßraum in Seitenrahmen unterteilt ist, wobei jeder
Seitenrahmen durch eine Seitenrahmennummer gekennzeichnet ist und
jeder Seitenrahmen eine Anzahl von adressierbaren Dateneinheiten
enthält, die gleich der vorbestimmten Anzahl von in einer Seite des
virtuellen Adreßraums enthaltenen adressierbaren Dateneinheiten ist,
(c) der Übersetzungspuffer die virtuellen Seitennummern für die
vorausgewählten virtuellen Adressen des von den virtuellen Adressen
referenzierten, vorausgewählten Datenabschnitts und die den nächsten
vorhergenannten virtuellen Seitennummern entsprechenden
Seitenrahmennummern enthält,
(d) der Übersetzungsmechanismus (111) die physischen Adressen von den
virtuellen Adressen und den entsprechenden im Übersetzungspuffer
enthaltenen Seitenrahmennummern bestimmt.
4. Computersystem nach Anspruch 3, wobei das Seitentabellen-Prototypregister
eine Seitenrahmennummer enthält, die gleich einer Seitenrahmennummer
die die erste, die Basis des angrenzenden Seitentabellen Speicherraums
lokalisierende, physische Adresse betrifft, minus einer virtuellen Seitennummer
die die im virtuellen Basisadreßregister enthaltene virtuelle Adresse betrifft,
ist.
5. Computersystem nach Anspruch 1, wobei die Einrichtung zum Laden des
Übersetzungspuffers die Zentraleinheit (110) umfaßt.
6. Verfahren zum Laden eines Übersetzungspuffers eines Computersystems,
wobei das Computersystem einen virtuellen Speicherraum mit von virtuellen
Adressen referenzierten Daten und einen physischen Speicherraum mit von
physischen Adressen referenzierten Daten umfaßt; wobei einige der virtuellen
Adressen eine entsprechende physische Adresse aufweisen, der
Übersetzungspuffer mit virtuellen Adresseninformationen und entsprechenden
physischen Adresseninformationen geladen ist und das Verfahren folgende
Schritte aufweist:
(a) Liefern eines angrenzenden Seitentabellen-Speicherraums im
physischen Speicherraum, wobei der Seitentabellen-Speicherraum von
physischen Adressen referenziert wird, die Stellen mit den virtuellen
Adresseninformationen entsprechenden, physischen Adresseninformationen
lokalisieren;
(b) Liefern eines virtuellen Basisadreßregisters mit einer virtuellen
Basisadresse eines Satzes von angrenzenden virtuellen Adressen, die den
für die Referenzierung des angrenzenden
Seitentabellen-Speicherraums des physischen Adreßraums verwendeten physischen Adressen
entsprechen;
(c) Liefern eines Seitentabellen-Eintragsprototypregisters mit festen
Verschiebeinformationen zwischen einer die Basis des angrenzenden
Seitentabellen-Speicherraums im physischen Speicherraum lokalisierenden
ersten physischen Adresse und der im virtuellen Basisadreßregister
enthaltenen virtuellen Basisadresse; und
(d) Betreiben des Computersystems für das Laden des
Übersetzungspuffers durch:
(i) Hinzufügen eines Abschnitts einer vorausgewählten virtuellen
Adresse zu der im virtuellen Basisadreßregister enthaltenen
virtuellen Adresse, um eine zweite virtuelle Adresse für eine
Seitentabellen-Speicherraumstelle zu schaffen, die die entsprechenden
physischen Adresseninformationen für die erste virtuelle Adresse
enthält;
(ii) Hinzufügen mindestens eines Abschnitts der zweiten virtuellen
Adresse zu den im Seitentabellen-Eintragsprototypregister
enthaltenen Verschiebeinformationen, um der zweiten virtuellen Adresse
entsprechende physische Adressinformationen zu liefern und eine
Adresse zu schaffen; und
(iii) Laden des Übersetzungspuffers mit dem mindestens einen
Abschnitt der zweiten virtuellen Adresse und den der zweiten
virtuellen Adresse entsprechenden physischen Adresseninformationen.
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US20288688A | 1988-06-06 | 1988-06-06 |
Publications (2)
Publication Number | Publication Date |
---|---|
DE68924557D1 DE68924557D1 (de) | 1995-11-23 |
DE68924557T2 true DE68924557T2 (de) | 1996-06-27 |
Family
ID=22751629
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
DE68924557T Expired - Fee Related DE68924557T2 (de) | 1988-06-06 | 1989-05-29 | Seitentabellen in einem virtuellen Speicher. |
Country Status (7)
Country | Link |
---|---|
EP (1) | EP0345589B1 (de) |
JP (1) | JP2537550B2 (de) |
KR (1) | KR930001885B1 (de) |
AT (1) | ATE129351T1 (de) |
AU (1) | AU607615B2 (de) |
CA (1) | CA1319448C (de) |
DE (1) | DE68924557T2 (de) |
Families Citing this family (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1016743B (zh) * | 1988-12-03 | 1992-05-20 | 国际商业机器公司 | 虚拟存储器管理系统和方法 |
JP3261708B2 (ja) * | 1991-09-12 | 2002-03-04 | 富士ゼロックス株式会社 | 仮想計算機のアドレス変換方式 |
KR100737418B1 (ko) * | 2001-10-31 | 2007-07-09 | 주식회사 포스코 | 교반기의 교반날개 자동 위치조정장치 |
US9280473B2 (en) | 2004-12-02 | 2016-03-08 | Intel Corporation | Method and apparatus for accessing physical memory from a CPU or processing element in a high performance manner |
CN101645043B (zh) * | 2009-09-08 | 2012-01-04 | 成都市华为赛门铁克科技有限公司 | 写数据的方法、读数据的方法及存储设备 |
US10261916B2 (en) * | 2016-03-25 | 2019-04-16 | Advanced Micro Devices, Inc. | Adaptive extension of leases for entries in a translation lookaside buffer |
US10324838B2 (en) | 2017-10-12 | 2019-06-18 | International Business Machines Corporation | Virtually addressable hardware global kernel segment table |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO1988002148A1 (en) * | 1986-09-15 | 1988-03-24 | Motorola, Inc. | A transparent translation method and apparatus for use in a memory management unit |
JPS63197255A (ja) * | 1987-02-12 | 1988-08-16 | Matsushita Electric Ind Co Ltd | アドレス変換装置 |
-
1989
- 1989-05-29 AT AT89109655T patent/ATE129351T1/de not_active IP Right Cessation
- 1989-05-29 DE DE68924557T patent/DE68924557T2/de not_active Expired - Fee Related
- 1989-05-29 EP EP89109655A patent/EP0345589B1/de not_active Expired - Lifetime
- 1989-06-01 AU AU35919/89A patent/AU607615B2/en not_active Ceased
- 1989-06-05 KR KR1019890007792A patent/KR930001885B1/ko not_active IP Right Cessation
- 1989-06-05 CA CA000601736A patent/CA1319448C/en not_active Expired - Fee Related
- 1989-06-06 JP JP1143963A patent/JP2537550B2/ja not_active Expired - Lifetime
Also Published As
Publication number | Publication date |
---|---|
CA1319448C (en) | 1993-06-22 |
KR930001885B1 (ko) | 1993-03-19 |
EP0345589B1 (de) | 1995-10-18 |
DE68924557D1 (de) | 1995-11-23 |
EP0345589A2 (de) | 1989-12-13 |
ATE129351T1 (de) | 1995-11-15 |
EP0345589A3 (de) | 1991-08-07 |
AU3591989A (en) | 1989-12-07 |
KR900000774A (ko) | 1990-01-31 |
JP2537550B2 (ja) | 1996-09-25 |
JPH02236652A (ja) | 1990-09-19 |
AU607615B2 (en) | 1991-03-07 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
DE68924720T2 (de) | Verfahren und Vorrichtung für Zugriffsrechtensteuerung. | |
DE60003273T2 (de) | Verfahren und Vorrichtung zur Erzeugung einer Eingabeadresse | |
DE2459006C2 (de) | Einrichtung zum Bilden einer absoluten Adresse in einer Datenverarbeitunsanlage | |
DE69721590T2 (de) | Ein bereichsbasiertes seiten-table-walk-bit verwendendes verfahren sowie vorrichtung | |
DE3151745C2 (de) | ||
DE3688978T2 (de) | Seitenspeicherverwaltungseinheit mit der fähigkeit nach wahl mehrere adressräume zu unterstützen. | |
DE68923863T2 (de) | Ein-/Ausgabecachespeicherung. | |
DE3587694T2 (de) | Speicherzugriffssteuergerät zur Realisierung von geschützten Gebieten in einem Speicher, und mit solchem Speicherzugriffssteuergerät ausgerüsteter Speicher. | |
DE69424767T2 (de) | Kohärente Schreibtransaktionen für Teilzeilen eines Cache-Speichers | |
DE4410060B4 (de) | Übersetzungsvorrichtung zum Umsetzen einer virtuellen Speicheradresse in eine physikalische Speicheradresse | |
DE69622663T2 (de) | Zweistufige vorausholungspufferstruktur und verfahren mit bypass | |
DE60010420T2 (de) | Automatisches Regressionstesten von Arbeitsplatz-Software | |
DE3854616T2 (de) | Nichthierarchischer Programmberechtigungsmechanismus. | |
DE3833933C2 (de) | Informationsverarbeitungseinrichtung mit einer Adressenerweiterungsfunktion | |
DE10297433B4 (de) | Speicherverwaltungseinheit, Verfahren zum Bereitstellen einer Speicherzugriffssicherheit auf der Basis einer linearen Adresse und Prozessor | |
DE69732181T2 (de) | Verfahren und gerät zum zwischenspeichern von systemverwaltungsinformationen mit anderen informationen | |
DE69634315T2 (de) | Verfahren und Gerät zur Verwendung eines Ladebefehls der keinen Fehler verursacht | |
DE60036960T2 (de) | Unterscheidung von feinkorntranslation | |
DE68916853T2 (de) | Unabhängige Programmlader für virtuelle Maschinenarchitektur. | |
DE69231611T2 (de) | Verfahren zu grosser logischer Adressierung | |
DE69028269T2 (de) | Virtuelles Adressierungsverfahren zum Betrieb eines Speichers in einer Datenverarbeitungsanlage und Einrichtung zur Ausführung besagten Verfahrens | |
DE69229667T2 (de) | Simulierte cachespeicher-assoziativität | |
DE3805107A1 (de) | Verfahren und vorrichtung zur steuerung virtueller adressraeume eines virtuellen speichers | |
DE2517276A1 (de) | Datenverarbeitungssystem | |
DE69130942T2 (de) | Vorrichtung zur Erhöhung der Leistung eines Adressenübersetzungspuffers |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
8364 | No opposition during term of opposition | ||
8328 | Change in the person/name/address of the agent |
Free format text: GRUENECKER, KINKELDEY, STOCKMAIR & SCHWANHAEUSSER, 80538 MUENCHEN |
|
8339 | Ceased/non-payment of the annual fee |