DE112004000464T5 - Ungültigmachen von Speichereinträgen, Löschen von Pufferspeicher-Einträgen - Google Patents

Ungültigmachen von Speichereinträgen, Löschen von Pufferspeicher-Einträgen Download PDF

Info

Publication number
DE112004000464T5
DE112004000464T5 DE112004000464T DE112004000464T DE112004000464T5 DE 112004000464 T5 DE112004000464 T5 DE 112004000464T5 DE 112004000464 T DE112004000464 T DE 112004000464T DE 112004000464 T DE112004000464 T DE 112004000464T DE 112004000464 T5 DE112004000464 T5 DE 112004000464T5
Authority
DE
Germany
Prior art keywords
entries
memory
entry
register
storage unit
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.)
Ceased
Application number
DE112004000464T
Other languages
English (en)
Inventor
Timothy John Slegel
Lisa Heller
Erwin Pfeffer
Kenneth Plambeck
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
International Business Machines Corp
Original Assignee
International Business Machines Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by International Business Machines Corp filed Critical International Business Machines Corp
Publication of DE112004000464T5 publication Critical patent/DE112004000464T5/de
Ceased 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/10Address translation
    • G06F12/1027Address translation using associative or pseudo-associative address translation means, e.g. translation look-aside buffer [TLB]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • 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
    • 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/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0806Multiuser, multiprocessor or multiprocessing cache systems
    • G06F12/0808Multiuser, multiprocessor or multiprocessing cache systems with cache invalidating means
    • 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/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0891Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches using clearing, invalidating or resetting means
    • 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
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/30003Arrangements for executing specific machine instructions
    • G06F9/3004Arrangements for executing specific machine instructions to perform operations on memory
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/30003Arrangements for executing specific machine instructions
    • G06F9/3004Arrangements for executing specific machine instructions to perform operations on memory
    • G06F9/30047Prefetch instructions; cache control instructions
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38Concurrent instruction execution, e.g. pipeline, look ahead
    • G06F9/3824Operand accessing
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/10Address translation
    • G06F12/1009Address translation using page tables, e.g. page table structures
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/68Details of translation look-aside buffer [TLB]
    • G06F2212/683Invalidation

Abstract

Verfahren, das dazu dient, den Speicherinhalt einer Datenverarbeitungsumgebung ungültig zu machen, wobei das Verfahren Folgendes umfasst:
über einen Befehl Angeben einer Speicherungseinheit, die ungültig gemacht werden soll, wobei die Speicherungseinheit eine Vielzahl von Speicherseiten umfasst; und Ungültigmachen der Speicherungseinheit.

