[go: up one dir, main page]

DE69428881T2 - Logisch adressierbarer physikalischer Speicher für ein Rechnersystem mit virtuellem Speicher, das mehrere Seitengrössen unterstützt - Google Patents

Logisch adressierbarer physikalischer Speicher für ein Rechnersystem mit virtuellem Speicher, das mehrere Seitengrössen unterstützt

Info

Publication number
DE69428881T2
DE69428881T2 DE69428881T DE69428881T DE69428881T2 DE 69428881 T2 DE69428881 T2 DE 69428881T2 DE 69428881 T DE69428881 T DE 69428881T DE 69428881 T DE69428881 T DE 69428881T DE 69428881 T2 DE69428881 T2 DE 69428881T2
Authority
DE
Germany
Prior art keywords
page
address
virtual
address space
physical
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
DE69428881T
Other languages
English (en)
Other versions
DE69428881D1 (de
Inventor
Vikram P. Joshi
Yousef A. Khalidi
Madhusudhan Talluri
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.)
Sun Microsystems Inc
Original Assignee
Sun Microsystems Inc
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 Sun Microsystems Inc filed Critical Sun Microsystems Inc
Publication of DE69428881D1 publication Critical patent/DE69428881D1/de
Application granted granted Critical
Publication of DE69428881T2 publication Critical patent/DE69428881T2/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
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/10Address translation
    • G06F12/1009Address translation using page tables, e.g. page table structures
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/10Address translation
    • G06F12/1027Address translation using associative or pseudo-associative address translation means, e.g. translation look-aside buffer [TLB]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/65Details of virtual memory and virtual address translation
    • G06F2212/651Multi-level translation tables
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/65Details of virtual memory and virtual address translation
    • G06F2212/652Page size control

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)

