DE112005003736T5 - Virtueller Übersetzungspuffer - Google Patents

Virtueller Übersetzungspuffer Download PDF

Info

Publication number
DE112005003736T5
DE112005003736T5 DE112005003736T DE112005003736T DE112005003736T5 DE 112005003736 T5 DE112005003736 T5 DE 112005003736T5 DE 112005003736 T DE112005003736 T DE 112005003736T DE 112005003736 T DE112005003736 T DE 112005003736T DE 112005003736 T5 DE112005003736 T5 DE 112005003736T5
Authority
DE
Germany
Prior art keywords
tlb
virtual
page number
data
command
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.)
Withdrawn
Application number
DE112005003736T
Other languages
English (en)
Inventor
Rongzhen Yang
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Intel Corp
Original Assignee
Intel Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Intel Corp filed Critical Intel Corp
Publication of DE112005003736T5 publication Critical patent/DE112005003736T5/de
Withdrawn legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/10Address translation
    • G06F12/1027Address translation using associative or pseudo-associative address translation means, e.g. translation look-aside buffer [TLB]

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

Ein Verfahren mit Empfangen einer Anforderung zum Nachschlagen einer virtuellen Seitenzahl an einen virtuellen Translation Lookaside Buffer (TLB) (Übersetzungspuffer), wobei der virtuelle TLB einen Befehls-TLB und einen Daten-TLB aufweist;
Ausführen des Nachschlagens der virtuellen Seitenzahl in dem virtuellen TLB; und
Ausgeben einer physikalischen Seitenzahl entsprechend der virtuellen Seitenzahl in dem virtuellen TLB.

