DE112013002938B4 - Übersetzen der Basistabelle von Speichern - Google Patents

Übersetzen der Basistabelle von Speichern Download PDF

Info

Publication number
DE112013002938B4
DE112013002938B4 DE112013002938.3T DE112013002938T DE112013002938B4 DE 112013002938 B4 DE112013002938 B4 DE 112013002938B4 DE 112013002938 T DE112013002938 T DE 112013002938T DE 112013002938 B4 DE112013002938 B4 DE 112013002938B4
Authority
DE
Germany
Prior art keywords
address
entry
esid
slb
effective address
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
DE112013002938.3T
Other languages
English (en)
Other versions
DE112013002938T5 (de
Inventor
Joseph c/o IBM Corporation Bybell Anthony
Karl c/o IBM Corporation Gschwind Michael
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 DE112013002938T5 publication Critical patent/DE112013002938T5/de
Application granted granted Critical
Publication of DE112013002938B4 publication Critical patent/DE112013002938B4/de
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • 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/1009Address translation using page tables, e.g. page table structures
    • G06F12/1018Address translation using page tables, e.g. page table structures involving hashing techniques, e.g. inverted page tables
    • 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
    • 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]
    • G06F12/1036Address translation using associative or pseudo-associative address translation means, e.g. translation look-aside buffer [TLB] for multiple virtual address spaces, e.g. segmentation

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

Verfahren zum Zugreifen auf einen Speicherplatz in einem Datenverarbeitungssystem (700), wobei das Verfahren aufweist:Empfangen (1002) einer Anforderung zum Zugreifen auf einen gewünschten Speicherblock, der sich in einem einer Vielzahl von voneinander getrennten virtuellen Speicherbereichen (A, B) befindet, wobei die Anforderung eine effektive Adresse (104; 107; 208; 512; 802), die eine effektive Segmentkennung (ESID) (106; 804) enthält, und eine lineare Adresse (807) aufweist, wobei die lineare Adresse einen höchstwertigen Teil und einen Byte-Index aufweist;Auffinden (1004), durch einen Prozessor (702), eines Eintrags, der der effektiven Adresse entspricht, in einem Segment-Umsetzpuffer (SLB) (112; 812), der mehrere Einträge (SLBE0 ... SLBEn) enthält, die Basisseitentabellen-Zeiger (RPTPs) (818) enthalten, die der Vielzahl von voneinander getrennten virtuellen Speicherbereichen entsprechen, wobei das Auffinden des Eintrags, der der effektiven Adresse entspricht, in dem SLB umfasst:Auswählen (1102) eines ersten gültigen Eintrags in dem SLB;Entnehmen (1104) einer Segmentgröße (820) aus dem ersten gültigen Eintrag;Berechnen (1106) einer ESID-Maske des ersten gültigen Eintrags auf der Grundlage der extrahierten Segmentgröße;Ermitteln (1108), ob eine ESID des ersten gültigen Eintrags mit der ESID der effektiven Adresse auf der Grundlage der ESID-Maske übereinstimmt;auf der Grundlage der Ermittlung (1108), dass die ESID-Maske des ersten gültigen Eintrags mit der ESID der effektiven Adresse übereinstimmt, Ermitteln, dass der erste gültige Eintrag der aufgefundene Eintrag, der der effektiven Adresse entspricht, in dem SLB ist; undauf der Grundlage der Ermittlung (1108), dass die ESID-Maske des ersten gültigen Eintrags nicht mit der ESID der effektiven Adresse übereinstimmt, Ermitteln, dass der erste gültige Eintrag nicht der Eintrag, der der effektiven Adresse entspricht, in dem SLB ist, und Auswählen (1109) eines nächsten gültigen Eintrags in dem SLB; undAusführen folgender Schritte auf der Grundlage des aufgefundenen Eintrags, der der effektiven Adresse entspricht, in dem SLB, der einen RPTP enthält, der dem einen der Vielzahl von voneinander getrennten virtuellen Speicherbereichen entspricht:Verwenden (1008) des RPTP (801) aus dem aufgefundenen Eintrag zum Auffinden einer Übersetzungstabelle (906, 908, 910, 912) einer Hierarchie von Übersetzungstabellen (204);Verwenden (1008) der gefundenen Übersetzungstabelle zum Übersetzen des höchstwertigen Teils der linearen Adresse, um eine Adresse (904) eines Speicherblocks zu erhalten; undDurchführen (1010) des angeforderten Zugriffs auf den gewünschten Speicherblock auf der Grundlage der erhaltenen Adresse.