Description

    HINTERGRUND DER ERFINDUNG 1. Gebiet der Erfindung
  • Die vorliegende Erfindung bezieht sich auf das Gebiet von Computersystemen. Insbesondere bezieht sich die vorliegende Erfindung auf das Abbilden von virtuellen Seiten in physikalische Seiten bei einem Computersystem mit virtuellem Speicher, das mehrere Seitengrößen unterstützt.
  • 2. Hintergrund der Technik
  • Virtuelles Speichern ist eine Technik, die es einem Anwendungsprogramm ermöglicht, ein Speichersystem zu benutzen, als ob es einen großen gleichförmigen primären Speicher bereitstellt. In Wirklichkeit kann der Speicher kleiner und fragmentierter und/oder teilweise durch einen sekundären Speicher, wie beispielsweise einer Festplatte, simuliert werden. Anwendungen greifen auf einen Speicher durch virtuelle Adressen zu, die durch eine besondere Hardware in physikalische Adressen übersetzt (abgebildet) werden. Seitenspeichern und Segmentierung sind zwei übliche Implementierungen eines virtuellen Speichers.
  • Wenn ein virtueller Speicher unter Verwendung der Seitenspeichertechnik implementiert wird, wird der virtuelle Adreßraum in eine Anzahl von Blöcken fester Größe, genannt Seiten, aufgeteilt, die jeweils auf eine beliebige der auf dem System verfügbaren physikalischen Seiten ähnlicher Größe abgebildet werden können. Typischerweise führt eine besondere Speicherverwaltungshardware, wie beispielsweise eine Speicherverwaltungseinheit (MMU = Memory Management Unit) oder eine Seitenspeicherverwaltungseinheit (PMMU = Paged Memory Management Unit) die Adressenübersetzung von den virtuellen Adressen in physikalische Adressen durch. Bei dieser Art von Speicherverwaltung veranlaßt jeder Versuch, auf Daten zuzugreifen, die nicht in dem physikalischen (System)Speicher vorhanden sind, die PMMU ein Interrupt- Signal an die zentrale Verarbeitungseinheit (CPU = Central Processing Unit) zu senden; das Betriebssystem überträgt dann die Daten von einem weiteren Speicher (wie beispielsweise einer Festplatte), ohne daß das Anwendungsprogramm "Kenntnis" über die Übertragung aufweist.
  • Bei einem virtuellen Speicherschema gibt es nur eine Abbildung von virtuellen Speicherplatz in physikalischen Speicherplatz. Bei weiteren Implementierungen kann es jedoch verschiedene Adreßräume geben, jeweils mit seiner eigenen. Abbildung in dem physikalischen Adreßraum. Somit kann sich ein erster Prozeß auf eine gegebene physikalische Adresse unter Verwendung einer ersten virtuellen Adresse beziehen, und ein zweiter Prozeß, der auf der gleichen CPU oder auf einer unterschiedlichen CPU in einer Multi-Prozessor- Umgebung läuft, wird sich auf die gegebene physikalische Adresse mittels einer zweiten virtuellen Adresse beziehen. In einem derartigen Fall werden die beiden virtuellen. Adressen, die der gleichen physikalische Adresse entsprechen, als "Alias-Namen" bezeichnet.
  • Einige CPUs sind imstande, mit mehr als einer Größe einer virtuellen Seite zu arbeiten. Beispielsweise wird ein Computersystem-Adressenübersetzungsmechanismus eines virtuellen Speichers, der mehrere Seitengrößen unterstützt, in der US-Patentanmeldung 08/139 549, eingereicht am 20. Oktober 1993 beschrieben. Außerdem ist ein Cache für eine Übersetzung von virtuellen in physikalische Adressen, der mehrere Seitengrößen unterstützt, in der US-Patentanmeldung 08/118 398, eingereicht am 8. September 1993, beschrieben.
  • Das Unterstützen von mehreren Seitengrößen ermöglicht, daß die virtuelle Seitengröße, die bei einer Abbildung verwendet wird, ausgewählt wird, um den Bedürfnissen des virtuellen Adreßraums, der abgebildet wird, am besten zu entsprechen. Wenn große Seiten verwendet werden, kann eine große Menge an virtuellen Speicher mit einem einzigen Übersetzungseintrag in der MMU übersetzt werden. Daher werden weniger Ressourcen für die MMU benötigt, wodurch die Leistung erhöht wird. Die Verwendung von großen Seiten kann jedoch zu Problemen führen, die nicht angetroffen werden, wenn kleine Seiten verwendet werden. Eine große Seite muß typischerweise in einem einzigen zusammenhängenden Abschnitt von physikalischem Speicher untergebracht sein. Es ist offensichtlich, daß, je größer die Seite, desto größer der einzige zusammenhängende Abschnitt des physikalischen Speichers ist, der verfügbar gemacht werden muß, um zu ermöglichen, daß die Seite in den physikalischen Speicher geladen wird. Typischerweise gibt es einen Mehraufwand, der durch das Bedürfnis verursacht wird, "freie" Seitenlisten zu unterhalten, die verwendet werden, um anzugeben, wo in dem physikalischen Speicher die nächste Seite in dem Fall eines Seitenfehlers geladen wird. Wenn es mehrere Seitengrößen gibt, erhöht sich dieser Mehraufwand, da typischerweise eine freie Seitenliste pro Seitengröße erforderlich ist.
  • Ferner wird ohne Rücksicht auf die Seitengröße typischerweise ein Adressenschema verwendet, bei dem eine bestimmte Anzahl niederstwertiger Bits einer virtuellen oder physikalischen Adresse verwendet wird, um ein bestimmtes Wort innerhalb einer Seite anzugeben. Die Anzahl niederstwertiger Bits, die verwendet werden, um ein Wort innerhalb einer Seite anzugeben, ist von der Größe der dargestellten Seite abhängig. Für eine gegebene Seitengröße ist jedoch die Anzahl der niederstwertigen Bits, die der Wortposition innerhalb der Seite gewidmet sind, festgelegt, und ist die gleiche, ohne Rücksicht darauf, ob die Adresse eine virtuelle Adresse oder eine physikalische Adresse ist. Die verbleibenden höchstwertigen Bits einer virtuellen Adresse werden dann verwendet, um anzugeben, welche besondere Seite eines virtuellen Speichers adressiert wird. Auf ähnliche Weise werden die verbleibenden höchstwertigen Bits einer physikalischen Adresse verwendet, um die besondere Seite des physikalischen Speichers anzugeben, die adressiert wird. In diesem Adressierschema ist eine Anforderung impliziert, daß jede Seite an einer Grenze ausgerichtet wird, die ein ganzzahliges Vielfache der Größe der Seite ist, die adressiert wird. Daher ist es, wenn eine Seite in, einen physikalischen Speicher geladen wird, nicht ausreichend, nur einen freien zusammenhängenden Abschnitt des physikalischen Speicher zu finden, der von gleicher Größe wie die zu ladende Seite ist. Der zusammenhängende Abschnitt des erforderlichen freien physikalischen Speichers muß an einer Seitengrenze beginnen, die durch die Größe der Seite vorgeschrieben ist, die in den physikalischen Speicher geladen wird. Je größer die Seitengröße ist, desto geringer sind die möglichen Plätze in einem physikalischen Speicher gegebener Größe, die eine Seite gegebener Größe unterbringen können.
  • Außerdem wird bevorzugt, da große Seiten einen größeren Abschnitt eines physikalischen Speichers als kleinere Seiten adressieren, einen Bereich des physikalischen Speichers abzubilden, der eine große Seite und nicht eine größere Anzahl kleinerer Seiten verwendet. Häufig wird, anstatt eines anfänglichen Abbildens eines großen Abschnitts des virtuellen Speichers in den physikalischen Speicher unter Verwendung einer großen Seite, das Betriebssystem den virtuellen Speicher in den physikalischen Speicher inkrementell mit der Zeit unter Verwendung kleiner Seiten abbilden. Dies führt zu einem kontinuierlichen Bereich als virtuellen Speicher, der mit einer einzigen großen Seite abgebildet werden könnte, der von verschiedenen kleinen Seiten abgebildet wird. Typischerweise belegen diese kleinen Seiten nicht zusammenhängende Bereiche im physikalischen Speicher.
  • Bei einem Prozeß, der als Promotion bezeichnet wird, erkennt das Betriebssystem, daß die unter Verwendung der verschiedenen kleinen Seiten durchgeführte Abbildung durch eine Abbildung mit einer einzigen großen Seite ersetzt werden kann, und dann die Ersetzung der verschiedenen kleinen Seitenabbildungen in eine große Seitenabbildung durchführen.
  • Da die kleinen Seiten typischerweise nicht in einem zusammenhängenden Bereich des physikalischen Speichers lokalisiert sind, der an einer Grenze einer großen Seite beginnt, muß, um die kleinen Seiten in eine einzige große Seite umzuwandeln, das Betriebssystem einen geeigneten Bereich des physikalischen Speichers finden, der die große Seite unterbringen kann, und dann den Inhalt der verschiedenen kleinen Seiten in diesen verlegen. Obgleich die Seitenumwandlung vorteilhaft ist, ist somit der Umwandlungsprozeß ein zeitaufwendiger Prozeß.
  • Zusammenfassend werden, sogar wenn mehrere Seitengrößen beim Stand der Technik unterstützt werden, virtuelle Seiten im physikalischen Speicher mit einer physikalischen Seite der gleichen Seitengröße wie die unterstützte virtuelle Seite unterstützt. Dies bedeutet, daß jede physikalische Seite, die eine virtuelle Seite unterstützt, aus einem zusammenhängenden adressierbaren Bereich des physikalischen Speichers gebildet werden muß, dessen Größe gleich der Größe der virtuellen Seite ist, die von dem physikalischen Speicher unterstützt wird. Ferner muß der zusammenhängende adressierbare Bereich des physikalischen Speichers, der die virtuelle Seite unterstützt, an einer Seitenausrichtungsgrenze für die Größe der unterstützten virtuellen Seite beginnen. Außerdem darf die von der physikalischen Seite unterstützte virtuelle Seite keine "Löcher" enthalten, d. h. Bereiche, innerhalb der virtuellen Seite, die nicht auf den physikalischen Speicher abgebildet werden. Eine bedeutende Menge an Mehraufwand wird innerhalb des virtuellen Speichersystems verbraucht, um sicherzustellen, daß diesen Beschränkungen entsprochen wird. Das Dokument JP-A-1 017 137 bildet einen relevanten Stand der Technik zu der vorliegenden Anmeldung, da es ein Speichersteuersystem offenbart, das eine Speicherseitenpromotion erreicht.
  • KURZFASSUNG DER ERFINDUNG
  • Beschrieben wird eine Einrichtung und ein Verfahren zum Bereitstellen von logisch adressierbarem physikalischen Speicher innerhalb eines Computersystems mit virtuellem Speicher, der in einen physikalischen Speicher mit mehreren Seitengrößen abgebildet werden kann. Die Verwendung eines Zwischenadressierschemas ermöglicht die Abbildung verschiedener, nicht zusammenhängender kleiner Seiten auf eine virtuelle Speicherseite größerer Größe im physikalischen Speicher. Anstelle eines Übersetzens einer virtuellen Adresse direkt in eine physikalische Adresse, wird die virtuelle Adresse in eine Zwischenadresse übersetzt, die eine physikalische Adresse sein kann oder auch nicht. Wenn die virtuelle Seite von dem physikalischen Speicher unterstützt wird, der zusammenhängend und an einer für die Seitengröße geeigneten Grenze, ausgerichtet ist, dann ist die Zwischenadresse die physikalische Adresse, und es ist keine zweite Übersetzung erforderlich. Wenn die Zwischenadresse keine physikalische Adresse ist, dann wird sie in eine physikalische Adresse übersetzt. Dies ist der Fall, bei dem eine große Seite im virtuellen Speicher von mehr als einer kleineren Seite im physikalischen Speicher unterstützt wird.
  • Die Verwendung von Zwischenadressen, die keine physikalischen Adressen sind, macht es möglich, den physikalischen Speicher so zu behandeln, als ob er ein logischer Speicher ist. Daher können nicht zusammenhängende kleine Seiten im physikalischen Speicher unter Verwendung einer Zwischenübersetzung zusammen abgebildet werden, um eine einzige große Seite zu bilden. Dieser Prozeß beseitigt das Erfordernis, daß eine große Seite unter Verwendung eines einzigen zusammenhängenden Abschnitts eines physikalischen Speichers abgebildet wird. Ferner beseitigt dieser Prozeß das Erfordernis, daß die große Seite innerhalb des physikalischen Speichers an einer entsprechenden Grenze einer großen Seite ausgerichtet wird. Ferner können verschieden kleine Seiten in eine einzige große Seite einfach durch Ändern der virtuellen Adresse in Zwischenadressenabbildungen, und ferner durch Ändern der Zwischenadresse in physikalische Adressenabbildungen, um die Umwandlung widerzuspiegeln, umgewandelt werden. Daher wird das Bedürfnis, den Inhalt der kleinen Seiten in einen einzigen zusammenhängenden ausgerichteten Bereich einer großen Seite des physikalischen Speichers während eines Seitenpromotions- oder -umwandlungsvorgangs zu verlegen, eliminiert. Ferner kann, da eine große Seite im virtuellen Speicher unterstützt werden kann, indem kleinere Seiten im physikalischen Speicher zusammen abgebildet werden, ein Bereich großer Seitengröße des virtuellen Speichers, der eine oder mehrere Seitenlöcher kleinerer Größe innerhalb desselben aufweist, als eine einzige große virtuelle Speicherseite behandelt, und im physikalischen Speicher unter Verwendung von nur so wenigen kleinen Seiten unterstützt, wie erforderlich ist, um die Nichtlöcherbereiche des virtuellen Adreßraums zu unterstützen.
  • Außerdem ziehen bei einem Schema, bei dem die Verwendung von Alias-Namen erlaubt ist, die Alias-Namen ebenfalls Nutzen aus dem Zwischenadressierschema.
  • Diese Aufgaben werden grundsätzlich auf eine vorteilhafte Art und Weise durch Anwenden der in den unabhängigen Ansprüchen angegebenen Merkmale gelöst. Weiterbildungen werden in den Unteransprüchen beansprucht.
  • KURZBESCHREIBUNG DER ZEICHNUNGEN
  • Die Aufgaben, Merkmale und Vorteile des Verfahrens und der Einrichtung der vorliegenden Erfindung ergeben sich aus der folgenden ausführlichen Beschreibung der Erfindung offensichtlich, in denen darstellen:
  • Fig. 1 ein Computersystem, das eine Speicherverwaltungseinheit-basierende Ausführungsform der vorliegenden Erfindung verwendet, um eine Adressenübersetzung von einer virtuellen Adresse in eine Zwischenadresse und dann in eine physikalische Adresse durchzuführen;
  • Fig. 2 ein Computersystem, das eine Übersetzungs- Nachschlagepuffer-basierende Ausführungsform der vorliegenden Erfindung verwendet, um eine Adressenübersetzung von · einer virtuellen Adresse in eine Zwischenadresse und dann in eine physikalische Adresse durchzuführen;
  • Fig. 3 die Beziehung zwischen Übersetzungstabelleneinträgen eines Übersetzungsnachschlagepuffers und Neuabbildungstabelleneinträgen eines Neuabbildungs-Nachschlagepuffers;
  • Fig. 4 die Abbildung einer Seite mittlerer Größe und zwei Seiten kleiner Größe aus einem Bereich eines virtuellen Adreßraums auf einen Bereich eines Zwischenadreßraums und dann auf einen Bereich eines physikalischen Adreßraums;
  • Fig. 5 die Abbildung eines Bereichs eines virtuellen Adreßraums auf einen Bereich eines Zwischenadreßraums und dann auf einen Bereich eines physikalischen Adreßraums vor der Umwandlung verschiedener Seiten kleiner Größe in eine einzige Seite großer Größe;
  • Fig. 6 die Abbildung eines Bereichs eines virtuellen Adreßraums auf einen Bereich eines Zwischenadreßraums und dann auf einen Bereich eines physikalischen Adreßraums nach der Umwandlung verschiedener Seiten kleiner Größe in eine einzige Seite großer Größe;
  • Fig. 7 die Abbildung eines Bereichs eines virtuellen Adreßraums auf einen Bereich eines Zwischenadreßraums und dann auf einen Bereich eines physikalischen Adreßraums, wobei eine Seite mittlerer Größe und eine Seite kleiner Größe als eine einzige Seite größer Größe mit einem "Loch" kleiner Seitengröße an dem Ende der Seite großer Größe behandelt werden;
  • Fig. 8 die Abbildung eines Bereichs eines virtuellen Adreßraums auf einen Bereich eines Zwischenadreßraums und dann auf einen Bereich eines physikalischen Adreßraums, wobei eine Seite mittlerer Größe und eine Seite kleiner Größe als eine einzige Seite großer Größe mit einem "Loch" kleiner Seitengröße innerhalb der Seite großer Größe behandelt werden;
  • Fig. 9 die Abbildung eines Bereichs eines virtuellen Adreßraums auf einen Bereich eines Zwischenadreßraums und dann auf einen Bereich eines physikalischen Adreßraums, wobei zwei unterschiedliche Bereiche kleiner Seitengröße im virtuellen Adreßraum von der gleichen einzigen Seite kleiner Größe im physikalischen Speicher unterstützt werden; und
  • Fig. 10 die Abbildung eines Bereichs eines virtuellen Adreßraums auf einen Bereich eines Zwischenadreßraums und dann auf einen Bereich eines physikalischen Adreßraums, wobei zwei unterschiedliche Bereiche mittlerer Seitengröße im virtuellen Adreßraum abgebildet werden, indem die gleichen zwei Seiten kleiner Größe zusammen im physikalischen Speicher abgebildet werden.
  • AUSFÜHRLICHE BESCHREIBUNG DER ERFINDUNG
  • Bei der folgenden Beschreibung werden für die Zwecke der Erläuterung spezifische Zahlen, Materialien und Konfigurationen angegeben, um ein gründliches Verständnis der Erfindung zu liefern. Es ist jedoch für Fachleute offensichtlich, daß die vorliegende Erfindung ohne die speziellen Einzelheiten realisiert werden kann. Bei anderen Fällen werden bekannte Systeme in Diagramm- oder Blockdiagrammform gezeigt, um das Verständnis für die vorliegende Erfindung nicht unnötig zu belasten.
  • Mit Bezug nun auf Fig. 1 wird ein Computersystem dargestellt, das eine Ausführungsform der vorliegenden Erfindung auf der Basis einer Speicherverwaltungseinheit verwendet, um eine Adressenübersetzung von einer virtuellen Adresse in eine Zwischenadresse und dann in eine physikalische Adresse durchzuführen, wenn die Zwischenadresse keine physikalische Adresse ist. Beidem Computersystem 100 von Fig. 1 arbeitet eine zentrale Verarbeitungseinheit (CPU) 110 an den Daten und Befehlen, die mit virtuellen Adressen adressiert sind. Diese virtuellen Adressen werden in Seiten kontinuierlicher Bereiche eines virtuellen Speichers gruppiert. Da das Computersystem 100 mit mehr als einer Größe einer virtuellen Seite gleichzeitig arbeiten kann, kann ein zusammenhängender Abschnitt eines virtuellen Speichers alternativ als eine einzige große Seite oder als zwei oder mehr kleinere Seiten angesehen werden:
  • Wenn die CPU 110 auf einen Befehl oder Daten zugreifen muß, die innerhalb einer besonderen Seite gespeichert sind, wird ein Test durchgeführt, um zu bestimmen, ob der gewünschte virtuelle Seiteninhalt gegenwärtig in einem physikalischen Speicher (PM) 170 untergebracht ist oder nicht. Wenn herausgefunden wird, daß der gewünschte virtuelle Seiteninhalt im physikalischen Speicher 170 untergebracht ist, dann greift die CPU 110 auf den gewünschten Befehl oder die gewünschten Daten direkt innerhalb des physikalischen Speichers 170 zu. Wenn andererseits herausgefunden wird, daß der gewünschte virtuelle Seiteninhalt nicht im physikalischen Speicher 170 untergebracht ist, dann muß die CPU 110 warten, bis der gewünschte virtuelle Seiteninhalt in den physikalischen Speicher 170 geladen wurde, bevor ein Zugriff auf den gewünschten Befehl oder die gewünschten Daten innerhalb des physikalischen Speichers 170 durchgeführt werden kann.
  • Eine Speicherverwaltungseinheit (MMU) 130 übersetzt eine von der CPU 110 empfangene virtuelle Adresse (VA) 120 in eine Zwischenadresse (IA) 140. Eine Neuabbildungsverwaltungseinheit (RMU) 150 nimmt dann die Zwischenadresse 140 und übersetzt sie in eine physikalische Adresse (PA) 160. Die physikalische Adresse 160 kann dann verwendet werden, um auf den geeigneten Abschnitt des physikalischen. Speichers 170 zuzugreifen. Der Bereich des Zwischenadreßraums ist der gleiche wie der Bereich des physikalischen Adreßraums. Wenn eine virtuelle Adresse, die in einer Seite enthalten ist, im physikalischen Speicher 170 als ein einziger zusammenhängender Bereich von physikalischen Speicher gespeichert ist, der bei einer geeigneten Seitengrenze beginnt, dann kann die von der MMU 130 bereitgestellte Zwischenadresse als eine physikalische Adresse bei dem Zugreifen auf den physikalischen Speicher 170 verwendet werden. In einem solchen Fall wird die RMU 170 einfach durch die Zwischenadresse als die physikalische Adresse durchgeleitet; das heißt, ohne Übersetzen der Zwischenadresse in eine physikalische Adresse.
  • In anderen Fällen wird die von der MMU 130 gelieferte Zwischenadresse von der RMU 150 in eine physikalische Adresse oder Adressen neu abgebildet, die verwendet werden kann/können, um auf den physikalischen Speicher 170 zuzugreifen. Ein erster Fall, bei dem eine Übersetzung einer nicht trivialen Zwischenadresse zu einer physikalischen Adresse stattfindet, tritt auf, wenn die virtuelle Adressenseite, die die zu übersetzende virtuelle Adresse enthält, im physikalischen Speicher nicht als ein einziger zusammenhängender Abschnitt des physikalischen Speichers gespeichert ist. Ein zweiter nicht trivialer Fall der Übersetzung einer Zwischenadresse in eine physikalische Adresse tritt auf, wenn nur ein kleinerer Abschnitt des physikalischen Speichers als die abgebildete virtuelle Speicherseite relevante Daten aufweist. Ein dritter Fall, bei dem eine nicht triviale Übersetzung einer Zwischenadresse in einer physikalischen Adresse stattfindet, tritt auf, wenn die virtuelle Adressenseite, die die zu übersetzende virtuelle Adresse enthält, im physikalischen Speicher nicht als ein einziger zusammenhängender Bereich des physikalischen Speichers, der an einer geeigneten Seitengrenze beginnt, gespeichert ist.
  • Die MMU 130 und die RMU 150 arbeiten zusammen, um zwei oder mehr Seiten eines physikalischen Speichers auf eine Seite eines virtuellen Speichers abzubilden. Die Seiten des auf einer Seite eines virtuellen Speichers von der RMU 150 abgebildeten physikalischen Speichers können eine andere Seitengröße als diejenige der virtuellen Seite aufweisen, in die sie abgebildet werden. Ferner können verschiedene Seiten unterschiedlicher Größe (und/oder nicht zusammenhängender) Seiten des physikalischen Speichers von der RMU 150 zusammen auf eine größere virtuelle Seite abgebildet werden. Die RMU 150 ermöglicht somit, daß der physikalische Speicher 170 als ein logischer Speicher behandelt wird und daher logisch adressiert wird. Somit können nicht zusammenhängende Abschnitte des physikalischen Speichers 170 von der RMU 150 zusammen in einer einzigen virtuellen Seite abgebildet werden. Ferner ermöglicht die RMU 150, daß große Seiten auf verschiedene kleinere Seitenstücke überall in dem physikalischen Speicher 170 abgebildet werden können, und, obgleich diese kleineren Seitenstücke noch an einer Seitengrenze beginnen, ist die Seitengrenze, an der sie beginnen, die Grenze einer kleineren Seite und nicht diejenige der größeren Seite, auf die sie abgebildet werden. Außerdem ermöglicht die RMU 150, daß kleine virtuelle Seiten auf größere physikalische Seiten abgebildet werden.
  • Die tatsächlichen Größen der von der CPU 110 unterstützten Seiten ist unerheblich, jedoch sind die Größen der Speicherseiten typischerweise eine ganzzahlige Potenz von zwei der Anzahl von Wörtern. Bei einer Ausführungsform unterstützt die CPU 110 vier Seitengrößen. Die Größen dieser Seiten sind 8K-Wörter (d. h. 2¹³ Wörter), 64K-Wörter (d. h. 2¹&sup6; Wörter), 512K-Wörter (d. h. 2¹&sup9; Wörter) und 4M-Wörter (d. h. 2²¹ Wörter). Somit kann dann bei dieser Ausführungsform, mit der Ausnahme der Seite kleinster Größe, jede Seite dadurch gebildet werden, daß acht der Seiten der nächst kleineren Größe zusammen abgebildet werden.
  • Bei einer Ausführungsform des Computersystems 100 überträgt die Systemverbindung (z. B. der Systembus) physikalische Adressen 160 (sowie auch Daten und Steuersignale, die nicht gezeigt sind) an den physikalischen Speicher 170. Alternativ kann die RMU 150 an der Seite des physikalischen Speichers 170 der Systemverbindung angeordnet sein, wobei die Systemverbindung dann Zwischenadressen 140 (sowie auch Daten und Steuersignale, die nicht gezeigt sind) an die RMU 150 überträgt.
  • Cache-Speicher für Daten und Befehle können dem Computersystem 100 hinzugefügt werden, falls gewünscht. Cache- Speicher umfassen typischerweise adressenbasierte Markierungen. Abhängig davon, wo innerhalb des Systems 100 der Cache-Speicher angeordnet ist, wird der Adreßraum für die Cache-Markierungen derjenige des virtuellen, Zwischen- oder physikalischen Adreßraums sein. Wenn das Computersystem 100 durch Hinzufügen zusätzlicher CPUs erweitert wird, um ein Multi-Prozessorsystem zu sein, können ähnlich angeordnete Cache-Speicher innerhalb des Systems 100 den gleichen Adreßraum für ihre Markierungen verwenden, um Cache-Kohärenz beizubehalten. Für schnellere Zugriffe auf Cache-Speicher wird erwartet, daß auf Cache-Speicher mit virtuellen oder Zwischenadressen zugegriffen wird.
  • Mit Bezug nun auf Fig. 2 ist ein Computersystem dargestellt, das eine Ausführungsform der vorliegenden Erfindung auf Übersetzungsnachschlagepuffer-Basis verwendet, um eine Adreßübersetzung von einer virtuellen Adresse in eine Zwischenadresse und dann in eine physikalische Adresse durchzuführen, wenn die Zwischenadresse keine physikalische Adresse ist. Das Computersystem 200 von Fig. 2 ist dem Computersystem 100 von Fig. 1 ähnlich. Die MMU 130 von Fig. 1 ist im Computersystem 200 von Fig. 2 gezeigt, wie sie von einem Übersetzungsnachschlagepuffer (TLB) 230 implementiert wird, der in Verbindung mit der TLB-Miss- Behandlungseinrichtung 235 arbeitet. Der TLB 230 ist grundsätzlich ein Übersetzungstabelleneintrag-Cache-Speicher (TEE-Cache). Jeder Übersetzungstabelleneintrag (TTE) enthält eine Übersetzungsinformation für virtuelle Adressen in Zwischenadressen für mindestens eine virtuelle Seite. Wenn eine virtuelle Adressenübersetzung für eine virtuelle Adresse angefordert wird, die keinen in dem TLB 230 gespeicherten Übersetzungstabelleneintrag aufweist, dann tritt ein TLB- Miss auf, und die TLB-Miss-Behandlungseinrichtung 235 liefert die angeforderte Übersetzung an den TLB 230 und schließlich an die CPU 110.
  • Auf ähnliche Weise ist die RMU 150 von Fig. 1 im Computersystem 200 von Fig. 2 gezeigt, wie sie von einem Neuabbildungsnachschlagepuffer (RLB) 250 implementiert wird, der in Verbindung mit der RLB-Miss-Behandlungseinrichtung 255 arbeitet. Der RLB 250 arbeitet ähnlich wie der TLB 230; während jedoch der TLB 230 Übersetzungen von virtuellen Adressen in Zwischenadressen bereitstellt, liefert der RLB 250 Übersetzungen von Zwischenadressen in physikalische Adressen. Als solcher ist der RLB 250 grundsätzlich ein Neuabbildungstabelleneintrags- Cache-Speicher (RTE-Cache). Jeder Neuabbildungstabelleneintrag (RTE) enthält Information für die Übersetzung von Zwischenadressen in physikalische Adressen für mindestens eine physikalische Seite. Wenn eine Übersetzung einer physikalischen Adresse für eine physikalische Seite angefordert wird, die keine im RLB 250 gespeicherte Übersetzung aufweist, dann tritt ein RLB-Miss auf, und die RLB-Miss-Behandlungseinrichtung 255 liefert die angeforderte Übersetzung an den RLB 250.
  • Bei einer Ausführungsform werden die TLB-Miss-Behandlungseinrichtung 235 und die RLB-Miss-Behandlungseinrichtung 255 jeweils von getrennten Prozessoren ausgeführt, die dem Ausführen der TLB-Miss-Behandlungsfunktion bzw. dem Ausführen der RLB-Miss-Behandlungsfunktion zugeordnet sind. Bei einer weiteren Ausführungsform werden sowohl die TLB-Miss- Behandlungseinrichtung 235 als auch die RLB-Miss-Behandlungseinrichtung 255 von einem einzigen getrennten Prozessor ausgeführt, der dem Ausführen von sowohl der TLB-Miss- Behandlungs- als auch der RLB-Miss-Behandlungsfunktionen zugeordnet ist. Bei einer noch weiteren Ausführungsform werden entweder die TLB-Miss-Behandlungseinrichtung 235 oder die RLB-Miss-Behandlungseinrichtung 255 (oder sowohl die TLB-Miss-Behandlungseinrichtung 235 als auch die RLB-Miss- Behandlungseinrichtung 255) von der CPU 110 ausgeführt.
  • Ferner können, aufgrund der Ähnlichkeiten der von der TLB-Miss-Behandlungseinrichtung 235 und der von der RLB- Miss-Behandlungseinrichtung 255 bereitgestellten Funktionen, die gleichen Algorithmen verwendet werden, um die TLB-Miss- Behandlungseinrichtung 235 zu implementieren, wie sie verwendet werden können, um die RLB-Miss-Behandlungseinrichtung 255 zu implementieren. Dies bedeutet, daß nur eine einzige Miss-Behandlungs-Hardware- oder -Software-Implementierung unterstützt werden muß.
  • Mit Bezug nun auf Fig. 3 wird die Beziehung zwischen Übersetzungstabelleneinträgen und Neuabbildungstabelleneinträgen dargestellt. In Fig. 3 ist ersichtlich, daß der Übersetzungstabelleneintrag (TTE) 310 aus vier Feldern aufgebaut ist. Die ersten beiden Felder des TTE 310 sind ein TLB-Markierungsfeld 320 und TLB-Datenfeld 330. Das TLB- Markierungsfeld 320 kennzeichnet eine besondere Seite im virtuellen Speicherraum, die die zu übersetzende virtuelle Adresse enthält. Das TLB-Datenfeld 330 kennzeichnet eine besondere Zwischenadreßraumseite, die der von dem TLB- Markierungsfeld 320 gekennzeichneten virtuellen Seite entspricht.
  • Das Attributfeld 340 des TTE 310 enthält Information hinsichtlich der abgebildeten Seitengröße und hinsichtlich der Art von Operationen, die an den Daten der dem TEE 310 entsprechenden virtuellen Seite durchgeführt werden können. Beispielsweise kann das Attributfeld 340 ein Bit enthalten, das angibt, daß von der dem TTE 310 entsprechenden virtuellen Seite gelesen jedoch nicht geschrieben werden kann.
  • In dem Fall, in dem die Zwischenadreßraumseite des TLB- Datenfeld 330 die gleiche wie die tatsächliche physikalische Adressenseite ist, die sie unterstützt, wird ein einziges Bitfeld-Durchleit-Flag 350 gesetzt, um dem RLB anzugeben, daß es keine Notwendigkeit für den RLB gibt, eine Neuabbildungsübersetzung durchzuführen. Tatsächlich läuft, wenn das Durchleit-Bit gesetzt ist, der RLB einfach durch die Zwischenadressenübersetzung als die physikalische Adressenübersetzung. Wenn das Durchleit-Bit 350 nicht gesetzt ist, dann verwendet der RLB einen RTE, wie beispielsweise den RTE 360, um eine Zwischenadresse in eine physikalische Adresse zu übersetzen.
  • In Fig. 3 ist ersichtlich, daß der Neuabbildungstabelleneintrag (RTE) 360 aus drei Feldern aufgebaut ist. Die ersten beiden Felder des RTE 360 sind ein RLB-Markierungsfeld 370 und ein RLB-Datenfeld 380. Das RLB-Markierungsfeld 370 kennzeichnet eine besondere Seite im Zwischenspeicherraum, die die zu übersetzende Zwischenadresse enthält. Das RLB-Datenfeld 380 kennzeichnet eine besondere physische Adreßraumseite, die der von dem RLB-Markierungsfeld 370 gekennzeichneten Zwischenraumseite entspricht.
  • Das Attributfeld 390 des RTE 360 enthält Information hinsichtlich der abgebildeten Seitengröße und hinsichtlich der Art von Operationen, die an den Daten der dem RTE 360 entsprechenden Zwischenseite durchgeführt werden können. Beispielsweise kann das Attributfeld 390 ein Bit enthalten, das angibt, daß von der dem RTE 360 entsprechenden Zwischenseite gelesen jedoch nicht auf diese geschrieben werden kann. Typischerweise wird die in dem Attributfeld 390 des RTE 360 gespeicherte Information im Blick auf die im Attributfeld 340 des TTE 310 gespeicherten Information redundant sein. In einem derartigen Fall kann das Attributfeld 390 von dem RTE 360 eliminiert werden.
  • Nun sei auf Fig. 4 bis Fig. 10 zusammenhängen Bezug genommen, wobei diese Figuren Beispiele darstellen, um verschiedene Vorteile zu zeigen, die durch Verwenden der vorliegenden Erfindung dargestellt werden. Zwecks Einfachheit der Darstellung in diesen Figuren werden drei Seitengrößen verwendet. Es wird eine Seite kleiner Größe, eine Seite mittlerer Größe und ein Seite großer Größe geben. Eine Seite mittlerer Größe ist in der Größe gleich zwei Seiten kleiner Größe. Eine Seite großer Größe ist in der Größe gleich zwei Seiten mittlerer Größe und folglich in der Größe gleich vier kleinen Seiten. Die tatsächliche Größe dieser Seiten ist für die Darstellung der Ideen in diesen Figuren nicht bedeutend.
  • Mit Bezug nun auf Fig. 4 ist die Abbildung einer Seite mittlerer Größe und von zwei Seiten kleiner Größe aus einem Bereich eines virtuellen Adreßraums auf einen Bereich eines Zwischenadreßraums und dann auf einen Bereich eines physikalischen Adreßraums dargestellt. In Fig. 4 ist der virtuelle Adreßraum 410 ein kontinuierlicher Bereich von acht Seiten kleiner Größe des virtuellen Adreßraums. Somit wird der virtuelle Adreßraum 410 durch acht virtuell adressierte Seiten kleiner Größe VP-0 bis VP-7 gebildet.
  • Da eine Seite mittlerer Größe in der Größe gleich zwei Seiten kleiner Größe ist, kann der virtuelle Adreßraum 410 alternativ als vier Seiten mittlerer Größe angesehen werden. Die Seiten im virtuellen Adreßraum 410 müssen seitenausgerichtet sein. Daher könnte eine erste Seite mittlerer Größe gebildet werden, indem die kleinen Seiten VP-0 und VP- 1 zusammen abgebildet werden, eine zweite Seite mittlerer Größe könnte gebildet werden, indem die kleinen Seiten VP-2 und VP-3 zusammen abgebildet werden, eine dritte Seite mittlerer Größe könnte gebildet werden, indem die kleinen Seiten VP-4 und VP-5 zusammen abgebildet werden, und eine vierte Seite mittlerer Größe könnte gebildet werden, indem die kleinen Seiten VP-6 und VP-7 zusammen abgebildet werden. Infolge der dem virtuellen Adreßraum auferlegten Ausrichtungsbeschränkung könnte eine virtuelle Adreßraumseite mittlerer Größe beispielsweise nicht dadurch gebildet werden, daß VP-1 und VP-2 zusammen abgebildet werden, da VP-1 nicht an einer Seitengrenze mittlerer Größe beginnt. Ferner könnte infolge der dem virtuellen Adreßraum auferlegten zusammenhängenden Seitenbeschränkung, eine virtuelle Adreßraumseite mittlerer Größe beispielsweise nicht dadurch gebildet werden, daß VP-0 und VP-2 zusammen abgebildet werden, da VP-0 nicht an VP-2 angrenzt.
  • Auf ähnliche Weise kann, da eine Seite großer Größe der Größe von zwei Seiten mittlerer Größe gleich und ferner vier Seiten kleiner Größe glich ist, der virtuelle Adreßraum 410 alternativ als zwei Seiten großer Größe angesehen werden.
  • Seiten im virtuellen Adreßraum 410 müssen wieder seitenausgerichtet sein. Daher könnte eine erste Seite großer Größe gebildet werden, indem die kleinen Seiten VP-0, VP-1, VP-2 und VP-3 zusammen abgebildet werden, und eine zweite Seite großer Größe könnte gebildet Werden, indem die kleinen Seiten VP-4, VP-5, VP-6 und VP-7 zusammen abgebildet werden. Infolge der dem virtuellen Adreßraum auferlegten Seitenausrichtungsbeschränkung könnte beispielsweise eine virtuelle Adreßraumseite nicht gebildet werden, indem VP-1, VP-2, VP-3 und VP-4 zusammen abgebildet werden, da VP-1 nicht an einer Seitengrenze großer Größe beginnt. Ferner könnte infolge der dem virtuellen Adreßraum auferlegten zusammenhängenden Seitenbeschränkung eine virtuelle Adreßraumseite großer Größe nicht beispielsweise dadurch gebildet werden, indem VP-0 und VP-2, VP-3 und VP-4 zusammen abgebildet werden; da VP-0 nicht an VP-2 angrenzt.
  • Es ist ferner möglich, den virtuellen Adreßraum 410 als eine Kombination von Seiten großer, mittlerer und kleiner Größe anzusehen. Daher kann beispielsweise der virtuelle Adreßraum 410 als eine einzige Seite großer Größe, eine einzige Seite mittlerer Größe und zwei Seiten kleiner Größe angesehen werden. Bei diesem Beispiel könnte die einzige Seite großer Größe durch VP-0, VP-1, VP-2 und VP-3 gebildet werden. Die einzige Seite mittlerer Größe könnte durch VP-4 und VP-5 gebildet werden. VP-6 und VP-7 würden dann jeweils eine kleine Seite unterschiedlicher Größe darstellen.
  • In Fig. 4 ist der Zwischenadreßraum 450 ein zusammenhängender Bereich von vier Seiten kleiner Größe des Zwischenadreßraums. Der Zwischenadreßraum 450 wird von den vier zwischenadressierbaren Seiten kleiner Größe IP-0 bis IP-3 gebildet.
  • Da eine Seite mittlerer Größe in der Größe gleich zwei Seiten kleiner Größe ist, kann der Zwischenadreßraum 450 alternativ als zwei Seiten mittlerer Größe angesehen werden. Wie es der Fall bei den virtuellen Adreßraumseiten ist, müssen Seiten im Zwischenadreßraum 450 seitenausgerichtet sein. Daher könnte eine erste Seite mittlerer Größe gebildet werden, indem die kleinen Seiten IP-0 und IP-1 zusammen abgebildet werden, und eine zweite Seite mittlerer Größe könnte gebildet werden, indem die kleinen Seiten IP-2 und IP-3 zusammen abgebildet werden. Infolge der dem Zwischenadreßraum auferlegten Seitenausrichtungsbeschränkung könnte eine Zwischenadreßraumseite mittlerer Größe nicht beispielsweise gebildet werden, indem IP-1 und IP-2 zusammen abgebildet werden, da IP-1 nicht an einer Seitengrenze mittlerer Größe beginnt. Infolge der dem Zwischenadreßraum auferlegten zusammenhängenden Seitenbeschränkung könnte außerdem eine Zwischenadreßraumseite mittlerer Größe beispielsweise nicht gebildet werden, indem IP-0 und IP-2 zusammen abgebildet werden, da IP-0 nicht an IP-2 angrenzt.
  • Auf ähnliche Weise kann, da eine Seite großer Größe in der Größe gleich zwei Seiten mittlerer Größe und ebenfalls gleich vier Seiten kleiner Größe ist, der Zwischenadreßraum 450 alternativ als eine Seite großer Größe angesehen werden, der gebildet wird, indem die kleinen Seiten IP-0, IP-1, IP-2 und IP-3 zusammen abgebildet werden.
  • Es ist ferner möglich, den Zwischenadreßraum 450 als eine Kombination von Seiten mittlerer und kleiner Größe anzusehen. Daher kann beispielsweise der Zwischenadreßraum 450 als eine einzige Seite mittlerer Größe und zwei Seiten kleiner Größe angesehen werden. Bei diesem Beispiel könnte die einzige Seite mittlerer Größe durch IP-0 und IP-1 gebildet werden. IP-2 und IP-3 würden dann jeweils eine unterschiedliche Seite kleiner Größe darstellen.
  • In Fig. 4 ist der physikalische Adreßraum 490 ein zusammenhängender Bereich von vier Seiten kleiner Größe des physikalischen Adreßraums. Daher umfaßt der physikalische Adreßraum 490 den gleichen Bereich wie der Zwischenadreßraum 450. Der physikalische Adreßraum 490 wird von den vier physikalisch adressierten Seiten PP-0 bis PP-3 kleiner Größe gebildet.
  • Da eine Seite mittlerer Größe in der Größe gleich zwei Seiten kleiner Größe ist, kann der physikalische Adreßraum 490 alternativ als zwei Seiten mittlerer Größe angesehen werden. Die kleinen Seiten von dem physikalischen Adreßraum 490 können zusammen abgebildet werden, um eine einzige Seite mittlerer Größe aus dem Zwischenadreßraum 450 zu unterstützen. Daher müssen Seitenabschnitte im physikalischen Adreßraum 490 an der Seite kleiner Größe ausgerichtet werden. Somit könnte eine erste Seite mittlerer Größe gebildet werden, indem die kleinen Seiten PP-0 und PP-1 zusammen abgebildet werden, und eine zweite Seite mittlerer Größe könnte gebildet werden, indem die kleinen Seiten PP-2 und PP-3 zusammen abgebildet werden. Das Abbilden eines Bereichs eines physikalischen Adreßraums in einen Bereich eines virtuellen Adreßraums ohne Verwenden eines Zwischenadreßraums bedingt, daß die Bereiche in beiden Adreßräumen die Zusammenhängigkeits- und Ausrichtungsbeschränkungen einhalten. Wenn eine Zwischenadreßraumabbildung hinzugefügt wird, hat der Zwischenadreßbereich die Beschränkungen einzuhalten, wobei es jedoch der physikalische Adreßraum nicht muß. Durch Verwenden mehrerer Abbildungen kleiner Größe von den Zwischen- in physikalische Adreßbereiche, kann eine beliebige Kombination physikalischer Seiten kleiner Größe durch Abbilden von virtuellen in Zwischenadreßräumen derart durchgeführt werden, daß sie einer größeren Seite entspricht. Wenn eine Seitenabbildung mittlerer Größe für die Zwischen- in physikalische Adresse verwendet wird, müssen die Beschränkungen für diese Seitenabbildung mittlerer Größe eingehalten werden.
  • Somit befolgen, wenn VP-2 und VP-3 in IP-0 und IP-1 mit einer Seitenabbildung mittlerer Größe im TLB 230 abgebildet werden, IP-0 und IP-1 die Zusammenhängigkeits- und Ausrichtungsbeschränkungen. Die IP-0 und IP-1 entsprechenden physikalischen Seiten müssen nicht die gleichen Beschränkungen einhalten. Wenn PP-0 und PP-2 jeweils IP-0 und IP-1 entsprechen, dann werden die zwei Seiteneinträge kleiner Größe (472 B und 474 B) im RLB 250 verwendet. Wenn PP-2 und PP-3 andererseits IP-0 und IP-1 entsprechen, dann kann ein einziger Abbildungseintrag mittlerer Größe im RTLB 250 verwendet werden.
  • Auf ähnliche Weise kann, da eine Seite großer Größe in der Größe zwei Seiten mittlerer Größe und ebenfalls vier Seiten kleiner Größe gleich ist, der physikalische Adreßraum 490 alternativ als eine Seite großer Größe angesehen werden, die gebildet wird, indem die kleinen Seiten PP-0, PP-1, PP-2 und PP-3 zusammen abgebildet werden. Da der physikalische Adreßraum 490 in der Größe gleich einer einzigen Seite großer Größe ist, ist der gesamte physikalische Adreßraum 490 erforderlich, um eine vollständige Seite großer Größe des Zwischenadreßraums 450 zu unterstützen. Es muß jedoch nicht die Reihenfolge der Abschnitte dieser großen Seite im physikalischen Adreßraum 490 beibehalten werden. Beispielsweise könnte der erste Seitenabschnitt kleiner Größe der großen Seite in PP-1, der zweite Seitenabschnitt kleiner Größe der großen Seite könnte in PP-3, der dritte Seitenabschnitt kleiner Größe der großen Seite könnte in PP-2 und der vierte Seitenabschnitt kleiner Größe der großen Seite könnte in PP-0 gespeichert sein.
  • Es ist ebenfalls möglich, den physikalischen Adreßraum 490 als eine Kombination von Seiten mittlerer und kleiner Größe anzusehen: Daher kann beispielsweise der physikalische Adreßraum 490 als eine einzige Seite mittlerer Größe und zwei Seiten kleiner Größe angesehen werden. Wenn VP-0 bis VP-3 auf IP-0 bis IP-3 mittels einer großen Seitenabbildung abgebildet wurde, und IP-0 bis IP-3 jeweils PP-0, PP-1, PP-3 und PP-2 entsprechen, dann könnte eine Abbildung mittlerer Seitengröße zum Abbilden von IP-0 bis IP-1 auf PP-0 bis PP-1 verwendet werden. In einem derartigen Fall würde eine kleine Seitenabbildung zum Abbilden von IP-2 auf PP-3 und eine weitere kleine Seitenabbildung zum Abbilden von IP-3 auf PP- 2 verwendet werden. Die Ausrichtungs- und Zusammenhängigkeitsbeschränkungen müßten für die Seitenabbildungen mittlerer Größe von IP-0 bis IP-1 auf PP-0 bis PP-1 eingehalten werden.
  • In Fig. 4 führt der Übersetzungsnachschlagepuffer (TLB) 230 die vorher beschriebene Übersetzungsfunktion aus. Somit speichert der TLB 230 Übersetzungstabelleneinträge (TTEs), die die Abbildung der virtuellen Adreßraumseiten auf die Zwischenadreßraumseiten liefern. Ferner führt in Fig. 4 der Neuabbildungsnachschlagepuffer (RLB) 250 die vorher beschriebene Neuabbildungsfunktion durch. Somit speichert der RLB 250 Neuabbildungstabelleneinträge (RTEs), die die Abbildung der Zwischenadreßraumseiten auf die physikalischen Adreßraumseiten liefern.
  • Wie vorher angegeben, ist in Fig. 4 die Abbildung einer Seite mittlerer Größe und zwei Seiten kleiner Größe aus einem Bereich eines virtuellen Adreßraums auf einen Bereich eines Zwischenadreßraums und dann auf einen Bereich eines pysikalischen Adreßraums dargestellt. Die Seite mittlerer Größe 422 wird von kleinen Seiten VP-2 und VP-3 im virtuellen Adreßraum 410 gebildet und auf die durch IP-0 und IP-1 des Zwischenadreßraums 450 gebildeten Seite mittlerer Größe 442 abgebildet, wie es durch die Linie 432A angegeben ist. Es sei bemerkt, daß die Seiten mittlerer Größe 422 und 442 an einer Seitengrenze mittlerer Größe ausgerichtet sind und von den zusammenhängenden Bereichen der virtuellen und Zwischenadreßräumen 410 bzw. 450 gebildet werden. Der TTE 432B des TLB 230 enthält die durch die Linie 432A angegebenen Abbildung. Die Seite mittlerer Größe 422 im Adreßraum 410 wird auf die Seite mittlerer Größe im physikalischen Adreßraum 490 abgebildet, die aus den kleinen Seiten PP-0 und PP-2 gebildet wird. Die erste Hälfte (462) der Seite mittlerer Größe 442 im physikalischen Adreßraum 410 wird auf eine Seite kleiner Größe PP-0 (482) im physikalischen Adreßraum 490 abgebildet, wie es durch die Linie 472A angegeben ist. Der RTE 472B des RLB 250 enthält die durch die Linie 472A angegebene Abbildung. Die zweite Hälfte (464) der Seite mittlerer Größe 442 im physikalischen Adreßraum 410 wird auf eine Seite kleiner Größe PP-2 (484) im physikalischen Adreßraum 490 abgebildet, wie es durch die Linie 474A angegeben ist. Der RTE 474B des RLB 250 enthält die durch die Linie 474A angegebene Abbildung. Es sei bemerkt, daß obgleich die Seite mittlerer Größe 442 an einer Seitengrenze mittlerer Größe ausgerichtet und von einem zusammenhängenden Bereich des Zwischenadreßraums 450 gebildet wird, ihre physikalische Darstellung im physikalischen Adreßraum 490 nicht darauf beschränkt ist, ein einziger zusammenhängender Abschnitt mittlerer Seitengröße des physikalischen Speichers zu sein. Ferner ist die Seite mittlerer Größe ebenfalls nicht darauf beschränkt, an einer Ausrichtungsgrenze der Seite mittlerer Größe im physikalischen Adreßraum 490 zu beginnen. Tatsächlich ist es nur zufällig, daß die Seite 482 an einer ausgerichteten Grenze einer Seite mittlerer Größe im physikalischen Adreßraum 490 beginnt.
  • In Fig. 4 wird die einzige kleine Seite 426 im virtuellen Adreßraum 410 (VP-5) auf eine einzige kleine Seite 446 im Zwischenadreßraum 450 (IP-2) abgebildet, wie es durch die Linie 436A angegeben ist. Der TTE 436A des TLB 230 enthält die durch die Linie 436A angegebene Abbildung. Die einzige Seite kleiner Größe 466 im Zwischenadreßraum 450 (IP-2) wird ihrerseits auf eine einzige Seite kleiner Größe 486 im physikalischen Adreßraum 490 (PP-1) abgebildet, wie es durch die Linie 476A angegeben ist. Der RTE 476B des RLB 250 enthält die durch die Linie 476A angegebene Abbildung. Ebenso wird die einzige kleine Seite 428 im virtuellen Adreßraum 410 (VP-6) auf die einzige kleine Seite 448 im Zwischenadreßraum 450 (IP-3) abgebildet, wie es durch die Linie 438A angegeben ist. Der TTE 438B des TLB 230 enthält die durch die Linie 438A angegebene Abbildung. Die einzige kleine Seite 466 im Zwischenadreßraum 450 (IP-3) wird ihrerseits auf die einzige kleine Seite 488 im physikalischen Adreßraum 490 (PP-3) abgebildet, wie es durch die Linie 478A angegeben ist.
  • Im Fall einer Übersetzung von einer einzigen kleinen virtuellen Seite 426 in eine physikalische Seite 486 wird zuerst eine Übersetzung in eine Zwischenadresse (426 bis 446) und dann eine zweite Übersetzung in eine physikalische Adresse (466 bis 486) durchgeführt. Daher ist der RTE 476B im RLB 250 erforderlich, so daß die Neuabbildung von dem Zwischenadreßraum in den physikalischen Adreßraum durchgeführt werden kann. In dem Fall einer Übersetzung von einer einzigen kleinen virtuellen Seite 428 In eine physikalische Seite 488 wird zuerst eine Übersetzung in eine Zwischenadresse (428 bis 448) durchgeführt. Die Zwischenadresse ist jedoch die gleiche wie die physikalische Adresse. Daher ist in dem letzteren Fall die von einer Zwischenadresse in eine physikalische Adresse (d. h.. von 468 in 488) durchgeführte zweite Übersetzung trivial, und ein Durchleit-Flag kann im TTE 438B gesetzt werden, um anzukündigen, daß diese zweite Übersetzung nicht durchgeführt werden muß. Daher ist in dem Fall, in dem eine Durchleitung im TTE angegeben ist, kein RTE im RLB 250 erforderlich, da die Neuabbildung von dem Zwischenadreßraum in den physikalischen Adreßraum nicht durchgeführt werden muß.
  • Es sei bemerkt, daß in Fig. 4, wenn der Inhalt einer physikalischen Seite kleiner Größe PP-1 und einer physikalischen Seite kleiner Größe PP-2 ausgetauscht wurde (d. h. derart, daß PP-1 IP-1 unterstützte und PP-2 IP-02 unterstützte), dann würde die Abbildung zwischen dem Zwischenadreßraum 450 und dem physikalischen Adreßraum 490 trivial werden. Dies liegt daran, daß die Zwischenadreßseite mittlerer Größe 442 (durch IP-0 und IP-1 gebildet) direkt auf eine physikalische Adreßraumseite mittlerer Größe (durch PP-0 und PP-1 gebildet) abgebildet werden könnte, und die Zwischenadreßseite kleiner Größe 446 (durch IP-2 gebildet) direkt auf eine physikalische Adreßseite kleiner Größe (durch PP-2 gebildet) abgebildet werden könnte. In jedem » Fall würde jede Zwischenseite von einer physikalischen Seite gleicher Größe unterstützt, die sowohl zusammenhängend als auch auf einer richtigen Grenze für ihre Seitengröße ausgerichtet war. Somit würden die TTEs 432B, 436B und 438B jeweils angeben, daß ein Durchleitzustand existierte. Daher wird es infolge der Tatsache, daß eine zweite Neuabbildungsübersetzung nicht erforderlich war, keinen Bedarf an gültigen RTEs in dem RLB 250 geben.
  • Fig. 5 und Fig. 6 auf die Bezug genommen wird, stellen zusammen die Umwandlung verschiedener virtueller Adreßseiten kleiner Größe in eine einzige virtuelle Adreßseite großer Größe dar. Fig. 5 veranschaulicht die Abbildung eines Bereichs eines virtuellen Adreßraums auf einen Bereich eines Zwischenadreßraums und dann auf einen Bereich eines physikalischen Adreßraums vor der Umwandlung der verschiedenen Seiten kleiner Größe in die einzige Seite großer Größe. Fig. 6 veranschaulicht andererseits die Abbildungen nach der Umwandlung. Die Seitenumwandlung ermöglicht, daß eine einzige große TTE-Seite in dem TLB verschiedene kleinere TTE- Seiten ersetzen kann. Daher wird der Vorteil realisiert, der durch die große Seitenabbildung zur Verfügung gestellt wird, d. h. eine erhöhte Wahrscheinlichkeit, daß ein TLB-Hit auftritt. Durch Verwenden eines Zwischenadressierschemas kann ein Seitenbereich großer Größe eines virtuellen Adreßraums im physikalischen Speicher dadurch unterstützt werden, daß Seiten kleinerer Größe zusammen abgebildet werden. Somit muß die physikalische Speicherunterstützung nicht das herkömmliche virtuelle Speicherseitenkriterium, ein zusammenhängender Bereich zu sein, erfüllen, wobei die Größe der für die Abbildung verwendeten Seite im physikalischen Speicher an einer Grenze für die Größe der unterstützten virtuellen Speicherseite Grenz-ausgerichtet ist.
  • In Fig. 5 wird ein virtueller Adreßraum 510 durch Seiten kleiner Größe VP-0 bis VP-3 gebildet, und dieser ist daher die Hälfte des virtuellen Adreßraums 410 von Fig. 4. Der Zwischenadreßraum 450 und der physikalische Adreßraum 490 von Fig. 5 sind die gleichen wie ihre jeweiligen Gegenstücke in Fig. 4. In Fig. 5 wird die Abbildung eines Bereichs eines virtuellen Adreßraums 510 auf einen Bereich eines Zwischenadreßraums 450 und dann auf einen Bereich eines physikalischen Adreßraums 490 vor der Umwandlung verschiedenen Seiten kleiner Größe in eine einzige Seite großer Größe dargestellt. In Fig. 5 haben sich der TLB 230 und der RLB 250 von Fig. 4 nur zu dem Ausmaß geändert, daß sich die in den TTEs des TLB 230 gespeicherte Übersetzungsinformation und die in den RTEs des RLB 250 gespeicherte Neuabbildungsinformation geändert haben, um die Abbildungen von Fig. 5 widerzuspiegeln.
  • In Fig. 5 wird eine einzige kleine Seite 522 im virtuellen Adreßraum 510 (VP-0) auf eine einzige kleine Seite 542 im Zwischenadreßraum 450 (IP-0) abgebildet, wie es durch die Linie 532A angegeben ist. Der TTE 532B des TLB 230 enthält die durch die Linie 532A angegebene Abbildung. Die einzige kleine Seite 562 im Zwischenadreßraum 450 (IP-0) wird ihrerseits auf eine einzige kleine Seite 582 im physikalischen Adreßraum 490 (PP-3) abgebildet, wie es durch die Linie 572A angegeben ist. Der RTE 572B des RLB 250 enthält die durch die Linie 572A angegebene Abbildung.
  • Ebenso wird eine einzige kleine Seite 524 im virtuellen Adreßraum 510 (VP-1) auf eine einzige kleine Seite 544 im Zwischenadreßraum 450 (IP-1) abgebildet, wie es durch die Linie 534A angegeben ist. Der TTE 534B des TLB 230 enthält die durch die Linie 534A angegebene Abbildung. Die einzige kleine Seite 564 im Zwischenadreßraum 450 (IP-1) wird ihrerseits auf eine einzige kleine Seite 584 im physikalischen Adreßraum 490 (PP-1) abgebildet, wie es durch die Linie 574A angegeben ist. Der RTE 474B des RLB 250 enthält die durch die Linie 574A angegebene Abbildung.
  • Ferner wird die einzige kleine Seite 526 im virtuellen Adreßraum 510 (VP-2) auf eine einzige kleine Seite 546 im Zwischenadreßraum 450 (IP-2) abgebildet, wie es durch die Linie 536A angegeben ist. Der TTE 536B des TLB 230 enthält die durch die Linie 536A angegebene Abbildung. Die einzige kleine Seite 566 im Zwischenadreßraum 450 (IP-2) wird ihrerseits auf eine einzige kleine Seite 586 im physikalischen Adreßraum 590 (PP-0) abgebildet, wie es durch die Linie 576A angegeben ist. Der RTE 576B des RLB 250 enthält die durch die Linie 575A angegebene Abbildung.
  • Schließlich wird eine einzige kleine Seite 528 im virtuellen Adreßraum 510 (VP-3) auf eine einzige kleine Seite 548 im Zwischenadreßraum 450 (IP-3) abgebildet, wie es durch die Linie 538A angegeben ist. Der TTE 538B des TLB 230 enthält die durch die Linie 538A angegebene Abbildung. Die einzige kleine Seite 568 im Zwischenadreßraum 450 (IP-3) wird ihrerseits auf eine einzige kleine Seite 588 im physikalischen Adreßraum 490 (IP-2) abgebildet, wie es durch die Linie 578A angegeben ist. Der RTE 578E des RLB 250 enthält die durch die Linie 578A angegebene Abbildung.
  • In Fig. 5 sind die vier Seiten kleiner Größe VP-0 bis VP-3 im virtuellen Adreßraum 510 reif für eine Promotion bzw. Umwandlung in eine einzige Seite großer Größe. Beim Stand der Technik mußte jedoch vor der Umwandlung dieser Seiten der Inhalt des Bereichs des physikalischen Speichers derart umher bewegt, daß die umgewandelte große Seite durch eine Seite im physikalischen Speicher richtig unterstützt wird, die sowohl zusammenhängend als auch an der großen Seitengrenze ausgerichtet war. Somit müßte, obgleich der aktuelle Inhalt der kleinen Seite 584 in diesem Beispiel korrekt in PP-1 lokalisiert war, bevor eine Seitenumwandlung stattfinden kann, der aktuelle Inhalt der kleinen Seite 582 in PP-0, der aktuelle Inhalt der kleinen Seite 586 in PP-2 und der aktuelle Inhalt der kleinen Seite 588 in PP-3 verlegt werden. In einem Szenarium eines schlimmeren Falls würde der gesamte Inhalt der kleinen Seiten, die die neue große Seite unterstützen, in einen Abschnitt des physikalischen Speichers verlegt werden müssen, wo die neue große Seite sowohl an der Grenze der großen Seite ausgerichtet als auch durch eine von einem zusammenhängenden Abschnitt des physikalischen Speichers gebildete große Seite unterstützt wurde.
  • In Fig. 6, auf die Bezug genommen wird, sind der virtuelle Adreßraum 610, der Zwischenadreßraum 450 und der physikalische Adreßraum 490 die gleichen, wie ihre jeweiligen Gegenstücke in Fig. 5. In Fig. 6 ist die Abbildung eines Bereichs des virtuellen Adreßraums 610 auf einen Bereich eines Zwischenadreßraums 450 und dann auf einen Bereich eines physikalischen Adreßraums 490 nach der Umwandlung von verschiedenen Seiten kleiner Größe in eine einzige Seite großer Größe dargestellt. In Fig. 6 hat sich der TLB 230 aus der Fig. 5 nur zu dem Ausmaß geändert, wie sich die in den TTEs des TLB 230 gespeicherte Übersetzungsinformation geändert hat, um die durch die Umwandlung verursachte Abbildung von Fig. 6 widerzuspiegeln. In Fig. 6 hat sich die in den RTEs des RLB 250 gespeicherte Neuabbildungsinformation nicht von ihren Werten innerhalb der Fig. 5 geändert, da die Umwandlung nicht die Abbildungen von dem Zwischenadreßraum 450 in den physikalischen Adreßraum 490 beeinflußt haben.
  • In Fig. 6 wird eine einzige große Seite 622 im virtuellen Adreßraum 510 (VP-0, VP-1, VP-2 und VP-3) auf eine einzige große Seite 642 im Zwischenadreßraum 450 (IP-0, IP- 1, IP-2 und IP-3) abgebildet, wie es durch die Linie 632A angegeben ist. Der TTE 632B des TLB 230 enthält die durch die Linie 632A angegebene Abbildung. Daher wurde die Abbildung zwischen dem virtuellen Adreßraum 510 und dem Zwischenadreßraum 450 durch die Umwandlung geändert, so daß vier kleine Seiten nun als eine einzige große Seite dargestellt werden. Somit wurden die vier TTEs, die vorher in dem TLB (eine je alte kleine Seite) erforderlich waren, durch einen einzigen TTE für die neue große Seite ersetzt. Es sei bemerkt, daß der Umwandlungsprozeß ohne die Notwendigkeit, die Abbildungen zwischen den Seiten des Zwischenadreßraums 450 und des physikalischen Adreßraums 490 zu ändern, stattgefunden hat.
  • Somit wird eine einzige kleine Seite 562 im Zwischenadreßraum 450 (IP-0) noch auf eine einzige kleine Seite 582 im physikalischen Adreßraum 490 (PP-3) abgebildet, wie es durch die Linie 572A angegeben ist, und der RTE 572B des RLB 250 enthält noch die durch die Linie 572A angegebene Abbildung. Ebenso wird eine einzige kleine Seite 564 im Zwischenadreßraum 450 (IP-1) noch auf eine einzige kleine Seite 584 im physikalischen Adreßraum 490 (PP-1) abgebildet, wie es durch die Linie 574A angegeben ist, und der RTE 574B des RLB 250 enthält noch die durch die Linie 574A angegebene Abbildung. Ferner wird eine einzige kleine Seite 566 im Zwischenadreßraum 450 (IP-2) ihrerseits auf eine einzige kleine Seite 586 im physikalischen Adreßraum 490 (PP-0) abgebildet, wie es durch die Linie 576A angegeben ist, und der RTE 576B des RLB 250 enthält noch die durch die Linie 576A angegebene Abbildung. Schließlich wird eine einzige kleine Seite 568 im Zwischenadreßraum 450 (IP-3) ihrerseits auf eine einzige kleine Seite 588 im physikalischen Adreßraum 490 (PP-2) abgebildet, wie es durch die Linie 578A angegeben ist, und der RTE 578B des RLB 250 enthält noch die durch die Linie 578A angegebene Abbildung.
  • Somit wird die einzige Seite großer Größe des virtuellen Adreßraums 510 von vier Seiten kleiner Größe des physikalischen Adreßraums 490 unterstützt, wobei jedoch die Notwendigkeit, daß die unterstützenden Seiten im physikalischen Speicher zusammenhängend und an der Grenze der großer Seitengröße ausgerichtet sind, eliminiert wurde. Somit findet der Umwandlungsmehraufwand, der durch das Umadressieren von im physikalischen Speicher untergebrachten Seiten verursacht wird, keine weitere Anwendung.
  • Die Fig. 7 und Fig. 8, auf die Bezug genommen wird, veranschaulichen die Behandlung verschiedener virtueller Adressenseiten kleiner Größe als eine einzige virtuelle Adreßseite großer Größe, die ein "Loch" einer kleinen Seitengröße aufweist. Fig. 7 veranschaulicht die Abbildung eines Bereichs eines virtuellen Adreßraums auf einen Bereich eines Zwischenadreßraums und dann auf einen Bereich eines physikalischen Adreßraums, wenn das Loch der kleinen Seitengröße am Ende der Seite großer Größe ist. Fig. 8 veranschaulicht andererseits die Abbildungen, wenn das Loch der kleinen Seitengröße nicht an dem Ende der Seite großer Größe ist. In jedem Fall kann eine einzige große TTE-Seite in dem TLB verschiedene kleinere TTE-Seiten ersetzen. Daher wird der Vorteil, der durch die große Seitenabbildung bereitgestellt wird, d. h. eine erhöhte Wahrscheinlichkeit, daß ein TLB-Hit auftritt, für einen Bereich eines virtuellen Adreßraums realisiert, der nicht in das herkömmliche virtuelle Speicherseitenkriterium paßt, ein zusammenhängender Bereich zu sein, wobei die Größe der Seite für die Abbildung verwendet wird.
  • In Fig. 7 sind der virtuelle Adreßraum 610, der Zwischenadreßraum 450 und der physikalische Adreßraum 490 ihren jeweiligen Gegenstücken in Fig. 6 gleich. In Fig. 7 wird die Abbildung eines Bereichs des virtuellen Adreßraums 610 auf einen Bereich des Zwischenadreßraums 450 und dann auf einen Bereich des physikalischen Adreßraums 490 dargestellt, wobei eine. Seite mittlerer Größe und eine Seite kleiner Größe als eine einzige Seite großer Größe mit einem "Loch" einer kleinen Seitengröße an dem Ende der Seite großer Größe behandelt werden. In Fig. 7 haben sich der TLB 230 und der RLB 250 von. Fig. 6 nur zu dem Ausmaß geändert, daß die in den ITEs des TLB 230 gespeicherte Übersetzungsinformation und die in den RTEs des RLB 250 gespeicherte Neuabbildungsinformation geändert haben, um die Abbildungen von Fig. 7 widerzuspiegeln.
  • In Fig. 7 wird der Bereich 702 des virtuellen Adreßraums 510 (durch VP-0, VP-1 und VP-2 gebildet) behandelt, als ob er eine einzige Seite großer Größe (722) mit einem einzigen "Loch" kleiner Seitengröße an dem Ende (VP-3) ist. Tatsächlich ermöglicht die vorliegende Erfindung, daß ein Bereich des virtuellen Adreßraums in eine Seite größerer Größe, als tatsächlich zugeordnet wurde, umgewandelt werden kann. Somit wird in diesem Beispiel, anstatt, daß verlangt wird, daß drei kleine TTE-Seiten in dem TLB den Bereich 702 beschreiben, eine einzige große TTE-Seite verwendet, die den Bereich 722 beschreibt.
  • Die einzige große Seite 722 im virtuellen Adreßraum 610 wird auf eine einzige große Seite 742 im Zwischenadreßraum 450 (IP-0, IP-1, IP-2 und IP-3) abgebildet, wie es durch die Linie 732A angegeben ist. Der TTE 732B des TLB 230 enthält die durch die Linie 732A angegebene Abbildung. Nur drei der vier Abschnitte kleiner Größe des Zwischenadreßraums 450 werden tatsächlich vom physikalischen Speicher unterstützt. Bei diesem Beispiel wurden ein einziger Abschnitt einer Seite kleiner Größe des physikalischen Speichers und ein einziger Abschnitt einer Seite mittlerer Größe zusammen abgebildet, um die Unterstützung für den Bereich 702 zu liefern. Die einzige Seite mittlerer Größe 762 im Zwischenadreßraum 450 (IP-0 und IP-1) wird auf die einzige Seite mittlerer Größe 782 im physikalischen Adreßraum 490 (PP-0 und PP-1) abgebildet, wie es durch die Linie 772A angegeben ist. Der RTE 772B des RLB 250 enthält die durch die Linie 772A angegebene Abbildung. Ebenso wird eine einzige kleine Seite 764 im Zwischenadreßraum 450 (IP-2) auf eine einzige kleine Seite 784 im physikalischen Adreßraum 490 (PP-3) abgebildet, wie es durch die Linie 774A angegeben ist. Der RTE 774B des RLB 250 enthält die durch die Linie 774A angegebene Abbildung.
  • Wahlweise könnte die physikalische Unterstützung für den Bereich 702 durch Abbilden von drei Seiten kleiner Größe im Zwischenadreßraum 450 auf drei Seiten kleiner Größe im physikalischen Adreßraum 490 bereitgestellt werden. In dem vorherigen Fall werden nur zwei RTEs (einen für die Seite mittlerer Größe und einen für die Seite kleiner Größe) im RLB erforderlich sein, um die Abbildungen zu liefern. Im letzteren Fall würden drei RTEs (einer je Seite kleiner Größe) im RLB 250 erforderlich sein, wobei jedoch die Zusammenhängigkeitsbeschränkung und die Grenzausrichtungsbeschränkung der Seite mittlerer Größe, die auf die Seite mittlerer Größe in dem vorherigen Fall auferlegt wurde, keine Anwendung finden.
  • In Figur. 8, auf die Bezug genommen wird, sind der virtuelle Adreßraum 610, der Zwischenadreßraum 450 und der physikalische Adreßraum 490 die gleichen wie ihre jeweiligen Gegenstücke in Fig. 7. In Fig. 8 wird die Abbildung eines Bereichs eines virtuellen Adreßraums 610 auf einen Bereich eines Zwischenadreßraums 450 und dann auf einen Bereich eines physikalischen Adreßraums 490 dargestellt, wobei eine 0 Seite mittlerer Größe und eine Seite kleiner Größe als eine einzige Seite großer Größe mit einem "Loch" kleiner Seitengröße innerhalb der Seite großer Größe behandelt wird. In Fig. 8 haben sich der TLB 230 und der RLB 250 nur von der Fig. 7 zu dem Ausmaß geändert, daß die sich in den TTEs des TLB 230 gespeicherte Übersetzungsinformation und die in den RTEs des RLB 250 gespeicherte Neuabbildungsinformation geändert haben, um die Abbildungen von Fig. 8 widerzuspiegeln. In Fig. 8 werden der Bereich 822 (durch VP-0 und VP-1 gebildet) und der Bereich 824 (durch VP-3 gebildet) des virtuellen Adreßraums 510 zusammen abgebildet und dann behandelt, als ob sie eine einzige Seite großer Größe 802A sind (durch VP-0, VP-1, VP-2 und VP-3 gebildet), wobei ein einziges "Loch" kleiner Seitengröße (VP-2) darin angeordnet ist. Erneut ermöglicht tatsächlich die vorliegende Erfindung, daß ein Bereich eines virtuellen Adreßraums in eine Seite größerer Größe, als tatsächlich zugeordnet wurde, umgewandelt werden kann. Somit wird bei diesem Beispiel, anstatt, daß zwei TTEs in dem TLB erforderlich sind, um die Bereiche 832 und 824 zu beschreiben, eine einzige große TTE- Seite (802B) verwendet, die den Bereich 802A beschreibt.
  • Die einzige Seite mittlerer Größe 822 (VP-0 und VP-1) und die einzige Seite kleiner Größe 824 (VP-3) im virtuellen Adreßraum 610 werden auf eine einzige große Seite 842 im Zwischenadreßraum 450 (IP-0, IP-1, IP-2 und IP-3) abgebildet, wie es durch Linien 832 bzw. 834 angegeben ist. Nur drei der vier Abschnitte kleiner Seitengröße des Zwischenadreßraums 450 werden tatsächlich vom physikalischen Speicher unterstützt. Bei diesem Beispiel wird ein einziger Abschnitt kleiner Seitengröße des physikalischen Speichers und ein einziger Abschnitt mittlerer Seitengröße zusammen abgebildet, um die Unterstützung für die Bereiche 824 und 822 zu liefern. Die einzige Seite mittlerer Größe 862 im Zwischenadreßraum 450 (IP-O und IP-1) wird auf eine einzige Seite mittlerer Größe 882 im physikalischen Adreßraum 490 (PP-2 und PP-3) abgebildet, wie es durch die Linie 872A angegeben ist. Ebenso wird eine einzige kleine Seite 864 im Zwischenadreßraum 450 (IP-3) auf eine einzige kleine Seite 884 im physikalischen Adreßraum 490 (PP-1) abgebildet, wie es durch die Linie 874A angegeben ist.
  • Alternativ könnte die physikalische Unterstützung für die Bereiche 822 und 824 durch Abbilden von drei Seiten kleiner Größe im Zwischenadreßraum 450 auf drei Seiten kleiner Größe im physikalischen Adreßraum 490 bereitgestellt werden. In dem vorherigen Fall würden nur zwei RTEs (einer für die Seite mittlerer Größe und einer für die Seite kleiner Größe) in dem RLB erforderlich sein, um die Abbildung bereitzustellen. Im letzteren Fall würden drei RTEs (einer je Seite kleiner Größe) in dem RLB erforderlich sein, wobei jedoch die Zusammenhängigkeitsbeschränkung und die Grenzausrichtungsbeschränkung mittlerer Seitengröße, die der Seite mittlerer Größe auferlegt wurde, in dem vorherigen Fall keine Anwendung finden würden.
  • Mit Bezug nun auf Fig. 9 und Fig. 10 stellen beide Figuren Fälle dar, wobei zwei Bereiche mit Seiten unterschiedlicher Seitengröße im virtuellen Adreßraum von den Seiten gleicher Größe im physikalischen Speicher unterstützt werden. Fig. 9 veranschaulicht die Abbildung eines Bereichs eines virtuellen Adreßraums auf einen Bereich eines Zwischenadreßraums und dann auf einen Bereich eines physikalischen Adreßraums, wobei zwei unterschiedliche Bereiche kleiner Seitengröße im virtuellen Adreßraum durch die gleiche Seite kleiner Größe im physikalischen Speicher unterstützt werden. Fig. 10 veranschaulicht andererseits die Abbildungen, wenn zwei unterschiedliche Bereiche mittlerer Seitengröße im virtuellen Adreßraum unterstützt werden, indem die gleichen zwei Seiten kleiner Größe im physikalischen Speicher zusammen abgebildet werden. In Fig. 9 befolgt die Seite kleiner Größe des physikalischen Speichers die Zusammenhängigkeitsbeschränkung und die Grenzausrichtungsbeschränkung. In Fig. 10 ermöglicht jedoch das Zwischenadressierschema, daß zwei Seiten kleiner Größe des physikalischen Speichers zusammen abgebildet werden, um die zwei unterschiedlichen virtuellen Speicherseiten mittlerer Größe zu unterstützen. Daher findet in Fig. 10 die Zusammenhängigkeitsbeschränkung und die Grenzausrichtungsbeschränkung mittlerer Seitengröße, die herkömmlich dem physikalischen Speicher auferlegt werden, keine Anwendung.
  • Fig. 9 veranschaulicht die Abbildung eines Bereichs eines virtuellen Adreßraums auf einen Bereich eines Zwischenadreßraums und dann auf einen Bereich eines physikalischen Adreßraums, wobei zwei unterschiedliche Bereiche kleiner Seitengröße im virtuellen Adreßraum durch die gleiche einzige Seite kleiner Größe im physikalischen Speicher unterstützt werden. In Fig. 9 sind der Adreßraum 610, der Zwischenadreßraum 450 und der physikalische Adreßraum 490 die gleichen wie ihre jeweiligen Gegenstücke in Fig. 8. In Fig. 9 haben sich der TLB 230 und der RLB 250 von der Fig. 8 nur zu dem Ausmaß geändert, daß die in den TTEs des TLB 230 gespeicherte Übersetzungsinformation und die in den RTEs des RLB 250 gespeicherte Neuabbildungsinformation geändert haben, um die Abbildungen von Fig. 9 widerzuspiegeln.
  • In Fig. 9 wird eine einzige kleine Seite 922 im virtuellen Adreßraum 610 (VP-0) auf eine einzige kleine Seite 942 im Zwischenadreßraum 450 (IP-1) abgebildet, wie es durch die Linie 932A angegeben ist. Der TTE 932B des TLB 230 enthält die durch die Linie 932A angegebene Abbildung. Die einzige kleine Seite 962 im Zwischenadreßraum 450 (IP-1) wird ihrerseits auf die einzige kleine Seite 982 im physikalischen Adreßraum 490 (PP-1) abgebildet; wie es durch die Linie 972A angegeben ist. Der RTE 972B des RLB 250 enthält die durch die Linie 972A angegebene Abbildung.
  • Ebenso wird die einzige kleine Seite 924 im virtuellen Adreßraum 610 (VP-3) auf die einzige kleine Seite 944 im Zwischenadreßraum 450 (IP-2) abgebildet, wie es durch die Linie 934A angegeben ist. Der TTE 934B des TLB 230 enthält die durch die Linie 934A angegebene Abbildung. Die einzige kleine Seite 964 im Zwischenadreßraum 450 (IP-2) wird ihrerseits auf ihre einzige kleine Seite 984 im physikalischen Adreßraum 490 (PP-1) abgebildet, wie es durch die Linie 974A angegeben ist. Der RTE 974B des RLB 250 enthält die durch die Linie 974A angegebene Abbildung. Somit ist es ersichtlich, daß das Zwischenadressierschema ermöglicht, daß zwei virtuelle Speicherseiten durch eine einzige Seite gleicher Größe im physikalischen Speicher unterstützt werden.
  • Fig. 10 veranschaulicht die Abbildung eines Bereichs eines virtuellen Adreßraums auf einen Bereich eines Zwischenadreßraums und dann auf einen Bereich eines physikalischen Adreßraums, wobei zwei unterschiedliche Bereiche mittlerer Seitengröße im virtuellen Adreßraum unterstützt werden, indem die gleichen zwei Seiten kleiner Größe im physikalischen Speicher zusammen abgebildet werden. In Figur sind der virtuelle Adreßraum 610, der Zwischenadreßraum 450 und der physikalische Adreßraum 490 die gleichen wie ihre jeweiligen Gegenstücke in Fig. 9. In Fig. 10 haben sich der TLB 230 und der RLB 250 von Fig. 9 nur zu dem Ausmaß geändert, daß sich die in den TTEs des TLB 230 gespeicherte Übersetzungsinformation und die in den RTEs des RLB 250 gespeicherte Neuabbildungsinformation geändert haben, um die Abbildungen von Fig. 10 widerzuspiegeln.
  • In Fig. 10 wird eine einzige Seite mittlerer Größe 1032 im virtuellen Adreßraum 610 (VP-0 und VP-1) auf einer einzige Seite mittlerer Größe 1042 im Zwischenadreßraum 450 (IP-0 und IP-1) abgebildet, wie es durch die Linie 1032A angegeben ist. Der TTE 1032 des TLB 230 enthält die durch die Linie 1032A angegebene Abbildung. Die erste Hälfte der kleinen Seitengröße 1062 der einzigen Seite mittlerer Größe 1042 im Zwischenadreßraum 450 (IP-0) wird ihrerseits auf eine einzige Seite kleiner Größe 1082 im physikalischen Adreßraum 490 (PP-1) abgebildet, wie es durch die Linie 1072A angegeben ist. Der RTE 1072B des RLB 250 enthält die durch die Linie 1072A angegebene Abbildung. Die zweite Hälfte kleiner Seitengröße 1064 der einzigen. Seite mittlerer Größe 1042 im Zwischenadreßraum 450 (IP-1) wird ihrerseits auf eine einzige Seite kleiner Größe 1084 im physikalischen Adreßraum 490 (PP-3) abgebildet, wie es durch die Linie 1074A angegeben ist. Der RTE 1074B des RLB 2509 enthält die durch die Linie 1074A angegebene Abbildung.
  • Ebenso wird eine einzige Seite mittlerer Größe 1026 im virtuellen Adreßraum 610 (VP-2 und VP-3) auf eine einzige Seite mittlerer Größe 1046 im Zwischenadreßraum 450 (IP-2 und IP-3) abgebildet, wie es durch die Linie 1036A angegeben ist. Der TTE 1036B des TLB 230 enthält die durch die Linie 1036A angegebene Abbildung. Die erste Hälfte einer Seite kleiner Größe 1066 der einzigen Seite mittlerer Größe 1046 im Zwischenadreßraum 450 (IP-2) wird ihrerseits auf die einzelne Seite kleiner Größe 1082 im physikalischen Adreßraum 490 (PP-1) abgebildet, wie es durch die Linie 1076A angegeben ist. Der RTE 1076B der RLB 250 enthält die durch Linie 1076A angegebene Abbildung. Die zweite Hälfte einer Seite kleiner Größe 1068 der einzigen Seite mittlerer Größe 1048 im Zwischenadreßraum 450 (IP-3) wird ihrerseits auf die einzige Seite kleiner Größe 1084 im physikalischen Adreßraum 490 (PP-3) abgebildet, wie es durch die Linie 1078A angegeben ist. Der RTE 1078B des RLB 250 enthält die durch die Linie 1078A angegebene Abbildung. Somit ist ersichtlich, daß das Zwischenadressierschema ermöglicht, daß zwei virtuelle Speicherseiten unterstützt werden können, indem zwei Seiten kleinerer Größe im physikalischen Speicher zusammen abgebildet werden, um eine einzige größerer Seite zu bilden. Daher finden aufgrund des Zwischenadressierschemas in Fig. 10 die Zusammenhängigkeitsbeschränkung und die Ausrichtungsbeschränkung an einer Grenze einer Seite mittlerer Größe keine Anwendung.
  • Während das Verfahren und die Einrichtung der vorliegenden Erfindung hinsichtlich ihrer gegenwärtig bevorzugten und alternativen Ausführungsformen beschrieben wurden, werden Fachleute erkennen, daß die vorliegende Erfindung unter Abwandlung und Abänderung innerhalb des Schutzumfangs der beigefügten Ansprüche realisiert werden kann. Die Beschreibung und die Zeichnungen sind demgemäß als beispielhaft und nicht im einschränkenden Sinn anzusehen.

