-
Gebiet der
Technik
-
Die
vorliegende Erfindung betrifft Mikroprozessor- und Computersysteme,
und im Besonderen betrifft die vorliegende Erfindung virtuelle Speichersysteme
mit einer Erzeugung und Übersetzung
erweiterter linearer Adressen.
-
Stand der
Technik
-
Die
meiste Mikroprozessoren verwenden virtuelle oder auf Nachfrage basierende
Speicherseitenverwaltungssysteme, wobei Bereiche einer Ausführungsumgebung
eines Programms nach Bedarf in einen physikalischen Speicher abgebildet
werden. Virtuelle Speicheranordnungen ermöglichen die Nutzung eines physikalischen
Speichers, der deutlich kleiner ist als der lineare Adressraum des
Mikroprozessors, und wobei diese Anordnungen ferner einen Mechanismus
für den
Speicherschutz vorsehen, so dass mehrere Aufgaben (Programme), die
den gleichen physikalischen Speicher gemeinsam nutzen, sich nicht
gegenseitig nachteilig stören
bzw. beeinträchtigen.
-
Der
physikalische Speicher ist Teil eines Speicherhierarchiesystems,
das als Teil eines in der Abbildung aus 1 dargestellten
Computersystems veranschaulicht werden kann. Der Mikroprozessor 102 weist
einen First-Level-Cache
auf, der einen Befehlscache 104 und einen Datencache 106 umfasst.
Der Mikroprozessor 102 kommuniziert mit einem Unified Second-Level-Cache 108 über einen Backsidebus 110.
Der Second-Level-Cache 108 weist
sowohl Befehle als auch Daten auf und kann sich physisch auf dem
Chiphalbleiter 102 befinden. Die Caches 104 und 106 umfassen
die erste Ebene der Speicherhierarchie, und der Cache 108 umfasst die
zweite Ebene.
-
Die
dritte Ebene der Speicherhierarchie für das beispielhafte Computersystem
aus 1 ist durch den Speicher 112 dargestellt.
Der Mikroprozessor 102 kommuniziert mit dem Speicher 112 über den
Hostprozessorbus (Frontside) 114 und den Chipset 116.
Der Chipset 116 kann auch einen Grafikbus 118 zur
Kommunikation mit dem Grafikprozessor 120 vorsehen und
dient als Brücke
zu anderen Bussen, wie etwa einem Peripheral Component-Bus 122.
Ein sekundärer
Speicher, wie etwa eine Disk-Einheit 124, sieht eine weitere
Ebene in der Speicherhierarchie vor.
-
Die
Abbildung aus 2 veranschaulicht einige der
funktionalen Einheiten in dem Mikroprozessor 102, einschließlich der
Befehls- und Datencaches. In dem Mikroprozessor 102 erfasst
die Erfassungseinheit 202 Befehle aus dem Befehlscache 104,
und die Decodierereinheit 206 decodiert diese Befehle.
Bei einer CISC-Architektur (Complex Instruction Set Computer) decodierte
die Decodierereinheit 206 einen komplexen Befehl in einen
oder mehrere Mikrobefehle. Für
gewöhnlich
definieren diese Mikrobefehle eine Lade-Speicher-Architektur, so dass Speicheroperationen
aufweisende Mikrobefehle einfache Lade- oder Speicheroperationen
darstellen. Die vorliegende Erfindung kann allerdings auch für andere
Architekturen ausgeführt
werden, wie etwa für
RISC-(Reduced Instruction
Set Computer) oder VLIW-Architekturen (Very Large Instruction Word).
-
Bei
einer RISC-Architektur werden Befehle nicht in Mikrobefehle decodiert.
Da die vorliegende Erfindung für
RISC-Architekturen
sowie für
CISC-Architekturen ausgeführt
werden kann, wird zwischen Befehlen und Mikrobefehlen nicht unterschieden,
sofern dies nicht ausdrücklich
erwähnt
wird, und beide Befehle werden einfach als Befehle bezeichnet.
-
Die
meisten Befehle arbeiten an verschiedenen Quellenoperanden und erzeugen
Ergebnisse. Sie benennen entweder explizit oder indirekt die Quellen-
und Zielpositionen, von denen Werte gelesen oder an die Werte geschrieben
werden. Ein Name bzw. eine Bezeichnung kann entweder ein logisches
(architektonisches) Register oder einen Speicherplatz darstellen.
Die Umbenennung logischer Register in physikalische Register kann
die Ausführung
von Befehlen abweichend von deren Reihenfolge ermöglichen.
In der Abbildung aus 2 wird die Registerumbenennung
durch eine Umbenennungseinheit 208 ausgeführt, wobei
RAT (Register Allocation Table bzw. Registerzuordnungstabelle) 210 aktuelle
Abbildungen zwischen logischen Registern und physikalischen Registern
speichert. Die physikalischen Register sind durch die Registerdatei 212 bezeichnet.
-
Jedes
logische Register weist eine Abbildung auf ein physikalisches Register
in einer physikalischen Registerdatei 212 auf, wobei die
Abbildung in der RAT 210 als ein Eintrag gespeichert wird.
Ein Eintrag in der RAT 210 wird durch ein logisches Register
indiziert und weist einen Zeiger auf ein physikalisches Register
in der physikalischen Registerdatei 212 auf. Einige Register
in der physikalischen Registerdatei 212 können für ganze
Zahlen reserviert sein, während
andere Register für
Gleitkommazahlen reserviert sein können, wobei diese Unterscheidungen
zur einfacheren Veranschaulichung in der Abbildung aus 2 jedoch
nicht dargestellt sind.
-
Während der
Umbenennung eines Befehls sieht die aktuelle RAT die erforderliche
Abbildung zur Umbenennung des bzw. der logischen Quellenregister
des Befehls vor, und eine neue Abbildung für das logische Zielregister
des Befehls erzeugt.
-
Diese
neue Abbildung löscht
bzw. überschreibt
die alte Abbildung in der RAT.
-
Umbenannte
Befehle werden in dem Befehlsfensterpuffer 216 platziert.
Alle „schwebenden" Befehle weisen einen
Eintrag in dem Befehlsfensterpuffer 216 auf, der als zirkulärer Puffer
arbeitet. Der Befehlsfensterpuffer 216 ermöglicht eine
Auflösung der
Speichermehrdeutigkeit, so dass Speicherverweise korrekt vorgenommen
werden, und der Puffer ermöglicht
die Befehlswiederherstellung in der ursprünglichen Programmreihenfolge.
(Bei CISC-Architekturen wird ein komplexer Befehl beendet, wenn alle
den komplexen Befehl bildenden Mikrobefehle gemeinsam beendet werden.)
-
Bei
einem Befehl, der sein Ergebnis in einen Speicherplatz schreibt,
wird der Datencache 106 (Teil der Speicherhierarchie) nach
der Aufhebung bzw. der Beendigung des Befehls aktualisiert. Bei
einem Befehl, der sein Ergebnis in ein logisches Register schreibt,
muss kein Schreibvorgang nach dem Rückzug ausgeführt werden,
da keine Register als logische Register dediziert sind. (Die physikalische
Registerdatei 212 weist das Ergebnis des beendeten Befehls
in dem physikalischen Register auf, auf das das logische Zielregister
abgebildet worden ist, als der Befehl umbenannt wurde.)
-
Der
Scheduler 218 weist die Laufzeit von Befehlen an die Ausführungseinheiten 220 zur
Ausführung
zu. Zur Vereinfachung ist in den Ausführungseinheiten 220 nur
die Speicherausführungseinheit 224 explizit
dargestellt. Ein Lade- oder
Speicherbefehl wird von dem Scheduler 218 an die AGU (Adresserzeugungseinheit) 222 zur
Berechnung einer linearen Adresse ausgegeben, und die Speicherausführungseinheit 22' übersetzt
die lineare Adresse in eine physikalische Adresse und führt den
Lade- oder Speicherbefehl aus. Die Speicherausführungseinheit kann Daten an
einen Weiterleitungspuffer (nicht abgebildet) an Stelle des Datencaches 106 senden
bzw. von diesem empfangen, wobei ein Weiterleitungspuffer Objekte
speichert, die letztlich nach der Beendigung des Befehls in den
Datencache 106 geschrieben werden können. Die durch den Scheduler 218 ausgeführte Laufzeitzuteilungsfunktion
kann zum Beispiel durch Reservationsstationen (nicht abgebildet)
realisiert werden, welche den Tomasulo-Algorithmus (oder Varianten
dessen implementieren oder eine Ergebnistafel (engl. Scoreboard).
Die Ausführungseinheiten 220 können Daten
von der Registerdatei 212 abrufen oder an diese senden,
abhängig von
dem ausführenden
Befehl.
-
In
anderen Ausführungsbeispielen
der vorliegenden Erfindung kann der Informationsinhalt in den Datenstrukturen
des physikalischen Registerfelds 212 und des Befehlsfensterpuffers 216 durch
verschiedene funktionale Einheiten realisiert werden. Zum Beispiel
kann ein Neuordnungspuffer den Befehlsfensterpuffer 216 und
die physikalische Registerdatei 212 ersetzen, so dass Ergebnisse
in dem Neuordnungspuffer gespeichert werden, und wobei zusätzlich Register
in einer Registerdatei als logische Register dediziert sind. Für diese
Art von Ausführungsbeispiel
wird das Ergebnis eines Befehls, der in ein logisches Register schreibt,
nach der Beendigung des Befehls in ein lokales Register geschrieben.
-
Bei
den meisten modernen Computersystemen verweist ein Mikroprozessor
auf einen Speicherplatz durch das Erzeugen einer linearen Adresse, wobei
ein Objekt aus einem bestimmten Speicherplatz abgerufen wird, indem
dessen physikalische Adresse an einem Adressbus vorgesehen wird,
wie etwa dem Bus 114 aus 1. Lineare
Adressen können
physikalischen Adressen entsprechen, wobei in diesem Fall keine
Adressumsetzung erforderlich ist. Für gewöhnlich wird jedoch ein virtuelles
Speichersystem eingesetzt, wobei lineare Adressen in physikalische
Adressen umgesetzt werden. In diesem Fall kann eine lineare Adresse
auch als virtuelle Adresse bezeichnet werden. Der lineare Adressraum
entspricht der Gruppe aller durch einen Mikroprozessor erzeugten
linearen Adressen, während
der physikalische Adressraum der Gruppe aller physikalischen Adressen
entspricht.
-
Bei
bestimmten Mikroprozessorarchitekturen, wie etwa der Intel® Architecture
32 Bit (IA-329 Mikroprozessoren) (Intel® ist
ein eingetragenes Warenzeichen der Intel Corporation, Santa Clara,
Kalifornien, USA), existiert ferner eine andere Art der Adressumsetzung,
wobei eine logische Adresse in eine lineare Adresse umgewandelt
wird. Bei derartigen Architekturen sehen die Befehle logische Adressversätze bzw.
Adressabstände
vor, die später durch
die AGU 222 aus 2 in lineare Adressen umgesetzt
werden. Diese zusätzliche
Stufe der Adressumsetzung bzw. Adressübersetzung kann eine zusätzliche
Sicherheit vorsehen, wobei z.B. ein Anwendungscode einen überwachenden
(Betriebssystem) Code nicht modifizieren kann.
-
Die
Abbildung einer logischen Adresse auf eine lineare Adresse ist in
der Abbildung aus 3 dargestellt. Eine logische
Adresse umfasst einen Segmentselektor 302a und einen Versatz
bzw. Abstand 304. Der Segmentselektor 302a wird
in dem Segmentregister 302 gespeichert, welches auch den Deskriptorcache 302b aufweist.
Der Segmentselektor 302a zeigt auf den Segmentdeskriptor 308 in
der Deskriptortabelle 306. Die Deskriptortabelle 306 sieht
eine Tabelle von im Speicher gespeicherten Segmentdeskriptoren vor.
Ein Segmentdeskriptor sieht eine Segmentbasisadresse vor, so dass
eine lineare Adresse dadurch erhalten wird, dass ein Versatz bzw.
Abstand zu der durch einen Segmentdeskriptor vorgesehenen Basisadresse
addiert wird, wie dies durch die Summierung 312 dargestellt
ist. Zusätzlich
zum Vorsehen einer Basisadresse weist ein Segmentdeskriptor verschiedene
andere Informationsarten auf, wie etwa Zugangs- bzw. Zugriffsrechte und
Segmentgröße. Die
Basisadresse, die Zugangs- bzw. Zugriffsrechte, die Segmentgröße und weitere Informationen
werden in dem Descriptorcache 302b gespeichert.
-
Ein
virtuelles oder durch die Nachfrage bestimmtes Speicherseitenverwaltungs-Speichersystem
kann als eine Abbildung zwischen einem linearen (virtuellen) Adressraum
und einem physikalischen Adressraum veranschaulicht werden, wie
dies in der Abbildung aus 4 dargestellt
ist. Bei einem virtuellen Speichersystem sind die linearen und physikalischen
Adressräume
in Blöcke
zusammenhängender
Adressen aufgeteilt, die für
gewöhnlich
als Seiten bezeichnet werden, wenn sie eine konstante Größe oder
eine von verschiedenen festen Größen aufweisen.
Eine typische Seitengröße kann
zum Beispiel 4 KBytes entsprechen.
-
Die
in der Abbildung aus 4 dargestellte Abbildung veranschaulicht
eine generische hierarchische Abbildung mit zwei Ebenen, welche
Verzeichnistabellen und Seitentabellen umfasst. Die Seitenverzeichnistabellen
und die Seitentabellen sind in dem physikalischen Speicher gespeichert,
und deren Größe entspricht
für gewöhnlich auch
einer Seite. Ein Seitenverzeichnistabelleneintrag (PDE) zeigt auf eine
Seitentabelle in dem physikalischen Speicher, und ein Seitentabelleneintrag
(PTE) zeigt auf eine Seite in dem physikalischen Speicher. Bei der
hierarchischen Abbildung mit zwei Ebenen aus 4 umfasst
eine lineare Adresse das Verzeichnisfeld 402, das Tabellenfeld 404 und
das Versatzfeld 406. Ein Verzeichnisfeld ist ein Versatz
eines PDE, wobei ein Tabellenfeld einen Versatz eines PTE darstellt,
und wobei ein Versatzfeld einem Versatz von einem Speicherplatz
auf einer Seite entspricht.
-
In
der Abbildung aus 4 zeigt das Seitenverzeichnisbasisregister
(PDBR) 408 auf die Basisadresse des Seitenverzeichnisses 410,
und der in dem Verzeichnisfeld 402 gespeicherte Wert wird
zu dem in dem PDBR 408 gespeicherten Wert addiert, um die
physikalische Adresse des PDE 412 in dem Seitenverzeichnis 410 vorzusehen.
Der PDE 412 wiederum zeigt auf die Basisadresse der Seitentabelle 412,
die zu dem in dem Tabellenfeld 404 gespeicherten Wert addiert
wird, um auf den PTE 416 in der Seitentabelle 414 zu
zeigen. Der PTE 416 zeigt auf die Basisadresse der Seite 418,
und diese Seitenbasisadresse wird zu dem in dem Versatz 406 gespeicherten
Wert addiert, um die physikalische Adresse 420 vorzusehen.
Die lineare Adresse 422 wird dadurch auf die physikalische
Adresse 420 abgebildet.
-
Für den Zugriff
auf in Seitenverzeichnissen und Seitentabellen gespeicherte Einträge sind Speicherbustransaktionen
erforderlich, die in Bezug auf die Prozessorzykluszeit aufwändig sein
können. Aufgrund
des Prinzips der Lokalität
bzw. der Anordnung kann die Anzahl der Speicherbustransaktionen allerdings
reduziert werden, indem aktuelle Abbildungen zwischen linearen und
physikalischen Adressen in einem Cache gespeichert werden, der als
Adressumsetzpuffer (TLB als englische Abkürzung von Translation Look-Aside
Buffer) bezeichnet wird. Für die Befehlsadressen
und die Datenadressen können separate
TLBs vorgesehen sein. Die Einträge
in einen TLB können
durch lineare Adressen indiziert werden. Ein Treffer in einem TLB
sieht die physikalische Adresse vor, die einer linearen Adresse
zugeordnet ist. Wenn ein Fehler vorliegt, wird auf die Speicherhierarchie
zugegriffen, wobei dies teilweise als Seitenlauf (Page-Walk) bezeichnet
wird, wie dies in der Abbildung aus 4 dargestellt
ist, um die Umsetzung einer linearen Adresse in eine physikalische Adresse
zu erreichen.
-
Einige
IA-32 Mikroprozessoren verwenden verschiedene Modi zur Umsetzung
linearer Adressen in physikalische Adressen, und wobei drei derartige Modi
berücksichtigt
werden, die hierin als die Modi A, B und C bezeichnet sind. Der
Modus A unterstützt
einen physikalischen Adressraum von 32 Bit mit Seitengrößen von
4 KB. Der Modus B unterstützt
einen physikalischen Adressraum von 32 Bit mit Seitengrößen von
entweder 4 KB oder 4 MB. Für
die Modi A und B entsprechen die Seiten- und Verzeichnistabelleneinträge jeweils
4 Byte. Der Modus C unterstützt einen
physikalischen Adressraum von 36 Bit für eine physikalische Adressgröße von 64
GB (physikalische Adresserweiterung) mit Seitengrößen von
entweder 4 KB oder 2 MB. In dem Modus C entsprechen die Seiten-
und Verzeichnistabelleneinträge
jeweils 8 Byte. Für
jeden Modus entsprechen die Seiten- und Verzeichnistabellen in der
Größe einer
Seite. Alle Modi dienen der Umsetzung linearer 32-Bit-Adressen.
-
Der
Modus A ist in der Abbildung aus 5 veranschaulicht,
wobei die ersten 12 Bits einer linearen Adresse als Versatz bzw.
als Abstand zu einer physikalischen Adresse in einem Seiten-Frame
verwendet werden, wobei die nächsten
10 Bits der linearen Adresse als Versatz in eine Seitentabelle verwendet werden,
und wobei die höchsten
10 Bits der linearen Adresse als ein Versatz in ein Seitenverzeichnis
verwendet werden. Zum Beispiel sieht der PTE 502 aus 5 in
der Seitentabelle 504, auf den das Tabellenfeld 506 der
linearen Adresse zeigt, die Adresse des gewünschten Seiten-Frames in dem physikalischen
Speicher vor, und bei einer Verkettung mit dem Versatz 508 der
linearen Adresse wird die physikalische Adresse des gewünschten
Objekts vorgesehen. Das PDBR-Register, die Seitenverzeichniseinträge und die
Seitentabelleneinträge
sehen jeweils die oberen 20 Bits einer 32-Bit-Adresse vor, so dass
eine Ausrichtung der Seitenverzeichnisse, der Seitentabellen und
Seiten an 9-KB-Grenzen erzwungen wird.
-
Der
Modus B für
Seitengrößen von
4 MB ist in der Abbildung aus 6 veranschaulicht.
Für Seitengrößen von
4 KB entspricht der Modus B dem Modus A. Die ersten 22 Bits der
linearen Adresse sehen den Versatz in einen physikalischen Seiten-Frame von
4 MB vor, und die höchsten
10 Bits der linearen Adresse sehen den Versatz in eine Seitentabelle
vor. Hiermit wird festgestellt, dass der Modus B mit einer Seitengröße von 4
MB nur eine Ebene der Adressumsetzung erfordert. Ein PDE in dem
Seitenverzeichnis aus 6 sieht die oberen 10 Bits einer 32-Bit-Adresse
vor, um zu erzwingen, dass die Seiten an 4-MB-Grenzen ausgerichtet werden.
-
Der
Modus C für
Seitengrößen von
4 KB ist in der Abbildung aus 7 veranschaulicht.
Dies umfasst eine dritte Ebene der Adressumsetzung, die durch eine
Seitenverzeichniszeigertabelle (PDPT) 702 vorgesehen wird.
Jeder Eintrag in der PDPT 702 entspricht 8 Bytes, und in
einer PDPT gibt es vier Einträge.
Das PDBR 704 sieht die oberen 27 Bits einer 32-Bit-Adresse
vor, die auf die Basis einer PDPT zeigt, so dass PDPTs zu einer
Ausrichtung an 32-Byte-Grenzen gezwungen werden. Jeder Eintrag in
der PDPT, dem Seitenverzeichnis und der Seitentabelle sieht die
oberen 24 Bits einer 36-Bit-Adresse vor, so dass Seitenverzeichnisse,
Seitentabellen und Seiten zu einer Ausrichtung an 4-KB-Grenzen gezwungen
werden.
-
Der
Modus C für
eine Seitengröße von 2
MB ist in der Abbildung aus 8 veranschaulicht.
Nur zwei Ebenen der Adressumsetzung sind erforderlich, wobei erneut
eine PDT mit vier Einträgen
verwendet wird, um auf ein Seitenverzeichnis zu zeigen. Einträge in dem
Seitenverzeichnis sehen die oberen 15 Bits einer 36-Bit-Adresse
vor, so dass eine Ausrichtung der Seiten an 2-MB-Grenzen erzwungen
wird.
-
Der
in den Abbildungen der 7 und 8 für den Modus
C beschriebene Seitenaufbau ermöglicht
zu jedem bestimmten Zeitpunkt die Adressierung von bis zu 4 GB des
erweiterten Adressraums von 64 GB. Zur Adressierung der anderen
Abschnitte bzw. Bereiche von 4 GB des erweiterten Adressraums kann
ein anderer Eintrag in dem Register PDBR platziert werden, so dass
er auf eine andere PDPT zeigt, oder die Einträge in der PDPT kann geändert werden.
Weitere Einzelheiten zu der Adressumsetzung für die IA-32 Architektur finden
sich in dem Handbuch Intel Architecture Developer's Manual for the
Pentium® Pro,
Vol. 3, erhältlich
von der Intel Corporation. (Pentium® ist
ein eingetragenes Warenzeichen der Intel Corporation.)
-
Eine
Erweiterung des linearen Adressraums eines Mikroprozessors sieht
einen größeren Benutzer-
und Systemraum vor und verringert die der Erschöpfung der linearen Adresse
zugeordnete Belastung für
einen größeren physikalischen
Adressraum. Eine Vergrößerung der
Wortgröße eines
Mikroprozessors, wie zum Beispiel von 32 Bits auf 64 Bits, um einen
größeren linearen
Adressraum vorzusehen, ist eine große Aufgabe für die Entwicklung
der Bauweise. Somit kann es wirtschaftlich sein, den linearen Adressraum
der Konstruktion eines bestehenden Mikroprozessors zu vergrößern, ohne
dabei die Wortgröße des Adressraums
zu vergrößern. Ferner
kann es für
einen Mikroprozessor mit einem größeren linearen Adressraum vorteilhaft
sein, wenn dieser mit dem Code abwärtskompatibel ist, der für den linearen Adressraum
der ursprünglichen
Größe und unterstützte Speicherseitenverwaltungsstrukturen
entwickelt worden ist.
-
EP-A-0530682
offenbart Möglichkeiten
zur Ermittlung von Steuerungserweiterungen zur Erweiterung der Größe kleiner
realer und absoluter Adressen, um es diesen zu ermöglichen,
Daten- oder Programmobjekte an einer beliebigen Stelle in einem sehr
großen
Speicher zu lokalisieren. Die Steuerungserweiterungen sind mit dem
Ende hoher Ordnung einer auf herkömmliche Art und Weise erzeugten
realen oder absoluten Adresse einer Größe von weniger als 32 Bit verkettet,
um eine reale/absolute Adresse mit einer Größe von mehr als 31 Bit vorzusehen.
-
Das
U.S. Patent US-A-5.566.308 offenbart einen Prozessorkern zum Bereitstellen
einer linearen Erweiterung des adressierbaren Speicherraums eines
Mikroprozessors mit minimaler zusätzlicher Hardware- und Software-Komplexität. Ein Programmzähler speichert
eine N+x-Bit-Befehlsadresse, wobei die Adresse einen Zeiger auf
einen Befehl in dem Speicher für
eine Verarbeitung durch eine Ausführungseinheit vorsieht. Das
Referenzdokument offenbart ferner einen Adressgestalter, der die
Abschnitte der Adresse in zwei Registern zur Gestaltung der Datenadresse
verkettet.
-
Zusammenfassung
der Erfindung
-
Vorgesehen
ist gemäß einem
ersten Aspekt der vorliegenden Erfindung ein Mikroprozessor gemäß dem gegenständlichen
Anspruch 1.
-
Vorgesehen
ist gemäß einem
zweiten Aspekt der vorliegenden Erfindung ein Verfahren gemäß dem gegenständlichen
Anspruch 5.
-
Vorgesehen
ist gemäß einem
dritten Aspekt der vorliegenden Erfindung ein Computerprogramm gemäß dem gegenständlichen
Anspruch 7.
-
Kurze Beschreibung
der Zeichnungen
-
Es
zeigen:
-
1 ein
dem Stand der Technik entsprechendes Diagramm eines Computersystems;
-
2 ein
dem Stand der Technik entsprechendes Diagramm eines Mikroprozessors;
-
3 eine
dem Stand der Technik entsprechende Veranschaulichung zur Umsetzung
einer logischen Adresse in eine lineare Adresse;
-
4 eine
dem Stand der Technik entsprechende Veranschaulichung zur Umsetzung
einer linearen Adresse in eine physikalische Adresse;
-
5 eine
dem Stand der Technik entsprechende Veranschaulichung zur Umsetzung
einer linearen 32-Bit-Adresse in eine physikalische 32-Bit-Adresse
durch 4-KByte-Speicherseitenverwaltung;
-
6 eine
dem Stand der Technik entsprechende Veranschaulichung zur Umsetzung
einer linearen 32-Bit-Adresse in eine physikalische 32-Bit-Adresse
durch 4-MByte-Speicherseitenverwaltung;
-
7 eine
dem Stand der Technik entsprechende Veranschaulichung zur Umsetzung
einer linearen 32-Bit-Adresse in eine physikalische 36-Bit-Adresse
durch 4-KByte-Speicherseitenverwaltung;
-
8 eine
dem Stand der Technik entsprechende Veranschaulichung zur Umsetzung
einer linearen 32-Bit-Adresse in eine physikalische 36-Bit-Adresse
durch 2-MByte-Speicherseitenverwaltung;
-
9 ein
Ausführungsbeispiel
zum Vorsehen einer erweiterten linearen Adresse;
-
10 ein
weiteres Ausführungsbeispiel zum
Vorsehen einer erweiterten linearen Adresse;
-
10a eine beispielhafte Implementierung der Abbildung
aus 10;
-
11 ein
Ausführungsbeispiel
zur Umsetzung einer linearen 42-Bit-Adresse in eine physikalische
36-Bit-Adresse mit 4-KByte-Speicherseitenverwaltung
und 4-Byte-Einträgen;
-
12 ein
Ausführungsbeispiel
zur Umsetzung einer linearen 42-Bit-Adresse in eine physikalische
36-Bit-Adresse mit 4-KByte-Speicherseitenverwaltung
und 4-Byte-Einträgen;
-
13 ein
Ausführungsbeispiel
zur Umsetzung einer linearen 42-Bit-Adresse in eine physikalische
36-Bit-Adresse mit 4-KByte-Speicherseitenverwaltung
und 8-Byte-Einträgen;
und
-
14 ein
Ausführungsbeispiel
zur Umsetzung einer linearen 42-Bit-Adresse in eine physikalische
36-Bit-Adresse mit 2-MByte-Speicherseitenverwaltung
und 8-Byte-Einträgen.
-
Genaue Beschreibung
der Ausführungsbeispiele
der Erfindung
-
Ausführungsbeispiele
der vorliegenden Erfindung sehen einen abwärts- bzw. rückwärtskompatiblen linearen Adressraum
unter Verwendung von einem oder mehreren Operationscodes vor, um
anzuzeigen, wenn eine erweiterte lineare Adressierung zu verwenden
ist. In einem Ausführungsbeispiel
zeigt ein Operationscode an, ob ein LAE-Bit (LAE als englische Abkürzung von
Linear Address Extension) in einem Mikroprozessorregister gesetzt
werden muss. Wenn das LAE-Bit gesetzt wird, setzt die AGU 222 logische
Adressen in erweiterte lineare Adressen um.
-
Die
Abbildung aus 9 veranschaulicht eine Anordnung
zur Umsetzung logischer Adressen in erweiterte lineare Adressen.
Das Segmentregister 902 wird über das Ausmaß hinaus
erweitert, das für die
Auswahl eines Segmentdeskriptors erforderlich ist, wie dies in der
Abbildung aus 9 ersichtlich ist. Ein Abschnitt
des Segmentregisters 902, bezeichnet durch den Segmentselektor 904,
wird zur Auswahl der Deskriptortabelle 806 und des Segmentdeskriptors 908 verwendet,
um eine Basisadresse gemäß der vorstehenden
Beschreibung vorzusehen, und ein Versatzwert in dem Versatzregister 910 wird
zu der Basisadresse addiert, um einen unteren Abschnitt der erweiterten
linearen Adresse vorzusehen, angezeigt durch 912. Ein Abschnitt
des Segmentregisters 902, der nicht für die Auswahl des Segmentdeskriptors 908 verwendet
wird, bezeichnet durch die Segmenterweiterung 914, bildet
den oberen Abschnitt der erweiterten linearen Adresse, bezeichnet
durch 916. Wenn 914 zu dem unteren Abschnitt der
linearen Adresse 912 addiert oder mit diesem verkettet wird,
erhält
man die erweiterte lineare Adresse.
-
Bei
einer weiteren Anordnung sehen Befehle die erweiterte lineare Adresse über ihre
Quellenregister vor, wobei die erweiterte lineare Adresse durch Verkettung
der in den Quellenregistern gespeicherten Werte erhalten wird. Zum
Beispiel können
neue Befehle zum Laden, Speichern, Addieren und Austauschen von
Objekten im Speicher in die Befehlsgruppe eingeführt werden. Diese neuen Befehle
werden durch den Decodierer 206 in einen Mikrobefehl oder
in mehrere Mikrobefehle decodiert, wobei ein Mikrobefehl eine erweiterte
lineare Adresse über Quellenregister
in dem Operationscode spezifiziert.
-
Diese
Prozedur ist in dem Flussdiagramm aus 10 veranschaulicht.
In dem Schritt 1002 werden die Werte in dem durch den decodierten
Befehl bezeichneten Quellenregister verkettet, so dass die erweiterte
lineare Adresse erzeugt wird, vorausgesetzt, dass es sich bei dem
decodierten Befehl um einen Befehl handelt, welcher der Befehlsgruppe
angehört,
die in dem erweiterten linearen Adressraum aktiv ist. Wenn ein decodierter
Befehl in dem ursprünglichen
linearen Adressraum aktiv sein soll, so wird in dem Schritt 1004 der
durch den Befehl vorgesehene Versatz zu der durch den Segmentdeskriptor vorgesehenen
Basisadresse addiert, um die lineare Adresse zu erhalten.
-
Die
Abbildung aus 10a sieht eine Implementierung
der Abbildung aus 10 vor. Die Multiplexer 1006, 1008 und 1010 wählen ihre
Eingaben auf der Basis aus, ob ein Mikrobefehl für eine erweiterte lineare Adresse
gegeben ist (die Leitung LAEuop wird geltend gemacht). Wenn die
Leitung LAEuop nicht geltend gemacht wird, sehen die Multiplexer 1006 und 1008 an
die AGU 222 direkt entsprechend eine Befehlswarteschlange
und eine Segmentbasisadresse vor, so dass die lineare Adresse auf
herkömmliche
Art und Weise berechnet werden kann. Wenn LAEuop jedoch geltend
gemacht wird, seht der Multiplexer 1010 die Verkettung
der Inhalte der Register R1 und R2 vor, so dass eine erweiterte lineare
Adresse erhalten wird.
-
Sobald
eine erweiterte lineare Adresse erzeugt worden ist, wird sie in
eine physikalische lineare Adresse umgesetzt. Die Ausführungsbeispiele
der vorliegenden Erfindung sehen diese Adressumsetzung vor, indem
eine zusätzliche
Umsetzungsebene in die Hierarchie der Adressumsetzung eingeführt wird,
wobei diese zusätzliche
Umsetzungsebene unter bestimmten Bedingungen verwendet wird, sofern eine
erweiterte lineare Adressierung angezeigt wird.
-
Die
Abbildung aus 11 veranschaulicht ein Ausführungsbeispiel
der erweiterten linearen Adressumsetzung mit 4-KB-Speicherseitenverwaltung.
In dem speziellen Beispiel aus 11 entspricht
eine erweiterte lineare Adresse 42 Bits, wobei die höchsten zehn
Bits als Versatz in das Seitenverzeichnis 1102 verwendet
werden. Die Basisadresse für
das Seitenverzeichnis 1102 wird durch das PDBR 1104 vorgesehen.
Der Mux (Multiplexer) 1106 wird in der Abbildung aus 11 symbolisch
verwendet um anzuzeigen, dass wenn eine erweiterte lineare Adressierung
angezeigt wird, der durch das Seitenverzeichnis 1102 vorgesehene
PDE als Basisadresse für
die nächst
niedrigere Ebene der Adressumsetzung verwendet wird, wobei es sich
um das Seitenverzeichnis 1108 handelt. Die erweiterte lineare Adressierung
kann zum Beispiel angezeigt werden, wenn ein LAE-Bit gesetzt ist
oder wenn nicht alle der oberen zehn Bits der linearen Adresse gleich
Null sind. Wenn eine erweiterte lineare Adressierung nicht unterstützt wird,
zeigt der Mux 1106 symbolisch an, dass das PDBR 1104 verwendet
wird, um auf die Basisadresse des Seitenverzeichnisses 1108 zu
zeigen. Die Verzeichnis- und Seitentabelleneinträge entsprechen jeweils 4 Bytes.
Der PTE 1110 sieht die oberen 24 Bits einer physikalischen
36-Bit-Adresse vor, die verkettet mit 12 Bits des Versatzes 1112 eine 36-Bit-Adresse
vorsehen. Der physikalische Adressraum entspricht 64 GB.
-
Ein
Ausführungsbeispiel
für die
erweiterte lineare Adressumsetzung mit 4-MB-Speicherseitenverwaltung
ist in der Abbildung aus 12 dargestellt.
Das Seitenverzeichnis 1202 sieht eine zusätzliche
Ebene der Adressumsetzung vor, und zwar abhängig davon, ob die erweiterte
lineare Adressierung angezeigt ist. Aufgrund der Seitengröße werden
nur zwei Ebenen der Seitenverzeichnisse zur Umsetzung einer erweiterten
linearen Adresse in eine physikalische Adresse verwendet. Jeder
Seitenverzeichniseintrag aus 12 entspricht
4 Bytes, und der physikalische Adressraum entspricht 64 GB.
-
Die
Abbildung aus 13 zeigt ein Ausführungsbeispiel
für die
erweiterte lineare Adressumsetzung mit 4-KB-Speicherseitenverwaltung in einem erweiterten
physikalischen Adressraum von 64 GB. Wie in Modus C aus 7,
wenn eine erweiterte lineare Adressumsetzung nicht angezeigt ist,
wird das PDBR 1302 verwendet, um auf die Basisadresse der PDPT 1304 zu
zeigen, die für
gewöhnlich
in einem Cache gespeichert wird. Zur Unterstützung der erweiterten linearen
Adressumsetzung wird das PDBR 1302 verwendet, um auf die
Basisadresse des Seitenverzeichnisses 1306 zu zeigen, und
die Bitpositionen 30 bis 38 (Adr[38:30]) der erweiterten
linearen Adresse sehen den Versatz in das Seitenverzeichnis 1306 vor.
Hiermit wird festgestellt, dass die ersten vier Einträge in dem
Seitenverzeichnis 1306 auch in der PDPT 1304 im
Cache gespeichert werden. In Bezug auf die Abbildung aus 13 entsprechen
die Verzeichnis- und Seitentabelleneinträge jeweils 8 Bytes, und die
Anzahl der Einträge
in jedem Verzeichnis und auf jeder Seite entspricht 29 =
512, so dass die Größe jedes
Verzeichnisses und jeder Seite gleich 4 KB ist. Da nur neun Bits
als Versatz in das Seitenverzeichnis 1306 verwendet werden,
werden Bits oberhalb der Position 38 in der linearen Adresse in
diesem Ausführungsbeispiel
nicht verwendet. Wenn das lineare Adressregister folglich 42 Bits
entspricht, wird eine erweiterte Adressumsetzung für lineare
42-Bit-Adressen verwendet, wobei die höchsten drei Bits gleich Null
sind.
-
Die
Abbildung aus 14 zeigt ein Ausführungsbeispiel
für die
erweiterte lineare Adressumsetzung mit einer 2-MB-Speicherseitenverwaltung
in einem erweiterten physikalischen Adressraum von 64 GB und ist
somit selbsterklärend.
Die Einträge
in die Seitenverzeichnisse aus 14 entsprechen
acht Bytes, so dass wie in der Abbildung aus 13 die linearen
Adressbits oberhalb der Position 38 gleich Null sind.
-
In
Bezug auf die offenbarten Ausführungsbeispiele
sind verschiedene Modifikationen möglich, ohne dabei von dem nachstehend
beanspruchten Umfang der Erfindung abzuweichen.