DE69721590T2 - Ein bereichsbasiertes seiten-table-walk-bit verwendendes verfahren sowie vorrichtung - Google Patents
Ein bereichsbasiertes seiten-table-walk-bit verwendendes verfahren sowie vorrichtung Download PDFInfo
- 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
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/10—Address translation
- G06F12/1027—Address translation using associative or pseudo-associative address translation means, e.g. translation look-aside buffer [TLB]
- G06F12/1036—Address translation using associative or pseudo-associative address translation means, e.g. translation look-aside buffer [TLB] for multiple virtual address spaces, e.g. segmentation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/68—Details of translation look-aside buffer [TLB]
- G06F2212/681—Multi-level TLB, e.g. microTLB and main 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)
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 Computersystems101 , das eine virtuelle Speicherumgebung verwendet. In1 sind die Elemente, die oberhalb der gestrichelten Linie103 angeordnet sind, im Allgemeinen in dem Mikropro zessor angeordnet, und die Elemente, die unterhalb der gestrichelten Linie103 angeordnet sind, sind im Hauptspeicher des Computersystems101 angeordnet. Wie in1 gezeigt, wird eine virtuelle Adresse105 erzeugt und der TLB107 wird durchsucht, um zu bestimmen, ob der TLB einen Eintrag enthält, der der virtuellen Adresse105 entspricht. Wenn eine Übereinstimmung gefunden wird, oder wenn es einen TLB-Treffer gibt, wird schnell die physikalische Adresse109 erzeugt und für einen Speicherzugriff an die (nicht dargestellte) Buseinheit geleitet. Im Allgemeinen können die meisten Seitenübersetzungsanforderungen von dem TLB107 bedient werden. Wenn keine Übereinstimmung gefunden wird, oder wenn es einen TLB-Fehlversuch gibt, wird im Allgemeinen ein Seitentabellendurchlauf auf der Seitentabelle111 ausgeführt, und es wird eine TLB-Ersetzung119 für TLB107 bereitgestellt. Wenn der Seitentabellendurchlauf in dem dem Stand der Technik entsprechenden Computersystem101 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 Bits123 der virtuellen Adresse105 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 Computersystem101 angewendet wird. Im Allgemeinen werden die Seitentabellendurchläufe der Seitentabelle111 in Hardware optimiert, um die Zeit zu minimieren, die zur Bereitstellung von Mehrzweck-TLB-Ersetzungen119 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 Adresse201 enthält 64 Bits, die von 0 bis 63 numeriert sind. Bei einem Ausführungsbeispiel der vorliegenden Erfindung werden N obere Bits der virtuellen Adresse201 verwendet, um 2N oder acht verschiedene virtuelle Regionen203 zu identifizieren. Wie in dem in2 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 Computersystems301 in Übereinstimmung mit der Lehre der vorliegenden Erfindung gezeigt. Bei einem Ausführungsbeispiel der vorliegenden Erfindung sind jene Elemente oberhalb der gestrichelten Linie303 in der Speicherverwaltungseinheit eines Prozessors des Computer- systems 301 angeordnet, und jene Elemente unterhalb der gestrichelten Linie303 sind im Speicher des Computersystems301 angeordnet. Es werden N Bits307 der virtuellen Adresse305 verwendet, um 2N verschiedene Regionen zu identifizie ren. Die 2N-Regionsregister 309 sind in dem Computersystem301 enthalten. Jedes einzelne Regionsregister entspricht Eins-zu-Eins einer der Regionen, die von den N Bits 307 der virtuellen Adresse305 identifiziert wurde. Bei einem Ausführungsbeispiel ist der TLB313 gekoppelt, um die virtuelle Adresse305 und eine (nicht dargestellte) Regions-ID aus dem entsprechenden Regionsregister309 zu empfangen, um einen Seiteneintrag zur Bestimmung einer physikalischen Adresse315 zu erzeugen. Wie nachfolgend detaillierter beschrieben wird, verwendet der TLB313 Informationen sowohl von den Regionsregistern309 als auch von der virtuellen Adresse305 , um die physikalische Adresse315 zu bestimmen. - Für den Fall, daß es in dem TLB
313 einen TLB-Fehlversuch gibt, wird eine TLB-Ersetzung323 bereitgestellt. Das Computersystem301 enthält eine virtuelle Hash-Seitentabelle (VHPT)325 , welche konfiguriert ist, um eine TLB-Ersetzung323 an den TLB313 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-Ersetzung323 einen Seitentabellendurchlauf der VHPT325 aus, der dem Seitentabellendurchlauf der Seitentabelle111 in dem dem Stand der Technik entsprechenden Computersystem101 ähnelt. In anderen Fällen kann eine Software-Routine in Software327 ausgeführt werden, um im Fall eines TLB-Fehlversuchs eine TLB-Ersetzung323 an den TLB313 bereitzustellen. Die Auswahllogik321 ist gekoppelt, um ein TLB-Fehlversuch-Signal323 von dem TLB313 sowie ein Freigabebit VE (VHPT-Freigabe)319 von einem Master-Register317 zu empfangen. Im Gegensatz zum Stand der Technik ist die erfindungsgemäße Auswahllogik321 ebenfalls mit den Regionsregistern309 gekoppelt, um ein zusätzliches Freigabebit VE 311 zu empfangen, das mit der bestimmten Region verknüpft ist, die von den N Bits307 der virtuellen Adresse305 adressiert wird. Des Weiteren enthält das Computersystem301 die alternativen Vektoren329 , auf welche die Auswahllogik321 zugreift, wenn eine Software-Routine in der Software327 auszuführen ist, um eine TLB-Ersetzung323 an TLB313 bereitzustellen. - Die Operation eines der Ausführungsbeispiele der vorliegenden Erfindung ist folgende: Wenn eine virtuelle Adresse
305 in eine physikalische Adresse315 übersetzt wird, empfängt der TLB313 Informationen von der virtuellen Adresse305 und dem entsprechenden Regionsregister309 , um die physikalische Adresse315 zu bestimmen. Wenn es einen TLB-Treffer gibt, wird die physikalische Adresse315 aus den der virtuellen Adresse305 und dem zugehörigen Regionsregister309 entsprechenden Informationen bestimmt, die in dem TLB313 enthalten sind. Wenn es einen TLB-Fehlversuch gibt, wird eine solche Bedingung der Auswahllogik321 von dem TLB-Fehlversuch-Signal323 angezeigt. Der VHPT-Durchläufer wird von der „Und"-Bedingung der zwei Steuerbits VE-Bit319 und VE-Bit311 der entsprechenden von N Bits307 identifizierten Region freigegeben. - Unter besonderer Bezugnahme auf die Regionsregister
309 definiert jedes Regionsregister seine bestimmten Regionsattribute. Das VE-Bit311 jedes Regionsregisters309 steuert, ob die VHPT-Struktur325 nach TLB-Fehlversuchen, die in dieser bestimmten Region auftreten, zu durchsuchen ist. Wenn das VE-Bit311 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-Bit311 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 Software327 ausgeführt, die von den alternativen Vektoren329 identifiziert wird. Es ist klar, daß durch die optionale Bereitstellung der alternativen TLB-Fehlversuch-Vektoren329 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-Register317 enthält das VE-Bit319 , 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-Vektoren329 übermittelt, wenn das VE-Bit319 gesperrt ist. Wenn das VE-Bit319 aktiviert wird, wird die VHPT-Suche nach in dem Regionsbereich auftretenden TLB-Fehlversuchen ausgeführt, wenn das entsprechende VE-Bit311 des Regionsregisters309 ebenfalls aktiviert wird. - Dementsprechend wird ein Seitentabellendurchlauf des VHPT
325 ausgeführt, wenn die Auswahllogik321 ein aktives VE-Bit319 des Master-Registers317 und ein aktives VE-Bit311 von dem entsprechenden Regionsregister309 empfängt. Das heißt, wenn das VE-Bit319 und das VE-Bit311 eines entsprechenden Regionsregisters309 beide aktiv sind, dann signalisiert die Auswahllogik321 der VHPT325 über ein Signal331 , daß ein Seitentabellendurchlauf von VHPT325 auszuführen ist, um eine TLB-Ersetzung323 an den TLB313 bereitzustellen. Wenn jedoch das VE-Bit311 des durch N Bits307 identifizierten Regionsregisters309 nicht freigegeben ist, dann signalisiert die Auswahllogik321 der Software-Routine in Software327 über ein Signal333 , daß sie die TLB-Ersetzung323 bereitstellen soll. Des Weiteren ist ein alternativer Vektor329 in dem Computersystem301 enthalten, um auf die Startadresse einer bestimmten TLB-Ersetzungs-Routine im Speicher zu zeigen. Dementsprechend kann jede bestimmte Region, die von den Bits307 identifiziert wird, eine optimierte Software-Routine in Software327 verwenden, auf wel che der alternative Vektor329 zeigt, um im Fall eines TLB-Fehlversuchs die TLB-Ersetzung323 an den TLB313 bereitzustellen. - Bei einem Ausführungsbeispiel der vorliegenden Erfindung enthalten die alternativen Vektoren
329 einen separaten al-ternativen Befehls-TLB-Fehlversuch-Vektor335 und einen al-ternativen Daten-TLB-Fehlversuch-Vektor337 . Der alternative Befehls-TLB-Fehlversuch-Vektor335 identifiziert die Software-Routine und Software327 , die im Fall eines Befehls-TLB-Fehlversuchs auszuführen ist, während der alternative Daten-TLB-Fehlversuch-Vektor337 die Software-Routine in Software327 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 Software327 kann durch das Deaktivieren des VE-Bits311 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 Adresse401 in eine physikalische Adresse407 übersetzt wird. Wie in4 gezeigt, enthält die virtuelle Adresse401 eine virtuelle Regionsnummer (VRN)413 , eine virtuelle Seitennummer (VPN)411 und einen Offset409 . Die VRN413 identifiziert ein bestimmtes Regionsregister403 . Jedes Regionsregister enthält das oben diskutierte VE-Bit421 und eine Regions-ID419 . - Wenn die virtuelle Adresse
401 in die physikalische Adresse407 übersetzt wird, empfängt der erfindungsgemäße TLB405 die Regions-ID419 und die VPN411 der bestimmten virtuellen Adresse401 von dem Regionsregister403 und die virtuelle Adresse401 . 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 Adresse407 gesendet. Der Offset409 der virtuellen Adresse410 wird dann mit der PPN417 kombiniert, um die physikalische Adresse 407 zu konstruieren. -
5 ist ein Flußdiagramm501 der Verarbeitungsschritte, die bei einem Ausführungsbeispiel der vorliegenden Erfindung ausgeführt werden. Wie in Verarbeitungsblock503 angezeigt wird, wird eine virtuelle Adresse erhalten. Als Nächstes wird der TLB nach einem entsprechenden Eintrag durchsucht, wie in Verarbeitungsblock505 gezeigt. Wenn eine TLB-Übereinstimmung gefunden wird, dann wird die Seitennummer der physikalischen Adresse erhalten, wie in Verarbeitungsblock519 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öcken509 und511 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 Verarbeitungsschritten513 und517 angezeigt. Wenn die Seitennummer der physikalischen Adresse erhalten wird, wie in Verarbeitungsblock519 angezeigt, wird die physikalische Adresse gebildet, wie in Verarbeitungsblock521 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)
- 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. - 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. - 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. - 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. - Der Adreßübersetzungsmechanismus nach Anspruch 4, wobei die alternative TLB (
313 )-Routine eine Leistungsüberwachungsroutine umfaflt. - 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.
- 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 ). - 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. - 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. - 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.
- 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.
- 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.
- 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.
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 (83)
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 |
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 |
US7565665B2 (en) | 1998-09-09 | 2009-07-21 | 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 |
US6643759B2 (en) | 2001-03-30 | 2003-11-04 | Mips Technologies, Inc. | Mechanism to extend computer memory protection schemes |
US6651156B1 (en) * | 2001-03-30 | 2003-11-18 | Mips Technologies, Inc. | Mechanism for extending properties of virtual memory pages by a TLB |
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 |
KR100718754B1 (ko) * | 2002-01-31 | 2007-05-15 | 에이알씨 인터내셔널 | 길이가 다른 명령어집합 구조를 갖는 설정가능형데이터프로세서 |
US7565509B2 (en) | 2002-04-17 | 2009-07-21 | Microsoft Corporation | Using limits on address translation to control access to an addressable entity |
US6986006B2 (en) * | 2002-04-17 | 2006-01-10 | Microsoft Corporation | Page granular curtained memory via mapping control |
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 |
US7644409B2 (en) * | 2004-06-04 | 2010-01-05 | Sun Microsystems, Inc. | Techniques for accessing a shared resource using an improved synchronization mechanism |
US7594234B1 (en) | 2004-06-04 | 2009-09-22 | Sun Microsystems, Inc. | Adaptive spin-then-block mutual exclusion in multi-threaded processing |
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 |
US7987358B1 (en) * | 2006-06-09 | 2011-07-26 | Xilinx, Inc. | Methods of authenticating a user design in a programmable integrated circuit |
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 |
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 |
US8161264B2 (en) * | 2008-02-01 | 2012-04-17 | International Business Machines Corporation | Techniques for data prefetching using indirect addressing with offset |
US8161265B2 (en) * | 2008-02-01 | 2012-04-17 | International Business Machines Corporation | Techniques for multi-level indirect data prefetching |
US8166277B2 (en) * | 2008-02-01 | 2012-04-24 | International Business Machines Corporation | Data prefetching using indirect addressing |
US8161263B2 (en) * | 2008-02-01 | 2012-04-17 | International Business Machines Corporation | Techniques for indirect data prefetching |
AU2009202512B2 (en) * | 2008-06-25 | 2012-02-02 | Aristocrat Technologies Australia Pty Limited | A 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 |
US9348757B2 (en) | 2012-10-08 | 2016-05-24 | International Business Machines Corporation | System supporting multiple partitions with differing translation formats |
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 |
US9355032B2 (en) | 2012-10-08 | 2016-05-31 | International Business Machines Corporation | Supporting multiple types of guests by a hypervisor |
US9600419B2 (en) | 2012-10-08 | 2017-03-21 | International Business Machines Corporation | Selectable address translation mechanisms |
US9740624B2 (en) | 2012-10-08 | 2017-08-22 | International Business Machines Corporation | Selectable address translation mechanisms within a partition |
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 |
EP3451197B1 (de) * | 2015-05-13 | 2021-08-25 | 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 |
US10977189B2 (en) * | 2019-09-06 | 2021-04-13 | Seagate Technology Llc | Reducing forward mapping table size using hashing |
US20230057242A1 (en) * | 2021-08-10 | 2023-02-23 | Baidu Usa Llc | Countermeasures against side-channel attacks on secure encrypted virtualization (sev)-encrypted state (sev-es) processors |
Family Cites Families (11)
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 |
-
1996
- 1996-11-12 US US08/747,943 patent/US5809563A/en not_active Expired - Lifetime
-
1997
- 1997-11-12 DE DE69721590T patent/DE69721590T2/de not_active Expired - Lifetime
- 1997-11-12 AU AU52009/98A patent/AU5200998A/en not_active Abandoned
- 1997-11-12 EP EP97946926A patent/EP1027656B1/de not_active Expired - Lifetime
- 1997-11-12 WO PCT/US1997/020610 patent/WO1998021712A2/en active IP Right Grant
-
1998
- 1998-02-03 US US09/018,326 patent/US6216214B1/en not_active Expired - Lifetime
-
2000
- 2000-11-01 US US09/703,536 patent/US6430670B1/en not_active Expired - Fee Related
Also Published As
Publication number | Publication date |
---|---|
US6216214B1 (en) | 2001-04-10 |
EP1027656B1 (de) | 2003-05-02 |
DE69721590D1 (de) | 2003-06-05 |
US5809563A (en) | 1998-09-15 |
US6430670B1 (en) | 2002-08-06 |
EP1027656A4 (de) | 2001-04-11 |
WO1998021712A2 (en) | 1998-05-22 |
AU5200998A (en) | 1998-06-03 |
WO1998021712A3 (en) | 1998-07-09 |
EP1027656A2 (de) | 2000-08-16 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
DE69721590T2 (de) | Ein bereichsbasiertes seiten-table-walk-bit verwendendes verfahren sowie vorrichtung | |
DE112005003863B3 (de) | Verwalten von Prozessorressourcen während Architekturereignissen | |
DE60320026T2 (de) | Verbessertes speichermanagement für echtzeit-anwendungen | |
DE68923863T2 (de) | Ein-/Ausgabecachespeicherung. | |
DE4410060B4 (de) | Übersetzungsvorrichtung zum Umsetzen einer virtuellen Speicheradresse in eine physikalische Speicheradresse | |
DE69132005T2 (de) | Vorrichtung und Verfahren für einen raumsparenden Adressenübersetzungspuffer für inhaltsadressierbaren Speicher | |
DE69629800T2 (de) | Adressenübersetzungsbuffer in einem rechnersystem | |
DE69707181T2 (de) | Architektur und Verfahren zur gemeinsamen Benutzung von TLB-Einträgen | |
DE3588009T2 (de) | Vorrichtung und Verfahren zum Rekonfigurieren eines Speichers in einer Datenverarbeitungsanordnung. | |
DE69514165T2 (de) | Mehrstufige Cache-Speicheranordnung | |
DE3151745C2 (de) | ||
DE3688978T2 (de) | Seitenspeicherverwaltungseinheit mit der fähigkeit nach wahl mehrere adressräume zu unterstützen. | |
DE69030945T2 (de) | Zweistufiger Adressübersetzungspufferspeicher mit partiellen Adressen zur Geschwindigkeitserhöhung | |
DE69616465T2 (de) | Cachespeicher mit Datenvorausladung | |
DE69131610T2 (de) | Ermittlung des Speicheradressraums durch Verwendung von programmierbaren Grenzregistern mit Komparatoren mit einzelnen Ausgängen | |
DE112017001027B4 (de) | Seitenfehlerbehebung | |
DE69823180T2 (de) | Speicherzugangsschutz | |
DE69732181T2 (de) | Verfahren und gerät zum zwischenspeichern von systemverwaltungsinformationen mit anderen informationen | |
DE10297433B4 (de) | Speicherverwaltungseinheit, Verfahren zum Bereitstellen einer Speicherzugriffssicherheit auf der Basis einer linearen Adresse und Prozessor | |
DE60036960T2 (de) | Unterscheidung von feinkorntranslation | |
DE102014014076A1 (de) | Reduzierte Adressenkonvertierung mit mehreren Seitengrößen | |
DE60001170T2 (de) | Betriebsystemsseitenplazierung zum maximieren der cachedatenwiederverwendung | |
DE69130942T2 (de) | Vorrichtung zur Erhöhung der Leistung eines Adressenübersetzungspuffers | |
DE112018002032T5 (de) | Gemeinsames nutzen von virtuellen und realen übersetzungen in einem virtuellen cache | |
DE69626070T2 (de) | Verfahren und Vorrichtung zum Etikettieren eines Mehrweg-assoziativen Cache-Speichers |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
8364 | No opposition during term of opposition |