DE60023002T2 - Erweiterung und abbildung auf physikalischem speicher von linearen adressen unter verwendung von 4 und 8 byte seitentabelleneinträgen in einem 32-bit mikroprozessor - Google Patents

Erweiterung und abbildung auf physikalischem speicher von linearen adressen unter verwendung von 4 und 8 byte seitentabelleneinträgen in einem 32-bit mikroprozessor Download PDF

Info

Publication number
DE60023002T2
DE60023002T2 DE60023002T DE60023002T DE60023002T2 DE 60023002 T2 DE60023002 T2 DE 60023002T2 DE 60023002 T DE60023002 T DE 60023002T DE 60023002 T DE60023002 T DE 60023002T DE 60023002 T2 DE60023002 T2 DE 60023002T2
Authority
DE
Germany
Prior art keywords
address
segment
page
offset
pointer
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 - Lifetime
Application number
DE60023002T
Other languages
English (en)
Other versions
DE60023002D1 (de
Inventor
Shahrokh Shahidzadeh
E. Bryant BIGBEE
B. David PAPWORTH
Frank Binns
P. Robert COLWELL
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.)
Intel Corp
Original Assignee
Intel 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 Intel Corp filed Critical Intel Corp
Publication of DE60023002D1 publication Critical patent/DE60023002D1/de
Application granted granted Critical
Publication of DE60023002T2 publication Critical patent/DE60023002T2/de
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/34Addressing or accessing the instruction operand or the result ; Formation of operand address; Addressing modes
    • G06F9/342Extension of operand address space
    • 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/0223User address space allocation, e.g. contiguous or non contiguous base addressing
    • G06F12/0292User address space allocation, e.g. contiguous or non contiguous base addressing using tables or multilevel address translation means

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Memory System Of A Hierarchy Structure (AREA)
  • Executing Machine-Instructions (AREA)

Description

  • 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.

Claims (8)

  1. Mikroprozessor, der folgendes umfasst: einen Decodierer zum Decodieren von Befehlen um einen Versatz vorzusehen; ein Segmentregister (902) zum Speichern eines Segmentselektors (904) und einer Segmenterweiterung (914); eine Adresserzeugungseinheit (10061010) zum Erzeugen einer erweiterten linearen Adresse, wobei die genannte erweiterte lineare Adresse einen unteren Abschnitt und einen oberen Abschnitt umfasst, wobei der untere Abschnitt auf dem Versatz (910) und dem Segmentselektor basiert, und wobei der obere Abschnitt auf der Segmenterweiterung (914) basiert, wobei während einem Seitenlauf zur Übersetzung der erweiterten linearen Adresse in eine physikalische Adresse im erweiterten linearen Adressmodus der Mikroprozessor einen ersten Zeiger auf eine ersten Seitenverzeichnistabelle (1108) verwendet, wobei der obere Abschnitt als ein Versatz verwendet wird, in Verbindung mit einem zweiten Zeiger (1104), der als eine Basisadresse für den Verweis auf eine zweite Tabelle (1102) verwendet wird, um den genannten ersten Zeiger zu erhalten, und wobei der Mikroprozessor, wenn er sich während dem Seitenlauf nicht in dem erweiterten linearen Adressmodus befindet, den genannten zweiten Zeiger (1104) für einen Verweis auf das genannte erste Seitenverzeichnis verwendet, wobei der genannte zweite Zeiger die Segmenterweiterung nicht verwendet.
  2. Mikroprozessor nach Anspruch 1, wobei die Adresserzeugungseinheit den unteren Abschnitt als die Summe des Versatzes und einer Basisadresse verwendet, wobei die Basisadresse durch einen Segmentdeskriptor aus einer Deskriptortabelle vorgesehen wird, die im Speicher gespeichert ist und auf die der Segmentselektor zeigt, wobei der obere Abschnitt der Segmenterweiterung entspricht.
  3. Mikroprozessor nach Anspruch 2, wobei es sich bei dem Mikroprozessor um einen 32-Bit-Prozessor handelt, und wobei die erweiterte lineare Adresse mehr als 32 Bits aufweist.
  4. Computer, der folgendes umfasst: einen Systembus (14); einen mit dem Systembus gekoppelten Speicher (112); und einen Mikroprozessor (102) gemäß den vorstehenden Ansprüchen, der mit dem Systembus gekoppelt ist.
  5. Verfahren zum Ausführen eines Seitenlaufs, wobei das Verfahren folgendes umfasst: Erzeugen einer erweiterten linearen Adresse, die einen unteren Abschnitt umfasst, auf der Basis eines Versatzes und eines Segmentselektors, und mit einem oberen Abschnitt auf der Basis einer Segmenterweiterung; Auswahl eines ersten Zeigers, um auf eine erste Seitenverzeichnistabelle im Speicher zu zeigen, wobei der genannte obere Abschnitt als ein Versatz verwendet wird, in Verbindung mit einem zweiten Zeiger (1104), der als eine Basisadresse zum Verweis auf eine zweite Tabelle (1102) verwendet wird, um den genannten ersten Zeiger zu erhalten, und zwar in einem erweiterten linearen Adressmodus; und Auswahl des genannten zweiten Zeigers, um auf die genannte erste Seitenverzeichnistabelle im Speicher zu zeigen, und wobei die Segmenterweiterung nicht verwendet wird, wenn man sich nicht in dem erweiterten linearen Adressmodus befindet.
  6. Verfahren nach Anspruch 5, wobei der Versatz durch mindestens einen Abschnitt einer in einem Segmentregister gespeicherten Segmenterweiterung vorgesehen wird.
  7. Computerprogrammprodukt, das eine Computerprogrammcodeeinrichtung umfasst, die alle Schritte aus Anspruch 5 ausführen kann, wenn sie auf einem Computer ausgeführt wird.
  8. Computerprogrammprodukt nach Anspruch 7, ausgeführt auf einem computerlesbaren Medium.
