DE112013002934B4 - Verwalten eines Zugreifens auf Seitentabelleneinträge - Google Patents

Verwalten eines Zugreifens auf Seitentabelleneinträge Download PDF

Info

Publication number
DE112013002934B4
DE112013002934B4 DE112013002934.0T DE112013002934T DE112013002934B4 DE 112013002934 B4 DE112013002934 B4 DE 112013002934B4 DE 112013002934 T DE112013002934 T DE 112013002934T DE 112013002934 B4 DE112013002934 B4 DE 112013002934B4
Authority
DE
Germany
Prior art keywords
page
pte
address
virtual
memory
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.)
Active
Application number
DE112013002934.0T
Other languages
English (en)
Other versions
DE112013002934T5 (de
Inventor
c/o IBM Corporation Inte Bybell Anthony Joseph
c/o IBM Corporation Gschwind Michael Karl
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.)
International Business Machines Corp
Original Assignee
International Business Machines Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by International Business Machines Corp filed Critical International Business Machines Corp
Publication of DE112013002934T5 publication Critical patent/DE112013002934T5/de
Application granted granted Critical
Publication of DE112013002934B4 publication Critical patent/DE112013002934B4/de
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

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
    • 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/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)

Abstract

Durch einen Computer implementiertes Verfahren für ein Zugreifen auf Arbeitsspeicher-Speicherorte, wobei das Verfahren aufweist:Umsetzen einer virtuellen Adresse (202) durch einen Prozessor (102), um einen ersten Seitentabelleneintrag (PTE) in einer Seitentabelle zu suchen, wobei der erste PTE eine Markierung und eine Adresse einer Hauptspeicherseite aufweist, wobei der erste PTE auf die erste Seite verweist;Bestimmen (706) mithilfe des Prozessors (102), ob in dem ersten PTE die Markierung gesetzt ist;Identifizieren (710) einer großen Seitengröße einer großen Seite, die dem ersten PTE zugehörig ist, auf Grundlage des Bestimmens, dass die Markierung in dem ersten PTE gesetzt ist, wobei die große Seite aus zusammenhängenden Hauptspeicherseiten besteht und das Identifizieren ein Bestimmen der Größe der großen Seite basierend auf Inhalten einen Konfigurationsregisters aufweist;Bestimmen eines zweiten PTE, der sich von dem ersten PTE unterscheidet und der auf eine zweite Seite verweist, die die erste Seite fortsetzt, und die einer Startadresse der großen Seite auf Grundlage des Bestimmens aufweist, dass die Markierung in dem ersten PTE gesetzt ist, wobei die große Seite die erste Seite und die zweite Seite aufweist;Erhalten eine Startadresse des zweiten PTE; undVerwenden der virtuellen Adresse (207) für ein Indexieren in der großen Seite an der ursprünglichen Adresse, um auf einen Hauptspeicher (203) zuzugreifen.

