DE69721590T2 - Ein bereichsbasiertes seiten-table-walk-bit verwendendes verfahren sowie vorrichtung - Google Patents

Ein bereichsbasiertes seiten-table-walk-bit verwendendes verfahren sowie vorrichtung Download PDF

Info

Publication number
DE69721590T2
DE69721590T2 DE69721590T DE69721590T DE69721590T2 DE 69721590 T2 DE69721590 T2 DE 69721590T2 DE 69721590 T DE69721590 T DE 69721590T DE 69721590 T DE69721590 T DE 69721590T DE 69721590 T2 DE69721590 T2 DE 69721590T2
Authority
DE
Germany
Prior art keywords
tlb
alternative
address
routine
replacement
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Lifetime
Application number
DE69721590T
Other languages
English (en)
Other versions
DE69721590D1 (de
Inventor
Koichi Yamada
Neil Gary HAMMOND
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.)
Idea Corp USA
Original Assignee
Idea Corp USA
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 Idea Corp USA filed Critical Idea Corp USA
Application granted granted Critical
Publication of DE69721590D1 publication Critical patent/DE69721590D1/de
Publication of DE69721590T2 publication Critical patent/DE69721590T2/de
Anticipated expiration legal-status Critical
Expired - Lifetime 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]
    • 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/68Details of translation look-aside buffer [TLB]
    • G06F2212/681Multi-level TLB, e.g. microTLB and main TLB