Claims (12)

1. Ein Verfahren zum Verwalten eines virtuellen Speichers in einem Computersystem, umfassend die Schritte:
Empfangen einer eine hoch bewertete virtuelle Seitenadresse und ein niedrig bewertetes virtuelles Seitenoffset umfassenden virtuellen Speicheradresse aus einer zentralen Verarbeitungseinheit (CPU) (110);
Übersetzen der virtuellen Speicheradresse in eine Zwischenadresse (140), indem die virtuelle Seitenadresse verwendet wird, um eine erste Zwischenseitenadresse nachzuschlagen, und indem die virtuelle Seitenadresse durch die erste Zwischenseitenadresse ersetzt wird, um die Zwischenadresse zu bilden; und
Übersetzen der Zwischenadresse in eine physikalische Speicheradresse (160), indem eine zweite Zwischenseitenadresse, die die erste Zwischenseitenadresse und wenigstens ein hoch bewertetes Bit aus dem virtuellen Speicheroffset umfaßt, verwendet wird, um eine physikalische Speicherseitenadresse nachzuschlagen, und indem die zweite Zwischenseitenadresse durch die physikalische Speicherseitenadresse ersetzt wird, um die physikalische Speicheradresse zu bilden.
2. Das Verfahren nach Anspruch 1, wobei das Mittel zum Nachschlagen der ersten Zwischenseitenadresse ein Übersetzungsnachschlagepuffer (230) ist.
3. Das Verfahren nach Anspruch 1, wobei das Mittel zum Nachschlagen der physikalischen Speicherseitenadresse ein Neuabbildungs-Nachschlagepuffer (230) ist.
4. Das Verfahren nach Anspruch 1, ferner umfassend das Überprüfen eines Übersetzungsdurchleit-Flags (350) in dem Übersetzungsschritt, um festzustellen, ob die Zwischenadresse gleich der physikalischen Speicheradresse ist, und, wenn dies der Fall ist, das Verwenden der Zwischenadresse als physikalische Speicheradresse.
5. Das Verfahren nach Anspruch 1, ferner umfassend das Nachschlagen einer virtuellen Seitengröße, die der virtuellen Adresse zugeordnet ist, um den virtuellen Seitenadreßabschnitt der virtuellen Adresse zu identifizieren.
6. Das Verfahren nach Anspruch 1, ferner umfassend das Nachschlagen einer Zwischenseitengröße, die der Zwischenadresse zugeordnet ist, um den zweiten Zwischenseitenadreßabschnitt der Zwischenadresse zu identifizieren.
7. Eine Einrichtung zum Verwalten eines virtuellen Speichers in einem Computersystem, aufweisend:
eine Übersetzungstabelle, die eine Mehrzahl von Übersetzungseinträgen (310) aufweist, wobei jeder Übersetzungseintrag eine virtuelle Seitenindexadresse (410) und eine erste Zwischenseitenadresse (450) aufweist;
eine Neuabbildungstabelle, die eine Mehrzahl von Neuabbildungseinträgen (360) aufweist, wobei jeder Neuabbildungseintrag eine Zwischenseitenindexadresse (450) und eine physikalische Speicherseitenadresse (490) aufweist;
ein erster Übersetzer (130), der betriebsfähig mit der Übersetzungstabelle und einer zentralen Verarbeitungseinheit (CPU) (110) verbunden ist, um
von der CPU eine virtuelle Speicheradresse zu empfangen, die eine hoch bewertete virtuelle Seitenadresse und ein niedrig bewertetes virtuelles Seitenoffset aufweist,
denjenigen Übersetzungseintrag zu lokalisieren, für welchen die virtuelle Seitenindexadresse der virtuellen Seitenadresse entspricht,
die erste Zwischenseitenadresse aus dem lokalisierten Übersetzungseintrag zu lesen, und die erste Zwischenseitenadresse mit dem virtuellen Seitenoffset zu kombinieren, um eine Zwischenadresse zu bilden, die eine die erste Zwischenseitenadresse und wenigstens ein hoch bewertetes Bit aus dem virtuellen Seitenoffset aufweisende hoch bewertete zweite Zwischenseitenadresse und ein niedrig bewertetes Zwischenseitenoffset aufweist; und
ein zweiter Übersetzer (150), der betriebsfähig mit der Neuabbildungstabelle und dem ersten Übersetzer gekoppelt ist, um die Zwischenadresse von dem ersten Übersetzer zu empfangen,
denjenigen Neuabbildungseintrag zu lokalisieren, für welchen die Zwischenseitenindexadresse der zweiten Zwischenseitenadresse entspricht,
die physikalische Speicherseitenadresse aus dem lokalisierten Neuabbildungseintrag zu gewinnen, und
die physikalische Speicherseitenadresse mit der Zwischenseitenadresse zu kombinieren, um eine physikalische Speicheradresse zu erzeugen.
8. Die Einrichtung nach Anspruch 7, ferner umfassend das Verwenden des ersten Übersetzers (130) zum Nachschlagen einer der virtuellen Adresse zugeordneten virtuellen Seitengröße, um den virtuellen Seitenadreßabschnitt der virtuellen Adresse zu identifizieren.
9. Die Einrichtung nach Anspruch 7, ferner umfassend das Verwenden des zweiten Übersetzers (150) zum Nachschlagen einer der Zwischenadresse zugeordneten Zwischenseitengröße, um den zweiten Zwischenseitenadreßabschnitt der Zwischenadresse zu identifizieren.
10. Die Einrichtung nach Anspruch 7, wobei die Übersetzungstabelle in einem Übersetzungsnachschlagepuffer (230) gespeichert ist.
11. Die Einrichtung nach Anspruch 7, wobei die Neuabbildungstabelle in einem Neuabbildungs-Nachschlagepuffer (250) gespeichert ist.
12. Die Einrichtung nach Anspruch 7, wobei die Übersetzungstabelleneinträge ferner ein Übersetzungsdurchleit-Flag (350) aufweisen, welches, wenn es gesetzt ist, anzeigt, daß die physikalische Seitenadresse gleich der Zwischenseitenadresse ist und daß für diese Zwischenadresse kein Eintrag aus der Neuabbildungstabelle gewonnen zu werden braucht.
DE69428881T 1994-01-12 1994-12-23 Logisch adressierbarer physikalischer Speicher für ein Rechnersystem mit virtuellem Speicher, das mehrere Seitengrössen unterstützt Expired - Fee Related DE69428881T2 (de)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
US18065894A 1994-01-12 1994-01-12