Description

  • Diese Erfindung betrifft im Allgemeinen die Verarbeitung in einer Datenverarbeitungsumgebung und insbesondere das Ungültigmachen von einem oder mehreren Einträgen im Speicher und das Löschen von einem oder mehreren Einträgen im Pufferspeicher sowie einen Befehl hierfür.
  • Vorhandene Datenverarbeitungsumgebungen verwenden einen virtuellen Speicher, der normalerweise im Zusatzspeicher verwaltet wird, um die Größe des verfügbaren Speichers zu erhöhen. Wenn auf eine Seite des virtuellen Speichers verwiesen wird, wird die beim Verweis auf die Seite verwendete virtuelle Adresse mittels dynamischer Adressenumsetzung in eine reale Speicheradresse umgesetzt. Bei erfolgreicher Umsetzung ist dann der virtuelle Speicher gültig; andernfalls ist er ungültig. Eine Seite des virtuellen Speichers wird von einem Ungültig-Bit in einem Seitentabelleneintrag als gültig oder ungültig gekennzeichnet, der eine reale Speicheradresse enthält, wenn die Seite gültig ist.
  • Speicherseiten können jeweils seitenweise ungültig gemacht werden. In einer Datenverarbeitungsumgebung, die auf der z/Architecture beruht, welche von der International Business Machines Corporation angeboten wird, wird beispielsweise eine Seite des Speichers mit einem Befehl, der als Invalidate-Page-Table-Entry-(IPTE-)Befehl (Befehl zum Ungültigmachen eines Seitentabelleneintrags) bezeichnet wird, ungültig gemacht. Beim Ungültigmachen wird ein Ungültig-Anzeiger in einer Steuerstruktur, die zu dem virtuellen Speicher gehört und sich im physischen Hauptspeicher befindet, gesetzt, um anzuzeigen, dass eine virtuelle Adresse eines Speicherplatzes in dem virtuellen Speicher nicht mittels dynamischer Adressenumsetzung in eine physikalische Adresse des Hauptspeichers, die auch als reale Adresse bezeichnet wird, umgesetzt werden kann. Überdies wird der Befehl zum Löschen von internen Rechnerpufferspeicher-Einträgen verwendet, die zu der Seite gehören und die während der dynamischen Adressenumsetzung verwendet werden können, um zu verhindern, dass auf die Steuerstrukturen im physischen Hauptspeicher zugegriffen wird. Bei der z/Architecture beispielsweise werden während der dynamischen Adressenumsetzung von virtuellen Adressen in reale Adressen Adressenumsetzungs-Pufferspeicher (Translation Lookaside Buffers (TLBs) verwendet. Wenn eine Seite des Speichers ungültig gemacht wird, werden die zu dieser Seite gehörenden Einträge auch aus den entsprechenden Pufferspeichern gelöscht.
  • Es gibt auch Befehle, mit denen der gesamte Inhalt von Adressenumsetzungs-Pufferspeichern gelöscht werden kann. Bei der z/Architecture beispielsweise löscht ein Befehl, der als Compare-and-Swap-and-Purge-(CSP-)Befehl bezeichnet wird, alle Einträge von Adressenumsetzungs-Pufferspeichern.
  • Obgleich es also Befehle gibt, die dazu dienen, eine Seite des Speichers ungültig zu machen und Einträge in Pufferspeichern, die zu dieser Seite gehören, zu löschen, sowie Befehle, die dazu dienen, den gesamten Inhalt von Pufferspeichern zu löschen, besteht nach wie vor Bedarf an Befehlen, die selektiv verschiedene Größen von Speicherungseinheiten ungültig machen und/oder Einträge in Pufferspeichern, die zu diesen Einheiten gehören, löschen können. Beispielsweise besteht Bedarf an einem Befehl, der es ermöglicht, eine ausgewählte Speicherungseinheit, die größer als eine Seite ist und ungültig gemacht werden soll, anzugeben und/oder Einträge in Pufferspeichern, die zu der Einheit gehören, zu löschen. Es besteht darüber hinaus Bedarf an einem Befehl, der es ermöglicht, Einträge in Pufferspeichern für ausgewählte Speicherungseinheiten zu löschen, ohne dass sich dies auf Pufferspeicher-Einträge für andere Speicherungseinheiten auswirkt.
  • Die vorliegende Erfindung stellt ein Verfahren zum Ungültigmachen des Inhalts eines Speichers einer Datenverarbeitungsumgebung nach Anspruch 1 bereit.
  • Vorzugsweise stellt die vorliegende Erfindung ein Verfahren bereit, das dazu dient, den Inhalt des Speichers einer Datenverarbeitungsumgebung ungültig zu machen. Das Verfahren beinhaltet beispielsweise die Angabe einer Speicherungseinheit, die ungültig gemacht werden soll, wobei die Speicherungseinheit eine Vielzahl von Speicherseiten umfasst, und wobei die Angabe die Bereitstellung eines Deskriptors der Speicherungseinheit beinhaltet, sowie das Ungültigmachen der Speicherungseinheit.
  • Vorzugsweise stellt die vorliegende Erfindung ein Verfahren bereit, mit dem sich der Inhalt von Pufferspeichern einer Datenverarbeitungsumgebung leichter löschen lässt. Das Verfahren beinhaltet beispielsweise die Kennzeichnung einer Speicherungseinheit, für die ein oder mehrere Einträge aus einem oder mehreren Pufferspeichern gelöscht werden sollen, wobei die Speicherungseinheit eine Vielzahl von Speicherseiten umfasst; und das Löschen von einem oder mehreren Einträgen des einen oder der mehrfach vorhandenen Pufferspeicher, die zu der gekennzeichneten Speicherungseinheit gehören, wobei ein oder mehrere Einträge, die zu einer anderen Speicherungseinheit gehören, nicht gelöscht werden.
  • Vorzugsweise wird ein Befehl bereitgestellt, der in einer Datenverarbeitungsumgebung ausgeführt werden soll. Der Befehl enthält beispielsweise einen Operationscode, um einen auszuführenden Befehl zu kennzeichnen; eine Ungültigmachungs-Kennzeichnung, um Informationen anzugeben, die zu einer Speicherungseinheit gehören, die ungültig gemacht werden soll, wobei die Speicherungseinheit eine Vielzahl von Speicherseiten umfasst; eine weitere Kennzeichnung, um zusätzliche Informationen zur Verwendung durch den Befehl anzugeben; und eine Lösch-Kennzeichnung, um Informationen anzugeben, die zu der einen Speicherungseinheit und zu einer anderen Speicherungseinheit gehören, für die ein oder mehrere Einträge aus einem oder mehreren Pufferspeichern gelöscht werden sollen, wobei eine oder mehrere Komponenten von einer oder mehreren der Ungültigmachungs-Kennzeichnungen, die weitere Kennzeichnung und die Lösch-Kennzeichnung als Nulloperationen konfiguriert werden können.
  • Vorzugsweise wird ein Befehl bereitgestellt, der in einer Datenverarbeitungsumgebung ausgeführt werden soll. Der Befehl enthält beispielsweise einen Operationscode, um einen auszuführenden Befehl zu kennzeichnen; und mindestens eines von Folgendem: eine erste Ungültigmachungs-Kennzeichnung, um Informationen anzugeben, die zu einer Speicherungseinheit gehören, die ungültig gemacht werden soll, wobei die Speicherungseinheit eine Vielzahl von Speicherseiten umfasst; eine zweite Ungültigmachungs-Kennzeichnung, um zusätzliche Informationen anzugeben, die zu der Speicherungseinheit, die ungültig gemacht werden soll, gehören; und eine Lösch-Kennzeichnung, um Informationen anzugeben, die zu der einen Speicherungseinheit und zu einer anderen Speicherungseinheit gehören, für die ein oder mehrere Einträge aus einem oder mehreren Pufferspeichern gelöscht werden sollen, wobei die von der Lösch-Kennzeichnung angegebenen Informationen nicht zu mindestens einer anderen Speichereinheit gehören, für die ein oder mehrere Einträge nicht gelöscht werden sollen.
  • System- und Rechnerprogrammprodukte, die den vorstehend zusammengefassten Verfahren entsprechen, werden hier ebenfalls beschrieben und beansprucht.
  • Weitere Funktionen und Vorteile werden durch die Verfahren der vorliegenden Erfindung realisiert. Andere Ausführungs- und Erscheinungsformen der Erfindung werden hier ausführlich beschrieben und gelten als Teil der beanspruchten Erfindung.
  • Der Erfindungsgegenstand wird in den Ansprüchen im Anschluss an die Beschreibung ausführlich dargelegt und eindeutig beansprucht. Die vorstehenden und andere Aufgaben, Funktionen und Vorteile der Erfindung gehen aus der folgenden ausführlichen Beschreibung in Verbindung mit den Begleitzeichnungen hervor, in denen:
  • 1 eine Ausführungsform einer Datenverarbeitungsumgebung zeigt, die eine oder mehrere Erscheinungsformen der vorliegenden Erfindung enthält und verwendet;
  • 2 eine Ausführungsform von weiteren Einzelheiten in Verbindung mit einer Steuereinheit von 1 gemäß einer Erscheinungsform der vorliegenden Erfindung zeigt;
  • 3 eine Ausführungsform eines Host-Rechners gemäß einer Erscheinungsform der vorliegenden Erfindung zeigt; der einen anderen Rechner nachbilden kann;
  • 4 eine Ausführungsform der Logik in Verbindung mit dem Ungültigmachen des Speicherinhalts gemäß einer Erscheinungsform der vorliegenden Erfindung zeigt;
  • 5 eine Ausführungsform der Logik in Verbindung mit dem Löschen von Einträgen in Pufferspeichern gemäß einer Erscheinungsform der vorliegenden Erfindung zeigt;
  • 6a eine Ausführungsform eines Formats eines Invalidate-Dynamic-Address-Translation-Table-Entry-(IDTE-)Befehls (Befehl zum Ungültigmachen eines Eintrags in der dynamischen Adressenumsetzungstabelle) gemäß einer Erscheinungsform der vorliegenden Erfindung zeigt;
  • 6b eine Ausführungsform der Felder in Verbindung mit dem allgemeinen Register R1 des IDTE-Befehls von 6a gemäß einer Erscheinungsform der vorliegenden Erfindung zeigt;
  • 6c eine Ausführungsform der Felder in Verbindung mit dem allgemeinen Register R2 des IDTE-Befehls von 6a gemäß einer Erscheinungsform der vorliegenden Erfindung zeigt;
  • 6d eine Ausführungsform der Felder in Verbindung mit dem allgemeinen Register R3 des IDTE-Befehls von 6a gemäß einer Erscheinungsform der vorliegenden Erfindung zeigt;
  • 7a bis 7d eine Ausführungsform der Logik in Verbindung mit dem IDTE-Befehl gemäß einer Erscheinungsform der vorliegenden Erfindung zeigen;
  • 8a eine Ausführungsform der Felder des allgemeinen Registers R1, das für eine alternative Operation des IDTE-Befehls verwendet wird, gemäß einer Erscheinungsform der vorliegenden Erfindung zeigt;
  • 8b eine Ausführungsform der Felder des allgemeinen Registers R2, das für eine alternative Operation des IDTE- Befehls verwendet wird, gemäß einer Erscheinungsform der vorliegenden Erfindung zeigt;
  • 8c eine Ausführungsform der Felder des allgemeinen Registers R3, das für eine alternative Operation des IDTE-Befehls verwendet wird, gemäß einer Erscheinungsform der vorliegenden Erfindung zeigt; und
  • 9 eine Ausführungsform der Logik in Verbindung mit der alternativen Operation des IDTE-Befehls gemäß einer Erscheinungsform der vorliegenden Erfindung zeigt.
  • Gemäß einer Erscheinungsform der vorliegenden Erfindung wird ein angegebener Teil des Speichers (zum Beispiel des virtuellen Speichers) ungültig gemacht. Zum Beispiel wird ein Segment des Speichers, das eine Vielzahl von Speicherseiten enthält, oder ein Bereich des Speichers, der eine Vielzahl von Speichersegmenten enthält, ausgewählt, um ungültig gemacht zu werden. Das Ungültigmachen wird vereinfacht, indem Ungültigmachungs-Anzeiger gesetzt werden, die sich in Datenstruktur-Einträgen befinden, welche den Speicherungseinheiten entsprechen, die ungültig gemacht werden sollen. In einer weiteren Erscheinungsform der vorliegenden Erfindung werden Einträge im Pufferspeicher (z.B. Einträge im Adressenumsetzungs-Pufferspeicher), die zu dem Speicher, dessen Inhalt ungültig gemacht wird, oder zu einem anderen Speicher gehören, gelöscht. In einer weiteren Erscheinungsform der vorliegenden Erfindung werden darüber hinaus Einträge im Pufferspeicher, die zu ausgewählten Adressräumen gehören, aus Pufferspeichern gelöscht, ohne dass sich dies auf Pufferspeicher-Einträge von nicht ausgewählten Adressräumen auswirkt und ohne dass Einträge ungültig gemacht werden. In einem Beispiel wird ein Befehl, der hier als Invalidate-Dynamic-Address-Translation-(DAT-)Table-Entry-(IDTE)-Befehl bezeichnet wird, von der z/Architecture von IBM® zur Durchführung von einer oder mehreren der vorstehenden Operationen verwendet.
  • Eine Ausführungsform einer Datenverarbeitungsumgebung 100, die eine oder mehrere Erscheinungsformen der vorliegenden Erfindung enthält und verwendet, wird mit Bezug auf 1 beschrieben. Die Datenverarbeitungsumgebung 100 beruht zum Beispiel auf der von der International Business Machines Corporation mit Sitz in Armonk, New York, angebotenen z/Architecture. Die z/Architecture ist in einer Publikation von IBM® mit dem Titel "z/Architecture Principles of Operation", IBM Publication Nr. SA22-7832-00, Dezember 2000, beschrieben, die durch Bezugnahme in ihrer Gesamtheit Bestandteil hiervon ist (IBM® ist ein eingetragenes Warenzeichen der International Business Machines Corporation mit Sitz in Armonk, New York, U.S.A. Andere hier verwendete Namen können eingetragene Warenzeichen, Warenzeichen oder Produktnamen der International Business Machines Corporation oder anderer Unternehmen sein). In einem Beispiel beinhaltet eine auf der z/Architecture beruhende Datenverarbeitungsumgebung einen eServer der "zSeries", der von der International Business Machines Corporation, Armonk, New York, angeboten wird.
  • Als Beispiel beinhaltet die Datenverarbeitungsumgebung 100 einen Zentralprozessorkomplex (CPC) 102, der mit einer Steuereinheit 120 verbunden ist. Der Zentralprozessorkomplex 102 enthält zum Beispiel eine oder mehrere Partitionen 104 (z.B. die logischen Partitionen LP1 bis LPn), einen oder mehrere Zentralprozessoren 106 (z.B. CP1 bis CPm) und einen Hypervisor 108 (z.B. einen Manager für die logischen Partitionen), die alle nachstehend beschrieben werden.
  • Jede logische Partition 104 kann als eigenes System funktionieren. Das heißt, jede logische Partition kann unabhängig von den anderen zurückgesetzt werden, auf Wunsch kann in jede logische Partition anfangs ein Betriebssystem geladen werden, und sie kann mit verschiedenen Programmen arbeiten. Ein Betriebssystem oder ein Anwendungsprogramm, das in einer logischen Partition läuft, scheint Zugriff auf ein vollständiges System zu haben, aber in Wirklichkeit steht nur ein Teil des Systems zur Verfügung. Eine Kombination aus Hardware und Licensed Internal Code (der gemeinhin als Mikrocode bezeichnet wird) verhindert, dass sich ein Programm in einer logischen Partition störend auf ein Programm in einer anderen logischen Partition auswirkt. Dadurch können mehrere unterschiedliche logische Partitionen auf einem einzigen oder auf mehreren physikalischen Prozessoren im Zeitscheibenverfahren betrieben werden. In diesem bestimmten Beispiel verfügt jede logische Partition über ein ständig vorhandenes Betriebssystem 110, das bei einer oder mehreren logischen Partitionen unterschiedlich sein kann. In einer Ausführungsform ist das Betriebssystem 110 das Betriebssystem z/OS, das von der International Business Machines Corporation, Armonk, New York, angeboten wird.
  • Die Zentralprozessoren 106 sind physische Prozessor-Ressourcen, die den logischen Partitionen zugeordnet sind. Eine logische Partition 104 enthält beispielsweise einen oder mehrere logische Prozessoren, von denen jeder die ganze oder einen Teil der physischen Prozessor-Ressource 106 darstellt, die der Partition zugeordnet ist. Die logischen Prozessoren einer bestimmten Partition 104 können dieser Partition entweder ausschließlich zugeordnet sein, so dass die zugrunde liegende Prozessor-Ressource für diese Partition reserviert ist, oder sie können gemeinsam mit einer anderen Partition verwendet werden, so dass die zugrunde liegende Prozessor-Ressource möglicherweise auch einer anderen Partition zur Verfügung steht.
  • Die logischen Partitionen 104 werden vom Hypervisor 108 verwaltet, der mittels Mikrocode realisiert ist, welcher auf den Prozessoren 106 ausgeführt wird. Die logischen Partitionen 104 und der Hypervisor 108 umfassen jeweils ein oder mehrere Programme, die sich in jeweiligen Teilen des Zentralspeichers befinden, der zu den Zentralprozessoren gehört. Ein Beispiel des Hypervisor 108 ist der Processor Resource/Systems Manager (PR/SM), der von der International Business Machines Corporation, Armonk, New York, angeboten wird.
  • Die Steuereinheit 120, die mit dem Zentralprozessorkomplex verbunden ist, enthält zentralisierte Logik, die für die möglichst gerechte Zuteilung von Ressourcen (Arbitrierung) unter verschiedenen Prozessoren, die Anforderungen ausgeben, verantwortlich ist. Wenn die Steuereinheit 120 beispielsweise eine Anforderung empfängt, stellt sie fest, dass der Anfordernde der Hauptprozessor (Master-Prozessor) für diese Anforderung ist und dass die anderen Prozessoren untergeordnete Prozessoren (Slave-Prozessoren) sind; sie versendet Nachrichten im Rundsendeverfahren, und im Übrigen wickelt sie Anforderungen ab. Ein Beispiel für eine Steuereinheit ist in der US-Patentschrift Nr. 6 199 219 beschrieben. Weitere Einzelheiten sind mit Bezug auf 2 ebenfalls beschrieben. 2 veranschaulicht ein Beispiel einer Steuereinheit 200, die mit einer Vielzahl von Zentralprozessoren (CPUs) 201 verbunden ist. In diesem Beispiel sind zwei Zentralprozessoren dargestellt. Es versteht sich jedoch, dass mehr als zwei Prozessoren mit der Steuereinheit 200 verbunden sein können.
  • Die Steuereinheit 200 enthält verschiedene Steuerelemente, unter anderem beispielsweise die Systemserialisierungs-Steuerelemente 202. Mit den Systemserialisierungs-Steuerelementen wird sichergestellt, dass Operationen, die zeitlich aufeinander folgend durchgeführt (serialisiert) werden sollen, wie zum Beispiel Ungültigmachungs-Befehle, auch tatsächlich zeitlich aufeinander folgend durchgeführt werden, insofern als nur jeweils ein solcher Befehl in der Datenverarbeitungsumgebung ausgeführt wird. Die Steuereinheit 200 überwacht auch die Reihenfolge der Ereignisse für diese Operation.
  • Die Steuereinheit 200 ist mit jedem Zentralprozessor über verschiedene Schnittstellen verbunden. Zum Beispiel verwendet der Licensed Internal Code in einem Zentralprozessor eine Schnittstelle 204, um "Steuer"-Befehle, die eine durchzuführende Aktion angeben, an die Steuereinheit zu senden und um "Abfrage"-Befehle zu senden, auf die Informationen von der Steuereinheit zurückgesendet werden. Eine weitere Schnittstelle ist ein Antwortbus 206, über den Informationen von der Steuereinheit auf die "Abfrage"-Befehle hin zurückgesendet werden. Der Antwortbus wird auch verwendet, um den Befehlsstatus für "Steuer"-Befehle zu übertragen, und er kann von einer Vielzahl von Quellen innerhalb der Steuereinheit, einschließlich der Systemserialisierungs-Steuerelemente, gesetzt werden. Ein Zentralprozessor kann über diese Schnittstelle den Zustand der Systemserialisierungs-Steuerelemente in der Steuereinheit 200 abfragen.
  • Eine weitere Schnittstelle ist die Schnittstelle 208, die von der Steuereinheit verwendet wird, um Befehle an jede CPU zu senden. Dies kann ebenfalls von einer Vielzahl von Quellen innerhalb der Steuereinheit einschließlich der Systemserialisierungs-Steuerelemente 202 gesteuert werden. Noch eine weitere Schnittstelle ist die Schnittstelle 210, die den Cachespeicher-Steuerelementen 212 des Zentralprozessors 201 Signale bereitstellt. Als Reaktion auf die Signale verarbeiten die Cachespeicher-Steuerelemente 212 Befehle. In einem Beispiel verarbeiten die Cachespeicher-Steuerelemente 212 Befehle, die sich auf einen oder mehrere Pufferspeicher wie zum Beispiel die Adressenumsetzungs-Pufferspeicher (TLBs) 213 auswirken, was nachstehend ausführlicher beschrieben wird.
  • Neben den Cachespeicher-Steuerelementen 212 enthält der Zentralprozessor 201 verschiedene andere Steuerelemente, unter anderem beispielsweise die Unterbrechungs-Steuerelelemente 220 und die Ausführungs-Steuerelemente 222. Als Reaktion auf bestimmte Ereignisse bewirken die Unterbrechungs-Steuerelemente 220, dass in der CPU eine interne Unterbrechung ansteht, die wiederum bewirkt, dass die Ausführungs-Steuerelemente 222 die Verarbeitung von Programmbefehlen an dem nächsten unterbrechbaren Punkt vorübergehend einstellen. Als Reaktion auf die Unterbrechung rufen die Ausführungs-Steuerelemente 222 eine Licensed-Internal-Code-Routine auf, um einen Signalspeicher "Rundsendeoperation erlaubt" 224 so zu setzen, dass er den Cachespeicher-Steuerelementen 212 die Verarbeitung von anstehenden Befehlen ermöglicht.
  • Der Zentralprozessor 201 enthält auch einen Signalspeicher "CPU-stillgelegt" 226, der anzeigt, ob der Zentralprozessor stillgelegt wurde.
  • Die vorstehend beschriebene Datenverarbeitungsumgebung ist lediglich ein Beispiel. Eine oder mehrere Partitionen können beispielsweise in verschiedenen Architektur-Modi ausgeführt werden. Als weiteres Beispiel braucht die Umgebung nicht auf der z/Architecture zu basieren, sondern kann stattdessen auf einer anderen Architektur beruhen, die von Intel, Sun Microsystems sowie anderen Herstellern angeboten wird. Überdies kann eine Umgebung einen Emulator (z.B. Software- oder andere Emulations-Mechanismen) enthalten, in dem eine bestimmte Architektur oder ein Teil dieser Architektur nachgebildet wird. In einer solchen Umgebung können ein oder mehrere Emulationsfunktionen des Emulators eine oder mehrere Erscheinungsformen der vorliegenden Erfindung realisieren, obgleich ein Rechner, der den Emulator ausführt, eine andere Architektur haben kann als die Funktionen, die nachgebildet werden. Zum Beispiel wird der jeweilige Befehl oder die jeweilige Operation, die gerade nachgebildet wird, im Emulationsmodus decodiert, und eine entsprechende Emulationsfunktion wird erstellt, um den einzelnen Befehl oder die einzelne Operation auszuführen.
  • Weitere Einzelheiten einer Emulationsumgebung werden mit Bezug auf 3 beschrieben. Beispielsweise ist der Host-Rechner 300 in der Lage, eine andere Architektur, einen anderen Rechner und/oder Verarbeitungsfunktionen eines anderen Rechners nachzubilden. Der Host-Rechner 300 kann zum Beispiel auf einer Intel-Architektur, einer RISC-Architektur wie dem PowerPC, einer SPARC-Architektur, die von Sun Microsystems angeboten wird, oder auf einer anderen Architektur beruhen und die z/Architecture von IBM® oder eine andere Architektur von IBM® oder einem anderen Hersteller nachbilden.
  • Der Host-Rechner 300 enthält beispielsweise einen Speicher 302, um Befehle und Daten zu speichern; eine Befehlsabrufeinheit 304, um Befehle aus dem Speicher 302 abzurufen und um die abgerufenen Befehle optional lokal im Pufferspeicher abzulegen; eine Befehlsdecodiereinheit 306, um Befehle von der Befehlsabrufeinheit 304 zu empfangen und um die Art der abgerufenen Befehle festzustellen; sowie eine Befehlsausführungseinheit 308, um die Befehle auszuführen. Die Ausführung kann das Laden der Daten aus dem Speicher 302 in ein Register, die Rückspeicherung der Daten aus einem Register in den Speicher oder die Ausführung einer bestimmten Art einer arithmetischen oder logischen Operation beinhalten, was von der Decodiereinheit festgelegt wird.
  • In einem Beispiel wird jede vorstehend beschriebene Einheit in Software realisiert. Die von den Einheiten durchgeführten Operationen werden beispielsweise als eine oder mehrere Teilroutinen in der Emulator-Software ausgeführt. In einem anderen Beispiel werden eine oder mehrere der Operationen in Firmware, Hardware, Software oder einer Kombination daraus realisiert.
  • Obgleich 3 mit Bezug auf eine Emulation beschrieben wird, braucht die Umgebung von 3 überdies keine Emulationsumgebung zu sein. In einem weiteren Beispiel werden Befehle in der ursprünglichen Umgebung ausgeführt, und die Operationen werden in Hardware, Firmware, Software oder einer Kombination daraus durchgeführt.
  • Eine Datenverarbeitungsumgebung kann sowohl einen virtuellen Speicher als auch einen Hauptspeicher enthalten. Der virtuelle Speicher kann die Größe des in der Konfiguration vorhandenen Hauptspeichers bei weitem überschreiten und wird normalerweise im Zusatzspeicher verwaltet. Der virtuelle Speicher wird als ein aus Adressblöcken bestehender Speicher betrachtet, welche als Seiten bezeichnet werden. Die Seiten des virtuellen Speichers, auf die zuletzt verwiesen wurde, werden zur Belegung von Blöcken des physischen Hauptspeichers zugewiesen. Wenn ein Benutzer auf Seiten des virtuellen Speichers verweist, die nicht im Hauptspeicher erscheinen, werden die virtuellen Seiten geladen, um die Seiten im Hauptspeicher zu ersetzen, auf die mit geringerer Wahrscheinlichkeit zugegriffen wird. Das Aus- und Wiedereinlagern von Seiten aus dem beziehungsweise in den Speicher kann vom Betriebssystem ohne Kenntnis des Benutzers vorgenommen werden.
  • Die Adressen, die verwendet werden, um Speicherplätze im virtuellen Speicher zu kennzeichnen, werden als virtuelle Adressen bezeichnet. Ein Block von fortlaufenden virtuellen Adressen, die beispielsweise bis zu 4 KByte umfassen, wird als Seite bezeichnet. Ebenso wird ein Block von fortlaufenden virtuellen Seiten, der beispielsweise bis zu 1 MByte umfasst, als ein Segment bezeichnet, und ein Block von fortlaufenden virtuellen Segmenten, der beispielsweise bis zu 2 GByte umfasst, wird als Bereich bezeichnet. Ferner wird eine Folge von virtuellen Adressen, die zu dem virtuellen Speicher gehören, auf den ein Adressraum-Steuerelement (ASCE) zeigt, als Adressraum bezeichnet. Mit Adressräumen können Trennungsgrade zwischen Benutzern vorgesehen werden. Ein Adressraum kann einen oder mehrere Bereiche, ein oder mehrere Segmente, eine oder mehrere Seiten oder eine Kombination daraus enthalten.
  • Zu den verschiedenen Arten der Speicherungseinheiten (z.B. Bereiche, Segmente, Seiten) gehören Datenstrukturen, die bei der Verarbeitung in Verbindung mit den Speicherungseinheiten zu verwenden sind. Zu Bereichen gehören zum Beispiel Bereichstabellen, zu Segmenten gehören Segmenttabellen, und zu Seiten gehören Seitentabellen. Diese Tabellen werden beispielsweise während der Umsetzung (z.B. einer dynamischen Adressumsetzung) einer virtuellen Adresse in eine reale Adresse benutzt, die für den Zugriff auf den Hauptspeicher verwendet wird. Die bei der Umsetzung zu verwendenden Tabellen, die hier als Umsetzungstabellen bezeichnet werden, werden von einem Adressraum-Steuerelement (ASCE) gekennzeichnet. Dieses Element ist in einer Publikation von IBM® mit dem Titel "z/Architecture Principles of Operation", IBM Publication Nr. SA22-7832-00, Dezember 2000, ausführlicher beschrieben. Eine Einheit des virtuellen Speichers, die dem Hauptspeicher gerade nicht zugeordnet ist, wird als ungültig bezeichnet. Der Zustand "ungültig" einer Einheit des virtuellen Speichers wird von einem Ungültig-Anzeiger in der Datenstruktur angegeben, die zu der Einheit gehört.
  • Der Mechanismus der dynamischen Adressumsetzung wird in einer Ausführungsform so ausgeführt, dass die von den Umsetzungstabellen (z.B. Bereichstabellen, Segmenttabellen und/oder Seitentabellen) durch den DAT-Prozess abgeleiteten Daten in einem oder mehreren Pufferspeichern, die sich in den Prozessoren befinden und hier als Adressenumsetzungs-Pufferspeicher bezeichnet werden, verwaltet werden, um die Leistungsfähigkeit der Adressenumsetzung zu verbessern. Das heißt, die Pufferspeicher werden während der Umsetzung auf die benötigten Daten geprüft, und wenn sich die Daten nicht in den Pufferspeichern befinden, wird auf eine oder mehrere der Umsetzungstabellen zugegriffen.
  • In einer Ausführungsform wird ein Eintrag im Pufferspeicher als einer von drei Arten betrachtet: ein kombinierter Bereichs- und Segmenttabelleneintrag im TLB, ein TLB-Seitentabelleneintrag oder ein Eintrag im realen TLB-Raum, von denen jeder nachstehend erklärt wird.
  • Ein kombinierter Bereichs- und Segmenttabelleneintrag (CRSTE) im TLB enthält sowohl die aus dem Tabelleneintrag oder den Tabelleneinträgen im realen oder absoluten Speicher abgerufenen Daten als auch die Attribute, die zum Abruf dieser Daten aus dem Speicher verwendet werden. In einem Beispiel enthält ein kombinierter Bereichs- und Segmenttabelleneintrag (CRSTE) im TLB die folgenden Felder:
  • TO:
    den Tabellenursprung im Adressraum-Steuerelement, der verwendet wird, um den Eintrag anzulegen;
    RX:
    den Bereichsindex der virtuellen Adresse, der verwendet wird, um den Eintrag anzulegen;
    SX:
    den Segmentindex der virtuellen Adresse, der verwendet wird, um den Eintrag anzulegen;
    PTO:
    den aus dem Segmenttabelleneintrag im realen oder im absoluten Speicher abgerufene Seitentabellenursprung;
    C:
    das aus dem Segmenttabelleneintrag im realen oder im absoluten Speicher abgerufene Bit für das gemeinsame Segment; und
    P:
    das aus dem Segmenttabelleneintrag im realen oder im absoluten Speicher abgerufene Seitenschutzbit.
    V:
    Das Gültigkeitsbit gibt an, ob der Eintrag im TLB gültig ist, und es kann somit verwendet werden, um nach nachfolgenden Einträgen zu suchen.
  • Ein TLB-Seitentabelleneintrag enthält die aus dem Tabelleneintrag oder den Tabelleneinträgen im realen oder im absoluten Speicher abgerufenen Daten und die Attribute, die verwendet werden, um diese Daten aus dem Speicher abzurufen. In einem Beispiel enthält ein TLB-Seitentabelleneintrag Folgendes:
  • TO:
    in Abhängigkeit davon, wie der Eintrag angelegt wurde, entweder den Tabellenursprung im Adressraum-Steuerelement oder den kombinierten Bereichs- und Segmenttabelleneintrag im TLB, der verwendet wurde, um den Eintrag anzulegen;
    PTO:
    den Seitentabellenursprung, der verwendet wurde, um den Eintrag anzulegen;
    PX:
    den Seitenindex der virtuellen Adresse, die verwendet wurde, um den Eintrag anzulegen;
    PFRA:
    die reale Adresse des Seitenrahmens, die aus dem Seitentabelleneintrag im realen oder im absoluten Speicher abgerufen wurde; und
    P:
    das aus dem Segmenttabelleneintrag im realen oder im absoluten Speicher abgerufene Seitenschutzbit.
    V:
    Das Gültigkeitsbit gibt an, ob der Eintrag im TLB gültig ist, und es kann somit verwendet werden, um nach nachfolgenden Einträgen zu suchen.
  • Zuweilen muss eine Speicherungseinheit ungültig gemacht werden. Um diesen Vorgang zu vereinfachen, wird die zu dieser Speicherungseinheit gehörende Umsetzungstabelle verwendet, wie hier beschrieben wird. Als Reaktion auf das Ungültigmachen des Speicherinhalts können außerdem auch die entsprechenden Einträge im Pufferspeicher gelöscht werden. Um zum Beispiel eine Seite des Speichers ungültig zu machen, wird ein Ungültig-Bit eines Seitentabelleneintrags gesetzt. In einem Beispiel werden überdies die entsprechenden Einträge in einem oder in mehreren TLBs atomar gelöscht. In einem ganz bestimmten Beispiel wird das Ungültigmachen und das Löschen von Einträgen, die zu Speicherseiten gehören, von einem Befehl "Invalidate Page Table Entry (IPTE)" durchgeführt.
  • Neben dem Ungültigmachen von Speicherseiten können gemäß einer Erscheinungsform der vorliegenden Erfindung Segmente und/oder Bereiche des Speichers ungültig gemacht werden. Bei diesem Vorgang des Ungültigmachens werden zum Beispiel Segment- und/oder Bereichstabellen verwendet. Eine Ausführungsform der Logik in Verbindung mit dem Ungültigmachen von einer bestimmten Speicherungseinheit wird mit Bezug auf 4 beschrieben.
  • Im SCHRITT 400 wird zunächst eine Bereichs- oder Segmenttabelle, in der ein oder mehrere Einträge ungültig gemacht werden sollen, gekennzeichnet. In einem Beispiel beinhaltet dies die Bereitstellung eines Bereichstabellen- oder Segmenttabellenursprungs. Anschließend wird ein Eintrag in der gekennzeichneten Bereichs- oder Segmenttabelle, der ungültig gemacht werden soll, gekennzeichnet, SCHRITT 402, und im SCHRITT 404 wird der Eintrag dann ungültig gemacht. In einem Beispiel erfolgt die Kennzeichnung, indem ein Bereichsindex oder ein Segmentindex (Bits einer virtuellen Adresse) bereitgestellt wird, der einen Eintrag in der gekennzeichneten Tabelle auswählt, und das Ungültigmachen beinhaltet das Setzen eines Ungültig-Anzeigers in dem Eintrag. Als Reaktion auf das Setzen des Ungültig-Anzeigers wird eine entsprechende Speicherungseinheit (z.B. ein Bereich oder ein Segment) ungültig gemacht.
  • Anschließend wird festgestellt, ob es weitere Einträge gibt, die ungültig gemacht werden sollen, ANFRAGE 406. Wenn weitere Einträge ungültig gemacht werden sollen, wird die Verarbeitung mit dem SCHRITT 402 fortgesetzt. Andernfalls ist die Verarbeitung abgeschlossen.
  • Neben dem Ungültigmachen von einem oder mehreren Einträgen in einer Bereichs- oder einer Segmenttabelle und folglich dem Ungültigmachen dieser Speicherungseinheiten können die entsprechenden (oder andere) Einträge aus einem oder mehreren Pufferspeichern auf einem oder mehreren Prozessoren in der Umgebung gelöscht werden. Eine Ausführungsform der Logik in Verbindung mit diesem Löschvorgang wird mit Bezug auf 5 ausführlicher beschrieben.
  • Zunächst wird festgestellt, ob ein Bereichs- oder Segmenttabellenursprung angegeben ist, ANFRAGE 500. Wenn ja, wird in einem oder in mehreren Pufferspeichern ein Eintrag gelöscht, der von dem Bereichs- oder Segmentindex angegeben wird, welcher mit dem Bereichs- oder Segmentursprung übereinstimmt, SCHRITT 502. Daraufhin wird festgestellt, ob es weitere zu löschende Einträge gibt, ANFRAGE 504. Wenn ja, wird die Verarbeitung mit dem SCHRITT 502 fortgesetzt. Andernfalls ist die Verarbeitung abgeschlossen.
  • Zur ANFRAGE 500 zurück kommend wird, wenn der Bereichs- oder Segmenttabellenursprung nicht angegeben ist, ein von dem Bereichs- oder Segmentindex angegebener Eintrag in einem oder in mehreren Pufferspeichern gelöscht, SCHRITT 508. Anschließend wird festgestellt, ob es weitere zu löschende Einträge gibt, ANFRAGE 510. Wenn ja, wird die Verarbeitung mit dem SCHRITT 508 fortgesetzt. Andernfalls ist die Verarbeitung abgeschlossen.
  • In einem Beispiel werden die Ungültigmachungs- und die Löschoperation von einem einzigen Befehl durchgeführt. Der Befehl macht die ausgewählten Einträge einer Segment- oder Bereichstabelle ungültig und löscht atomar mindestens die entsprechenden (oder andere) Einträge aus den TLBs auf den Prozessoren der Konfiguration. In einem Beispiel werden die Einträge aus allen TLBs auf allen Prozessoren, ungeachtet dessen, ob es sich um physische, virtuelle oder nachgebildete Prozessoren handelt, von Software gelöscht. Wenn eine TLB-Struktur mit mehreren Ebenen vorhanden ist, werden in einem Beispiel alle Ebenen gelöscht. Wenn in dem System mehrere logische Partitionen vorhanden sind, werden TLB-Einträge auf diesem und auf anderen Prozessoren gelöscht, die für die logische Partition angelegt wurden, in der der aktuelle IDTE-Befehl gerade ausgeführt wird.
  • Dieser Befehl kann in vielen Architekturen ausgeführt werden, und er kann nachgebildet werden. Der Befehl kann zum Beispiel in Hardware von einem Prozessor oder durch Nachbildung des Befehlssatzes, der diesen Befehl enthält, oder von Software ausgeführt werden, die auf einem Rechner mit einem anderen ursprünglichen Befehlssatz läuft. In einem ganz bestimmten Beispiel wird der Befehl in der z/Architecture ausgeführt und hier als ein Invalidate-Dynamic-Address-Translation-(DAT-)Table-Entry-(IDTE-)Befehl bezeichnet.
  • IDTE stellt beispielsweise eine Option zum Ungültigmachen und Löschen bereit, bei der eine oder mehrere Bereiche oder Segmente des Speichers über einen oder mehrere Einträge einer Bereichstabelle oder einer Segmenttabelle ungültig gemacht und mindestens die entsprechenden (oder andere) Einträge aus den TLBs (z.B. aus allen TLBs) in der Konfiguration gelöscht werden. Der Befehl gibt eine Mindestmenge von zu löschenden TLB-Einträgen an. In einer weiteren Ausführung können nach der Ausführung des IDTE-Befehls noch mehr Einträge oder sogar alle TLB-Einträge gelöscht werden.
  • Eine Ausführungsform des Formats eines Invalidate-DAT-Table-Entry-(IDTE-)Befehls wird mit Bezug auf 6a beschrieben. In einem Beispiel enthält ein IDTE-Befehl 600 zum Beispiel einen Operationscode 602, der den Invalidate-DAT-Table-Entry-Befehl (z.B. 'B98E'x) kennzeichnet, und eine Vielzahl von Registern 604 bis 608. Jedes der Register wird nachstehend mit Bezug auf die 6b bis 6d ausführlicher beschrieben.
  • Bezug nehmend auf 6b hat das Register 606, bei dem es sich um das allgemeine Register R1 handelt, zum Beispiel ein Format, bei dem ein Adressraum-Steuerelement mit einem Tabellenursprung (z.B. die Bits 0 bis 51) und ein Kennzeichnungstyp-Steuerelement (die Bits 60 und 61) verwendet werden. Die Bits 52 bis 59, 62 und 63 werden ignoriert. Im Einzelnen enthält R1 zum Beispiel einen Bereichstabellen- oder Segmenttabellenursprung für das Ungültigmachen 610, der die Umsetzungstabelle kennzeichnet, von der ein oder mehrere Einträge ungültig gemacht werden sollen, und ein Kennzeichnungstyp-Steuerelement (DT) 612, das den Typ dieser Tabelle (z.B. Bereichstabelle oder Segmenttabelle) angibt.
  • Das Register 608 (6c), bei dem es sich um das allgemeine Register R2 handelt, enthält einen Erstbereich-Index 614, der eine Bereichstabelle der ersten Ebene angibt, einen Zweitbereich-Index 616, der eine Bereichstabelle zweiter Ebene angibt, und einen Drittbereich-Index 618, der eine Bereichstabelle dritter Ebene angibt. Das heißt, um großen virtuellen Adressen gerecht zu werden, werden drei Ebenen von Bereichstabellen verwendet. Das Register R2 enthält auch einen Segmentindex 620, bei dem es sich um einen Index in eine Segmenttabelle handelt, einen Modus-Anzeiger 621, der die auszuführende Funktion bestimmt, und einen Anzeiger 622 für zusätzliche Einträge, der angibt, wie viele Einträge ungültig gemacht werden sollen. Die Bits 53 bis 63 des allgemeinen Registers R2 enthalten beispielsweise eine ganze Binärzahl, die die Anzahl der zusätzlichen Tabelleneinträge angibt, die ungültig gemacht werden sollen. In einem Beispiel beträgt die Anzahl der Einträge, die ungültig gemacht werden sollen, 1 bis 2048, was dem Bitwert 53 bis 63 von 0 bis 2047 entspricht. Die Bits 44 bis 51 des allgemeinen Registers R2 sind Nullen; andernfalls wird eine Spezifikationsausnahmebedingung erkannt. Folglich haben die Bits 0 bis 43 des allgemeinen Registers R2 das Format des Bereichs- und des Segmentindex einer virtuellen Adresse. Der Teil der Bits 0 bis 43, der von der DAT verwendet wird, um einen Eintrag in dem Tabellentyp auszuwählen, der vom allgemeinen Register R1 gekennzeichnet wird, wird als Effective Invalidation Index bezeichnet und nachstehend ausführlicher beschrieben.
  • Das Register 604 (6d), bei dem es sich um das allgemeine Register R3 handelt, hat zum Beispiel ein Format eines Adressraum-Steuerelements, bei dem der Tabellenursprung, die Bits 0 bis 51, verwendet wird, wenn es ungleich null ist. Dieser Tabellenursprung wird zur Auswahl von TLB-Einträgen verwendet, die gelöscht werden sollen, und die Art von Tabelle, die er kennzeichnet, ist von den Bits 60 und 61 des allgemeinen Registers R1 unabhängig. Die Bits 52 bis 63 des allgemeinen Registers R3 werden ignoriert. Wenn R3 den Wert null hat, wird der gesamte Inhalt des allgemeinen Registers 0 ignoriert. In einem Beispiel können sich die zu löschenden Einträge mit den Einträgen, die ungültig gemacht werden, decken oder von diesen abweichen.
  • Eine Ausführungsform der Logik in Verbindung mit einer Ungültigmachungs- und Löschoperation wird mit Bezug auf die 7a und 7b beschrieben. In einem Beispiel wird eine Ungültigmachungs- und Löschoperation angegeben, wenn das Bit 52 des allgemeinen Registers R2 den Wert null hat. Bei dieser Operation wird der gekennzeichnete Bereichstabellen- oder Segmenttabelleneintrag im Speicher oder ein Bereich von Einträgen, die mit dem gekennzeichneten Eintrag beginnen, ungültig gemacht, und die zugehörigen (oder andere) Einträge in den Adressenumsetzungs-Pufferspeichern (TLBs) in den CPUs der Konfiguration werden gelöscht. In einem Beispiel werden alle Ebenen der Pufferspeicher, sofern diese mehrere Ebenen haben, in allen CPUs gelöscht.
  • Bezug nehmend auf 7a wird zunächst ein Bereichstabellen- oder ein Segmenttabellenursprung, der eine Bereichstabelle oder eine Segmenttabelle kennzeichnet, aus der ein oder mehrere Einträge ungültig gemacht werden sollen, angegeben, SCHRITT 700. In einem Beispiel wird dies im allgemeinen Register R1 angegeben. Darüber hinaus wird ein Tabelleneintrag im Speicher, der ungültig gemacht werden soll, ausgewählt, SCHRITT 702. In einem Beispiel wird ein Tabelleneintrag gekennzeichnet, indem der Tabellenursprung im allgemeinen Register R1 und der gültige Ungültigmachungs-Index im allgemeinen Register R2 hinzugefügt und verschiedene Regeln befolgt werden, wie hier beschrieben wird.
  • Die Bits 60 und 61 des allgemeinen Registers R1 geben wie folgt einen Tabellentyp und einen gültigen Ungültigmachungs-Index an:
    Figure 00240001
    • (Der Teil der Bits 0 bis 43 rechts des gültigen Invalidierungsindex wird ignoriert.)
  • Mit Bezug auf die vorstehende Tabelle wird, wenn die Bits 60 und 61 den Binärwert 11 haben, der Erstbereich-Indexteil von R2 in Verbindung mit dem Erstbereich-Tabellenursprung von R1 zur Auswahl eines Eintrags in einer Erstbereichtabelle verwendet. Der Tabellenursprung wird als eine 64-Bit-Adresse behandelt.
  • Die 64-Bit-Adresse des Eintrags in der Erstbereichtabelle im realen oder im absoluten Speicher erhält man, indem man rechts der Bits 0 bis 51 der Kennzeichnung der Erstbereichtabelle zwölf Nullen anfügt und dem Erstbereich-Index drei äußerste rechte und fünfzig äußerste linke Nullen anfügt. Diese Hinzufüge-Operation wird entsprechend den Regeln für die 64-Bit-Adressenarithmetik ungeachtet des aktuellen Adressierungsmodus, der von den Bits 31 und 32 des aktuellen Programmstatusworts (PSW) angegeben wird, durchgeführt. Wenn während der Hinzufüge-Operation ein Übertrag der Bitstelle Null stattfindet, wird sie ignoriert. Die aus diesen beiden Komponenten gebildete Adresse ist eine reale oder absolute Adresse. Ungeachtet dessen, ob das aktuelle PSW den 24-Bit-, den 31-Bit- oder den 64-Bit-Adressierungsmodus angibt, werden alle 64 Bits der Adresse verwendet.
  • In einem Beispiel wird der gesamte Eintrag der Erstbereichtabelle gleichzeitig aus dem Speicher abgerufen, was von anderen CPUs beobachtet wird. Der Abrufzugriff auf den Eintrag unterliegt dem schlüsselgesteuerten Schutz, und der Speicherzugriff unterliegt dem schlüsselgesteuerten Schutz und dem Schutz von niedrigen Adressen. Wenn die Speicheradresse, die für den Abruf des Eintrags der Erstbereichtabelle erzeugt wurde, einen Speicherplatz kennzeichnet, der in der Konfiguration nicht verfügbar ist, wird eine Adressierungs-Ausnahmebedingung erkannt, und die Operationseinheit wird unterdrückt.
  • Wenn die Bits 60 und 61 den Binärwert 10 haben, wird der Zweitbereich-Index von R2 in Verbindung mit dem Ursprung der Zweitbereichtabelle von R1 zur Auswahl eines Eintrags aus der Zweitbereichtabelle verwendet. Der Tabellensuchvorgang in der Zweitbereichtabelle ist ähnlich dem Tabellensuchvorgang in der Erstbereichtabelle. Wenn keine Ausnahmebedingungen erkannt werden, kennzeichnet der aus der Zweitbereichtabelle abgerufene Eintrag den Anfang und gibt den Offset und die Länge der entsprechenden Drittbereichtabelle an.
  • Wenn die Bits 60 und 61 den Binärwert 01 haben, wird der Drittbereich-Indexteil von R2 in Verbindung mit dem Ursprung der Drittbereichtabelle von R1 zur Auswahl eines Eintrags aus der Drittbereichtabelle verwendet. Der Tabellensuchvorgang in der Drittbereichtabelle ist ähnlich dem Tabellensuchvorgang in der Erstbereichtabelle. Wenn keine Ausnahmebedingungen erkannt werden, kennzeichnet der aus der Drittbereichtabelle abgerufene Eintrag den Anfang und gibt den Längen-Offset der entsprechenden Segmenttabelle an.
  • Wenn die Bits 60 und 61 den Binärwert 00 haben, wird der Segmentindexteil von R2 in Verbindung mit dem Ursprung der Segmenttabelle von R1 zur Auswahl eines Eintrags aus der Segmenttabelle verwendet. Der Tabellensuchvorgang in der Segmenttabelle ist ähnlich dem Tabellensuchvorgang in der Erstbereichtabelle. Wenn keine Ausnahmebedingungen erkannt werden, kennzeichnet der aus der Segmenttabelle abgerufene Eintrag den Anfang der entsprechenden Seitentabelle.
  • In einem Beispiel wird der ganze Tabelleneintrag gleichzeitig aus dem Speicher abgerufen. Daraufhin wird der Eintrag ungültig gemacht, SCHRITT 704. In einem Beispiel wird der Eintrag ungültig gemacht, indem das Bit 58 des Eintrags auf den Binärwert 1 gesetzt wird. Durch das Ungültigmachen dieses Eintrags wird die entsprechende Speicherungseinheit ungültig gemacht.
  • Anschließend wird festgestellt, ob weitere Einträge ungültig gemacht werden sollen, ANFRAGE 706. In einem Beispiel wird dies festgestellt, indem die Bits 53 bis 63 des allgemeinen Registers R2 geprüft werden. Wenn die Bits 53 bis 63 des allgemeinen Registers R2 nicht alle den Wert null haben, müssen weitere Einträge ungültig gemacht werden. Folglich wird dem zuvor verwendeten Wert des wirksamen Ungültigmachungs-Index eine "1" hinzugefügt, und die Verarbeitung wird mit dem Schritt 700 fortgesetzt. Dies wird wiederholt, so dass die Anzahl der Einträge, die ungültig gemacht werden, um eins höher als die von den Bits 53 bis 63 angegebene Anzahl ist. Ein Übertrag der äußersten linken Bitstelle des gültigen Ungültigmachungs-Index wird ignoriert, und in diesem Fall findet ein Tabellenumlauf statt. Der Inhalt des allgemeinen Registers R2 bleibt unverändert.
  • Nachdem der eine oder mehrere Einträge ungültig gemacht worden sind, löscht diese CPU entsprechend einer weiteren Erscheinungsform der vorliegenden Erfindung ausgewählte Einträge aus ihrem TLB und signalisiert den anderen CPUs in der Konfiguration, ausgewählte Einträge aus ihren TLBs zu löschen, SCHRITT 708. In einem Beispiel werden in jedem TLB mindestens diejenigen Einträge aus der kombinierten Bereichs- und Segmenttabelle (CRSTEs) gelöscht, die die folgenden Bedingungen erfüllen:
    Der gültige Ungültigmachungs-Index und die Bits links des Index im allgemeinen Register R2 und der gleiche Teil des Bereichs- und Segmentindexfelds im TLB-Eintrag stimmen überein. (Wenn diese Felder Segmentindexfelder enthalten, können in einer Ausführungsform beliebige CRSTEs ungeachtet ihrer Bereichsindexfelder oder alle CRSTEs gelöscht werden. Wenn die Felder keine Segmentindexfelder enthalten, können alle CRSTEs gelöscht werden.) Es sei angemerkt, dass der gültige Invalidierungsindex erhöht wird und ein Übertrag der äußersten linken Bitstelle des Index verloren geht, wenn mehrere Tabelleneinträge aufgrund der Bits 53 bis 63 des allgemeinen Registers R2 ungültig gemacht werden.
  • Entweder hat R3 den Wert null, oder das Tabellenursprungsfeld im allgemeinen Register R3 stimmt mit dem Tabellenursprungsfeld im TLB-Eintrag überein.
  • Wenn der ungültig gemachte Eintrag ein Eintrag einer Segmenttabelle ist, stimmt das Seitentabellenursprungs-Feld in dem ungültig gemachten Eintrag mit dem Seitentabellenursprungs-Feld in dem TLB-Eintrag überein. (In einer Ausführungsform kann ein TLB-Eintrag unabhängig von dem Seitentabellenursprung in dem Eintrag gelöscht werden.) Außerdem werden in jedem TLB mindestens diejenigen Seitentabelleneinträge gelöscht, bei denen das Seitentabellenursprungs-Feld mit dem Seitentabellenursprungs-Feld in (1) dem ungültig gemachten Segmenttabelleneintrag übereinstimmt, wenn ein Segmenttabelleneintrag ungültig gemacht wurde, oder (2) in einem beliebigen kombinierten Bereichs- und Segmenttabelleneintrag übereinstimmt, der in demselben TLB gelöscht wurde (er befindet sich in dem Satz, der gelöscht werden soll). (In einer weiteren Ausführungsform kann ein Seitentabelleneintrag ungeachtet des Seitentabellenursprungs in dem Eintrag gelöscht werden. Das heißt, alle Seitentabelleneinträge können gelöscht werden.)
  • Eine Ausführungsform der Logik in Verbindung mit dem Löschen von Einträgen aus einem TLB wird mit Bezug auf 7b beschrieben. In einem Beispiel ist dies eine Fortsetzung der vom IDTE durchgeführten Verarbeitung, und sie wird im Vergleich zum Vorgang des Ungültigmachens atomar durchgeführt, was von dieser CPU und anderen CPUs in dem System beobachtet wird.
  • Bezug nehmend auf 7b wird zunächst festgestellt, ob R3 den Wert null hat, ANFRAGE 720. Wenn R3 ungleich null ist, wird im Register R3 ein Bereichstabellen- oder ein Segmenttabellenursprung für das Löschen angegeben, und damit ein TLB-Eintrag gelöscht werden kann, muss der im Register R3 gekennzeichnete Bereichs-/Segmenttabellenursprung mit dem Bereichs-/Segmenttabellenursprung übereinstimmen, der verwendet wurde, um den Eintrag anzulegen, SCHRITT 722. Wenn R3 den Wert null hat, wird der Inhalt des Registers R3 (des Registers 0) ignoriert, und ein Eintrag wird ungeachtet des Bereichs-/Segmenttabelleneintrags gelöscht, der verwendet wurde, um den Eintrag anzulegen, SCHRITT 724.
  • Alle Einträge, die von dem im Register R2 angegebenen Bereichs-/Segmentindex aufgeführt werden, werden im TLB auf allen Prozessoren im System gelöscht, SCHRITT 726. In einem Beispiel werden mindestens die kombinierten Bereichs- und Segmenttabelleneinträge im TLB gelöscht, bei denen beispielsweise der wirksame Ungültigmachungs-Index und die Bits links des Index im allgemeinen Register R2 und der gleiche Teil der Bereichs- und Segmentindextabelle im TLB-Eintrag übereinstimmen. Um einen Eintrag zu löschen, wird zum Beispiel das V-Bit ausgeschaltet.
  • Wenn ein Segmenttabelleneintrag ungültig gemacht wird, werden in den TLBs auf allen Prozessoren in dem System außerdem die Seitentabelleneinträge gelöscht, bei denen der Seitentabellenursprung in dem Eintrag gleich dem Seitentabellenursprung im TLB ist, SCHRITT 728. Wenn ein Segmenttabelleneintrag ungültig gemacht wird, werden überdies mindestens diejenigen Seitentabelleneinträge in den TLBs gelöscht, bei denen das Seitentabellenursprungs-Feld mit dem Seitentabellenursprungs-Feld in einem beliebigen CRSTE übereinstimmt, der (zum Beispiel notwendigerweise) in demselben TLB gelöscht worden ist, SCHRITT 730. Dieser Löschvorgang wird für mehrere Einträge wiederholt, deren Zahl um eins höher als die Zahl der Einträge ist, die im Feld 622 für zusätzliche Einträge von 6c angegeben ist, SCHRITT 732.
  • Anschließend wird festgestellt, ob die Ungültigmachungs-- und Löschoperation abgeschlossen ist, ANFRAGE 734. In einem Beispiel ist der IDTE-Befehl auf dem ausgebenden Prozessor erst abgearbeitet, wenn die gekennzeichneten TLB-Einträge auf dieser CPU gelöscht worden sind und alle anderen CPUs in dem System Speicherzugriffe unter Verwendung des in diesem Befehl angegebenen TLB-Eintrags abgeschlossen haben. In einem Beispiel ist es die Stilllegungs-Steuereinheit (quiesce controller), die diesem ausgebenden Prozessor anzeigt, ob die anderen Prozessoren ihre Zugriffsoperationen abgeschlossen haben. Das heißt, der ausgebende Prozessor gilt als der Hauptprozessor, und alle untergeordneten Prozessoren, die von dem IDTE-Befehl betroffen sind, melden der Steuereinheit ihren Zustand. Als Reaktion darauf, dass die Steuereinheit den entsprechenden Zustand von den untergeordneten Prozessoren empfängt, zeigt sie dem Hauptprozessor die Fertigstellung an. Falls die Verarbeitung abgeschlossen ist, ist der Befehl abgearbeitet, SCHRITT 736. Andernfalls wartet der Prozessor eine vorher festgelegte Zeitspanne und prüft den Status erneut, oder ihm wird die Fertigstellung signalisiert, ANFRAGE 734.
  • In einer Ausführungsform kann das Speichern in dem Bereichs- oder Segmenttabelleneintrag und das Löschen von TLB-Einträgen wahlweise stattfinden oder nicht stattfinden, wenn das Ungültig-Bit in dem Bereichs- oder Segmenttabelleneintrag bereits den Wert "1" hatte.
  • Zwar werden TLB-Einträge in der vorstehend beschriebenen Ausführungsform erst gelöscht, wenn alle gewünschten Einträge ungültig gemacht worden sind, doch können TLB-Einträge in anderen Ausführungsformen gelöscht werden, nachdem ein einzelner TLB-Eintrag ungültig gemacht worden ist oder nachdem mehrere ausgewählte Einträge ungültig gemacht worden sind.
  • In einer weiteren Erscheinungsform der vorliegenden Erfindung kann der IDTE-Befehl alternativ zum Löschen von TLB-Einträgen verwendet werden, die zu einem Adressraum gehören (beispielsweise einem Adressraum, der von einem Adressraum-Steuerelement (ASCE) gekennzeichnet wird). In einem Beispiel wird diese Option angezeigt, indem das Bit 52 des allgemeinen Registers R2 auf 1 gesetzt wird. Bei dieser Option werden der Inhalt des allgemeinen Registers R1 (siehe 8a) sowie die Bits 0 bis 43 und die Bits 53 bis 63 des allgemeinen Registers R2 (siehe 8b) ignoriert. Der Inhalt des allgemeinen Registers R3 hat das Format eines Adressraum-Steuerelements, wobei der Tabellenursprung, die Bits 0 bis 51, verwendet wird (8c). Die Bits 52 bis 63 des allgemeinen Registers R3 werden ignoriert. R3 kann den Wert null oder einen Wert ungleich null haben; das heißt, jedes allgemeine Register einschließlich des Registers 0 kann gekennzeichnet werden. Diese Operation macht den Speicherinhalt nicht ungültig, löscht aber mindestens diejenigen kombinierten Bereichs- und Segmenttabelleneinträge und Seitentabelleneinträge aus den TLBs der CPUs in der Konfiguration, bei denen das Tabellenursprungsfeld mit dem Tabellenursprungsfeld im allgemeinen Register R3 übereinstimmt. (In einer weiteren Ausführungsform kann unabhängig vom Tabellenursprung in dem Eintrag ein Seitentabelleneintrag gelöscht werden. Das heißt, alle Seitentabelleneinträge können gelöscht werden.)
  • Eine Ausführungsform der Logik in Verbindung mit dem Löschen einer ASCE-Operation wird mit Bezug auf 9 beschrieben. Zunächst wird ein Bereichstabellen- oder ein Segmenttabellenursprung angegeben, der eine Bereichstabelle oder eine Segmenttabelle kennzeichnet, für die entsprechende TLB-Einträge gelöscht werden sollen, SCHRITT 900. In einem Beispiel wird dies in den Bits 0 bis 51 des allgemeinen Registers R3 angegeben. Daraufhin werden mindestens die kombinierten Bereichs- und Segmenttabelleneinträge sowie Seitentabelleneinträge, die dem in R3 angegebenen Tabellenursprung entsprechen, auf allen Prozessoren in dem System gelöscht, SCHRITT 902.
  • Anschließend wird festgestellt, ob der IDTE-Befehl vollständig ausgeführt worden ist, ANFRAGE 904. In einer Ausführungsform ist der IDTE-Befehl auf dem ausgebenden Prozessor erst abgearbeitet, wenn die TLB-Einträge, die den angegebenen Parametern entsprechen, auf der ausgebenden CPU gelöscht worden sind und die anderen CPUs in der Konfiguration jedwede Speicherzugriffe einschließlich der Aktualisierung der Änderungs- und Referenzbits unter Verwendung der TLB-Einträge, die den angegebenen Parametern entsprechen, abgeschlossen haben. Wenn die Einträge gelöscht wurden und die Speicherzugriffe abgeschlossen sind, ist die Ausführung des IDTE-Befehls abgeschlossen, SCHRITT 906. Andernfalls wartet der Prozessor eine vorher festgelegte Zeitspanne und prüft den Status erneut, oder ihm wird die Fertigstellung signalisiert, ANFRAGE 904.
  • Die Verarbeitung in Verbindung mit einem IDTE-Befehl wurde vorstehend ausführlich beschrieben. In einer Ausführungsform wirken sich die Operationen nicht unbedingt auf Einträge im realen TLB-Raum aus. Im Folgenden werden weitere Informationen, Verbesserungen und/oder Ausführungsformen in Verbindung mit der Verarbeitung einer Ausführungsform eines IDTE-Befehls beschrieben.
    • 1. Das selektive Löschen von TLB-Einträgen kann in Abhängigkeit von dem Modell oder der ausgewählten Ausführungsform unterschiedlich vorgenommen werden. Im Allgemeinen können zum Beispiel mehr Einträge als die angegebene Mindestzahl gelöscht werden. Wenn die Ungültigmachungs- und Löschoperation durchgeführt wird, können alle kombinierten Bereichs- und Segmenttabelleneinträge (CRSTEs), die einen Segmentindex enthalten, der gleich einem wirksamen Ungültigmachungs-Index ist, bei dem es sich um einen Segmentindex handelt, gelöscht werden, oder alle CRSTEs können gelöscht werden, wenn der gültige Ungültigmachungs-Index kein Segmentindex ist. Außerdem kann ein CRSTE oder ein Seitentabelleneintrag ungeachtet des Seitentabellenursprungs in dem Eintrag gelöscht werden. Wenn die Operation, bei der das Löschen mittels ASCE erfolgt, durchgeführt wird, kann ein Seitentabelleneintrag ungeachtet des Tabellenursprungs in dem Eintrag gelöscht werden. Wenn in derselben Ausführungsform sowohl die eine als auch die andere Operation durchgeführt wird, kann die genaue Mindestzahl der erforderlichen Einträge gelöscht werden.
    • 2. Ein Adressraum-Steuerelement kann anstelle eines Bereichstabellen- oder Segmenttabellenursprungs einen Ursprung in Form von einem Kennzeichen des realen Adressraums enthalten. Ein Tabellenursprung im allgemeinen Register R3 kann nicht von einem Kennzeichen-Ursprung in dem Register unterschieden werden.
    • 3. Wenn die Ungültigmachungs- und Löschoperation angegeben ist, kann beim Löschen von TLB-Einträgen vom Seitentabellenursprung in einem Segmenttabelleneintrag Gebrauch gemacht werden. Wenn der Segmenttabelleneintrag im zugeordneten Zustand einen Seitentabellenursprung enthielt, der vom aktuellen Wert abweicht, können folglich Kopien der Einträge, die die vorherigen Werte enthalten, im TLB bleiben.
    • 4. Wenn die Ungültigmachungs- und Löschoperation angegeben ist, ist die Adresse des DAT-Tabelleneintrags für den IDTE eine 64-Bit-Adresse, und die Adressenarithmetik wird durchgeführt, indem die normalen Regeln für die 64-Bit-Adressenarithmetik mit einem Umlauf bei 264 – 1 befolgt werden. Auch das Offset- und das Längenfeld werden nicht benutzt. Folglich muss bei den DAT-Tabellen kein Umlauf von den höchsten Speicherplätzen zum Speicherplatz 0 angegeben werden, und der erste gekennzeichnete Eintrag und alle weiteren Einträge, die von den Bits 63–63 des allgemeinen Registers R3 angegeben werden, sollten innerhalb der gekennzeichneten Tabelle liegen.
    • 5. Der IDTE-Befehl wird unter SIE abgefangen. In einer Ausführungsform wird das System so für eine zeitlich aufeinander folgende Verarbeitung ausgelegt (serialisiert), dass der Prozessor, der den IDTE-Befehl ausführt, erst mit der Operation beginnen kann, wenn die anderen Prozessoren die anzugebenden TLB-Einträge nicht mehr verwenden. Außerdem setzt der Prozessor, der den IDTE-Befehl ausführt, die weitere Ausführung erst fort, wenn die entsprechenden Einträge aus den TLBs aller Prozessoren in dem System gelöscht worden sind.
    • 6. Eine Serialisierungsfunktion wird vor dem Beginn der Operation und nochmals nach Abschluss der Operation ausgeführt. Die Serialisierung gilt für diese CPU; andere CPUs werden nicht unbedingt serialisiert.
  • Vorstehend wurde ein Beispiel eines Befehls, der Einträge einer Segment- oder einer Bereichstabelle ungültig machen und mindestens die entsprechenden (oder andere) Einträge aus einem oder mehreren Adressenumsetzungs-Pufferspeichern atomar löschen kann, ausführlich beschrieben. Zwar wurde hier ein bestimmter Befehl beschrieben, doch können an dem Befehl viele Veränderungen vorgenommen werden, ohne vom Wesen der vorliegenden Erfindung abzuweichen. Es können zum Beispiel andere Operationscodes, andere Felder, andere Register oder sogar keine Register, andere Bits usw. verwendet werden. Beispielsweise können andere Architekturen von Befehlssätzen einen gleichwertigen Befehl in etwas anderer Weise festlegen (es werden z.B. andere Operationscodes, andere Felder in dem Befehl, andere Register verwendet usw.), während nach wie vor eine oder mehrere Erscheinungsformen der vorliegenden Erfindung Anwendung finden. Wie vorstehend beschrieben wurde, lassen sich eine oder mehrere Erscheinungsformen der vorliegenden Erfindung genauso gut auf eine Software-Emulation einer Zielarchitektur wie zum Beispiel der z/Architecture von IBM anwenden. In diesem Fall kann es sich bei den vorstehend erörterten TLBs um eine Matrix oder um eine andere Datenstruktur handeln, die von dem Software-Emulator realisiert wird, um die zuletzt durchgeführten Abbildungen von virtuellen in reale Adressen zu speichern. Es ist auch möglich, dass die Emulator-Software keine einem TLB entsprechende Struktur realisiert. In diesem Fall findet gegebenenfalls nur der Vorgang des Ungültigmachens von Einträgen im Speicher Anwendung.
  • Folglich wird hier ein Befehl bereitgestellt, der den Speicherinhalt ungültig machen, den Speicherinhalt ungültig machen und Einträge im Pufferspeicher atomar löschen oder aber nur Einträge im Pufferspeicher löschen kann. Es wird daher gesagt, dass ein oder mehrere Register des Befehls als Nulloperationen ("no-ops") konfiguriert werden können. Das heißt, die Informationen in diesen Registern, sofern vorhanden, die zu einer bestimmten Operation (z.B. Ungültigmachen, Löschen usw.) gehören, die nicht stattfindet, werden entweder ignoriert oder zeigen an, dass die Operation nicht durchgeführt wird.
  • Zwar wurde vorstehend ein bestimmter Befehl beschrieben, bei dem Einträge ungültig gemacht, ungültig gemacht und gelöscht oder nur gelöscht werden, doch kann der Befehl abgeändert werden, oder es können andere Befehle realisiert werden, die lediglich eine oder mehrere Erscheinungsformen der von dem IDTE-Befehl durchgeführten Operationen ausführen. Zum Beispiel könnte ein Befehl lediglich den Inhalt des Speichers ungültig machen. Als ein weiteres Beispiel könnte der Befehl lediglich Einträge aus Pufferspeichern löschen, die zu bestimmten Segment- oder Bereichstabellen gehören. Als noch ein weiteres Beispiel könnte ein Befehl ausgeführt werden, der Einträge nur auf der Grundlage des Adressraums löscht.
  • Bei einer für kommerziellen Anwendungen ausgelegten Ausführung des von der Rechnerarchitektur vorgegebenen Formats des Befehls zum Ungültigmachen und/oder Löschen von Einträgen werden die Befehle von Programmierern wie zum Beispiel von Programmierern von Betriebssystemen verwendet, die in der Assembler-Sprache programmieren. Diese auf einem Speichermedium gespeicherten Befehlsformate können in ihrer ursprünglichen Form auf einem IBM-Server mit z/Architecture ausgeführt werden oder alternativ auf Rechnern laufen, die andere Architekturen ausführen. Sie können in vorhandenen und in zukünftigen IBM-Großrechnern und auf anderen Rechnern von IBM (z.B. Servern der pSeries und der xSeries) nachgebildet werden. Sie können auf Rechnern, auf denen Linux läuft, oder auf einer Vielzahl von anderen Rechnern, die von IBM, Intel, AMD, Sun Microsystems und anderen hergestellte Hardware nutzen, ausgeführt werden. Neben der Ausführung auf Hardware unter der z/Architecture kann Linux verwendet werden, und es können auch andere Rechner eingesetzt werden, bei denen die Emulation mit Hercules, UMX, FXI oder Platform Solutions durchgeführt wird und die Ausführung im Allgemeinen in einem Emulationsmodus stattfindet.
  • Im Emulationsmodus wird der jeweilige Befehl, der nachgebildet wird, decodiert, und eine Unterroutine wird erstellt, um den einzelnen Befehl auszuführen, wie dies zum Beispiel bei einer Unterroutine oder einem Treiber in C der Fall ist, oder es wird ein anderes Verfahren eingesetzt, um einen Treiber für die jeweilige Hardware bereitzustellen; das im Einzelfall gewählte verfahren liegt im Ermessen des Fachmanns, nachdem dieser die Beschreibung einer Ausführungsform der Erfindung gelesen hat. Verschiedene Patentschriften zum Thema Software- und Hardware-Emulation, darunter die US-Patentschrift Nr. 5 551 013, die US-Patentschrift Nr. 6 009 261, der US-Patentschrift Nr. 5 574 873, die US-Patentschrift Nr. 6 308 255, die US-Patentschrift Nr. 6 463 582 und die US-Patentschrift Nr. 5 790 825, jedoch nicht auf diese beschränkt, veranschaulichen eine Vielfalt bekannter Möglichkeiten, mit denen sich das Format eines Befehls nachbilden lässt, dessen Architektur für einen anderen Rechner oder für einen dem Fachmann zur Verfügung stehenden Zielrechner ausgelegt ist, und mit denen sich die vorstehend beschriebenen kommerziellen Software-Verfahren umsetzen lassen, die von den vorstehend Genannten angewendet werden.
  • Vorteilhafterweise verbessern ein oder mehrere Erscheinungsformen der vorliegenden Erfindung die Systemleistung. Indem man beispielsweise Einträge selektiv aus Pufferspeichern löscht, statt den gesamten Inhalt der Pufferspeicher zu löschen, wird die Systemleistung dadurch erhöht, dass die Notwendigkeit, Einträge neu zu erstellen, entfällt. Das heißt, man benötigt mindestens 20 und bis zu Hunderten von Zyklen, um einen TLB-Eintrag zu erstellen, und indem man Einträge selektiv löscht, müssen Einträge nicht unnötigerweise neu erstellt werden.
  • Ein weiterer Vorteil besteht darin, dass in dem Fall, in dem der gesamte Inhalt des TLB gelöscht werden soll, die gegebene Art der Ausführung die Möglichkeit bietet, Einträge im Übermaß zu löschen. Überdies kann der TLB-Teil als ein Nullbefehl behandelt werden, wenn ein TLB zum Beispiel nicht verwendet wird. Vorteilhafterweise kann der IDTE-Befehl in Hardware, Firmware, Software oder einer Kombination daraus ausgeführt werden, oder er kann in einem Emulator eines Befehlssatzes eines Zielrechners verwendet werden.
  • An der vorstehend beschriebenen Umgebung sind viele Veränderungen möglich, ohne vom Wesen der vorliegenden Erfindung abzuweichen. So sind zum Beispiel eine oder mehrere Erscheinungsformen der vorliegenden Erfindung gleichermaßen auf beispielsweise eine Emulation einer virtuellen Maschine anwendbar, bei der eine oder mehrere auslagerbare Entitäten (z.B. Gäste) Operationen auf einem oder mehreren Prozessoren ausführen. Auslagerbare Gäste werden beispielsweise von der Start-Interpretive-Execution-(SIE-) Architektur definiert, wobei ein Beispiel dieser Architektur in einer IBM®-Publikation mit dem Titel "IBM System/370 Extended Architecture", IBM Publication Nr. SA22-7095 (1985) beschrieben ist.
  • Obgleich SIE und die z/Architecture vorstehend erwähnt wurden, sind eine oder mehrere Erscheinungsformen der vorliegenden Erfindung genauso auf andere Architekturen und/oder Umgebungen anwendbar, die auslagerbare Entitäten oder ähnliche Konstrukte verwenden.
  • Die verschiedenen vorstehend beschriebenen Ausführungsformen haben außerdem lediglich Beispielcharakter. An diesen Ausführungsformen können viele Änderungen vorgenommen werden, ohne vom Wesen der vorliegenden Erfindung abzuweichen. Obgleich in diesem Schriftstück beispielsweise eine logisch unterteilte Umgebung beschrieben ist, dient diese Umgebung lediglich als Beispiel. Erscheinungsformen der Erfindung sind für viele Arten von Umgebungen einschließlich anderer Umgebungen, die über eine Vielzahl von Zonen verfügen, und Umgebungen, die nicht unterteilt sind, von Vorteil. Darüber hinaus kann es anstelle von Zentralprozessorkomplexen mehrere miteinander verbundene Prozessoren geben. Auch sind eine oder mehrere Erscheinungsformen der Erfindung auf Umgebungen mit nur einem Prozessor anwendbar.
  • Obgleich hier bestimmte Umgebungen beschrieben wurden, können an diesen Umgebungen viele Änderungen vorgenommen werden, ohne vom Wesen der vorliegenden Erfindung abzuweichen. Wenn die Umgebung zum Beispiel logisch unterteilt ist, können mehr oder weniger logische Partitionen in die Umgebung aufgenommen werden. Außerdem kann es mehrere miteinander verbundene Zentralprozessorkomplexe geben. Dies sind nur einige der Änderungen, die vorgenommen werden können. Darüber hinaus sind noch weitere abweichende Gestaltungsformen möglich. Obgleich die hier beschriebene Steuereinheit den Befehl serialisiert, so dass nur jeweils ein IDTE-Befehl ausgeführt wird, können in einer anderen Ausführungsform beispielsweise mehrere Befehle gleichzeitig ausgeführt werden. Auch kann die Umgebung mehrere Steuereinheiten enthalten. Ferner besteht die Möglichkeit, dass in dem System mehrere Stilllegungsanforderungen (von einer oder mehreren Steuereinheiten) gleichzeitig anstehen. Weitere Variationen sind ebenfalls möglich.
  • Der Begriff "Verarbeitungseinheit" in der hier verwendeten Weise beinhaltet auslagerbare Entitäten wie zum Beispiel Gäste, Prozessoren, Emulatoren und/oder andere ähnliche Komponenten. Darüber hinaus beinhaltet das Konstrukt "von einer/durch eine Verarbeitungseinheit" die Bedeutung "im Namen beziehungsweise im Auftrag einer Verarbeitungseinheit". Der Begriff "Pufferspeicher" beinhaltet einen Bereich des Speichers sowie verschiedene Arten von Datenstrukturen einschließlich Matrizen, jedoch nicht auf diese beschränkt; und der Begriff "Tabelle" kann andere Datenstrukturen als Datenstrukturen vom Typ Tabelle beinhalten. Ein Befehl kann außerdem nicht nur Register zur Kennzeichnung von Informationen beinhalten. Ferner können eine Seite, ein Segment und/oder ein Bereich eine andere Größe als die hier beschriebene aufweisen.
  • Eine oder mehrere Funktionen der vorliegenden Erfindung können in Software, Firmware, Hardware oder einer Kombination daraus ausgeführt werden. Überdies können eine oder mehrere der Funktionen nachgebildet werden.
  • Eine oder mehrere Erscheinungsformen der vorliegenden Erfindung können in einen Herstellungsgegenstand (z.B. in ein oder in mehrere Rechnerprogrammprodukte) integriert werden, der zum Beispiel über einen rechnerlesbaren Datenträger verfügt. Auf dem Datenträger befindet sich zum Beispiel ein rechnerlesbares Programmcode-Mittel oder eine rechnerlesbare Logik (z.B. Anweisungen, Code, Befehle usw.), um die Funktionen der vorliegenden Erfindung bereitzustellen und zu vereinfachen. Der Herstellungsgegenstand kann als Teil eines Rechnersystems enthalten sein oder separat zum Verkauf angeboten werden.
  • Überdies kann mindestens eine Programmspeichereinheit bereitgestellt werden, die von einem Rechner gelesen werden kann, der mindestens ein Programm mit Befehlen enthält, die von dem Rechner ausgeführt werden können, um die Funktionen der vorliegenden Erfindung auszuführen.
  • Bei den hier gezeigten Flussdiagrammen handelt es sich lediglich um Beispiele. An diesen Diagrammen oder den darin beschriebenen Schritten (oder Operationen) können viele Änderungen vorgenommen werden. Beispielsweise kann die Reihenfolge der Schritte geändert werden, oder Schritte können hinzugefügt, gelöscht oder geändert werden.
  • Eine Vorrichtung, die dazu dient, den Inhalt des Speichers einer Datenverarbeitungsumgebung ungültig zu machen, wobei die Vorrichtung Folgendes umfasst:
    Ein Mittel, um über einen Befehl eine Speicherungseinheit anzugeben, die ungültig gemacht werden soll, wobei die Speicherungseinheit eine Vielzahl von Speicherseiten umfasst; und
    ein Mittel, um die Speicherungseinheit ungültig zu machen.
  • ZUSAMMENFASSUNG
  • Ausgewählte Speicherungseinheiten wie zum Beispiel Speichersegmente oder Speicherbereiche werden ungültig gemacht. Das Ungültigmachen wird dadurch vereinfacht, dass Ungültigmachungs-Anzeiger gesetzt werden, die sich in den Datenstruktur-Einträgen befinden, welche den Speicherungseinheiten, die ungültig gemacht werden sollen, entsprechen. Ferner werden Einträge in Pufferspeichern, die zu den ungültig gemachten Speicherungseinheiten oder anderen gewählten Speicherungseinheiten gehören, gelöscht. Ein Befehl zur Durchführung der Ungültigmachungs- und/oder Löschoperation wird bereitgestellt. Darüber hinaus werden Einträge in Pufferspeichern, die zu einem bestimmten Adressraum gehören, gelöscht, ohne ungültig gemacht zu werden. Dies wird ebenfalls von dem Befehl durchgeführt. Der Befehl kann in Software, Hardware, Firmware oder einer Kombination daraus ausgeführt oder emuliert werden.

Claims (24)

  1. Verfahren, das dazu dient, den Speicherinhalt einer Datenverarbeitungsumgebung ungültig zu machen, wobei das Verfahren Folgendes umfasst: über einen Befehl Angeben einer Speicherungseinheit, die ungültig gemacht werden soll, wobei die Speicherungseinheit eine Vielzahl von Speicherseiten umfasst; und Ungültigmachen der Speicherungseinheit.
  2. Verfahren nach Anspruch 1, wobei die Angabe die Bereitstellung einer Information über den Speicherplatz einer Datenstruktur umfasst, die zu der Speicherungseinheit gehört.
  3. Verfahren nach Anspruch 2, wobei die Information über den Speicherplatz einen Ursprung der Datenstruktur umfasst.
  4. Verfahren nach Anspruch 3, wobei die Information über den Speicherplatz des Weiteren einen Index eines Eintrags der Datenstruktur umfasst, wobei der Eintrag der Speicherungseinheit entspricht.
  5. Verfahren nach Anspruch 4, wobei das Ungültigmachen das Setzen eines Ungültig-Anzeigers des Eintrags umfasst, um die Speicherungseinheit ungültig zu machen.
  6. Verfahren nach Anspruch 2, wobei die Speicherungseinheit entweder ein Speichersegment oder einen Speicherbereich umfasst, und wobei die Datenstruktur entweder eine Segment-Datenstruktur oder eine Bereichs-Datenstruktur umfasst.
  7. Verfahren nach Anspruch 1, wobei das Ungültigmachen über den Befehl durchgeführt wird.
  8. Verfahren nach Anspruch 1, wobei das Ungültigmachen das Setzen eines Ungültig-Anzeigers umfasst, der zu der Speicherungseinheit gehört.
  9. Verfahren nach Anspruch 8, wobei sich der Ungültig-Anzeiger in einer Datenstruktur befindet, die zu der Speicherungseinheit gehört.
  10. Verfahren nach Anspruch 9, wobei die Datenstruktur eine Vielzahl von Einträgen umfasst und wobei das Ungültigmachen des Weiteren die Verwendung eines Indexes umfasst, um den Eintrag abzurufen, der zu der Speicherungseinheit gehört, die ungültig gemacht werden soll, wobei der Eintrag über den Ungültig-Anzeiger verfügt.
  11. Verfahren nach Anspruch 1, wobei die Speicherungseinheit ein Speichersegment umfasst, wobei das Speichersegment eine Vielzahl von Speicherseiten umfasst.
  12. Verfahren nach Anspruch 1, wobei die Speicherungseinheit einen Speicherbereich umfasst, wobei der Speicherbereich eine Vielzahl von Speichersegmenten umfasst, wobei ein Speichersegment eine Vielzahl von Speicherseiten umfasst.
  13. Verfahren nach Anspruch 1, wobei die Angabe die Angabe einer Vielzahl von Speicherungseinheiten und das Ungültigmachen das Ungültigmachen der Vielzahl der Speicherungseinheiten umfasst.
  14. Verfahren nach Anspruch 13, das des Weiteren das Löschen von einem oder mehreren Einträgen in Pufferspeichern umfasst, die zu mindestens einer von einer oder mehreren Speicherungseinheiten der Vielzahl der Speicherungseinheiten sowie einer weiteren Speicherungseinheit gehören.
  15. Verfahren nach Anspruch 1, das des Weiteren das Löschen von einem oder mehreren Einträgen von einem oder mehreren Pufferspeichern umfasst, die zu der mindestens einen Speicherungseinheit und einer weiteren Speicherungseinheit gehören.
  16. Verfahren nach Anspruch 15, wobei mindestens ein Pufferspeicher des einen oder der mehrfach vorhandenen Pufferspeicher ein Pufferspeicher mit mehreren Ebenen ist.
  17. Verfahren nach Anspruch 15, wobei ein oder mehrere Einträge von mindestens einem Pufferspeicher des einen oder der mehrfach vorhandenen Pufferspeicher nicht gelöscht werden.
  18. Verfahren nach Anspruch 15, wobei zu dem einen oder den mehrfach vorhandenen Pufferspeichern ein oder mehrere Adressenumsetzungs-Pufferspeicher gehören.
  19. Verfahren nach Anspruch 15, wobei das Ungültigmachen und das Löschen über den Befehl durchgeführt werden.
  20. Verfahren nach Anspruch 1, wobei der Speicher einen virtuellen Speicher umfasst.
  21. Verfahren nach Anspruch 1, wobei der Befehl mindestens in einem, in Hardware, in Firmware oder in Software, ausgeführt wird.
  22. Verfahren nach Anspruch 1, wobei der Befehl von einer Verarbeitungseinheit ausgeführt wird, die eine Architektur des Befehls emuliert.
  23. System, das dazu dient, den Speicherinhalt einer Datenverarbeitungsumgebung ungültig zu machen, wobei das System ein Mittel umfasst, um die Schritte nach einem der vorhergehenden Ansprüche auszuführen.
  24. Mindestens eine Programmspeichereinheit, die von einem Rechner gelesen werden kann, der mindestens ein Programm mit Befehlen enthält, die von dem Rechner ausgeführt werden können, um das Verfahren nach einem der vorhergehenden Verfahrensansprüche auszuführen.
DE112004000464T 2003-05-12 2004-05-06 Ungültigmachen von Speichereinträgen, Löschen von Pufferspeicher-Einträgen Ceased DE112004000464T5 (de)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US10/435,919 US7284100B2 (en) 2003-05-12 2003-05-12 Invalidating storage, clearing buffer entries, and an instruction therefor
US10/435,919 2003-05-12
PCT/GB2004/001971 WO2004099997A1 (en) 2003-05-12 2004-05-06 Invalidating storage, clearing buffer entries

Publications (1)

Publication Number Publication Date
DE112004000464T5 true DE112004000464T5 (de) 2006-06-01

Family

ID=33417045

Family Applications (6)

Application Number Title Priority Date Filing Date
DE112004000464T Ceased DE112004000464T5 (de) 2003-05-12 2004-05-06 Ungültigmachen von Speichereinträgen, Löschen von Pufferspeicher-Einträgen
DE602004011018T Active DE602004011018T2 (de) 2003-05-12 2004-05-06 Ungültigkeitserklärung eines speichers und löschen von puffereinträgen
DE602004021030T Active DE602004021030D1 (de) 2003-05-12 2004-05-06 Ungültigkeitserklärung eines Speichers und Löschen von Puffereinträgen
DE602004030452T Active DE602004030452D1 (de) 2003-05-12 2004-05-06 Speicherinvalidierung, Löschung von Puffereintragungen
DE602004031628T Active DE602004031628D1 (de) 2003-05-12 2004-05-06 Speicherinvalidierung, Löschung von Puffereintragungen
DE602004024254T Active DE602004024254D1 (de) 2003-05-12 2004-05-06 Ungültigkeitserklärung eines Speichers und Löschen von Puffereinträgen

Family Applications After (5)

Application Number Title Priority Date Filing Date
DE602004011018T Active DE602004011018T2 (de) 2003-05-12 2004-05-06 Ungültigkeitserklärung eines speichers und löschen von puffereinträgen
DE602004021030T Active DE602004021030D1 (de) 2003-05-12 2004-05-06 Ungültigkeitserklärung eines Speichers und Löschen von Puffereinträgen
DE602004030452T Active DE602004030452D1 (de) 2003-05-12 2004-05-06 Speicherinvalidierung, Löschung von Puffereintragungen
DE602004031628T Active DE602004031628D1 (de) 2003-05-12 2004-05-06 Speicherinvalidierung, Löschung von Puffereintragungen
DE602004024254T Active DE602004024254D1 (de) 2003-05-12 2004-05-06 Ungültigkeitserklärung eines Speichers und Löschen von Puffereinträgen

Country Status (16)

Country Link
US (7) US7284100B2 (de)
EP (5) EP1914627B1 (de)
JP (1) JP4608484B2 (de)
KR (2) KR100834362B1 (de)
CN (2) CN100397368C (de)
AT (5) ATE491178T1 (de)
CY (2) CY1111421T1 (de)
DE (6) DE112004000464T5 (de)
DK (4) DK1588267T3 (de)
ES (5) ES2357802T3 (de)
GB (3) GB2414842B (de)
IL (1) IL171905A (de)
PL (4) PL1653365T3 (de)
PT (2) PT1653343E (de)
SI (2) SI1653365T1 (de)
WO (1) WO2004099997A1 (de)

Families Citing this family (101)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8312222B1 (en) * 2002-12-13 2012-11-13 Open Text, S.A. Event-driven regeneration of pages for web-based applications
US8463998B1 (en) 2002-12-13 2013-06-11 Open Text S.A. System and method for managing page variations in a page delivery cache
US7284100B2 (en) * 2003-05-12 2007-10-16 International Business Machines Corporation Invalidating storage, clearing buffer entries, and an instruction therefor
US7530067B2 (en) * 2003-05-12 2009-05-05 International Business Machines Corporation Filtering processor requests based on identifiers
US9454490B2 (en) 2003-05-12 2016-09-27 International Business Machines Corporation Invalidating a range of two or more translation table entries and instruction therefore
US7443878B2 (en) * 2005-04-04 2008-10-28 Sun Microsystems, Inc. System for scaling by parallelizing network workload
US7415035B1 (en) * 2005-04-04 2008-08-19 Sun Microsystems, Inc. Device driver access method into a virtualized network interface
US7415034B2 (en) * 2005-04-04 2008-08-19 Sun Microsystems, Inc. Virtualized partitionable shared network interface
JP2006333438A (ja) * 2005-04-28 2006-12-07 Fujitsu Ten Ltd ゲートウェイ装置及びルーティング方法
US20070005932A1 (en) * 2005-06-29 2007-01-04 Intel Corporation Memory management in a multiprocessor system
JP4978008B2 (ja) * 2006-01-11 2012-07-18 株式会社日立製作所 仮想計算機上でのページテーブルアドレスの変更を高速化する方法
JP2007233615A (ja) * 2006-02-28 2007-09-13 Fujitsu Ltd アドレス変換装置
US7647509B2 (en) * 2006-05-12 2010-01-12 Intel Corporation Method and apparatus for managing power in a processing system with multiple partitions
US7797555B2 (en) * 2006-05-12 2010-09-14 Intel Corporation Method and apparatus for managing power from a sequestered partition of a processing system
US7401185B2 (en) * 2006-07-06 2008-07-15 International Business Machines Corporation Buffered indexing to manage hierarchical tables
US7555628B2 (en) * 2006-08-15 2009-06-30 Intel Corporation Synchronizing a translation lookaside buffer to an extended paging table
US20080270827A1 (en) * 2007-04-26 2008-10-30 International Business Machines Corporation Recovering diagnostic data after out-of-band data capture failure
US8799620B2 (en) * 2007-06-01 2014-08-05 Intel Corporation Linear to physical address translation with support for page attributes
US8180997B2 (en) * 2007-07-05 2012-05-15 Board Of Regents, University Of Texas System Dynamically composing processor cores to form logical processors
US8145876B2 (en) * 2007-08-06 2012-03-27 Advanced Micro Devices, Inc. Address translation with multiple translation look aside buffers
US8151083B2 (en) * 2008-01-11 2012-04-03 International Business Machines Corporation Dynamic address translation with frame management
US8677098B2 (en) 2008-01-11 2014-03-18 International Business Machines Corporation Dynamic address translation with fetch protection
US8117417B2 (en) 2008-01-11 2012-02-14 International Business Machines Corporation Dynamic address translation with change record override
US8335906B2 (en) 2008-01-11 2012-12-18 International Business Machines Corporation Perform frame management function instruction for clearing blocks of main storage
US8037278B2 (en) 2008-01-11 2011-10-11 International Business Machines Corporation Dynamic address translation with format control
US8041922B2 (en) 2008-01-11 2011-10-18 International Business Machines Corporation Enhanced dynamic address translation with load real address function
US8082405B2 (en) 2008-01-11 2011-12-20 International Business Machines Corporation Dynamic address translation with fetch protection
US8019964B2 (en) 2008-01-11 2011-09-13 International Buisness Machines Corporation Dynamic address translation with DAT protection
US8417916B2 (en) * 2008-01-11 2013-04-09 International Business Machines Corporation Perform frame management function instruction for setting storage keys and clearing blocks of main storage
US8103851B2 (en) 2008-01-11 2012-01-24 International Business Machines Corporation Dynamic address translation with translation table entry format control for indentifying format of the translation table entry
US8041923B2 (en) 2008-01-11 2011-10-18 International Business Machines Corporation Load page table entry address instruction execution based on an address translation format control field
US8112174B2 (en) * 2008-02-25 2012-02-07 International Business Machines Corporation Processor, method and computer program product for fast selective invalidation of translation lookaside buffer
US8086811B2 (en) 2008-02-25 2011-12-27 International Business Machines Corporation Optimizations of a perform frame management function issued by pageable guests
US8176280B2 (en) * 2008-02-25 2012-05-08 International Business Machines Corporation Use of test protection instruction in computing environments that support pageable guests
US8458438B2 (en) * 2008-02-26 2013-06-04 International Business Machines Corporation System, method and computer program product for providing quiesce filtering for shared memory
US8095773B2 (en) 2008-02-26 2012-01-10 International Business Machines Corporation Dynamic address translation with translation exception qualifier
US8527715B2 (en) * 2008-02-26 2013-09-03 International Business Machines Corporation Providing a shared memory translation facility
US8380907B2 (en) * 2008-02-26 2013-02-19 International Business Machines Corporation Method, system and computer program product for providing filtering of GUEST2 quiesce requests
US8140834B2 (en) * 2008-02-26 2012-03-20 International Business Machines Corporation System, method and computer program product for providing a programmable quiesce filtering register
US8266411B2 (en) * 2009-02-05 2012-09-11 International Business Machines Corporation Instruction set architecture with instruction characteristic bit indicating a result is not of architectural importance
US8510511B2 (en) 2009-12-14 2013-08-13 International Business Machines Corporation Reducing interprocessor communications pursuant to updating of a storage key
US8930635B2 (en) * 2009-12-14 2015-01-06 International Business Machines Corporation Page invalidation processing with setting of storage key to predefined value
US8918601B2 (en) * 2009-12-14 2014-12-23 International Business Machines Corporation Deferred page clearing in a multiprocessor computer system
US8806179B2 (en) 2009-12-15 2014-08-12 International Business Machines Corporation Non-quiescing key setting facility
US8214598B2 (en) * 2009-12-22 2012-07-03 Intel Corporation System, method, and apparatus for a cache flush of a range of pages and TLB invalidation of a range of entries
US8407701B2 (en) 2010-06-24 2013-03-26 International Business Machines Corporation Facilitating quiesce operations within a logically partitioned computer system
US8595469B2 (en) 2010-06-24 2013-11-26 International Business Machines Corporation Diagnose instruction for serializing processing
US8918885B2 (en) * 2012-02-09 2014-12-23 International Business Machines Corporation Automatic discovery of system integrity exposures in system code
US9182984B2 (en) 2012-06-15 2015-11-10 International Business Machines Corporation Local clearing control
US9251091B2 (en) * 2012-06-15 2016-02-02 International Business Machines Corporation Translation look-aside table management
US20130339656A1 (en) 2012-06-15 2013-12-19 International Business Machines Corporation Compare and Replace DAT Table Entry
US9043565B2 (en) * 2012-09-07 2015-05-26 Kabushiki Kaisha Toshiba Storage device and method for controlling data invalidation
US9196014B2 (en) 2012-10-22 2015-11-24 Industrial Technology Research Institute Buffer clearing apparatus and method for computer graphics
US9092382B2 (en) 2012-11-02 2015-07-28 International Business Machines Corporation Reducing microprocessor performance loss due to translation table coherency in a multi-processor system
US9330017B2 (en) * 2012-11-02 2016-05-03 International Business Machines Corporation Suppressing virtual address translation utilizing bits and instruction tagging
US10509725B2 (en) 2013-03-08 2019-12-17 Oracle International Corporation Flushing by copying entries in a non-coherent cache to main memory
US20140258635A1 (en) * 2013-03-08 2014-09-11 Oracle International Corporation Invalidating entries in a non-coherent cache
US9208362B1 (en) 2013-03-11 2015-12-08 United States Of America As Represented By The Administrator Of The National Aeronautics And Space Administration Methods, systems and apparatuses for radio frequency identification
US9619387B2 (en) * 2014-02-21 2017-04-11 Arm Limited Invalidating stored address translations
US9886391B2 (en) * 2014-03-20 2018-02-06 International Business Machines Corporation Selective purging of PCI I/O address translation buffer
EP2997478B1 (de) * 2014-07-21 2019-03-13 VIA Alliance Semiconductor Co., Ltd. Effiziente adressübersetzungscachespeicherung in einem prozessor mit unterstützung einer grossen anzahl von verschiedenen adressenräumen
US9684606B2 (en) * 2014-11-14 2017-06-20 Cavium, Inc. Translation lookaside buffer invalidation suppression
US9697137B2 (en) * 2014-11-14 2017-07-04 Cavium, Inc. Filtering translation lookaside buffer invalidations
US9477516B1 (en) 2015-03-19 2016-10-25 Google Inc. Concurrent in-memory data publication and storage system
US11755484B2 (en) 2015-06-26 2023-09-12 Microsoft Technology Licensing, Llc Instruction block allocation
US9946548B2 (en) 2015-06-26 2018-04-17 Microsoft Technology Licensing, Llc Age-based management of instruction blocks in a processor instruction window
US10409599B2 (en) 2015-06-26 2019-09-10 Microsoft Technology Licensing, Llc Decoding information about a group of instructions including a size of the group of instructions
US10409606B2 (en) 2015-06-26 2019-09-10 Microsoft Technology Licensing, Llc Verifying branch targets
US9952867B2 (en) 2015-06-26 2018-04-24 Microsoft Technology Licensing, Llc Mapping instruction blocks based on block size
US10346168B2 (en) 2015-06-26 2019-07-09 Microsoft Technology Licensing, Llc Decoupled processor instruction window and operand buffer
US10175988B2 (en) 2015-06-26 2019-01-08 Microsoft Technology Licensing, Llc Explicit instruction scheduler state information for a processor
US10169044B2 (en) 2015-06-26 2019-01-01 Microsoft Technology Licensing, Llc Processing an encoding format field to interpret header information regarding a group of instructions
US10191747B2 (en) 2015-06-26 2019-01-29 Microsoft Technology Licensing, Llc Locking operand values for groups of instructions executed atomically
US11126433B2 (en) 2015-09-19 2021-09-21 Microsoft Technology Licensing, Llc Block-based processor core composition register
US10768936B2 (en) 2015-09-19 2020-09-08 Microsoft Technology Licensing, Llc Block-based processor including topology and control registers to indicate resource sharing and size of logical processor
US11016770B2 (en) 2015-09-19 2021-05-25 Microsoft Technology Licensing, Llc Distinct system registers for logical processors
US10942683B2 (en) 2015-10-28 2021-03-09 International Business Machines Corporation Reducing page invalidation broadcasts
US10162764B2 (en) 2016-07-18 2018-12-25 International Business Machines Corporation Marking page table/page status table entries to indicate memory used to back address translation structures
US10176111B2 (en) 2016-07-18 2019-01-08 International Business Machines Corporation Host page management using active guest page table indicators
US10248573B2 (en) 2016-07-18 2019-04-02 International Business Machines Corporation Managing memory used to back address translation structures
US10223281B2 (en) 2016-07-18 2019-03-05 International Business Machines Corporation Increasing the scope of local purges of structures associated with address translation
US10176006B2 (en) 2016-07-18 2019-01-08 International Business Machines Corporation Delaying purging of structures associated with address translation
US10176110B2 (en) 2016-07-18 2019-01-08 International Business Machines Corporation Marking storage keys to indicate memory used to back address translation structures
US10802986B2 (en) 2016-07-18 2020-10-13 International Business Machines Corporation Marking to indicate memory used to back address translation structures
US10282305B2 (en) 2016-07-18 2019-05-07 International Business Machines Corporation Selective purging of entries of structures associated with address translation in a virtualized environment
US10180909B2 (en) 2016-07-18 2019-01-15 International Business Machines Corporation Host-based resetting of active use of guest page table indicators
US10241924B2 (en) 2016-07-18 2019-03-26 International Business Machines Corporation Reducing over-purging of structures associated with address translation using an array of tags
US10168902B2 (en) 2016-07-18 2019-01-01 International Business Machines Corporation Reducing purging of structures associated with address translation
US10169243B2 (en) 2016-07-18 2019-01-01 International Business Machines Corporation Reducing over-purging of structures associated with address translation
US11531552B2 (en) 2017-02-06 2022-12-20 Microsoft Technology Licensing, Llc Executing multiple programs simultaneously on a processor core
US10528488B1 (en) * 2017-03-30 2020-01-07 Pure Storage, Inc. Efficient name coding
US10437729B2 (en) 2017-04-19 2019-10-08 International Business Machines Corporation Non-disruptive clearing of varying address ranges from cache
US10725928B1 (en) * 2019-01-09 2020-07-28 Apple Inc. Translation lookaside buffer invalidation by range
US11151267B2 (en) 2019-02-25 2021-10-19 International Business Machines Corporation Move data and set storage key based on key function control
US11042483B2 (en) 2019-04-26 2021-06-22 International Business Machines Corporation Efficient eviction of whole set associated cache or selected range of addresses
US11132470B2 (en) * 2019-11-07 2021-09-28 Micron Technology, Inc. Semiconductor device with secure access key and associated methods and systems
US11030124B2 (en) 2019-11-07 2021-06-08 Micron Technology, Inc. Semiconductor device with secure access key and associated methods and systems
US11182308B2 (en) * 2019-11-07 2021-11-23 Micron Technology, Inc. Semiconductor device with secure access key and associated methods and systems
CN111338987B (zh) * 2020-02-13 2023-12-12 江苏华创微系统有限公司 快速无效组相联tlb的方法
US11422946B2 (en) 2020-08-31 2022-08-23 Apple Inc. Translation lookaside buffer striping for efficient invalidation operations
US11615033B2 (en) 2020-09-09 2023-03-28 Apple Inc. Reducing translation lookaside buffer searches for splintered pages

Family Cites Families (57)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US592853A (en) 1897-11-02 Electric battery
US4432053A (en) 1981-06-29 1984-02-14 Burroughs Corporation Address generating apparatus and method
JPS5815195A (ja) 1981-07-22 1983-01-28 株式会社日立製作所 制御棒駆動装置の自動交換装置
JPS5815196A (ja) 1981-07-22 1983-01-28 株式会社日立製作所 蒸気発生プラント
JPS58150196A (ja) 1982-02-27 1983-09-06 Fujitsu Ltd 主記憶キ−の更新制御方式
JPS58150195A (ja) 1982-02-27 1983-09-06 Fujitsu Ltd 主記憶キ−制御方式
JPS5994289A (ja) * 1982-11-22 1984-05-30 Hitachi Ltd 記憶制御方式
US4779188A (en) * 1983-12-14 1988-10-18 International Business Machines Corporation Selective guest system purge control
US4792895A (en) * 1984-07-30 1988-12-20 International Business Machines Corp. Instruction processing in higher level virtual machines by a real machine
EP0206653B1 (de) 1985-06-28 1992-10-21 Hewlett-Packard Company Verfahren und Mittel zum Laden und Speichern von Daten in einem Rechner mit beschränktem Befehlssatz
EP0220451B1 (de) 1985-10-30 1994-08-10 International Business Machines Corporation Cache-Speicherübereinstimmungsvorrichtung mit Verriegelung
JP2545789B2 (ja) 1986-04-14 1996-10-23 株式会社日立製作所 情報処理装置
JPS62295147A (ja) * 1986-06-16 1987-12-22 Hitachi Ltd 仮想計算機システム
JP2960415B2 (ja) * 1987-05-22 1999-10-06 株式会社日立製作所 記憶保護方法および装置
JP2510605B2 (ja) 1987-07-24 1996-06-26 株式会社日立製作所 仮想計算機システム
JP2507785B2 (ja) * 1988-07-25 1996-06-19 富士通株式会社 ペ―ジテ―ブルエントリ無効化装置
JP2592958B2 (ja) * 1989-06-30 1997-03-19 キヤノン株式会社 液晶装置
US5471593A (en) 1989-12-11 1995-11-28 Branigin; Michael H. Computer processor with an efficient means of executing many instructions simultaneously
US5317705A (en) 1990-10-24 1994-05-31 International Business Machines Corporation Apparatus and method for TLB purge reduction in a multi-level machine system
US5500948A (en) * 1991-10-29 1996-03-19 Intel Corporation Translating instruction pointer virtual addresses to physical addresses for accessing an instruction cache
US5423014A (en) * 1991-10-29 1995-06-06 Intel Corporation Instruction fetch unit with early instruction fetch mechanism
JP3242161B2 (ja) 1992-09-11 2001-12-25 株式会社日立製作所 データプロセッサ
US5615354A (en) * 1992-12-23 1997-03-25 International Business Machines Corporation Method and system for controlling references to system storage by overriding values
WO1994027215A1 (en) 1993-05-07 1994-11-24 Apple Computer, Inc. Method for decoding guest instructions for a host computer
DE69425310T2 (de) 1993-10-18 2001-06-13 Via Cyrix Inc Mikrosteuereinheit für einen superpipeline-superskalaren Mikroprozessor
JP2806778B2 (ja) 1994-01-28 1998-09-30 甲府日本電気株式会社 変換索引バッファクリア命令処理方式
DE19516949A1 (de) 1994-05-11 1996-02-15 Gmd Gmbh Speichervorrichtung zum Speichern von Daten
US5551013A (en) 1994-06-03 1996-08-27 International Business Machines Corporation Multiprocessor for hardware emulation
JP2842313B2 (ja) * 1995-07-13 1999-01-06 日本電気株式会社 情報処理装置
US5790825A (en) 1995-11-08 1998-08-04 Apple Computer, Inc. Method for emulating guest instructions on a host computer through dynamic recompilation of host instructions
US5761743A (en) * 1996-06-28 1998-06-09 Marmon Holdings, Inc. Finger cot and method of manufacturing finger cot
US5761734A (en) 1996-08-13 1998-06-02 International Business Machines Corporation Token-based serialisation of instructions in a multiprocessor system
US5782029A (en) * 1996-09-25 1998-07-21 Saf T Lok Corporation Firearm safety mechanism
JPH10301814A (ja) * 1997-04-23 1998-11-13 Hitachi Ltd 情報処理システム
US6009261A (en) 1997-12-16 1999-12-28 International Business Machines Corporation Preprocessing of stored target routines for emulating incompatible instructions on a target processor
US6079013A (en) 1998-04-30 2000-06-20 International Business Machines Corporation Multiprocessor serialization with early release of processors
US6119219A (en) 1998-04-30 2000-09-12 International Business Machines Corporation System serialization with early release of individual processor
US6199219B1 (en) 1998-05-08 2001-03-13 Howard Silken Device to facilitate removal of a helmet face mask
US6308255B1 (en) 1998-05-26 2001-10-23 Advanced Micro Devices, Inc. Symmetrical multiprocessing bus and chipset used for coprocessor support allowing non-native code to run in a system
US6119204A (en) 1998-06-30 2000-09-12 International Business Machines Corporation Data processing system and method for maintaining translation lookaside buffer TLB coherency without enforcing complete instruction serialization
US6978357B1 (en) 1998-07-24 2005-12-20 Intel Corporation Method and apparatus for performing cache segment flush and cache segment invalidation operations
US20020147969A1 (en) 1998-10-21 2002-10-10 Richard A. Lethin Dynamic optimizing object code translator for architecture emulation and dynamic optimizing object code translation method
GB9825102D0 (en) 1998-11-16 1999-01-13 Insignia Solutions Plc Computer system
US6467007B1 (en) 1999-05-19 2002-10-15 International Business Machines Corporation Processor reset generated via memory access interrupt
US6587964B1 (en) 2000-02-18 2003-07-01 Hewlett-Packard Development Company, L.P. Transparent software emulation as an alternative to hardware bus lock
US6604187B1 (en) 2000-06-19 2003-08-05 Advanced Micro Devices, Inc. Providing global translations with address space numbers
US6651132B1 (en) * 2000-07-17 2003-11-18 Microsoft Corporation System and method for emulating the operation of a translation look-aside buffer
EP1182570A3 (de) 2000-08-21 2004-08-04 Texas Instruments Incorporated TLB mit Ressource-Kennzeichnungsfeld
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
US6715050B2 (en) * 2001-05-31 2004-03-30 Oracle International Corporation Storage access keys
US6801993B2 (en) 2001-09-28 2004-10-05 International Business Machines Corporation Table offset for shortening translation tables from their beginnings
US6931471B2 (en) * 2002-04-04 2005-08-16 International Business Machines Corporation Method, apparatus, and computer program product for migrating data subject to access by input/output devices
US7197585B2 (en) * 2002-09-30 2007-03-27 International Business Machines Corporation Method and apparatus for managing the execution of a broadcast instruction on a guest processor
JP3936672B2 (ja) * 2003-04-30 2007-06-27 富士通株式会社 マイクロプロセッサ
US7284100B2 (en) 2003-05-12 2007-10-16 International Business Machines Corporation Invalidating storage, clearing buffer entries, and an instruction therefor
US7530067B2 (en) * 2003-05-12 2009-05-05 International Business Machines Corporation Filtering processor requests based on identifiers
US7356710B2 (en) 2003-05-12 2008-04-08 International Business Machines Corporation Security message authentication control instruction

Also Published As

Publication number Publication date
CY1111466T1 (el) 2015-08-05
GB2414842A (en) 2005-12-07
US20050268045A1 (en) 2005-12-01
CN100397368C (zh) 2008-06-25
KR20060014030A (ko) 2006-02-14
ATE430963T1 (de) 2009-05-15
WO2004099997A1 (en) 2004-11-18
KR100834365B1 (ko) 2008-06-02
US20110119466A1 (en) 2011-05-19
EP1653343B1 (de) 2010-12-08
SI1653365T1 (sl) 2011-06-30
US20040230749A1 (en) 2004-11-18
GB0518904D0 (en) 2005-10-26
EP1914627B1 (de) 2009-11-18
DK1588267T3 (da) 2008-05-13
EP1588267A1 (de) 2005-10-26
EP1653343A2 (de) 2006-05-03
DE602004031628D1 (de) 2011-04-14
ES2297417T3 (es) 2008-05-01
GB0518901D0 (en) 2005-10-26
PT1653343E (pt) 2010-12-20
ATE491178T1 (de) 2010-12-15
EP1914627A3 (de) 2008-06-25
ES2327058T3 (es) 2009-10-23
US20050273561A1 (en) 2005-12-08
ATE449374T1 (de) 2009-12-15
WO2004099997A9 (en) 2005-10-27
US7284100B2 (en) 2007-10-16
DK1653365T3 (da) 2011-05-09
US20060036824A1 (en) 2006-02-16
PT1653365E (pt) 2011-03-22
SI1653343T1 (sl) 2011-01-31
US20120117356A1 (en) 2012-05-10
EP1653343A3 (de) 2006-07-19
ES2336973T3 (es) 2010-04-19
US7197601B2 (en) 2007-03-27
PL1701269T3 (pl) 2009-10-30
EP1653365B1 (de) 2011-03-02
GB2413876B (en) 2006-03-01
US7890731B2 (en) 2011-02-15
DE602004011018D1 (de) 2008-02-07
ATE500553T1 (de) 2011-03-15
US8122224B2 (en) 2012-02-21
US20070186075A1 (en) 2007-08-09
JP2006526203A (ja) 2006-11-16
CN1904860A (zh) 2007-01-31
EP1701269A1 (de) 2006-09-13
US7281115B2 (en) 2007-10-09
GB2414841A (en) 2005-12-07
ES2357802T3 (es) 2011-04-29
PL1653365T3 (pl) 2011-07-29
EP1701269B1 (de) 2009-05-06
EP1914627A2 (de) 2008-04-23
CY1111421T1 (el) 2015-08-05
CN1784663A (zh) 2006-06-07
DE602004030452D1 (de) 2011-01-20
DK1653343T3 (da) 2011-01-24
EP1653365A3 (de) 2006-11-08
EP1588267B1 (de) 2008-01-02
ES2359893T3 (es) 2011-05-27
GB0516192D0 (en) 2005-09-14
KR100834362B1 (ko) 2008-06-02
GB2414841B (en) 2006-07-05
GB2413876A (en) 2005-11-09
PL1588267T3 (pl) 2008-06-30
DE602004024254D1 (de) 2009-12-31
DK1701269T3 (da) 2009-08-03
DE602004021030D1 (de) 2009-06-18
ATE382896T1 (de) 2008-01-15
KR20060093140A (ko) 2006-08-23
US8452942B2 (en) 2013-05-28
JP4608484B2 (ja) 2011-01-12
CN100363908C (zh) 2008-01-23
PL1653343T3 (pl) 2011-03-31
IL171905A0 (en) 2006-04-10
IL171905A (en) 2010-06-16
DE602004011018T2 (de) 2008-12-24
GB2414842B (en) 2006-07-05
EP1653365A2 (de) 2006-05-03

Similar Documents

Publication Publication Date Title
DE602004011018T2 (de) Ungültigkeitserklärung eines speichers und löschen von puffereinträgen
DE102007063960B3 (de) Synchronisieren eines Übersetzungspufers (TLB) mit einer erweiterten Seitenwechseltabelle
DE112015001977B4 (de) Synchronisieren von Aktualisierungen von Statusanzeigern in einer Datenverarbeitungsumgebung
DE60103414T2 (de) Cpu, die auf ein erweitertes registerset in einem erweiterten registermodus zugreift und entsprechendes verfahren
DE112005002405B4 (de) Fehlerverarbeitung für Direktspeicherzugriffs-Adreßübersetzung
DE112005003859B4 (de) Verwalten von Prozessorressourcen während Architekturereignissen
DE69738101T2 (de) Verwaltung des Zugangs zu Objekten mit Hilfe von Referenzen mit drei Zuständen
DE10393920B4 (de) Verfahren und Systeme zur Steuerung virtueller Maschinen
DE10357804B4 (de) Neu-Beanspruchung vorhandener Felder in Adressübersetzungsdatenstrukturen zum Erweitern der Kontrolle über Speicherzugriffe
DE112017001027B4 (de) Seitenfehlerbehebung
DE112010004322T5 (de) Vorhersagen und Vermeiden von Operand-Speichervorgang-Vergleich-Gefahren in Mikroprozessoren mit abweichender Reihenfolge
DE102010035603A1 (de) Bereitstellen von Hardwareunterstützung für gemeinsam benutzten virtuellen Speicher zwischen physischem Lokal- und Fernspeicher
DE112007000812T5 (de) Transaktionalspeicher in Out-of-Order-Prozessoren
DE202007019502U1 (de) Globaler Überlauf für virtualisierten Transaktionsspeicher
DE112005003098T5 (de) Verfahren und Vorrichtung zum Zugreifen auf einen physikalischen Speicher von einer CPU oder einem Prozessorelement mit hoher Leistung
DE112010004971T5 (de) Ein System, Verfahren und eine Vorrichtung für einen Cache-Flush eines Seitenbereichs und TLB Invalidierung eines Bereichs von Einträgen
DE112007001988T5 (de) Gemeinsames Nutzen von Informationen durch Gäste in einer Virtuelle-Maschine-Umgebung
DE102014014076A1 (de) Reduzierte Adressenkonvertierung mit mehreren Seitengrößen
DE112005002328T5 (de) Cachespeicherungsunterstützung für Direktspeicherzugriffsadreßübersetzung
DE112010004963T5 (de) Synchronisieren von SIMD Vektoren
DE112005002304T5 (de) Adreßumsetzung für Eingabe/Ausgabe- Vorrichtungen mittels hierarchischer Umsetzungstabellen
DE102014108785A1 (de) Vorausschauendes abrufen und decodieren bei ausgewählten anweisungen
DE102008025476A1 (de) Übersetzung einer virtuellen Adresse in eine physikalische Adresse mit Unterstützung von Seitenattributen
DE102014109083A1 (de) Bilden von Anweisungsgruppen basierend auf der Optimierung von Anweisungen bei der Dekodierung
DE102012217315A1 (de) Verwenden von nativen Routinen an Stelle von emulierten Routinen in einer emulierten Anwendung

Legal Events

Date Code Title Description
OP8 Request for examination as to paragraph 44 patent law

Ref document number: 112004000464

Country of ref document: DE

Date of ref document: 20060601

Kind code of ref document: P

8131 Rejection