Description

  • HINTERGRUND DER ERFINDUNG
  • Gebiet der Erfindung
  • Die vorliegende Erfindung bezieht sich im Allgemeinen auf mikroprozessorbasierte Computersysteme, und insbesondere bezieht sich die vorliegende Erfindung auf Speicherverwaltungseinheiten zur Verwendung in Verbindung mit Hochleistungsmikroprozessoren, wie in den Ansprüchen dargelegt.
  • Beschreibung der verwandten Technik
  • Moderne mikroprozessorbasierte Computersysteme verwenden üblicherweise eine virtuelle Adressierung. Die virtuelle Adressierung ermöglicht dem Computersystem, einen virtuellen Speicherbereich zu erzeugen, der größer ist als der tatsächliche physikalische Speicherbereich. Im Allgemeinen wird eine virtuelle Speicherumgebung durch die Strukturierung der Partitionen des Hauptspeichers in Seiten unterstützt, um einen großen adressierbaren Speicherbereich zu erzeugen. Es könnte beispielsweise ohne virtuellen Speicher ein untragbar großer Teil des Hauptspeichers benötigt werden, um mehrere Anwendungen zu speichern und auszuführen. Mit virtuellem Speicher wird gleichzeitig nur ein Teil jeder Anwendung von dem Festplattenlaufwerk in den Hauptspeicher geladen, was gestattet, daß mehrere Programme mit nur einem relativ kleinen Teil des Hauptspeichers ablaufen.
  • Häufig müssen virtuelle Adressen in physikalische Adressen übersetzt werden, um eine virtuelle Speicherumgebung zu unterstützen. Ein Verfahren, das eine Speicherverwaltungseinheit eines Mikroprozessors verwendet, um die Übersetzung von virtuellen Adressen in physikalische Adressen auszuführen, ist der Zugriff auf Seitentabellen, die regulär im Speicher gespeichert sind. Der wiederholte normale Zugriff auf diese Übersetzungstabellen im Hauptspeicher verlangsamt tendenziell die Gesamtsystemleistung.
  • Um die Notwendigkeit des Zugriffs auf Seitentabellen im Speicher zur Ausführung der Adreßübersetzung zu reduzieren, verwenden moderne Mikroprozessorsysteme häufig einen Übersetzungsnachschlagepuffer (TLB) für das Speichern oder Cache-Speichern von jüngst erzeugten Übersetzungen von virtuellen in physikalische Adressen. Man kann sich den TLB als eine spezielle Art von Cache-Speicher vorstellen. Der TLB wird im Allgemeinen im Zusammenhang mit einem Seiten-Fehlversuchs-Handler verwendet, welcher für jene Adressen, die in dem TLB nicht cache-gespeichert sind, einen neuen TLB-Eintrag erzeugt. Im Betrieb wird auf den TLB anfänglich zugegriffen, um zu bestimmen, ob der TLB die physikalische Adresse enthält, die einer virtuellen Adresse entspricht, die einen bestimmten Speicherort identifiziert. Wenn die virtuelle Adresse in dem TLB gefunden wird, sagt man, daß es einen „Treffer" gegeben hat, und die physikalische Adresse wird einfach nur direkt aus dem TLB bereitgestellt. Wenn die virtuelle und die physikalische Adresse nicht in dem TLB cache-gespeichert sind, dann sagt man, daß es einen TLB„Fehlversuch" gegeben hat, und der Seiten-Fehlversuchs-Handler wird verwendet, um einen TLB-Ersetzungseintrag bereitzustellen, der der gewünschten virtuellen Adresse entspricht. Üblicherweise führt ein hardwareimplementierter Seiten-Fehlversuchs-Handler einen Seitentabellendurchlauf einer im Hauptspeicher gespeicherten Seitentabelle aus, um den TLB-Ersetzungseintrag bereitzustellen. Der Seiten-Fehlversuchs-Handler wird üblicherweise in Hardware implementiert, um die Zeit zu minimieren, die zum Ausführen eines Seitentabellendurchlaufs und zur Bereitstellung der TLB-Ersetzungen erforderlich ist.
  • 1 zeigt eine Blockdarstellung eines dem Stand der Technik entsprechenden mikroprozessorbasierten Computersystems 101, das eine virtuelle Speicherumgebung verwendet. In 1 sind die Elemente, die oberhalb der gestrichelten Linie 103 angeordnet sind, im Allgemeinen in dem Mikropro zessor angeordnet, und die Elemente, die unterhalb der gestrichelten Linie 103 angeordnet sind, sind im Hauptspeicher des Computersystems 101 angeordnet. Wie in 1 gezeigt, wird eine virtuelle Adresse 105 erzeugt und der TLB 107 wird durchsucht, um zu bestimmen, ob der TLB einen Eintrag enthält, der der virtuellen Adresse 105 entspricht. Wenn eine Übereinstimmung gefunden wird, oder wenn es einen TLB-Treffer gibt, wird schnell die physikalische Adresse 109 erzeugt und für einen Speicherzugriff an die (nicht dargestellte) Buseinheit geleitet. Im Allgemeinen können die meisten Seitenübersetzungsanforderungen von dem TLB 107 bedient werden. Wenn keine Übereinstimmung gefunden wird, oder wenn es einen TLB-Fehlversuch gibt, wird im Allgemeinen ein Seitentabellendurchlauf auf der Seitentabelle 111 ausgeführt, und es wird eine TLB-Ersetzung 119 für TLB 107 bereitgestellt. Wenn der Seitentabellendurchlauf in dem dem Stand der Technik entsprechenden Computersystem 101 gesperrt wird, wird im Allgemeinen auch der virtuelle Speicher gesperrt.
  • Die Größe des virtuellen Adreßbereichs moderner Mikroprozessoren ist kontinuierlich erhöht worden. Mehrere Bereiche des adressierbaren virtuellen Speicherbereichs werden von einer Reihe moderner Mikroprozessoren unterstützt. Der zunehmende virtuelle Adreßbereich erfordert umfangreiche Seitentabellenstrukturen. Um die Seitentabelle und die Seitentabelleneinträge effektiv zu verwalten, unterteilt eine Anzahl moderner Computersysteme – anstelle der Mikroprozessoren – den virtuellen Bereich in mehrere Regionen von adressierbarem virtuellem Bereich. Es wird erneut auf 1 Bezug genommen; es können N Bits 123 der virtuellen Adresse 105 zugewiesen werden, um 2N verschiedene Regionen des virtuellen Adreßbereichs zu repräsentieren. Jede der 2N-Regionen kann für beliebig viele unterschiedliche Verwendungen genutzt werden. Des Weiteren kann jede der Varianten der verschiedenen Verwendungen für die verschiedenen Regionen des virtuellen Speichers verschiedene Speicherzugriffseigen schaften aufweisen. Dementsprechend kann sich ein optimales TLB-Ersetzungsschema für eine Region von dem optimalen TLB-Ersetzungsschema für andere spezielle Regionen des virtuellen Adreßbereichs unterscheiden.
  • Ein Problem bei dem dem Stand der Technik entsprechenden Computersystem 101 besteht darin, daß es nicht möglich ist, eine optimierte Routine für eine spezielle Region des virtuellen Speichers zu implementieren, da das TLB-Ersetzungsschema auf alle 2N-Regionen des virtuellen Adreßbereichs in dem Computersystem 101 angewendet wird. Im Allgemeinen werden die Seitentabellendurchläufe der Seitentabelle 111 in Hardware optimiert, um die Zeit zu minimieren, die zur Bereitstellung von Mehrzweck-TLB-Ersetzungen 119 benötigt wird.
  • Man beachte, daß bei einigen anderen dem Stand der Technik entsprechenden Computersystemen der Seitentabellendurchlauf nicht in Hardware, sondern in Software implementiert wird. Die Verwendung der Software-Routinen zur Bereitstellung der TLB-Ersetzungen in diesen dem Stand der Technik entsprechenden Computersystemen gestattet, daß die Algorithmen für die Seitentabellendurchläufe, falls gewünscht, angepaßt werden können. Die ausschließliche Verwendung von Software für alle TLB-Ersetzungen ermöglicht jedoch keine optimale Leistung, da die Software-Leistung im Allgemeinen langsamer als die Hardware-Leistung ist.
  • Somit wird ein regionsbasiertes Seitentabellendurchlaufschema benötigt, welches regionsbasierte Seitentabellendurchläufe des virtuellen Speichers gestattet. Dementspre- chend hätte jede einzelne Region des virtuellen Adreßbereichs die Option, unabhängig von den anderen Regionen des virtuellen Adreßbereichs über ein separates TLB-Ersetzungsschema zu verfügen. Ein derartiges regionsbasiertes Seitentabellendurchlaufschema würde eine Erhöhung der Geschwindigkeit des gesamten Systems und erhöhte Flexibilität bei den Speicherverwaltungstechniken bereitstellen.
  • ZUSAMMENFASSENDE DARSTELLUNG DER ERFINDUNG
  • Es werden ein Verfahren und eine Einrichtung nach den Ansprüchen 1 und 7 zur Implementierung eines regionsbasierten Seitentabellendurchlaufs beschrieben. Bei einem Ausführungsbeispiel wird ein Adreßübersetzungsmechanismus beschrieben, der für die Übersetzung einer virtuellen Adresse eines in Regionen strukturierten virtuellen Speichers in eine physikalische Adresse in dem Speicher konfiguriert ist, der mit einem Prozessor eines Computersystems gekoppelt ist. Der Adreßübersetzungsmechanismus enthält ein Regionsregister, welches einer Region der virtuellen Adresse entspricht. Das Regionsregister enthält einen Freigabeindikator. Ein Übersetzungsnachschlagepuffer, der mit dem Regionsregister gekoppelt ist, und gekoppelt ist, um eine virtuelle Adresse zu empfangen, ist so konfiguriert, daß er einen Seiteneintrag enthält, der zur Bestimmung einer physikalischen Adresse verwendet wird. Der Adreßübersetzungsmechanismus enthält einen Standardvorgabe-Ersetzungsmechanismus, welcher konfiguriert ist, um als Antwort auf einen TLB-Fehlversuch den Seiteneintrag an den TLB bereitzustellen, wenn sich der Freigabeindikator in dem Regionsregister in einem ersten Zustand befindet. Wenn sich der Freigabeindikator des Regionsregisters in einem zweiten Zustand befindet, ist ein alternativer in dem Adreßübersetzungsmechanismus enthaltender Ersetzungsmechanismus so konfiguriert, daß er den Seiteneintrag an den TLB bereitstellt, um als Antwort auf einen TLB-Fehlversuch die gewünschte physikalische Adresse zu bestimmen. Weitere Eigenschaften und Vorteile der vorliegenden Erfindung werden aus der detaillierten Beschreibung, den Figuren und Ansprüchen, die nachfolgend dargelegt werden, ersichtlich.
  • KURZBESCHREIBUNG DER ZEICHNUNGEN
  • Die Darstellung der vorliegenden Erfindung in den zugehörigen Zeichnungen ist als Beispiel und nicht als Beschränkung zu verstehen.
  • 1 ist eine Blockdarstellung eines dem Stand der Technik entsprechenden Computersystems mit einem TLB und einer entsprechenden Seitentabelle.
  • 2 ist eine Darstellung, die die verschiedenen virtuellen Regionen zeigt, die von einem Teil der Bits einer virtuellen Adresse adressiert werden können.
  • 3 ist ein Computersystem, das einen TLB und einen regionsbasierten Seitentabellendurchlauf in Übereinstimmung mit der Lehre der vorliegenden Erfindung aufweist.
  • 4 ist eine Blockdarstellung, die zeigt, wie bei einem Ausführungsbeispiel der vorliegenden Erfindung eine physikalische Adresse aus der virtuellen Adresse erzeugt wird.
  • 5 ist ein Flußdiagramm, das die Schritte darstellt, die bei einem Ausführungsbeispiel der vorliegenden Erfindung ausgeführt werden.
  • DETAILLIERTE BESCHREIBUNG
  • Es werden ein Verfahren und eine Einrichtung zur Implementierung eines regionsbasierten Seitentabellendurchlaufs offenbart. In der folgenden Beschreibung werden zahlreiche spezielle Details, wie beispielsweise Speichergrößen oder Anzahl von Regionen, dargelegt, um ein umfassendes Verständnis der vorliegenden Erfindung zu ermöglichen. Es wird jedoch für einen Fachmann ersichtlich sein, daß die speziellen Details nicht verwendet werden müssen, um die vorliegende Erfindung auszuführen. In anderen Fällen wurden bekannte Materialien oder Verfahren nicht im Detail be schrieben, um die Verschleierung der vorliegenden Erfindung zu vermeiden.
  • Wie vorher erwähnt wurde, hat die Größe des virtuellen Adreßbereichs in modernen Prozessoren zugenommen. 2 ist eine Darstellung des virtuellen Adreßbereichs gemäß einem Ausführungsbeispiel der vorliegenden Erfindung. Die virtuelle Adresse 201 enthält 64 Bits, die von 0 bis 63 numeriert sind. Bei einem Ausführungsbeispiel der vorliegenden Erfindung werden N obere Bits der virtuellen Adresse 201 verwendet, um 2N oder acht verschiedene virtuelle Regionen 203 zu identifizieren. Wie in dem in 2 dargestellten Beispiel gezeigt wird, hat jede der verschiedenen virtuellen Regionen somit 264–N Bytes von adressierbarem Bereich.
  • Betriebssysteme unterteilen den virtuellen Speicher häufig in mehrere Regionen und wenden verschiedene Einsatzmodelle, Sicherungen und Paging-Vorgehensweisen auf die verschiedenen Regionen an. wenn ein Betriebssystem auf eine bestimmte Region eine andere Paging-Vorgehensweise anwenden muß, ist das optimale Übersetzungsnachschlagepuffer(TLB)-Ersetzungsverfahren möglicherweise für die Behandlung von TLB-Fehlversuchen in anderen Regionen nicht ideal. Die vorliegende Erfindung gestattet die Verwendung verschiedener TLB-Ersetzungsverfahren für TLB-Fehlversuche, die in einer bestimmten Region auftreten, ohne die TLB-Ersetzungsverfahren anderer Regionen zu beeinflussen.
  • Es wird nun auf 3 Bezug genommen; es wird eine Blockdarstellung eines Computersystems 301 in Übereinstimmung mit der Lehre der vorliegenden Erfindung gezeigt. Bei einem Ausführungsbeispiel der vorliegenden Erfindung sind jene Elemente oberhalb der gestrichelten Linie 303 in der Speicherverwaltungseinheit eines Prozessors des Computer- systems 301 angeordnet, und jene Elemente unterhalb der gestrichelten Linie 303 sind im Speicher des Computersystems 301 angeordnet. Es werden N Bits 307 der virtuellen Adresse 305 verwendet, um 2N verschiedene Regionen zu identifizie ren. Die 2N-Regionsregister 309 sind in dem Computersystem 301 enthalten. Jedes einzelne Regionsregister entspricht Eins-zu-Eins einer der Regionen, die von den N Bits 307 der virtuellen Adresse 305 identifiziert wurde. Bei einem Ausführungsbeispiel ist der TLB 313 gekoppelt, um die virtuelle Adresse 305 und eine (nicht dargestellte) Regions-ID aus dem entsprechenden Regionsregister 309 zu empfangen, um einen Seiteneintrag zur Bestimmung einer physikalischen Adresse 315 zu erzeugen. Wie nachfolgend detaillierter beschrieben wird, verwendet der TLB 313 Informationen sowohl von den Regionsregistern 309 als auch von der virtuellen Adresse 305, um die physikalische Adresse 315 zu bestimmen.
  • Für den Fall, daß es in dem TLB 313 einen TLB-Fehlversuch gibt, wird eine TLB-Ersetzung 323 bereitgestellt. Das Computersystem 301 enthält eine virtuelle Hash-Seitentabelle (VHPT) 325, welche konfiguriert ist, um eine TLB-Ersetzung 323 an den TLB 313 bereitzustellen. Es ist klar, daß die vorliegende Erfindung, obwohl sie mit speziellen Details zur VHPT beschrieben wird, ebenso auf jede beliebige Seitentabellenstruktur angewendet werden kann. In einigen Fällen führt die vorliegende Erfindung zur Bereitstellung einer TLB-Ersetzung 323 einen Seitentabellendurchlauf der VHPT 325 aus, der dem Seitentabellendurchlauf der Seitentabelle 111 in dem dem Stand der Technik entsprechenden Computersystem 101 ähnelt. In anderen Fällen kann eine Software-Routine in Software 327 ausgeführt werden, um im Fall eines TLB-Fehlversuchs eine TLB-Ersetzung 323 an den TLB 313 bereitzustellen. Die Auswahllogik 321 ist gekoppelt, um ein TLB-Fehlversuch-Signal 323 von dem TLB 313 sowie ein Freigabebit VE (VHPT-Freigabe) 319 von einem Master-Register 317 zu empfangen. Im Gegensatz zum Stand der Technik ist die erfindungsgemäße Auswahllogik 321 ebenfalls mit den Regionsregistern 309 gekoppelt, um ein zusätzliches Freigabebit VE 311 zu empfangen, das mit der bestimmten Region verknüpft ist, die von den N Bits 307 der virtuellen Adresse 305 adressiert wird. Des Weiteren enthält das Computersystem 301 die alternativen Vektoren 329, auf welche die Auswahllogik 321 zugreift, wenn eine Software-Routine in der Software 327 auszuführen ist, um eine TLB-Ersetzung 323 an TLB 313 bereitzustellen.
  • Die Operation eines der Ausführungsbeispiele der vorliegenden Erfindung ist folgende: Wenn eine virtuelle Adresse 305 in eine physikalische Adresse 315 übersetzt wird, empfängt der TLB 313 Informationen von der virtuellen Adresse 305 und dem entsprechenden Regionsregister 309, um die physikalische Adresse 315 zu bestimmen. Wenn es einen TLB-Treffer gibt, wird die physikalische Adresse 315 aus den der virtuellen Adresse 305 und dem zugehörigen Regionsregister 309 entsprechenden Informationen bestimmt, die in dem TLB 313 enthalten sind. Wenn es einen TLB-Fehlversuch gibt, wird eine solche Bedingung der Auswahllogik 321 von dem TLB-Fehlversuch-Signal 323 angezeigt. Der VHPT-Durchläufer wird von der „Und"-Bedingung der zwei Steuerbits VE-Bit 319 und VE-Bit 311 der entsprechenden von N Bits 307 identifizierten Region freigegeben.
  • Unter besonderer Bezugnahme auf die Regionsregister 309 definiert jedes Regionsregister seine bestimmten Regionsattribute. Das VE-Bit 311 jedes Regionsregisters 309 steuert, ob die VHPT-Struktur 325 nach TLB-Fehlversuchen, die in dieser bestimmten Region auftreten, zu durchsuchen ist. Wenn das VE-Bit 311 des Regionsregisters gesetzt ist, wird die VHPT-Suche nach TLB-Fehlversuchen, die in dieser bestimmten Region auftreten, unabhängig von allen anderen Regionen ausgeführt. Wenn das VE-Bit 311 für diese bestimmte Region nicht gesetzt ist, wird die VHPT-Suche nach TLB-Fehlversuchen für diese bestimmte Region nicht ausgeführt. Statt dessen wird eine alternative Software-Routine in Software 327 ausgeführt, die von den alternativen Vektoren 329 identifiziert wird. Es ist klar, daß durch die optionale Bereitstellung der alternativen TLB-Fehlversuch-Vektoren 329 für be stimmte Regionen das Betriebssystem mit seinen eigenen Software-Handlern verschiedene TLB-Einfügungsverfahren implementieren kann.
  • Das Master-Register 317 enthält ebenfalls ein Freigabebit VE 319, welches bei einem Ausführungsbeispiel der vorliegenden Erfindung die VHPT-Tabelle in dem virtuellen Adreßbereich verankert. Das Master-Register 317 enthält das VE-Bit 319, um die gesamte VHPT-Umgebung zu steuern. Wenn das VE-Bit 319 deaktiviert ist, ist die VHPT-Suche nach jeglichen TLB-Fehlversuchen bedingungslos gesperrt. Das heißt, alle TLB-Fehlversuche werden an die alternativen TLB-Fehlversuch-Vektoren 329 übermittelt, wenn das VE-Bit 319 gesperrt ist. Wenn das VE-Bit 319 aktiviert wird, wird die VHPT-Suche nach in dem Regionsbereich auftretenden TLB-Fehlversuchen ausgeführt, wenn das entsprechende VE-Bit 311 des Regionsregisters 309 ebenfalls aktiviert wird.
  • Dementsprechend wird ein Seitentabellendurchlauf des VHPT 325 ausgeführt, wenn die Auswahllogik 321 ein aktives VE-Bit 319 des Master-Registers 317 und ein aktives VE-Bit 311 von dem entsprechenden Regionsregister 309 empfängt. Das heißt, wenn das VE-Bit 319 und das VE-Bit 311 eines entsprechenden Regionsregisters 309 beide aktiv sind, dann signalisiert die Auswahllogik 321 der VHPT 325 über ein Signal 331, daß ein Seitentabellendurchlauf von VHPT 325 auszuführen ist, um eine TLB-Ersetzung 323 an den TLB 313 bereitzustellen. Wenn jedoch das VE-Bit 311 des durch N Bits 307 identifizierten Regionsregisters 309 nicht freigegeben ist, dann signalisiert die Auswahllogik 321 der Software-Routine in Software 327 über ein Signal 333, daß sie die TLB-Ersetzung 323 bereitstellen soll. Des Weiteren ist ein alternativer Vektor 329 in dem Computersystem 301 enthalten, um auf die Startadresse einer bestimmten TLB-Ersetzungs-Routine im Speicher zu zeigen. Dementsprechend kann jede bestimmte Region, die von den Bits 307 identifiziert wird, eine optimierte Software-Routine in Software 327 verwenden, auf wel che der alternative Vektor 329 zeigt, um im Fall eines TLB-Fehlversuchs die TLB-Ersetzung 323 an den TLB 313 bereitzustellen.
  • Bei einem Ausführungsbeispiel der vorliegenden Erfindung enthalten die alternativen Vektoren 329 einen separaten al-ternativen Befehls-TLB-Fehlversuch-Vektor 335 und einen al-ternativen Daten-TLB-Fehlversuch-Vektor 337. Der alternative Befehls-TLB-Fehlversuch-Vektor 335 identifiziert die Software-Routine und Software 327, die im Fall eines Befehls-TLB-Fehlversuchs auszuführen ist, während der alternative Daten-TLB-Fehlversuch-Vektor 337 die Software-Routine in Software 327 identifiziert, die im Fall eines Daten-TLB-Fehlversuchs auszuführen ist.
  • Bei einem weiteren Ausführungsbeispiel der vorliegenden Erfindung gestattet das Sperren des Seitentabellendurchlaufs der VHPT 325 dem Software-TLB-Ersetzungsalgorithmus, einen Leistungsüberwachungscode einzubeziehen. Das heißt, man kann die Leistungsüberwachung während eines TLB-Fehlversuchs in einer isolierten Region aktiveren, ohne andere Regionen zu beeinflussen oder einen neuen Kern nur für diesen Zweck erforderlich zu machen. Ein typisches Szenario könnte sein, daß man eine exzessive TLB-Überlastung überwachen kann. Ein Leistungsüberwachungsprogramm in der Software 327 kann durch das Deaktivieren des VE-Bits 311 dieser bestimmten Region ausgeführt werden. Eine derartige Leistungsüberwachungs-Routine kann die Adressen und Speicherzugriffe in einem Puffer protokollieren. Auf diese Daten kann ein Anwendungsschreiber oder ein Tool Bezug nehmen, das den Anwendungsschreiber beim Diagnostizieren von Problemen unterstützt. Es ist klar, daß die vorliegende Erfindung diese Fähigkeit in isolierten Regionen mit dem Standardkern bereitstellt, ohne andere Regionen zu beeinflussen.
  • 4 ist eine Blockdarstellung, die zeigt, wie bei einem Ausführungsbeispiel der vorliegenden Erfindung eine virtuelle Adresse 401 in eine physikalische Adresse 407 übersetzt wird. Wie in 4 gezeigt, enthält die virtuelle Adresse 401 eine virtuelle Regionsnummer (VRN) 413, eine virtuelle Seitennummer (VPN) 411 und einen Offset 409. Die VRN 413 identifiziert ein bestimmtes Regionsregister 403. Jedes Regionsregister enthält das oben diskutierte VE-Bit 421 und eine Regions-ID 419.
  • Wenn die virtuelle Adresse 401 in die physikalische Adresse 407 übersetzt wird, empfängt der erfindungsgemäße TLB 405 die Regions-ID 419 und die VPN 411 der bestimmten virtuellen Adresse 401 von dem Regionsregister 403 und die virtuelle Adresse 401. Der TLB wird nach einem Eintrag durchsucht, der der gewünschten Regions-ID und der VPN entspricht. Wenn dieser bestimmte Eintrag gefunden wird, wird ein entsprechender Seiteneintrag, eine physikalische Seitennummer (PPN) 417 identifiziert und an die physikalische Adresse 407 gesendet. Der Offset 409 der virtuellen Adresse 410 wird dann mit der PPN 417 kombiniert, um die physikalische Adresse 407 zu konstruieren.
  • 5 ist ein Flußdiagramm 501 der Verarbeitungsschritte, die bei einem Ausführungsbeispiel der vorliegenden Erfindung ausgeführt werden. Wie in Verarbeitungsblock 503 angezeigt wird, wird eine virtuelle Adresse erhalten. Als Nächstes wird der TLB nach einem entsprechenden Eintrag durchsucht, wie in Verarbeitungsblock 505 gezeigt. Wenn eine TLB-Übereinstimmung gefunden wird, dann wird die Seitennummer der physikalischen Adresse erhalten, wie in Verarbeitungsblock 519 angezeigt. Wenn jedoch keine TLB-Übereinstimmung gefunden wird, dann wird bestimmt, ob das Master-VHPT-Freigabebit gesetzt ist und ob das VHPT-Freigabebit für die spezielle Region gesetzt ist, wie in den Entscheidungsblöcken 509 und 511 angezeigt. Falls ja, dann wird der Seitentabellendurchlauf hardwaremäßig ausgeführt, um den TLB-Eintrag zu ersetzen. wenn entweder das Master-VHPT-Freigabebit oder das VHPT-Freigabebit einer speziellen Region nicht gesetzt ist, dann wird auf den entsprechenden alternativen Vektor aus dem Speicher für die spezielle Region zugegriffen und die entsprechende Software-Routine in der Software wird ausgeführt, um den TLB-Eintrag für die spezielle Region zu ersetzen, wie in den Verarbeitungsschritten 513 und 517 angezeigt. Wenn die Seitennummer der physikalischen Adresse erhalten wird, wie in Verarbeitungsblock 519 angezeigt, wird die physikalische Adresse gebildet, wie in Verarbeitungsblock 521 angezeigt.
  • Somit sind ein Verfahren und eine Einrichtung beschrieben worden, die einen regionsbasierten Seitentabellendurchlauf implementieren. Der offenbarte regionsbasierte Seitentabellendurchlauf gestattet, daß für einige Regionen eine VHPT durchlaufen wird und für andere Regionen speziellen Software-Routinen ausgeführt werden, wenn ein TLB-Fehlver- such auftritt. Der offenbarte regionsbasierte Seitentabellendurchlauf gestattet, daß verschiedene Paging-Vorgehensweisen auf bestimmte Regionen des virtuellen Speichers angewendet werden, da das Standardvorgabe-TLB-Einfügungsverfahren, das in der VHPT-Struktur implementiert ist, möglicherweise nicht geeignet ist, TLB-Fehlversuche für alle Regionen jederzeit zu behandeln. Des Weiteren gestattet der offenbarte regionsbasierte Seitentabellendurchlauf die Implementierung anderer TLB-Fehlversuchs-bezogener Routinen, wie beispielsweise einer Leistungsüberwachungs-Software zur Diagnostizierung von Paging-Problemen, die in einer Region auftreten, ohne andere Regionen zu beeinflussen oder einen neuen Kern für diesen speziellen Zweck erforderlich zu machen.