Description

  • TECHNISCHES GEBIET
  • Die vorliegende Erfindung betrifft Verwalten von Speicherseitentabellen in einem Datenverarbeitungssystem und insbesondere Übersetzen der Basistabelle von Speicherbereichen in einem Datenverarbeitungssystem.
  • HINTERGRUND
  • In Computersysteme werden verschiedene Adressübersetzungsmechanismen verwendet. In PowerPC® von IBM wird eine effektive Adresse zum Beispiel mittels Einträgen einer Seitentabelle, die durch Auswählen eines der effektiven Adresse zugehörigen Eintrags einer ESID-Tabelle gefunden werden, und unter Verwendung des Eintrags zum Auffinden einer Gruppe von Einträgen der Seitentabelle mittels eines Hash-Algorithmus in eine entsprechende reale Adresse übersetzt. Gemäß einem anderen Beispiel wird in zArchitecture®, ebenfalls von IBM, eine effektive Adresse mittels einer Hierarchie von Umsetzungstabellen in eine entsprechende reale Adresse übersetzt, wobei Übersetzungstabellen durch einen Teil der effektiven Adresse indexiert sind, um die Adresse der nächsten Umsetzungstabelle in der Hierarchie zu finden, bis eine reale (oder absolute) Adresse erhalten wird. Somit wird bei der Adressübersetzung in PowerPC eine effektive 64-Bit-Adresse (eines großen Speicherbereichs (264 Byte)) in nur zwei Ebenen (ein Eintrag der SLB-Tabelle und ein Eintrag der Seitentabelle) zugeordnet, wohingegen bei der hierarchischen Adressübersetzung in zArchitecture zum Übersetzen eines großen Bereichs effektiver Adressen (264 Byte) 5 Tabellen erforderlich sind. Beide Mechanismen zur Adressumsetzung bieten Vorteile für entsprechende Betriebssysteme.
  • In der EP 0 690 386 A1 vom 03.01.1996 mit dem Titel „Address translator and method of operation“, wird eine CAM/SRAM Struktur (44) zur Adressübersetzung dargelegt, die mit einem Segmentierungs/Paging-Adressierungsschema kompatibel ist, jedoch nur einen einzigen Suchschritt erfordert. Jeder Eintrag in dem Programm zum Übersetzen von effektiven in reale Adressen (ERAT) weist zwei CAM-Felder (ESID, EPI) auf, die unabhängig voneinander eine eingegebene Segmentkennung und eine eingegebene Seitenkennung mit einer gespeicherten Segmentkennung bzw. einer gespeicherten Seitenkennung vergleichen. Das ERAT gibt ein gespeichertes Feld (DATA) einer realen Adresse aus, das einem Paar eines gespeicherten Segments und einer gespeicherten Seite zugehörig ist, wenn beide Vergleiche identisch sind. Das ERAT kann gespeicherte Übersetzungen auf der Grundlage der Segment- oder Seitengliederung annullieren, indem es während einer Annullierungsoperation eine Übereinstimmung für das Segment- beziehungsweise das Seiten-CAM-Feld fordert.
  • In der US 8 103 851 B2 vom 24.01.2012 mit dem Titel „Dynamic address translation with translation table entry format control for identifying format of the translation table entry“, die durch Bezugnahme hierin aufgenommen ist, wird eine verbesserte Einrichtung zur dynamischen Adressübersetzung dargelegt. Gemäß einer Ausführungsform werden eine zu übersetzende virtuelle Adresse und eine anfängliche Ursprungsadresse einer Übersetzungstabelle der Hierarchie von Übersetzungstabellen erhalten. Ein Indexteil der virtuellen Adresse dient als Verweis auf einen Eintrag in der Übersetzungstabelle. Wenn ein in dem Eintrag der Übersetzungstabelle enthaltenes Formatsteuerungsfeld aktiviert ist, enthält der Tabelleneintrag eine Segmentadresse eines großen Datenblocks mit einer Größe von mindestens 1 MByte. Die Segmentadresse wird dann mit einem Relativzeiger der virtuellen Adresse verknüpft, um die übersetzte Adresse eines kleinen Datenblocks der Größe 4 KByte im Arbeitsspeicher oder Speicher zu bilden.
  • Die US 2007 / 0 079 106 A1 betrifft einen Seitentabellenmechanismus, der virtuelle Adressen in reale Adressen übersetzt. In einem ersten Aspekt sind die Seitentabelleneinträge in gleich großen Blöcken enthalten, wobei die Einträge innerhalb jedes Blocks fortlaufenden Seiten des virtuellen Adressraums entsprechen. Vorzugsweise ist der gemeinsame höherwertige Teil der virtuellen Adresse in Segmenten enthalten, die auf mehrere Seitentabelleneinträge des Blocks verteilt sind. In einem zweiten Aspekt indiziert die virtuelle Adresse eine Definitionsstruktur in Form eines Binärbaums. Die Dekodierlogik durchläuft einen durch die Definitionsstruktur definierten Binärbaum, indem sie selektive Bits der virtuellen Adresse testet, um ein Blatt des Binärbaums zu erreichen, das den Ort der Daten definiert, die die reale Adresse definieren.
  • Die US 2011 / 0 225 389 A1 betrifft eine Vorrichtung zum Verarbeiten von Daten, die Folgendes umfasst: eine Speicheradressenumsetzungsschaltungsanordnung, die konfiguriert ist, den Vorgang eines Seitentabellendurchlaufs von oben nach unten durchzuführen, um unter Verwendung von Umsetzungsdaten, die in einer Hierarchie von Umsetzungstabellen gespeichert sind, eine virtuelle Speicheradresse in eine physikalische Speicheradresse umzusetzen; wobei die Umsetzungsdaten Umsetzungen zwischen Seiten mit 2N zusammenhängenden Bytes von virtuellen Speicheradressen und den zugehörigen Seiten mit 2N zusammenhängenden Bytes von physikalischen Speicheradressen vorgeben, wobei N eine positive ganze Zahl ist; wobei die Hierarchie der Umsetzungstabellen Umsetzungstabellen in der Größe von 2N zusammenhängenden Bytes umfasst, so dass eine vollständige Umsetzungstabelle auf einer Seite des physikalischen Speichers gespeichert wird; wobei die Speicheradressenumsetzungsschaltungsanordnung in Reaktion auf eine Seitengrößenvariable, die einen aktuellen Wert von N vorgibt, die Speicheradressenumsetzungsschaltungsanordnung steuert mit einer ausgewählten Größe von Seiten mit physikalischen Speicheradressen, Seiten mit virtuellen Speicheradressen und Umsetzungstabellen zu arbeiten, wobei einem spezifizierten Abschnitt der virtuellen Adresse, der sich von einem Ende der virtuellen Adresse mit dem höchstwertigen Bit erstreckt, eine feste Umsetzung auf einen entsprechenden Abschnitt der physikalischen Adresse zugewiesen wird, ohne einen Seitentabellendurchlauf zu erfordern.
  • KURZDARSTELLUNG
  • Die Erfindung betrifft ein Verfahren und ein Computerprogrammprodukt zum Zugreifen auf einen Speicherplatz in einem Datenverarbeitungssystem und ein Computersystem zum Zugreifen auf einen Speicherplatz, deren Merkmalen in den entsprechenden Hauptansprüchen angegeben sind. Ausführungsformen der Erfindung sind in den abhängigen Patentansprüchen angegeben.
  • In einem Beispiel beinhalten ein Verfahren, ein System und ein Computerprogrammprodukt zum Empfangen einer Anforderung für den Zugriff auf einen gewünschten Speicherblock, wobei die Anforderung eine effektive Adresse, die eine effektive Segmentkennung (ESID) und eine lineare Adresse enthält, und die lineare Adresse einen höchstwertigen Teil und einen Byte-Index aufweist; zum Auffinden eines Eintrags in einem Puffer durch einen Prozessor, wobei der Eintrag die ESID der effektiven Adresse enthält; zum Durchführen des angeforderten Zugriffs auf den gewünschten Speicherblock auf der Grundlage des Eintrags, der einen Basisseitentabellen-Zeiger (RPTP) enthält, unter Verwendung des RPTP zum Auffinden einer Übersetzungstabelle einer Hierarchie von Übersetzungstabellen unter Verwendung der gefundenen Übersetzungstabelle zum Übersetzen des höchstwertigen Teils der linearen Adresse, um eine Adresse eines Speicherblocks zu erhalten, und auf der Grundlage der erhaltenen Adresse; zum Durchführen des Auffindens eines Tabelleneintrags aus einer Gruppe von Einträgen einer Übersetzungstabelle unter Verwendung einer Hash-Funktion, um eine Adresse eines Speicherblocks zu erhalten. Das Verwenden der erhaltenen Adresse weist ein Verwenden des Byte-Indexes der linearen Adresse und der erhaltenen Adresse auf, um eine Adresse des gewünschten Speicherblocks zu bilden. Die Tabellenebene der aufgefundenen Übersetzungstabelle der Hierarchie von Übersetzungstabellen wird durch den RPTP angezeigt. Der RPTP gibt die Größe der zu verwendenden linearen Adresse an. Ein Teil der linearen Adresse dient als Index für die Suche nach einem Eintrag in der gefundenen Übersetzungstabelle, wobei der Eintrag der Übersetzungstabelle eine Ursprungsadresse einer Übersetzungstabelle auf der nächsten Ebene der Hierarchie von Übersetzungstabellen aufweist. Die lineare Adresse enthält eine Seitenkennung und eine Kennung für die relative Byte-Adresse.
  • Weitere Merkmale und Vorteile werden durch die Techniken der vorliegenden Erfindung umgesetzt. Andere Ausführungsformen und Aspekte der Erfindung werden hierin ausführlich beschrieben und als Teil der beanspruchten Erfindung angesehen. Zum besseren Verständnis der Vorteile und der Merkmale wird auf die Beschreibung und die Zeichnungen verwiesen.
  • Figurenliste
  • Nunmehr werden Ausführungsformen der Erfindung lediglich beispielhaft unter Bezugnahme auf die beiliegenden Zeichnungen beschrieben, wobei:
    • 1A ein Beispiel einer Übersichts-Ansicht eines virtuellen Speichers (VM) veranschaulicht, der unter Verwendung des Hash-PTE- (PowerPC) Verfahrens einem physischen Speicher zugeordnet ist;
    • 1B ein Beispiel eines Verfahrens zum Erzeugen einer virtuellen Adresse veranschaulicht;
    • 1C ein Beispiel einer durch Power ISA verwendeten HPT- (hashed page table) Übersetzungsstruktur veranschaulicht;
    • 2 einen hierarchischen Übersetzungsmechanismus zeigt;
    • 3 eine Übersicht des Indexierens von Übersetzungstabellen veranschaulicht;
    • 4 einen hybriden Übersetzungsmechanismus zeigt;
    • 5 einen hybriden Übersetzungsmechanismus zeigt;
    • 6 ein Blockschaltbild veranschaulicht, das ein Verfahren zum Auswählen der Anzahl von Bits einer effektiven Adresse zeigt, die mit dem RPTP verwendet werden sollen;
    • 7 eine beispielhafte Ausführungsform eines Prozessorsystems veranschaulicht;
    • 8 ein beispielhaftes Verfahren zum Zugreifen auf einen Speicherplatz veranschaulicht;
    • 9 eine beispielhafte Ausführungsform einer linearen Adresse und von Tabellen (Tabellen/Verzeichnisse) veranschaulicht, die der linearen Adresse entsprechen;
    • 10 einen Ablaufplan eines beispielhaften Verfahrens zum Zugreifen auf eine Speicherseite veranschaulicht;
    • 11 einen Ablaufplan eines beispielhaften Verfahrens zum Auffinden einer ESID sowie eines zugehörigen RPTP und zum Entnehmen der linearen Adresse aus der effektiven Adresse veranschaulicht; und
    • 12 eine beispielhafte Ausführungsform eines Computerprogrammprodukts veranschaulicht.
  • DETAILLIERTE BESCHREIBUNG
  • Prozessoren mit Zentraleinheiten (CPUs) können Segment-Umsetzpuffer (segment lookaside buffers, SLB) als Cachespeicher verwenden, die das Übersetzen von virtuellen Adressen beschleunigen. In früheren Systemen sind zum Zugreifen auf Seiten einzelne Basisseitentabellen-Zeiger (RPTP) unter Verwendung einer linearen Adresse verwendet worden. Solche Systeme verwalten einen einzigen großen Bereich, der im Speicherraum eine große Lücke aufweisen kann. Die im Folgenden beschriebenen Ausführungsformen stellen ein Verfahren, ein System und ein computerlesbares Medium bereit, die die Verwendung einer beliebigen Anzahl von RPTPs zum Übersetzen einer beliebigen Anzahl mehrerer voneinander getrennter virtueller Speicherbereiche ermöglichen.
  • 1A veranschaulicht ein Beispiel einer allgemeinen Ansicht eines virtuellen Speichers (VM) 101, der einem physischen Speicher 103 unter Verwendung des Seitentabelleneintrag- (PET) Hash-Verfahrens zugeordnet ist, was zum Beispiel in PowerPC verwendet wird. In dem Beispiel verwenden Programme nur Bereiche A und B des VM. Alle Segmente des VM sind Segment-ID- (SID) Einträgen zugeordnet, die durch effektive Segment-IDs (ESIDs) 105 (darunter ESIDs für B und ESIDs für A) gekennzeichnet sind. Die durch das Programm verwendete „effektive Adresse“ 107 wählt eine SID mit dem ESID-Wert und einem virtuellen Segment-ID (VSID)-Wert aus. Der VSID-Wert stellt die höchstwertigen Bits einer „virtuellen Adresse“ dar, die durch einen Hash-Algorithmus verwendet werden sollen. Ein Hash-Wert auf der Grundlage der VSID wird zum Auffinden eines Eintrags der Seitentabelle (PTE) verwendet. Der Eintrag der Seitentabelle enthält eine Adresse einer Seite des physischen Speichers 103.
  • 1B veranschaulicht ein Beispiel eines Verfahrens zum Erzeugen einer virtuellen Adresse 102 für das Hash-Verfahren. Demgemäß wird in einer Speicherverwaltungseinheit eines Prozessors eine effektive Adresse 104 empfangen, die ein Feld der effektiven Segmentkennung (ESID), ein Seitenfeld 108 und ein Feld 110 der relativen Byteadresse (Byte-Feld) enthält. Es wird auf einen Segment-Umsetzpuffer (SLB) 112 zugegriffen und in dem SLB 112 ein Eintrag mit der ESID 106 der effektiven Adresse 104 gefunden. Der Eintrag mit der ESID 106 enthält eine zugehörige virtuelle Segmentkennung (VSID) 114. Die zugehörige VSID dient zum Erzeugen der virtuellen Adresse 102, die die VSID 114 in dem SLB 112 enthält, der der ESID 106 der effektiven Adresse 104 zugehörig ist; und der Seite 108 und des Bytes 110 aus der effektiven Adresse 104. Die virtuelle Adresse 102 kann zum Zugreifen auf den physischen Speicher in dem Speichersystem verwendet werden. In dieser Offenlegung werden die Begriffe physischer Speicher, realer Speicher, Systemspeicher und absoluter Speicher austauschbar verwendet, um den Arbeitsspeicher zu bezeichnen, auf den ein Prozessor zugreifen kann.
  • 1C veranschaulicht ein Beispiel einer in PowerPC verwendeten Hash-Seitentabellen- (HPT) Übersetzungsstruktur, wobei die Power-ISA in der Beschreibung der Power ISA™V, Version 2.06, überarbeitete Fassung B, die durch Bezugnahme hierin aufgenommen ist, ausführlich beschrieben wird. Der ESID-Teil 106 der effektiven Adresse (EA) 104 dient zum Auffinden eines Eintrags in dem SLB 112. Der Eintrag enthält ein VSID-Feld 114. Der Wert des VSID-Feldes 114 und ein Teil der EA 104 werden hashverschlüsselt, um ein Hash-Wert zu erzeugen, der zum Auffinden einer Seitentabellengruppe 152 in der Seitentabelle (HPT) 150 dient. Die PTEs der Gruppe 152 werden durchsucht, um einen entsprechenden PTE mit einem Feld zu finden, dessen Wert mit einem höchstwertigen Teil der VSID übereinstimmt. Wenn ein entsprechender PTE gefunden wurde, wird die Adresse der physischen Speicherseite in dem PTE zum Zugreifen auf den physischen Speicher verwendet. Sobald ein PTE-Eintrag gefunden worden ist, werden der Teil 104 der EA und die Adresse der in dem PTE gefundenen physischen Speicherseite zur Leistungssteigerung in dem TLB 154 gespeichert, sodass spätere Zugriffe auf dieselbe EA-Seite zu einem „Treffer“ in dem TLB 154 führen und die PTE-Suche vermeiden. Die Seitentabelle wird durch eine durch den Prozessor bereitgestellte Ursprungsadresse der Seitentabelle gefunden.
  • Wenn ein PTE 152 in der Gruppe gefunden worden ist, die dem Hash-Wert entspricht, wird die Adresse der physischen Speicherseite in dem PTE zum Zugreifen auf den physischen Speicher verwendet. Sobald ein PTE-Eintrag gefunden worden ist, werden der Teil 104 der EA und die Adresse des in dem PTE gefundenen physischen Speicherseite zur Leistungssteigerung in dem TLB 154 gespeichert, sodass spätere Zugriffe auf dieselbe EA-Seite zu einem „Treffer“ in dem TLB 154 führen und die PTE-Suche vermeiden. Die Seitentabelle wird durch eine durch den Prozessor bereitgestellte Ursprungsadresse der Seitentabelle gefunden.
  • Die Arbeitsgrundlagen (Principles of Operation) der IBM zArchitecture SA22-7832-8 und das Handbuch für Softwareentwickler der Intel Itanium Archictecture, Band 2: Systemarchitektur, Dokumentnummer: 245318-005, die beide durch Bezugnahme hierin aufgenommen sind, enthalten Beschreibungen anderer Adressübersetzungssysteme, die eine Hierarchie von Übersetzungstabellen verwenden.
  • 2 zeigt einen beispielhaften Übersetzungsmechanismus mit hierarchischen Übersetzungstabellen. In diesem Fall werden Übersetzungstabellen zum Übersetzen des gesamten virtuellen Speichers 202 bereitgestellt, obwohl nur Bereiche A und B verwendet werden sollen. Der Ursprung der höchstwertigen Übersetzungstabelle der hierarchischen Übersetzungstabellen 204 wird beispielsweise durch ein Steuerregister (CR3) 206 bereitgestellt. Die effektive Adresse 208 dient als Index für die Suche in jeder Tabelle der hierarchischen Übersetzungstabellen 204, um eine Ursprungsadresse der nächsten Tabelle zu ermitteln, um zum Beispiel ein Seitentabelleneintrag (PTE) mit einer Adresse einer Seite des physischen Speichers 210 zu finden.
  • 3 zeigt, dass der höchstwertige Teil 208a der effektiven Adresse als Index für die höchstwertige Übersetzungstabelle der Hierarchie dient, um einen Eintrag 302a der Tabelle 1 zu finden, der zum Auffinden der nächsten Übersetzungstabelle (Tabelle 2) dient. Desgleichen dient als Index für die Tabelle 2 ein nächster Teil 208b der effektiven Adresse, um einen Eintrag 302b in der Tabelle 2 zu finden, der eine Ursprungsadresse von Tabelle 3 aufweist. Ein nächster Teil 208c der effektiven Adresse dient als Index für die Tabelle 3, um einen Eintrag 302c in der Tabelle 3 zu finden, der eine Ursprungsadresse einer Tabelle 304 aufweist. Ein nächster Teil 208d der effektiven Adresse dient als Index für die Tabelle 304, um einen Eintrag 302d der Seitentabelle zu finden, der die Adresse einer physischen Speicherseite 306 aufweist. Innerhalb der Hierarchie von Übersetzungstabellen kann gemäß einer Ausführungsform ein Tabellenauswahlfeld verwendet werden, um zu ermitteln, welche aus der Hierarchie von Übersetzungstabellen als Ursprung infrage kommt. Somit ist für die Übersetzung gegebenenfalls nur ein Teil der Hierarchie erforderlich (wobei die höchstwertigen Bits mit dem Wert null einer effektiven Adresse auf eine vorgegebene Anzahl begrenzt sind). Eine Übersetzung, die weniger Tabellen verwendet, ist schneller als eine Übersetzung, die mehr Tabellen verwendet.
  • 4 zeigt einen hybriden Übersetzungsmechanismus. In dem hybriden Übersetzungsmechanismus dient die effektive Adresse des virtuellen Speichers 208 zum Auffinden eines Eintrags, der der ESID in dem Segment-Umsetzpuffer (SLB) 402 in Block 401 bei dem oben dargestellten Hash-Verfahren entspricht. Bei dem hybriden Übersetzungsmechanismus wird jedoch entweder das herkömmliche Hash-Verfahren zum Auffinden eines PTE oder ein hierarchischer Adressübersetzungsmechanismus verwendet. Die ESID enthält entweder eine VSID zum Verschlüsseln nach dem Hash-Verfahren (Hash Ja) oder einen RPTP zum Auffinden einer Hierarchie von Übersetzungstabellen gemäß Block 403. Wenn nach dem Hash-Verfahren verschlüsselt werden soll, wird ein Seitentabelleneintrag einer Gruppe von Übersetzungstabelleneinträgen unter Verwendung der Hash-Funktion von 1A in Block 405 ausfindig gemacht. Wenn kein Hash-Verfahren angewendet werden soll, wird der unter Verwendung des RPTP gefundene Satz von Übersetzungstabellen dazu verwendet, eine Seite des realen Speichers wie in Block 407 von 2 gezeigt ausfindig zu machen. Gemäß einer Ausführungsform wird nur der Pfad „Hash Nein“ verfolgt.
  • 5 zeigt eine Übersichts-Darstellung des hybriden Übersetzungsmechanismus. Bei diesem Mechanismus werden kleine Sätze 502a und 502b von hierarchischen Übersetzungstabellen für entsprechende Teilbereiche (A 504a beziehungsweise B 504b) des virtuellen Speichers 504 verwendet und somit die Anzahl der erforderlichen Übersetzungstabellen sowie die zur Übersetzung erforderliche Hierarchietiefe verringert. Die SID 506 funktioniert wie in 1A, um einen Eintrag zu finden, der keine VSID, sondern die ESID der EA und einen RPTP 508 aufweist. Jeder RPTP 508a und 508b enthält eine Ursprungsadresse einer höchstwertigen Tabelle eines hierarchischen Satzes von Übersetzungstabellen. Gemäß einer Ausführungsform enthält der RPTP 508 eine Auswahlfunktion zum Auswählen, welche Ebene der Übersetzungstabelle 502 als höchstwertige Tabelle verwendet werden soll. Die hierarchischen Übersetzungstabellen 502 werden wie in 2 durchsucht, um zum Beispiel eine Seitenadresse des physischen Speichers 510 zu finden. Gemäß einer Ausführungsform kann eine reale Adresse durch größere Segmente als eine Seite definiert sein. Zum Beispiel stellt zArchitecture die Wahlmöglichkeit zwischen einer Seite der Größe 4 KByte des realen Speichers oder einer wesentlich größeren Seite bereit, die nicht durch den Seitentabelleneintrag, sondern durch einen Segmenttabelleneintrag gefunden wird.
  • Um die kleineren für Bereiche A und B des virtuellen Speichers verwendeten Tabellen zu unterstützen, muss die effektive Adresse für jeden Bereich wirksam gekürzt werden, damit sie nur die Adressbits enthält, die in einer Teilmenge der Übersetzungstabellen verwendet werden. Zum Beispiel werden die Bits für die Indexsuche in Tabelle 1 gleich null gesetzt, wenn die Tabelle 1 nicht verwendet wird.
  • 6 veranschaulicht ein Blockschaubild, das ein beispielhaftes Verfahren zum Auswählen der Anzahl Bits einer effektiven Adresse zeigt, die mit dem RPTP 508 in 5 verwendet werden soll, indem es in dem SLB-Eintrag ein Größenfeld 602 gibt und aufeinanderfolgende SLB-Einträge durchsucht werden, zum Beispiel nach einem Eintrag, der der ESID der effektiven Adresse zugehörig ist und zum Zugreifen auf die gewünschte Segmentgröße konfiguriert ist. Gemäß einer anderen Implementierung kann die Information der Größe der virtuellen Adresse (Segmentgröße) in einem einzigen SLB-Eintrag codiert sein, sodass die obige Suche nicht erforderlich ist.
  • Wenn ein SLB-Eintrag gefunden worden ist, wird der RPTP-Teil zum Auffinden der Ursprungsadresse der ersten Übersetzungstabelle der zu verwendenden Hierarchie von Übersetzungstabellen verwendet. Das Größenfeld 602 dient zum Erzeugen einer Segmentgrößenmaske. Die Segmentgrößenmaske schneidet die höchstwertigen Bits der effektiven Adresse (EA) ab, die für die Indexsuche in den Übersetzungstabellen nicht benötigt werden. Die Segmentgrößenmaske dient dazu, den für die Indexsuche verwendeten Teil der EA in einen Block einer realen Speicheradresse zu überführen, wobei die Adresse des Blocks durch die Übersetzungstabellen bereitgestellt wird. Somit wird für jeden RPTP nur eine Mindestanzahl von Übersetzungstabellen benötigt.
  • 7 zeigt nunmehr allgemein eine beispielhafte Ausführungsform eines Prozessorsystems (System) 700. Das System 700 beinhaltet einen Prozessor (CPU) 702, der eine Speicherverwaltungseinheit/TLB-Bereich 704 und einen lokalen Cachespeicher 706 enthält. Der Prozessor 702 ist zum Datenaustausch mit einem Speicher-Teilsystem 708, das einen oder mehrere Cachespeicher 710 aufweist, und dem Arbeitsspeicher verbunden. Übersetzungs- (Basis-) Tabellen und SIDs sind üblicherweise im Arbeitsspeicher gespeichert. Der Prozessor ist mit einer Eingabe/Ausgabe- (E/A) Steuereinheit 712 verbunden. Die E/A-Steuereinheit 712 beinhaltet eine E/A-Speicherverwaltungseinheit (E/A-MMU) 716 und ist zum Datenaustausch mit externen E/A-Einheiten 714 verbunden, zu denen zum Beispiel Dateneingabeeinheiten, Sensoren und Ausgabeeinheiten wie beispielsweise Bildschirme gehören können. Gemäß anderen (nicht gezeigten) Ausführungsformen kann der Prozessor 702 eine Schnittstelle zum Speicher 708 aufweisen, die von der E/A-Steuerungsschnittstelle getrennt ist.
  • 8 veranschaulicht ein beispielhaftes Verfahren zum Übersetzen einer effektiven Adresse, um den SLB-Eintrag zu erhalten, der den gewünschten Basisseitentabellen-Zeiger RPTP aufweist. Demgemäß wird in der Speicherverwaltungseinheit 704 des Systems 700 (von 7) eine effektive Adresse 802 empfangen. Die effektive Adresse 802 enthält als Teil 804 eine effektive Segmentkennung (ESID) und als Teil 807 eine lineare Adresse, wobei der lineare Adressteil 807 zum Beispiel einen Seitenteil 808 und einen relativen Byteadressteil (Byte) 810 enthält. Es wird auf einen beispielhaften SLB-Puffer 812 zugegriffen. Der Puffer 812 beinhaltet zum Beispiel eine inhaltadressierbare Tabelle, die Einträge mit einem Feld ESID 814, ein Feld gültiger Eintrag (V) 816, ein Feld Basisseitentabellen-Zeiger 818, ein Feld Segmentgröße 820 und ein Feld Segmenteigenschaften 822 enthält. Die Segmenteigenschaften 822 können dem Fachmann Parameter wie beispielsweise Berechtigungen, Zugriffstypen (zwischenspeicherbar, Cachespeicher blockiert, E/A), Baumgeometrie (Anzahl der Ebenen, Anzahl Bits pro Ebene usw.), und eine Anzeige zuletzt verwendet/am längsten nicht verwendet angeben. Die Segmenteigenschaften 822 können Parameter wie beispielsweise Überschreibungen von Feldern, die in den Einträgen der Segmentseitentabelle enthalten sind, sowie Eigenschaften angeben, die Parameter wie beispielsweise den Umgang mit verknüpften Einträgen der Seitentabelle definieren. Bei einer beispielhaften Operation wird ein Eintrag mit der ESID 804 der effektiven Adresse 802 in dem SLB 812 ausfindig gemacht. Der RPTP 801 des gefundenen Eintrags wird vom SLB 812 abgerufen.
  • Der RPTP 801 und die lineare Adresse 807 werden zum Beispiel zum Zugreifen auf einen Speicherplatz unter Verwendung beispielsweise einer Hierarchie von Adressübersetzungstabellen (einer Basistabelle (d.h. ein Basisbaum) wie beispielsweise der unten beschriebenen Basistabelle 711 von 7 verwendet. Jeder Eintrag (SLBE0 ... SLBEn) des SLB 812 wird parallel oder nacheinander oder in einer Kombination beider durchsucht, bis ein SLB-Eintrag gefunden wird, der zu dem ESID passt. Wenn das Gültigkeitsbit 816 für den SLB-Eintrag gesetzt ist, wird die Segmentgröße 820 dazu verwendet, eine Maske zum Entnehmen der ESID 804 und der linearen Adresse 807 zu erstellen. Der Wert „s“ in der effektiven Adresse 802 ist so lange unbekannt, bis es zu einer Übereinstimmung vom SLB 812 kommt. Gemäß einer beispielhaften Ausführungsform ist die Segmentgröße 820 gleich einer ganzzahligen Potenz „n“ zur Basis 2, sodass 2" die Segmentgröße in Byte darstellt. Somit wird für n = 30 als Segmentgröße ein Wert von einem Gigabyte berechnet. Die Größe der zum Entnehmen der linearen Adresse verwendeten Maske ist gleich der Segmentgröße minus ein Byte, also gleich (2n-1). Die zum Entnehmen der ESID 304 verwendete Maske „m“ stellt das Einser-Komplement der zum Entnehmen der linearen Adresse verwendeten Maske „mc“ dar, ist also gleich (~(2n-1)). Die effektive Adresse 802 wird bitweise einer logischen UND-Verknüpfung mit „m“ unterzogen. Die ESID des SLB-Eintrags wird bitweise einer logischen UND-Verknüpfung mit „m“ unterzogen. Wenn die obigen Ergebnisse der logischen Funktionen gleich sind, ist der passende SLB-Eintrag gefunden worden. Der RPTP 801 wird aus dem passenden SLB-Eintrag ausgewählt. Auch die lineare Adresse 807 kann ermittelt werden, da der Wert „s“ mit Sicherheit bekannt ist. Dieser ergibt sich aus der bitweisen logischen UND-Verknüpfung der effektiven Adresse 802 mit „mc“. Wenn die Ergebnisse der logischen Funktion ungleich sind, wird die Suche fortgesetzt. Wenn die Suche erfolglos ist, nachdem alle SLBEs durchsucht worden sind, wird eine System-Interruptroutine oder ein anderer Mechanismus aufgerufen, um eine Fehlerbedingung anzuzeigen.
  • Gemäß einigen beispielhaften Ausführungsformen werden Felder wie beispielsweise die Prozess-ID, die Thread-ID, die Prozessor-ID und die Partitions-ID mit den entsprechenden in den SLBEs gespeicherten Werten verglichen. Diese IDs sind von der effektiven Adresse 802 unabhängig und bilden einen Kontext für die effektive Adresse 802. Anstatt den SLB zu löschen, wenn ein Prozessor zu einem anderen Prozess wechselt (z.B. können beide Prozesse dieselbe Adresse 2000 auf unterschiedliche Weise nutzen), können auf diese Weise beide Prozesse in demselben SLB fortbestehen. Die Thread-, Prozessor- und Partitions-ID erweitern den Kontext über das ausgeführte Programm hinaus, indem sie die aktuelle oder virtualisierte Hardware bezeichnen.
  • Gemäß einer anderen Ausführungsform des oben in 8 beschriebenen Verfahrens enthalten SLBEs ein oder mehrere Felder, die eine auswählbare Übersetzung dergestalt zulassen, dass ein Eintrag einen RPTP auswählt, während ein anderer Eintrag auf der Grundlage der direkten Übersetzung von zusammenhängenden Speicherblöcken, übersetzten Bereichen der hashverschlüsselten Seitentabelle und so weiter ein anderes Übersetzungsschema auswählt.
  • 9 veranschaulicht eine beispielhafte Ausführungsform einer linearen Adresse 807 und von Tabellen (Tabellen/Verzeichnissen) 902, die der linearen Adresse 807 entsprechen. Die Tabellen 902 dienen dazu, eine Seitenadresse für den Zugriff auf eine Seite 904 unter Verwendung des RPTP 801 und der linearen Adresse 807 umzusetzen. Die Kennung der Seite 808 der linearen Adresse 807 kann geteilt oder zugewiesen werden, um eine beliebige Anzahl von Verzeichnissen mit einer bestimmten Bezeichnung oder Nomenklatur zu kennzeichnen. Zur Veranschaulichung beinhaltet die beispielhafte Ausführungsform eine Kennung der Seite 808, die in Kennungsabschnitte eingeteilt ist (einen globalen Verzeichnisabschnitt 901, einen oberen Verzeichnisabschnitt 903, einen mittleren Verzeichnisabschnitt 905 und einen Seitentabellenabschnitt 907), die vier Verzeichnissen entsprechen (einem globalen Verzeichnis 906, einem oberen Verzeichnis 908, einem mittleren Verzeichnis 910 und einer Seitentabelle 912).
  • Demgemäß wird an den RPTP 801 eine geeignete Anzahl Nullen angehängt, um einen globalen Verzeichniszeiger zu erzeugen. Die Anzahl der angehängten Nullen entspricht der Größe des globalen Verzeichnisses 906. Bei diesem Beispiel besteht das globale Verzeichnis 906 aus 512 Einträgen mit je 8 Bytes, was insgesamt 4096 Bytes ergibt. Somit werden in diesem Beispiel zwölf Nullen (log2 4096) and den Wert RPTP 801 angehängt. (Alle Tabellen/Verzeichnisse weisen pro Eintrag 8 Bytes auf, was einem Beispiel von 64 Bits entspricht.) Die 36-Bit-Seite 808 ist in vier Gruppen je 9 Bits unterteilt, die sich jeweils durch das globale Verzeichnis 906, das obere Verzeichnis 908, das mittlere Verzeichnis 910 und die Seitentabelle 912 durchziehen. In diesem Beispiel lautet der RPTP 801 0x0000000000100000 und die lineare Adresse 807 0x1234567890AB. Zu Anfang werden dem globalen Verzeichnis 906 die 9 höchstwertigen Bits der linearen Adresse 807 (der Wert 36) entnommen und als Index 0 ... 511 für die Suche im globalen Verzeichnis 906 verwendet, und der Eintrag am Speicherplatz 0x0000000000100000 + 36*8 wird gelesen. Der gelesene Wert wird als Zeiger für das obere Verzeichnis 908 verwendet. (In diesem Beispiel wird die Speicheradresse zurückgegeben.) Die nächsten neun höchstwertigen Bits der linearen Adresse 807 (der Wert 209) werden entnommen und als Index 0 ... 511 für die Suche im oberen Verzeichnis 908 verwendet, und der Eintrag am Speicherplatz 0x0000000000200000 + 209*8 wird gelesen. Der gelesene Wert wird als Zeiger für das mittlere Verzeichnis 410 verwendet. (In diesem Beispiel wird die Adresse 0x0000000000300000 zurückgegeben.) Die nächsten neun höchstwertigen Bits der linearen Adresse 807 (der Wert 179) werden entnommen und als Index 0 ... 511 für die Suche im mittleren Verzeichnis 910 verwendet, und der Eintrag am Speicherplatz 0x0000000000300000 + 179*8 wird gelesen. Der gelesene Wert wird als Zeiger für die Seitentabelle 912 verwendet. (In diesem Beispiel wird die Adresse 0x0000000000400000 zurückgegeben.) Die restlichen neun niedrigstwertigen Bits (der Wert 393) der linearen Adresse 807 werden entnommen und als Index 0 ... 511 für die Suche in der Seitentabelle 912 verwendet, und der Eintrag am Speicherplatz 0x0000000000400000 + 393*8 wird gelesen. Der gelesene Wert wird als Zeiger für die Seite 904 verwendet. (In diesem Beispiel wird die Adresse 0x0000000000500000 zurückgegeben.) Die 12 Bits des Bytes 810 der linearen Adresse 807 (der Wert 171) werden zu dem Wert der Seite 904 (0x0000000000500000) addiert, woraus sich die komplett übersetzte Adresse 0x00000000005000AB ergibt.
  • 9 beinhaltet lediglich ein Beispiel einer linearen Adresse und der entsprechenden Tabellen/Verzeichnisse. Andere Beispiele können eine verschiedene Anzahl von Tabellen oder ein Vertauschen, Umkehren oder ein Auslassen von Bits der linearen Adresse beinhalten, was zu einem anderen Tabellenzugriffsmuster führt.
  • In den veranschaulichten Ausführungsformen wird zwar ein System beschrieben, in dem effektive 64-Bit-Adressen 804 verwendet werden, jedoch können auch andere effektive Adressen einer beliebigen anderen Größe verwendet werden.
  • 10 veranschaulicht einen Ablaufplan eines beispielhaften Verfahrens zum Zugreifen auf eine Speicherseite mit einem Prozessorsystem wie beispielsweise dem System 700 (von 7). Demgemäß wird in Block 1002 eine effektive Adresse 802 (von 8) in einer Speicherverwaltungseinheit 704 empfangen. Die Speicherverwaltungseinheit 704 ermittelt in Block 1004 einen Eintrag im Puffer 812, der die ESID 804 der effektiven Adresse enthält, und ruft den der ESID 804 zugehörigen RPTP 801 von dem erkannten Puffereintrag ab. Wenn die Suche in allen SLBEs in Block 1007 erfolglos ist, wird in Block 1009 eine System-Interruptroutine aufgerufen, um eine Fehlerbedingung anzuzeigen. In Block 1006 entnimmt die Speicherverwaltungseinheit 704 der effektiven Adresse 802 die lineare Adresse 807. In Block 1007 ermittelt das System 700, ob es sich bei dem Zugriff um einen virtualisierten Zugriff handelt. Wenn dies der Fall ist, wird in Block 1011 unter Verwendung des devirtualisierten Äquivalents des RPTP 801 und des devirtualisierten Äquivalents der linearen Adresse 807 auf den devirtualisierten Speicherplatz in der Seite zugegriffen. In Block 1008 werden der RPTP 801 und die lineare Adresse 807 mit den Tabellen 902 (von 9) dazu verwendet, eine übersetzte Adresse zu erzeugen und (gemäß der obigen Erörterung) auf einen Speicherplatz in einer Seite 904 zuzugreifen. In Block 1010 werden die Daten in den Speicherplätzen, auf die zugegriffen wurde, an den Prozessor 702 gesendet.
  • 11 veranschaulicht einen Ablaufplan eines beispielhaften Verfahrens zum Auffinden der ESID und des zugehörigen RPTP und zum Entnehmen der linearen Adresse aus der effektiven Adresse gemäß der obigen Beschreibung in Block 1004 und 1006 von 10. Demgemäß wird in Block 1102 von 11 der erste gültige SLBE ausgewählt. In Block 1104 wird der Wert n der Segmentgröße des SLBE entnommen. In Block 1106 wird die ESID-Maske M durch Berechnen des Wertes (~(2n-1)) erzeugt. Wenn in Block 1108 die ESID der bitweise der UND-Verknüpfung mit M unterzogenen effektiven Adresse nicht gleich der ESID des bitweise der UND-Verknüpfung mit M unterzogenen Puffers ist, wird in Block 1109 der nächste gültige SLBE ausgewählt. Nach Bearbeiten aller SLBEs in Block 1110 wird in Block 1111 eine System-Interruptroutine aufgerufen. In Block 1112 wird der Wert (2"-1) berechnet, um eine Maske Mc der linearen Adresse zu erzeugen. In Block 1114 wird die lineare Adresse zusammengesetzt, indem die Maske Mc bitweise der UND-Verknüpfung mit der effektiven Adresse unterzogen wird. In Block enthält der ausgewählte SLBE die ESID, den RPTP, die Segmentgröße und Segmenteigenschaften.
  • Gemäß der obigen Beschreibung können Ausführungsformen in der Form von computergestützten Prozessen und Vorrichtungen zum Umsetzen dieser Prozesse realisiert werden. Eine Ausführungsform kann ein Computerprogrammprodukt 1200, das in 2 auf einen computerlesbaren/durch Computer nutzbaren Medium 1202 dargestellt ist, mit einer Computerprogrammcode-Logik 1204 beinhalten, deren Anweisungen in einem materiellen Medium als Herstellungsprodukt verkörpert sind. Als beispielhafte Herstellungsprodukte für das computerlesbare/durch Computer nutzbare Medium 1202 kommen infrage: Disketten, CD-ROMs, Festplatten, USB-(universal serial bus) Flashspeicher oder ein beliebiges anderes computerlesbares Speichermedium, wobei aus dem Computer eine Vorrichtung zum Umsetzen der Erfindung wird, wenn die Computerprogrammcode-Logik 1204 in einen Computer geladen und durch diesen ausgeführt wird. Für Ausführungsformen kommt eine Computerprogrammcode-Logik 1204 infrage, die in einem Speichermedium gespeichert ist, in einen Computer geladen und/oder durch diesen ausgeführt wird oder über ein bestimmtes Übertragungsmedium wie beispielsweise über elektrische Leitungen oder Kabel, Lichtwellenleiter oder über elektromagnetische Strahlung übertragen wird, wobei aus dem Computer eine Vorrichtung zum Umsetzen der Erfindung wird, wenn die Computerprogrammcode-Logik 1204 in einen Computer geladen und durch diesen ausgeführt wird. Wenn die Computerprogrammcode-Logik 1204 auf einem Universal-Mikroprozessor installiert ist, wird der Mikroprozessor durch diese so konfiguriert, dass spezielle Logikschaltungen erzeugt werden.
  • Die technischen Folgen und Vorteile der oben beschriebenen Verfahren und Systeme ermöglichen einer beliebigen Anzahl von RPTPs eine beliebige Anzahl von mehreren nicht zusammenhängenden Speicherbereichen zu übersetzen, um auf Daten in Speicherplätzen zuzugreifen.
  • Dem Fachmann ist einsichtig, dass Aspekte der vorliegenden Erfindung als System, Verfahren oder Computerprogrammprodukt umgesetzt werden können. Demgemäß können Aspekte der vorliegenden Erfindung die Form einer kompletten Hardwareausführungsform, einer kompletten Softwareausführungsform (darunter Firmware, residente Software, Mikrocode usw.) oder einer Ausführungsform annehmen, die Software- und Hardwareaspekte in sich vereint, die hierin sämtlich allgemein als „Schaltung“, „Modul“ oder „System“ bezeichnet werden können. Darüber hinaus können Aspekte der vorliegenden Erfindung die Form eines Computerprogrammprodukts annehmen, das in einem oder mehreren computerlesbaren Medien mit einem darauf gespeicherten computerlesbaren Programmcode verkörpert ist.
  • Es kann eine beliebige Komponente eines oder mehrerer computerlesbarer Medien verwendet werden. Bei dem computerlesbaren Medium kann es sich um ein computerlesbares Signalmedium oder ein computerlesbares Speichermedium handeln. Bei einem computerlesbaren Speichermedium kann es sich zum Beispiel, ohne darauf beschränkt zu sein, um ein elektronisches, magnetisches, optisches, elektromagnetisches, Infrarot- oder Halbleitersystem, eine entsprechende Vorrichtung oder Einheit oder eine beliebige geeignete Kombination derselben handeln. Als speziellere Beispiele (eine nicht erschöpfende Aufzählung) für das computerlesbare Speichermedium kommen infrage: eine elektrische Verbindung mit einer oder zwei Leitungen, eine austauschbare Computerdiskette, eine Festplatte, ein Direktzugriffsspeicher (RAM), ein Nur-Lese-Speicher (ROM), ein löschbarer programmierbarer Nur-Lese-Speicher (EPROM oder Flash-Speicher), ein Lichtwellenleiter, ein austauschbarer Compact Disc-Nur-Lese-Speicher (CD-ROM), eine optische Speichereinheit, eine magnetische Speichereinheit oder eine beliebige geeignete Kombination derselben. In Verbindung mit diesem Dokument kann es sich bei einem computerlesbaren Speichermedium um ein beliebiges materielles Medium handeln, das ein Programm zur Verwendung durch oder in Verbindung mit einem System, einer Vorrichtung oder Einheit zum Ausführen von Anweisungen zu enthalten oder zu speichern.
  • Ein computerlesbares Signalmedium kann ein sich ausbreitendes Datensignal mit einem darin verkörperten computerlesbaren Programmcode beinhalten, zum Beispiel im Basisband oder als Teil einer Trägerwelle. Ein solches sich ausbreitendes Signal kann eine beliebige aus einer Vielfalt an Formen annehmen, darunter, ohne darauf beschränkt zu sein, elektromagnetisch, optisch oder eine beliebige geeignete Kombination derselben. Bei einem computerlesbaren Signalmedium kann es sich um ein beliebiges computerlesbares Medium handeln, das kein computerlesbares Speichermedium ist und das ein Programm zur Verwendung durch oder in Verbindung mit einem System, einer Vorrichtung oder Einheit zum Ausführen von Anweisungen übertragen, weiterverbreiten oder transportieren kann.
  • Ein auf einem computerlesbaren Medium gespeicherter Programmcode kann unter Verwendung eines beliebigen geeigneten Medium übertragen werden, darunter, ohne darauf beschränkt zu sein, drahtlos, leitungsgebunden, Lichtwellenleiter, HF usw. oder eine beliebige geeignete Kombination derselben.
  • Ein Computerprogrammcode zum Ausführen von Operationen für Aspekte der vorliegenden Erfindung kann in einer beliebigen Kombination einer oder mehrerer Programmiersprachen geschrieben sein, darunter eine objektorientierte Programmiersprache wie beispielsweise Java®, Smalltalk, C++ oder dergleichen und herkömmliche prozedurale Programmiersprachen wie beispielsweise die Programmiersprache „C“ oder ähnliche Programmiersprachen. Der Programmcode kann komplett auf dem Computer eines Benutzers, teilweise auf dem Computer des Benutzers, als eigenständiges Softwarepaket, teilweise auf dem Computer des Benutzers und teilweise auf einem fernen Computer oder komplett auf dem fernen Computer oder Server ausgeführt werden. Im letzteren Szenario kann der ferne Computer mit dem Computer des Benutzers durch einen beliebigen Typ von Netzwerk verbunden sein, darunter ein lokales Netzwerk (LAN) oder ein Weitverkehrsnetzwerk (WAN), oder die Verbindung kann zu einem externen Computer (zum Beispiel durch das Internet unter Verwendung eines Internetdienstanbieters) hergestellt werden.

Claims (8)

  1. Verfahren zum Zugreifen auf einen Speicherplatz in einem Datenverarbeitungssystem (700), wobei das Verfahren aufweist: Empfangen (1002) einer Anforderung zum Zugreifen auf einen gewünschten Speicherblock, der sich in einem einer Vielzahl von voneinander getrennten virtuellen Speicherbereichen (A, B) befindet, wobei die Anforderung eine effektive Adresse (104; 107; 208; 512; 802), die eine effektive Segmentkennung (ESID) (106; 804) enthält, und eine lineare Adresse (807) aufweist, wobei die lineare Adresse einen höchstwertigen Teil und einen Byte-Index aufweist; Auffinden (1004), durch einen Prozessor (702), eines Eintrags, der der effektiven Adresse entspricht, in einem Segment-Umsetzpuffer (SLB) (112; 812), der mehrere Einträge (SLBE0 ... SLBEn) enthält, die Basisseitentabellen-Zeiger (RPTPs) (818) enthalten, die der Vielzahl von voneinander getrennten virtuellen Speicherbereichen entsprechen, wobei das Auffinden des Eintrags, der der effektiven Adresse entspricht, in dem SLB umfasst: Auswählen (1102) eines ersten gültigen Eintrags in dem SLB; Entnehmen (1104) einer Segmentgröße (820) aus dem ersten gültigen Eintrag; Berechnen (1106) einer ESID-Maske des ersten gültigen Eintrags auf der Grundlage der extrahierten Segmentgröße; Ermitteln (1108), ob eine ESID des ersten gültigen Eintrags mit der ESID der effektiven Adresse auf der Grundlage der ESID-Maske übereinstimmt; auf der Grundlage der Ermittlung (1108), dass die ESID-Maske des ersten gültigen Eintrags mit der ESID der effektiven Adresse übereinstimmt, Ermitteln, dass der erste gültige Eintrag der aufgefundene Eintrag, der der effektiven Adresse entspricht, in dem SLB ist; und auf der Grundlage der Ermittlung (1108), dass die ESID-Maske des ersten gültigen Eintrags nicht mit der ESID der effektiven Adresse übereinstimmt, Ermitteln, dass der erste gültige Eintrag nicht der Eintrag, der der effektiven Adresse entspricht, in dem SLB ist, und Auswählen (1109) eines nächsten gültigen Eintrags in dem SLB; und Ausführen folgender Schritte auf der Grundlage des aufgefundenen Eintrags, der der effektiven Adresse entspricht, in dem SLB, der einen RPTP enthält, der dem einen der Vielzahl von voneinander getrennten virtuellen Speicherbereichen entspricht: Verwenden (1008) des RPTP (801) aus dem aufgefundenen Eintrag zum Auffinden einer Übersetzungstabelle (906, 908, 910, 912) einer Hierarchie von Übersetzungstabellen (204); Verwenden (1008) der gefundenen Übersetzungstabelle zum Übersetzen des höchstwertigen Teils der linearen Adresse, um eine Adresse (904) eines Speicherblocks zu erhalten; und Durchführen (1010) des angeforderten Zugriffs auf den gewünschten Speicherblock auf der Grundlage der erhaltenen Adresse.
  2. Verfahren nach Anspruch 1, ferner umfassend ein Verwenden des Byte-Indexes (901, 903, 905, 907; 208a-c) der linearen Adresse (807) und der erhaltenen Adresse (208) aufweist, um eine Adresse (306, 904) des gewünschten Speicherblocks zu bilden.
  3. Verfahren nach Anspruch 1, wobei eine Tabellenebene der gefundenen Übersetzungstabelle der Hierarchie von Übersetzungstabellen durch den RPTP angezeigt wird.
  4. Verfahren nach Anspruch 1, wobei der RPTP eine Größe der linearen Adresse angibt.
  5. Verfahren nach Anspruch 1, wobei ein Teil (808) der linearen Adresse (807) als Index (901) für die Suche in der gefundenen Übersetzungstabelle (906) verwendet wird, um einen Eintrag in der Übersetzungstabelle zu finden, wobei der Eintrag der Übersetzungstabelle eine Ursprungsadresse einer Übersetzungstabelle (908) der nächsten Ebene der Hierarchie von Übersetzungstabellen (204) aufweist.
  6. Verfahren nach Anspruch 1, wobei die lineare Adresse eine Seitenkennung und eine Kennung der relativen Byteadresse enthält.
  7. Computersystem (700) zum Zugreifen auf einen Speicherplatz, wobei das System aufweist: einen Speicher (708); und einen Prozessor (702), der zum Ausführen des Verfahrens nach einem der vorhergehenden Ansprüche konfiguriert ist.
  8. Ein Computerprogrammprodukt (1200) zum Zugreifen auf einen Speicherplatz in einem Datenverarbeitungssystem (700), wobei das Computerprogrammprodukt aufweist: ein materielles Speichermedium (1202), das durch eine Verarbeitungsschaltung lesbar ist und in dem Anweisungen zum Ausführen durch die Verarbeitungsschaltung gespeichert sind, um das Verfahren nach einem der Ansprüche 1 bis 6 auszuführen.
DE112013002938.3T 2012-06-14 2013-05-21 Übersetzen der Basistabelle von Speichern Active DE112013002938B4 (de)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US13/517,758 2012-06-14
US13/517,758 US9811472B2 (en) 2012-06-14 2012-06-14 Radix table translation of memory
PCT/IB2013/054164 WO2013186646A1 (en) 2012-06-14 2013-05-21 Radix table translation of memory

Publications (2)

Publication Number Publication Date
DE112013002938T5 DE112013002938T5 (de) 2015-03-19
DE112013002938B4 true DE112013002938B4 (de) 2022-01-27

Family

ID=49757044

Family Applications (1)

Application Number Title Priority Date Filing Date
DE112013002938.3T Active DE112013002938B4 (de) 2012-06-14 2013-05-21 Übersetzen der Basistabelle von Speichern

Country Status (5)

Country Link
US (2) US9811472B2 (de)
CN (1) CN104380270B (de)
DE (1) DE112013002938B4 (de)
GB (1) GB2517356B (de)
WO (1) WO2013186646A1 (de)

Families Citing this family (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9811472B2 (en) 2012-06-14 2017-11-07 International Business Machines Corporation Radix table translation of memory
US9092359B2 (en) 2012-06-14 2015-07-28 International Business Machines Corporation Identification and consolidation of page table entries
US9753860B2 (en) 2012-06-14 2017-09-05 International Business Machines Corporation Page table entry consolidation
US9633155B1 (en) 2015-11-10 2017-04-25 International Business Machines Corporation Circuit modification
US10346314B2 (en) 2016-08-03 2019-07-09 International Business Machines Corporation Efficiently generating effective address translations for memory management test cases
US10339065B2 (en) * 2016-12-01 2019-07-02 Ampere Computing Llc Optimizing memory mapping(s) associated with network nodes
US10169185B1 (en) 2017-08-12 2019-01-01 International Business Machines Corporation Efficient testing of direct memory address translation
US10649778B1 (en) 2018-12-04 2020-05-12 International Business Machines Corporation Performance optimized congruence class matching for multiple concurrent radix translations
US11847064B2 (en) * 2018-12-07 2023-12-19 International Business Machines Corporation Buffer and methods for address translations in a processor
CN110502452B (zh) * 2019-07-12 2022-03-29 华为技术有限公司 访问电子设备中的混合缓存的方法及装置
US11461237B2 (en) 2019-12-03 2022-10-04 International Business Machines Corporation Methods and systems for translating virtual addresses in a virtual memory based system
US11163695B2 (en) 2019-12-03 2021-11-02 International Business Machines Corporation Methods and systems for translating virtual addresses in a virtual memory based system
US11734188B2 (en) 2021-03-11 2023-08-22 International Business Machines Corporation Unified translation miss queue for multiple address translation modes

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
US20070079106A1 (en) 2005-09-22 2007-04-05 International Business Machines Corporation Method and apparatus for translating a virtual address to a real address using blocks of contiguous page table entries
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 (62)

* 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
US6141738A (en) * 1998-07-08 2000-10-31 Nortel Networks Corporation Address translation method and system having a forwarding table data structure
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 メモリ管理機構
TW594502B (en) * 2003-01-30 2004-06-21 Ind Tech Res Inst Length-scalable fast Fourier transformation digital signal processing architecture
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
US7444523B2 (en) * 2004-08-27 2008-10-28 Microsoft Corporation System and method for using address bits to signal security attributes of data in the address space
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
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
US8799620B2 (en) * 2007-06-01 2014-08-05 Intel Corporation Linear to physical address translation with support for page attributes
US7783859B2 (en) 2007-07-12 2010-08-24 Qnx Software Systems Gmbh & Co. Kg Processing system implementing variable page size memory organization
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
US8296547B2 (en) * 2008-08-27 2012-10-23 International Business Machines Corporation Loading entries into a TLB in hardware via indirect TLB entries
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
US20070079106A1 (en) 2005-09-22 2007-04-05 International Business Machines Corporation Method and apparatus for translating a virtual address to a real address using blocks of contiguous page table entries
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
CN104380270A (zh) 2015-02-25
GB201421552D0 (en) 2015-01-21
US20130339652A1 (en) 2013-12-19
WO2013186646A1 (en) 2013-12-19
US20130339654A1 (en) 2013-12-19
US9811472B2 (en) 2017-11-07
DE112013002938T5 (de) 2015-03-19
GB2517356A (en) 2015-02-18
US9785569B2 (en) 2017-10-10
CN104380270B (zh) 2017-08-25
GB2517356B (en) 2020-03-04

Similar Documents

Publication Publication Date Title
DE112013002938B4 (de) Übersetzen der Basistabelle von Speichern
DE112013002934B4 (de) Verwalten eines Zugreifens auf Seitentabelleneinträge
DE112005002405B4 (de) Fehlerverarbeitung für Direktspeicherzugriffs-Adreßübersetzung
DE102014014076A1 (de) Reduzierte Adressenkonvertierung mit mehreren Seitengrößen
DE102020104701B4 (de) System zur Lokalisierung von Cachedaten
DE602004011018T2 (de) Ungültigkeitserklärung eines speichers und löschen von puffereinträgen
DE69721590T2 (de) Ein bereichsbasiertes seiten-table-walk-bit verwendendes verfahren sowie vorrichtung
DE60003273T2 (de) Verfahren und Vorrichtung zur Erzeugung einer Eingabeadresse
DE112013001751T5 (de) Hybride Adressumsetzung
DE112018003032T5 (de) Cachestruktur, die ein logisches verzeichnis verwendet
DE112006001642T5 (de) Adressfensterunterstützung für Direktspeicherzugriffsumsetzung
DE112013004397T5 (de) Auswählbare Adressumsetzungsmechanismen
DE112005002328T5 (de) Cachespeicherungsunterstützung für Direktspeicherzugriffsadreßübersetzung
DE112005002298T5 (de) Leistungssteigerung einer Adreßübersetzung unter Verwendung von Übersetzungstabellen, die große Adreßräume umfassen
DE3805107A1 (de) Verfahren und vorrichtung zur steuerung virtueller adressraeume eines virtuellen speichers
DE112017001027T5 (de) Seitenfehlerbehebung
DE112018002032T5 (de) Gemeinsames nutzen von virtuellen und realen übersetzungen in einem virtuellen cache
DE112018002028T5 (de) Umsetzungsunterstützung für einen virtuellen cache
DE102020134207A1 (de) Sichere Adressübersetzungsdienste unter Verwendung kryptographisch geschützter physischer Hostadressen
DE102022104654A1 (de) Verfahren und einrichtung zum aktivieren eines cache (devpic) zum speichern von prozessspezifischen informationen innerhalb von vorrichtungen, die adressübersetzungsdienst (ats) unterstützen
DE112020005106T5 (de) Verfahren und systeme zum umsetzen von virtuellen adressen in einem auf virtuellem speicher beruhenden system
DE112013003006B4 (de) Verwalten von Seitentabelleneinträgen in einem Verarbeitungssystem
DE102011055097A1 (de) Speichersystem und damit verbundenes Betriebsverfahren
DE102019215455A1 (de) KONFIGURATIONS-CACHE FÜR DIE ARM SMMUv3
DE102014117891B4 (de) Durchladefehlermechanismus

Legal Events

Date Code Title Description
R012 Request for examination validly filed
R079 Amendment of ipc main class

Free format text: PREVIOUS MAIN CLASS: G06F0013000000

Ipc: G06F0012100000

R079 Amendment of ipc main class

Free format text: PREVIOUS MAIN CLASS: G06F0013000000

Ipc: G06F0012100000

Effective date: 20150409

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