DE60023002T 1999-03-12 2000-02-29 Erweiterung und abbildung auf physikalischem speicher von linearen adressen unter verwendung von 4 und 8 byte seitentabelleneinträgen in einem 32-bit mikroprozessor Expired - Lifetime DE60023002T2 (de)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US267796 1999-03-12
US09/267,796 US6349380B1 (en) 1999-03-12 1999-03-12 Linear address extension and mapping to physical memory using 4 and 8 byte page table entries in a 32-bit microprocessor
PCT/US2000/005420 WO2000055723A1 (en) 1999-03-12 2000-02-29 Linear address extension and mapping to physical memory using 4 and 8 byte page table entries in a 32-bit microprocessor

Publications (2)

Publication Number Publication Date
DE60023002D1 DE60023002D1 (de) 2006-02-16
DE60023002T2 true DE60023002T2 (de) 2006-07-20

Family

ID=23020153

Family Applications (1)

Application Number Title Priority Date Filing Date
DE60023002T Expired - Lifetime DE60023002T2 (de) 1999-03-12 2000-02-29 Erweiterung und abbildung auf physikalischem speicher von linearen adressen unter verwendung von 4 und 8 byte seitentabelleneinträgen in einem 32-bit mikroprozessor

Country Status (8)

Country Link
US (1) US6349380B1 (de)
EP (1) EP1188113B1 (de)
JP (1) JP4593792B2 (de)
CN (1) CN1149473C (de)
AU (1) AU3390900A (de)
DE (1) DE60023002T2 (de)
HK (1) HK1043215B (de)
WO (1) WO2000055723A1 (de)