Claims (13)

  1. Ein zum Übersetzen einer virtuellen Adresse (305), in eine physikalische Adresse (315) ausgebildeter Adreßübersetzungsmechanismus in einem Computersystem (301) mit einem Prozessor und einem mit dem Prozessor gekoppelten Speicher, wobei die virtuelle Adresse (305) einen in Bereiche organisierten virtuellen Speicher adressiert, wobei der Adreßübersetzungsmechanismus aufweist: ein Bereichsregister (309), das einen Freigabeindikator (311) aufweist, wobei das Bereichsregister (309) einem Bereich der virtuellen Adresse (305) entspricht; einen Übersetzungsnachschlagepuffer TLB (313), der mit dem Bereichsregister (309) gekoppelt ist und so eingekoppelt ist, daß er die virtuelle Adresse (305) empfängt, wobei der TLB (313) so ausgebildet ist, daß er einen Seiteneintrag enthält, der verwendet wird, um die physikalische Adresse (315) zu bestimmen; ein Standardvorgabe-Hardware-Ersetzungsmechanismus (325) zum Durchsuchen einer in dem Speicher gespeicherten Seitentabelle, der so ausgebildet ist, daß er dem TLB (313) den Seiteneintrag in Erwiderung eines TLB (313)-Fehlversuchs und eines ersten Zustands des Bereichsregister-Freigabeindikators (311) zur Verfügung stellt; und einen alternativen Software-Ersetzungsmechanismus (327), der so ausgebildet ist, daß er dem TLB (313) den Seiteneintrag zum Bestimmen der physikalischen Adresse (315) in Erwiderung des TLB (313)-Fehlversuchs und eines zweiten Zustands des Bereichsregister-Freigabeindikators (311) zur Verfügung stellt.
  2. Der Adreßübersetzungsmechanismus nach Anspruch 1, ferner aufweisend einen Master-Freigabeindikator (319), wobei der Standardvorgabe-Ersetzungsmechanismus (325) so aus gebildet ist, daß er dem TLB (313) den Seiteneintrag in Erwiderung eines TLB (313)-Fehlversuchs zur Verfügung stellt, wenn sich der Bereichsregister-Freigabeindikator (311) in dem ersten Zustand und der Master-Freigabeindikator (319) in einem ersten Zustand befindet, wobei der alternative Ersetzungsmechanismus (327) so ausgebildet ist, daß er dem TLB (313) den Seiteneintrag zum Bestimmen der pyhsikalischen Adresse (315) in Abhängigkeit von dem TLB (313)-Fehlversuch und einem zweiten Zustand des Master-Freigabeindikators (319) zur Verfügung stellt.
  3. Der Adreßübersetzungsmechanismus nach Anspruch 2, wobei der Standardvorgabe-Ersetzungsmechanismus (325) eine in dem Speicher gespeicherte virtuelle Hash-Seitentabelle (VHPT) und einen VHPT-Durchsuchmechanismus umfaßt, wobei der VHPT-Durchsuchmechanismus so ausgebildet ist, daß er die VHPT nach dem Seiteneintrag des TLB (313) in Erwiderung des TLB (313)-Fehlversuchs, des ersten Zustands des Bereichsregister-Freigabeindikators (311) und des ersten Zustands des Master-Freigabeindikators (319) durchsucht.
  4. Der Adreflübersetzungsmechanismus nach Anspruch 1, wobei der alternative Ersetzungsmechanismus (327) einen in dem Speicher gespeicherten alternativen TLB-Vektor umfaßt, wobei der alternative TLB-Vektor auf eine in dem Speicher gespeicherte alternative TLB-Routine zeigt, wobei die alternative TLB-Routine dann, wenn sie von dem Prozessor ausgeführt wird, den Seiteneintrag zum Bestimmen der physikalischen Adresse (315) zur Verfügung stellen kann.
  5. Der Adreßübersetzungsmechanismus nach Anspruch 4, wobei die alternative TLB (313)-Routine eine Leistungsüberwachungsroutine umfaflt.
  6. Der Adreßübersetzungsmechanismus nach Anspruch 4, wobei der alternative TLB-Vektor einen alternativen Befehls-TLB-Vektor und einen alternativen Daten-TLB-Vektor umfaßt, wobei der alternative Befehls-TLB-Vektor auf eine in dem Speicher gespeicherte alternative Befehls-TLB-Routine und der alternative Daten-TLB-Vektor auf eine in dem Speicher gespeicherte alternative Daten-TLB-Routine zeigt.
  7. Ein Verfahren zum Übersetzen einer virtuellen Adresse (305) in eine physikalische Adresse (315) in einem Computersystem (301) mit einem Prozessor und einem mit dem Prozessor gekoppelten Speicher, wobei die virtuelle Adresse (305) einen in Bereiche organisierten virtuellen Speicher adressiert, wobei das Verfahren die Schritte umfaßt: Durchsuchen eines Übersetzungsnachschlagepuffers TLB (313) nach einem der virtuellen Adresse (305) entsprechenden Seiteneintrag; Durchsuchen einer in dem Speicher gespeicherten Seitentabelle nach dem Seiteneintrag mittels eines Standardvorgabe-Hardware-Ersetzungsmechanismus, wenn es in dem Schritt des Durchsuchens des TLB (313) einen TLB(313)-Fehlversuch gibt und wenn sich ein Bereichsregister-Freigabeindikator (311) in einem ersten Zustand befindet, wobei der Bereichsregister-Freigabeindikator (311) einem Bereich der virtuellen Adresse (305) entspricht; Ausführen einer alternativen Software-TLB-Ersetzungsroutine für den Seiteneintrag, wenn es in dem Schritt des Durchsuchens des TLB (313) einen TLB-Fehlversuch gibt und wenn sich der Bereichsregister-Freigabeindikator (311) in einem zweiten Zustand befindet; und Bestimmen der physikalischen Adresse (315).
  8. Das Verfahren nach Anspruch 7, wobei der Schritt des Durchsuchens der Seitentabelle ausgeführt wird, wenn sich der Bereichsregister-Freigabeindikator (311) in dem ersten Zustand und ein Master-Freigabeindikator (319) sich in einem ersten Zustand befindet.
  9. Das Verfahren nach Anspruch 7, wobei der Schritt des Ausführens der alternativen TLB-Ersetzungsroutine ausgeführt wird, wenn sich ein Master-Freigabeindikator (319) in einem zweiten Zustand befindet.
  10. Das Verfahren nach Anspruch 7, wobei der Schritt des Ausführens der alternativen TLB-Ersetzungsroutine den Schritt des Zugreifens auf einen alternativen TLB-Fehlversuchs-Vektor einschließt, um eine Adresse der alternativen TLB-Ersetzungsroutine zu bestimmen.
  11. Das Verfahren nach Anspruch 7, wobei der Schritt des Ausführens der alternativen TLB-Ersetzungsroutine den Schritt des Zugreifens auf einen alternativen Befehls-TLB-Fehlversuchs-Vektor einschließt, um eine Adresse der alternativen Befehls-TLB-Ersetzungsroutine zu bestimmen.
  12. Das Verfahren nach Anspruch 7, wobei der Schritt des Ausführens der alternativen TLB-Ersetzungsroutine den Schritt des Zugreifens auf einen alternativen Daten-TLB-Fehlversuchs-Vektor einschließt, um eine Adresse der alternativen Daten-TLB-Ersetzungsroutine zu bestimmen.
  13. Das Verfahren nach Anspruch 7, wobei der Schritt des Ausführens der alternativen TLB-Ersetzungsroutine den Schritt des Ausführens einer Leistungsüberwachungsroutine einschließt.
