DE19882617B4 - Speicherattributpalette - Google Patents

Speicherattributpalette Download PDF

Info

Publication number
DE19882617B4
DE19882617B4 DE19882617T DE19882617T DE19882617B4 DE 19882617 B4 DE19882617 B4 DE 19882617B4 DE 19882617 T DE19882617 T DE 19882617T DE 19882617 T DE19882617 T DE 19882617T DE 19882617 B4 DE19882617 B4 DE 19882617B4
Authority
DE
Germany
Prior art keywords
memory
attribute
signals
memory attribute
register
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
Application number
DE19882617T
Other languages
English (en)
Other versions
DE19882617T1 (de
Inventor
Lance E. Portland Hacking
Bryant E. Aloha Bigbee
Shahrokh Beaverton Shahidzadeh
Shreekant S. Portland Thakkar
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 DE19882617T1 publication Critical patent/DE19882617T1/de
Application granted granted Critical
Publication of DE19882617B4 publication Critical patent/DE19882617B4/de
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches

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)
  • Image Generation (AREA)

Abstract

Anordnung zum Erzeugen von effektiven Speicherattributsignalen (92) für eine Speichermanagementschaltung (90) eines Prozessors eines Computersystems (10), aufweisend:
eine Speicherattributpalette (50) zum Auswählen und Ausgeben von Linearspeicherattributsignalen (82) in Abhängigkeit von eingegebenen Speicherattributindexsignalen (54, 56, 58);
Register physikalischer Attribute (84) zum Bereitstellen physikalischer Attributsignale;
einen Auswähler (88) effektiver Speicherattribute, der mit der Speicherattributpalette (50) und den Registern (84) physikalischer Attribute gekoppelt ist und der in Abhängigkeit von den Linearspeicherattributsignalen und den physikalischen Atrributsignalen die effektiven Speicherattributsignale auswählt.