Description

  • Hintergrund
  • Die vorliegende Erfindung betrifft ein Verwalten von Arbeitsspeicher-Seitentabellen in einem Verarbeitungssystem und insbesondere ein Verknüpfen von Seitentabelleneinträgen in einem Verarbeitungssystem.
  • Prozessoren, einschließlich Zentraleinheiten (CPUs), können Adressumsetzpuffer (TLB) (Translation Lookaside Buffer) als Zwischenspeicher verwenden, die eine Umsetzungsgeschwindigkeit von virtuellen Adressen verbessern. Die TLBs werden verwendet, um virtuelle und physische Adressräume zuzuordnen und enthalten Seitentabelleneinträge, die die virtuellen Adressen zu den physischen Adressen zuordnen.
  • In Computersystemen werden mehrere Adressumsetzungsmechanismen verwendet. In PowerPC® von IBM wird zum Beispiel eine effektive Adresse in eine entsprechende reale Adresse mittels Seitentabelleneinträgen umgesetzt, die durch Auswählen eines ESID-Tabelleneintrages gefunden werden, die der effektiven Adresse zugehörig sind, und indem der Eintrag verwendet wird, um eine Seitentabelleneintragsgruppe mittels eines Hashalgorithmus zu suchen. In zArchitecture®, ebenfalls von IBM, wird in einem weiteren Beispiel eine effektive Adresse in eine entsprechende reale Adresse mittels einer Hierarchie von Umsetzungstabellen umgesetzt, wobei die Umsetzungstabellen durch einen Abschnitt der effektiven Adresse indexiert sind, um die Adresse der nächsten Umsetzungstabelle der Hierarchie zu suchen, bis eine reale (oder absolute) Adresse erhalten wird. Somit ordnet die PowerPC-Adressumsetzung eine effektive 64-Bit-Adresse (eines großen Bereichs des Arbeitsspeichers (264 Bytes)) in nur 2 Ebenen (einem SLB-Tabelleneintrag und einem Seitentabelleneintrag) zu, während die hierarchische zArchitecture-Adressumsetzung 5 Tabellen benötigt, um einen großen effektiven Adressbereich umzusetzen (264 Bytes). Beide Adressumsetzungsmechanismen stellen Vorteile für jeweilige Betriebssysteme bereit.
  • Die Anmeldung EP690386A1 vom 03.01.1996, „Address translator and method of operation“ lehrt eine CAM/SRAM-Struktur (44), die Adressumsetzungen ausführt, die mit einer Segmentierungs-/Seitenadressierungsmethode kompatibel sind, aber dennoch nur einen einzigen Suchschritt erfordern. Jeder Eintrag in das Programm zum Umsetzen einer effektiven in eine reale Adresse weist zwei CAM-Felder auf (ESID, EPI), die unabhängig eine Eingabe-Segmentkennung und eine Eingabe-Seitenkennung jeweils mit einer gespeicherten Segmentkennung und einer gespeicherten Seitenkennung vergleichen. Die ERAT (Umsetzung von effektiven in reale Adressen / Effective to Real Address Translation) gibt ein Feld mit einer gespeicherten realen Adresse aus (DATA), das einem Paar aus gespeichertem Segment - gespeicherter Seite zugehörig ist, wenn beide Vergleiche gleichwertig sind. Die ERAT kann gespeicherte Umsetzungen auf der Grundlage einer Segment- oder Seiten-Granularität ungültig machen, indem während eines Vorgangs zum Ungültigmachen jeweils eine Übereinstimmung eines Segments oder eines Seiten-CAM-Felds gefordert wird.
  • Das Patentdokument US8103851 B2 vom 24.1.2012, „Dynamic address translation with translation table entry format control for identifying format of the translation table entry“ lehrt eine verbesserte dynamische Adressumsetzungseinrichtung. In einer Ausführungsform werden eine virtuelle Adresse, die umgesetzt werden soll, und eine erste ursprüngliche Adresse einer Umsetzungstabelle der Hierarchie von Umsetzungstabellen erhalten. Ein Indexabschnitt der virtuellen Adresse wird zum Verweisen auf einen Eintrag in der Umsetzungstabelle verwendet. Wenn ein Formatsteuerungsfeld in dem Umsetzungstabelleneintrag aktiviert ist, enthält der Tabelleneintrag eine Rahmenadresse eines großen Datenblocks einer Größe von mindestens 1 MB. Die Rahmenadresse wird anschließend mit einem relativen Adressabschnitt der virtuellen Adresse kombiniert, um die umgesetzte Adresse eines kleinen 4-KB-Datenblocks im Hauptspeicher oder Arbeitsspeicher zu bilden.
  • Außerdem beschreibt das Dokument US 2009 / 0 019 253 A1 ein Datenverarbeitunggssystem mit einer Speicherverwaltungs-Software für Änderungen in der Seitentabelle. Die Speicherverwaltungs-Software konsolidiert zusammenhängende Seitentabelleneinträge in einen oder mehrere Seitentabelleneinträge, die größeren Speicherseitengrößen entsprechen. Außerdem werden Einträge einem Lookaside-Buffer angepasst. Darüber hinaus beschreibt das US 2011 / 0 225 389 A1 einen Schaltkreis für eine Speicheradressübersetzung, um eine virtuelle Speicheradresse in eine physische Speicheradresse zu übersetzen, wobei Übersetzungsdaten einer Hierarchie von Übersetzungstabellen verwendet werden.
  • Trotzdem gibt es einen weiteren Bedarf an leistungsfähigeren Speicherverwaltungen.
  • Kurzdarstellung der Erfindung
  • Diese Aufgabe wird durch die Gegenstände der unabhängigen Ansprüche gelöst. Weitere Ausführungsformen sind durch die abhängigen Ansprüche beschrieben.
  • Weitere Merkmale und Vorteile werden durch die Techniken der vorliegenden Erfindung verwirklicht. Weitere Ausführungsformen und Aspekte der Erfindung werden hierin ausführlich beschrieben. Zum besseren Verständnis der Erfindung mit den Vorteilen und Merkmalen wird auf die Beschreibung und die Zeichnungen verwiesen.
  • Figurenliste
  • Die als die Erfindung betrachtete Thematik wird insbesondere in den Ansprüchen am Ende der Spezifikation dargelegt und eindeutig beansprucht. Die vorgenannten und weitere Merkmale und Vorteile der Erfindung werden aus der folgenden ausführlichen Beschreibung in Verbindung mit den begleitenden Zeichnungen offenkundig, wobei:
    • 1 ein Verarbeitungssystem gemäß einer Ausführungsform der vorliegenden Erfindung veranschaulicht;
    • 2A ein Beispiel einer übergeordneten Ansicht eines virtuellen Arbeitsspeichers (VM) (Virtual Memory) veranschaulicht, der einem physischen Arbeitsspeicher unter Verwendung des Hash-PTE- (PowerPC) Verfahrens zugeordnet ist;
    • 2B ein Beispiel eines Verfahrens zum Erzeugen einer virtuellen Adresse veranschaulicht;
    • 2C ein Beispiel einer hashverschlüsselten Seitentabellen- (HPT) (Hashed Page Table) Umsetzungsstruktur veranschaulicht, die von der Power-ISA verwendet wird;
    • 3 einen hierarchischen Umsetzungsmechanismus darstellt;
    • 4 eine Indexierung von übergeordneten Umsetzungstabellen veranschaulicht;
    • 5A und 5B eine beispielhafte Seitentabelle gemäß einer Ausführungsform der vorliegenden Erfindung enthalten;
    • 5C eine weitere beispielhafte Ausführungsform einer Seitentabelle veranschaulicht;
    • 6 ein Blockschaubild eines beispielhaften Verfahrens zum Erstellen von Einträgen in der Seitentabelle von 5A gemäß einer Ausführungsform der vorliegenden Erfindung veranschaulicht;
    • 7 ein Blockschaubild eines beispielhaften Verfahrens für ein Zugreifen auf einen Arbeitsspeicher-Speicherort unter Verwendung der Seitentabelle von 5B gemäß einer Ausführungsform der vorliegenden Erfindung veranschaulicht;
    • 8 ein Blockschaubild eines beispielhaften Verfahrens für ein Löschen oder Ungültigmachen eines PTE unter Verwendung der Seitentabelle von 5B gemäß einer Ausführungsform der vorliegenden Erfindung veranschaulicht;
    • 9 eine weitere beispielhafte Ausführungsform einer Seitentabelle enthält;
    • 10 ein Blockschaubild eines beispielhaften Verfahrens für ein Zugreifen auf einen Arbeitsspeicher-Speicherort unter Verwendung der Seitentabelle von 9 veranschaulicht; und
    • 11 eine beispielhafte Ausführungsform eines Computerprogrammprodukts veranschaulicht.
  • Ausführliche Beschreibung
  • Bisherige Systeme haben eine Unterstützung sehr großer Seiten verwendet (z.B. Seiten, die größer als 4 KB sind), um zu ermöglichen, dass mehr Arbeitsspeicher ohne Adressumsetzpuffer- (TLB) Fehler umgesetzt werden kann. Bisherige Systeme verwenden jedoch eine direkte Unterstützung von dem Betriebssystem, um große Seiten zu verwenden. Eine derartige Anordnung kann dazu führen, dass Probleme auftreten, wenn verschiedene Seitengrößen in dem System verwendet werden. Die im Folgenden beschriebenen Ausführungsformen ermöglichen es, große Seiten direkt in der Hardware des Systems zu verwalten, sodass das Betriebssystem keine Verwaltung von großen Seiten auf Betriebssystemebene integrieren muss. Somit kann eine umfangreichere Verwendung des TLB erreicht werden, da eine bestimmte Anzahl von TLB-Einträgen einen größeren Adressraum umsetzen kann.
  • In einer weiteren Ausführungsform werden große Seiten direkt durch das Betriebssystem zugeordnet, sind allerdings nicht durch die Seitentabellenformate und -größen darstellbar. Ein Beispiel dafür kann eine große Seite in einer Basistabelle sein, wobei die große Seite einem kleinzahligen Mehrfachen entspricht (und weniger als einem Arbeitsspeicherbereich, der durch eine Ebene in der Basistabelle umgesetzt wurde).
  • Unter folgender Bezugnahme auf 1 wird allgemein eine beispielhafte Ausführungsform eines Prozessorsystems (System) 100 gezeigt. Das System 100 enthält einen Prozessor (CPU) 102, der eine Arbeitsspeicherverwaltungseinheit/einen TLB-Abschnitt 104 und einen Zwischenspeicher 106 enthält. Der Prozessor 102 ist datenübertragungsfähig mit einem Arbeitsspeicherabschnitt 108 verbunden, der einen Zwischenspeicher 110 und einen Eingabe/Ausgabe- (E/A) Abschnitt 112 hat. Der E/A-Abschnitt 112 ist datenübertragungsfähig mit externen E/A-Einheiten 114 verbunden, die zum Beispiel Dateneingabeeinheiten, Sensoren und Ausgabeeinheiten wie beispielsweise Anzeigen enthalten können.
  • 2A veranschaulicht ein Beispiel einer übergeordneten Ansicht eines virtuellen Arbeitsspeichers (VM) 201, der einem physischen Arbeitsspeicher 203 unter Verwendung des hashverschlüsselten Seitentabelleneintrag- (PTE) Verfahrens zugeordnet ist, das zum Beispiel von PowerPC verwendet wird. In dem Beispiel verwenden Programme nur die Abschnitte A und B des VM. Alle VM-Segmente werden zu Segment-ID- (SID) Einträgen zugeordnet, die durch effektive Segment-IDs (ESIDs) 205 identifiziert werden (ESIDs für B und ESIDs für A eingeschlossen). Die „effektive Adresse“ 207, die von dem Programm verwendet wird, wählt einen SID-Eintrag, der den ESID-Wert und einen virtuellen Segment-ID- (VSID) Wert hat. Der VSID-Wert stellt die höchstwertigen Bits einer „virtuellen Adresse“ dar, die von einem Hashalgorithmus verwendet werden sollen. Ein hashverschlüsselter Wert auf der Grundlage des VSID wird für ein Suchen nach einem Seitentabelleneintrag (PTE) verwendet. Der Seitentabelleneintrag enthält eine Adresse einer Seite des physischen Arbeitsspeichers 203.
  • 2B veranschaulicht ein Beispiel eines Verfahrens für ein Erzeugen einer virtuellen Adresse 202 für ein Hashverfahren. In diesem Zusammenhang wird eine effektive Adresse 204 in einer Arbeitsspeicher-Verwaltungseinheit eines Prozessors empfangen, die ein Feld für effektive Segmentkennung (ESID) 206, ein Seiten-Feld 208 und ein Feld für relative Byteadresse (Byte-Feld) 210 enthält. Auf einen Segmentumsetzpuffer (SLB) (Segment Lookaside Buffer) 212 wird zugegriffen, und ein Eintrag mit der ESID 206 der effektiven Adresse 204 wird in dem SLB 212 gefunden. Der Eintrag mit der ESID 206 enthält eine zugehörige virtuelle Segmentkennung (VSID) 214. Die zugehörige VSID wird verwendet, um die virtuelle Adresse 202, die die VSID 214 in dem SLB 212 enthält, der der ESID 206 der effektiven Adresse 204 zugehörig ist; und die Seite 208 und Byte 210 aus der effektiven Adresse 204 zu erzeugen. Die virtuelle Adresse 202 kann für den Zugriff auf physischen Arbeitsspeicher in dem Arbeitsspeichersystem verwendet werden. In dieser Offenbarung werden die Begriffe physischer Arbeitsspeicher, realer Arbeitsspeicher, Systemarbeitsspeicher und absoluter Arbeitsspeicher untereinander austauschbar verwendet, um auf den Hauptspeicher zu verweisen, auf den von einem Prozessor zugegriffen werden kann.
  • 2C veranschaulicht ein Beispiel einer hashverschlüsselten Seitentabellen- (HPT) Umsetzungsstruktur, die von dem PowerPC verwendet wird, wobei die Power ISA ferner ausführlich in der Spezifikation für Power ISA™ Version 2.06 Revision B beschrieben wird. Der ESID-Abschnitt 206 der effektiven Adresse (EA) 204 wird zum Suchen nach einem Eintrag in dem SLB 212 verwendet. Der Eintrag enthält ein VSID-Feld 214. Der Wert des VSID-Felds 214 und ein Abschnitt der EA 204 werden hashverschlüsselt, um einen Hashwert zu erzeugen, der für ein Suchen nach einer Seitentabellengruppe 252 in einer Seitentabelle (HPT) 250 verwendet wird. Die PTEs der Gruppe 252 werden durchsucht, um einen entsprechenden PTE zu finden, der ein Feld hat, das mit einem Wert eines höchstwertigen Abschnitts der VSID übereinstimmt. Wenn ein entsprechender PTE gefunden wird, wird die Adresse der physischen Arbeitsspeicherseite in dem PTE für ein Zugreifen auf physischen Arbeitsspeicher verwendet. Sobald ein PTE gefunden ist, werden der Abschnitt der EA 204 und die Adresse der physischen Arbeitsspeicherseite, die in dem PTE gefunden wurden, für ein Verbessern der Leistung in dem TLB 254 gespeichert, sodass weitere Zugriffe auf dieselbe EA-Seite in dem TLB 254 einen „Treffer“ erzeugen und die PTE-Suche vermeiden. Die Seitentabelle wird durch eine Seitentabelle-Ursprungsadresse gefunden, die durch den Prozessor bereitgestellt wird.
  • Wenn ein PTE in der Gruppe 252 gefunden wird, der dem hashverschlüsselten Wert entspricht, wird die Adresse der physischen Arbeitsspeicherseite in dem PTE für ein Zugreifen auf den physischen Arbeitsspeicher verwendet. Sobald ein PTE gefunden ist, werden der Abschnitt der EA 204 und die Adresse der physischen Arbeitsspeicherseite, die in dem PTE gefunden wurden, für ein Verbessern der Leistung in dem TLB 254 gespeichert, sodass weitere Zugriffe auf dieselbe EA-Seite in dem TLB 254 einen „Treffer“ erzeugen und die PTE-Suche vermeiden. Die Seitentabelle wird durch eine Seitentabelle-Ursprungsadresse gefunden, die durch den Prozessor bereitgestellt wird.
  • Die Dokumente „IBM zArchitecture Principles of Operation SA22-7832-8“ und „Intel Itanium Architecture Software Developer's Manual Band 2: System Architecture, Dokumentnummer: 245318-005“ enthalten Beschreibungen von weiteren Adressumsetzungsverfahren, die hierarchische Umsetzungstabellen verwenden.
  • 3 stellt einen beispielhaften hierarchischen Umsetzungsmechanismus für Umsetzungstabellen dar. In diesem Fall werden die Umsetzungstabellen für ein Umsetzen eines gesamten virtuellen Arbeitsspeichers 302 bereitgestellt, obwohl nur die Bereiche A und B verwendet werden sollen. Der Ursprung der höchstwertigen Umsetzungstabelle der hierarchischen Umsetzungstabellen 304 wird zum Beispiel durch ein Steuerregister (CR3) 306 bereitgestellt. Eine effektive Adresse 308 wird für eine Indexierung in jeder Tabelle der hierarchischen Umsetzungstabellen 304 verwendet, um eine Ursprungsadresse der nächsten aufzufindenden Tabelle zu bestimmen, zum Beispiel einen Seitentabelleneintrag (PTE) mit einer Adresse einer Seite eines physischen Arbeitsspeichers 310.
  • 4 zeigt, dass die Umsetzungstabelle der obersten Ebene der Hierarchie durch den oberen Abschnitt einer effektiven Adresse 308a „indexiert“ ist, um einen Eintrag 402a einer Tabelle 1 zu suchen, der für ein Suchen nach der nächsten Umsetzungstabelle (Tabelle 2) verwendet wird. Desgleichen wird ein nächster Abschnitt einer effektiven Adresse 308b für ein Indexieren in Tabelle 2 verwendet, um einen Eintrag 402b der Tabelle 2 zu suchen, der die ursprüngliche Adresse von Tabelle 3 hat. Ein nächster Abschnitt einer effektiven Adresse 308c wird für ein Indexieren in der Tabelle 3 verwendet, um einen Eintrag 402c der Tabelle 3 zu suchen, der eine ursprüngliche Adresse einer Tabelle 304 hat. Ein nächster Abschnitt einer effektiven Adresse 308d wird für ein Indexieren in der Tabelle 304 verwendet, um einen Seitentabelleneintrag 402d zu suchen, der die Adresse einer physischen Arbeitsspeicherseite 406 hat. Der Ursprung der Hierarchie von Umsetzungstabellen kann in einer Ausführungsform ein Tabellenauswahlfeld enthalten, um zu bestimmen, auf welche aus der Hierarchie von Umsetzungstabellen der Ursprung angewendet ist. Somit kann die Umsetzung nur eine Untergruppe der Hierarchie erfordern (wobei eine effektive Adresse darauf beschränkt ist, eine vordefinierte Anzahl von höchstwertigen Bits mit einem Nullwert zu enthalten). Eine Umsetzung, die weniger Tabellen verwendet, wird schneller sein als eine, die mehr Tabellen verwendet.
  • 5A und 5B enthalten eine beispielhafte Ausführungsform einer Seitentabelle 501, die ein Feld für eine Anzahl von Seitentabelleneinträgen 502, ein Feld für effektive/virtuelle Adresse (virtuelle Adresse) 504, ein Feld für physische Adresse 506, ein Gültigkeitsfeld 508 und ein Markierungsfeld 510 hat. In diesem Zusammenhang dient das Feld für die Anzahl von Seitentabelleneinträgen 502 zu Veranschaulichungszwecken, da es (für das veranschaulichte Beispiel) ein 9-Bit-Index ist, der für ein Zugreifen auf das Array von 512 PTEs (Nr. 0 bis 511) in der Seitentabelle 501 verwendet wird. Das Feld für virtuelle Adresse 504 wird in einer hashverschlüsselten Umgebung verwendet und Hash verwirft Teile der virtuellen Adresse. In einer nicht hashverschlüsselten Umgebung wird die virtuelle Adresse implizit durch ein Schritt-für-Schritt-Durchlaufen des Basisbaums angegeben und muss nicht in dem PTE angegeben werden, (siehe 308a bis d in 4). Das Feld für physische Adresse 506 enthält die physische Adresse, die das Betriebssystem einer bestimmten virtuellen Adresse 504 zugeordnet hat. Das Gültigkeitsfeld 508 gibt an, dass die Inhalte für einen bestimmten, in der Seitentabelle 501 gefundenen PTE gültig sind. 510: Das Markierungs-Bit/-Feld 510 wird im Folgenden ausführlicher beschrieben.
  • Die PTEs von 5A und 5B können zum Beispiel in Verbindung mit einer HPT-Umsetzungsstruktur (von 2C) verwendet werden. Die Intel IA64-Architektur wird ferner ausführlich beschrieben im Intel Itanium Architecture Software Developer's Manual Revision 2.3. Der beispielhafte Betrieb des Systems 100 und die Verwendung der Seitentabelle 501 werden im Folgenden erörtert. Das Feld für virtuelle Adresse 504 ist optional und kann in einer hashverschlüsselten Umgebung verwendet werden.
  • 5C veranschaulicht eine Mehrzahl von Seitentabelleneinträgen einer Seitentabelle 304 gemäß einer weiteren Ausführungsform in Verbindung mit der Umsetzung auf der Grundlage eines Basisbaums von 4. Gemäß dieser Ausführungsform enthalten die Seitentabelleneinträge eine physische Adresse 505, ein gültiges Bit 507 und Seiteneigenschaften-Bits (Markierung) 509. In der veranschaulichten Ausführungsform wird ein Seitentabelleneintrag um ein Markierungs-Bit erweitert, um mehrere Seiten als Teil eines virtuellen Adressblocks zu markieren, der einem größeren zusammenhängenden Adressbereich entspricht, der die Größe einer einzelnen Seite überschreitet. Ein einzelner Hardware-Umsetzungseintrag (wie beispielsweise ein Eintrag in einem TLB, einer ERAT oder einer anderen derartigen Umsetzungsstruktur) wird für ein Umsetzen mehrerer Seitentabelleneinträge verwendet, um eine erhöhte Wirksamkeit der Hardware-Umsetzungsstruktur zu erzielen.
  • Obwohl die veranschaulichten Ausführungsformen ein System beschreiben, das 16-KB-Blöcke mit vier zusammenhängenden Einträgen verwendet, können alternative Ausführungsformen jede geeignete Speicheranordnung bzw. jede Methode verwenden, die Blöcke einer beliebigen geeigneten Größe und einer geeigneter Anzahl von Einträgen haben. In einer beispielhaften Ausführungsform wird die Anzahl von Einträgen durch Schreiben in ein Konfigurationsregister (nicht gezeigt) angegeben. In einer weiteren Ausführungsform gibt ein Feld in dem PTE 501 die Anzahl von Einträgen an. In noch einer weiteren beispielhaften Ausführungsform werden mehrere Konfigurationsregister bereitgestellt, die mehreren Basistabellenebenen entsprechen, die eine Mehrfacheintrags-Umsetzungsgranularität erstellen, wenn übergeordnete Verzeichnisse (wie das Page Middle Directory oder das Page Upper Directory) größere Basisseitengrößen für jede Verzeichnisebene separat umsetzen können. Wenn die Anzahl von Einträgen in einer Implementierung als implementierungsspezifisches Merkmal gemäß einer beispielhaften Ausführungsform festgelegt ist, kann eine Abfragefunktion verwendet werden, um die Anzahl von Einträgen in einem Block zu erhalten.
  • In diesem Zusammenhang veranschaulicht 6 ein Blockschaubild eines beispielhaften Verfahrens für ein Erstellen von Einträgen in der Seitentabelle 501 (von 5A) für das System 100 (von 1). Unter Bezugnahme auf 6 wird im Block 602 eine Zuordnungsroutine für eine virtuelle Adresse gestartet. In dem veranschaulichten Beispiel fügt die Zuordnungsroutine eine Zuordnung für die virtuelle Adresse 003000 zu der physischen Adresse 123456780000B000 hinzu. Im Block 604 werden die Einträge in diesem selben virtuellen Adressblock von 16 KB (Blockeinträge 0, 1 und 2) als die virtuelle Adresse 003000 identifiziert. Die physischen Adressen der Einträge werden analysiert, um im Block 606 zu bestimmen, ob die Einträge verknüpft werden können. Die Bestimmung erfolgt zum Beispiel durch Bestätigen, dass die Einträge 0, 1 und 2 gültig sind. Jede in den Einträgen gespeicherte physische Adresse, einschließlich der physischen Adresse, die im Eintrag 3 installiert wird, wird per logischer UND-Verknüpfung dem Wert 3FFF (16383) hinzugefügt, der um ein Byte kleiner ist als die Größe des virtuellen Adressblocks (für einen virtuellen Adressblock von 16 KB). Das Ergebnis von jedem PTE lautet 1234567800008000. Wenn das Ergebnis von jedem PTE dasselbe ist, können die vier PTEs verknüpft werden. Falls nicht, wird für die virtuelle Adresse 003000 ein Seitentabelleneintrag erstellt. In dem veranschaulichten Beispiel können die Seitentabelleneinträge in dem virtuellen Adressblock verknüpft werden. Somit wird im Block 610 ein Seitentabelleneintrag für die virtuelle Adresse 003000 erzeugt, die der physischen Adresse 123456780000B000 zugeordnet ist. TLB-Anweisungen für ein Ungültigmachen werden ausgegeben, um im Block 612 alle gültigen TLB-Einträge ungültig zu machen, die die virtuellen Adressen umfassen, die in dem virtuellen Adressblock enthalten sind. Im Block 614 wird eine Markierung in dem Markierungsfeld 510 für jeden PTE in dem virtuellen Adressblock gesetzt. 5B veranschaulicht eine beispielhafte Ausführungsform der sich daraus ergebenden Seitentabelle 501 in Folge der Ausführung des oben beschriebenen Verfahrens. Wenn die Hardware-Umsetzungssuche nicht erfolgreich ist, kann das Betriebssystem eine Zuordnungsroutine für eine virtuelle Adresse starten.
  • Ein TLB hat eine feste Anzahl von Bereichen, die Seitentabelleneinträge enthalten, die virtuelle Adressen zu physischen Adressen zuordnen. Der virtuelle Arbeitsspeicher ist der von einem Prozess aus gesehene Speicherbereich. Dieser Speicherbereich ist in Seiten einer vorab festgelegten Größe segmentiert. Die Seitentabelle (die im Allgemeinen in den Arbeitsspeicher geladen ist) verfolgt, wohin die virtuellen Seiten in dem physischen Arbeitsspeicher geladen werden. Der TLB ist ein Zwischenspeicher der Seitentabelle; das heißt, nur eine Untergruppe ihres Inhalts wird gespeichert.
  • Der TLB verweist in seiner Tabelle auf physische Arbeitsspeicheradressen. Er kann sich zwischen der CPU und dem CPU-Zwischenspeicher, zwischen dem CPU-Zwischenspeicher und einem primären Arbeitsspeicher der Speichereinheit oder zwischen Ebenen eines Mehrebenen-Zwischenspeichers befinden. Die Platzierung bestimmt, ob der Zwischenspeicher eine physische oder virtuelle Adressierung verwendet. Wenn der Zwischenspeicher virtuell adressiert wird, werden Anforderungen direkt von der CPU zum Zwischenspeicher gesendet, und auf den TLB wird nur im Fall eines Zwischenspeicherfehlers zugegriffen. Wenn der Zwischenspeicher physisch adressiert wird, führt die CPU eine TLB-Suche für jeden Arbeitsspeichervorgang aus, und die sich daraus ergebende physische Adresse wird an den Zwischenspeicher gesendet. Beide Implementierungen weisen Vor- und Nachteile auf. Zwischenspeicher, die eine virtuelle Adressierung verwenden, haben als Schlüssel einen Teil der virtuellen Adresse plus optional einen Schlüssel, der als „Adressraumkennung“ (ASID) bezeichnet wird. Zwischenspeicher, die keine ASIDs aufweisen, müssen in einer Mehrprozessor-Umgebung bei jeder Kontextänderung geleert werden.
  • In einer Harvard-Architektur oder einer Hybridform davon kann ein separater virtueller Adressraum oder eine Hardware für Arbeitsspeicherzugriff für Anweisungen und Daten vorhanden sein. Dies kann zu eindeutigen TLBs für jeden Zugriffstyp führen.
  • 7 veranschaulicht ein Blockschaubild eines beispielhaften Verfahrens für ein Zugreifen auf einen Arbeitsspeicher-Speicherort unter Verwendung der Seitentabelle 501 (von 5B). In diesem Zusammenhang wird unter Bezugnahme auf 7 im Block 702 eine Arbeitsspeicher-Zugriffsroutine gestartet, um auf den Arbeitsspeicher-Speicherort 001000 zuzugreifen. Im Block 704 befindet sich der PTE für 001000 und wird dort gelesen. Im Block 705 bestimmt das System 100, ob der PTE gültig ist. Falls nicht, wird im Block 707 das Betriebssystem aufgerufen, um einen PTE-Fehler zu verarbeiten. Das System 100 bestimmt im Block 706, ob in dem Markierungsfeld 510 (von 5B) eine Markierung gesetzt ist. Falls nicht, wird im Block 708 die physische Adresse von dem PTE abgerufen, der der virtuellen Adresse zugehörig ist, und die physische Adresse kann verwendet werden, um durch den Prozessor auf den Arbeitsspeicher-Speicherplatz zuzugreifen. Wenn die Markierung im Block 710 gesetzt ist, wird die Seitengröße bestimmt (auf ähnliche Weise wie vorher erörtert), und der Start-Speicherort der Seite wird für ein Zugreifen auf den Arbeitsspeicher-Speicherplatz an den Prozessor gesendet. Der Start-Speicherplatz der Seite wird identifiziert, wenn die Markierung in dem PTE gesetzt ist, indem eine UND-Operation mit der virtuellen und der physischen Adresse in dem PTE ausgeführt wird mit dem Einerkomplement von eins kleiner als die Größe des virtuellen Adressblocks von 16 KB, um einen virtuellen Adressblock einer zuzuordnenden virtuellen und physischen Adresse zu erhalten. (16384 - 1 = 16383 = 3FFF) Das Einerkomplement lautet FFFFFFFFFFFFC000, das dann per UND-Verknüpfung den virtuellen und physischen Adressen hinzugefügt wird. Im Block 712 wird die physische Adresse für den PTE abgerufen (z.B. zeigt 000000 auf den 16-KB-Block bei 123457800009000), der auf den Start-Speicherort der Seite zeigt. Die virtuellen und physischen Adressen eines virtuellen Adressblocks sind in einem Hardware-Umsetzungseintrag in Verbindung mit Seitentabellenattributen installiert, die in einem PTE gemäß 5C gespeichert sind.
  • Dem Fachmann wird klar sein, dass Attribute für alle durch einen einzigen Hardware-Umsetzungseintrag zugeordneten Adressen konsistent sind, wenn ein virtueller Adressblock durch einen einzelnen Hardware-Eintrag umgesetzt wird.
  • In einem Aspekt einer Ausführungsform wird das Verfahren von 7 erweitert, um auf Äquivalenz zu prüfen. In einer weiteren Ausführungsform wird 7 auf Seiten mit ähnlichen Umsetzungseigenschaften angewendet (z.B. auf Seiten, die Anweisungen in Bezug auf andere Seiten enthalten, die Anweisungen enthalten, oder Seiten, die normale Anwendungsdaten enthalten, die auf zwischenspeicherbare und schreibbare Weise in Bezug auf andere normale Anwendungsdaten zugeordnet sind, die auf zwischenspeicherbare und schreibbare Weise oder zu Nur-Lese-Daten in Bezug auf andere Nur-Lese-Daten zugeordnet sind usw.).
  • In einem Aspekt wird keine Hardware-Prüfung ausgeführt, um konsistente Seiteneigenschaften sicherzustellen. In einem weiteren Aspekt prüft Hardware alle markierten Seiten-PTEs vor einem Installieren eines virtuellen Adressblocks auf kompatible Attribute. Wenn in einer Ausführungsform die Prüfung fehlschlägt, wird eine Umsetzung eines virtuellen Adressblocks nicht als ein Eintrag installiert. In einem Aspekt wird eine Softwarefehlerbenachrichtigung ausgelöst (z.B. mittels einer Ausnahmebedingung, die entweder an ein Betriebssystem oder einen Hypervisor gemeldet wird). In einem weiteren Aspekt wird ein Hardware-Umsetzungseintrag installiert, der einem einzelnen PTE entspricht, und die Markierung wird ignoriert.
  • Dem Fachmann wird klar sein, dass virtuelle und physische Adressen zusammenhängend sein werden, wenn mehrere PTEs verwendet werden, um einen Bereich eines virtuellen Adressblocks zuzuordnen.
  • In einem Aspekt wird keine Hardware-Prüfung ausgeführt, um sicherzustellen, dass zusammenhängende physische Adressen durch PTEs zugeordnet werden, die als Mitglieder eines virtuellen Adressblocks markiert sind.
  • In einem weiteren Aspekt prüft Hardware alle markierten Seiten-PTEs vor einem Installieren eines virtuellen Adressblocks auf zusammenhängende physische Adressen. Wenn in einer Ausführungsform die Prüfung fehlschlägt, wird eine Umsetzung eines virtuellen Adressblocks nicht als ein Eintrag installiert. In einem Aspekt wird eine Softwarefehlerbenachrichtigung ausgelöst (z.B. mittels einer Ausnahmebedingung, die entweder an ein Betriebssystem oder einen Hypervisor gemeldet wird). In einem weiteren Aspekt wird ein Hardware-Umsetzungseintrag installiert, der einem einzelnen PTE entspricht, und die Markierung wird ignoriert.
  • 8 veranschaulicht ein Blockschaubild eines beispielhaften Verfahrens für ein Löschen oder Ungültigmachen eines PTE unter Verwendung der Seitentabelle 501 (von 5B). In diesem Zusammenhang wird unter Bezugnahme auf 8 im Block 802 eine Routine für ein Löschen/Ungültigmachen gestartet, die funktionsfähig ist, um eine Umsetzung für die virtuelle Adresse 002000 aus der Seitentabelle 501 zu entfernen. Der PTE für die virtuelle Adresse und der zugehörige Adressblock befinden sich im Block 804. Wenn im Block 806 im Markierungsfeld 510 keine Markierung gesetzt ist, gibt das System im Block 808 eine TLB-Anweisung für ein Ungültigmachen für den PTE mit der virtuellen Adresse aus. Im Block 810 wird der PTE für die virtuelle Adresse in dem Gültigkeitsfeld 508 (von 5B) als ungültig markiert. Wenn die Markierung im Block 812 in dem Markierungsfeld 510 gesetzt ist, wird die Markierung in dem Markierungsfeld 510 für alle PTEs in dem virtuellen Adressblock der virtuellen Adresse (z.B. 0, 1 und 3) nach einer Identifizierung der PTEs in dem virtuellen Adressblock der virtuellen Adresse (z.B. 0, 1, 2, 3) entfernt. Wenn die Markierungen entfernt sind, werden im Block 814 TLB-Anweisungen für ein Ungültigmachen für alle PTEs in dem virtuellen Adressblock des virtuellen Adressblocks ausgegeben. Der PTE der virtuellen Adresse (002000) wird im Block 816 im Gültigkeitsfeld 508 als ungültig markiert.
  • 9 enthält eine weitere beispielhafte Ausführungsform einer Seitentabelle 901, die ein Feld für eine Anzahl von Seitentabelleneinträgen 902 hat, ein Feld für effektive/virtuelle Adresse (virtuelle Adresse) 904, ein Feld für physische Adresse 906, ein Gültigkeitsfeld 908 und ein Markierungsfeld 910 und ein Feld für restliche Funktions-Bits 912. Der beispielhafte Betrieb des Systems 100 (von 1) und die Verwendung der Seitentabelle 901 werden im Folgenden erörtert.
  • In der Seitentabelle 901 sind die Markierungsfelder 910 für die PTEs 0 und 1 gesetzt, wodurch angegeben wird, dass der virtuelle Adressblock ein 8-KB-Block ist. Die gesetzte Angabe für die PTEs 0 und 1 gibt dem System 100 an, dass auf die PTEs 0 und 1 als größere PTEs zugegriffen werden sollte, und die Felder, die durch die Angabe „###“ angegeben sind (Felder 906b und 912b) sind verfügbar, um weitere Daten oder Informationen zu speichern. In einer Ausführungsform werden zusätzliche Seiteneigenschaften in den zusätzlichen Bits eines derartigen PTE gespeichert. In einer weiteren Ausführungsform können zusätzliche Bits einer physischen Adresse in diesen zusätzlichen Bits eines derartigen PTE gespeichert werden, was dem System ermöglicht, physische Adressen zu adressieren, auf die anderweitig nicht zugegriffen werden kann. In einem Aspekt der Ausführungsform kann dies verwendet werden, um einen erweiterten Arbeitsspeicherbereich zuzuordnen, der große Seiten verwendet, die durch physische Adressen nicht adressierbar sind, die in einem normalen PTE gespeichert werden können. Die gesetzte Angabe für die PTEs 0 und 1 gibt zusammen mit den gültigen Angaben in dem Gültigkeitsfeld 908 für das System auch an, dass beide PTEs 0 und 1 gelesen werden sollen, wenn eine Arbeitsspeicher-Zugriffsroutine ausgeführt wird.
  • 10 veranschaulicht ein Blockschaubild eines beispielhaften Verfahrens für ein Zugreifen auf einen Arbeitsspeicher-Speicherort unter Verwendung der Seitentabelle 701 (von 7). In diesem Zusammenhang wird unter Bezugnahme auf 10 im Block 1002 eine Arbeitsspeicher-Zugriffsroutine gestartet, um auf den Arbeitsspeicher-Speicherort 001000 zuzugreifen. Im Block 1004 befindet sich der PTE für 001000 und wird dort gelesen. Im Block 1005 bestimmt das System 100, ob der PTE gültig ist. Falls nicht, wird im Block 1007 das Betriebssystem aufgerufen, um einen PTE-Fehler zu verarbeiten. Das System 100 bestimmt im Block 1006, ob in dem Markierungsfeld 910 (von 9) eine Markierung gesetzt ist. Falls nicht, wird im Block 1008 die physische Adresse von dem PTE abgerufen, der der virtuellen Adresse zugehörig ist, und die physische Adresse wird an den Prozessor gesendet, um auf den Arbeitsspeicher-Speicherort zuzugreifen. Wenn die Markierung im Block 1010 gesetzt ist, werden die physische Adresse und Attribute und die restlichen Funktions-Bits von allen PTEs abgerufen, die der virtuellen Adresse zugehörig sind, und an den Prozessor gesendet, um auf den Arbeitsspeicher-Speicherort zuzugreifen. Obwohl die veranschaulichten Ausführungsformen ein System beschreiben, das 8-KB-Blöcke mit zwei zusammenhängenden Einträgen verwendet, können alternative Ausführungsformen jede geeignete Arbeitsspeicheranordnung bzw. jede Methode verwenden, die Blöcke einer beliebigen geeigneten Größe und einer geeigneter Anzahl von Einträgen haben. In einer beispielhaften Ausführungsform wird die Anzahl von Einträgen durch Schreiben in ein Konfigurationsregister (nicht gezeigt) angegeben. In einer weiteren Ausführungsform gibt ein Feld in dem PTE 901 die Anzahl von Einträgen an.
  • Obwohl die Ausführungsformen hierin so beschrieben wurden, dass sie mehrere benachbarte separate PTEs durch PTEs, die als Mitglieder eines virtuellen Adressblocks markiert sind, in Antwort auf ein Erfassen ersetzen, dass mehrere Einträge in virtuellen und physischen Arbeitsspeicherbereichen benachbart sind und somit durch einen allgemeinen Hardware-Umsetzungseintrag umgesetzt werden können, wird in Betracht gezogen, dass in mindestens einer Ausführungsform und einem Betriebssystem Arbeitsspeicher-Zuordnungs-Pools verwendet werden, die virtuellen Adressblöcken entsprechen. Gemäß einer derartigen Ausführungsform ordnet das Betriebssystem einen virtuellen Adressblock in Antwort auf Arbeitsspeicheranforderungen durch Software zu, die auf einem System läuft. Wenn ein virtueller Adressblock zugeordnet wird, installiert das Betriebssystem sofort eine Vielzahl von Seitentabelleneinträgen PTEs, die als Mitglieder eines virtuellen Adressblocks markiert sind.
  • 11 veranschaulicht eine beispielhafte Ausführungsform eines Computerprogrammprodukts 1100, das ein durch einen Computer verwendbares/lesbares Medium 1102 mit einer darauf geschriebenen Programmcodelogik 1104 enthält.
  • Die technischen Auswirkungen und Vorteile der oben beschriebenen Verfahren und Systeme ermöglichen es, große Seiten direkt in der Hardware des Systems zu verwalten, sodass das Betriebssystem keine Verwaltung von großen Seiten auf Betriebssystemebene integrieren muss. Somit kann eine umfangreichere Verwendung des TLB erreicht werden, da eine bestimmte Anzahl von TLB-Einträgen einen größeren Adressraum umsetzen kann.
  • Wie einem Fachmann klar sein wird, können Aspekte der vorliegenden Erfindung als ein System, Verfahren oder Computerprogrammprodukt verkörpert werden. Dementsprechend können Aspekte der vorliegenden Erfindung in der Form einer vollständigen Hardware-Ausführungsform, einer vollständigen Software-Ausführungsform (einschließlich Firmware, residente Software, Mikrocode usw.) oder einer Ausführungsform vorliegen, die Software- und Hardware-Aspekte kombiniert, auf die alle hierin allgemein als „Schaltung“, „Modul“ oder „System“ Bezug genommen werden kann. Des Weiteren können Aspekte der vorliegenden Erfindung die Form eines Computerprogrammprodukts annehmen, das in einem oder mehreren computerlesbaren Medien mit einem darin ausgeführten computerlesbaren Programmcode verkörpert ist.
  • Jede Kombination von einem oder mehreren computerlesbaren Medien kann verwendet werden. Das computerlesbare Medium kann ein computerlesbares Signalmedium oder ein computerlesbares Speichermedium sein. Ein computerlesbares Speichermedium kann zum Beispiel ein elektronisches, magnetisches, optisches, elektromagnetisches, Infrarot- oder Halbleitersystem, eine derartige Vorrichtung oder Einheit oder jede geeignete Kombination aus dem Vorgenannten sein, es ist aber nicht darauf beschränkt. Zu spezielleren Beispielen (eine nicht erschöpfende Liste) für das computerlesbare Speichermedium würde Folgendes zählen: eine elektrische Verbindung mit einer oder mehreren Leitungen, eine tragbare Computerdiskette, eine Festplatte, ein Direktzugriffspeicher (RAM), ein Nur-Lese-Speicher (ROM), ein löschbarer programmierbarer Nur-Lese-Speicher (EPROM oder Flash-Speicher), ein Lichtwellenleiter, ein tragbarer CD-ROM, eine optische Speichereinheit, eine Magnetspeichereinheit oder jede geeignete Kombination des Vorgenannten. In dem Kontext dieses Dokuments kann ein computerlesbares Speichermedium jedes konkrete Medium sein, das ein Programm zur Verwendung durch oder in Verbindung mit einem System, einer Vorrichtung oder einer Einheit zur Anweisungsausführung enthalten oder speichern kann.
  • Ein computerlesbares Signalmedium kann ein verbreitetes Datensignal mit einem darin verkörperten computerlesbaren Programmcode enthalten, zum Beispiel im Basisband oder als Teil einer Trägerwelle. Ein derartiges verbreitetes Signal kann jede einer Vielfalt von Formen annehmen, unter anderem elektromagnetisch, optisch oder jede geeignete Kombination davon, es ist aber nicht darauf beschränkt. Ein computerlesbares Signalmedium kann jedes computerlesbare Medium sein, das kein computerlesbares Speichermedium ist und das ein Programm zur Verwendung durch oder in Verbindung mit einem System, einer Vorrichtung oder einer Einheit zur Anweisungsausführung übertragen, verbreiten oder transportieren kann.
  • In einem computerlesbaren Medium verkörperter Programmcode kann unter Verwendung jedes geeigneten Mediums übertragen werden, unter anderem drahtlos, drahtgebunden, über ein Lichtwellenleiterkabel, HF usw. oder eine geeignete Kombination des Vorgenannten, er ist aber nicht darauf beschränkt.
  • Computerprogrammcode für ein Ausführen von Vorgängen für Aspekte der vorliegenden Erfindung kann in jeder Kombination von einer oder mehreren Programmiersprachen geschrieben werden, einschließlich einer objektorientierten Programmiersprache wie Java, Smalltalk, C++ oder dergleichen und herkömmlichen prozeduralen Programmiersprachen wie der Programmiersprache „C“ oder ähnlichen Programmiersprachen. Der Programmcode kann vollständig auf dem Computer des Benutzers, teilweise auf dem Computer des Benutzers, als eigenständiges Softwarepaket, teilweise auf dem Computer des Benutzers und teilweise auf einem entfernt angeordneten Computer oder vollständig auf dem entfernt angeordneten Computer oder Server ausgeführt werden. In dem letzteren Szenario kann der entfernt angeordnete Computer mit dem Computer des Benutzers über jeden Typ von Netzwerk verbunden werden, einschließlich ein lokales Netzwerk (LAN) oder ein Weitverkehrsnetz (WAN), oder die Verbindung kann zu einem externen Computer hergestellt werden (zum Beispiel über das Internet unter Nutzung eines Internet-Dienstanbieters).
  • Aspekte der vorliegenden Erfindung werden im Folgenden unter Bezugnahme auf Veranschaulichungen eines Ablaufplans und/oder von Blockschaubildern von Verfahren, Vorrichtungen (Systemen) und Computerprogrammprodukten gemäß Ausführungsformen der Erfindung beschrieben. Es versteht sich, dass jeder Block in den Veranschaulichungen von Ablaufplänen und/oder den Blockschaubildern und Kombinationen von Blöcken in den Veranschaulichungen von Ablaufplänen und/oder den Blockschaubildern durch Computerprogrammanweisungen umgesetzt werden können. Diese Computerprogrammanweisungen können für einen Prozessor eines Mehrzweckcomputers, eines Spezialcomputers oder andere Vorrichtungen, die programmierbare Daten verarbeiten, bereitgestellt werden, um eine Maschine zu erzeugen, sodass die Anweisungen, die über den Prozessor des Computers oder andere Vorrichtungen, die programmierbare Daten verarbeiten, ausgeführt werden, Mittel zum Umsetzen der Funktionen/Handlungen erstellen, die in dem Ablaufplan und/oder dem Block oder den Blöcken des Blockschaubilds angegeben sind.
  • Diese Computerprogrammanweisungen können auch in einem computerlesbaren Medium gespeichert werden, das einen Computer, eine andere Vorrichtung, die programmierbare Daten verarbeitet, oder andere Einheiten so steuern kann, dass sie auf eine bestimmte Weise funktionieren, sodass die in dem computerlesbaren Medium gespeicherten Anweisungen einen Herstellungsgegenstand erzeugen, einschließlich Anweisungen, die die in dem Ablaufplan und/oder dem Block oder den Blöcken des Blockschaubilds angegebene Funktion/Handlung umsetzen.
  • Die Computerprogrammanweisungen können auch auf einen Computer, eine andere Vorrichtung, die programmierbare Daten verarbeitet, oder andere Einheiten geladen werden, um die Ausführung einer Serie von Arbeitsschritten auf dem Computer, einer anderen Vorrichtung, die programmierbare Daten ausführt, oder anderen Einheiten zu veranlassen, um einen über den Computer umgesetzten Prozess zu erzeugen, sodass die Anweisungen, die auf dem Computer oder einer anderen programmierbaren Vorrichtung ausgeführt werden, Prozesse zum Umsetzen der Funktionen/Handlungen bereitstellen, die in dem Ablaufplan und/oder dem Block oder den Blöcken des Blockschaubilds angegeben sind.
  • Der Ablaufplan und die Blockschaubilder in den Figuren veranschaulichen die Architektur, die Funktionalität und den Betrieb von möglichen Umsetzungen von Systemen, Verfahren und Computerprogrammprodukten gemäß verschiedenen Ausführungsformen der vorliegenden Erfindung. Diesbezüglich kann jeder Block in dem Ablaufplan oder in den Blockschaubildern ein Modul, ein Segment oder einen Codeabschnitt darstellen, der eine oder mehrere ausführbare Anweisungen zum Umsetzen der angegebenen logischen Funktion(en) aufweist. Es ist ebenfalls anzumerken, dass in einigen alternativen Umsetzungen die in dem Block angegebenen Funktionen in einer anderen Reihenfolge auftreten können als in den Figuren angegeben. Zum Beispiel können zwei nacheinander gezeigte Blöcke tatsächlich im Wesentlichen parallel ausgeführt werden, oder die Blöcke können manchmal in der umgekehrten Reihenfolge ausgeführt werden, was von der beteiligten Funktionalität abhängt. Es wird ebenfalls angemerkt, dass jeder Block in den Blockschaubildern und/oder in der Veranschaulichung des Ablaufplans und Kombinationen von Blöcken in den Blockschaubildern und/oder der Veranschaulichung des Ablaufplans durch spezielle Systeme auf der Grundlage von Hardware, die die angegebenen Funktionen oder Handlungen ausführen, oder Kombinationen von spezieller Hardware und Computeranweisungen umgesetzt werden können.