DE69721590T 1996-11-12 1997-11-12 Ein bereichsbasiertes seiten-table-walk-bit verwendendes verfahren sowie vorrichtung Expired - Lifetime DE69721590T2 (de)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US747943 1996-11-12
US08/747,943 US5809563A (en) 1996-11-12 1996-11-12 Method and apparatus utilizing a region based page table walk bit
PCT/US1997/020610 WO1998021712A2 (en) 1996-11-12 1997-11-12 Method and apparatus utilizing a region based page table walk bit

Publications (2)

Publication Number Publication Date
DE69721590D1 DE69721590D1 (de) 2003-06-05
DE69721590T2 true DE69721590T2 (de) 2004-03-25

Family

ID=25007343

Family Applications (1)

Application Number Title Priority Date Filing Date
DE69721590T Expired - Lifetime DE69721590T2 (de) 1996-11-12 1997-11-12 Ein bereichsbasiertes seiten-table-walk-bit verwendendes verfahren sowie vorrichtung

Country Status (5)

Country Link
US (3) US5809563A (de)
EP (1) EP1027656B1 (de)
AU (1) AU5200998A (de)
DE (1) DE69721590T2 (de)
WO (1) WO1998021712A2 (de)

Families Citing this family (82)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5809563A (en) * 1996-11-12 1998-09-15 Institute For The Development Of Emerging Architectures, Llc Method and apparatus utilizing a region based page table walk bit
US5918251A (en) * 1996-12-23 1999-06-29 Intel Corporation Method and apparatus for preloading different default address translation attributes
US6173248B1 (en) * 1998-02-09 2001-01-09 Hewlett-Packard Company Method and apparatus for handling masked exceptions in an instruction interpreter
EP1077698B1 (de) * 1998-05-11 2005-03-02 Pharma Mar, S.A. Ecteinascidinderivate
US6249906B1 (en) * 1998-06-26 2001-06-19 International Business Machines Corp. Adaptive method and system to minimize the effect of long table walks
US6205531B1 (en) * 1998-07-02 2001-03-20 Silicon Graphics Incorporated Method and apparatus for virtual address translation
US7565665B2 (en) 1998-09-09 2009-07-21 Microsoft Corporation Efficient linking and loading for late binding and platform retargeting
US7409694B2 (en) * 1998-09-09 2008-08-05 Microsoft Corporation Highly componentized system architecture with loadable virtual memory manager
US8434099B2 (en) 1998-09-09 2013-04-30 Microsoft Corporation Efficient linking and loading for late binding and platform retargeting
US6604184B2 (en) 1999-06-30 2003-08-05 Intel Corporation Virtual memory mapping using region-based page tables
US6535867B1 (en) * 1999-09-29 2003-03-18 Christopher J. F. Waters System and method for accessing external memory using hash functions in a resource limited device
US6604186B1 (en) * 1999-10-19 2003-08-05 Intel Corporation Method for dynamically adjusting memory system paging policy
US6393544B1 (en) * 1999-10-31 2002-05-21 Institute For The Development Of Emerging Architectures, L.L.C. Method and apparatus for calculating a page table index from a virtual address
US6594704B1 (en) * 1999-12-15 2003-07-15 Quarry Technologies Method of managing and using multiple virtual private networks in a router with a single routing table
US6480950B1 (en) * 2000-01-24 2002-11-12 Oracle International Corporation Software paging system
US6446187B1 (en) * 2000-02-19 2002-09-03 Hewlett-Packard Company Virtual address bypassing using local page mask
US6560689B1 (en) * 2000-03-31 2003-05-06 Intel Corporation TLB using region ID prevalidation
US6510508B1 (en) * 2000-06-15 2003-01-21 Advanced Micro Devices, Inc. Translation lookaside buffer flush filter
US6567817B1 (en) * 2000-09-08 2003-05-20 Hewlett-Packard Development Company, L.P. Cache management system using hashing
US6895527B1 (en) * 2000-09-30 2005-05-17 Intel Corporation Error recovery for speculative memory accesses
US20020087824A1 (en) * 2000-12-29 2002-07-04 Hum Herbert H.J. System and method for employing a process identifier to minimize aliasing in a linear-addressed cache
US6651156B1 (en) * 2001-03-30 2003-11-18 Mips Technologies, Inc. Mechanism for extending properties of virtual memory pages by a TLB
US6643759B2 (en) 2001-03-30 2003-11-04 Mips Technologies, Inc. Mechanism to extend computer memory protection schemes
US6684305B1 (en) * 2001-04-24 2004-01-27 Advanced Micro Devices, Inc. Multiprocessor system implementing virtual memory using a shared memory, and a page replacement method for maintaining paged memory coherence
US6877088B2 (en) * 2001-08-08 2005-04-05 Sun Microsystems, Inc. Methods and apparatus for controlling speculative execution of instructions based on a multiaccess memory condition
US7093094B2 (en) * 2001-08-09 2006-08-15 Mobilygen Corporation Random access memory controller with out of order execution
US6748401B2 (en) 2001-10-11 2004-06-08 International Business Machines Corporation Method and system for dynamically managing hash pool data structures
WO2003065165A2 (en) * 2002-01-31 2003-08-07 Arc International Configurable data processor with multi-length instruction set architecture
US6986006B2 (en) * 2002-04-17 2006-01-10 Microsoft Corporation Page granular curtained memory via mapping control
US7565509B2 (en) 2002-04-17 2009-07-21 Microsoft Corporation Using limits on address translation to control access to an addressable entity
US20030225992A1 (en) * 2002-05-29 2003-12-04 Balakrishna Venkatrao Method and system for compression of address tags in memory structures
US6910114B2 (en) * 2002-11-15 2005-06-21 Intel Corporation Adaptive idle timer for a memory device
US6983355B2 (en) * 2003-06-09 2006-01-03 International Business Machines Corporation Virtualization of physical storage using size optimized hierarchical tables
US8356158B2 (en) * 2003-07-15 2013-01-15 Broadcom Corporation Mini-translation lookaside buffer for use in memory translation
US7165147B2 (en) * 2003-07-22 2007-01-16 International Business Machines Corporation Isolated ordered regions (IOR) prefetching and page replacement
US7409526B1 (en) * 2003-10-28 2008-08-05 Cisco Technology, Inc. Partial key hashing memory
US7720930B2 (en) * 2003-12-30 2010-05-18 Intel Corporation Systems and methods using NIC-based prefetching for host TCP context lookup
US7434210B1 (en) * 2004-03-02 2008-10-07 Sun Microsystems, Inc. Interposing library for page size dependency checking
US7594234B1 (en) 2004-06-04 2009-09-22 Sun Microsystems, Inc. Adaptive spin-then-block mutual exclusion in multi-threaded processing
US7644409B2 (en) * 2004-06-04 2010-01-05 Sun Microsystems, Inc. Techniques for accessing a shared resource using an improved synchronization mechanism
US7475397B1 (en) 2004-07-28 2009-01-06 Sun Microsystems, Inc. Methods and apparatus for providing a remote serialization guarantee
US8843727B2 (en) * 2004-09-30 2014-09-23 Intel Corporation Performance enhancement of address translation using translation tables covering large address spaces
US20060072563A1 (en) * 2004-10-05 2006-04-06 Regnier Greg J Packet processing
US20060224815A1 (en) * 2005-03-30 2006-10-05 Koichi Yamada Virtualizing memory management unit resources
US7383374B2 (en) * 2005-03-31 2008-06-03 Intel Corporation Method and apparatus for managing virtual addresses
US7734895B1 (en) 2005-04-28 2010-06-08 Massachusetts Institute Of Technology Configuring sets of processor cores for processing instructions
US7409524B2 (en) * 2005-08-17 2008-08-05 Hewlett-Packard Development Company, L.P. System and method for responding to TLB misses
US8863230B1 (en) 2006-06-09 2014-10-14 Xilinx, Inc. Methods of authenticating a programmable integrated circuit in combination with a non-volatile memory device
US7987358B1 (en) * 2006-06-09 2011-07-26 Xilinx, Inc. Methods of authenticating a user design in a programmable integrated circuit
US7555628B2 (en) 2006-08-15 2009-06-30 Intel Corporation Synchronizing a translation lookaside buffer to an extended paging table
US20080065865A1 (en) * 2006-09-08 2008-03-13 Ilhyun Kim In-use bits for efficient instruction fetch operations
US8464024B2 (en) * 2007-04-27 2013-06-11 Hewlett-Packard Development Company, L.P. Virtual address hashing
US20080276067A1 (en) * 2007-05-01 2008-11-06 Via Technologies, Inc. Method and Apparatus for Page Table Pre-Fetching in Zero Frame Display Channel
US8205064B2 (en) * 2007-05-11 2012-06-19 Advanced Micro Devices, Inc. Latency hiding for a memory management unit page table lookup
US8266062B2 (en) * 2007-06-27 2012-09-11 Microsoft Corporation Server side reversible hash for telephone-based licensing mechanism
US8209488B2 (en) * 2008-02-01 2012-06-26 International Business Machines Corporation Techniques for prediction-based indirect data prefetching
US8161263B2 (en) * 2008-02-01 2012-04-17 International Business Machines Corporation Techniques for indirect data prefetching
US8161264B2 (en) * 2008-02-01 2012-04-17 International Business Machines Corporation Techniques for data prefetching using indirect addressing with offset
US8166277B2 (en) * 2008-02-01 2012-04-24 International Business Machines Corporation Data prefetching using indirect addressing
US8161265B2 (en) * 2008-02-01 2012-04-17 International Business Machines Corporation Techniques for multi-level indirect data prefetching
US8441474B2 (en) * 2008-06-25 2013-05-14 Aristocrat Technologies Australia Pty Limited Method and system for setting display resolution
US8296547B2 (en) * 2008-08-27 2012-10-23 International Business Machines Corporation Loading entries into a TLB in hardware via indirect TLB entries
US8516221B2 (en) * 2008-10-31 2013-08-20 Hewlett-Packard Development Company, L.P. On-the fly TLB coalescing
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
US9921967B2 (en) 2011-07-26 2018-03-20 Intel Corporation Multi-core shared page miss handler
US8984478B2 (en) 2011-10-03 2015-03-17 Cisco Technology, Inc. Reorganization of virtualized computer programs
US9256550B2 (en) 2012-03-28 2016-02-09 International Business Machines Corporation Hybrid address translation
US9740624B2 (en) 2012-10-08 2017-08-22 International Business Machines Corporation Selectable address translation mechanisms within a partition
US9355032B2 (en) 2012-10-08 2016-05-31 International Business Machines Corporation Supporting multiple types of guests by a hypervisor
US9280488B2 (en) 2012-10-08 2016-03-08 International Business Machines Corporation Asymmetric co-existent address translation structure formats
US9355040B2 (en) 2012-10-08 2016-05-31 International Business Machines Corporation Adjunct component to provide full virtualization using paravirtualized hypervisors
US9600419B2 (en) 2012-10-08 2017-03-21 International Business Machines Corporation Selectable address translation mechanisms
US9348757B2 (en) 2012-10-08 2016-05-24 International Business Machines Corporation System supporting multiple partitions with differing translation formats
US10311228B2 (en) * 2014-09-30 2019-06-04 Apple Inc. Using a fine-grained address space layout randomization to mitigate potential security exploits
US10311227B2 (en) 2014-09-30 2019-06-04 Apple Inc. Obfuscation of an address space layout randomization mapping in a data processing system
US9858201B2 (en) * 2015-02-20 2018-01-02 Qualcomm Incorporated Selective translation lookaside buffer search and page fault
US9658793B2 (en) 2015-02-20 2017-05-23 Qualcomm Incorporated Adaptive mode translation lookaside buffer search and access fault
US9836410B2 (en) * 2015-04-15 2017-12-05 Qualcomm Incorporated Burst translation look-aside buffer
EP3093773B1 (de) * 2015-05-13 2019-07-10 Huawei Technologies Co., Ltd. System und verfahren zur erzeugung von selektiven schnappschüssen einer datenbank
US20190188154A1 (en) * 2017-12-15 2019-06-20 Intel Corporation Translation pinning in translation lookaside buffers
US20230059273A1 (en) * 2021-08-10 2023-02-23 Baidu Usa Llc Side-channel attacks on secure encrypted virtualization (sev)-encrypted state (sev-es) processors