Families Citing this family (60)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6487627B1 (en) * 1999-12-22 2002-11-26 Intel Corporation Method and apparatus to manage digital bus traffic
US6918119B2 (en) * 2000-04-20 2005-07-12 International Business Machines Corporation Method and system to improve usage of an instruction window buffer in multi-processor, parallel processing environments
US6651160B1 (en) * 2000-09-01 2003-11-18 Mips Technologies, Inc. Register set extension for compressed instruction set
US6578122B2 (en) * 2001-03-01 2003-06-10 International Business Machines Corporation Using an access key to protect and point to regions in windows for infiniband
US6671791B1 (en) * 2001-06-15 2003-12-30 Advanced Micro Devices, Inc. Processor including a translation unit for selectively translating virtual addresses of different sizes using a plurality of paging tables and mapping mechanisms
DE10131124A1 (de) * 2001-06-28 2003-01-23 Infineon Technologies Ag Konfigurierbare Adressierungsvorrichtung
EP1278120A1 (de) * 2001-07-18 2003-01-22 Infineon Technologies AG Controller und Verfahren zum Ansteuern einer zentralen Verarbeitungseinheit für eine Speicheradressierung
US6807616B1 (en) * 2001-08-09 2004-10-19 Advanced Micro Devices, Inc. Memory address checking in a proccesor that support both a segmented and a unsegmented address space
US6851040B2 (en) * 2001-08-15 2005-02-01 Transmeta Corporation Method and apparatus for improving segmented memory addressing
FR2831289B1 (fr) * 2001-10-19 2004-01-23 St Microelectronics Sa Microprocesseur disposant d'un espace adressable etendu
US7383419B2 (en) * 2002-05-24 2008-06-03 Nxp B.V. Address generation unit for a processor
US7299338B2 (en) * 2002-12-04 2007-11-20 Agere Systems Inc. Vector indexed memory unit and method
US7240179B1 (en) * 2004-12-13 2007-07-03 Nvidia Corporation System, apparatus and method for reclaiming memory holes in memory composed of arbitrarily-sized memory devices
US7707385B2 (en) * 2004-12-14 2010-04-27 Sony Computer Entertainment Inc. Methods and apparatus for address translation from an external device to a memory of a processor
US7743233B2 (en) * 2005-04-05 2010-06-22 Intel Corporation Sequencer address management
US7644251B2 (en) * 2005-12-19 2010-01-05 Sigmatel, Inc. Non-volatile solid-state memory controller
US7725656B1 (en) 2006-10-18 2010-05-25 Guillermo Rozas Braided set associative caching techniques
US9244855B2 (en) 2007-12-31 2016-01-26 Intel Corporation Method, system, and apparatus for page sizing extension
US8635415B2 (en) * 2009-09-30 2014-01-21 Intel Corporation Managing and implementing metadata in central processing unit using register extensions
KR20120088783A (ko) * 2009-10-30 2012-08-08 인텔 코오퍼레이션 계층적 가속 구조를 사용한 그래픽 렌더링
GB2478727B (en) * 2010-03-15 2013-07-17 Advanced Risc Mach Ltd Translation table control
US8650337B2 (en) 2010-06-23 2014-02-11 International Business Machines Corporation Runtime determination of translation formats for adapter functions
US8645606B2 (en) 2010-06-23 2014-02-04 International Business Machines Corporation Upbound input/output expansion request and response processing in a PCIe architecture
US8505032B2 (en) 2010-06-23 2013-08-06 International Business Machines Corporation Operating system notification of actions to be taken responsive to adapter events
US8468284B2 (en) 2010-06-23 2013-06-18 International Business Machines Corporation Converting a message signaled interruption into an I/O adapter event notification to a guest operating system
US8572635B2 (en) 2010-06-23 2013-10-29 International Business Machines Corporation Converting a message signaled interruption into an I/O adapter event notification
US8639858B2 (en) 2010-06-23 2014-01-28 International Business Machines Corporation Resizing address spaces concurrent to accessing the address spaces
US8626970B2 (en) 2010-06-23 2014-01-07 International Business Machines Corporation Controlling access by a configuration to an adapter function
US8549182B2 (en) 2010-06-23 2013-10-01 International Business Machines Corporation Store/store block instructions for communicating with adapters
US8918573B2 (en) 2010-06-23 2014-12-23 International Business Machines Corporation Input/output (I/O) expansion response processing in a peripheral component interconnect express (PCIe) environment
US8621112B2 (en) 2010-06-23 2013-12-31 International Business Machines Corporation Discovery by operating system of information relating to adapter functions accessible to the operating system
US8478922B2 (en) 2010-06-23 2013-07-02 International Business Machines Corporation Controlling a rate at which adapter interruption requests are processed
US8416834B2 (en) 2010-06-23 2013-04-09 International Business Machines Corporation Spread spectrum wireless communication code for data center environments
US8635430B2 (en) 2010-06-23 2014-01-21 International Business Machines Corporation Translation of input/output addresses to memory addresses
US8615622B2 (en) 2010-06-23 2013-12-24 International Business Machines Corporation Non-standard I/O adapters in a standardized I/O architecture
US8650335B2 (en) 2010-06-23 2014-02-11 International Business Machines Corporation Measurement facility for adapter functions
US8677180B2 (en) 2010-06-23 2014-03-18 International Business Machines Corporation Switch failover control in a multiprocessor computer system
US8645767B2 (en) 2010-06-23 2014-02-04 International Business Machines Corporation Scalable I/O adapter function level error detection, isolation, and reporting
US9195623B2 (en) 2010-06-23 2015-11-24 International Business Machines Corporation Multiple address spaces per adapter with address translation
US9342352B2 (en) 2010-06-23 2016-05-17 International Business Machines Corporation Guest access to address spaces of adapter
US8566480B2 (en) 2010-06-23 2013-10-22 International Business Machines Corporation Load instruction for communicating with adapters
US8510599B2 (en) 2010-06-23 2013-08-13 International Business Machines Corporation Managing processing associated with hardware events
US8417911B2 (en) 2010-06-23 2013-04-09 International Business Machines Corporation Associating input/output device requests with memory associated with a logical partition
US9213661B2 (en) 2010-06-23 2015-12-15 International Business Machines Corporation Enable/disable adapters of a computing environment
US8615645B2 (en) 2010-06-23 2013-12-24 International Business Machines Corporation Controlling the selectively setting of operational parameters for an adapter
US8745292B2 (en) 2010-06-23 2014-06-03 International Business Machines Corporation System and method for routing I/O expansion requests and responses in a PCIE architecture
US8671287B2 (en) 2010-06-23 2014-03-11 International Business Machines Corporation Redundant power supply configuration for a data center
US8656228B2 (en) 2010-06-23 2014-02-18 International Business Machines Corporation Memory error isolation and recovery in a multiprocessor computer system
US8504754B2 (en) 2010-06-23 2013-08-06 International Business Machines Corporation Identification of types of sources of adapter interruptions
US8683108B2 (en) 2010-06-23 2014-03-25 International Business Machines Corporation Connected input/output hub management
GB2485602A (en) * 2010-11-22 2012-05-23 F Secure Corp Executing a program with a smaller address size than the processor on which it is executing
CN102103543B (zh) * 2011-02-22 2012-07-04 哈尔滨工业大学 利用处理器gpio管脚扩展m模块地址空间的方法
US9331855B2 (en) 2011-07-01 2016-05-03 Intel Corporation Apparatus, system, and method for providing attribute identity control associated with a processor
US10417001B2 (en) * 2012-12-27 2019-09-17 Intel Corporation Physical register table for eliminating move instructions
US9507599B2 (en) 2013-07-22 2016-11-29 Globalfoundries Inc. Instruction set architecture with extensible register addressing
US9715449B2 (en) * 2014-03-31 2017-07-25 International Business Machines Corporation Hierarchical translation structures providing separate translations for instruction fetches and data accesses
US9734083B2 (en) 2014-03-31 2017-08-15 International Business Machines Corporation Separate memory address translations for instruction fetches and data accesses
US9824021B2 (en) 2014-03-31 2017-11-21 International Business Machines Corporation Address translation structures to provide separate translations for instruction fetches and data accesses
EP3256947B1 (de) 2015-04-30 2021-10-27 Hewlett Packard Enterprise Development LP Zuordnung von öffnungen mit unterschiedlicher grösse
US9990282B2 (en) 2016-04-27 2018-06-05 Oracle International Corporation Address space expander for a processor