Claims (11)

  1. Durch einen Computer implementiertes Verfahren für ein Zugreifen auf Arbeitsspeicher-Speicherorte, wobei das Verfahren aufweist: Umsetzen einer virtuellen Adresse (202) durch einen Prozessor (102), um einen ersten Seitentabelleneintrag (PTE) in einer Seitentabelle zu suchen, wobei der erste PTE eine Markierung und eine Adresse einer Hauptspeicherseite aufweist, wobei der erste PTE auf die erste Seite verweist; Bestimmen (706) mithilfe des Prozessors (102), ob in dem ersten PTE die Markierung gesetzt ist; Identifizieren (710) einer großen Seitengröße einer großen Seite, die dem ersten PTE zugehörig ist, auf Grundlage des Bestimmens, dass die Markierung in dem ersten PTE gesetzt ist, wobei die große Seite aus zusammenhängenden Hauptspeicherseiten besteht und das Identifizieren ein Bestimmen der Größe der großen Seite basierend auf Inhalten einen Konfigurationsregisters aufweist; Bestimmen eines zweiten PTE, der sich von dem ersten PTE unterscheidet und der auf eine zweite Seite verweist, die die erste Seite fortsetzt, und die einer Startadresse der großen Seite auf Grundlage des Bestimmens aufweist, dass die Markierung in dem ersten PTE gesetzt ist, wobei die große Seite die erste Seite und die zweite Seite aufweist; Erhalten eine Startadresse des zweiten PTE; und Verwenden der virtuellen Adresse (207) für ein Indexieren in der großen Seite an der ursprünglichen Adresse, um auf einen Hauptspeicher (203) zuzugreifen.
  2. Verfahren nach Anspruch 1, wobei ein Bereich von virtuellen Adressen (202) entsprechende PTEs identifiziert, die den ersten PTE aufweisen, wobei jeder PTE der entsprechenden PTEs so konfiguriert ist, dass er eine entsprechende Hauptspeicherseite adressiert, wobei alle der Hauptspeicherseiten zusammenhängend sind.
  3. Verfahren nach Anspruch 1, wobei das Verfahren des Weiteren aufweist: Speichern von virtuellen Adressinformationen und einer Adresse für ein Suchen nach der großen Seite in einem Adressumsetzpuffer (TLB) (254); und Verwenden des TLB (254) für ein Umsetzen von virtuellen Adressen (202) in große Seiten.
  4. Verfahren nach Anspruch 1, wobei die große Seite auf Grundlage von Markierungs-Bits in einer Mehrzahl von zusammenhängenden PTEs bestimmt wird, die einem entsprechenden Block von virtuellen Adressen (202) an einer Blockgrenze zugehörig sind.
  5. Verfahren nach Anspruch 1, wobei jeder der Mehrzahl der PTEs, die der großen Seite entsprechen, eine entsprechende Adresse einer entsprechenden zugeordneten Hauptspeicherseite aufweist, und wobei die entsprechenden Seiten der Mehrzahl der PTEs zusammenhängend sind.
  6. Verfahren nach Anspruch 1, wobei das Verfahren des Weiteren enthält: Identifizieren einer einzelnen Seite, die dem ersten PTE zugehörig ist, auf Grundlage des Bestimmens, dass die Markierung nicht in dem ersten PTE gesetzt ist; und Verwenden der virtuellen Adresse (202) für ein Indexieren in der einzelnen Seite, um auf den Hauptspeicher (203) zuzugreifen.
  7. Das Verfahren gemäß Anspruch 1, wobei die Umsetzung entweder jedes Verwenden einer hierarchischen Gruppe von Umsetzungstabellen (304) aufweist, um den PTE zu lokalisieren, oder ein Verwenden einer Hashfunktion, um eine Gruppe von PTEs zu lokalisieren, wobei die Gruppe von Seitentabelleneinträgen den PTE aufweist, der der virtuellen entspricht.
  8. Das Verfahren gemäß Anspruch 1, wobei die Bestimmung der Startadresse der großen Seite ein Ausführen eine Logikoperation aufweist, die die große Seite, die Adresse der Hauptspeicherseite und die virtuelle Adresse als Eingabe aufweist.
  9. Das Verfahren gemäß Anspruch 1, wobei der zweite PTE ein erstes physisches Adressfeld aufweist, welches die Startadresse der großen Seite speichert, und wobei der erste PTE ein zweites physisches Adressfeld aufweist, welches zusätzliche Seiteneigenschaften der großen Seite speichert, die die erste und die zweite Seite aufweist, und wobei die Startadresse in dem ersten physischen Adressfeld einen anderen Wert aufweist als die zusätzliche Seiteneigenschaften in dem zweiten physischen Adressfeld.
  10. Computersystem für ein Zugreifen auf einen Arbeitsspeicher-Speicherort, wobei das System aufweist: einen Arbeitsspeicher (203); und einen Prozessor (102), der mit dem Arbeitsspeicher (203 verbunden ist, wobei das Computersystem so konfiguriert ist, dass es das Verfahren gemäß einem der Ansprüche 1 bis 9 ausführt.
  11. Computerprogrammprodukt (1100) für ein Verwalten von Seitentabelleneinträgen in einem Verarbeitungssystem (100), wobei das Computerprogrammprodukt (1100) aufweist: ein konkretes Speichermedium (1102), das von einer Verarbeitungsschaltung lesbar ist und Anweisungen zur Ausführung durch die Verarbeitungsschaltung speichert, um das Verfahren gemäß einem der Ansprüche 1 bis 9 auszuführen.
DE112013002934.0T 2012-06-14 2013-06-12 Verwalten eines Zugreifens auf Seitentabelleneinträge Active DE112013002934B4 (de)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US13/517,763 US9092359B2 (en) 2012-06-14 2012-06-14 Identification and consolidation of page table entries
US13/517,763 2012-06-14
PCT/IB2013/054806 WO2013186717A1 (en) 2012-06-14 2013-06-12 Managing accessing page table entries

Publications (2)

Publication Number Publication Date
DE112013002934T5 DE112013002934T5 (de) 2015-03-19
DE112013002934B4 true DE112013002934B4 (de) 2022-07-07

Family

ID=49757045

Family Applications (1)

Application Number Title Priority Date Filing Date
DE112013002934.0T Active DE112013002934B4 (de) 2012-06-14 2013-06-12 Verwalten eines Zugreifens auf Seitentabelleneinträge

Country Status (4)

Country Link
US (2) US9092359B2 (de)
DE (1) DE112013002934B4 (de)
GB (1) GB2519015B (de)
WO (1) WO2013186717A1 (de)

Families Citing this family (60)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9405672B2 (en) * 2013-06-25 2016-08-02 Seagate Technology Llc Map recycling acceleration
TWI489279B (zh) * 2013-11-27 2015-06-21 Realtek Semiconductor Corp 虛擬實體位址轉換系統以及虛擬實體位址轉換系統的管理方法
US9507726B2 (en) 2014-04-25 2016-11-29 Apple Inc. GPU shared virtual memory working set management
US9563571B2 (en) 2014-04-25 2017-02-07 Apple Inc. Intelligent GPU memory pre-fetching and GPU translation lookaside buffer management
US9678827B2 (en) * 2014-10-07 2017-06-13 SK Hynix Inc. Access counts for performing data inspection operations in data storage device
KR20160042224A (ko) * 2014-10-07 2016-04-19 에스케이하이닉스 주식회사 데이터 저장 장치 및 그것의 동작 방법
WO2016175814A1 (en) 2015-04-30 2016-11-03 Hewlett Packard Enterprise Development Lp Mapping apertures of different sizes
WO2016204766A1 (en) * 2015-06-18 2016-12-22 Hewlett Packard Enterprise Development Lp Transmitting contents of an operation field to a media controller
US9864700B1 (en) 2016-08-17 2018-01-09 Advanced Micro Devices, Inc. Method and apparatus for power reduction in a multi-threaded mode
US11947489B2 (en) 2017-09-05 2024-04-02 Robin Systems, Inc. Creating snapshots of a storage volume in a distributed storage system
US10452267B2 (en) * 2017-09-13 2019-10-22 Robin Systems, Inc. Storage scheme for a distributed storage system
US10579276B2 (en) 2017-09-13 2020-03-03 Robin Systems, Inc. Storage scheme for a distributed storage system
US10430105B2 (en) 2017-09-13 2019-10-01 Robin Systems, Inc. Storage scheme for a distributed storage system
US10534549B2 (en) 2017-09-19 2020-01-14 Robin Systems, Inc. Maintaining consistency among copies of a logical storage volume in a distributed storage system
US10423344B2 (en) 2017-09-19 2019-09-24 Robin Systems, Inc. Storage scheme for a distributed storage system
US10846001B2 (en) 2017-11-08 2020-11-24 Robin Systems, Inc. Allocating storage requirements in a distributed storage system
US10782887B2 (en) 2017-11-08 2020-09-22 Robin Systems, Inc. Window-based prority tagging of IOPs in a distributed storage system
US10430292B2 (en) 2017-12-19 2019-10-01 Robin Systems, Inc. Snapshot deletion in a distributed storage system
US10452308B2 (en) 2017-12-19 2019-10-22 Robin Systems, Inc. Encoding tags for metadata entries in a storage system
US10430110B2 (en) 2017-12-19 2019-10-01 Robin Systems, Inc. Implementing a hybrid storage node in a distributed storage system
US10628235B2 (en) 2018-01-11 2020-04-21 Robin Systems, Inc. Accessing log files of a distributed computing system using a simulated file system
US10642697B2 (en) 2018-01-11 2020-05-05 Robin Systems, Inc. Implementing containers for a stateful application in a distributed computing system
US11392363B2 (en) 2018-01-11 2022-07-19 Robin Systems, Inc. Implementing application entrypoints with containers of a bundled application
US11582168B2 (en) 2018-01-11 2023-02-14 Robin Systems, Inc. Fenced clone applications
US11099937B2 (en) 2018-01-11 2021-08-24 Robin Systems, Inc. Implementing clone snapshots in a distributed storage system
US11748203B2 (en) 2018-01-11 2023-09-05 Robin Systems, Inc. Multi-role application orchestration in a distributed storage system
US10896102B2 (en) 2018-01-11 2021-01-19 Robin Systems, Inc. Implementing secure communication in a distributed computing system
US10642694B2 (en) 2018-01-12 2020-05-05 Robin Systems, Inc. Monitoring containers in a distributed computing system
US10579364B2 (en) 2018-01-12 2020-03-03 Robin Systems, Inc. Upgrading bundled applications in a distributed computing system
US10845997B2 (en) 2018-01-12 2020-11-24 Robin Systems, Inc. Job manager for deploying a bundled application
US10846137B2 (en) 2018-01-12 2020-11-24 Robin Systems, Inc. Dynamic adjustment of application resources in a distributed computing system
US10976938B2 (en) 2018-07-30 2021-04-13 Robin Systems, Inc. Block map cache
US11023328B2 (en) 2018-07-30 2021-06-01 Robin Systems, Inc. Redo log for append only storage scheme
US10599622B2 (en) 2018-07-31 2020-03-24 Robin Systems, Inc. Implementing storage volumes over multiple tiers
US10817380B2 (en) 2018-07-31 2020-10-27 Robin Systems, Inc. Implementing affinity and anti-affinity constraints in a bundled application
US10684957B2 (en) * 2018-08-23 2020-06-16 Advanced Micro Devices, Inc. Apparatus and method for neighborhood-aware virtual to physical address translations
US11954026B1 (en) * 2018-09-18 2024-04-09 Advanced Micro Devices, Inc. Paging hierarchies for extended page tables and extended page attributes
US11036439B2 (en) 2018-10-22 2021-06-15 Robin Systems, Inc. Automated management of bundled applications
US10908848B2 (en) 2018-10-22 2021-02-02 Robin Systems, Inc. Automated management of bundled applications
US10620871B1 (en) 2018-11-15 2020-04-14 Robin Systems, Inc. Storage scheme for a distributed storage system
US10649778B1 (en) 2018-12-04 2020-05-12 International Business Machines Corporation Performance optimized congruence class matching for multiple concurrent radix translations
US11086725B2 (en) 2019-03-25 2021-08-10 Robin Systems, Inc. Orchestration of heterogeneous multi-role applications
US11256434B2 (en) 2019-04-17 2022-02-22 Robin Systems, Inc. Data de-duplication
US10831387B1 (en) 2019-05-02 2020-11-10 Robin Systems, Inc. Snapshot reservations in a distributed storage system
US10877684B2 (en) 2019-05-15 2020-12-29 Robin Systems, Inc. Changing a distributed storage volume from non-replicated to replicated
US11334494B2 (en) * 2019-05-24 2022-05-17 Texas Instruments Incorporated Write merging on stores with different tags
US11226847B2 (en) 2019-08-29 2022-01-18 Robin Systems, Inc. Implementing an application manifest in a node-specific manner using an intent-based orchestrator
US11520650B2 (en) 2019-09-05 2022-12-06 Robin Systems, Inc. Performing root cause analysis in a multi-role application
US11249851B2 (en) 2019-09-05 2022-02-15 Robin Systems, Inc. Creating snapshots of a storage volume in a distributed storage system
US11347684B2 (en) 2019-10-04 2022-05-31 Robin Systems, Inc. Rolling back KUBERNETES applications including custom resources
US11113158B2 (en) 2019-10-04 2021-09-07 Robin Systems, Inc. Rolling back kubernetes applications
US11403188B2 (en) 2019-12-04 2022-08-02 Robin Systems, Inc. Operation-level consistency points and rollback
US11108638B1 (en) 2020-06-08 2021-08-31 Robin Systems, Inc. Health monitoring of automatically deployed and managed network pipelines
US11528186B2 (en) 2020-06-16 2022-12-13 Robin Systems, Inc. Automated initialization of bare metal servers
US11740980B2 (en) 2020-09-22 2023-08-29 Robin Systems, Inc. Managing snapshot metadata following backup
US11743188B2 (en) 2020-10-01 2023-08-29 Robin Systems, Inc. Check-in monitoring for workflows
US11456914B2 (en) 2020-10-07 2022-09-27 Robin Systems, Inc. Implementing affinity and anti-affinity with KUBERNETES
US11271895B1 (en) 2020-10-07 2022-03-08 Robin Systems, Inc. Implementing advanced networking capabilities using helm charts
US11750451B2 (en) 2020-11-04 2023-09-05 Robin Systems, Inc. Batch manager for complex workflows
US11556361B2 (en) 2020-12-09 2023-01-17 Robin Systems, Inc. Monitoring and managing of complex multi-role applications

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0690386A1 (de) 1994-04-04 1996-01-03 International Business Machines Corporation Adressübersetzer und Verfahren zu seinem Betrieb
US20090019253A1 (en) 2007-07-12 2009-01-15 Brian Stecher Processing system implementing variable page size memory organization
US20110225389A1 (en) 2010-03-15 2011-09-15 Arm Limited Translation table control
US8103851B2 (en) 2008-01-11 2012-01-24 International Business Machines Corporation Dynamic address translation with translation table entry format control for indentifying format of the translation table entry

Family Cites Families (57)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US3781808A (en) 1972-10-17 1973-12-25 Ibm Virtual memory system
US4914577A (en) 1987-07-16 1990-04-03 Icon International, Inc. Dynamic memory management system and method
JP2635058B2 (ja) 1987-11-11 1997-07-30 株式会社日立製作所 アドレス変換方式
US5125086A (en) * 1989-06-29 1992-06-23 Digital Equipment Corporation Virtual memory paging apparatus with variable size in-page clusters
US5247634A (en) * 1990-03-20 1993-09-21 Hewlett-Packard Company Method of managing memory allocation by association of memory blocks with a tree structure
US5282274A (en) * 1990-05-24 1994-01-25 International Business Machines Corporation Translation of multiple virtual pages upon a TLB miss
CA2045789A1 (en) * 1990-06-29 1991-12-30 Richard Lee Sites Granularity hint for translation buffer in high performance processor
US5222222A (en) 1990-12-18 1993-06-22 Sun Microsystems, Inc. Apparatus and method for a space saving translation lookaside buffer for content addressable memory
GB2251102B (en) 1990-12-21 1995-03-15 Sun Microsystems Inc Translation lookaside buffer
EP0508577A1 (de) 1991-03-13 1992-10-14 International Business Machines Corporation Adressübersetzungseinrichtung
US5617554A (en) 1992-02-10 1997-04-01 Intel Corporation Physical address size selection and page size selection in an address translator
US5465337A (en) 1992-08-13 1995-11-07 Sun Microsystems, Inc. Method and apparatus for a memory management unit supporting multiple page sizes
US5790979A (en) 1993-05-10 1998-08-04 Liedtke; Jochen Translation method in which page-table progression is dynamically determined by guard-bit sequences
US5479627A (en) 1993-09-08 1995-12-26 Sun Microsystems, Inc. Virtual address to physical address translation cache that supports multiple page sizes
US5765209A (en) 1993-09-23 1998-06-09 Hewlett-Packard Co. Method and apparatus to eliminate redundant mapping in a TLB utilizing variable sized pages
US5586283A (en) 1993-10-07 1996-12-17 Sun Microsystems, Inc. Method and apparatus for the reduction of tablewalk latencies in a translation look aside buffer
US5526504A (en) 1993-12-15 1996-06-11 Silicon Graphics, Inc. Variable page size translation lookaside buffer
US5907867A (en) 1994-09-09 1999-05-25 Hitachi, Ltd. Translation lookaside buffer supporting multiple page sizes
US5963984A (en) 1994-11-08 1999-10-05 National Semiconductor Corporation Address translation unit employing programmable page size
US5774135A (en) 1996-11-05 1998-06-30 Vlsi, Technology, Inc. Non-contiguous memory location addressing scheme
US5930830A (en) * 1997-01-13 1999-07-27 International Business Machines Corporation System and method for concatenating discontiguous memory pages
US5946679A (en) 1997-07-31 1999-08-31 Torrent Networking Technologies, Corp. System and method for locating a route in a route table using hashing and compressed radix tree searching
US6804766B1 (en) * 1997-11-12 2004-10-12 Hewlett-Packard Development Company, L.P. Method for managing pages of a designated memory object according to selected memory management policies
US6275912B1 (en) * 1998-06-30 2001-08-14 Microsoft Corporation Method and system for storing data items to a storage device
US6185570B1 (en) 1998-07-01 2001-02-06 Nortel Networks Limited Method and apparatus for performing radix lookups using transition bits and fields in transition tables
US7149982B1 (en) 1999-12-30 2006-12-12 Microsoft Corporation System and method for saving user-specified views of internet web page displays
JP3719897B2 (ja) 2000-02-29 2005-11-24 富士通株式会社 データ転送装置、データ転送方法及び記録媒体
JP2002132581A (ja) 2000-10-25 2002-05-10 Mitsubishi Electric Corp メモリ管理機構
US7003647B2 (en) * 2003-04-24 2006-02-21 International Business Machines Corporation Method, apparatus and computer program product for dynamically minimizing translation lookaside buffer entries across contiguous memory
US7149872B2 (en) 2003-07-10 2006-12-12 Transmeta Corporation System and method for identifying TLB entries associated with a physical address of a specified range
US7469324B2 (en) 2005-01-07 2008-12-23 Azul Systems, Inc. System and method for concurrent compacting self pacing garbage collection using loaded value and access barriers
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
US7278008B1 (en) 2004-01-30 2007-10-02 Nvidia Corporation Virtual address translation system with caching of variable-range translation clusters
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
US8843727B2 (en) 2004-09-30 2014-09-23 Intel Corporation Performance enhancement of address translation using translation tables covering large address spaces
US7278006B2 (en) * 2004-12-30 2007-10-02 Intel Corporation Reducing memory fragmentation
US7370174B2 (en) * 2005-01-05 2008-05-06 Intel Corporation Method, system, and program for addressing pages of memory by an I/O device
US7366869B2 (en) * 2005-03-17 2008-04-29 Qualcomm Incorporated Method and system for optimizing translation lookaside buffer entries
US7447869B2 (en) 2005-04-07 2008-11-04 Ati Technologies, Inc. Method and apparatus for fragment processing in a virtual memory system
US20060253682A1 (en) * 2005-05-05 2006-11-09 International Business Machines Corporation Managing computer memory in a computing environment with dynamic logical partitioning
US7533228B1 (en) * 2005-05-27 2009-05-12 Sun Microsystems, Inc. Two-pass sliding compaction
US7412466B1 (en) * 2005-05-31 2008-08-12 Sun Microsystems, Inc. Offset-based forward address calculation in a sliding-compaction garbage collector
US7389395B1 (en) * 2005-06-26 2008-06-17 Sun Microsystems, Inc. Split-reference, two-pass mark-compaction
US7330958B2 (en) 2005-09-22 2008-02-12 International Business Machines Corporation Method and apparatus for translating a virtual address to a real address using blocks of contiguous page table entries
US7480782B2 (en) * 2006-06-14 2009-01-20 Sun Microsystems, Inc. Reference-updating using per-chunk referenced-address ranges in a compacting garbage collector
US9311227B2 (en) * 2006-10-31 2016-04-12 Hewlett Packard Enterprise Development Lp Memory management
US7779214B2 (en) 2007-07-18 2010-08-17 Qnx Software Systems Gmbh & Co. Kg Processing system having a supported page size information register
US8046597B2 (en) * 2007-08-14 2011-10-25 Dell Products L.P. System and method for managing storage device capacity use
US7917725B2 (en) 2007-09-11 2011-03-29 QNX Software Systems GmbH & Co., KG Processing system implementing variable page size memory organization using a multiple page per entry translation lookaside buffer
US8037278B2 (en) 2008-01-11 2011-10-11 International Business Machines Corporation Dynamic address translation with format control
US8301863B2 (en) 2008-11-17 2012-10-30 International Business Machines Corporation Recursive logical partition real memory map
US8195917B2 (en) 2009-07-01 2012-06-05 Advanced Micro Devices, Inc. Extended page size using aggregated small pages
US20110238946A1 (en) 2010-03-24 2011-09-29 International Business Machines Corporation Data Reorganization through Hardware-Supported Intermediate Addresses
US8862859B2 (en) 2010-05-07 2014-10-14 International Business Machines Corporation Efficient support of multiple page size segments
US8745307B2 (en) 2010-05-13 2014-06-03 International Business Machines Corporation Multiple page size segment encoding
US9811472B2 (en) 2012-06-14 2017-11-07 International Business Machines Corporation Radix table translation of memory
US9122508B2 (en) 2012-06-15 2015-09-01 International Business Machines Corporation Real time measurement of I/O interrupt delay times by hypervisor by selectively starting and/or stopping corresponding LPARs

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0690386A1 (de) 1994-04-04 1996-01-03 International Business Machines Corporation Adressübersetzer und Verfahren zu seinem Betrieb
US20090019253A1 (en) 2007-07-12 2009-01-15 Brian Stecher Processing system implementing variable page size memory organization
US8103851B2 (en) 2008-01-11 2012-01-24 International Business Machines Corporation Dynamic address translation with translation table entry format control for indentifying format of the translation table entry
US20110225389A1 (en) 2010-03-15 2011-09-15 Arm Limited Translation table control

Also Published As

Publication number Publication date
US9086988B2 (en) 2015-07-21
US9092359B2 (en) 2015-07-28
WO2013186717A1 (en) 2013-12-19
GB201500539D0 (en) 2015-02-25
US20130339653A1 (en) 2013-12-19
GB2519015A (en) 2015-04-08
GB2519015B (en) 2020-03-11
DE112013002934T5 (de) 2015-03-19
US20130339659A1 (en) 2013-12-19

Similar Documents

Publication Publication Date Title
DE112013002934B4 (de) Verwalten eines Zugreifens auf Seitentabelleneinträge
DE112013002938B4 (de) Übersetzen der Basistabelle von Speichern
DE602004011018T2 (de) Ungültigkeitserklärung eines speichers und löschen von puffereinträgen
DE102020104701B4 (de) System zur Lokalisierung von Cachedaten
DE102014014076A1 (de) Reduzierte Adressenkonvertierung mit mehreren Seitengrößen
US20140032875A1 (en) Physical Memory Forensics System and Method
US10191853B2 (en) Apparatus and method for maintaining address translation data within an address translation cache
DE69738101T2 (de) Verwaltung des Zugangs zu Objekten mit Hilfe von Referenzen mit drei Zuständen
DE112013001751T5 (de) Hybride Adressumsetzung
DE112018003032T5 (de) Cachestruktur, die ein logisches verzeichnis verwendet
DE102008025476A1 (de) Übersetzung einer virtuellen Adresse in eine physikalische Adresse mit Unterstützung von Seitenattributen
DE112013004397T5 (de) Auswählbare Adressumsetzungsmechanismen
DE112018002028T5 (de) Umsetzungsunterstützung für einen virtuellen cache
DE112018002032T5 (de) Gemeinsames nutzen von virtuellen und realen übersetzungen in einem virtuellen cache
DE102021116489A1 (de) Verwaltung von Prefetch-Anfragen auf Basis von Stream-Informationen für zuvor erkannte Streams
US20080270739A1 (en) Management of copy-on-write fault
DE112013003006B4 (de) Verwalten von Seitentabelleneinträgen in einem Verarbeitungssystem
DE102022104654A1 (de) Verfahren und einrichtung zum aktivieren eines cache (devpic) zum speichern von prozessspezifischen informationen innerhalb von vorrichtungen, die adressübersetzungsdienst (ats) unterstützen
US6990551B2 (en) System and method for employing a process identifier to minimize aliasing in a linear-addressed cache
US20110040950A1 (en) Translation look-aside buffer
DE112020005106T5 (de) Verfahren und systeme zum umsetzen von virtuellen adressen in einem auf virtuellem speicher beruhenden system
Rosenberg et al. Addressing mechanisms for large virtual memories
DE102013022166B4 (de) Seitenzustandsverzeichnis zur verwaltung eines vereinheitlichten virtuellen speichers
DE102011055097A1 (de) Speichersystem und damit verbundenes Betriebsverfahren
DE102013022168B4 (de) Migrationsschema für vereinheitlichtes virtuelles Speichersystem

Legal Events

Date Code Title Description
R012 Request for examination validly filed
R082 Change of representative

Representative=s name: LIFETECH IP SPIES & BEHRNDT PATENTANWAELTE PAR, DE

Representative=s name: SPIES & BEHRNDT PATENTANWAELTE PARTG MBB, DE

R082 Change of representative

Representative=s name: SPIES & BEHRNDT PATENTANWAELTE PARTG MBB, DE

R016 Response to examination communication
R018 Grant decision by examination section/examining division
R084 Declaration of willingness to licence
R020 Patent grant now final