Family Cites Families (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4680700A (en) * 1983-12-07 1987-07-14 International Business Machines Corporation Virtual memory address translation mechanism with combined hash address table and inverted page table
GB2251102B (en) * 1990-12-21 1995-03-15 Sun Microsystems Inc Translation lookaside buffer
US5392410A (en) * 1992-04-30 1995-02-21 International Business Machines Corporation History table for prediction of virtual address translation for cache access
JPH0821003B2 (ja) * 1992-08-07 1996-03-04 インターナショナル・ビジネス・マシーンズ・コーポレイション コンピュータ・キャッシュ・システム用の加算器/ハッシュ回路
DE4410060B4 (de) * 1993-04-08 2006-02-09 Hewlett-Packard Development Co., L.P., Houston Übersetzungsvorrichtung zum Umsetzen einer virtuellen Speicheradresse in eine physikalische Speicheradresse
US5526504A (en) * 1993-12-15 1996-06-11 Silicon Graphics, Inc. Variable page size translation lookaside buffer
US5751990A (en) * 1994-04-26 1998-05-12 International Business Machines Corporation Abridged virtual address cache directory
US5835964A (en) * 1996-04-29 1998-11-10 Microsoft Corporation Virtual memory system with hardware TLB and unmapped software TLB updated from mapped task address maps using unmapped kernel address map
US5860144A (en) * 1996-08-09 1999-01-12 Oracle Corporation Addressing method and system for providing access of a very large size physical memory buffer to a number of processes
US5809563A (en) * 1996-11-12 1998-09-15 Institute For The Development Of Emerging Architectures, Llc Method and apparatus utilizing a region based page table walk bit
US6012132A (en) * 1997-03-31 2000-01-04 Intel Corporation Method and apparatus for implementing a page table walker that uses a sliding field in the virtual addresses to identify entries in a page table

Also Published As

Publication number Publication date
EP1027656B1 (de) 2003-05-02
AU5200998A (en) 1998-06-03
DE69721590D1 (de) 2003-06-05
WO1998021712A2 (en) 1998-05-22
US5809563A (en) 1998-09-15
US6430670B1 (en) 2002-08-06
US6216214B1 (en) 2001-04-10
WO1998021712A3 (en) 1998-07-09
EP1027656A2 (de) 2000-08-16
EP1027656A4 (de) 2001-04-11

Similar Documents

Publication Publication Date Title
DE69721590T2 (de) Ein bereichsbasiertes seiten-table-walk-bit verwendendes verfahren sowie vorrichtung
DE69637294T2 (de) Mikro-tlb mit parallelem zugriff zum beschleunigen der adressübersetzung
DE112005003863B3 (de) Verwalten von Prozessorressourcen während Architekturereignissen
DE60320026T2 (de) Verbessertes speichermanagement für echtzeit-anwendungen
DE69724572T2 (de) Verfahren und Vorrichtung zur Vorladung von verschiedenen vorgegebenen Adressenübersetzungsattributen
DE4410060B4 (de) Übersetzungsvorrichtung zum Umsetzen einer virtuellen Speicheradresse in eine physikalische Speicheradresse
DE69629800T2 (de) Adressenübersetzungsbuffer in einem rechnersystem
DE3151745C2 (de)
DE69823180T2 (de) Speicherzugangsschutz
DE2226382C3 (de) Datenverarbeitungsanlage mit mehreren Prozessoren und diesen zugeordneten Pufferspeichern
DE69732181T2 (de) Verfahren und gerät zum zwischenspeichern von systemverwaltungsinformationen mit anderen informationen
DE112005002405B4 (de) Fehlerverarbeitung für Direktspeicherzugriffs-Adreßübersetzung
DE10297433B4 (de) Speicherverwaltungseinheit, Verfahren zum Bereitstellen einer Speicherzugriffssicherheit auf der Basis einer linearen Adresse und Prozessor
DE3833933C2 (de) Informationsverarbeitungseinrichtung mit einer Adressenerweiterungsfunktion
DE112017001027B4 (de) Seitenfehlerbehebung
DE69629140T2 (de) Cachefähigkeitsattribut für virtuelle Adressen in Cachespeichern mit sowohl virtuellen als auch physikalischem Index
DE60036960T2 (de) Unterscheidung von feinkorntranslation
DE102014014076A1 (de) Reduzierte Adressenkonvertierung mit mehreren Seitengrößen
DE69634315T2 (de) Verfahren und Gerät zur Verwendung eines Ladebefehls der keinen Fehler verursacht
DE10002120A1 (de) Logikstruktur eines Adressumsetzpuffers
DE112005003098T5 (de) Verfahren und Vorrichtung zum Zugreifen auf einen physikalischen Speicher von einer CPU oder einem Prozessorelement mit hoher Leistung
DE112005002328T5 (de) Cachespeicherungsunterstützung für Direktspeicherzugriffsadreßübersetzung
DE10357804A1 (de) Neu-Beanspruchung vorhandener Felder in Adressübersetzungsdatenstrukturen zum Erweitern der Kontrolle über Speicherzugriffe
DE112007001171T5 (de) Verfahren für virtualisierten Transaktionsspeicher bei globalem Überlauf
DE3805107A1 (de) Verfahren und vorrichtung zur steuerung virtueller adressraeume eines virtuellen speichers

Legal Events

Date Code Title Description
8364 No opposition during term of opposition