Family Cites Families (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS60134937A (ja) * 1983-12-23 1985-07-18 Hitachi Ltd アドレス拡張装置
DE3479356D1 (en) 1983-12-23 1989-09-14 Hitachi Ltd A data processor with control of the significant bit lenghts of general purpose registers
EP0220327B1 (de) * 1985-04-30 1991-12-27 Fujitsu Limited Adressenerweiterungssystem
JPS63305443A (ja) * 1987-06-08 1988-12-13 Hitachi Ltd 仮想空間群管理方法
US5249280A (en) * 1990-07-05 1993-09-28 Motorola, Inc. Microcomputer having a memory bank switching apparatus for accessing a selected memory bank in an external memory
US5423013A (en) 1991-09-04 1995-06-06 International Business Machines Corporation System for addressing a very large memory with real or virtual addresses using address mode registers
US5381537A (en) * 1991-12-06 1995-01-10 International Business Machines Corporation Large logical addressing method and means
US5617554A (en) * 1992-02-10 1997-04-01 Intel Corporation Physical address size selection and page size selection in an address translator
US5664139A (en) * 1994-05-16 1997-09-02 Compaq Computer Corporation Method and a computer system for allocating and mapping frame buffers into expanded memory
US5566308A (en) 1994-05-25 1996-10-15 National Semiconductor Corporation Processor core which provides a linear extension of an addressable memory space
US5963984A (en) * 1994-11-08 1999-10-05 National Semiconductor Corporation Address translation unit employing programmable page size
US5612911A (en) * 1995-05-18 1997-03-18 Intel Corporation Circuit and method for correction of a linear address during 16-bit addressing
US5895503A (en) * 1995-06-02 1999-04-20 Belgard; Richard A. Address translation method and mechanism using physical address information including during a segmentation process
TW382090B (en) * 1997-08-13 2000-02-11 United Microeletronics Corp System and method for converting computer addresses
US6009510A (en) * 1998-02-06 1999-12-28 Ip First Llc Method and apparatus for improved aligned/misaligned data load from cache
US6108773A (en) * 1998-03-31 2000-08-22 Ip-First, Llc Apparatus and method for branch target address calculation during instruction decode

Also Published As

Publication number Publication date
US6349380B1 (en) 2002-02-19
CN1343332A (zh) 2002-04-03
AU3390900A (en) 2000-10-04
HK1043215B (zh) 2006-04-28
DE60023002D1 (de) 2006-02-16
EP1188113B1 (de) 2005-10-05
JP4593792B2 (ja) 2010-12-08
CN1149473C (zh) 2004-05-12
EP1188113A1 (de) 2002-03-20
HK1043215A1 (en) 2002-09-06
WO2000055723A1 (en) 2000-09-21
JP2002539555A (ja) 2002-11-19

Similar Documents

Publication Publication Date Title
DE60023002T2 (de) Erweiterung und abbildung auf physikalischem speicher von linearen adressen unter verwendung von 4 und 8 byte seitentabelleneinträgen in einem 32-bit mikroprozessor
DE69738101T2 (de) Verwaltung des Zugangs zu Objekten mit Hilfe von Referenzen mit drei Zuständen
DE69724572T2 (de) Verfahren und Vorrichtung zur Vorladung von verschiedenen vorgegebenen Adressenübersetzungsattributen
DE102007063960B3 (de) Synchronisieren eines Übersetzungspufers (TLB) mit einer erweiterten Seitenwechseltabelle
DE69723286T2 (de) Echtzeitprogramm-sprachbeschleuniger
DE3151745C2 (de)
DE69721590T2 (de) Ein bereichsbasiertes seiten-table-walk-bit verwendendes verfahren sowie vorrichtung
DE60102017T2 (de) Räumungsfilter für adressenübersetzungspuffer
DE112017001027B4 (de) Seitenfehlerbehebung
DE3833933C2 (de) Informationsverarbeitungseinrichtung mit einer Adressenerweiterungsfunktion
DE4410060B4 (de) Übersetzungsvorrichtung zum Umsetzen einer virtuellen Speicheradresse in eine physikalische Speicheradresse
EP1393184B1 (de) Vorrichtung und verfahren zum ermitteln einer physikalischen adresse aus einer virtuellen adresse unter verwendung einer hierarchischen abbildungsvorschrift mit komprimierten knoten
DE60036960T2 (de) Unterscheidung von feinkorntranslation
DE60203612T2 (de) Datenverarbeitung mit mehrfachbefehlssätzen
DE2459006C2 (de) Einrichtung zum Bilden einer absoluten Adresse in einer Datenverarbeitunsanlage
US6212613B1 (en) Methods and apparatus for reusing addresses in a computer
DE602004011018T2 (de) Ungültigkeitserklärung eines speichers und löschen von puffereinträgen
DE112005003859B4 (de) Verwalten von Prozessorressourcen während Architekturereignissen
US5852738A (en) Method and apparatus for dynamically controlling address space allocation
DE69732181T2 (de) Verfahren und gerät zum zwischenspeichern von systemverwaltungsinformationen mit anderen informationen
DE69811474T2 (de) Rechnerarchitektur zur aufschiebung von exceptions statischer spekulativer befehle
DE10238566A1 (de) Fenster-basierendes Flashspeicher-Speichersystem und Management und Zugriffsverfahren darauf
DE102008025476A1 (de) Übersetzung einer virtuellen Adresse in eine physikalische Adresse mit Unterstützung von Seitenattributen
DE102014014076A1 (de) Reduzierte Adressenkonvertierung mit mehreren Seitengrößen
DE69634315T2 (de) Verfahren und Gerät zur Verwendung eines Ladebefehls der keinen Fehler verursacht

Legal Events

Date Code Title Description
8364 No opposition during term of opposition
8328 Change in the person/name/address of the agent

Representative=s name: HEYER, V., DIPL.-PHYS. DR.RER.NAT., PAT.-ANW., 806