Publications (2)

Publication Number Publication Date
DE69428881D1 DE69428881D1 (de) 2001-12-06
DE69428881T2 true DE69428881T2 (de) 2002-07-18

Family

ID=22661259

Family Applications (1)

Application Number Title Priority Date Filing Date
DE69428881T Expired - Fee Related DE69428881T2 (de) 1994-01-12 1994-12-23 Logisch adressierbarer physikalischer Speicher für ein Rechnersystem mit virtuellem Speicher, das mehrere Seitengrössen unterstützt

Country Status (6)

Country Link
US (1) US5784707A (de)
EP (1) EP0663636B1 (de)
JP (1) JPH0836528A (de)
KR (1) KR100354772B1 (de)
DE (1) DE69428881T2 (de)
SG (1) SG45399A1 (de)

Families Citing this family (81)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6336180B1 (en) 1997-04-30 2002-01-01 Canon Kabushiki Kaisha Method, apparatus and system for managing virtual memory with virtual-physical mapping
US6728851B1 (en) 1995-07-31 2004-04-27 Lexar Media, Inc. Increasing the memory performance of flash memory devices by writing sectors simultaneously to multiple flash memory devices
US8171203B2 (en) 1995-07-31 2012-05-01 Micron Technology, Inc. Faster write operations to nonvolatile memory using FSInfo sector manipulation
US5845313A (en) 1995-07-31 1998-12-01 Lexar Direct logical block addressing flash memory mass storage architecture
US6978342B1 (en) 1995-07-31 2005-12-20 Lexar Media, Inc. Moving sectors within a block of information in a flash memory mass storage architecture
DE19640316A1 (de) * 1996-09-30 1998-04-02 Siemens Ag Schaltungsanordnung mit einem Mikroprozessor und einem Stapelspeicher
US6182201B1 (en) * 1997-04-14 2001-01-30 International Business Machines Corporation Demand-based issuance of cache operations to a system bus
KR100263672B1 (ko) * 1997-05-08 2000-09-01 김영환 가변적인 페이지 크기를 지원하는 어드레스 변환장치
US6065010A (en) * 1997-06-10 2000-05-16 Daikin Us Corporation Computer implemented method of generating virtual files for sharing information of physical information file
US6021482A (en) * 1997-07-22 2000-02-01 Seagate Technology, Inc. Extended page mode with a skipped logical addressing for an embedded longitudinal redundancy check scheme
US6301645B1 (en) * 1998-01-20 2001-10-09 Micron Technology, Inc. System for issuing device requests by proxy
US6067581A (en) * 1998-01-20 2000-05-23 Micron Electronics, Inc. Method for identifying the orignal source device in a transaction request initiated from address translator to memory control module and directly performing the transaction therebetween
US6275830B1 (en) * 1998-03-18 2001-08-14 Oracle Corporation Compile time variable size paging of constant pools
JP2000057054A (ja) * 1998-08-12 2000-02-25 Fujitsu Ltd 高速アドレス変換システム
US6233666B1 (en) * 1998-09-17 2001-05-15 International Business Machines Corporation Deferred disk drive space allocation for virtual memory pages with management of disk address recording in multipage tables without external process interrupts for table for input/output to memory
US6609153B1 (en) 1998-12-24 2003-08-19 Redback Networks Inc. Domain isolation through virtual network machines
US6970992B2 (en) * 1999-10-04 2005-11-29 Intel Corporation Apparatus to map virtual pages to disparate-sized, non-contiguous real pages and methods relating thereto
US6857058B1 (en) 1999-10-04 2005-02-15 Intel Corporation Apparatus to map pages of disparate sizes and associated methods
US6446186B1 (en) 1999-10-27 2002-09-03 Nvidia Corporation Method, apparatus and article of manufacture for mapping physical memory in a virtual address system
US7102671B1 (en) 2000-02-08 2006-09-05 Lexar Media, Inc. Enhanced compact flash memory card
US7167944B1 (en) 2000-07-21 2007-01-23 Lexar Media, Inc. Block management for mass storage
US6718453B2 (en) * 2001-03-26 2004-04-06 Intel Corporation Apparatus and method for a channel adapter non-contiguous translation protection table
US6789156B1 (en) * 2001-05-22 2004-09-07 Vmware, Inc. Content-based, transparent sharing of memory units
US8719661B1 (en) 2010-11-15 2014-05-06 Vmware, Inc. Transparent and lightweight recovery from hardware memory errors
GB0123410D0 (en) 2001-09-28 2001-11-21 Memquest Ltd Memory system for data storage and retrieval
GB0123417D0 (en) 2001-09-28 2001-11-21 Memquest Ltd Improved data processing
GB0123421D0 (en) 2001-09-28 2001-11-21 Memquest Ltd Power management system
GB0123419D0 (en) 2001-09-28 2001-11-21 Memquest Ltd Data handling system
GB0123415D0 (en) 2001-09-28 2001-11-21 Memquest Ltd Method of writing data to non-volatile memory
GB0123416D0 (en) 2001-09-28 2001-11-21 Memquest Ltd Non-volatile memory control
GB2381886B (en) * 2001-11-07 2004-06-23 Sun Microsystems Inc Computer system with virtual memory and paging mechanism
US6957295B1 (en) 2002-01-18 2005-10-18 Lexar Media, Inc. File management of one-time-programmable nonvolatile memory devices
US6950918B1 (en) 2002-01-18 2005-09-27 Lexar Media, Inc. File management of one-time-programmable nonvolatile memory devices
US7231643B1 (en) 2002-02-22 2007-06-12 Lexar Media, Inc. Image rescue system including direct communication between an application program and a device driver
WO2004031954A2 (de) * 2002-09-30 2004-04-15 Schoebel-Theuer Thomas Verfahren und vorrichtungen zum zugriff eines einzelsystems auf einen speicherbereich einer datenspeichereinrichtung
US7900017B2 (en) * 2002-12-27 2011-03-01 Intel Corporation Mechanism for remapping post virtual machine memory pages
US6973519B1 (en) 2003-06-03 2005-12-06 Lexar Media, Inc. Card identification compatibility
US8417913B2 (en) * 2003-11-13 2013-04-09 International Business Machines Corporation Superpage coalescing which supports read/write access to a new virtual superpage mapping during copying of physical pages
US7328288B2 (en) 2003-12-11 2008-02-05 Canon Kabushiki Kaisha Relay apparatus for relaying communication from CPU to peripheral device
CN1809833B (zh) 2003-12-17 2015-08-05 雷克萨媒体公司 用于减少用于购买的电子设备的盗窃发生率的方法
US7296139B1 (en) * 2004-01-30 2007-11-13 Nvidia Corporation In-memory table structure for virtual address translation system with translation units of variable range size
US7334108B1 (en) 2004-01-30 2008-02-19 Nvidia Corporation Multi-client virtual address translation system with translation units of variable-range size
US7278008B1 (en) * 2004-01-30 2007-10-02 Nvidia Corporation Virtual address translation system with caching of variable-range translation clusters
US7426625B2 (en) 2004-03-31 2008-09-16 International Business Machines Corporation Data processing system and computer program product for support of system memory addresses with holes
US7725628B1 (en) 2004-04-20 2010-05-25 Lexar Media, Inc. Direct secondary device interface by a host
US7370166B1 (en) 2004-04-30 2008-05-06 Lexar Media, Inc. Secure portable storage device
US20060004983A1 (en) * 2004-06-30 2006-01-05 Tsao Gary Y Method, system, and program for managing memory options for devices
US7594063B1 (en) 2004-08-27 2009-09-22 Lexar Media, Inc. Storage capacity status
US7464306B1 (en) 2004-08-27 2008-12-09 Lexar Media, Inc. Status of overall health of nonvolatile memory
WO2006032103A1 (en) * 2004-09-24 2006-03-30 Synaptic Laboratories Limited METHOD OF AND APPARATUS FOR MAPPING n-BIT IDENTIFIERS OF FEWER THAN 2n RESOURCES
US7516298B2 (en) * 2004-11-15 2009-04-07 Platform Solutions Incorporated Sparse table compaction method
US7370174B2 (en) * 2005-01-05 2008-05-06 Intel Corporation Method, system, and program for addressing pages of memory by an I/O device
US7853957B2 (en) * 2005-04-15 2010-12-14 Intel Corporation Doorbell mechanism using protection domains
EP1736887A3 (de) * 2005-05-31 2009-04-22 Stmicroelectronics Sa Speicherseitenverzeichnis
US7543123B2 (en) * 2005-11-07 2009-06-02 International Business Machines Corporation Multistage virtual memory paging system
US20080028181A1 (en) * 2006-07-31 2008-01-31 Nvidia Corporation Dedicated mechanism for page mapping in a gpu
US8239657B2 (en) 2007-02-07 2012-08-07 Qualcomm Incorporated Address translation method and apparatus
US20090031100A1 (en) * 2007-07-23 2009-01-29 David Hansen Memory reallocation in a computing environment
US8151076B2 (en) * 2008-04-04 2012-04-03 Cisco Technology, Inc. Mapping memory segments in a translation lookaside buffer
US7930515B2 (en) * 2008-07-29 2011-04-19 International Business Machines Corporation Virtual memory management
US8527697B2 (en) * 2009-07-20 2013-09-03 Netapp, Inc. Virtualized data storage in a network computing environment
JP4915756B2 (ja) * 2009-12-16 2012-04-11 インターナショナル・ビジネス・マシーンズ・コーポレーション アドレス変換を高速化する方法及びシステム
US20110238946A1 (en) * 2010-03-24 2011-09-29 International Business Machines Corporation Data Reorganization through Hardware-Supported Intermediate Addresses
US8656133B2 (en) 2011-05-05 2014-02-18 International Business Machines Corporation Managing storage extents and the obtaining of storage blocks within the extents
US8793444B2 (en) 2011-05-05 2014-07-29 International Business Machines Corporation Managing large page memory pools
US8683169B2 (en) 2011-05-05 2014-03-25 International Business Machines Corporation Selecting an auxiliary storage medium for writing data of real storage pages
US8799611B2 (en) 2011-05-05 2014-08-05 International Business Machines Corporation Managing allocation of memory pages
US8868876B2 (en) 2011-12-28 2014-10-21 International Business Machines Corporation Dedicated large page memory pools
US9058268B1 (en) 2012-09-20 2015-06-16 Matrox Graphics Inc. Apparatus, system and method for memory management
CN103077120B (zh) * 2012-12-31 2016-01-27 东软集团股份有限公司 程序共享内存的地址转换方法和装置
US9183057B2 (en) 2013-01-21 2015-11-10 Micron Technology, Inc. Systems and methods for accessing memory
KR20150132151A (ko) * 2013-03-12 2015-11-25 휴렛-팩커드 디벨롭먼트 컴퍼니, 엘.피. 프로그램 가능한 어드레스 매핑 및 메모리 액세스 동작
CN104216833B (zh) 2013-05-29 2017-10-10 华为技术有限公司 一种确定物理地址的方法及装置
US9405703B2 (en) * 2014-06-04 2016-08-02 Advanced Micro Devices, Inc. Translation lookaside buffer
GB2536201B (en) 2015-03-02 2021-08-18 Advanced Risc Mach Ltd Handling address translation requests
GB2536880B (en) 2015-03-24 2021-07-28 Advanced Risc Mach Ltd Memory management
US10719451B2 (en) * 2017-01-13 2020-07-21 Optimum Semiconductor Technologies Inc. Variable translation-lookaside buffer (TLB) indexing
TW201928689A (zh) * 2017-12-21 2019-07-16 晨星半導體股份有限公司 硬體控制系統及硬體控制方法
CN110096457B (zh) * 2018-01-31 2023-05-23 联发科技股份有限公司 硬件控制系统及硬件控制方法
US12066949B2 (en) * 2021-12-03 2024-08-20 Micron Technology, Inc. Address translation based on page identifier and queue identifier
CN115964310B (zh) * 2023-03-16 2023-07-04 芯动微电子科技(珠海)有限公司 一种非线性多存储信道数据交织方法及交织模块