Description

  • TECHNISCHES GEBIET
  • Ausführungsbeispiele der Erfindung beziehen sich auf das Gebiet von Computer und insbesondere, nicht aber ausschließlich, virtuelle Übersetzungspuffer.
  • HINTERGRUND
  • Moderne Computer nutzen virtuelle Speicher. Virtuelle Speicher erlauben es, dass der Speicheradressraum eines Computersystems größer ist als der verfügbare physikalische Speicherraum. Teile der Programme und der Daten, die gegenwärtig in Verwendung sind, können in dem Speicher gehalten werden, während nicht verwendete Teile auf einer Platte gespeichert werden, bis sie benötigt werden.
  • Die Beziehung virtueller Adressen zu physikalischen Adressen können unter Verwendung von Seitentabellen verwaltet werden. Seitentabellen werden verwendet, um Speicher in Einheiten von Seiten zu beeinflussen. Die Übersetzung zwischen virtuellen Adressen und physikalischen Adressen kann von einer Memory Management Unit (MMU) durchgeführt werden.
  • Die Verwendung kann einen Translation Lookaside Buffer (TLB) (Übersetzungspuffer) verwenden, der Adressinformation bezüglich der Seiten, auf die gerade Zugriff genommen worden ist, speichert. Der TLB kann die Ausführungszeit erhöhen, da die MMU schneller eine Adressinformation von dem TLB als von Seitentabellen gewinnen kann. Bei der heutigen Ausbildung von Speichern verringert ein TLB Fehler das Betriebsverhalten von Computersystemen.
  • KURZE ERLÄUTERUNG DER ZEICHNUNGEN
  • Nicht begrenzende und nicht erschöpfende Ausführungsbeispiele der vorliegenden Erfindung werden unter Bezugnahme auf die nachfolgenden Figuren beschrieben, wobei gleiche Bezugszeichen in den verschiedenen Ansichten einander entsprechende Teile angeben, wenn dies nicht anders angegeben ist.
  • 1 ist ein Diagramm, das ein Computersystem mit einem virtuellen TLB in Übereinstimmung mit einem Ausführungsbeispiel der Erfindung zeigt.
  • 2 ist ein Diagramm, das das Kompilieren eines Bytecodeverfahrens in Übereinstimmung mit einem Ausführungsbeispiel der Erfindung zeigt.
  • 3 ist ein Diagramm, das das Ausführen eines kompilierten Bytecodeverfahrens in Übereinstimmung mit einem Ausführungsbeispiel der Erfindung zeigt.
  • 4 ist ein Diagramm, das das Ausführen eines kompilierten Bytecodeverfahrens in Übereinstimmung mit einem Ausführungsbeispiel der vorliegenden Erfindung zeigt.
  • 5 ist ein Flussdiagramm, das die Logik und Operationen eines virtuellen TLB in Übereinstimmung mit einem Ausführungsbeispiel der Erfindung zeigt.
  • 6 ist ein Diagramm, das einen virtuellen TLB in Übereinstimmung mit einem Ausführungsbeispiel der Erfindung zeigt.
  • 7 ist ein Diagramm, das ein virtuelles TLB in Übereinstimmung mit einem Ausführungsbeispiel der Erfindung zeigt.
  • 8 zeigt Ausführungsbeispiele eines Computersystems zum Implementieren von Ausführungsbeispielen der Erfindung.
  • EINGEHENDE BESCHREIBUNG
  • In der nachfolgenden Beschreibung werden verschiedene spezifische Einzelheiten wiedergegeben, um ein vollständiges Verständnis der Beispiele der Erfindung zu ermöglichen. Der Fachmann wird jedoch erkennen, dass Ausführungsbeispiele der Erfindung ohne ein oder mehrere der spezifischen Einzelheiten verwirklicht werden kann, oder aber mit anderen Verfahren, Komponenten, Materialien usw. In anderen Beispielen sind allgemein bekannte Strukturen, Materialien oder Operationen nicht gezeigt oder in ihren Einzelheiten beschrieben, um das Verständnis dieser Beschreibung nicht zu erschweren.
  • In dieser Beschreibung bedeutet „ein Ausführungsbeispiel" oder „das Ausführungsbeispiel", dass ein bestimmtes Merkmal oder eine Struktur oder eine beschriebene Eigenschaft in Verbindung mit dem Ausführungsbeispiel in wenigstens einem Ausführungsbeispiel der vorliegenden Erfindung vorhanden ist. Das Auftreten der Ausdrücke „in einem Ausführungsbeispiel" oder „in dem Ausführungsbeispiel" an verschiedenen Orten in dieser Beschreibung bezieht sich nicht notwendigerweise immer auf dasselbe Ausführungsbeispiel. Die bestimmten Merkmale, Strukturen oder Eigenschaften können in jeder geeigneten Weise in einem oder mehreren Ausführungsbeispielen kombiniert sein.
  • In der nachfolgenden Beschreibung oder den Ansprüchen kann der Ausdruck „gekoppelt" und seine Ableitungen verwendet werden. „Gekoppelt" kann bedeuten, dass zwei oder mehrere Elemente in direktem Kontakt (physikalisch, elektrisch, magnetisch, optisch usw.) sind. „Gekoppelt" kann auch meinen, dass zwei oder mehr Elemente nicht in direktem Kontakt miteinander sind, jedoch miteinander zusammenwirken oder interagieren.
  • Es wird jetzt auf 1 Bezug genommen, in der ein Computersystem 100 in Übereinstimmung mit einem Ausführungsbeispiel der Erfindung gezeigt ist. Das Computersystem 100 weist ein Prozessor 101 auf, der mit dem Speicher 102 über einen Bus 104 gekoppelt ist. Ausführungsbeispiele eines Computersystems 100 können ein mobiles Gerät, etwa ein mobiles Telefon, einen PDA (Personal Digital Assistant), ein Abspielgerät oder ein ähnliches Gerät mit einer in dem Gerät befindlichen Verarbeitungsfähigkeit und der Fähigkeit zur drahtlosen Kommunikation, die von einer Batterie gespeist wird, aufweisen. Weitere Ausführungsbeispiele eines Computersystems sind unten in Verbindung mit 8 beschrieben. Bei einem Ausführungsbeispiel kann der Prozessor 101 mit einer Intel® XScaleTM Kernarchitektur übereinstimmen. Während Ausführungsbeispiele der Erfindung hier in Bezug auf einen XScaleTM Kern beschrieben worden sind, versteht es sich, dass Ausführungsbeispiele hier in verschiedenen Prozessorausbildungen implementiert sein können. Komponenten des unten beschriebenen Prozessors 101 können miteinander über einen oder mehrere Busse (nicht gezeigt) gekoppelt sein. Andere Komponenten des Prozessors 101, etwa Puffer, ein Leistungsmanagement Controller, eine Fehlersucheinheit usw. sind aus Gründen der Klarheit nicht gezeigt.
  • Der Prozessor 101 weist einen Instruktionscache 106 zum Speichern lokaler Kopien von Instruktionen auf. Der Prozessor 101 weist einen Datencache 108 zum Speichern von lokalen Kopien von Daten und einen Mini-Datencache 101 zum Vermeiden einer Zerstörung des Datencache 108 für einen häufigen Datenaustausch auf.
  • Der Prozessor 101 kann einen Ausführungskern 122 zum Ausführen von Befehlen aufweisen. Ein Befehl kann einen Mikrobefehl oder dergleichen beinhalten. Bei einem Ausführungsbeispiel kann der Prozessor 101 in Übereinstimmung mit einem Advanced RIC (Reduced Instruction Set Computer) Maschinen (ARM®) Befehlssatz einschließlich Thumb (T) odser Long Multiply (M) Varianten ausführen.
  • Bei einem Ausführungsbeispiel weist der Prozessor 101 eine Intel® XScaleTM Kernarchitektur auf, die einen ARM® Befehlssatzversion 5TE ausführen kann. Der Prozessor 101 kann Register 124 zum Halten von Befehlen oder Daten beinhalten.
  • Der Prozessor 101 kann eine Instruction Management Unit (IMMU) 112 mit einem Instruktions-TLB (TLB) 118 beinhalten. Eine Datenspeicher Management Unit (DMMU) 114 kann ein Daten-TLB (DTLB) 120 aufweisen. Bei einem Ausführungsbeispiel wird die IMMU 112 bei der Adressenübersetzung für Befehlszugriffe verwendet, während die DMMU 114 bei der Adressenübersetzung von Datenzugriffen verwendet wird. Der Begriff „Zugriff", wie er hier verwendet wird, kann ein Lesen oder ein Schreiben beinhalten.
  • Bei einem Ausführungsbeispiel kann ITLB 118 und DTLB 120 strukturiert sein als ein virtuelles TLB (VTLB) 116. Hier beschriebene Ausführungsbeispiele liefern eine Nachschlagadressinformation im ITLB 118 und DTLB 120 simultan, um TLB Fehler zu reduzieren und infolgedessen die Arbeitsleistung des Systems zu erhöhen.
  • Wenn eine MM, etwa die IMMU 112 oder DMMU 114, eine virtuelle Adresse für die Übersetzung empfängt, kann die MMU zunächst in der virtuellen TLB 116 suchen, um die entsprechende physikalische Adresse zu bestimmen. Die MMU kann eine Übersetzungsanforderung in Antwort auf eine Speicherzugriffsanforderung empfangen. Bei einem Ausführungsbeispiel teilen die IMMU 112 und DMMU 114 den Zugriff auf den Virtual TLB 116.
  • Wenn der Virtual TLB 116 nicht die notwendige Seiteninformation zur Übersetzung beinhaltet (bezeichnet als ein TLB-Fehler) kann die MMU ein Seitentabellennachschlagen initiieren. Ein Seitentabellennachschlagen verwendet eine oder mehrere Seitentabellen zum Bestimmen der physikalischen Adresse entsprechend einer virtuellen Adresse. Wenn ein TLB-Fehler auftritt, kann die Information von der oder die Seitentabelle(n) verwendet werden, um den virtuellen TLB 116 aufzufrischen, so dass der virtuelle TLB 116 eine Information bezüglich der gerade nachgeschlagenen Seiten beinhaltet. Bei einem Ausführungsbeispiel werden wenigstens ein Teil einer oder mehrerer Tabellenseiten in dem Speicher 102 gespeichert. Die verbleibenden Seitentabellenteile (wenn gegeben) können lokal gespeichert werden, etwa auf einer Festplatte. Bei einem Ausführungsbeispiel weist eine virtuelle Adresse eine virtuelle Seitenzahl und einen Offset auf. Der Offset wird zum Identifizieren einer bestimmten Adresse mit der virtuellen Seite verwendet. Der virtuelle TLB 116 kann eine physikalische Seitenzahl speichern, die einer gegebenen Seitenzahl entspricht. Bei einem Ausführungsbeispiel sind eine virtuelle Seite und eine physikalische Seite gleich groß, etwa, ohne darauf begrenzt zu sein, 512 Bytes, 4 Kilobytes (KB), 64 KB oder ähnlich. Ein MMU kann den Offset (vorgesehen in der virtuellen Adresse) mit der Basisadresse der physikalischen Seitenzahl kombinieren, um die physikalische Adresse zu bestimmen.
  • Beispielsweise kann eine virtuelle Adresse 8020 eine virtuelle Seitenzahl 1 (mit einer Basisadresse von 8000) und Offset 20 beinhalten. Die virtuelle Seitenzahl kann zur physikalischen Seite 5 übersetzen (die eine Basisadresse von 10000 hat). Die physikalische Adresse übersetzt so zu 10020 (Basisadresse 10000 + Offset 20).
  • Bei anderen Ausführungsbeispielen können die TLB Eingänge eine andere Information, etwa ein Seitenmodifikationsfeld halten, um anzugeben, ob die Seite modifiziert worden ist, ob ein gültiges Feld zum Angeben der Seite in Verwendung ist, ob ein Schutzfeld zum Angeben von Lese-/Schreibeinstellungen der Seiten, ein Prozessidentifikationsfeld zum Angeben eines Prozesses, der der Seite zugehörig ist, oder dergleichen.
  • Ausführungsbeispiele der Erfindung können TLB Fehler reduzieren und das Betriebsverhalten von Managed Runtime Environment (MRTE) verbessern. Ein Managed Runtime Environment (MRTE) wird zunehmend in Systemen, etwa tragbaren Geräten wichtig. Gleichzeitig kann das Laufen eines MRTE auf einem mobilen Prozessor eine Beschränkung des mobilen Prozessors bewirken.
  • MRTEs laden dynamisch Codes und führen diese aus. Der Code und andere bezogene Daten können von Klassendateien geladen werden. Jede Klassendatei kann eine einzige Klasse beschreiben, die Klassenvariable und Klassenverfahren beinhaltet. Bei einem Ausführungsbeispiel definiert eine Klassenvariable einen Datentyp, während ein Klassenverfahren eine Funktion definiert.
  • Ein MRTE erlaubt Anwendungsprogramme aufzubauen, die auf jeder Plattform laufen können, ohne dass diese für jede bestimmte Plattform neu zu beschreiben oder neu zu kompilieren ist. Der MRTE Code kann kompiliert werden zum Erzeugen eines Bytecodes. Der Bytecode ist ein von der Maschine unabhängiger Code. Bei der Ausführung wird der Bytecode in einen Maschinencode für eine Zielplattform konvertiert einfach durch einen Just-In-Time (JIT) Compiler, der auf der Plattform des Verwenders arbeitet. Der Plattformprozessor kann sodann den kompilierten Bytecode ausführen. Der JIT Compiler kennt die spezifischen Befehle und andere Besonderheiten des Plattformprozessors.
  • Ein üblicher MRTE ist die JAVATM Sprache, die auf einer Java Virtual Machine (JVMTM) läuft. Bei einem Ausführungsbeispiel kann das Computersystem 100 auf einer Java 2 Plattform, MicroEdition (J2METM) laufen.
  • Zwei Aspekte der Java Virtual Machine, die auf einem Intel® XScaleTM Plattform läuft, kann zu TLB Fehlern führen: für Hotspot-Implementationen und wortgetreue Implementationen. Diese Aspekte werden unten in Verbindung mit den 24 beschrieben.
  • Es wird wieder auf 2 Bezug genommen. Ein Verfahren 202 in Bytecode wird durch einen JIT Compiler 204 kompiliert. Der kompilierte Bytecode wird in einem virtuellen Adressraum 204 in dem kompilierten Codebereich 206 gespeichert. Bei einem Ausführungsbeispiel weist das Verfahren 202 ein JavaTM Verfahren und der JIT Compiler 204 weist einen JIT Compiler mit einer Hot Spot Optimierung, etwa einen JVM JIT Compiler auf.
  • Untersuchungen haben gezeigt, dass der größte Teil der Zeit eines Programms bei der Ausführung eines kleinen Teiles des Codes verbraucht wird, der als Hot Spot bezeichnet wird. Der JIT Compiler 204 kann den Bytecode analysieren, um zu bestimmen, wo diese Hot Spots in dem Code sind. Der JET Compiler 204 kann sodann Optimierungstechniken an den Hot Spots ausführen statt Zeit zu verschwenden mit dem Versuch, das gesamte Programm zu optimieren. Weiter kann die Hot Spot Optimierung dynamisch fortgesetzt werden, wenn das Programm ausgeführt wird, so dass der JIT Compiler 204 Optimierungstechniken an neuen Hot Spots anwenden kann.
  • Wenn das Verfahren kompiliert wird, wird der kompilierte Code als Daten in den virtuellen Adressraum 205 geschrieben. Das Verfahren 204 kann als ein Hot Spot identifiziert werden, das heißt, es ist ein „gefährdetes" Verfahren. Der kompilierte Codebereich 206 wird Seiten 208 des virtuellen Adressraums 205 angeordnet. Bei dem Ausführungsbeispiel von 2 ist jede Seite 4 Kilobytes (KB) groß, andere Ausführungsbeispiele können andere Seitengrößen verwenden. Bei einem Ausführungsbeispiel wird der kompilierte Bytecode in den kompilierten Codebereich 206 eingeschrieben unter Verwendung eines Store Register (STR) Befehls des ARM Befehlssatzes. Der STR Befehl wird zum Speichern eines Worts von einem Register in eine Speicheradresse verwendet.
  • Das Zugreifen (in diesem Fall „Schreiben") auf den Speicher führt zu einem Auffrischen des DTLB 120, wie bei 220 gezeigt. Da die Seiten 208 als Daten geschrieben sind, werden die DTLB Einträge 210 der DTLB 120 mit einer Seiteninformation aufgefrischt, die den Seiten 208 entspricht. Wie in 2 gezeigt, hat jede Seite 208 einen entsprechenden Eintrag 210 in dem DTLB 120.
  • Es wird jetzt auf 3 Bezug genommen. Wenn das Verfahren 202 durch den Ausführungskern 122 auszuführen ist, werden der kompilierte Bytecode (d. h. Befehle) entsprechend dem Verfahren 202 abgerufen. Bei einem Ausführungsbeispiel hält ein Programmzähler 202 die Speicheradresse des als nächstes auszuführenden Befehls. Der Programmzähler 302 kann ein Register des Prozessors 100 sein. Nachdem der Befehl, auf den von dem Programmzähler 302 hingewiesen worden ist, geholt worden ist, wird der Programmzähler 802 mit der Speicheradresse für den als nächstes zu holenden Befehl aufgefrischt.
  • Die Befehle werden unter Verwendung des ITLB 118 geholt, wie in Figur 320 gezeigt. Dieses Holen führt zu TLB Fehlern, da das ITLB 118 zunächst die Seiteninformation zur Übersetzung nicht beinhaltet. Wie in 2 gezeigt, wurde die Seiteninformation zu dem Kompilierungszeitpunkt in den DTLB 120 eingesetzt. Wenn der Programmzähler 320 die IMMU 112 zur Adressübersetzung währen des Holens des Befehls aufruft, hält der ITLB 118 nicht die Seiteninformation und ein TLB Fehler tritt auf.
  • Es wird auf 4 Bezug genommen. Die Kompilation von Buchstaben kann ebenfalls zu TLB-Fehlern führen. Kurz gesagt, weist ein Buchstabe eine Konstante auf, die für ein Verfahren durch Einschluss in dem ausführbaren Code verfügbar ist. Gewöhnlich ist der Wert der Konstante der Kompilierungszeit konstant. Wenn ein Kompilierverfahren 202 Schreibfehler hat, können diese Schreibfehler nicht direkt in der XScaleTM Befehlen repräsentiert werden. Diese Schreibfehler können in den Befehlen als Daten eingemischt sein.
  • In 4 weisen Seiten 404 in einem virtuellen Adressraum 205 sowohl Daten als auch Befehle auf. Der ITLB 118 kann eine Seiteninformation in Eintzrägen 402 entsprechend den Seiten 404 aufweisen und das DTLB 120 kann eine Seiteninformation in Einträgen 406 entsprechend den Seiten 404, die Daten halten, aufweisen.
  • Der Zugriff auf solche Buchstaben kann DTLB 120 verwenden, die Befehle können aber unter Verwendung von ITLB 118 zugreifbar sein. Beispielsweise ist der ARM Befehl LDR r1, [r5] ein Load Register Befehl zum Laden des Register r1 mit Daten, die an die Adresse in dem Register r5 gespeichert ist. Die Ausführung des LDR Befehls wird das Gewinnen eines Befehls bewirken (ITLB 118) und die Datenadresse bei r5 wird einen Datenzugriff bewirken (DTLB 120), Auf diese Weise verwendet dieselbe Seite einen DTLB Eintrag und einen ITLB Eintrag, wenn das Verfahren ausgeführt wird. Zusätzlich können TLB Fehler bei dem Übersetzen von virtuellen Adressen für andere Seiten auftreten, da es weniger verbleibende Einträge in DTLB 120 und ITLB 118 für diese anderen Seiten gibt.
  • Es wird jetzt auf 5 Bezug genommen. Hier ist ein Flussdiagramm 500 eines Ausführungsbeispiels der Erfindung gezeigt. Das Flussdiagramm 500 kann unter Verwendung einer Software, Hardware oder jeder Kombination daraus implementiert werden. Das Flussdiagramm 500 wird in Bezug auf 6 diskutiert, es versteht sich jedoch, dass das Flussdiagramm 500 nicht durch das in 6 gezeigt Ausführungsbeispiel eingeschränkt wird.
  • Ausgehend von Block 502 wird eine virtuelle Seitenzahl (Nachschlaganforderung) an dem virtuellen TLB empfangen. In 6 wird eine virtuelle Seitenzahl von dem virtuellen TLB 116 empfangen, wie bei 610 gezeigt ist. Das Nachschlagen der virtuellen Seitenzahl kann einen Befehlszugriff oder einen Datenzugriff betreffen.
  • Bei dem Ausführungsbeispiel von 6 hat das virtuelle TLB 116 64 TLB Einträge, was eine Kombination von 32 Einträgen des ITLB 118 und 32 Einträge des DTLB 120 ist. Während das ITLB 118 und das DTLB 120 physikalisch in dem IMMU 112 beziehungsweise dem DMMU 114 angeordnet sind, kann das TLB 116 logisch als ein einziges TLB betrachtet werden. Die zusätzliche Logik, die als virtuelle TLB Nachschlaglogik 602 gezeigt ist, bindet das ITLB 118 und das DTLB 120 zusammen zum Ermöglichen eines TLB Nachschlagens, das in dem ITLB 118 und dem DTLB 120 zur selben Zeit auszuführen ist. Die virtuelle TLB Nachschlaglogik 602 kann als eine Hardware, Software oder jede Kombination daraus implementiert werden.
  • Fortschreitend zu einem Block 504 wird ein virtuelles Seitenzahlennachschlagen in dem virtuellen TLB ausgeführt. In 6 führt die virtuelle TLB Nachschlaglogik 602 das Nachschlagen der virtuellen Seitenzahl in dem DTLB 120 und dem ITLB 118 aus. Bei einem Ausführungsbeispiel weist ein Nachschlagen der virtuellen Seitennummer das Suchen der Eingaben DTLB 120 und ITLB 118 für eine virtuelle Seitenzahl auf, die mit der virtuellen Seitenzahl der empfangenen virtuellen Adresse übereinstimmt. Wenn eine übereinstimmende virtuelle Seitenzahl gefunden ist, kann das TLB die entsprechende physikalische Seitennummer erzeugen. Das Nachschlagen der virtuellen Seitenzahl wird in dem DTLB 120 und dem ITLB 118 gleichzeitig durchgeführt. Auf diese Weise wird, wenn die virtuelle Adresse entweder in dem DTLB 120 oder dem ITLB 118 gefunden wird, ein TLB Treffer auftreten.
  • In 6 schreitet die Logik fort zu einem Entscheidungsblock 506, um zu entscheiden, ob die virtuelle Seitenzahl in dem virtuellen TLB 116 gefunden worden ist. Wenn die Antwort an den Entscheidungsblock 506 Ja ist, wird die physikalische Seitenzahl zurückgegeben. Wie in 6 bei 612 gezeigt, kann die physikalische Seitenzahl durch das virtuelle TLB 116 in dem Fall eines TLB Treffers rückgegeben werden. Bei einem Ausführungsbeispiel wird die MMU (IMMU 112 oder DMMU 114) die das Nachschlagen der virtuellen Seitenzahl verlangt, die zurückgegebene physikalische Seitenzahl zum Übersetzen der virtuellen Adresse in eine physikalische Adresse verwenden.
  • Wenn die Antwort an dem Entscheidungsblock Nein ist, schreitet die Logik zu einem Block 510 fort zum Ausführen eines Nachschlagens einer Seitentabelle in einem oder mehreren Seitentabellen. Bei einem Ausführungsbeispiel wird das Nachschlagen der Seitentabelle durch ein Betriebssystem durchgeführt.
  • Sodann wird in einem Entscheidungsblock 512 die Logik bestimmen, ob die verlangte Seite Daten oder einen Befehl(e) beinhaltet. Wenn die Seite einen Befehl(e) hält, setzt die Logik bei einem Block 514 fort zum Auffrischen des ITLB. Wenn die Seite Daten hält, setzt die Logik bei einem Block 516 zum Auffrischen des DTLB fort.
  • Bei einem Ausführungsbeispiel bestimmt die Logik des Entscheidungsblocks 512, ob der Zugriff auf Daten oder auf einen Befehl war wie folgt. Wenn die Speicheradressenanforderung von dem Programmzählerregister kam, war der Zugriff auf einen Befehl. In einem Intel® XScaleTM Ausführungsbeispiel kann der Speicher in einem Register 15 (r15) beibehalten werden.
  • In dem Fall eines Datenzugriffs erfolgt der Datenzugriff durch den spezifischen Befehl selbst, etwa einem LDR oder STR. Felder derartiger Befehle, die die Datenadresse beinhalten, werden ein Register angeben, das nicht das Programmzählerregister ist. Beispielsweise ist, wie oben beschrieben, der ARM Befehl LDR r1, [r5] ein Load Register Befehl zum Laden des Registers r1 mit Daten, die an der Adresse in Register r5 gespeichert sind. Die Logik wird realisieren, dass der Zugriff von dem Befehl selbst unter Verwendung eines anderen Register als des Programmzählerregisters erfolgt und der Zugriff daher ein Datenzugriff ist.
  • Das Auffrischen eines TLB kann das Ersetzen (wie durch Überschreiben) eines gegenwärtigen Eintrags des TLB mit einer Information von dem Speichertabellen nachschlagen einschließen. Der TLB speichert die virtuelle Seitenzahl und die entsprechende physikalische Seitenzahl der gerade zugegriffenen Seiten. Der Begriff „Zugriff", wie er hier verwendet wird, schließt das Lesen oder das Schreiben ein.
  • Bei einem Ausführungsbeispiel kann das ITLB 116 und das DTLB 120 aufgefrischt werden unter Verwendung eines Round-Robin-Algorithmus. Bei einem Ausführungsbeispiel beinhaltet der Round-Robin Algorithmus einen Zeiger auf den nächsten TLB Eintrag, der zu ersetzen ist. Der nächste TLB Eintrag, der zu ersetzen ist, ist der TLB Eintrag, der sequentiell dem letzten TLB Eintrag, der geschrieben worden ist, folgt. Wenn der Zeiger den letzten TLB Eintrag erreicht, kann der Zeiger zurückkehren zu dem ersten TLB Eintrag.
  • Es wird jetzt auf 7 Bezug genommen, in der ein Ausführungsbeispiel der vorliegenden Erfindung gezeigt ist. 7 zeigt eine Rechnerumgebung mit einer Hardwareebene 702 und einer Softwareebene 704. Es versteht sich, dass alternative Ausführungsbeispiele der Hard wareebene 702 oder der Softwareebene 704 zum Implementieren eines virtuellen TLB, wie es hier beschrieben worden ist, verwendet werden kann.
  • Eine virtuelle Adresse 706 wird an einem MMU, etwa dem IMMU 112 oder dem DMMU 114 zum Übersetzen empfangen. Die virtuelle Adresse 706 kann einen Process Identifier (PID), eine Virtual Page Number (VPN) und einen Offset beinhalten. Der PID wird verwendet, um den Speicheradressraum zwischen unterschiedlichen Prozessen zu unterscheiden. Der VPN ist für das virtuelle TLB 116 zum Nachschlagen vorgesehen.
  • 7 zeigt ein Ausführungsbeispiel des DTLB 120 und ITLB 118. Das DTLB 120 weist 32 TLB Einträge auf. Die Einträge, die in Figur 708 gezeigt sind, weisen PIDs und VPNs auf. Das DTLB 120 weist auch Einträge auf, gezeigt bei 712, die Physical Page Numbers (PPNs) entsprechend den PIDs und VPNs bei 708 entsprechen. Das ITLB 118 weist entsprechend 32 TLB Einträge auf. Die bei 714 gezeigten Einträge weisen PIDs und VPNs auf und die bei 718 gezeigten Einträge weisen entsprechende PPNs auf.
  • Bei einem TLB Nachschlagen, wird der VPN mit den VPNs in dem DTLB 120 unter Verwendung eines Comparator (CMP) 710 und mit den VPNs in ITLB 118 unter Verwendung des CMP 716 verglichen. Wenn die empfangene VPN entweder in dem DTLB 120 oder in ITLB 118 gefunden wird, können entsprechende PPN identifiziert werden.
  • Die DTLB 120 und die ITLB 118 geben an, wenn die empfangene VPN in einem der TLB gefunden worden ist. Wenn die VPN gefunden worden ist, wird die physikalische Adressübersetzung der empfangenen virtuellen Adresse von dem MMU (DMMU 112 und IMMU 114) durchgeführt. Wenn die empfangene VPN weder in dem DTLB 120 noch in dem ITLB 118 gefunden worden ist, wird ein TLB-Fehler durch den virtuellen TLB 116 angegeben.
  • Wie in 7 gezeigt ist, erzeugt sowohl der DTLB 120 als auch der ITLB 118 jeweils Angaben an ein OR-Gatter 720, die angeben, ob ein VPN erzeugt worden ist, und zwar ein logisches „1", wenn das VPN gefunden worden ist und ein logisches „0", wenn das VPN in den jeweiligen TLBs nicht gefunden worden ist. Das OR-Gatter 720 gibt ein logisches „1" aus, wenn die VPN entweder in dem DTLB 120 oder dem ITLB 118 gefunden worden ist. In die sem Fall wird die PPN entsprechend der VPN mit dem Offset von der virtuellen Adresse zur Bildung einer physikalischen Adresse 720 kombiniert.
  • Wenn weder das DTLB 120 noch das ITLB 118 den VPN gespeichert haben, wird das OR-Gatter 720 ein logisches „0" ausgeben, um einen TLB-Fehler anzugeben. Der TLB-Fehler wird das OS 722 veranlassen, eine Seitentabellen-Lesung (d. h. ein Nachschlagen) zu führen, wie in Figur 724 gezeigt, um die PPN zu finden, die dem VPN entspricht. Nach dem Lesen der Seitentabelle 724 wird die Softwareebene zu einem Entscheidungsblock 726 fortschreiten.
  • In dem Entscheidungsblock 726 bestimmt die Logik, ob eine virtuelle/physikalische Adresse ein Befehlsadressenzugriff ist oder ein Datenadressenzugriff. Wenn der Adressenzugriff eine Datenadresse ist, schreitet die Logik zu einem Block 728 fort, um den DTLB 120 unter Verwendung eines Round-Robin-Algorithmus aufzufrischen. Wenn der Adressenzugriff ein Befehlszugriff ist, schreitet die Logik zu einem Block 730 fort, um das ITLB 118 unter Verwendung eines Round-Robin-Algorithmus aufzufrischen.
  • Ausführungsbeispiele der vorliegenden Erfindung schaffen ein virtuelles TLB, das ein ITLB und ein DTLB einschließt. Ein TLB Nachschlagen für eine physikalische Seitenzahl entsprechend einer gegebenen virtuellen Seitenzahl kann gleichzeitig an dem ITLB und dem DTLB durchgeführt werden. Ausführungsbeispiele der Erfindung können implementiert sein auf einer Intel® XScaleTM Plattform, die ein MRT abfährt, etwa JVMTM zum Verbessern der Systemleistung aufgrund weniger TLB-Fehler.
  • AUSFÜHRUNGSBEISPIELE EINES RECHNERSYSTEMS
  • 8 zeigt Ausführungsbeispiele eines Computersystems 800, auf dem Ausführungsbeispiele der vorliegenden Erfindung implementiert werden können. Das Computersystem 800 weist einen Prozessor 802 und einen Speicher 804 auf, die mit einem Chipsatz 808 gekoppelt sind. Der Massenspeicher 812, der Nicht-Flüchtige Speicher (NVS) 806, die Netzwerkschnittstelle (I/F) 814 und das Eingabe-/Ausgabe (I/O) 818 können ebenfalls mit dem Chipsatz 808 gekoppelt sein. Ausführungsbeispiele eines Computersystems 800 weisen, ohne darauf begrenzt zu sein, einen Desktoprechner, einen Notebookrechner, einen Surfer ein mobiles Gerät, etwa ein Pocket Personal Computer (PC), ein mobiles Telefon, ein Abspielgerät oder dergleichen auf. Bei einem Ausführungsbeispiel weist das Computersystem 800 einen Prozessor 802 auf, der mit dem Speicher 804 gekoppelt ist, wobei der Prozessor 802 Befehle ausführt, die in dem Speicher 804 gespeichert sind. Der Prozessor 802 kann Ausführungsbeispiele des virtuellen TLB 116 beinhalten, wie hier beschrieben.
  • Der Prozessor 802 kann, ohne darauf begrenzt zu sein, ein Intel® Corporation x86, Pentium®, XScaleTM Familienrechner oder dergleichen aufweisen. Bei einem Ausführungsbeispiel kann das Computersystem 800 mehrere Prozessoren aufweisen. Bei einem weiteren Ausführungsbeispiel kann der Prozessor 802 zwei oder mehr Prozessorkerne aufweisen.
  • Der Speicher 804 kann, ohne darauf begrenzt zu sein, einen Dynamic Random Access Memory (DRAM), ein Static Random Access Memory (SRAM), ein Synchronized Dynamic Random Access Memory (SDRAM) oder dergleichen aufweisen. Bei einem Ausführungsbeispiel kann der Speicher 804 eine oder mehrere Speichereinheiten aufweisen, die nicht aufzufrischen sind.
  • Der Chipsatz 808 kann einen Speichercontroller, etwa ein Memory Controller Hub (MCH), einen Eingabe-/Ausgabecontroller, etwa einen Input/Output Controller Hub (ICH) oder dergleichen aufweisen. Bei einem alternativen Ausführungsbeispiel kann der Speichercontroller 804 in denselben Chip wie der Prozessor 802. Der Chipsatz 808 kann auch eine Eingangssystemtaktsystemunterstützung, eine Leistungsmanagementunterstützung, eine Audiounterstützung, eine Graphikunterstützung oder dergleichen aufweisen. Bei einem Ausführungsbeispiel ist der Chipsatz 808 mit einer Platine gekoppelt, die Stecker für den Prozessor 802 und den Speicher 804 aufweist.
  • Komponenten des Computersystems 800 können durch verschiedene Verbindungen verbunden sein, etwa einem Bus. Bei einem Ausführungsbeispiel kann eine Verbindung Punkt-zu-Punkt zwischen zwei Komponenten sein, bei anderen Ausführungsbeispielen kann die Verbindung mehr als zwei Komponenten verbinden. Solche Verbindungen können ein Peripheral Component Interconnect (PCI), wie ein PCI Express, ein System Management Bus (SMBUS), ein Low Pin Count (LPC) Bus, ein Serial Peripheral Interface (SPI) Bus, eine Accelerated Graphic Port (AGP) Schnittstelle aufweisen. Die I/O Gerät 818 kann eine Tastatur, eine Maus, ein Display, einen Drucker, einen Scanner oder dergleichen aufweisen.
  • Das Rechnersystem kann 800 kann mit externen Systemen verbinden über eine Netzwerkschnittstelle 814 unter Verwendung einer verdrahteten Verbindung, einer drahtlosen Verbindung oder jeder Kommunikation daraus. Die Netzwerkschnittstelle 814 kann, ohne darauf begrenzt zu sein, ein Modem, eine Network Interface Card (NIC) oder dergleichen aufweisen. Ein Trägerwellensignal 822 kann empfangen/übertragen werden von der Netzwerkschnittstelle 814. Bei dem in 8 gezeigten Ausführungsbeispiel wird das Trägerwellensignal 822 verwendet zum Verbinden des Computersystems 800 mit einem Netzwerk 824, etwa einem Local Area Network (LAN) zu einem Wide Area Network (WAN), dem Internet oder jeden Kombination daraus. Bei einem Ausführungsbeispiel ist das Netzwerk 824 weiter mit einem Computersystem 824 gekoppelt derart, dass das Computersystem 800 das und das Computersystem 826 über das Netzwerk 824 kommunizieren können.
  • Das Computersystem 800 kann ein Modul zur drahtlosen Kommunikation aufweisen. Das Modul zur drahtlosen Kommunikation kann ein Wireless Application Protocol verwenden zum Erstellen eines drahtlosen Kommunikationskanals. Das Modul zur drahtlosen Kommunikation kann einen drahtlosen Netzwerkstandard implementieren wie dem Institute of Electrical and Electronics Engineers (IEEE) 802.11 Standard, IEEE std. 802.11-1999, das von dem IEEE 1999 veröffentlicht worden ist.
  • Das Computersystem 800 weist weiter einen nicht-flüchtigen Speicher 806 auf, auf dem eine Firmware gespeichert sein kann. Nicht-flüchtige Speichereinheiten weisen, ohne darauf begrenzt zu sein, ein Read-Only Memory (ROM), einen Flash Speicher, einen Erasable Programmable Read Only Memory (EPROM), einen Electronically Erasable Programmable Read Only Memory (EEPROM), ein Non-Volatile Random Access Memory (NVRAM) oder dergleichen auf.
  • Der Massenspeicher 812 weist, ohne darauf begrenzt zu sein, eine magnetische Platte, etwa eine Festplatte, eine Magnetbandaufzeichnung, eine optische Platte oder dergleichen auf. Es ist berücksichtigt, dass die Befehle, die von dem Prozessor 802 ausführbar sind, in dem Massenspeicher 812, dem Speicher 804, dem nicht-flüchtigen Speicher 806 angeordnet sein können oder übertragen oder empfangen werden können über die Netzwerkschnittstelle 814.
  • Bei einem Ausführungsbeispiel kann das Computersystem 800 ein Betriebssystem (OS) ausführen. Ausführungsbeispiele eines OS weisen Microsoft Windows®, das Apple Macintosh® Betriebssystem, das Linux® Betriebssystem, das Unix® oder dergleichen auf.
  • Für die Zwecke dieser Beschreibung weist ein maschinenlesbares Medium jeden Mechanismus auf, der Information in einer Form, die von der Maschine (beispielsweise einem Rechner, einer Netzwerkeinheit, einem Personal Digital Assistant, einem Herstellungswerkzeug, jedes Gerät mit einem Satz von einem oder mehreren Prozessoren usw.) schafft (d. h. speichert oder überträgt). Beispielsweise weist ein maschinenlesbares Medium ohne darauf begrenzt zu sein, ein beschreibbares/nicht-beschreibbares Medium (beispielsweise ein Read-Only Memory (ROM), Random Access Memory (RAM), magnetisches Plattenspeichermedium, optisches Speichermedium, eine Flash-Speicher Einheit usw. auf.) Zusätzlich kann ein maschinenlesbares Medium voranschreitende Signale wie elektrische, optische, akustische oder andere Formen von voranschreitenden Signalen aufweisen. (beispielsweise Trägerwellen, Infrarotsignale, digitale Signale usw.).
  • Verschiedene Arbeitsweisen von Ausführungsbeispielen der vorliegenden Erfindung werden hier beschrieben. Diese Operationen können implementiert werden unter Verwendung einer Hardware, Software oder jede Kombination daraus. Diese Operationen können implementiert werden durch eine Maschine unter Verwendung eines Prozessors, eines Application Specific Integrated Circuit (ASIC), einem Field Programmable Gate Array (FPGA), oder dergleichen. Bei einem Ausführungsbeispiel können eine oder mehrere der beschriebenen Operationen Befehle geben, die auf einem maschinenlesbaren Medium gespeichert werden, die bei einer Ausführung durch die Maschine die Maschine dazu veranlassen, die beschriebenen Operationen auszuführen. Die Reihenfolge, in der einige oder alle der Operationen beschrieben worden sind, bedeutet nicht, dass diese Operationen notwendigerweise von der Reihenfolge abhängen. Eine alternative Reihenfolge versteht sich für den Fachmann, der diese Beschreibung gelesen hat. Es versteht sich weiter, dass nicht alle Operationen notwendigerweise in jedem Ausführungsbeispiel der Erfindung vorhanden sind.
  • Die obige Beschreibung der dargestellten Ausführungsbeispiele der Erfindung, einschließlich dessen, was in der Zusammenfassung beschrieben worden ist, soll nicht abschließend sein oder die Ausführungsbeispiele auf die genaue offenbarte Form beschränken. Obwohl bestimmte Ausführungsformen von und Beispiele der Erfindung hier beschrieben worden sind zum Zwecke der Illustration, sind äquivalente Abwandlungen möglich, wie der Fachmann erkennen wird. Diese Modifikationen können bei Ausführungsbeispielen der Erfindung im Lichte der obigen eingehenden Beschreibung gemacht werden. Die in den nachfolgenden Ansprüchen verwendeten Begriffe sollten nicht verstanden werden als die Erfindung auf die bestimmten Ausführungsbeispiele, die in der Beschreibung offenbart sind, zu begrenzen. Die nachfolgenden Ansprüche sind formuliert in Entsprechung mit den anerkannten Regeln der Anspruchsinterpretation.
  • ZUSAMMENFASSUNG
  • Eine virtuelle Seitenzahl-Nachschlaganforderung wird von einem virtuellen Translation Lookaside Buffer TLB empfangen, wobei die virtuelle TLB eine Befehls-TLB oder eine Daten-TLB aufweist. Ein Nachschlagen der virtuellen Seitenzahl in dem virtuellen TLB wird ausgeführt. Eine physikalischen Seitenzahl entsprechend der virtuellen Seitenzahl in dem virtuellen TLB wird ausgegeben.

Claims (23)

  1. Ein Verfahren mit Empfangen einer Anforderung zum Nachschlagen einer virtuellen Seitenzahl an einen virtuellen Translation Lookaside Buffer (TLB) (Übersetzungspuffer), wobei der virtuelle TLB einen Befehls-TLB und einen Daten-TLB aufweist; Ausführen des Nachschlagens der virtuellen Seitenzahl in dem virtuellen TLB; und Ausgeben einer physikalischen Seitenzahl entsprechend der virtuellen Seitenzahl in dem virtuellen TLB.
  2. Das Verfahren nach Anspruch 1, wobei das Ausführen des Nachschlagens der virtuellen Seitenzahl das gleichzeitige Nachschlagen der virtuellen Seitenzahl in dem Befehls-TLB und dem Daten-TLB aufweist.
  3. Das Verfahren nach Anspruch 1, weiter mit dem Ausführen eines Nachschlagens in einer Seitentabelle, wenn die virtuelle Adresse nicht in dem virtuellen TLB gefunden wird.
  4. Das Verfahren nach Anspruch 3, weiter mit dem Auffrischen des virtuellen TLB mit der virtuellen Seitenzahl und einer entsprechenden physikalischen Seitenzahl, die sich aus dem Nachschlagen in der Seitentabelle ergibt.
  5. Das Verfahren nach Anspruch 4, wobei das Auffrischen der virtuellen TLB aufweist: Auffrischen des Daten-TLB, wenn eine physikalische Adresse entsprechend der virtuellen Adresse Daten gespeichert hat; und Auffrischen des Befehls-TLB, wenn die physikalische Adresse entsprechend der virtuellen Adresse einen Befehl gespeichert hat.
  6. Das Verfahren nach Anspruch 4, wobei die virtuelle TLB unter Verwendung eines Round-Robin Algorithmus aufgefrischt wird.
  7. Das Verfahren nach Anspruch 3, wobei das Nachschlagen in der Seitentabelle durch ein Betriebssystem ausgeführt wird.
  8. Das Verfahren nach Anspruch 1, wobei die Nachschlaganforderung nach der virtuellen Seitenzahl von einer Data Management Unit (DMMU) oder einer Instruction Management Unit (IMMU) empfangen wird.
  9. Eine Vorrichtung mit: einem virtuellen Translation Lookaside Buffer (TLB) (Übersetzungspuffer), wobei der virtuelle TLB aufweist: einen Befehls-TLB und einen Daten-TLB und eine TLB Nachschlaglogik, die mit dem Befehls-TLB und dem Daten-TLB gekoppelt ist, wobei die TLB-Nachschlaglogik zum Nachschlagen einer virtuellen Seitenzahl in dem Befehls-TLB und dem Daten-TLB gleichzeitig erfolgt.
  10. Die Vorrichtung von Anspruch 9, wobei das virtuelle TLB eine physikalische Seitenzahl angibt, die der virtuellen Seitenzahl entspricht, wenn die virtuelle Adresse in dem Befehls-TLB oder dem Daten-TLB gefunden wird.
  11. Die Vorrichtung nach Anspruch 9, wobei die virtuelle TLB zum Berichten eines TLB-Fehlers, wenn die virtuelle Seitenzahl nicht in dem Befehls-TLB oder wenn die virtuelle Seitenzahl nicht in dem Daten-TLB gefunden wird, dient.
  12. Die Vorrichtung von Anspruch 9, weiter mit einem maschinenlesbaren Medium, das mit dem virtuellen TLB gekoppelt ist, wobei das maschinenlesbare Medium Befehle beinhaltet, die bei ihrer Ausführung bei Operationen ausführt mit: Empfangen eines TLB Fehlerindikators von dem virtuellen TLB und Durchführen eines Nachschlagens in einer Seitentabelle unter Verwendung einer virtuellen Adresse.
  13. Die Vorrichtung von Anspruch 12, wobei das maschinenlesbare Medium weiter Befehle beinhaltet, die, bei ihrer Ausführung, Operationen ausführt mit: Versehen der virtuellen TLB mit der virtuellen Seitenzahl und einer entsprechenden physikalischen Seitenzahl, die sich aus dem Nachschlagen der Seitentabelle ergibt.
  14. Die Vorrichtung nach Anspruch 13, wobei das maschinenlesbare Medium weiter Befehle aufweist, die bei ihrer Ausführung Operationen ausführen mit: Versorgen des Daten-TLB mit der virtuellen Seitenzahl und der entpsprechenden physikalischen Seitenzahl, wenn eine physikalische Adresse entsprechend der virtuellen Adresse Daten gespeichert hat; und Versorgen des Befehls-TLB mit der virtuellen Seitenzahl und der entsprechenden physikalischen Seitenzahl, wenn die physikalische Adresse entsprechend der virtuellen Adresse einen Befehl gespeichert hat.
  15. Die Vorrichtung von Anspruch 13, wobei die virtuelle TLB unter Verwendung eines Round-Robin-Algorithmus aufgefrischt wird.
  16. Die Vorrichtung nach Anspruch 9, wobei die Vorrichtung zum Ausführen von Befehlen im Wesentlichen in Übereinstimmung mit einem Advanced Risk (Reduced Instruction Set Computer) Maschinen (ARM) Befehlssatz ist.
  17. Ein System mit: einer Dynamic Random Access Memory (DRAM) Einheit; einem Prozessor, der mit der DRAM Einheit gekoppelt ist, wobei der Prozessor aufweist: einen virtuellen Translation Lookaside Buffer (TLB), wobei der virtuelle TLB aufweist: einen Befehls-TLB und einen Daten-TLB und eine TLB Nachschlaglogik, die mit der Befehls-TLB und der Daten-TLB gekoppelt ist, wobei die TLB-Nachschlaglogik zum Nachschlagen einer virtuellen Seitenzahl in dem Befehls-TLB und dem Daten-TLB gleichzeitig eingerichtet ist.
  18. Das System nach Anspruch 17, wobei das virtuelle TLB zum Ausgeben einer physikalischen Seitenzahl entsprechend der virtuellen Seitenzahl, dann, wenn die virtuelle Seitenzahl in dem Befehls-TLB oder dem Daten-TLB entspricht, eingerichtet ist.
  19. Das System nach Anspruch 17, weiter mit einem maschinenlesbaren Medium, das mit dem Prozessor gekoppelt ist, wobei das maschinenlesbare Medium Befehle beinhaltet, die bei ihrer Ausführung durch den Prozessor Operationen ausführen mit: Empfangen eines TLB-Fehlerindikators von der virtuellen TLB, dann, wenn die virtuelle Seitenzahl nicht in dem virtuellen TLB gefunden wird; und Ausführen des Nachschlagens in einer Seitentabelle in der DRAM Einheit unter Verwendung der virtuellen Adresse.
  20. Das System nach Anspruch 19, wobei das maschinenlesbare Medium weiter Befehle aufweist, die, wie bei Ausführung durch den Prozessor, Operationen ausführen mit: Versorgen des Daten TLB mit der virtuellen Seitenzahl und einer entsprechenden physikalischen Seitenzahl, wenn eine physikalische Adresse, die der virtuellen Adresse entspricht, Daten gespeichert hat; und Versorgen des Befehl-TLB mit der virtuellen Seitenzahl und einer entsprechenden physikalischen Seitenzahl, wenn die physikalische Adresse entsprechend der virtuellen Adresse einen Befehl gespeichert hat.
  21. Ein hergestellter Artikel mit: einem maschinenlesbaren Medium einschließlich Befehlen, die bei ihrer Ausführung durch eine Maschine, die Maschine veranlasst, Operationen auszuführen mit: Empfangen einer Nachschlaganforderung einer virtuellen Seitenzahl an einen virtuellen Translation Lookaside Buffer (TLB), wobei der virtuelle TLB einen Befehls-TKB und einen Daten TLB aufweist; Ausführen eines Nachschlagens der virtuellen Seitenzahl in dem virtuellen TLB, wobei das Ausführen des Nachschlagens der virtuellen Seitenzahl das Ausführen des Nachschlagens der virtuellen Seitenzahl in dem Befehl-TLB und dem Daten-TLB gleichzeitig aufweist; und Ausgeben einer physikalischen Seitenzahl entsprechend der virtuellen Seitenzahl in dem virtuellen TLB.
  22. Der Artikel nach Anspruch 21, wobei das maschinenlesbare Medium weiter Befehle beinhaltet, die bei Ausführung von einer Maschine, die Maschine veranlasst, Operationen auszuführen mit: Ausführen eines Seitentabellennachschlagens, wenn die virtuelle Adresse nicht in dem virtuellen TLB gefunden wird.
  23. Der Artikel von Anspruch 22, wobei das maschinenlesbare Medium weiter Befehle beinhaltet, die bei Ausführung von der Maschine, die Maschine veranlasst, Operationen auszuführen mit: Auffrischen des virtuellen TLB mit der virtuellen Seitenzahl und einer entsprechenden physikalischen Seitenzahl, die sich aus dem Nachschlagen der Seitentabellen ergibt.
DE112005003736T 2005-12-29 2005-12-29 Virtueller Übersetzungspuffer Withdrawn DE112005003736T5 (de)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/CN2005/002366 WO2007073624A1 (en) 2005-12-29 2005-12-29 Virtual translation lookaside buffer

Publications (1)

Publication Number Publication Date
DE112005003736T5 true DE112005003736T5 (de) 2008-11-13

Family

ID=38217670

Family Applications (1)

Application Number Title Priority Date Filing Date
DE112005003736T Withdrawn DE112005003736T5 (de) 2005-12-29 2005-12-29 Virtueller Übersetzungspuffer

Country Status (4)

Country Link
US (1) US20080282055A1 (de)
CN (1) CN101346706B (de)
DE (1) DE112005003736T5 (de)
WO (1) WO2007073624A1 (de)

Families Citing this family (22)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8594718B2 (en) 2010-06-18 2013-11-26 Intel Corporation Uplink power headroom calculation and reporting for OFDMA carrier aggregation communication system
WO2011160896A1 (en) 2010-06-25 2011-12-29 International Business Machines Corporation Method for address translation, address translation unit, data processing program, and computer program product for address translation
US9236064B2 (en) * 2012-02-15 2016-01-12 Microsoft Technology Licensing, Llc Sample rate converter with automatic anti-aliasing filter
EP3242213A1 (de) 2012-05-09 2017-11-08 Intel Corporation Ausführung anhand mehrerer seitentabellen
CN102929588B (zh) * 2012-09-28 2015-04-08 无锡江南计算技术研究所 众核处理器虚实地址转换方法
CN103116556B (zh) * 2013-03-11 2015-05-06 无锡江南计算技术研究所 内存静态划分虚拟化方法
WO2014143036A1 (en) * 2013-03-15 2014-09-18 Intel Corporation Method for pinning data in large cache in multi-level memory system
CN104375950B (zh) * 2013-08-16 2017-08-25 华为技术有限公司 一种基于队列对通信的物理地址确定方法及装置
US9824021B2 (en) * 2014-03-31 2017-11-21 International Business Machines Corporation Address translation structures to provide separate translations for instruction fetches and data accesses
US9715449B2 (en) 2014-03-31 2017-07-25 International Business Machines Corporation Hierarchical translation structures providing separate translations for instruction fetches and data accesses
US9734083B2 (en) 2014-03-31 2017-08-15 International Business Machines Corporation Separate memory address translations for instruction fetches and data accesses
US11829349B2 (en) 2015-05-11 2023-11-28 Oracle International Corporation Direct-connect functionality in a distributed database grid
US10007435B2 (en) * 2015-05-21 2018-06-26 Micron Technology, Inc. Translation lookaside buffer in memory
EP3454218B1 (de) * 2016-08-11 2023-02-01 Huawei Technologies Co., Ltd. Verfahren für zugriff auf tabelleneintrag in übersetzungspuffer (tlb) und prozessor-chip
CN110908931B (zh) * 2016-08-26 2021-12-28 中科寒武纪科技股份有限公司 Tlb模块的更新方法
US10719451B2 (en) * 2017-01-13 2020-07-21 Optimum Semiconductor Technologies Inc. Variable translation-lookaside buffer (TLB) indexing
US10719446B2 (en) * 2017-08-31 2020-07-21 Oracle International Corporation Directly mapped buffer cache on non-volatile memory
US10706150B2 (en) * 2017-12-13 2020-07-07 Paypal, Inc. Detecting malicious software by inspecting table look-aside buffers
CN109828932B (zh) * 2019-02-18 2020-12-18 华夏芯(北京)通用处理器技术有限公司 一种地址微调加速系统
CN111814202B (zh) 2020-08-31 2020-12-11 支付宝(杭州)信息技术有限公司 一种执行智能合约的方法、区块链节点和存储介质
CN113872948A (zh) * 2020-08-31 2021-12-31 支付宝(杭州)信息技术有限公司 一种执行智能合约的方法、区块链节点和节点设备
US20220206955A1 (en) * 2020-12-26 2022-06-30 Intel Corporation Automated translation lookaside buffer set rebalancing

Family Cites Families (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
GB2260004B (en) * 1991-09-30 1995-02-08 Apple Computer Memory management unit for a computer system
US5574877A (en) * 1992-09-25 1996-11-12 Silicon Graphics, Inc. TLB with two physical pages per virtual tag
US5613083A (en) * 1994-09-30 1997-03-18 Intel Corporation Translation lookaside buffer that is non-blocking in response to a miss for use within a microprocessor capable of processing speculative instructions
US6105113A (en) * 1997-08-21 2000-08-15 Silicon Graphics, Inc. System and method for maintaining translation look-aside buffer (TLB) consistency
US5953520A (en) * 1997-09-22 1999-09-14 International Business Machines Corporation Address translation buffer for data processing system emulation mode
JP2000057054A (ja) * 1998-08-12 2000-02-25 Fujitsu Ltd 高速アドレス変換システム
US6442666B1 (en) * 1999-01-28 2002-08-27 Infineon Technologies Ag Techniques for improving memory access in a virtual memory system
US6185669B1 (en) * 1999-02-18 2001-02-06 Hewlett-Packard Company System for fetching mapped branch target instructions of optimized code placed into a trace memory
US6446187B1 (en) * 2000-02-19 2002-09-03 Hewlett-Packard Company Virtual address bypassing using local page mask
US6854046B1 (en) * 2001-08-03 2005-02-08 Tensilica, Inc. Configurable memory management unit
KR100450675B1 (ko) * 2002-03-19 2004-10-01 삼성전자주식회사 성능향상 및 전력소모를 감소시킬 수 있는 tlb
WO2007036069A1 (en) * 2005-09-29 2007-04-05 Intel Corporation Data management for dynamically compiled software
US20070094476A1 (en) * 2005-10-20 2007-04-26 Augsburg Victor R Updating multiple levels of translation lookaside buffers (TLBs) field

Also Published As

Publication number Publication date
WO2007073624A1 (en) 2007-07-05
US20080282055A1 (en) 2008-11-13
CN101346706A (zh) 2009-01-14
CN101346706B (zh) 2011-06-22

Similar Documents

Publication Publication Date Title
DE112005003736T5 (de) Virtueller Übersetzungspuffer
DE102007063960B3 (de) Synchronisieren eines Übersetzungspufers (TLB) mit einer erweiterten Seitenwechseltabelle
DE112005003863B3 (de) Verwalten von Prozessorressourcen während Architekturereignissen
DE102007063946B4 (de) Guest-Host-Adressübersetzung für den Zugriff von Geräten auf einen Speicher in einem partitionierten System
US9244855B2 (en) Method, system, and apparatus for page sizing extension
DE112017003483T5 (de) Eingeschränkte adressumsetzung zum schutz vor vorrichtungs-tlb-anfälligkeiten
DE102014003798B4 (de) Verfahren zum Booten eines heterogenen Systems und Präsentieren einer symmetrischen Kernansicht
DE112017001027B4 (de) Seitenfehlerbehebung
DE102018000886A1 (de) Virtuelle Maschinenkommunikation auf Hardware-Basis
DE112010004971T5 (de) Ein System, Verfahren und eine Vorrichtung für einen Cache-Flush eines Seitenbereichs und TLB Invalidierung eines Bereichs von Einträgen
DE112013003731T5 (de) Neue befehls- und hocheffiziente Mikroarchitektur zum ermöglichen einer sofortigen Kontextumschaltung für Benutzerebenen-Threading
DE102010035603A1 (de) Bereitstellen von Hardwareunterstützung für gemeinsam benutzten virtuellen Speicher zwischen physischem Lokal- und Fernspeicher
DE102018125257A1 (de) Defragmentierter und effizienter mikrooperationscache
DE102015002582A1 (de) Architekturübergreifendes Kompatibilitätsmodul, um zuzulassen, dass ein Codemodul einer Architektur ein Bibliotheksmodul einer anderen Architektur verwendet
DE3832912A1 (de) Arbeitsstation mit virtueller adressierung in multibenutzer-betriebssystemen
DE102020208234A1 (de) Sichere Adressübersetzungsdienste unter Verwendung von Nachrichtenauthentifizierungscodes und Invalidierungsverfolgung
DE112007001988T5 (de) Gemeinsames Nutzen von Informationen durch Gäste in einer Virtuelle-Maschine-Umgebung
DE112006001642T5 (de) Adressfensterunterstützung für Direktspeicherzugriffsumsetzung
DE112005002304T5 (de) Adreßumsetzung für Eingabe/Ausgabe- Vorrichtungen mittels hierarchischer Umsetzungstabellen
DE102010046892A1 (de) Management und Implementierung von Metadaten in der Zentraleinheit unter Verwendung von Registererweiterungen
DE102018002294A1 (de) Effizientes bereichsbasiertes speicher-rückschreiben zum verbessern der host-zu-geräte-kommunikation für optimale energie und leistung
DE112016005919T5 (de) Verfahren und Vorrichtung zum Sub-Seiten-Schreibschutz
DE112017003332T5 (de) Öffnungszugriffsprozessoren, verfahren, systeme und befehle
DE102018001537A1 (de) System, vorrichtung und verfahren zum selektiven freigeben einer instruktionshandhabung auf lokalitäts-basis
DE112016005823T5 (de) Überwachen des betriebs eines prozessors

Legal Events

Date Code Title Description
OP8 Request for examination as to paragraph 44 patent law
R016 Response to examination communication
R016 Response to examination communication
R119 Application deemed withdrawn, or ip right lapsed, due to non-payment of renewal fee

Effective date: 20130702