Description

  • Die vorliegende Erfindung bezieht sich auf eine Anordnung zum Erzeugen von effektiven Speicherattributsignalen für eine Speichermanagementschaltung eines Prozessors eines Computersystems.
  • Der von der Intel Corporation hergestellte Pentium®Pro-Prozessor enthält zwei wechselwirkende Mechanismen, die zusammen verwendet werden, um den effektiven Speichertyp eines bestimmten Abschnitts des Speichers einzustellen. Die Speichertypbereichsregister (MTRRs – Memory Type Range Registers) definieren die Speicherattribute für physikalische Adreßbereiche. Die Seitentabellen gestatten, daß Speicherattribute dynamisch linear adressierten Seiten des Speichers zugewiesen werden. Die MTRRs sind zum Beschreiben statischer physikalischer Bereiche mit speziellen Ausrichtungs- und Längeneinschränkungen, die üblicherweise von dem BIOS eingerichtet werden, ausreichend, sind aber nicht in der Lage, die dynamischen linear adressierten Datenstrukturen von Programmen zu beschreiben. Die Seitentabellen gestatten, daß Speicherattribute dynamisch linear adressierten Seiten des Speichers zugewiesen werden. Dies gibt dem Betriebssystem (OS) und Anwendungen eine Flexibilität bei der Verwendung von Speicherattributen für irgendwelche Datenstrukturen.
  • Die Seitentabellen in dem Pentium®Pro-Prozessor bieten nur eine Untermenge (Subset) sämtlicher Speicherattribute einschließlich Durchschreiben (WT – write through) und nicht-cache-speicherbar (UC – uncacheable). Die Seitenverzeichnis- und Seitentabelleneinträge enthalten zwei Bits, Seiten-Cache-Sperren (PCD – page cache disable) und Seiten-Durchschreiben (PWT – page write through), um Speichertypen auszuwählen. Während die verbleibenden zwei Speichertypen unter Benutzung des einzig verbleibenden reservierten Bits spezifiziert werden könnten, würde dies die Einführung neuer Speicherattribute in der Zukunft verhindern.
  • Aufgabe der Erfindung ist es, die Seitentabellenspeichertypcodierungen für lineare Speicherbereiche auf eine flexible und erweiterbare Weise bereitzustellen.
  • Diese Aufgabe wird erfindungsgemäß durch eine Anordnung mit den Merkmalen des Anspruchs 1 gelöst.
  • Die Anordnung weist eine Speicherattributpalette auf, die Speicherattributindexsignale empfängt und Linearspeicherattributsignale in Abhängigkeit von den Speicherattributindexsignalen auswählt. Ein Selektor (Auswähler) der effektiven Speicherattribute empfängt die Linearspeicherattributsignale und wählt effektive Speicherattributsignale in Abhängigkeit von den Linearspeicherattributsignalen aus. Ferner werden Attributsignale physikalischen Speichers an den Selektor der effektiven Speicherattribute bereitgestellt, wobei der Selektor die effektiven Speicherattributsignale in Abhängigkeit von den linearen und den physikalischen Speicherattributsignalen auswählt. Eine Speichermanagementschaltung empfängt die effektiven Speicherattributsignale und stellt Speichermanagementsignale in Abhängigkeit von den effektiven Speicherattributsignalen zur Verfügung.
  • Bei einem bevorzugten Ausführungsbeispiel der Erfindung können die Linearspeicherattribute in ein Register oder mehrere Register eingeschrieben werden. Dies ermöglicht dem Programmierer eines Programms oder Betriebssystems eine Flexibilität bei der Auswahl der Speicherattribute, einschließlich zukünftiger Speicherattribute. Die Erfindung ermöglicht es einem Programm, ein Speicherattribut nach Wahl für einen bestimmten Abschnitt des Speichers anzuwenden, wodurch es dem Computersystem gestattet wird, eine höhere Leistung zur Verfügung zu stellen.
  • Weitere vorteilhafte und/oder bevorzugte Weiterbildungen der Erfindung sind in den Unteransprüchen gekennzeichnet.
  • Die Erfindung schafft ein flexibles, programmierbares und erweiterbares Mittel, um sämtliche gegenwärtigen und zukünftigen Speicherattribute sowohl für das Betriebssystem als auch Anwendungen verfügbar zu machen. Sie stellt darüber hinaus ein konsistentes Speicherattributverwendungsmodell für das Betriebssystem zur Verfügung, indem sämtliche Speicherattribute über einen einzigen Mechanismus verfügbar gemacht werden, statt einen Teil der Funktionalität in den Seitentabellen und einen Teil in den MTRRs zu haben.
  • 1 ist eine schematische Blockdarstellung eines Beispielcomputersystems.
  • 2 ist eine schematische Blockdarstellung bestimmter Komponenten eines Beispielprozessors bei dem Computersystem gemäß 1.
  • 3 ist ein Diagramm, das ein Speicherattributtabellenindexschema für eine Seitenwechselhierarchie gemäß einem Ausführungsbeispiel der Erfindung veranschaulicht.
  • Bei einem bevorzugten Ausführungsbeispiel befindet sich die Speicherattributpalette in einem Mikroprozessor. Die Erfindung ist nicht auf die Verwendung bei einem bestimmten Typ eines Mikroprozessors eingeschränkt. Tatsächlich wird die Erfindung in Verbindung mit allgemein bekannten Strukturen und Signalen von Mikroprozessoren und Speichern beschrieben. Spezielle Ausführungsbeispiele der Erfindung jedoch umfassen Strukturen, die gegenwärtig bei dem von der Intel Corporation vermarkteten Pentium®Pro-Mikroprozessor und bei verwandten Chipsätzen verwendet werden. Jedoch ist die vorliegende Erfindung nicht auf eine Verwendung in Verbindung mit den unten genannten Strukturen und Signalen, wie sie bei dem Pentium®Pro-Mikroprozessor verwendet werden, eingeschränkt. Die grundlegende Struktur und die Signale des Pentium®Pro-Mikroprozessors sind in dem Pentium® Pro Family Developer's Manual, Band 1: Specification, Band 2: Programmer's Reference Manual, und Band 3: Operating System Writer's Manual (insbesondere Band 3, Kapitel 11) (Intel Corporation, 1996) beschrieben. So wie er im folgenden verwendet wird, umfaßt der Begriff "Speicherattribute" das, was als "Speichertyp" in Verbindung mit dem Pentium®Pro-Prozessor bezeichnet wird, ist aber darauf nicht beschränkt.
  • Gemäß 1 umfaßt ein Computersystem 10 einen Prozessor 14, welcher auch Mikroprozessor genannt werden kann. Das Computersystem 10 enthält verschiedene Speicher mit unter schiedlichen Größen und Zugriffsgeschwindigkeiten in Bezug auf den Prozessor 14. Die Speicher umfassen den Hauptspeicher 16, einen L2-Cache 20 und Peripherieeinrichtungen 22, die beispielsweise ein Festplattenlaufwerk umfassen. Daten können darüber hinaus aus einem L1-Cache gelesen bzw. in diesen geschrieben werden, welcher sich im Inneren des Prozessors 14 befindet. Darüber hinaus kann das Computersystem 10 einen oder mehrere zusätzliche Prozessoren enthalten, welche durch den Prozessor 26 repräsentiert werden. Prozessor 26 kann sich den Hauptspeicher 16 mit Prozessor 14 teilen. Die Daten werden über verschiedene Busse übermittelt, die einen Prozessorbus 28, einen PCI-Bus 30, einen Rückseitenbus 34 und einen Bus 36 umfassen. Eine Speichersteuereinrichtung 38 kontrolliert die Datenübertragung zwischen den verschiedenen Speichern und dem Prozessor 14 sowie gegebenenfalls dem Prozessor 26. Das Computersystem 10 ist bloß ein Beispiel. Ein Computersystem muß nicht sämtliche der Komponenten des Computersystems 10 (beispielsweise keinen separaten L2-Cache) enthalten. Darüber hinaus ist die Speichersteuereinrichtung 38 nicht auf eine bestimmte Anordnung eingeschränkt, wie beispielsweise eine Look-Aside-, eine Look-Through-, eine Rückschreib- oder eine Durchschreib-Cache-Anordnung.
  • Gemäß 2 empfängt eine Speicherattributpalette (MAP) 50 Speicherattributindexsignale. Bei einem bevorzugten Ausführungsbeispiel empfängt die MAP drei Speicherattributindexsignale: PCD, PWT und MAP-Indexsignale auf den Leitungen 54, 56 und 58. PCD (page cache disable) und PWT (page write through) werden bei dem Pentium®Pro-Prozessor benutzt. Bei dem Pentium®Pro-Prozessor sind das PCD- und das PWT-Signal die Flag-Bits 4 bzw. 3 des Steuerregisters CR3. Bei dem Pentium®Pro-Prozessor wird das Register CR3 als Seitenverzeichnisbasisadreßregister bezeichnet ausgenommen dann, wenn das CR4-physikalische-Adreßerweiterung(PAE)-Bit gesetzt ist, weil in diesem Fall das CR3-Register als Seitenverzeichniszeigertabelle bezeichnet wird.
  • Die Bits PCD und PWT werden an den Seitenverzeichniseintrag und Seitentabelleneintrag angelegt. Das MAP-Indexsignal ist ein drittes Indexsignal, das an der Stelle eines reservierten Bits im Steuerregister CR3, dem Seitenverzeichniseintrag und dem Seitentabelleneintrag angelegt werden könnte. Beispielsweise kann das MAP-Signalbit das Bit 7 bei kleinen (z. B. 4K) Seitentabelleneinträgen und das Bit 12 für Seitenverzeichniseinträge, die große (z. B. 2M/4M) Seiten abbilden, sein. Das MAP-Indexbit ist für das Register CR3, Seitenverzeichniseinträge oder Seitenverzeichniszeigereinträge nicht definiert, und es wird deshalb angenommen, daß es Null ist. Selbstverständlich ist es nicht erforderlich, daß die Speicherattributindexsignale als PCD, PWT und MAP-Signale bezeichnet oder in Verbindung mit dem CR3-Register, dem Seitenverzeichniseintrag oder dem Seitentabelleneintrag angelegt werden.
  • Ein Selektor 52 in der MAP 50 wählt eines von bis zu 8 in einem Register 60 gespeicherten Linearspeicherattributen aus, wobei das Register 60 in acht Linearattributregister R0, R1,... R7 unterteilt ist. Der Selektor 52, welcher ein Multiplexer sein kann, liefert auf der Grundlage des Zustands der Indexsignale PCD, PWT und MAP auf den Leitungen 54, 56 und 58 den Inhalt eines der Register R0, R1... R7 an die Leitungen 82 (irgendeine von beliebigen Multiplextechniken kann verwendet werden). Register 60 könnte die MSR-Adresse 0x277 (MSR = Model Specific Register) sein, welche als Parameter über das ECX-Register beim Ring 0/OS an die Befehle "rdmsr" (read model specific register – Lese modellspezifisches Register) und "wrmsr" (write model specific register – Schreib modellspezifisches Register), wie beim Pentium®Pro-Prozessor, weitergeleitet wird. Dementsprechend kann der Inhalt des Registers 60 oder eines Teils davon während der Operation eines Programms geändert werden, was einem Programmierer eine Flexibilität bei der Auswahl von Speicherattributen ermöglicht. Das Register 60 kann in der Architektur definiert sein. Bei alternativen Ausführungsbeispielen der Erfindung kann auf verschiedene Attribute durch eine geringere Anzahl, wie ein oder zwei Indexsignale, zugegriffen werden.
  • Register 60 kann ein Lese/Schreib-zugreifbares modellspezifisches 64-Bit-Register (MSR) sein. Alternativ können die Linearattributregister R0, R1,...R7 durch abweichende Adressen voneinander getrennt sein. Daten können aus einem Register 64 über einen Bus 62 in das Register 60 geschrieben werden. Wie in 2 veranschaulicht, kann ein Register 64 ein internes Register eines Mikroprozessors sein, wie beispielsweise das ECX-Register. Alternativ kann Register 64 ein Speicherplatz in einem Speicher sein, der sich innerhalb oder außerhalb eines Mikroprozessors befindet. Register 64 kann eine Gruppe von Registern mit unterschiedlichen Speicherplätzen repräsentieren. Auf die Attributdaten kann über auf den Speicher weisende Zeiger zugegriffen werden, welche das Register 64 darstellen kann. Es kann eine zusätzliche Schaltung zwischen Register 64 und Register 60 vorgesehen sein, welche nicht dargestellt ist. Attributdaten können aus dem Register 60 über die Leiter 66, 68,... 80 gelesen werden. Bei einem bevorzugten Ausführungsbeispiel sind die Leiter 66, 68...80 N Bits breit. N kann drei, acht oder irgendeine andere Zahl sein. Bus 62 und Leiter 66, 68,... 80 repräsentieren darüber hinaus eine geeignete Lese- und/oder Schreibschaltung. Das Register 60 kann als Palettenregister bezeichnet werden, weil der Selektor 52 einen unmittelbaren Zugriff auf dieses Register hat. Register 64 kann hier (unabhängig davon, ob es sich außerhalb des Prozessors 14 befindet) als externes Register bezeichnet werden, weil es sich außerhalb (extern) der MAP 50 befindet.
  • Im folgenden ist ein Beispiel des Registers 60 angegeben:
    Figure 00070001
  • Bei diesem Beispiel des Registers 60, umfassen die Bits 0–7 das Register R0, die Bits 8–15 das Register R1,..., die Bits 5663 das Register 7. (In diesem Sinne läßt sich Register 60 als aus mehreren Registern bestehend denken. Darüber hinaus können sich, wie dargelegt, die Register an unterschiedlichen Adressen aufhalten.) Die Speicherattribute 0 (MA0 – Memory Attribute 0) befinden sich innerhalb der Bits 0–2 des Registers 0. MA0, MA1,... MA7 spezifizieren acht in dem Register 60 enthaltene Speicherattribute, die über MAP 50 verfügbar sind. Als solches ist die MAP 50 eine programmierbare Tabelle mit acht Einträgen von 8 Bit Breite. Bei dem Beispiel sind Rsvd die am höchsten bewerteten Bits für jedes Seitenattribut und sind für zukünftige Erweiterungen reserviert. Selbstverständlich können die Speicherattribute MA0, MA1,... MA7 durch mehr oder weniger als drei Bits dargestellt werden. Bei einigen Implementierungen der Struktur gemäß 2 können weniger als acht Speicherattribute vorhanden sein. In derartigen Fällen könnten einige Attribute in mehr als einem Eintrag des Registers 60 enthalten sein. Alternativ könnte zu erwarten sein, daß bestimmte Kombinationen von Indexsignalen nicht angelegt werden.
  • Die physikalischen Attributregister 84 stellen physikalische Speicherattributsignale auf den Leitungen 86 an den Selektor 88 der effektiven Speicherattribute zur Verfügung. Die physikalischen Speicherattributsignale stellen physikalische Speicherattribute dar. Physikalische Attributregister 84 können MTRRs sein und die physikalischen Speicherattributsignale können MTRR-Speichertypsignale sein. Der Selektor 88 der effektiven Speicherattribute empfängt darüber hinaus Linearspeicherattributsignale auf den Leitungen 82 von dem Selektor 52. Die Linearspeicherattributsignale repräsentieren Linearspeicherattribute. Der Selektor 88 der effektiven Speicherattribute folgt Behandlungsregeln, um effektive Speicherattributsignale auf den Leitungen 92 zu erzeugen, welche von der Speichermanagementschaltung 90 empfangen werden. Die Speichermanagementschaltung 90 legt Speichermanagementsignale auf den Leitungen 94 in Abhängigkeit von den effektiven Speicherattributsignalen an. Wie veranschaulicht, ist die Speichermanagementschaltung 90 im Prozessor 14 enthalten, könnte sich aber alternativ außerhalb des Prozessors befinden. Die Speichermanagementsignale werden zur Steuerung der Speicheroperationen verwendet, wie sie beispielsweise unten in Tabelle 1 umrissen sind.
  • Die Kompatibilität mit Prozessoren der Intel Corporation, einschließlich dem Intel-486-Prozessor, dem Pentium®-Prozessor und dem Pentium®Pro-Prozessor, und mit vorhandener Software, die auf diesen Prozessoren läuft, kann aufrechterhalten werden, indem die richtigen Werte in das Register 60, beispielsweise beim Rücksetzen, eingeschrieben werden. Diese Anfangswerte können so programmiert werden, daß sie vollständige Rückwärtskompatibilität mit den zuvor existierenden Seitentabellenspeichertypen und MTRRs bereitstellen. Zusätzlich schafft die Standardeinstellung eine Kompatibilität für den Fall, daß die Software die für MAP 50 definierten reservierten Seitentabellenbits benutzt. Im Register 60 könnten die drei Bits jedes der MA0–MA7 beispielsweise ein Speicherattribut mit der gleichen Codierung spezifizieren, wie sie für die MTRRs des Pentium®Pro-Prozessors verwendet wird, wie es in Tabelle 2 gezeigt ist (aus dem Pentium®Pro Family Developer's Manual, Band 3, Tabelle 11-5, Seiten 11–14), welche unten als Tabelle 1 dieser Beschreibung wiedergegeben wird:
    Figure 00090001
    TABELLE 1
  • Eine Modifikation der Tabelle 1 besteht darin, daß die Codierung '000 UC ist und die Codierung '111 UC- ist, wie unten beschrieben ist. Bei einem Ausführungsbeispiel der Erfindung bleibt die Codierung '111 für die variablen MTRRs (VMTRRS) undefiniert, und Schreibversuche erzeugen fortgesetzt einen allgemeinen Schutzfehler (GP fault – general protection fault). Versuche, eine nicht-definierte Speichertypcodierung in die MAP zu schreiben, können einen GP-Fehler wie bei variablen MTRRs erzeugen. Tabelle 1 veranschaulicht darüber hinaus ein Beispiel von MTRR-Speicherattributen und ihren Eigenschaften gemäß einem Ausführungsbeispiel der Erfindung.
  • Tabelle 2 unten zeigt, wie die MAP-, PCD- und PWT-Indexsignale verwendet werden, um in die MAP 50 zu indexieren und was das Register 60 nach dem Rücksetzen enthalten kann.
  • Figure 00100001
    TABELLE 2
  • WB (Rückschreiben) und WT (Durchschreiben) sind in Tabelle 1 definiert. UC- und UC sind Beispiele von UC (nicht-cache-speicherbar), das in Tabelle 1 definiert ist. UC- tritt auf, wenn PCD, PWT = 10. UC tritt auf, wenn PCD, PWT = 11. Wie unten in Tabelle 3 veranschaulicht wird, behauptet sich bei dem Selektor 88 der effektiven Speicherattribute ein WC aus physikalischen Attributregistern 84 gegenüber UC- aus der MAP 50. Im Vergleich dazu behauptet sich bei dem Selektor 88 der effektiven Speicherattribute UC aus der MAP 50 gegenüber WC aus physikalischen Attributregistern 84.
  • Bei einem bevorzugten Ausführungsbeispiel sind sämtliche acht Einträge in Register 60 zum Beschreiben des 4K/2M/4M-Seitenrahmens verfügbar. Das MAP-Indexbit ist nicht definiert in dem CR3-Register (den Seitenverzeichniszeigertabellen, wenn die physikalische Adreßerweiterung (PAE) freigegeben ist) oder dem Seitenverzeichnis, wenn es nicht eine große Seite beschreibt. In diesen Fällen werden nur die Indexsignale PCD und PWT verwendet, um in die MAP 50 zu indexieren, was das OS auf die Verwendung nur der ersten vier Einträge des Registers 60 zum Beschreiben der Speicherattribute der Seitenhierarchie (Paging-Hierarchie) einschränkt. Ein Beispiel des MAP-Indexierschemas für jede Ebene der Seitenwechselhierarchie ist in 3 gezeigt. Reservierte Bit-Fehler sind für Werte ungleich 0 für das MAP-Indexbit gesperrt, bleiben aber für sämtliche anderen reservierten Bits präsent. Das kann für jede der ModeA/B-4K-Seiten, ModeB-4MB-Seiten und ModeC-4K/2MB-Seiten der Fall sein.
  • Der Selektor 88 der effektiven Speicherattribute verwendet eine Abbildung, um auf der Grundlage des Linearspeicherattributs und des physikalischen Speicherattributs die an die Leitungen 62 anzulegenden effektiven Speicherattributssignale auszuwählen. Ein Beispiel der Abbildung ist in Tabelle 3 unten angegeben:
    Figure 00110001
    TABELLE 3
  • Die Abbildung gemäß Tabelle 3 unterstellt, daß das cache-gesperrt(CD)- und das Nichtdurchschreib(NW)-Flag im Register CR0, sofern sie vorhanden sind, auf Null gesetzt sind. Bei dem speziellen Ausführungsbeispiel gemäß Tabelle 3 ist das effektive Speicherattribut in dem Fall undefiniert, wenn das Linearspeicherattribut WT und das physikalische Speicherattribut WP oder WC ist. Darüber hinaus ist das effektive Speicherattribut in dem Fall nicht definiert, wenn das Linearspeicherattribut WP und das physikalische Speicherattribut WC oder WT ist. Jedoch könnten bei anderen Aus führungsbeispielen die effektiven Speicherattribute in derartigen Fällen definiert sein. UC_MTRR zeigt an, daß das UC-Attribut aus den MTRRs kam und daß die Prozessoren nicht gezwungen sind, eine Snoop-Operation in ihren Caches durchzuführen, da die Daten niemals cache-gespeichert sein konnten. Dies wird aus Leistungsgründen bevorzugt. UC_PAGE zeigt an, daß das UC-Attribut aus den Seitentabellen kam und daß die Prozessoren ihre Cache-Speicher überprüfen müssen, da Daten aus einem Seiten-Aliasing cache-gespeichert sein können. Im allgemeinen zeigt die Terminologie "XX_PAGE" an, daß das Attribut XX aus den Seitentabellen herrührt, wobei die Seitentabellen gegenüber den MTRRs Vorrang haben. Die Terminologie "XX_MTRR" zeigt an, daß das Attribut XX aus den MTRRs herrührt, wobei die MTRRs Vorrang gegenüber den Seitentabellen haben. Die folgende Anmerkung gilt für Tabelle 3 und spezielle Ausführungsbeispiele der Erfindung, die für eine Zusammenarbeit mit Microsoft-OSs vorgesehen sind. Bei einigen Microsoft-OSs vor Windows NT 4.0 Service Pack 3 (z. B. für DOS, Windows 3.0, Windows 95, frühere Windows NT-Versionen) wird es Software, beispielsweise einem Programm fastvid.exe, gestattet, den Speichertyp der MTRRs von UC zu WC zu ändern, ohne das Betriebssystem darüber zu informieren, wenn das Betriebssystem die Codierung UC- für nicht-cache-speicherbaren Speicher verwendet. In einem solchen Fall hat WC den Vorrang über UC. Das Betriebssystem NT 4.0 Service Pack 3 verwendet UC an Stelle von UC- in den Seitentabellen, um den Vorrang über WC in den MTRRs zu erlangen. UC- und UC werden oben in Verbindung mit Tabelle 1 beschrieben.
  • Das Sperren der MTRRs auf den Pentium®Pro-Prozessor führte zu einem effektiven Speichertyp UC unabhängig von der Freigabe des Seitenwechsels (Paging) und dem Setzen der Indexbits PCD und PWT. Bei Prozessoren, bei denen MAP freigegeben ist, kann dieses Verhalten geändert werden. Wenn ein Paging und die MTRRs nicht freigegeben sind, dann ist der effektive Speichertyp UC. Sofern die MTRRs nicht freigegeben sind und ein Paging freigegeben ist, kann der effektive Speichertyp aus den Seitentabellen/MAP verwendet werden.
  • Das MAP-Merkmal kann von dem Betriebssystem durch die Verwendung des CPUID-Befehls erfaßt werden. Insbesondere kann das Betriebssystem den CPUID-Befehl mit dem Wert 1 in dem Register EDX ausführen und dann die Unterstützung dieses Merkmals bestimmen, indem das Bit 16 des EDX-Register-Rückgabewerts betrachtet wird. Sofern MAP unterstützt wird, wird dem Betriebssystem gestattet, das modellspezifische Register zu benutzen, das für die Programmierung der Seitenattributtabelle spezifiziert ist, ebenso wie Gebrauch von den früher in den Seitentabellen reservierten MAP-Indexbits zu machen.
  • Das Betriebssystem kann dafür verantwortlich sein, zu sichern, daß Änderungen an einem MAP-Eintrag auf eine Weise auftreten, die die Konsistenz der Prozessor-Cache-Speicher und Übersetzungsnachschlagepuffer (TLB) einschließlich beispielsweise einer speziellen Sequenz von Operationen, die das Spülen (Flushing) der Cache-Speicher und TLBs des Prozessors bzw. der Prozessoren umfaßt, aufrechterhält.
  • Bei einem Ausführungsbeispiel der Erfindung, die eine Alternative gegenüber der in Verbindung mit 2 beschriebenen darstellt, erzeugt eine Speicherattributpalette in Erwiderung bestimmter Zustände der Indexsignale PCD, PWT und MAP einzelne Bits auf parallelen Leitungen. Wenn es beispielsweise acht Attribute gäbe, könnten acht parallele Leitungen verwendet werden, wobei jeweils nur einer beaufschlagt würde. Ein Selektor des effektiven Speicherattributs würde die parallelen Leitungen empfangen und in geeigneter Weise auf die darauf anliegenden Signale antworten.
  • Die MAP kann gestatten, daß ein beliebiger Speichertyp in den Seitentabellen spezifiziert wird, und folglich ist es möglich, daß eine einzelne physikalische Seite durch zwei unterschiedliche lineare Seiten abgebildet wird, die unterschiedliche Speichertypen aufweisen. Diese Praxis kann zu nicht definierten Ergebnissen führen und wird folglich mißbilligt. Insbesondere ist es vorzuziehen, daß eine WC-Seite nicht auf eine cache-speicherbare Seite durch Aliasing abgebildet wird, da WC-Schreiboperationen die Prozessor-Cache-Speicher nicht zu überprüfen brauchen.
  • Betriebssysteme, welche es nicht wünschen, die MAP im Kontext umzuschalten, können äquivalente MAP-Eintragswerte auf sämtlichen Prozessoren aufweisen.
  • Betriebssysteme, die ein Seitenverzeichnis als Seitentabelle verwenden und Seitengrößenerweiterungen (PSE – page size extensions) oder physikalische Adreßerweiterungen (PAE – physical address extensions) ermöglichen, sollten sorgfältig die Verwendung des MAP-Index für 4KB-Seitentabelleneinträge (PTEs – Page Table Entries) überprüfen. Das Betriebssystem kann nur MAP-Einträge MA0-3 für einen 4KByte-Seitentabelleneintrag (PTE) benutzen, der außerdem als PDE verwendet wird, da das MAP-Indexbit für den Seitentabelleneintrag (Bit 7) die Seitengröße repräsentiert. Sofern das Betriebssystem versucht, auf MAP-Einträge MA4-7 zuzugreifen, wenn dieser Speicher als PTE verwendet wird, kann es versehentlich das PS-Bit dann setzen, wenn auf diesen Speicher als PDE zugegriffen wird.
  • Sofern das Betriebssystem es wünscht, daß der Seitentabellenspeichertyp, wie er in der MAP definiert ist, stets der effektive Speichertyp ist, so kann es dann den Standard-MTRR-Speichertyp auf Rückschreiben setzen und die MTRRs sperren, die diejenigen Bereiche abdecken, die das Betriebssystem allein durch die Verwendung von Seitentabellen zu verwalten wünscht, oder sämtliche MTRRs sperren.
  • Bei einem bevorzugten Ausführungsbeispiel ist die MAP 50 stets auf sämtlichen Prozessoren, die sie unterstützen, freigegeben, und das Seitentabellennachschlagen tritt immer dann auf, wenn ein Seitenwechsel (Paging) freigegeben ist sowie für sämtliche Seitenwechselmodi (z. B. PSE, PAE).
  • Die MAP 50 könnte als Seitenattributtabelle bezeichnet werden.
  • Bei der vorliegenden Erfindung soll der lineare Speicher derart interpretiert werden, daß er lineare, logische und virtuelle Adressen einschließt.
  • Es wird vorgezogen, daß die Linearspeicherattributsignale nur jeweils ein lineares Speicherattribut repräsentieren, die physikalischen Speicherattributsignale jeweils nur ein physikalisches Speicherattribut und die effektiven Speicherattributsignale jeweils nur ein effektives Speicherattribut repräsentieren. Alternativ könnten ein Signal oder mehrere dieser Signale gleichzeitig mehr als ein Attribut repräsentieren.
  • Eine zusätzliche MAP-Implementierung umfaßt Prioritätsbits. Die Implementierung kann einen besonderen Wert bei der Testung und der zukünftigen Erweiterung von Attributen haben. Jeder Eintrag in der MAP enthält zwei Prioritätsbits, die es ermöglichen, daß der Eintrag stets Vorrang gegenüber den MTRRs oder die MTRRs stets Vorrang gegenüber dem Eintrag haben. Eine Zwei-Bit-Prioritätscodierung für jeden Eintrag ist in Tabelle 4 dargestellt:
    Figure 00150001
    TABELLE 4
  • Alternativ könnte ein Einzelbit verwendet werden, wie in Tabelle 5 gezeigt:
    Figure 00150002
    TABELLE 5
  • Schließlich könnten die zwei Bits oder das Einzelbit für die gesamte MAP-Tabelle vorhanden sein. Die Lösungen gemäß Tabellen 4 und 5 sind nicht erforderlich. Sofern das Betriebssystem wünscht, daß die MAP 50 stets den Vorrang hat, könnte das Betriebssystem die MTRRs sperren.
  • Das Betriebssystem kann die acht nützlichsten Speicherattributkombinationen auswählen und diese für das gesamte System auf sämtlichen Prozessoren verwenden. Dies könnte jedoch einmal pro Prozeß geändert werden. Es könnte ein spezielles Befehlspaar geben, um die gesamte MAP auf einmal zu sichern/wiederherzustellen.
  • Ein neues Bit MAP[2] könnte für CR3 und die Seitenverzeichniszeigertabelle (PDPT – page directory pointer table) definiert werden und drei Bits verwenden, um MAP0-7 zu indexieren, wenn immer das möglich ist. Bei einigen Ausführungsbeispielen kann es sein, daß dies in jedem Fall mit Ausnahme eines 4K-Seitenverzeichnisses im Modus B oder Modus C arbeitet, bei dem es keine reservierten Bits gibt und Bit 7 per Definition 0 ist. Das Betriebssystem könnte folglich seine Seitenwechselstrukturen unter Verwendung sämtlicher acht MAP-Einträge beschreiben mit Ausnahme des Falls, wenn die Seitentabellen in diesen zwei Modi beschrieben werden.
  • Register 60 braucht nicht im Prozessor 14 zu sein, sondern könnte statt dessen beispielsweise im Hauptspeicher 16 enthalten sein.

Claims (10)

  1. Anordnung zum Erzeugen von effektiven Speicherattributsignalen (92) für eine Speichermanagementschaltung (90) eines Prozessors eines Computersystems (10), aufweisend: eine Speicherattributpalette (50) zum Auswählen und Ausgeben von Linearspeicherattributsignalen (82) in Abhängigkeit von eingegebenen Speicherattributindexsignalen (54, 56, 58); Register physikalischer Attribute (84) zum Bereitstellen physikalischer Attributsignale; einen Auswähler (88) effektiver Speicherattribute, der mit der Speicherattributpalette (50) und den Registern (84) physikalischer Attribute gekoppelt ist und der in Abhängigkeit von den Linearspeicherattributsignalen und den physikalischen Atrributsignalen die effektiven Speicherattributsignale auswählt.
  2. Anordnung nach Anspruch 1, dadurch gekennzeichnet, daß die Register (84) physikalischer Attribute MTRRs umfassen.
  3. Anordnung nach Anspruch 1 oder 2, dadurch gekennzeichnet, daß die Speicherattributindexsignale (54, 56, 58) von Seitentabelleneinträgen zur Verfügung gestellt werden.
  4. Anordnung nach einem der Ansprüche 1–3, dadurch gekennzeichnet, daß die Speicherattributpalette (50) Palettenregister (R0...R7 in 60) zum Speichern der Linearspeicherattributsignale enthält.
  5. Anordnung nach Anspruch 4, gekennzeichnet durch wenigstens ein externes Register (64), in welches Speicherattributsignale gespeichert und dann zu den Palettenregistern (60) übertragen werden, wobei auf das wenigstens eine externe Register (64) durch Programme und ein Betriebssystem zugegriffen werden kann.
  6. Anordnung nach Anspruch 4, gekennzeichnet durch eine Schaltung zum Lesen der Speicherattributsignale aus dem Hauptspeicher und zum Schreiben der Speicherattributsignale in die Palettenregister (60).
  7. Anordnung nach Anspruch 4, dadurch gekennzeichnet, daß die Speicherattributpalette (50) einen mit dem Auswähler (88) effektiver Speicherattribute verbundenen Selektor (52) umfaßt und daß es Leitungen (6680) der Breite N zwischen jedem der Palettenregister (R0...R7 in 60) und dem Selektor (52) gibt.
  8. Anordnung nach Anspruch 7, dadurch gekennzeichnet, daß N = 8 ist.
  9. Anordnung nach einem der Ansprüche 1–8, dadurch gekennzeichnet, daß das System einen Mikroprozessor (14) enthält, der die Speicherattributpalette (50) und Auswähler (88) der effektiven Speicherattribute enthält.
  10. Anordnung nach Anspruch 9, dadurch gekennzeichnet, daß die Speichermanagementschaltung (90) in dem Mikroprozessor (14) enthalten ist.
DE19882617T 1997-08-18 1998-07-21 Speicherattributpalette Expired - Fee Related DE19882617B4 (de)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US08/914,578 1997-08-18
US08/914,578 US5946713A (en) 1997-08-18 1997-08-18 Memory attribute palette
PCT/US1998/015054 WO1999009510A2 (en) 1997-08-18 1998-07-21 Memory attribute palette

Publications (2)

Publication Number Publication Date
DE19882617T1 DE19882617T1 (de) 2000-09-21
DE19882617B4 true DE19882617B4 (de) 2007-06-21

Family

ID=25434537

Family Applications (1)

Application Number Title Priority Date Filing Date
DE19882617T Expired - Fee Related DE19882617B4 (de) 1997-08-18 1998-07-21 Speicherattributpalette

Country Status (11)

Country Link
US (1) US5946713A (de)
JP (1) JP4312952B2 (de)
KR (1) KR100358601B1 (de)
CN (1) CN1149484C (de)
AU (1) AU8577298A (de)
BR (1) BR9811952B1 (de)
DE (1) DE19882617B4 (de)
GB (1) GB2343275B (de)
HK (1) HK1027183A1 (de)
TW (1) TW501010B (de)
WO (1) WO1999009510A2 (de)

Families Citing this family (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6694418B2 (en) * 2001-03-30 2004-02-17 Intel Corporation Memory hole modification and mixed technique arrangements for maximizing cacheable memory space
US6681311B2 (en) * 2001-07-18 2004-01-20 Ip-First, Llc Translation lookaside buffer that caches memory type information
KR100633144B1 (ko) 2004-11-09 2006-10-11 삼성전자주식회사 색 관리방법 및 이를 적용한 색 관리장치
JP4783163B2 (ja) * 2006-01-19 2011-09-28 Okiセミコンダクタ株式会社 マイクロコントローラ
US7949834B2 (en) * 2007-01-24 2011-05-24 Qualcomm Incorporated Method and apparatus for setting cache policies in a processor
US8103816B2 (en) * 2008-10-28 2012-01-24 Intel Corporation Technique for communicating interrupts in a computer system
US9331855B2 (en) 2011-07-01 2016-05-03 Intel Corporation Apparatus, system, and method for providing attribute identity control associated with a processor
US20130111181A1 (en) * 2011-10-31 2013-05-02 Lsi Corporation Methods and apparatus for increasing device access performance in data processing systems
US11513779B2 (en) 2020-03-19 2022-11-29 Oracle International Corporation Modeling foreign functions using executable references
US11875168B2 (en) 2020-03-19 2024-01-16 Oracle International Corporation Optimizing execution of foreign method handles on a virtual machine
US11543976B2 (en) * 2020-04-01 2023-01-03 Oracle International Corporation Methods for reducing unsafe memory access when interacting with native libraries

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5668949A (en) * 1993-11-12 1997-09-16 Intel Corporation System utilizing multiple address decode resources and decoder receiving address determines address corresponding to resource based on select and ready signals by that particular resource
US5590289A (en) * 1993-11-12 1996-12-31 Intel Corporation Method and apparatus for initializing a computer system having central and distributed address decode memory bus resources
US5561814A (en) * 1993-12-22 1996-10-01 Intel Corporation Methods and apparatus for determining memory operating characteristics for given memory locations via assigned address ranges
US5819079A (en) * 1995-09-11 1998-10-06 Intel Corporation Instruction fetch on demand for uncacheable memory which avoids memory mapped I/O side effects in a processor with speculative instruction fetch

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
Hans-Peter Messmer, PC-Hardwarebuch, 4. Aufl., Addison-Wesley, 1997, S. 406, 424-432, 1082-1084 *
Intel, Pentium Pro Family Developer's Manual, Volume 3, Operating System Writer's Guide, Dezember 1995, S. 11-6 bis 11-10 *

Also Published As

Publication number Publication date
KR20010022983A (ko) 2001-03-26
WO1999009510A2 (en) 1999-02-25
CN1276892A (zh) 2000-12-13
JP4312952B2 (ja) 2009-08-12
AU8577298A (en) 1999-03-08
TW501010B (en) 2002-09-01
BR9811952B1 (pt) 2011-08-23
GB2343275B (en) 2002-05-29
WO1999009510A3 (en) 1999-05-14
CN1149484C (zh) 2004-05-12
DE19882617T1 (de) 2000-09-21
GB2343275A (en) 2000-05-03
US5946713A (en) 1999-08-31
JP2001516089A (ja) 2001-09-25
GB0003909D0 (en) 2000-04-05
KR100358601B1 (ko) 2002-10-25
HK1027183A1 (en) 2001-01-05
BR9811952A (pt) 2000-08-22

Similar Documents

Publication Publication Date Title
DE3587694T2 (de) Speicherzugriffssteuergerät zur Realisierung von geschützten Gebieten in einem Speicher, und mit solchem Speicherzugriffssteuergerät ausgerüsteter Speicher.
DE112005003859B4 (de) Verwalten von Prozessorressourcen während Architekturereignissen
DE69131610T2 (de) Ermittlung des Speicheradressraums durch Verwendung von programmierbaren Grenzregistern mit Komparatoren mit einzelnen Ausgängen
DE112005002298B4 (de) Leistungssteigerung einer Adreßübersetzung unter Verwendung von Übersetzungstabellen, die große Adreßräume umfassen
DE69721590T2 (de) Ein bereichsbasiertes seiten-table-walk-bit verwendendes verfahren sowie vorrichtung
DE3751645T2 (de) Anteilige Nutzung von Kopie-beim-Schreiben-Segmenten in einer Datenverarbeitungsanlage mit virtuellen Maschinen und virtuellem Speicher
DE10297433B4 (de) Speicherverwaltungseinheit, Verfahren zum Bereitstellen einer Speicherzugriffssicherheit auf der Basis einer linearen Adresse und Prozessor
DE69227774T2 (de) Speicherverwaltungsverfahren
DE102007063960B3 (de) Synchronisieren eines Übersetzungspufers (TLB) mit einer erweiterten Seitenwechseltabelle
DE3587960T2 (de) Datenverarbeitungsanlage mit einem Speicherzugriffssteuergerät.
DE112005002405B4 (de) Fehlerverarbeitung für Direktspeicherzugriffs-Adreßübersetzung
DE112017001027B4 (de) Seitenfehlerbehebung
DE69707181T2 (de) Architektur und Verfahren zur gemeinsamen Benutzung von TLB-Einträgen
DE69210714T2 (de) Durch Doppelzweck-On-Chip-Speicher implementierter Echtzeit-Cachespeicher
DE69225622T2 (de) Adressenübersetzungspufferspeicher mit per Eingabe veränderlicher Seitengrösse
DE112005002304B4 (de) Adreßumsetzung für Eingabe/Ausgabe- Vorrichtungen mittels hierarchischer Umsetzungstabellen
DE69620918T2 (de) Speicherseiten-komprimierung
DE69804115T2 (de) Datenübertragung auf einem nichtflüchtigen speichermedium
DE68924720T2 (de) Verfahren und Vorrichtung für Zugriffsrechtensteuerung.
DE3688978T2 (de) Seitenspeicherverwaltungseinheit mit der fähigkeit nach wahl mehrere adressräume zu unterstützen.
DE3833933C2 (de) Informationsverarbeitungseinrichtung mit einer Adressenerweiterungsfunktion
DE68923863T2 (de) Ein-/Ausgabecachespeicherung.
DE102008025476A1 (de) Übersetzung einer virtuellen Adresse in eine physikalische Adresse mit Unterstützung von Seitenattributen
DE102010046892A1 (de) Management und Implementierung von Metadaten in der Zentraleinheit unter Verwendung von Registererweiterungen
DE102007006190A1 (de) Techniken zur Verwendung von Speicher-Attributen

Legal Events

Date Code Title Description
OP8 Request for examination as to paragraph 44 patent law
8125 Change of the main classification

Ipc: G06F 12/10

8607 Notification of search results after publication
8364 No opposition during term of opposition
R119 Application deemed withdrawn, or ip right lapsed, due to non-payment of renewal fee