Family Cites Families (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
FR2315744A1 (fr) * 1975-06-27 1977-01-21 Telemecanique Electrique Dispositif auxiliaire d'adressage virtuel
US4757438A (en) * 1984-07-12 1988-07-12 Texas Instruments Incorporated Computer system enabling automatic memory management operations
US5058003A (en) * 1988-12-15 1991-10-15 International Business Machines Corporation Virtual storage dynamic address translation mechanism for multiple-sized pages
JP2858795B2 (ja) * 1989-07-14 1999-02-17 株式会社日立製作所 実記憶割り当て方法
US5404485A (en) * 1993-03-08 1995-04-04 M-Systems Flash Disk Pioneers Ltd. Flash file system
US5479627A (en) * 1993-09-08 1995-12-26 Sun Microsystems, Inc. Virtual address to physical address translation cache that supports multiple page sizes
US5446854A (en) * 1993-10-20 1995-08-29 Sun Microsystems, Inc. Virtual memory computer apparatus and address translation mechanism employing hashing scheme and page frame descriptor that support multiple page sizes
JPH1017137A (ja) * 1996-06-27 1998-01-20 Toyo Kanetsu Kk 仕分設備

Also Published As

Publication number Publication date
DE69428881D1 (de) 2001-12-06
EP0663636A1 (de) 1995-07-19
SG45399A1 (en) 1998-01-16
KR950033840A (ko) 1995-12-26
JPH0836528A (ja) 1996-02-06
US5784707A (en) 1998-07-21
KR100354772B1 (ko) 2003-01-24
EP0663636B1 (de) 2001-10-31

Similar Documents

Publication Publication Date Title
DE69428881T2 (de) Logisch adressierbarer physikalischer Speicher für ein Rechnersystem mit virtuellem Speicher, das mehrere Seitengrössen unterstützt
DE69427625T2 (de) Adressübersetzungsmechanismus für Rechnersystem mit virtuellen Speicher, der eine Vielzahl von Seitengrössen unterstützt
DE2227882C2 (de) Virtuelle Speicheranordnung
DE69721590T2 (de) Ein bereichsbasiertes seiten-table-walk-bit verwendendes verfahren sowie vorrichtung
DE69408922T2 (de) Adressumsetzungscache-Speicher zur Umwandlung von virtuellen Adressen in physikalische Adressen, der mehrere Seitengrössen unterstützt
DE69620918T2 (de) Speicherseiten-komprimierung
DE68924833T2 (de) Verfahren und Anordnung zur Datenabbildung in einem Datenverarbeitungssystem mit virtuellem Speicher.
DE69629140T2 (de) Cachefähigkeitsattribut für virtuelle Adressen in Cachespeichern mit sowohl virtuellen als auch physikalischem Index
DE69526751T2 (de) Multiprozessorsystem zur lokalen Verwaltung von Adressenübersetzungstabellen
DE2260353A1 (de) Verfahren und vorrichtung zur speichersteuerung und adressenumsetzung
DE4410060A1 (de) Rechenvorrichtung
DE10084753B4 (de) Abbildung virtuellen Speichers unter Verwendung bereichsbasierter Seitentabellen
DE112013001751B4 (de) Hybride Adressumsetzung
DE69524916T2 (de) Verfahren und Vorrichtung zur Datenübertragung im Bereich der Rechnersysteme
DE69626962T2 (de) Verfahren und anordnung zum betrieb eines mit einem hauptrechner verbundenen massenspeicher-computerperipheriegerätes
DE60001170T2 (de) Betriebsystemsseitenplazierung zum maximieren der cachedatenwiederverwendung
DE102008062044A1 (de) Speicherinterne, seiteninterne Verzeichnis-Chache-Kohärenz-Konfiguration
DE4123550C2 (de) Informationsverarbeitungssystem mit direktem Speicherzugriff
DE112020005106T5 (de) Verfahren und systeme zum umsetzen von virtuellen adressen in einem auf virtuellem speicher beruhenden system
DE10006430A1 (de) Verbessertes Kohärenzprotokoll für einen Computer-Cache
DE4234695C2 (de) Computer-Speichersystem und Verfahren zur Aufrechterhaltung der Cache-Kohärenz zwischen einem Daten-Cache und einem Segmentdeskriptor-Cache
DE69429503T2 (de) Übersetzungsmechanismus für Ein-/Ausgabeadressen
DE69029176T2 (de) Steuerungsanordnung und Verfahren zum Zugriff auf einen virtuellen Speicheradressraum
DE69629331T2 (de) System und Verfahren zur Bereitstellung einer flexiblen Speicherhierarchie
DE3832758C2 (de) Verfahren zum Adressieren eines im Rückschreib-Modus betriebenen virtuellen Cache-Speichers

Legal Events

Date Code Title Description
8364 No opposition during term of opposition
8339 Ceased/non-payment of the annual fee