DE112020000907T5 - Ungültigkeitserklärung eines adressübersetzungs-cache in einem mikroprozessor - Google Patents

Ungültigkeitserklärung eines adressübersetzungs-cache in einem mikroprozessor Download PDF

Info

Publication number
DE112020000907T5
DE112020000907T5 DE112020000907.6T DE112020000907T DE112020000907T5 DE 112020000907 T5 DE112020000907 T5 DE 112020000907T5 DE 112020000907 T DE112020000907 T DE 112020000907T DE 112020000907 T5 DE112020000907 T5 DE 112020000907T5
Authority
DE
Germany
Prior art keywords
address translation
processor
instruction
lpid
invalidation instruction
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.)
Granted
Application number
DE112020000907.6T
Other languages
English (en)
Other versions
DE112020000907B4 (de
Inventor
Debapriya Chatterjee
Larry Leitner
Bryant Cockcroft
John Schumann
Karen Yokum
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 DE112020000907T5 publication Critical patent/DE112020000907T5/de
Application granted granted Critical
Publication of DE112020000907B4 publication Critical patent/DE112020000907B4/de
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

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
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/0223User address space allocation, e.g. contiguous or non contiguous base addressing
    • G06F12/0284Multiple user address space allocation, e.g. using different base addresses
    • 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/0223User address space allocation, e.g. contiguous or non contiguous base addressing
    • G06F12/0292User address space allocation, e.g. contiguous or non contiguous base addressing using tables or multilevel address translation 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
    • 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/109Address translation for multiple virtual address spaces, e.g. segmentation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/10Providing a specific technical effect
    • G06F2212/1016Performance improvement
    • G06F2212/1024Latency reduction
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/65Details of virtual memory and virtual address translation
    • G06F2212/657Virtual address space management

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Memory System Of A Hierarchy Structure (AREA)
  • Multi Processors (AREA)

Abstract

Ein Verfahren und ein Informationsbearbeitungssystem mit einer Mehrzahl von Prozessoren, die durch ein prozessorübergreifendes Netzwerk verbunden sind, wobei jeder von der Mehrzahl von Prozessoren bevorzugt ein Filterkonstrukt mit einer ausgehenden Filterliste aufweist, die logische Partitionsidentifizierungen (LPIDs) identifiziert, die ausschließlich diesem Prozessor zugewiesen sind, und/oder einer eingehenden Filterliste, die LPIDs auf diesem Prozessor und mindestens einem weiteren Prozessor in dem System identifiziert. Wenn die LPID der ausgehenden Anweisung zur Ungültigkeitserklärung der Übersetzung sich im Betrieb auf der ausgehenden Filterliste befindet, wird die Anweisung zur Ungültigkeitserklärung der Adressübersetzung für das System bestätigt. Wenn die LPID der eingehenden Anweisung zur Ungültigkeitserklärung mit keiner LPID auf der eingehenden Filterliste übereinstimmt, wird die Anweisung zur Ungültigkeitserklärung der Übersetzung bestätigt, und wenn die LPID der eingehenden Anweisung zur Ungültigkeitserklärung mit irgendeiner LPID auf der eingehenden Filterliste übereinstimmt, wird die Anweisung zur Ungültigkeitserklärung an den jeweiligen Prozessor gesendet.

Description

  • HINTERGRUND
  • Diese Offenbarung betrifft hierin allgemein Prozessoren und insbesondere Verfahren und Systeme zum Ändern oder Entfernen von Adressübersetzungen in einem Informationsbearbeitungssystem, einschließlich dem Verarbeiten von Anweisungen zur Ungültigkeitserklärung der Adressübersetzung in einem System mit einer Mehrzahl von Prozessoren.
  • Ein herkömmlicher Computer umfasst in der Regel mehrere Prozessoren, die fähig sind, verschiedene Datentypen zu speichern, wie beispielsweise Daten, die zum Übersetzen von virtuellen Adressen in physische Adressen verwendet werden. Die Daten können weit verteilt und auf verschiedenen Prozessoren im gesamten System gespeichert sein. Zum Verbessern der Übersetzungsleistung von virtuellem Arbeitsspeicher nutzen moderne Mikroprozessoren eine Form von Adressübersetzungs-Cache oder-Puffer. Das gebräuchlichste Hardware-Konstrukt für Arbeitsspeicherübersetzung ist der Adressübersetzungspufferspeicher (TLB). Wenn eine Adressübersetzung einer virtuellen Seite geändert oder entfernt wird, z.B. aufgrund einer Seitenneuzuordnung oder Seitenersetzung, könnten der Cache- oder Pufferspeichereintrag, der die Adressübersetzung enthält, ebenfalls entfernt werden. In den meisten modernen Mikroprozessoren wird dieser Prozess durch Software gesteuert und wird durch die Anweisung zur Ungültigkeitserklärung des Pufferspeichers der Adressübersetzung ausgeführt. Der Computer erfährt möglicherweise eine Abnahme der Leistung, wenn ein Prozessor Adressübersetzungsinformationen über ein prozessorübergreifendes Netzwerksystem ungültig machen muss. Das heißt, die Latenz beim Verarbeiten der Anweisung zur Ungültigkeitserklärung des Pufferspeichers der Adressübersetzung nimmt zu, wenn der Prozessor eine Ungültigkeitserklärungs-Prozedur durchlaufen muss, an der zahlreiche Prozessoren in einem Netzwerk beteiligt sind. Die Ausführungsleistung (Durchsatzrate und durchschnittliche Latenz) der Anweisung zur Ungültigkeitserklärung des Pufferspeichers der Adressübersetzung in großen symmetrischen Mehrprozessor- (SMP) Konfigurationen kann ein Systemengpass sein.
  • KURZDARSTELLUNG DER ERFINDUNG
  • Die Kurzdarstellung der Offenbarung wird zur Unterstützung des Verständnisses von einem Computersystem, einer Computer-Architekturstruktur, einem Prozessor und einem Verfahren zum Entfernen und/oder Ändern von Adressübersetzungen in einem Cache/Pufferspeicher für Adressübersetzungen in einem System bereitgestellt und soll die Offenbarung der Erfindung keinesfalls einschränken. Die vorliegende Offenbarung ist an einen Fachmann gerichtet. Es sollte klar sein, dass verschiedene Aspekte und Merkmale der Offenbarung in einigen Fällen vorteilhaft unabhängig voneinander oder in Kombination mit anderen Aspekten und Merkmalen der Offenbarung in anderen Fällen verwendet werden können. Daher können an dem Computersystem, der Architekturstruktur, dem Prozessor und deren Betriebsverfahren Variationen und Modifizierungen vorgenommen werden, um verschiedene Effekte zu erzielen.
  • In einer oder mehreren Ausführungsformen wird ein Informationsbearbeitungssystem mit einer Mehrzahl von Prozessoren offenbart, die durch ein prozessorübergreifendes Netzwerk verbunden sind, wobei jeder von der Mehrzahl von Prozessoren einen oder mehrere Adressübersetzungspufferspeicher umfasst, wobei jeder Adressübersetzungspufferspeicher mit einer Mehrzahl von Adressübersetzungseinträgen Adressübersetzungsinformationen enthält; und ein Filterkonstrukt mit einer ausgehenden Filterliste, die logische Partitionsidentifizierungen (LPIDs) identifiziert, die ausschließlich diesem Prozessor zugewiesen sind. In einer oder mehreren Ausführungsformen ist das System in Betrieb dafür ausgelegt und konfiguriert zum: Ausgeben einer Anweisung zur Ungültigkeitserklärung der Adressübersetzung mit einer LPID in einem von der Mehrzahl von Prozessoren in dem Verarbeitungssystem; Prüfen der ausgehenden Filterliste in dem Prozessor, von dem die Anweisung zur Ungültigkeitserklärung der Adressübersetzung ausgegeben wurde; Bestimmen, ob die LPID der Anweisung zur Ungültigkeitserklärung der Adressübersetzung mit irgendeiner der LPIDs in der ausgehenden Filterliste übereinstimmt; und Bestätigen, in mindestens einer Teilantwort an die LPID der Anweisung zur Ungültigkeitserklärung der Adressübersetzung, die mit irgendeiner der LPIDs in der ausgehenden Filterliste übereinstimmt, der Anweisung zur Ungültigkeitserklärung der Adressübersetzung für das System.
  • In einer oder mehreren Ausführungsformen wird ein Informationsbearbeitungssystem mit einer Mehrzahl von Prozessoren offenbart, die durch ein prozessorübergreifendes Netzwerk verbunden sind, wobei jeder von der Mehrzahl von Prozessoren einen oder mehrere Adressübersetzungspufferspeicher umfasst, wobei jeder Adressübersetzungspufferspeicher mit einer Mehrzahl von Adressübersetzungseinträgen Adressübersetzungsinformationen enthält; und ein Filterkonstrukt mit einer eingehenden Filterliste, die logische Partitionsidentifizierungen (LPIDs) identifiziert, die diesem Prozessor und mindestens einem anderen Prozessor in dem System zugewiesen sind. Das System in Betrieb ist dafür ausgelegt und in einer Ausführungsform konfiguriert zum: Ausgeben einer Anweisung zur Ungültigkeitserklärung der Adressübersetzung in einem von der Mehrzahl von Prozessoren in dem Verarbeitungssystem; Senden der Anweisung zur Ungültigkeitserklärung einer Adressübersetzung aus dem Prozessor, von dem die Anweisung zur Ungültigkeitserklärung der Adressübersetzung ausgegeben wurde, an die anderen Prozessoren in dem System; Bestimmen, für jeden von den Prozessoren in dem System, der nicht dem Prozessor entspricht, von dem die Anweisung zur Ungültigkeitserklärung der Adressübersetzung ausgegeben wurde, ob die LPID der Anweisung zur Ungültigkeitserklärung der Adressübersetzung mit irgendeiner der LPIDs in der eingehenden Filterliste des jeweiligen Prozessor übereinstimmt; und Senden, in Reaktion auf die LPID der Anweisung zur Ungültigkeitserklärung der Adressübersetzung, die mit irgendeiner der LPIDs in der eingehenden Filterliste übereinstimmt, der Anweisung zur Ungültigkeitserklärung der Adressübersetzung in den Prozessor, der den eingehenden Filter mit der LPID aufweist, die mit der LPID auf der eingehenden Filterliste übereinstimmt. Das System in Betrieb ist in einem Aspekt ferner dafür ausgelegt und konfiguriert zum: Prüfen, in den Übersetzungspufferspeichern in dem Prozessor, bei dem die LPID der Anweisung zur Ungültigkeitserklärung der Adressübersetzung mit einer LPID auf dem eingehenden Filter übereinstimmt, auf Adressübersetzungseinträge, die der Anweisung zur Ungültigkeitserklärung der Adressübersetzung entsprechen; und Bestätigen, in Reaktion auf ein Abschließen der Prüfung in jedem Prozessor, der eine LPID in seinem eingehenden Filter hat, die mit der LPID der Anweisung zur Ungültigkeitserklärung der Adressübersetzung übereinstimmt, der Anweisung zur Ungültigkeitserklärung der Adressübersetzung für den jeweiligen Prozessor. Das System in Betrieb ist ferner in einer Ausführung dafür ausgelegt und konfiguriert, um in Reaktion auf die LPID der Anweisung zur Ungültigkeitserklärung der Adressübersetzung, die mit keiner der LPIDs in der eingehenden Filterliste übereinstimmt, die Anweisung zur Ungültigkeitserklärung der Adressübersetzung für den jeweiligen Prozessor zu bestätigen.
  • Gemäß einer oder mehreren Ausführungsformen wird ein Informationsbearbeitungssystem mit einer Mehrzahl von Prozessoren offenbart, die durch ein prozessorübergreifendes Netzwerk verbunden sind, wobei jeder von der Mehrzahl von Prozessoren einen oder mehrere Adressübersetzungspufferspeicher umfasst, wobei jeder Adressübersetzungspufferspeicher mit einer Mehrzahl von Adressübersetzungseinträgen Adressübersetzungsinformationen enthält, wobei jeder Adressübersetzungspufferspeicher eine Mehrzahl von Adressübersetzungseinträgen hat, die Adressübersetzungsinformationen enthalten; und ein Filterkonstrukt mit einer ausgehenden Filterliste, die logische Partitionsidentifizierungen (LIPDs) identifiziert, die ausschließlich diesem Prozessor zugewiesen sind, und das System umfasst ein oder mehrere durch einen Computer lesbare Speichermedien und Programmieranweisungen, die auf dem einen oder den mehreren durch einen Computer lesbaren Speichermedien zur Ausführung durch mindestens einen von der Mehrzahl von Prozessoren gespeichert sind, wobei die Programmanweisungen in Betrieb das System veranlassen zum: Ausgeben einer Anweisung zur Ungültigkeitserklärung der Adressübersetzung mit einer LPID in einem von der Mehrzahl von Prozessoren in dem Verarbeitungssystem; Prüfen der ausgehenden Filterliste in dem Prozessor, von dem die Anweisung zur Ungültigkeitserklärung der Adressübersetzung ausgegeben wurde; Bestimmen, ob die LPID der Anweisung zur Ungültigkeitserklärung der Adressübersetzung mit irgendeiner der LPIDs in der ausgehenden Filterliste übereinstimmt; und Bestätigen in mindestens einer Teilantwort an die LPID der Anweisung zur Ungültigkeitserklärung der Adressübersetzung, die mit irgendeiner der LPIDs in der ausgehenden Filterliste übereinstimmt, der Anweisung zur Ungültigkeitserklärung der Adressübersetzung für das System. Das System in einer Ausführungsform weist ferner Programmieranweisungen auf, die das System in Betrieb veranlassen, in dem einen oder den mehreren Adressübersetzungspufferspeichern in dem Prozessor, von dem die Anweisung zur Ungültigkeitserklärung der Adressübersetzung ausgegeben wird, auf Adressübersetzungseinträge zu prüfen, die der Anweisung zur Ungültigkeitserklärung der Adressübersetzung entsprechen. Das System in Betrieb ist ferner dafür ausgelegt und konfiguriert zum: Senden, in Reaktion auf die LPID der Anweisung zur Ungültigkeitserklärung der Adressübersetzung, die keiner der LPIDs in dem ausgehenden Filter entspricht, der Anweisung zur Ungültigkeitserklärung der Adressübersetzung aus dem Prozessor, von dem die Anweisung zur Ungültigkeitserklärung der Adressübersetzung ausgegeben wurde; und Verbreiten der Anweisung zur Ungültigkeitserklärung der Adressübersetzung auf dem prozessorübergreifenden Netzwerk an die anderen Prozessoren in dem System, die nicht dem Prozessor entsprechen, von dem die Anweisung zur Ungültigkeitserklärung der Adressübersetzung ausgegeben wurde.
  • Ein Informationsbearbeitungssystem mit einer Mehrzahl von Prozessoren wird offenbart, die durch ein prozessorübergreifendes Netzwerk verbunden sind, wobei jeder von der Mehrzahl von Prozessoren einen oder mehrere Adressübersetzungspufferspeicher umfasst, wobei jeder Adressübersetzungspufferspeicher mit einer Mehrzahl von Adressübersetzungseinträgen Adressübersetzungsinformationen enthält; und ein Filterkonstrukt mit einem eingehenden Filter, der logische Partitionsidentifizierungen (LPIDs) identifiziert, die diesem Prozessor und mindestens einem anderen Prozessor in dem System zugewiesen sind. Das System in Betrieb ist in einem Aspekt dafür ausgelegt und konfiguriert zum: Ausgeben einer Anweisung zur Ungültigkeitserklärung der Adressübersetzung in einem von der Mehrzahl von Prozessoren in dem Verarbeitungssystem; Senden der Anweisung zur Ungültigkeitserklärung der Adressübersetzung aus dem Prozessor, von dem die Anweisung zur Ungültigkeitserklärung der Adressübersetzung ausgegeben wurde, an die anderen Prozessoren in dem System; Bestimmen, für jeden von den Prozessoren in dem System, der nicht dem Prozessor entspricht, von dem die Anweisung zur Ungültigkeitserklärung der Adressübersetzung ausgegeben wurde, ob die LPID der Anweisung zur Ungültigkeitserklärung der Adressübersetzung mit irgendeiner der LPIDs in der eingehenden Filterliste des jeweiligen Prozessors übereinstimmt; und Bestätigen, in Reaktion auf die LPID der Anweisung zur Ungültigkeitserklärung der Adressübersetzung, die mit keiner der LPIDs in der eingehenden Filterliste übereinstimmt, der Anweisung zur Ungültigkeitserklärung der Adressübersetzung für den jeweiligen Prozessor.
  • Die vorgenannten und andere Aufgaben, Merkmale und Vorteile der Erfindung werden aus den folgenden spezielleren Beschreibungen von veranschaulichenden Ausführungsformen der Erfindung offenkundig, die in den begleitenden Zeichnungen veranschaulicht sind, wobei ähnliche Bezugszeichen im Allgemeinen ähnliche Teile von beispielhaften Ausführungsformen der Erfindung darstellen. Die Erfindung ist jedoch keinesfalls als auf diese veranschaulichenden Beispiele beschränkt zu betrachten.
  • Figurenliste
  • Die verschiedenen Aspekte, Merkmale und Ausführungsformen eines Computersystems, einer Computer-Architekturstruktur, eines Prozessors und deren Betriebsverfahren werden besser verstanden, wenn sie in Verbindung mit den bereitgestellten Figuren gelesen werden. Die Ausführungsformen werden in den Figuren zum Zweck einer Veranschaulichung von Aspekten, Merkmalen und/oder verschiedenen Ausführungsformen des Computersystems, der Computer-Architekturstruktur, der Prozessoren und deren Betriebsverfahren bereitgestellt, doch sollten die Ansprüche nicht auf die genaue Anordnung, Strukturen, Baugruppen, Unterbaugruppen, Systeme, Merkmale, Aspekte, Ausführungsformen, Verfahren, Prozesse oder gezeigten Einheiten beschränkt werden, und die Anordnungen, Strukturen, Baugruppen, Unterbaugruppen, Systeme, Merkmale, Aspekte, Verfahren, Prozesse, Ausführungsformen und gezeigten Einheiten können einzeln oder in Kombination mit anderen Anordnungen, Strukturen, Baugruppen, Unterbaugruppen, Systemen, Merkmalen, Aspekten, Verfahren, Prozessen, Ausführungsformen und gezeigten Einheiten verwendet werden.
    • 1 ist ein Funktionsblockschaubild, das ein Computersystem gemäß einer oder mehreren Ausführungsformen der vorliegenden Offenbarung veranschaulicht.
    • 2 ist ein Funktionsblockschaubild, das ein System veranschaulicht, das zum Verarbeiten von Anweisungen gemäß einer oder mehreren Ausführungsformen der vorliegenden Offenbarung konfiguriert ist.
    • 3 ist ein vereinfachtes Funktionsblockschaubild, das ein Computersystem mit einer Mehrzahl von Prozessoren veranschaulicht, die zum Verarbeiten von Anweisungen gemäß einer oder mehreren Ausführungsformen der vorliegenden Offenbarung konfiguriert sind.
    • 4 ist ein vereinfachtes Schaubild, das ein TLBie-Filter zeigt.
    • 5 ist ein vereinfachtes Schaubild, das TLBie-Filter zum Verarbeiten einer TLBie-Anweisung in Prozessoren eines Systems zeigt.
    • 6 ist ein vereinfachtes Schaubild, das TLBie-Filter zum Verarbeiten einer TLBie-Anweisung in Prozessoren eines Systems zeigt.
    • 7 ist ein Ablaufplan, der ein Verfahren zum Verarbeiten einer Anweisung zum Entfernen einer Übersetzung in einem oder mehreren Übersetzungspufferspeichern in einem System veranschaulicht.
  • AUSFÜHRLICHE BESCHREIBUNG
  • Die folgende Beschreibung wird zur Veranschaulichung der allgemeinen Grundgedanken der Erfindung angegeben und soll die hierin beanspruchten erfinderischen Konzepte keinesfalls einschränken. In der folgenden ausführlichen Beschreibung werden zahlreiche Details dargelegt, um einen Einblick in das Computersystem, die Computer-Architekturstruktur, den Prozessor und deren Betriebsverfahren bereitzustellen, dem Fachmann wird jedoch klar sein, dass verschiedene und zahlreiche Ausführungsformen des Computersystems, der Computer-Architekturstruktur, des Prozessors und deren Betriebsverfahren ohne diese speziellen Details ausgeübt werden können und die Ansprüche und Offenbarung nicht auf die Ausführungsformen, Baugruppen, Unterbaugruppen, Systeme, Merkmale, Prozesse, Verfahren, Aspekte, Einheiten und/oder hierin speziell beschriebene und gezeigte Details eingeschränkt werden sollen. Ferner können bestimmte hierin beschriebene Merkmale in Kombination mit anderen beschriebenen Merkmalen in jeder der verschiedenen möglichen Kombinationen und Variationen verwendet werden.
  • Sofern nichts anderes hierin speziell definiert wird, sind alle Begriffe in ihrer größtmöglichen Interpretation zu verstehen, einschließlich aus der Patentschrift implizierte Bedeutungen sowie Bedeutungen, die vom Fachmann verstanden werden und/oder wie in Wörterbüchern, Verträgen usw. definiert. Es ist auch anzumerken, dass, wie in der Patentschrift und den Ansprüchen im Anhang verwendet, die Singularformen „ein“, „eine“ und „der/die/das“ Plural-Entsprechungen umfassen, sofern nicht anders angegeben, und dass die Begriffe „weist auf“ und/oder „aufweisend“, wenn sie in dieser Patentschrift verwendet werden, das Vorhandensein von angegebenen Merkmalen, Ganzzahlen, Schritten, Operationen, Elementen und/oder Komponenten spezifizieren, das Vorhandensein oder Hinzufügen von einem oder mehreren anderen Merkmalen, Ganzzahlen, Schritten, Operationen, Elementen, Komponenten und/oder Gruppen davon aber nicht ausschließen.
  • Die folgende Erörterung lässt herkömmliche Merkmale von Informationsbearbeitungssystemen einschließlich Prozessoren und Mikroprozessorsystemen und Architekturen aus, die für den Fachmann offensichtlich sind, oder beschreibt sie nur kurz. Es wird vorausgesetzt, dass der Fachmann mit der allgemeinen Architektur von Prozessoren und insbesondere mit Prozessornetzwerken vertraut ist, die große symmetrische Multiprozessor- (SMP) Konfigurationen umfassen, die für gewöhnlich mehrere kleinere Chip-Multiprozessoren (CMP) haben, wobei jeder derartige Chip-Multiprozessor, z.B. CMP, bis zu Hunderte von Prozessorkernen und Beschleunigereinheiten enthalten kann, die Übersetzungs-Caches nutzen, die über eine chipintegrierte Netzwerkstruktur verbunden sind. Es ist anzumerken, dass ein nummeriertes Element entsprechend der Figur nummeriert ist, in der das Element eingeführt wird, und in der Regel wird darauf durchgehend mit dieser Nummer in nachfolgenden Figuren verwiesen.
  • Komplexe Computersysteme, z.B. große symmetrische Multiprozessor- (SMP) Konfigurationen haben für gewöhnlich mehrere kleinere Chip-Multiprozessoren (CMPs). Jeder Chip-Multiprozessor (CMP) kann Hunderte von Prozessoren und andere Beschleuniger enthalten, die Übersetzungs-Caches nutzen, die über eine chipintegrierte Netzwerkstruktur verbunden sind. Für gewöhnlich sind die CMPs durch ein chipübergreifendes Netzwerk unter Verwendung von chipexternen Verknüpfungen oder Netzwerkadaptern verbunden, um einen großen SMP zu bilden. In einer oder mehreren Ausführungsformen ist ein TLBie-Filter zum Reduzieren von Latenz und Erhöhen von Leistung enthalten, bevorzugt ein Hardware-TLBie-Filter, das bevorzugt in dem chipübergreifenden Netzwerkadapter vorhanden ist. In einer oder mehreren Ausführungsformen wird das TLBie-Filter mit einem zu befolgenden Protokoll verwendet, wenn eine Partition erstellt, aus einem Hardware-Thread entfernt und/oder eine Partition einem Hardware-Thread zugewiesen wird. In einer Ausführungsform umfasst das TLBie-Filter eine ausgehende Filterliste, die logische Partitionsidentifizierungen (LPIDs) für alle logischen Partitionen in diesem CMP und keine anderen CMPs in dem System verwaltet. In einer Ausführungsform umfasst das TLBie-Filter eine eingehende Filterliste, die alle LPIDs verfolgt, die über mehrere CMPs übergreifend vorhanden sind, und mindestens ein Thread- oder Beschleuniger-Inhalt von dieser Hosting-CMP gehört zu dieser Partition. Durch Verwenden der ausgehenden TLBie-Filterliste und der eingehenden TLBie-Filterliste wird die Leistung erhöht, da nicht jeder CMP auf Übersetzungen durchsucht werden muss, die entfernt oder ungültig gemacht werden müssen.
  • 1 ist ein Funktionsschaubild, das ein Computersystem 10 veranschaulicht. Das System 10 umfasst ein Beispiel für automatisierte Datenverarbeitungsausrüstungen in der Form eines Computers 152.
  • Der Computer 152 kann einen Prozessor 156 oder eine Zentraleinheit („CPU“) sowie einen Direktzugriffsspeicher 168 („RAM“) umfassen, der über einen Hochgeschwindigkeits-Arbeitsspeicherbus 166 und einen Busadapter 158 mit dem Prozessor 156 und mit anderen Komponenten des Computers 152 verbunden ist. Der Einfachheit halber veranschaulicht 1 nur einen Prozessor 156, der in dem Computer 152 enthalten ist; es wird jedoch angemerkt, dass dieser Computer 152 mehr als einen Prozessor umfassen kann, zum Beispiel einen Prozessor 156A, einen Prozessor 156B bis einen Prozessor 156N (wobei N jede beliebige Zahl sein kann), wie in 2 veranschaulicht. Es wird angemerkt, dass der Prozessor 156A, der Prozessor 156B bis zu dem Prozessor 156N jeweils einen oder mehrere Aspekte des Prozessors 156 umfassen kann. In einigen Ausführungsformen kann ein RAM 168 ein eingebetteter dynamischer Direktzugriffsspeicher (eDRAM) sein. In einigen Ausführungsformen kann der RAM 168 von Einheiten wie beispielsweise Prozessorkernen auf dem Prozessor 156 über den Front-Side-Bus 162 und/oder den Strukturbus 212 genutzt werden.
  • Der Prozessor 156 kann als ein Mehrschicht-Prozessor umgesetzt werden. Der Begriff „Mehrschicht“ kann auf einen Prozessor mit einer Mehrzahl von ähnlichen oder identischen Gruppen von Komponenten verweisen, in denen jede Gruppe von Komponenten unabhängig von allen anderen Gruppen oder in Abstimmung mit der einen oder den mehreren der anderen Gruppen arbeiten kann.
  • Obwohl der Prozessor 156 als mit dem RAM 168 über den Front-Side-Bus 162, den Busadapter 158 und den Hochgeschwindigkeits-Arbeitsspeicherbus 166 verbunden gezeigt wird, wird der Fachmann erkennen, dass eine derartige Konfiguration nur eine beispielhafte Umsetzung ist und andere Konfigurationen einer Verbindung des Prozessors 156 mit anderen Komponenten des Systems 10 verwendet werden können. Zum Beispiel kann der Prozessor 156 in einigen Ausführungsformen einen Arbeitsspeicher-Controller umfassen, der für eine direkte Verbindung mit dem Arbeitsspeicherbus 166 konfiguriert ist. Allerdings kann der Prozessor 156 in anderen Ausführungsformen direkte Peripherieverbindungen unterstützen, wie zum Beispiel Peripheral-Component-Interconnect-Express- („PCIe“) Verbindungen und dergleichen.
  • Ein Betriebssystem 154 kann im RAM 168 des Computers 152 gespeichert werden. Betriebssysteme, die in Computern nützlich sind, die zum Betrieb eines Prozessors konfiguriert sind, können UNIX™, Linux™, Microsoft Windows™, AIX™, z/OS™ von IBM und andere umfassen, die dem Fachmann bekannt sind. Zusätzlich zu dem Betriebssystem 154 und der Datenverarbeitungsanwendung, die sich im RAM 168 befindet, können andere Komponenten von derartiger Software in einem nicht flüchtigen Arbeitsspeicher gespeichert werden, wie zum Beispiel auf einem Plattenlaufwerk 170.
  • Der Computer 152 kann einen Plattenlaufwerkadapter 172 umfassen, der über einen Erweiterungsbus 160 und den Busadapter 158 mit dem Prozessor 156 und anderen Komponenten des Computers 152 verbunden ist. Der Plattenlaufwerkadapter 172 kann einen nicht flüchtigen Datenspeicher mit dem Computer 152 in der Form des Plattenlaufwerks 170 verbinden. Der Plattenlaufwerkadapter kann Integrated-Drive-Electronics- („IDE‟) Adapter, Small-Computer-System-Interface- („SCSI‟) Adapter und andere umfassen, die dem Fachmann bekannt sind. Der nicht flüchtige Computer-Arbeitsspeicher kann auch als ein optisches Plattenlaufwerk, ein elektrisch löschbarer programmierbarer Nur-Lese-Speicher (ein so genannter „EEPROM‟- oder „Flash‟-Speicher), RAM-Laufwerke und andere umgesetzt werden, die dem Fachmann bekannt sind.
  • Der Computer 152 kann einen oder mehrere Eingabe/Ausgabe- („E/A“) Adapter 178 umfassen. Die E/A-Adapter 178 können eine benutzerorientierte Eingabe/Ausgabe zum Beispiel über Software-Treiber und Computer-Hardware zum Steuern einer Ausgabe zum Anzeigen von Einheiten, wie zum Beispiel Computer-Anzeigebildschirme, sowie Benutzereingaben von Benutzereingabeeinheiten 181 umsetzen, wie zum Beispiel eine Tastatur und eine Maus. Der Computer 152 kann einen Video-Adapter 209 umfassen, der ein Beispiel für einen E/A-Adapter ist, der speziell für eine grafische Ausgabe an eine Anzeigeeinheit 180 ausgelegt ist, wie zum Beispiel ein Anzeigebildschirm oder ein Computermonitor. Der Video-Adapter 209 ist mit dem Prozessor 156 über den Hochgeschwindigkeits-Videobus 164, den Busadapter 158 und den Front-Side-Bus 162 verbunden, der auch ein Hochgeschwindigkeitsbus sein kann. Die E/A-Adapter 178 können auch COMM- und Laufwerk-Adapter umfassen. Die E/A-Adapter 178 können auch ein PCI Express sein, in dem alle E/As verbunden werden.
  • Der Computer 152 kann einen Kommunikationsadapter 167 für Datenübertragungen mit anderen Computern 182 und für Datenübertragungen mit einem Datenübertragungsnetzwerk 100 umfassen. Derartige Datenübertragungen können seriell über RS-232-Verbindungen, über externe Busse wie einen Universal Serial Bus („USB“), über Datenübertragungsnetzwerke wie beispielsweise IP-Datenübertragungsnetzwerke und auf andere dem Fachmann bekannte Weise ausgeführt werden. Der Kommunikationsadapter 167 kann die Hardware-Ebene von Datenübertragungen umsetzen, über die ein Computer Datenübertragungen an einen anderen Computer direkt oder über das Datenübertragungsnetzwerk 100 sendet. Beispiele für den Kommunikationsadapter 167 können Modems für drahtgebundene Einwählverbindungen, Ethernet- (IEEE 802.3) Adapter für drahtgebundene Datenübertragungen und 802.11-Adapter für drahtlose Datenübertragungen umfassen.
  • Die Anordnung von Computern und anderen in 1 veranschaulichten Einheiten dienen zu Erklärung, nicht jedoch zur Einschränkung. Datenverarbeitungssysteme, die gemäß verschiedenen Ausführungsformen der vorliegenden Offenbarung nützlich sind, können zusätzliche Server, Router, andere Einheiten und Peer-to-Peer-Architekturen umfassen. Netzwerke in derartigen Datenverarbeitungssystemen können viele Datenübertragungsprotokolle unterstützen, darunter zum Beispiel TCP (Transmission Control Protocol), IP (Internet Protocol), HTTP (HyperText Transfer Protocol), WAP (Wireless Access Protocol), HDTP (Handheld Device Transport Protocol) und andere, die dem Fachmann bekannt sind. Verschiedene Ausführungsformen der vorliegenden Offenbarung können zusätzlich zu den in 1 veranschaulichten auf einer Vielfalt von Hardware-Plattformen umgesetzt werden.
  • 2 ist ein Funktionsschaubild, das den SMP 10 veranschaulicht, der als mehrere Prozessoren dargestellt wird, die auch als Chip-Multiprozessoren (CMPs) 156A, 156B bis 156N bezeichnet werden (wobei N jede beliebige Zahl sein kann), die konfiguriert sind, um Anweisungen zu verarbeiten und insbesondere, um Ausführungsformen der Offenbarung auszuüben, die Adressübersetzungen aus Caches in einem Computersystem entfernen, um die Leistung zu verbessern. Zur Verdeutlichung werden die Ausführungsformen der Offenbarung, die in 2 veranschaulicht sind, unter Bezugnahme auf den Prozessor (CMP) 156A beschrieben. Diese Erläuterung soll weder einschränkend noch allein auf die Merkmale des Prozessors (CMP) 156A und dessen jeweilige Funktionseinheiten beschränkt sein; stattdessen können alle oder einige Merkmale und/oder Funktionseinheiten des Prozessors (CMP) 156A auch auf den Prozessor (CMP) 156B bis Prozessor (CMP) 156N und deren jeweilige Funktionseinheiten anwendbar sein. Zum Beispiel können die Merkmale einer Datenübertragungsstruktur 204A in jeder Datenübertragungsstruktur 204B bis Datenübertragungsstruktur 204N enthalten sein.
  • In einer oder mehreren Ausführungsformen umfasst der Prozessor (CMP) 156A Funktionseinheiten wie zum Beispiel einen Adressübersetzungspufferspeicher („TLB“) 202A, eine Leistungsverwaltungseinheit („PMU“) 206A, einen oder mehrere Kerne und/oder Caches 208A, eine symmetrische Multiprozessor- („SMP“) Zusammenschaltung 210A, die auch als chipübergreifender Netzwerkadapter 210A bezeichnet wird), eine Beschleunigereinheit („AU“) 214A und eine Arbeitsspeicherverwaltungseinheit („MMU“) 216A, die jeweils mit der Datenübertragungsstruktur 204A verbunden sind. In einer oder mehreren Ausführungsformen umfasst der Prozessor (CMP) 156A auch einen Segmentübersetzungspufferspeicher („SLB“) (nicht gezeigt) und/oder ein In-Betrieb-Scoreboard („IUSB“) (nicht gezeigt). Die Datenübertragungsstruktur 204A, die auch als CMP-Struktur 204A bezeichnet wird, ist konfiguriert, um Meldungen, z.B. Signale, Informationen usw. zwischen den Einheiten, Verbindungselementen und einem Speicher auf dem Prozessor (CMP) 156A zu übertragen. In einer oder mehreren Ausführungsformen werden der TLB 202A, die PMU 206A, der eine oder die mehreren Kerne und/oder Caches 208A, die SMP-Zusammenschaltung 210A, die Datenübertragungs- (CMP) Struktur 204A, die AU 214A und die MMU 216A auf demselben Halbleiter-Chip oder auf mehreren zusammengeschalteten Chips umgesetzt. In einem oder mehreren Aspekten werden der SLB und das IUSB mit dem einen oder den mehreren anderen Funktionseinheiten des Prozessors (CMP) 156A über die Datenübertragungs- (CMP) Struktur 204A verbunden. In einem oder mehreren Aspekten werden der SLB und das IUSB mit dem einen oder den mehreren anderen Funktionseinheiten des Prozessors (CMP) auf demselben Halbleiter-Chip oder auf mehreren zusammengeschalteten Chips umgesetzt.
  • Die SMP-Zusammenschaltung 210A, die auch als prozessorübergreifender/chipübergreifender Verknüpfungsadapter 210A bezeichnet wird, ist konfiguriert, um zu ermöglichen, dass verschiedene Prozessoren, wie beispielsweise die Prozessoren (CMPs) 156B bis156N mit dem Prozessor (CMP) 156A zusammengeschaltet werden, wodurch die Rechenleistung erhöht wird. Die SMP-Verknüpfung oder - Zusammenschaltung 210A verbindet in einer Ausführungsform den Prozessor (CMP) 156A mit den Prozessoren (CMPs) 156B bis 156N über einen Strukturbus oder ein prozessorübergreifendes/chipübergreifendes Netzwerk 212. Die Strukturbus- 212 Verbindung kann eine höhere Bandbreite aufweisen und eine niedrigere Latenz bereitstellen. Der Strukturbus oder das prozessorübergreifende/chipübergreifende Netzwerk 212 kann ermöglichen, dass ein Cache-Kohärenzdatenverkehr und Datenverkehr über eine unterschiedliche Netzwerkverbindung fließen. In einer oder mehreren Ausführungsformen kann der Strukturbus oder das prozessorübergreifende (chipübergreifende) Netzwerk 212 jeder Typ einer Datenübertragungsstruktur und/oder jede Kombination von Verbindungen und Protokollen sein, die eine Datenübertragung zwischen Prozessoren (CMPs) ermöglichen, z.B. den Prozessoren 156A, 156B bis 156N. Zum Beispiel kann der Strukturbus 212 ein Bus oder Verknüpfungen (z.B. Querverbindungen) sein, die die Prozessoren (CMPs) 156A, 156B bis 156N zusammenschalten.
  • Die Datenübertragungs- (CMP) Struktur 204A kann jeder Typ einer Datenübertragungsstruktur sein, die einem Fachmann bekannt ist, die eine Datenübertragung zwischen den verschiedenen Einheiten, dem Arbeitsspeicher und den Zusammenschaltungen im Prozessor (CMP) 156A ermöglicht. Die Datenübertragungs-(CMP) Struktur 204A kann auch ein ungeordneter chipintegrierter Bus sein, in dem die Transaktionen (z.B. Check-In-Anforderungs-/Antworttransaktionen, Check-Out-/ Antworttransaktionen und Ungültigkeitserklärungs-Transaktionen) als Pakete auf dem ungeordneten chipintegrierten Bus übertragen werden. In einer oder mehreren Ausführungsformen kann bzw. können der eine oder die mehreren Kerne und/oder Caches 208A einen oder mehrere Prozessorkerne und ihren Cache der Ebene eins („L1“), ihren Cache der Ebene zwei („L2“) und oder den Cache der letzten Ebene („LLC“) auf dem Prozessor (CMP) 156A aufweisen. Der L1-Cache, der L2-Cache und der LLC können in beliebiger Konfiguration angeordnet werden. Zum Beispiel kann der L1-Cache ein aufgeteilter Anweisungs- und Daten-Cache sein, der L2-Cache kann ein gemeinsam genutzter Cache sein, und der LLC kann ein privater Cache sein. In einem weiteren Beispiel kann der L1-Cache L1-Anweisungs- und Daten-Caches umfassen, die privat sind, der L2-Cache kann privat sein oder wird mit einem anderen Kern gemeinsam genutzt, und der LLC kann ein privater oder gemeinsam genutzter Cache sein. Der eine oder die mehreren Prozessorkerne sind zum Lesen und Ausführen von Programmanweisungen konfiguriert.
  • Die PMU 206A kann zum Analysieren der Leistung des Prozessors (CMP) 156A und des Speichers des Prozessors oder CMP 156A konfiguriert sein. Zum Beispiel kann die PMU 206A die Anzahl von Taktzyklen und/oder Cache-Treffern und Cache-Fehltreffern analysieren.
  • In einer oder mehreren Ausführungsformen umfasst der Prozessor (CMP) 156A mindestens eine Arbeitsspeicherverwaltungseinheit (MMU) 216A, eine Beschleunigereinheit AU 214A und einen direkten Arbeitsspeicherzugriffs- (DMA) Controller (nicht gezeigt). In einer oder mehreren Ausführungsformen ist die MMU 216A eine Einheit auf dem Prozessor (CMP) 156A, die den Arbeitsspeicher verwaltet, einschließlich einem Vereinfachen des Zugriffs auf den Arbeitsspeicher durch Bereitstellen einer Adressübersetzung. Die AU 214A ist zum Bereitstellen einer Schnittstelle zwischen externen Verarbeitungselementen und den Elementen in dem Prozessor (CMP) 156A konfiguriert, einschließlich einem Bereitstellen von Zugriff auf Speicherorte im RAM 168 auf dem Computer 152, den Kernen und/oder den Caches 208A auf dem Prozessor (CMP) 156A oder andere Arbeitsspeicher-Speicherorte, die sich in dem Computer 152 befinden oder mit diesem verbunden sind. In einigen Ausführungsformen kann die AU 214A kohärente Beschleuniger-Prozessor-Schnittstellen, grafische Beschleunigungsschnittstellen, kryptografische Schnittstellen und Streaming-Schnittstellen umfassen. Die AU 214A des Prozessors (CMP) 156A kann eine spezialisierte Hardware sein, die spezifische Datenverarbeitungsfunktionen ausführen kann, wie zum Beispiel Verschlüsselung, Entschlüsselung, Komprimierung oder Dekomprimierung. Die MMU 216A kann Anforderungen an die Kerne und/oder die Caches 208A für die AU 214A stellen. Das heißt, die MMU 216A kann Arbeitsspeicherverschiebungen für die AU 202A ausführen.
  • Eine Adressübersetzung in einem Computersystem umfasst in der Regel ein Zugreifen auf verschiedene Adressübersetzungsdatenstrukturen. Eine derartige Struktur, die als eine Seitentabelle bezeichnet wird, umfasst mehrere Einträge, die als Seitentabelleneinträge (PTEs) bezeichnet werden, die virtualisierte Adressen auf einer seitenweisen Grundlage zuordnen. Die Seitentabelle ist in der Regel im Hauptarbeitsspeicher statt einem dedizierten Arbeitsspeicher gespeichert, was für ein langsames Zugreifen auf die Seitentabelle sorgt. Zum Beschleunigen der Adressübersetzung werden in der Regel Hochgeschwindigkeits-Arbeitsspeicher, die als Adressübersetzungspufferspeicher bezeichnet werden, z.B. TLBs, SLBs und/oder IUSBs, zum Speichern von zuletzt verwendeten Adressübersetzungen in Cache-/Pufferspeicher-Einträgen für schnellen Zugriff gespeichert.
  • Ein TLB kann ein Cache mit virtuellen Adressen sein, die realen, in TLB-Einträgen gespeicherten Adressen zugeordnet sind. Jedem TLB-Eintrag kann ein TLB-Index zugehörig sein, der den TLB- (oder einen Seitentabelleneintrag (PTE)) Eintrag in dem TLB identifiziert. Zum Beispiel kann ein TLB-Index von 4 auf den vierten (oder fünften) Eintrag in dem TLB verweisen. Eine Vielfalt von Indexerstellungsschemas, die dem Fachmann bekannt sind, kann für TLB-Indices verwendet werden. Der SLB kann ein Cache von effektiven Segmentkennungen (ESID) sein, die virtuellen, in SLB-Einträgen gespeicherten Segmentkennungen (VSID) zugeordnet sind. Jedem SLB-Eintrag ist ein SLB-Index zugehörig, der den SLB-Eintrag in dem SLB identifiziert. Zum Beispiel kann ein SLB-Index von 4 auf den vierten (oder fünften) Eintrag in dem SLB verweisen. Eine Vielfalt von Indexerstellungsschemas, die dem Fachmann bekannt sind, kann für SLB-Indices verwendet werden. Das IUSB (nicht gezeigt) kann eine Datenstruktur sein, die ERAT-Indices speichert, die TLB-Indices und, falls anwendbar, SLB-Indices zugehörig sind. Das IUSB verfolgt, welche Einträge in dem SLB und dem TLB Übersetzungen speichern, die zum Generieren von Übersetzungen verwendet wurden, die aktuell in einem oder mehreren Caches des Prozessors (CMP) 156A gespeichert sind.
  • Zum Verbessern der Adressübersetzung verwendet die MMU 216A den TLB 202A. Der TLB 202A ist ein Cache für die Zuordnung von effektiven Adressen zu realen Adressen (RA), die von der MMU 216A empfangen wurden. Die effektive Adresse (EA) ist eine virtuelle Adresse, die von Elementen und Prozessen in dem System 10 zum Verweisen auf Arbeitsspeicher-Speicherorte verwendet wird. Die reale Adresse (RA) ist eine physische Adresse. Während des Betriebs des Prozessors (CMP) 156A muss die EA in die RA übersetzt werden, damit der Prozessor (CMP) 156A auf die angeforderten Daten zugreifen kann. Wenn eine Anforderung für einen Arbeitsspeicherzugriff empfangen wird, der eine zu übersetzende Adresse umfasst, wird in der Regel der TLB 202 in diesem Prozessor (CMP) 156 zuerst geprüft. Wenn die Adresse in diesem TLB 202 zwischengespeichert ist, wird die Adressübersetzung für diesen Prozessor (CMP) 156 bereitgestellt. Wenn sich die Adresse nicht in dem TLB 202 dieses Prozessors befindet, wird die Übersetzung vorgenommen, indem andere Techniken verwendet werden, z.B. ein Tabellen-Walk.
  • Wenn eine Adressübersetzung, z.B. eine Adresszuordnung, in einem Adressübersetzungspufferspeicher 202 (z.B. TLB 202) oder eine Seitentabelle nicht mehr gültig ist, wird das System einem Ungültigkeitserklärungsprozess unterzogen. In der Regel wird eine Anweisung zur Ungültigkeitserklärung des Eintrags der Adressübersetzung, z.B. eine Anweisung zur Ungültigkeitserklärung eines TLB-Eintrags (TLBie) in dem gesamten System übertragen, Adressübersetzungspufferspeicher/Caches werden lokalisiert, und alle Einträge in den Übersetzungspufferspeichern 202, z.B. TLBs, werden durchsucht, um zu bestimmen, ob sie einen Eintrag aufweisen, der mit dem Eintrag übereinstimmt, der ungültig gemacht werden soll. Die Anweisung zur Ungültigkeitserklärung des Übersetzungspuffers, z.B. TLBie, lokalisiert Speicher- (Arbeitsspeicher) Speicherorte, in denen Adressübersetzungen zugeordnet sind, was für Daten indikativ ist, die dem Prozessor (CMP) 156 zugehörig sind.
  • Insbesondere wird in einer Ausführungsform eines Systems, das als SMP konfiguriert ist, bei jeder Ausgabe einer Anweisung zur Ungültigkeitserklärung eines Eintrags (TLBie) eines Übersetzungspuffers (z.B. TLB) durch einen Ausführungs-Thread auf irgendeinem Prozessor in der Regel das entsprechende Steuerpaket über das gesamte System übergreifend über den Strukturbus 212 an jeden Prozessor (CMP) 156 übertragen. Jeder Prozessor (CMP) 156 empfängt in einem Aspekt dieses Paket auf seinem SMP-Netzwerkadapter 210 (der auch als chipübergreifender Verknüpfungsadapter bezeichnet wird) für das SMP-Netzwerk und übertragt es in dem Prozessor (CMP) 156 über die Datenübertragungs- (CMP) Struktur 204 zu seinen einzelnen Prozessorkernen 208 und/oder Beschleunigereinheiten 214. Wenn jeder Prozessorkern 208 und jede Beschleunigereinheit 214 in dem Prozessor (CMP) 156 den eingehende Snoop-TLBie betätigt haben, kann er von diesem Prozessor (CMP) 156 bestätigt werden. Wenn jeder Prozessor (CMP) 156A bis 156N in dem gesamten SMP-System 10 den TLBie bestätigt hat, kann die TLBie-Anweisung auf ihrem Ausführungs-Thread abgeschlossen werden. Dieses Übertragen der TLBie-Anweisung in jeden Prozessor (CMP) und über das gesamte SMP-System kann eine schlechte Durchsatzleistung und Latenz von TLBie-Anweisungen verursachen, da sowohl die Steuernachricht als auch die Bestätigungsnachricht jeden Prozessor (CMP) 156 und das gesamte SMP-System 10 durchqueren.
  • Offenbart wird ein System und/oder Prozess zum Reduzieren des Verarbeitungsaufwands beim Entfernen von Adressübersetzungen aus Übersetzungspufferspeichern und oder Verarbeiten von Anweisungen zur Ungültigkeitserklärung von Übersetzungspuffereinträgen in einem Computer-Netzwerksystem, bevorzugt ein SMP-Netzwerksystem, was zu einer höheren Durchsatzleistung und einer geringeren Latenz beim Entfernen von Adressübersetzungen aus Pufferspeichern und/oder beim Verarbeiten von Anweisungen zu Ungültigkeitserklärung von Übersetzungseinträgen führt. In einer Ausführungsform wird ein Filterkonstrukt als Baustein zum Verbessern der Verarbeitung der Anweisung zur Ungültigkeitserklärung des Adressübersetzungspuffers verwendet. Das Übersetzungspuffer-Filterkonstrukt, z.B. TLBie-Filterkonstrukt, wird in einem Aspekt mit einem Geltungsbereich eines logischen Partitionsfeststellungssystems verwendet, der durch Hypervisor-Software verwaltet wird. Das heißt, das System weiß, welche logischen Partitionsidentifizierungen (LPIDs) welchen Prozessoren (CMPs) in dem System zugewiesen sind. In einer Ausführungsform ist die Filter-Hardware eine Verzeichnisstruktur, die bevorzugt von Software verwaltet wird. Die Filter-Hardwarestruktur ist bevorzugt in dem prozessorübergreifenden Netzwerkadapter (SMP-Zusammenschaltung) vorhanden, die auch als chipübergreifender Netzwerkadapter bezeichnet wird. In einer Ausführungsform arbeitet der Filter in Verbindung mit einem Protokoll, das von der Hypervisor-Software beim Erzeugen (Zuweisen), Entfernen und/oder erneuten Zuweisen einer logischen Partition (LPID) zu einem Hardware-Thread zu befolgen ist. In einer Ausführungsform arbeiten der Prozess und/oder das System zusammen, indem sie sowohl die Hardware-Struktur als auch die Software-Verwaltung bevorzugt am Hypervisor verwenden.
  • Wenn alle Threads einer logischen Partition in einem Prozessor (CMP) vorhanden sind, muss in einer oder mehreren Ausführungsformen die Anweisung zur Ungültigkeitserklärung der Adressübersetzung für diese logische Partitionsidentifizierung (LPID) nicht ausgesendet oder außerhalb dieses Prozessors (CMP) verarbeitet werden. Eine ausgehende Filterliste in einer oder mehreren Ausführungsformen wird in einer oder mehreren Ausführungsformen verwendet, die eine Liste von logischen Partitionsidentifizierungen (LPID) identifiziert und/oder verwaltet, die ausschließlich zu diesem Prozessor (CMP) gehören. Das heißt, die ausgehende Filterliste identifiziert alle logischen Partitionen, die sich auf diesem Prozessor und nur auf diesem Prozessor befinden. Wenn eine logische Partition auch einem weiteren Prozessor in dem System zu gewiesen ist, wird diese logische Partitionsidentifizierung (LPID) in der ausgehenden Filterliste für diesen Prozessor nicht aufgelistet.
  • Wenn die Threads einer logischen Partition über mehrere Prozessoren (CMPs) verteilt sind, müssen nur die Prozessoren CMPs), die Threads für diese logische Partition enthalten, eine Übersetzungs-Ungültigkeitserklärung für diese logische Partitionsidentifizierung (LPID) verarbeiten. Eine eingehende Filterliste, die eine Liste mit berechtigten LPIDs verwaltet, die diesem Prozessor (CMP) sowie mindestens einem anderen Prozessor in dem System zugewiesen sind, kann zum Bestimmen verwendet werden, ob dieser Prozessor (CMP) diese LPID aufweist. Die eingehende Filterliste verfolgt alle LPIDs, die über mehrere Prozessoren vorhanden sind, und mindestens ein Thread oder Beschleunigerkontext von dem Prozessor, der die eingehende Filterliste hostet, gehört zu dieser Partition.
  • Diese ausgehenden und/oder eingehenden Filterlisten reduzieren bevorzugt beim Arbeiten im Tandem für alle logischen Partitionen, die in dem System vorhanden sind, die Verarbeitungszeit von Anweisungen zur Ungültigkeitserklärung der Adressübersetzung, da in einer oder mehreren Ausführungsformen nur diejenigen Prozessoren (CMPs), die diese Anweisung zur Übersetzungs-Ungültigkeitserklärung verarbeiten müssen, die Verarbeitung ausführen. In einer oder mehreren Ausführungsformen hält das Software-Protokoll, das von der Hypervisor-Software umgesetzt wird, die Hardware-Filterstrukturen SMPsystemübergreifend für eine korrekte Ausführung der Anweisungen zur Ungültigkeitserklärung der Adressübersetzung auf dem neuesten Stand.
  • 3 veranschaulicht ein Beispiel für ein vereinfachtes Blockschaubild eines SMP-Systems 10 mit einer Mehrzahl von Prozessoren (CMPs) 156, die durch prozessorübergreifende (oder chipübergreifende) Netzwerkadapter 210 mit prozessorübergreifenden (oder chipübergreifenden) Netzwerken oder dem Strukturbus 212 verbunden sind. Jeder Prozessor (CMP) 156 umfasst einen oder mehrere Prozessorkerne 208 und eine oder mehrere Beschleunigereinheiten 214, die durch eine Datenübertragungsprozessor- (CMP) Struktur 204 zusammengeschaltet werden. Jeder Prozessor (CMP) 156 umfasst ferner eine SMP-Zusammenschaltung oder einen prozessorübergreifenden Verknüpfungs-Netzwerkadapter 210 zum Verbinden des Strukturbusses (oder des prozessorübergreifenden Netzwerks) 212, der (bzw. das) die Mehrzahl von Prozessoren 156 zusammenschaltet. Jeder Prozessor 156 und bevorzugt jeder prozessorübergreifende Verknüpfungsadapter 210 in jedem Prozessor 156 weist ein Filter 320 für eine Anweisung zur Ungültigkeitserklärung der Adressübersetzung auf, z.B. TLBie. Das Filter 320 der Anweisung zur Ungültigkeitserklärung der Adressübersetzung, z.B. TLBie, weist bevorzugt Filter sowohl in der ausgehenden als auch eingehenden Richtung auf, die jeweiligen Filterlisten zugehörig sind, die logische Partitionsidentifizierungen (LPIDs) enthalten. Ein Ungültigkeitserklärungsfilter der Adressübersetzung 320, der bevorzugt jedem Prozessor 156 zugehörig ist, weist eine ausgehende Filterliste 322 und eine eingehende Filterliste 324 auf, wie in 4 gezeigt.
  • Die ausgehende Filterliste 322 verwaltet eine Liste von LPIDs, die nur in dem zugehörigen Prozessor (auf einem Thread oder Beschleuniger-Kontext) und keinem anderen Prozessor (CMP) in dem System vorhanden sind. Das heißt, die ausgehende Filterliste 322 identifiziert und enthält LPIDs, die ausschließlich zu diesem Prozessor (CMP) gehören. Im Betrieb, wie im Folgenden anhand von Beispielen zum Verarbeiten von Anweisungen zur Ungültigkeitserklärung des Adressübersetzungspuffers (z.B. TLBie) erklärt, wird die LPID der ausgebenden, ursprünglichen und/oder ausgehenden Anweisung zur Ungültigkeitserklärung des Übersetzungspuffers, z.B. TLBie, im Vergleich mit der ausgehende Filterliste 322 geprüft, und wenn sie mit irgendeiner der LPIDs in der ausgehenden Filterliste 322 übereinstimmt, wird sie von dem Filter der Ungültigkeitserklärung der Adressübersetzung (TLBie) 320 für den Rest des Systems, z.B. für alle Prozessoren (CMPs) bestätigt, und die Anweisung zur Ungültigkeitserklärung des Übersetzungspuffers (TLBie) wird nicht auf dem chipübergreifenden Netzwerk 212 ausgesendet.
  • Durch Verwenden des Blockschaubilds von 3 als ein Beispiel für ein SMP-System 10, in dem Prozessoren (CMPs) einen Prozessorkern 208 oder eine Beschleunigereinheit 214 aufweisen, der bzw. die Hardware-Threads oder Arbeitselemente für verschiedene logische Partitionen ausführt, und in einem Beispiel, in dem der Prozessor 156A eine Thread-Kontext-LPID=5 und eine Arbeitselementkontext-LPID=5 bearbeitet, und eine Arbeitselement-Kontext-LPID=5 nicht irgendeinem anderen Prozessor 156 in dem SMP-System 10 zugehörig oder darauf vorhanden ist, ist LPID=5 in der ausgehenden LPID-Filterliste 322A im TLBie-Filter 320A für den Prozessor (CMP) 156A enthalten, wie in 5 gezeigt. Die Prozessoren (CMPs) 156B und 156C, wie in 5 gezeigt, weisen jeweils leere TLBie-Filter 320B und 320C auf, während der CMP 156N mit einer Arbeitselement-Kontext-LPID=8 eine LPID=8 in seinem ausgehenden Filter 322N hat.
  • Beim Verarbeiten einer TLBie-Anweisung für LPID=5, wird die TLBie-Anweisung auf der CMP-Struktur 204A verbreitet, um die Prozessorkerne 208A und die Beschleunigereinheiten 214A im Prozessor (CMP) 156A zu prüfen. Außerdem würde der TLBie im Prozessor (CMP) 156A mit einer LPID=5 im Vergleich mit den LPIDs in der ausgehenden LPID-Filterliste 322A in dem TLBie-Filter 320A geprüft, und da die ausgehende LPID-Filterliste 322A eine LPID=5 aufweist, bestätigt das TLBie-Filter 320A den TLBie mit der LPID=5 für den SMP (und jeden CMP). Das TLBie-Filter 320A kann für das SMP-System 10 bestätigen, da die LPID=5 auf der ausgehenden TLBie-Filterliste 322A angibt, dass die logische Partition, die dem Thread zugehörig ist, sich nur auf dem Prozessor (CMP) 156A befindet und daher keine anderen Prozessoren (CMPs) in dem SMP-System 10 geprüft werden müssen.
  • Die eingehende Filterliste 324, die Teil des TLBie-Filters 320 ist, der bevorzugt jedem Prozessor (SMP) 156 zugehörig ist, verfolgt alle LPIDs, die in dem System 10 vorhanden sind, d.h. in allen Prozessoren (CMPs) 156, und die auf diesen bestimmten Prozessor (CMP) vorhanden sind. Insbesondere enthält die eingehende Filterliste 324 alle LPIDs auf diesem Prozessor (CMP) und die auch auf mindestens einem anderen Prozessor 156 in dem System 10 vorhanden sind. So sind beispielsweise in einem Beispiel des Systems 10 von 3, in dem LPIDs auf dem Prozessor (CMP) 156A bis Prozessor (CMP) 156N vorhanden oder diesen zugewiesen sind, die TLBie-Filter 320A bis 320N wie in 6 veranschaulicht, wobei das TLBie-Filter 320A LPID=8 in der eingehenden TLBie-Filterliste 324A und LPID=5 in dem ausgehenden TLBie-Filter 322A aufweist, die angeben, dass LPID 5 ausschließlich zu dem Prozessor (CMP) 156A gehört, und dass der Prozessor (CMP) 156A auch LPID 8 aufweist. Die TLB-Filter 320B und 320C haben beide keine Einträge in jeder der Filterlisten 322B, 322C, 324B oder 324C, wodurch angegeben wird, dass den Prozessoren (CMPs) 156B und 156C keine logischen Partitionen zugewiesen wurden. Das TLBie-Filter 320N weist LPID=8 in der eingehenden TLBie-Filterliste 324N und nicht in dem ausgehenden TLBie-Filter 322N auf, wodurch angegeben wird, dass LPID 8 CMP 156N zugewiesen ist, und dass LPID 8 sich auch auf anderen Prozessoren (CMPs) in dem System befindet.
  • In der Situation, in der ein TLBie mit LPID=8 in dem System 10 verarbeitet wird, das so wie in 3 konfiguriert ist und LPIDs aufweist, die verschiedenen Prozessoren (CMPs) zugewiesen sind, wie durch die Filter 320 in 6 angegeben, und der TLBie zum Beispiel im Prozessor (CMP) 156A ausgegeben wird oder aus diesem stammt, wird der TLBie intern in den Prozessoren (CMPs) 156A und 156N verarbeitet, während die TLBie-Filter 320B und 320C für die gesamten jeweiligen Prozessoren (CMPs) 156B und 156C bestätigen. Insbesondere wird der TLBie mit LPID=8, die aus dem Prozessor (CMP) 156A stammt, in dem Prozessor (CMP) 156A verarbeitet, aus dem sie stammt (prüft die Prozessorkerne 208A und Beschleunigereinheiten 214A). Wenn der Prozessor (CMP) 156A seine Prüfung (das Snooping) beendet, wird für den Prozessor (CMP) 156A bestätigt. Da sich LPID=8 nicht auf der ausgehenden TLB-Filterliste 322A in dem Prozessor 156A befindet, wird der TLBie mit LPID=8 aus dem Prozessor (CMP) 156A auf dem Strukturbus 212 an die anderen Prozessoren (CMPs) in dem System ausgesendet. In dem Beispiel des SMP-Systems 10 von 3 wird der TLBie mit LPID = 8 an die Prozessoren (CMPs) 156B, 156C und 156N gesendet. Wenn der eingehende TLBie mit LPID=8 mit keinem Eintrag in der eingehenden TLBie-Filterliste 324 übereinstimmt, wie dies in den Prozessoren (CMPs) 156B und 156C der Fall wäre, bestätigt das TLBie-Filter 320, z.B. die Filter 320B und 320C, die Anforderung für die gesamten jeweiligen Prozessoren (CMPs) 156B und 156C.
  • Wenn andererseits eine eingehende TLBie-Anweisung, z.B. ein Steuerpaket, ein LPID-Feld aufweist, das mit irgendeinem Eintrag in der eingehenden LPID-Filterliste 324 übereinstimmt, dann, und nur dann, wird dieser TLBie in dem Prozessor (CMP) an die prozessorinterne (CMP) Struktur 204 zum weiteren Snooping und Abschließen gesendet. In dem Beispiel des Systems 10 von 3, das einen TLBie mit LPID=8 verarbeitet, wird die eingehende LPID-Filterliste 324N in dem Prozessor 156N geprüft, und da die eingehende Filterliste 324N LPID=8 aufweist, gelangt das TLBie-Anweisungspaket in den Prozessor (CMP) 156N und wird auf der Prozessor- (CMP) Struktur 204N verbreitet, um auf eine Übereinstimmung zu prüfen. Wenn der Snooping-Prozess des Prozessors (CMP) 156N abgeschlossen ist, bestätigt der Prozessor (CMP) 156N die Anforderung.
  • Das TLBie-Filter 320 wird in einer oder mehreren Ausführungsformen durch Software verwaltet, überwacht und aktualisiert. In einer oder mehreren Ausführungsformen eines SMP-Systems kennt der Hypervisor die Systemkonfiguration bereits und kann identifizieren, wann eine logische Partition, z.B. LPID, auf einem Hardware-Thread geplant ist, und wo sich der Hardware-Thread in dem System befindet. Zum Unterstützen der Hardware in dem System können in einer oder mehreren Ausführungsformen die folgenden oder ähnliche Anweisungen verwendet werden.
  • REMOVE_LOCAL_OUTGOING <LPID>: Die Anweisung entfernt den Eintrag für die zugehörige LPID in der ausgehenden Filterliste des Prozessors (CMP), aus der sie stammt oder von der sie ausgegeben wurde, sofern vorhanden.
  • REMOVE_LOCAL_INCOMING <LPID>: Die Anweisung entfernt den Eintrag für die zugehörige LPID in der eingehenden Filterliste des Prozessors (CMP), aus der sie stammt oder von der sie ausgegeben wurde, sofern vorhanden.
  • REMOVE_GLOBAL_OUTGOING <LPID>: Diese Anweisung würde an alle Prozessoren (CMPs) in dem System gesendet, und in Reaktion auf ein Empfangen dieser Anweisung wird die entsprechende LPID aus ihrer ausgehenden Filterliste entfernt, sofern vorhanden.
  • ADD_LOCAL_OUTGOING <LPID>: Die Anweisung erstellt einen Eintrag für die zugehörige LPID in der ausgehenden Filterliste des Prozessors (CMP), aus der sie stammt oder von der sie ausgegeben wurde, sofern sie noch nicht vorhanden ist.
  • ADD_LOCAL_INCOMING <LPID>: Die Anweisung erstellt einen Eintrag für die zugehörige LPID in der eingehenden Filterliste des Prozessors (CMP), aus der sie stammt oder von der sie ausgegeben wurde, sofern sie noch nicht vorhanden ist.
  • Wenn eine Änderung einer logischen Partition, z.B. LPID, auf einem Thread ausgeführt wird, werden in einer oder mehreren Ausführungsformen Operationen ausgeführt, um sicherzustellen, dass die Informationen auf dem System und in dem Ungültigkeitserklärungsfilter des Übersetzungspuffers (TLBie) korrekt sind. Wenn die alte LPID auf diesem Thread die letzte in dem System vorhandene LPID war, wird die alte LPID auf der ausgehenden Filterliste auf dem Prozessor (CMP), aus der die alte LPID stammte, entfernt, und die alte LPID auf der eingehenden Filterliste des Prozessors (CMP), aus der die alte LPID stammte, wird entfernt. Wenn die alte LPID in diesem Thread für ihre Partition in dem Prozessor (CMP), nicht aber das gesamte System, die letzte vorhandene war, wird die alte LPID auf der eingehenden Filterliste für diesen Prozessor (CMP) entfernt.
  • Wenn eine neue LPID nirgendwo in dem System vorhanden ist, wird ein Eintrag für die zugehörige LPID in der ausgehenden Filterliste des Prozessors (CMP) erstellt, aus der sie stammte oder von der sie ausgegeben wurde, und ein Eintrag wird für die zugehörige LPID in der eingehenden Filterliste des Prozessors (CMP) erstellt, aus dem die LPID stammte. Wenn die neue LPID in dem System vorhanden ist, aber kein Thread mit dieser LPID in diesem Prozessor (CMP) vorhanden ist, wird ein Eintrag für die zugehörige LPID in der eingehenden Filterliste auf diesem Prozessor (CMP) erstellt. Wenn der Hypervisor weiß, dass eine neue LPID in dem Thread bereits auf einem anderen Prozessor (CMP) geplant wurde, der nicht dem Prozessor dieses Threads entspricht, wird an alle Prozessoren (CMPs) in dem System eine Anweisung ausgesendet, die die entsprechende LPID aus ihrer ausgehenden Filterliste entfernt, und ein Eintrag für die zugehörige LPID wird auf der eingehenden Filterliste des Prozessors (CMP) erstellt, aus der die LPID stammt oder von der sie ausgegeben wurde.
  • Offenbart wird ein System und/oder ein Prozess zum Reduzieren des Aufwands einer Anweisung zur Ungültigkeitserklärung des Übersetzungspuffers (TLBie) in einem Computer-SMP-Netzwerksystem, was zu einer höheren Durchsatzleistung und geringerer Latenz beim Verarbeiten von Anweisungen zur Ungültigkeitserklärung des Übersetzungspuffers (z.B. TLBie) führt. In einer oder mehreren anderen Ausführungsformen wurde der Prozess zum Entfernen von Adressübersetzungen aus einem Übersetzungspuffer unter Bezugnahme auf TLBs und TLBie-Anweisungen in einem System erklärt. Es sollte klar sein, dass derselbe und/oder ein ähnlicher Prozess auf ein Verarbeiten und/oder Entfernen von anderen Übersetzungen in anderen Übersetzungspuffern anwendbar wäre. Zum Beispiel kann in einer oder mehreren Ausführungsformen eine Anweisung zur Ungültigkeitserklärung eines SLB-Eintrags (SLBie) in einem System in derselben oder einer den Fällen ähnlichen Weise verarbeitet werden, in denen eine Ungültigkeitserklärungsoperation auf eine Adressübersetzung in einem TLB angewendet wird. In noch einer oder mehreren Ausführungsformen kann eine IUSB-Anweisung zur Ungültigkeitserklärung eines Eintrags (IUSBie) in dem System in derselben oder einer den Fällen ähnlichen Weise verarbeitet werden, in denen eine Ungültigkeitserklärungsoperation auf eine Adressübersetzung in einem TLB angewendet wird. Die Offenbarung beschreibt ein Beispiel, in dem eine TLBie-Anweisung verarbeitet wird, um Übersetzungen in TLB-Caches ungültig zu machen; es wird jedoch angemerkt, dass die Merkmale und Funktionen in dem TLBie-Anweisungsbeispiel gleichermaßen auf Ausführungsformen anwendbar sind, in denen eine SLBie-Anweisung und/oder eine IUSBie-Anweisung verarbeitet werden, um Übersetzungen in Speicher-(Arbeitsspeicher) Speicherorten ungültig zu machen.
  • 7 ist ein beispielhafter Ablaufplan gemäß verschiedenen Ausführungsformen, die ein Verfahren zum Entfernen und/oder Ändern von Adressübersetzungen veranschaulichen und beschreiben, z.B. Verarbeiten einer Anweisung zur Ungültigkeitserklärung des Adressübersetzungspuffers (z.B. TLBie) in einem Computersystem, um die Leistung zu verbessern, gemäß einer oder mehreren Ausführungsformen der vorliegenden Offenbarung. Während ein Verfahren 700 der Einfachheit halber und nicht mit der Absicht, die Offenbarung auf eine Reihe und/oder eine Anzahl von Schritten aufweisend einzuschränken beschrieben wurde, sollte klar sein, dass der Prozess nicht als eine Reihe von Schritten ausgeführt werden muss und/oder die Schritte nicht in der Reihenfolge ausgeführt werden müssen, die in Bezug auf 7 gezeigt und beschrieben wurden, sondern dass der Prozess integriert werden kann und/oder ein oder mehrere Schritte zusammen gleichzeitig ausgeführt werden können, oder die Schritte in der offenbarten oder in einer alternativen Reihenfolge ausgeführt werden können.
  • Das Verfahren 700, das in dem Ablaufplan von 7 veranschaulicht wird, betrifft ein Entfernen und/oder Ändern von Adressübersetzungen in Übersetzungspufferspeichern in einem System mit einer Mehrzahl von Prozessoren oder CMPs. In einer oder mehreren Ausführungsformen umfasst der Prozess 700 ein Verarbeiten einer Anweisungen zur Ungültigkeitserklärung eines Eintrags eines Übersetzungspufferspeichers (TBie), z.B. ein TLBie, ein SLBie, ein IUSBie in einem System mit einer Mehrzahl von zusammengeschalteten Multiprozessoren. Das Verfahren 700 wird unter Bezugnahme auf ein Verarbeiten und Entfernen einer Übersetzungszuordnung in einem Übersetzungspufferspeicher beschrieben, wie zum Beispiel ein Adressübersetzungspufferspeicher (TLB) oder ein Segmentübersetzungspufferspeicher (SLB), es sollte aber klar sein, dass das Verfahren, der Prozessor und das System andere Anwendungen und Konfigurationen haben kann.
  • In einer oder mehreren Ausführungsformen wird im Schritt 710 ein Filterkonstrukt bereitgestellt, und bevorzugt ist ein Filterkonstrukt jedem von der Mehrzahl von Prozessoren oder CMPs in dem System zugehörig und/oder darin enthalten. In einer Ausführungsform kann jeder Prozessor oder CMP eine Mehrzahl von Prozessorkernen und/oder Beschleunigereinheiten umfassen, die bevorzugt durch eine CMP- (Prozessor) Datenübertragungsstruktur zusammengeschaltet sind. Das Filterkonstrukt ist bevorzugt eine Verzeichnisstruktur, die durch Software verwaltet wird. In einer oder mehreren Ausführungsformen weist das Filterkonstrukt eine ausgehende Filterliste auf, die die logischen Partitionsidentifizierungen (LPIDs) identifiziert, die ausschließlich zu diesem Prozessor, z.B. CMP gehören. In einer oder mehreren Ausführungsformen weist das Filterkonstrukt zusätzlich und/oder alternativ eine eingehende Filterliste auf, die alle LPIDs identifiziert, die sich auf diesem Prozessor, z.B. CMP befinden, und die sich ebenfalls auf mindestens einem anderen Prozessor (CMP) in dem System befinden. In einer Ausführungsform werden die ausgehenden und eingehenden Filterlisten bevorzugt durch Software verwaltet und aktualisiert.
  • In einer Ausführungsform wird in Schritt 715 eine Anweisung zur Ungültigkeitserklärung eines Übersetzungspuffereintrags (TBie), z.B. TLBie, SLBie und/oder IUSBie in einem Prozessor (CMP) ausgegeben und wird in dem Prozessor (CMP) verarbeitet, von dem die Anweisung zur Ungültigkeitserklärung ausgegeben wird oder von dem sie stammt. In einem Aspekt wird die Anweisung zur Ungültigkeitserklärung der Adressübersetzung auf der CMP-Datenübertragungsstruktur an die verschiedenen Prozessorkerne und Beschleunigereinheiten in dem Prozessor oder CMP verbreitet. In Reaktion auf ein Abschließen des Snooping-Prozesses in dem Prozessor (CMP), von dem die Anweisung zur Ungültigkeitserklärung des Übersetzungspuffers ausgegeben wurde, bestätigt dieser Prozessor oder CMP die Anforderung. In einer Ausführungsform betrifft ein Bestätigen der Anforderung diesen Teil des Systems, z.B. denjenigen Prozessor oder CMP, der die Anforderung gesehen und verarbeitet hat. In einem Aspekt kann die Anforderung in Fällen bestätigt werden, in denen eine oder mehrere übereinstimmende Übersetzungen von einem oder mehreren Adressübersetzungspufferspeichern in dem Prozessor lokalisiert und entfernt (oder geändert) wurden und/oder in denen keine übereinstimmende Übersetzung in dem Prozessor (CMP) gefunden wird.
  • In einer oder mehreren Ausführungsformen zur Ausübung des Verfahrens 700 wird in Schritt 720 die ausgehende Filterliste des Prozessors (CMP), von dem die Anweisung zur Ungültigkeitserklärung ausgegeben wurde oder stammt, auf eine LPID geprüft, die mit der LPID der Anweisung zur Ungültigkeitserklärung des Übersetzungspufferspeichers übereinstimmt. Wenn in Schritt 725 die LPID der TBie-Anweisung mit irgendeinem der LPID-Einträge in dem ausgehenden Filter übereinstimmt (725: JA), bestätigt der Prozessor (CMP) in Schritt 730 die Anweisung zur Ungültigkeitserklärung des Übersetzungspufferspeichers für das gesamte System, z.B. alle Prozessoren (CMPs) in dem System. Die TBie-Anweisung wird nicht auf dem prozessorübergreifenden (chipübergreifenden) Netzwerk oder Netzwerkstrukturbus ausgesendet, wenn die LPID der TBie-Anweisung mit einem Eintrag auf der ausgehenden Filterliste für diesen Prozessor (CMP) übereinstimmt. Wenn andererseits die LPID der TBie-Anweisung mit keiner LPID auf der ausgehenden Filterliste übereinstimmt (725: NEIN), wird in Schritt 740 die TBie-Anweisung an jeden Prozessor (CMP) in dem System ausgesendet. Zum Beispiel wird die TLBie-Anweisung auf dem prozessorübergreifenden Netzwerk an jeden Prozessor (CMP) ausgesendet.
  • In Fällen, in denen die Anweisung zur Ungültigkeitserklärung des Eintrags des Übersetzungspufferspeichers (TBie) an jeden Prozessor (CMP) ausgesendet und verarbeitet wird, wird an jedem Prozessor (CMP) das Filterkonstrukt geprüft, und insbesondere wird die eingehende Filterliste in Schritt 745 geprüft, um zu bestimmen, ob die LPID der eingehenden TBie-Anweisung mit irgendeiner LPID auf der eingehenden Filterliste für den jeweiligen Prozessor übereinstimmt. Wenn die eingehende LPID der TBie-Anweisung mit keiner LPID auf der eingehenden Filterliste übereinstimmt (745: NEIN), wird die Anforderung in Schritt 750 für den gesamten Prozessor (CMP) bestätigt, und in einer Ausführungsform bestätigt das Übersetzungspuffer-Filterkonstrukt die Anforderung für diesen gesamten Prozessor (CMP).
  • Wenn die LPID der TBie-Anweisung mit irgendeiner LPID auf der eingehenden Filterliste in dem Prozessor oder CMP übereinstimmt (745: JA), wird in Schritt 755 die TBie-Anweisung für weiteres Snooping in den Prozessor (CMP) gesendet, z.B. für weiteres Verarbeiten und Prüfen in dem Prozessor (CMP) auf übereinstimmende Einträge von Adressübersetzungen in Übersetzungspufferspeichern, die aus dem Adressübersetzungspuffern entfernt oder in diesem geändert werden müssen. In einer oder mehreren Ausführungsformen wird die TBie-Anweisung in den Prozessor (CMP) gesendet und auf der CMP-Struktur für weiteres Snooping verbreitet. In Schritt 760, wenn der Snooping-Prozess in dem Prozessor (CMP) abgeschlossen ist, bestätigt der Prozessor (CMP) die Anforderung.
  • Verschiedene veranschaulichende Aspekte, die oben beschrieben wurden, werden bevorzugt in Hardware umgesetzt, wie beispielsweise in Einheiten und Schaltungen eines Prozessors, und verschiedene Aspekte der veranschaulichenden Ausführungsformen können in Software umgesetzt werden. Es sollte zum Beispiel klar sein, dass jeder Block der Ablaufplanveranschaulichungen in 7 und Kombinationen von Blöcken in der Ablaufplanveranschaulichung durch Hardware oder Computerprogrammanweisungen umgesetzt werden können. Diese Computerprogrammanweisungen können für einen Prozessor oder eine andere programmierbare Datenverarbeitungsvorrichtung bereitgestellt werden, um eine Maschine zu erzeugen, sodass die Anweisungen, die auf dem Prozessor oder der anderen programmierbaren Datenverarbeitungsvorrichtung ausgeführt werden, ein Mittel zur Umsetzung der in dem Block bzw. den Blöcken der Ablaufpläne spezifizierten Funktionen erstellen. Diese Computerprogrammanweisungen können auch in einem durch einen Computer lesbaren Arbeitsspeicher oder Speichermedium gespeichert werden, die einen Computer oder eine andere programmierbare Datenverarbeitungsvorrichtung so steuern können, dass die Anweisungen, die in dem durch einen Computer lesbaren Arbeitsspeicher oder dem Speichermedium gespeichert sind, ein Herstellungsprodukt erzeugen, das Anweisungsmittel enthält, die die in dem Block bzw. den Blöcken des Ablaufplans spezifizierten Funktionen umsetzen.
  • Dementsprechend unterstützen Blöcke der Ablaufplanveranschaulichung Kombinationen von Mitteln zum Ausführen der spezifizierten Funktionen, Kombinationen von Schritten zum Ausführen der spezifizierten Funktionen und Programmanweisungsmittel zum Ausführen der spezifizierten Funktionen. Es ist sollte auch klar sein, dass jeder Block der Ablaufplanveranschaulichung und Kombinationen von Blöcken in der Ablaufplanveranschaulichung durch spezielle, auf Hardware beruhende Computer oder Verarbeitungssysteme, welche die spezifizierten Funktionen oder Schritte ausführen, oder durch Kombinationen aus Spezial-Hardware und Computeranweisungen umgesetzt werden können.
  • In einer oder mehreren Ausführungsformen wird ein Informationsbearbeitungssystem mit einer Mehrzahl von Prozessoren offenbart, die durch ein prozessorübergreifendes Netzwerk verbunden sind, wobei jeder von der Mehrzahl von Prozessoren einen oder mehrere Adressübersetzungspufferspeicher umfasst, wobei jeder Adressübersetzungspufferspeicher mit einer Mehrzahl von Adressübersetzungseinträgen Adressübersetzungsinformationen enthält; und ein Filterkonstrukt mit einer ausgehenden Filterliste, die logische Partitionsidentifizierungen (LPIDs) identifiziert, die ausschließlich diesem Prozessor zugewiesen sind. In einer oder mehreren Ausführungsformen ist das System in Betrieb dafür ausgelegt und konfiguriert zum: Ausgeben einer Anweisung zur Ungültigkeitserklärung der Adressübersetzung mit einer LPID in einem von der Mehrzahl von Prozessoren in dem Verarbeitungssystem; Prüfen der ausgehenden Filterliste in dem Prozessor, von dem die Anweisung zur Ungültigkeitserklärung der Adressübersetzung ausgegeben wurde; Bestimmen, ob die LPID der Anweisung zur Ungültigkeitserklärung der Adressübersetzung mit irgendeiner der LPIDs in der ausgehenden Filterliste übereinstimmt; und Bestätigen, in mindestens einer Teilantwort an die LPID der Anweisung zur Ungültigkeitserklärung der Adressübersetzung, die mit irgendeiner der LPIDs in der ausgehenden Filterliste übereinstimmt, der Anweisung zur Ungültigkeitserklärung der Adressübersetzung für das System.
  • Das Filterkonstrukt in einer oder mehreren Ausführungsformen weist ferner eine eingehende Filterliste auf, die diesem Prozessor zugewiesene LPIDs und mindestens einen anderen Prozessor in dem System identifiziert, und das System in Betrieb ist ferner in einem Aspekt dafür ausgelegt und konfiguriert zum: Bestimmen, für jeden von der Mehrzahl von Prozessoren in dem System, die nicht dem Prozessor entsprechen, von dem die Anweisung zur Ungültigkeitserklärung der Adressübersetzung ausgegeben wurde, ob die LPID der Anweisung zur Ungültigkeitserklärung der Adressübersetzung mit irgendeiner der LPIDs in der eingehenden Filterliste des jeweiligen Prozessors übereinstimmt; und Senden, in Reaktion auf die LPID der Anweisung zur Ungültigkeitserklärung der Adressübersetzung, die mit irgendeiner der LPIDs in der eingehenden Filterliste übereinstimmt, der Anweisung zur Ungültigkeitserklärung der Adressübersetzung in diesen Prozessor. Das System in Betrieb in einer Ausführungsform ist ferner dafür ausgelegt und konfiguriert zum: Prüfen, in den Übersetzungspufferspeichern in dem Prozessor, bei dem die LPID der Anweisung zur Ungültigkeitserklärung der Adressübersetzung mit einer LPID in dem eingehenden Filter übereinstimmt, auf Adressübersetzungseinträge, die der Anweisung zur Ungültigkeitserklärung der Adressübersetzung entsprechen; und Bestätigen, in Reaktion auf ein Abschließen der Prüfung in jedem Prozessor, der eine LPID in seiner eingehenden Filterliste hat, die mit der LPID der Anweisung zur Ungültigkeitserklärung der Adressübersetzung übereinstimmt, der Anweisung zur Ungültigkeitserklärung der Adressübersetzung für den jeweiligen Prozessor. Das System in Betrieb ist ferner dafür ausgelegt und konfiguriert zum: Bestätigen, in Reaktion auf die LPID der Anweisung zur Ungültigkeitserklärung der Adressübersetzung, die mit keiner der LPIDs in der eingehenden Filterliste übereinstimmt, der Anweisung zur Ungültigkeitserklärung der Adressübersetzung für den jeweiligen Prozessor. In noch einer weiteren Ausführungsform ist das System in Betrieb ferner dafür ausgelegt und konfiguriert zum: Prüfen, in den Übersetzungspufferspeichern in dem Prozessor, bei dem die LPID der Anweisung zur Ungültigkeitserklärung der Adressübersetzung mit einer LPID in dem eingehenden Filter übereinstimmt, auf Adressübersetzungseinträge, die der Anweisung zur Ungültigkeitserklärung der Adressübersetzung entsprechen; Bestätigen, in Reaktion auf ein Abschließen der Prüfung in jedem Prozessor, der eine LPID in seiner eingehenden Filterliste hat, die mit der LPID der Anweisung zur Ungültigkeitserklärung der Adressübersetzung übereinstimmt, der Anweisung zur Ungültigkeitserklärung der Adressübersetzung für den jeweiligen Prozessor; und Bestätigen, in Reaktion auf die LPID der Anweisung zur Ungültigkeitserklärung der Adressübersetzung, die mit keiner der LPIDs in der eingehenden Filterliste übereinstimmt, der Anweisung zur Ungültigkeitserklärung der Adressübersetzung für den jeweiligen Prozessor.
  • In einer oder mehreren Ausführungsformen wird ein Informationsbearbeitungssystem mit einer Mehrzahl von Prozessoren offenbart, die durch ein prozessorübergreifendes Netzwerk verbunden sind, wobei jeder von der Mehrzahl von Prozessoren einen oder mehrere Adressübersetzungspufferspeicher umfasst, wobei jeder Adressübersetzungspufferspeicher mit einer Mehrzahl von Adressübersetzungseinträgen Adressübersetzungsinformationen enthält; und ein Filterkonstrukt mit einer eingehenden Filterliste, die logische Partitionsidentifizierungen (LPIDs) identifiziert, die diesem Prozessor und mindestens einem anderen Prozessor in dem System zugewiesen sind. Das System in Betrieb ist dafür ausgelegt und in einer Ausführungsform konfiguriert zum: Ausgeben einer Anweisung zur Ungültigkeitserklärung der Adressübersetzung in einem von der Mehrzahl von Prozessoren in dem Verarbeitungssystem; Senden der Anweisung zur Ungültigkeitserklärung einer Adressübersetzung aus dem Prozessor, von dem die Anweisung zur Ungültigkeitserklärung der Adressübersetzung ausgegeben wurde, an die anderen Prozessoren in dem System; Bestimmen, für jeden von den Prozessoren in dem System, die nicht dem Prozessor entsprechen, von dem die Anweisung zur Ungültigkeitserklärung der Adressübersetzung ausgegeben wurde, ob die LPID der Anweisung zur Ungültigkeitserklärung der Adressübersetzung mit irgendeiner der LPIDs in der eingehenden Filterliste des jeweiligen Prozessor übereinstimmt; und Senden, in Reaktion auf die LPID der Anweisung zur Ungültigkeitserklärung der Adressübersetzung, die mit irgendeiner der LPIDs in der eingehenden Filterliste übereinstimmt, der Anweisung zur Ungültigkeitserklärung der Adressübersetzung in den Prozessor, der das eingehende Filter mit der LPID aufweist, die mit der LPID auf der eingehenden Filterliste übereinstimmt. Das System in Betrieb ist in einem Aspekt ferner dafür ausgelegt und konfiguriert zum: Prüfen, in den Übersetzungspuffern in dem Prozessor, bei dem die LPID der Anweisung zur Ungültigkeitserklärung der Adressübersetzung mit einer LPID auf dem eingehenden Filter übereinstimmt, auf Adressübersetzungseinträge, die der Anweisung zur Ungültigkeitserklärung der Adressübersetzung entsprechen; und Bestätigen, in Reaktion auf ein Abschließen der Prüfung in jedem Prozessor, der eine LPID in seinem eingehenden Filter hat, die mit der LPID der Anweisung zur Ungültigkeitserklärung der Adressübersetzung übereinstimmt, der Anweisung zur Ungültigkeitserklärung der Adressübersetzung für den jeweiligen Prozessor. Das System in Betrieb ist ferner dafür ausgelegt und in einer Ausführung konfiguriert, um in Reaktion auf die LPID der Anweisung zur Ungültigkeitserklärung der Adressübersetzung, die mit keiner der LPIDs in der eingehenden Filterliste übereinstimmt, die Anweisung zur Ungültigkeitserklärung der Adressübersetzung für den jeweiligen Prozessor zu bestätigen. Das System in Betrieb ist ferner dafür ausgelegt und gemäße einem Aspekt konfiguriert, um in dem einen oder den mehreren Übersetzungspufferspeichern in dem Prozessor, von dem die Anweisung zur Ungültigkeitserklärung der Adressübersetzung ausgegeben wird, auf Adressübersetzungseinträge zu prüfen, die der Anweisung zur Ungültigkeitserklärung der Adressübersetzung entsprechen, und in Reaktion auf ein Abschließen der Prüfung in dem ausgebenden Prozessor die Anweisung zur Ungültigkeitserklärung einer Adressübersetzung für den ausgebenden Prozessor zu bestätigen. Das Filterkonstrukt in einer Ausführungsform weist optional ein ausgehendes Filter auf, das eine Liste von LPIDs verwaltet, die ausschließlich diesem Prozessor zugewiesen sind, und das System in Betrieb ist ferner dafür ausgelegt und konfiguriert zum: Prüfen der ausgehenden Filterliste in dem Prozessor, von dem die Anweisung zur Ungültigkeitserklärung der Adressübersetzung ausgegeben wird; Bestimmen, ob die LPID der Anweisung zur Ungültigkeitserklärung der Adressübersetzung mit irgendeiner der LPIDs in der ausgehenden Filterliste übereinstimmt; und Bestätigen, in mindestens einer Teilantwort an die LPID der Anweisung zur Ungültigkeitserklärung der Adressübersetzung, die mit irgendeiner der LPIDs in der ausgehenden Filterliste übereinstimmt, der Anweisung zur Ungültigkeitserklärung der Adressübersetzung für das System. Das System in Betrieb ist ferner dafür ausgelegt und in einem Aspekt konfiguriert, um in Reaktion auf die LPID der Anweisung zur Ungültigkeitserklärung der Adressübersetzung, die keiner der LPIDs in dem ausgehenden Filter entspricht, die Anweisung zur Ungültigkeitserklärung der Adressübersetzung aus dem Prozessor, von dem die Anweisung zur Ungültigkeitserklärung der Adressübersetzung ausgegeben wurde, an die anderen Prozessoren in dem System zu senden.
  • Das Informationsbearbeitungssystem in einer Ausführungsform in Betrieb ist ferner dafür ausgelegt und konfiguriert, um in dem einen oder den mehreren Adressübersetzungspufferspeichern in dem Prozessor, von dem die Anweisung zur Ungültigkeitserklärung der Adressübersetzung ausgegeben wird, auf Adressübersetzungseinträge zu prüfen, die der Anweisung zur Ungültigkeitserklärung der Adressübersetzung entsprechen. In einem Aspekt ist das System in Betrieb ferner dafür ausgelegt und konfiguriert, um in Reaktion auf die LPID der Anweisung zur Ungültigkeitserklärung der Adressübersetzung, die keiner der LPIDs in dem ausgehenden Filter entspricht, die Anweisung zur Ungültigkeitserklärung der Adressübersetzung aus dem Prozessor, von dem die Anweisung zur Ungültigkeitserklärung der Adressübersetzung ausgegeben wurde, an die anderen Prozessoren in dem System zu senden. Und gemäß einer Ausführungsform ist das System in Betrieb ferner dafür ausgelegt und konfiguriert, die Anweisung zur Ungültigkeitserklärung der Adressübersetzung auf dem prozessorübergreifenden Netzwerk zu verbreiten, um die Anweisung zur Ungültigkeitserklärung der Adressübersetzung an die Prozessoren in dem System zu senden, die nicht dem Prozessor entsprechen, von dem die Anweisung zur Ungültigkeitserklärung der Adressübersetzung ausgegeben wurde. Die ausgehenden und eingehenden Filterlisten in einer oder mehreren Ausführungsformen sind dafür ausgelegt und konfiguriert, um unter Verwendung von Software aktualisiert und verwaltet zu werden. Das Filterkonstrukt in einer Ausführungsform befindet sich auf einem Netzwerkadapter, der jeden der Prozessoren mit dem prozessorübergreifenden Netzwerk verbindet.
  • In einer oder mehreren Ausführungsformen wird ein Verfahren zur Informationsverarbeitung in einem Verarbeitungssystem mit einer Mehrzahl von Prozessoren offenbart, insbesondere ein Verfahren zum Entfernen oder Ändern von Adressübersetzungen in Adressübersetzungspufferspeichern oder Caches, die bevorzugt für mindestens einen von der Mehrzahl von Prozessoren in dem System lokal sind. Die Prozessoren weisen bevorzugt einen oder mehrere Adressübersetzungspufferspeicher oder Caches von Adressübersetzungen auf, und in einer oder mehreren Ausführungsformen umfassen sie einen oder mehrere verschiedene Typen von Adressübersetzungspufferspeichern. Das Verfahren umfasst in einer oder mehreren Ausführungsformen ein Ausgeben einer Anweisung zur Ungültigkeitserklärung der Adressübersetzung in einem von der Mehrzahl von Prozessoren in dem Verarbeitungssystem; Bereitstellen einer ausgehenden Filterliste, die eine Liste mit logischen Partitionsidentifizierungen (LPIDs) verwaltet, die ausschließlich zu dem Prozessor gehören, der die ausgehende Filterliste enthält; Bestimmen, ob die LPID der Anweisung zur Ungültigkeitserklärung der Adressübersetzung mit irgendeiner der LPIDs in der ausgehenden Filterliste des Prozessors übereinstimmt, von dem die Anweisung zur Ungültigkeitserklärung der Adressübersetzung ausgegeben wurde; und Bestätigen, in mindestens einer Teilantwort an die LPID der Anweisung zur Ungültigkeitserklärung der Adressübersetzung, die mit irgendeiner der LPIDs in der ausgehenden Filterliste übereinstimmt, der Anweisung zur Ungültigkeitserklärung der Adressübersetzung für das System. Das Verfahren in einem Aspekt umfasst ferner ein Prüfen in dem Prozessor, von dem die Anweisung zur Ungültigkeitserklärung der Adressübersetzung ausgegeben wird, auf Adressübersetzungseinträge, die der Anweisung zur Ungültigkeitserklärung der Adressübersetzung entsprechen. Das Verfahren in einem oder mehreren Aspekten umfasst ein Senden, in Reaktion auf die LPID der Anweisung zur Ungültigkeitserklärung der Adressübersetzung, die keiner der LPIDs in dem ausgehenden Filter entspricht, der Anweisung zur Ungültigkeitserklärung der Adressübersetzung aus dem Prozessor, von dem die Anweisung zur Ungültigkeitserklärung der Adressübersetzung ausgegeben wurde, an die anderen Prozessoren in dem System.
  • Das Verfahren umfasst in einer oder mehreren Ausführungsformen bevorzugt ein Verbreiten der Anweisung zur Ungültigkeitserklärung der Adressübersetzung auf einem prozessorübergreifenden Netzwerk, um die Anweisung zur Ungültigkeitserklärung der Adressübersetzung an die Prozessoren in dem System zu senden, die nicht dem Prozessor entsprechen, von dem die Anweisung zur Ungültigkeitserklärung der Adressübersetzung ausgegeben wurde; und in einem Aspekt ferner ein Bereitstellen einer eingehenden Filterliste auf jedem von der Mehrzahl von Prozessoren, wobei das eingehende Filter LPIDs identifiziert, die dem jeweiligen Prozessor und mindestens einem anderen Prozessor in dem System zugewiesen wurden; und Bestimmen, für jeden von den Prozessoren in dem System, die nicht dem Prozessor entsprechen, von dem die Anweisung zur Ungültigkeitserklärung der Adressübersetzung ausgegeben wurde, ob die LPID der Anweisung zur Ungültigkeitserklärung der Adressübersetzung mit irgendeiner der LPIDs in der eingehenden Filterliste übereinstimmt; und Senden, in Reaktion auf die LPID der Anweisung zur Ungültigkeitserklärung der Adressübersetzung, die mit irgendeiner der LPIDs in der eingehenden Filterliste übereinstimmt, der Anweisung zur Ungültigkeitserklärung der Adressübersetzung in den jeweiligen Prozessor. Gemäß einer Ausführungsform umfasst das Verfahren bevorzugt auch ein Prüfen der Anweisung zur Ungültigkeitserklärung der Adressübersetzung in Reaktion auf die LPID der Anweisung zur Ungültigkeitserklärung der Adressübersetzung, die mit irgendeiner der LPIDs in dem eingehenden Filter in den Prozessoren übereinstimmt; und Bestätigen, in Reaktion auf ein Abschließen der Prüfung in den Prozessoren, die eine LPID in ihrem eingehenden Filter haben, die mit der LPID der Anweisung zur Ungültigkeitserklärung der Adressübersetzung übereinstimmt, der Anweisung zur Ungültigkeitserklärung der Adressübersetzung für den jeweiligen Prozessor. In einem weiteren Aspekt umfasst das Verfahren ferner ein Bestätigen, in Reaktion auf die LPID der Anweisung zur Ungültigkeitserklärung der Adressübersetzung, die mit keiner der LPIDs in der eingehenden Filterliste übereinstimmt, der Anweisung zur Ungültigkeitserklärung der Adressübersetzung für den jeweiligen Prozessor.
  • Des Weiteren wird ein Verfahren zum Verarbeiten von Informationen in einem Verarbeitungssystem mit einer Mehrzahl von Prozessoren offenbart, das ein Ausgeben einer Anweisung zur Ungültigkeitserklärung der Adressübersetzung in einem von der Mehrzahl von Prozessoren in dem Verarbeitungssystem; ein Senden der Anweisung zur Ungültigkeitserklärung der Adressübersetzung aus dem Prozessor, von dem die Anweisung zur Ungültigkeitserklärung der Adressübersetzung ausgegeben wurde, an die anderen Prozessoren in dem System; Bereitstellen einer eingehenden Filterliste, die eine Liste mit logischen Partitionsidentifizierungen (LPIDs) verwaltet, die diesem Prozessor und mindestens einem anderen Prozessor in dem System zugewiesen sind; Bestimmen, für jeden von den Prozessoren in dem System, die nicht dem Prozessor entsprechen, von dem die Anweisung zur Ungültigkeitserklärung der Adressübersetzung ausgegeben wurde, ob die LPID der Anweisung zur Ungültigkeitserklärung der Adressübersetzung mit irgendeiner der LPIDs in der eingehenden Filterliste des jeweiligen Prozessors übereinstimmt; und Senden, in Reaktion auf die LPID der Anweisung zur Ungültigkeitserklärung der Adressübersetzung, die mit irgendeiner der LPIDs in der eingehenden Filterliste übereinstimmt, der Anweisung zur Ungültigkeitserklärung der Adressübersetzung in den Prozessor, der den eingehenden Filter mit der LPID aufweist, die mit der LPID auf der eingehenden Filterliste übereinstimmt. Das Verfahren weist ferner in einer Ausführungsform ein Prüfen der Anweisung zur Ungültigkeitserklärung der Adressübersetzung in den Prozessoren auf, die eine LPID auf ihrem eingehenden Filter haben, die mit der Anweisung zur Ungültigkeitserklärung der Adressübersetzung übereinstimmt; und Bestätigen, in Reaktion auf ein Abschließen der Prüfung in den Prozessoren, die eine übereinstimmende LPID in ihrem eingehenden Filter haben, die mit der LPID der Anweisung zur Ungültigkeitserklärung der Adressübersetzung übereinstimmt, der Anweisung zur Ungültigkeitserklärung der Adressübersetzung für den jeweiligen Prozessor.
  • Des Weiteren wird ein Verfahren zum Verarbeiten von Informationen in einem Verarbeitungssystem mit einer Mehrzahl von Prozessoren offenbart, das ein Ausgeben einer Anweisung zur Ungültigkeitserklärung der Adressübersetzung in einem von der Mehrzahl von Prozessoren in dem Verarbeitungssystem; ein Senden der Anweisung zur Ungültigkeitserklärung der Adressübersetzung aus dem Prozessor, von dem die Anweisung zur Ungültigkeitserklärung der Adressübersetzung ausgegeben wurde, an die anderen Prozessoren; Bereitstellen einer eingehenden Filterliste in einem oder mehreren Prozessoren, bevorzugt allen Prozessoren in dem System, das die eingehende Filterliste verwaltet und/oder eine Liste mit logischen Partitionsidentifizierungen (LPIDs) verwaltet, die sowohl diesem Prozessor als auch mindestens einem anderen Prozessor in dem System zugewiesen sind; Bestimmen, für jeden von den Prozessoren in dem System, abgesehen von dem Prozessor, von dem die Anweisung zur Ungültigkeitserklärung der Adressübersetzung ausgegeben wurde, ob die LPID der Anweisung zur Ungültigkeitserklärung der Adressübersetzung mit irgendeiner der LPIDs in der eingehenden Filterliste des jeweiligen Prozessor übereinstimmt; und Bestätigen, in Reaktion auf die LPID der Anweisung zur Ungültigkeitserklärung der Adressübersetzung, die mit keiner der LPIDs in der eingehenden Filterliste übereinstimmt, der Anweisung zur Ungültigkeitserklärung der Adressübersetzung für diesen jeweiligen Prozessor.
  • Das Verfahren umfasst des Weiteren optional in einem Aspekt eines Verwendens eines eingehenden Filters ein Bereitstellen einer ausgehenden Filterliste, die eine Liste mit logischen Partitionsidentifizierungen (LPIDs) verwaltet, die ausschließlich diesem Prozessor mit der ausgehenden Filterliste zugewiesen sind; Prüfen der ausgehenden Filterliste in dem Prozessor, von dem die Anweisung zur Ungültigkeitserklärung der Adressübersetzung ausgegeben wurde oder von dem sie stammte; Bestimmen, ob die LPID der Anweisung zur Ungültigkeitserklärung der Adressübersetzung mit irgendeiner der LPIDs in der ausgehenden Filterliste des Prozessors übereinstimmt; Bestätigen der Anweisung zur Ungültigkeitserklärung der Adressübersetzung für das System in mindestens einer Teilantwort an die LPID der Anweisung zur Ungültigkeitserklärung der Adressübersetzung, die mit irgendeiner der LPIDs in der ausgehenden Filterliste übereinstimmt.
  • Das Verfahren in einer Ausführungsform umfasst auch ein Verwalten und Aktualisieren der ausgehenden und eingehenden Filterlisten unter Verwendung von Software. Das Verfahren weist in einem Aspekt die ausgehende Filterliste und die eingehende Filterliste als Teil eines Filterkonstrukts auf einem Netzwerkadapter in jeder der Mehrzahl von Prozessoren in dem System auf.
  • Eine oder mehrere Ausführungsformen der vorliegenden Offenbarung können ein System, ein Verfahren und/oder ein Computerprogrammprodukt sein. Das Computerprogrammprodukt kann ein durch einen Computer lesbares Speichermedium (oder -medien) enthalten, auf dem durch einen Computer lesbare Programmanweisungen gespeichert sind, um einen Prozessor dazu zu veranlassen, Aspekte der vorliegenden Offenbarung auszuführen.
  • Bei dem durch einen Computer lesbaren Speichermedium kann es sich um eine physische Einheit handeln, die Anweisungen zur Verwendung durch eine Einheit zum Ausführen von Anweisungen beibehalten und speichern kann. Das durch einen Computer lesbare Speichermedium kann zum Beispiel eine elektronische Speichereinheit, eine magnetische Speichereinheit, eine optische Speichereinheit, eine elektromagnetische Speichereinheit, eine Halbleiter-Speichereinheit oder jede geeignete Kombination aus dem Vorgenannten sein, es ist aber nicht darauf beschränkt. Zu einer nicht erschöpfenden Liste von spezifischeren Beispielen des durch einen Computer lesbaren Speichermediums gehören die Folgenden: eine tragbare Computerdiskette, eine Festplatte, ein Direktzugriffsspeicher (RAM), ein Nur-Lese-Speicher (ROM), ein löschbarer programmierbarer Nur-Lese-Speicher (EPROM bzw. Flash-Speicher), ein statischer Direktzugriffsspeicher (SRAM), ein tragbarer CD-ROM, eine DVD, ein Speicher-Stick, eine Diskette, eine mechanisch codierte Einheit wie zum Beispiel Lochkarten oder erhabene Strukturen in einer Rille, auf denen Anweisungen gespeichert sind, und jede geeignete Kombination des Vorgenannten. Ein durch einen Computer lesbares Speichermedium soll, wie hierin verwendet, nicht als flüchtige Signale an sich aufgefasst werden, wie zum Beispiel Funkwellen oder andere sich frei ausbreitende elektromagnetische Wellen, elektromagnetische Wellen, die sich durch einen Wellenleiter oder andere Übertragungsmedien ausbreiten (z.B. durch ein Lichtwellenleiterkabel geleitete Lichtimpulse) oder durch einen Draht übertragene elektrische Signale.
  • Hierin beschriebene durch einen Computer lesbare Programmanweisungen können von einem durch einen Computer lesbaren Speichermedium auf jeweilige Datenverarbeitungs-/Verarbeitungseinheiten oder über ein Netzwerk wie zum Beispiel das Internet, ein lokales Netzwerk, ein Weitverkehrsnetzwerk und/oder ein drahtloses Netzwerk auf einen externen Computer oder eine externe Speichereinheit heruntergeladen werden. Das Netzwerk kann Kupferübertragungskabel, Lichtwellenübertragungsleiter, drahtlose Übertragung, Leitwegrechner, Firewalls, Vermittlungseinheiten, Gateway-Computer und/oder Edge-Server aufweisen. Eine Netzwerkadapterkarte oder Netzwerkschnittstelle in jeder Datenverarbeitungs-/Verarbeitungseinheit empfängt durch einen Computer lesbare Programmanweisungen aus dem Netzwerk und leitet die durch einen Computer lesbaren Programmanweisungen zur Speicherung in einem durch einen Computer lesbaren Speichermedium innerhalb der entsprechenden Datenverarbeitungs-/Verarbeitungseinheit weiter.
  • Bei durch einen Computer lesbaren Programmanweisungen zum Ausführen von Arbeitsschritten der vorliegenden Offenbarung kann es sich um Assembler-Anweisungen, ISA-Anweisungen (Instruction-Set-Architecture), Maschinenanweisungen, maschinenabhängige Anweisungen, Mikrocode, Firmware-Anweisungen, zustandssetzende Daten oder entweder Quellcode oder Objektcode handeln, die in einer beliebigen Kombination aus einer oder mehreren Programmiersprachen geschrieben sind, darunter objektorientierte Programmiersprachen wie Smalltalk, C++ o.ä. sowie herkömmliche prozedurale Programmiersprachen wie die Programmiersprache „C“ oder ähnliche Programmiersprachen. Die durch einen Computer lesbaren Programmanweisungen können vollständig auf dem Computer des Benutzers, teilweise auf dem Computer des Benutzers, als eigenständiges Software-Paket, teilweise auf dem Computer des Benutzers und teilweise auf einem entfernt angeordneten Computer oder vollständig auf dem entfernt angeordneten Computer oder Server ausgeführt werden. In dem letzteren Szenario kann der entfernt angeordnete Computer mit dem Computer des Benutzers durch jeden Typ von Netzwerk verbunden werden, darunter ein lokales Netzwerk (LAN) oder ein Weitverkehrsnetzwerk (WAN), oder die Verbindung kann zu einem externen Computer hergestellt werden (zum Beispiel über das Internet unter Verwendung eines Internet-Dienstanbieters). In einigen Ausführungsformen können elektronische Schaltungen, darunter zum Beispiel programmierbare Logikschaltungen, feldprogrammierbare Gatter-Anordnungen (FPGA, field programmable gate arrays) oder programmierbare Logikanordnungen (PLA, programmable logic arrays) die computerlesbaren Programmanweisungen ausführen, indem sie Zustandsinformationen der computerlesbaren Programmanweisungen nutzen, um die elektronischen Schaltungen zu personalisieren, um Aspekte der vorliegenden Offenbarung durchzuführen.
  • Aspekte der vorliegenden Offenbarung werden hierin unter Bezugnahme auf Veranschaulichungen von Ablaufplänen und/oder Blockschaubildern von Verfahren, Vorrichtungen (Systemen) und Computerprogrammprodukten gemäß Ausführungsformen der Offenbarung beschrieben. Es sollte klar sein, dass jeder Block der Ablaufplanveranschaulichungen und/oder der Blockschaubilder und Kombinationen von Blöcken in den Ablaufplanveranschaulichungen und/oder den Blockschaubildern mittels durch einen Computer lesbare Programmanweisungen umgesetzt werden können.
  • Diese durch einen Computer lesbaren Programmanweisungen können einem Prozessor eines Universalcomputers, eines Spezialcomputers oder einer anderen programmierbaren Datenverarbeitungsvorrichtung bereitgestellt werden, um eine Maschine zu erzeugen, sodass die über den Prozessor des Computers bzw. eine andere programmierbare Datenverarbeitungsvorrichtung ausgeführten Anweisungen ein Mittel zur Umsetzung der in dem Block bzw. den Blöcken der Ablaufpläne und/oder der Blockschaubilder angegebenen Funktionen/Schritte erzeugen. Diese durch einen Computer lesbaren Programmanweisungen können auch auf einem durch einen Computer lesbaren Speichermedium gespeichert sein, das einen Computer, eine programmierbare Datenverarbeitungsvorrichtung und/oder andere Einheiten so steuern kann, dass sie auf eine bestimmte Art funktionieren, sodass das durch einen Computer lesbare Speichermedium, auf dem Anweisungen gespeichert sind, ein Herstellungsprodukt aufweist, darunter Anweisungen, die Aspekte der/des in dem Block bzw. den Blöcken des Ablaufplans und/oder der Blockschaubilder angegebenen Funktion/Schritts umsetzen.
  • Die durch einen Computer lesbaren Programmanweisungen können auch auf einen Computer, eine andere programmierbare Datenverarbeitungsvorrichtung oder eine andere Einheit geladen werden, um das Ausführen einer Reihe von Arbeitsschritten auf dem Computer bzw. der anderen programmierbaren Vorrichtung oder anderen Einheit zu verursachen, um einen durch einen Computer umgesetzten Prozess zu erzeugen, sodass die auf dem Computer, einer anderen programmierbaren Vorrichtung oder einer anderen Einheit ausgeführten Anweisungen die in dem Block bzw. den Blöcken der Ablaufpläne und/oder der Blockschaubilder angegebenen Funktionen/Schritte umsetzen.
  • Der Ablaufplan und die Blockschaubilder in den Figuren veranschaulichen die Architektur, die Funktionalität und den Betrieb von möglichen Umsetzungen von Systemen, Verfahren und Computerprogrammprodukten gemäß verschiedenen Ausführungsformen der vorliegenden Offenbarung. In diesem Zusammenhang kann jeder Block in den Ablaufplänen oder den Blockschaubildern ein Modul, ein Segment oder einen Teil von Anweisungen darstellen, die eine oder mehrere ausführbare Anweisungen zum Umsetzen der bestimmten logischen Funktion(en) aufweisen. In einigen alternativen Umsetzungen können die in dem Block angegebenen Funktionen in einer anderen Reihenfolge als in den Figuren gezeigt auftreten. Zum Beispiel können zwei nacheinander gezeigte Blöcke im Wesentlichen parallel ausgeführt werden, oder die Blöcke können manchmal in der umgekehrten Reihenfolge ausgeführt werden, was von der beteiligten Funktionalität abhängt. Es ist ferner anzumerken, dass jeder Block der Blockschaubilder und/oder der Ablaufplandarstellungen sowie Kombinationen von Blöcken in den Blockschaubildern und/oder der Ablaufplandarstellung durch spezielle auf Hardware beruhende Systeme umgesetzt werden können, welche die angegebenen Funktionen oder Handlungen durchführen oder Kombinationen aus Spezial-Hardware und Computeranweisungen ausführen.
  • Des Weiteren kann ein System gemäß verschiedenen Ausführungsformen einen Prozessor und Logik enthalten, die in den Prozessor integriert und/oder von diesem ausführbar ist, wobei die Logik so konfiguriert ist, dass sie einen oder mehrere der hierin genannten Prozessschritte ausführt. Mit „integriert“ ist gemeint, dass in den Prozessor Logik als Hardware-Logik eingebettet ist, wie beispielsweise eine anwendungsspezifische integrierte Schaltung (ASIC), ein feldprogrammierbares Gate-Array (FPGA) usw. Mit „durch den Prozessor ausführbar“ ist gemeint, dass die Logik Hardware-Logik; Software-Logik wie zum Beispiel Firmware, Teil eines Betriebssystems, Teil eines Anwendungsprogramms usw.; oder eine Kombination aus Hardware- und Software-Logik ist, auf die durch den Prozessor zugegriffen werden kann und die konfiguriert ist, um den Prozessor zu veranlassen, eine Funktionalität bei Ausführung durch den Prozessor auszuführen. Software-Logik kann auf einem lokalen und/oder entfernt angeordneten Arbeitsspeicher jedes Arbeitsspeichertyps gespeichert werden, wie im Stand der Technik bekannt. Jeder im Stand der Technik bekannte Prozessor kann verwendet werden, wie zum Beispiel ein Software-Prozessormodul und/oder ein Hardware-Prozessor wie eine ASIC, ein FPGA, eine Zentraleinheit (CPU), eine integrierte Schaltung (IC), eine Grafikverarbeitungseinheit (GPU) usw.
  • Die entsprechenden Strukturen, Materialien, und Entsprechungen aller Mittel oder Schritt-plus-Funktion-Elemente in den nachstehenden Ansprüchen sollen alle Strukturen, Materialien oder Handlungen zum Ausführen der Funktion in Kombination mit anderen beanspruchten Elementen enthalten, wie speziell beansprucht. Die Beschreibung der Ausführungsformen der vorliegenden Offenbarung wurde zum Zweck der Veranschaulichung und Beschreibung erstellt, sie soll aber keineswegs erschöpfend oder auf die Ausführungsformen in der offenbarten Form eingeschränkt sein. Für Fachleute sind viele Modifizierungen und Variationen offenkundig, die nicht von dem Schutzumfang und Erfindungsgedanken der Offenbarung abweichen. Die Ausführungsformen und Beispiele wurden ausgewählt und beschrieben, um die Grundgedanken der Offenbarung und die praktische Anwendung am besten zu erklären und es anderen Fachleuten zu ermöglichen, die Offenbarung für verschiedene Ausführungsformen mit verschiedenen Modifizierungen zu verstehen, die für die vorgesehene bestimmte Verwendung geeignet sind.
  • Die hierin beschriebenen Programme werden auf Grundlage der Anwendung identifiziert, für die sie in einer bestimmten Ausführungsform der Offenbarung umgesetzt werden. Es sollte jedoch klar sein, dass jede bestimmte Programm-Nomenklatur hierin aus rein praktischen Gründen verwendet wird, und die Offenbarung somit nicht allein auf die Verwendung in einer bestimmten identifizierten Anwendung und/oder durch eine derartige Nomenklatur umgesetzt eingeschränkt sein soll.
  • Es sollte klar sein, dass die verschiedenen Merkmale der vorstehend aufgeführten Systeme und/oder Methodiken auf jede Weise kombiniert werden können, wodurch eine Mehrzahl von Kombinationen aus den oben angegebenen Beschreibungen geschaffen wird.
  • Es sollte ferner klar sein, dass Ausführungsformen der vorliegenden Offenbarung in der Form eines Service bereitgestellt werden können, der für einen Kunden zum Bereitstellen von bedarfsgesteuertem Service eingerichtet wird.
  • Die Beschreibungen der verschiedenen Ausführungsformen der vorliegenden Offenbarung wurden zum Zweck der Veranschaulichung erstellt, sie sollen aber keineswegs erschöpfend oder auf die offenbarten Ausführungsformen eingeschränkt sein. Für Fachleute sind viele Modifizierungen und Variationen offenkundig, die nicht von dem Schutzumfang und Erfindungsgedanken der beschriebenen Ausführungsformen abweichen. Die hierin verwendete Terminologie wurde gewählt, um die Grundgedanken der Ausführungsformen, die praktische Anwendung oder technische Verbesserung gegenüber auf dem Markt gefundenen Technologien bestmöglich zu erklären oder anderen Fachleuten das Verständnis der hierin offenbarten Ausführungsformen zu ermöglichen.
  • ZITATE ENTHALTEN IN DER BESCHREIBUNG
  • Diese Liste der vom Anmelder aufgeführten Dokumente wurde automatisiert erzeugt und ist ausschließlich zur besseren Information des Lesers aufgenommen. Die Liste ist nicht Bestandteil der deutschen Patent- bzw. Gebrauchsmusteranmeldung. Das DPMA übernimmt keinerlei Haftung für etwaige Fehler oder Auslassungen.
  • Zitierte Patentliteratur
    • AU 214 A [0024, 0028]
    • AU 202 A [0028]

Claims (25)

  1. Informationsbearbeitungssystem mit einer Mehrzahl von Prozessoren, die durch ein prozessorübergreifendes Netzwerk verbunden sind, wobei jeder von der Mehrzahl von Prozessoren aufweist: einen oder mehrere Adressübersetzungspuffer, wobei jeder Adressübersetzungspufferspeicher mit einer Mehrzahl von Adressübersetzungseinträgen Adressübersetzungsinformationen enthält; ein Filterkonstrukt mit einer ausgehenden Filterliste, die logische Partitionsidentifizierungen (LIPDs) identifiziert, die ausschließlich diesem Prozessor zugewiesen sind; wobei das System in Betrieb dafür ausgelegt und konfiguriert ist zum: Ausgeben einer Anweisung zur Ungültigkeitserklärung der Adressübersetzung mit einer LPID in einem von der Mehrzahl von Prozessoren in dem Verarbeitungssystem; Prüfen der ausgehenden Filterliste in dem Prozessor, von dem die Anweisung zur Ungültigkeitserklärung der Adressübersetzung ausgegeben wurde; Bestimmen, ob die LPID der Anweisung zur Ungültigkeitserklärung der Adressübersetzung mit irgendeiner der LPIDs in der ausgehenden Filterliste übereinstimmt; und Bestätigen, in mindestens einer Teilantwort an die LPID der Anweisung zur Ungültigkeitserklärung der Adressübersetzung, die mit irgendeiner der LPIDs in der ausgehenden Filterliste übereinstimmt, der Anweisung zur Ungültigkeitserklärung der Adressübersetzung für das System.
  2. Informationsbearbeitungssystem nach Anspruch 1, wobei das System in Betrieb ferner dafür ausgelegt und konfiguriert ist zum: Prüfen in dem einen oder den mehreren Übersetzungspuffern in dem Prozessor, von dem die Anweisung zur Ungültigkeitserklärung der Adressübersetzung ausgegeben wird, auf Adressübersetzungseinträge, die der Anweisung zur Ungültigkeitserklärung der Adressübersetzung entsprechen.
  3. Informationsbearbeitungssystem nach Anspruch 1, wobei das System in Betrieb ferner dafür ausgelegt und konfiguriert ist zum: Senden, in Reaktion auf die LPID der Anweisung zur Ungültigkeitserklärung der Adressübersetzung, die keiner der LPIDs in dem ausgehenden Filter entspricht, der Anweisung zur Ungültigkeitserklärung der Adressübersetzung aus dem Prozessor, von dem die Anweisung zur Ungültigkeitserklärung der Adressübersetzung ausgegeben wurde, an die anderen Prozessoren in dem System.
  4. Informationsbearbeitungssystem nach Anspruch 1, wobei das System in Betrieb ferner dafür ausgelegt und konfiguriert ist zum: Verbreiten der Anweisung zur Ungültigkeitserklärung der Adressübersetzung auf dem prozessorübergreifenden Netzwerk, um die Anweisung zur Ungültigkeitserklärung der Adressübersetzung an die Prozessoren in dem System zu senden, die nicht dem Prozessor entsprechen, von dem die Anweisung zur Ungültigkeitserklärung der Adressübersetzung ausgegeben wurde.
  5. Informationsbearbeitungssystem nach Anspruch 1, wobei das Filterkonstrukt ferner eine eingehende Filterliste aufweist, die die LPIDs identifiziert, die diesem Prozessor und mindestens einen anderen Prozessor in dem System zugewiesen sind, und das System in Betrieb ferner dafür ausgelegt und konfiguriert ist zum: Bestimmen, für jeden von der Mehrzahl von Prozessoren in dem System, die nicht dem Prozessor entsprechen, von dem die Anweisung zur Ungültigkeitserklärung der Adressübersetzung ausgegeben wurde, ob die LPID der Anweisung zur Ungültigkeitserklärung der Adressübersetzung mit irgendeiner der LPIDs in der eingehenden Filterliste des jeweiligen Prozessors übereinstimmt; und Senden, in Reaktion auf die LPID der Anweisung zur Ungültigkeitserklärung der Adressübersetzung, die mit irgendeiner der LPIDs in der eingehenden Filterliste übereinstimmt, der Anweisung zur Ungültigkeitserklärung der Adressübersetzung an diesen Prozessor.
  6. Informationsbearbeitungssystem nach Anspruch 5, wobei das System in Betrieb ferner dafür ausgelegt und konfiguriert ist zum: Prüfen, in den Übersetzungspuffern in dem Prozessor, in dem die LPID der Anweisung zur Ungültigkeitserklärung der Adressübersetzung mit einer LPID in der eingehenden Filterliste übereinstimmt, auf Adressübersetzungseinträge, die der Anweisung zur Ungültigkeitserklärung der Adressübersetzung entsprechen; und Bestätigen, in Reaktion auf ein Abschließen der Prüfung in jedem Prozessor, der eine LPID in seiner eingehenden Filterliste hat, die mit der LPID der Anweisung zur Ungültigkeitserklärung der Adressübersetzung übereinstimmt, der Anweisung zur Ungültigkeitserklärung der Adressübersetzung für den jeweiligen Prozessor.
  7. Informationsbearbeitungssystem nach Anspruch 5, wobei das System in Betrieb ferner dafür ausgelegt und konfiguriert ist zum: Bestätigen, in Reaktion auf die LPID der Anweisung zur Ungültigkeitserklärung der Adressübersetzung, die mit keiner der LPIDs in der eingehenden Filterliste übereinstimmt, der Anweisung zur Ungültigkeitserklärung der Adressübersetzung für den jeweiligen Prozessor.
  8. Informationsbearbeitungssystem nach Anspruch 5, wobei das System in Betrieb ferner dafür ausgelegt und konfiguriert ist zum: Prüfen, in den Übersetzungspuffern in dem Prozessor, in dem die LPID der Anweisung zur Ungültigkeitserklärung der Adressübersetzung mit einer LPID in der eingehenden Filterliste übereinstimmt, auf Adressübersetzungseinträge, die der Anweisung zur Ungültigkeitserklärung der Adressübersetzung entsprechen; Bestätigen, in Reaktion auf ein Abschließen der Prüfung in jedem Prozessor, der eine LPID in seiner eingehenden Filterliste hat, die mit der LPID der Anweisung zur Ungültigkeitserklärung der Adressübersetzung übereinstimmt, der Anweisung zur Ungültigkeitserklärung der Adressübersetzung für den jeweiligen Prozessor; Bestätigen, in Reaktion auf die LPID der Anweisung zur Ungültigkeitserklärung der Adressübersetzung, die mit keiner der LPIDs in der eingehenden Filterliste übereinstimmt, der Anweisung zur Ungültigkeitserklärung der Adressübersetzung für den jeweiligen Prozessor.
  9. Informationsbearbeitungssystem nach Anspruch 5, wobei die ausgehenden und eingehenden Filterlisten dafür ausgelegt und konfiguriert sind, um unter Verwendung von Software aktualisiert und verwaltet zu werden.
  10. Informationsbearbeitungssystem nach Anspruch 5, wobei das Filterkonstrukt sich auf einem Netzwerkadapter befindet, der jeden der Prozessoren mit dem prozessorübergreifenden Netzwerk verbindet.
  11. Informationsbearbeitungssystem mit einer Mehrzahl von Prozessoren, die durch ein prozessorübergreifendes Netzwerk verbunden sind, wobei jeder von der Mehrzahl von Prozessoren aufweist: einen oder mehrere Adressübersetzungspuffer, wobei jeder Adressübersetzungspufferspeicher mit einer Mehrzahl von Adressübersetzungseinträgen Adressübersetzungsinformationen enthält; und ein Filterkonstrukt mit einer eingehenden Filterliste, die logische Partitionsidentifizierungen (LPIDs) identifiziert, die diesem Prozessor und mindestens einem anderen Prozessor in dem System zugewiesen sind, wobei das System in Betrieb dafür ausgelegt und konfiguriert ist zum: Ausgeben einer Anweisung zur Ungültigkeitserklärung einer Adressübersetzung in einem von der Mehrzahl von Prozessoren in dem Verarbeitungssystem; Senden der Anweisung zur Ungültigkeitserklärung einer Adressübersetzung aus dem Prozessor, von dem die Anweisung zur Ungültigkeitserklärung der Adressübersetzung ausgegeben wird, an die anderen Prozessoren in dem System; Bestimmen, für jeden von den Prozessoren in dem System, der nicht dem Prozessor entspricht, von dem die Anweisung zur Ungültigkeitserklärung der Adressübersetzung ausgegeben wurde, ob die LPID der Anweisung zur Ungültigkeitserklärung der Adressübersetzung mit irgendeiner der LPIDs in der eingehenden Filterliste des jeweiligen Prozessors übereinstimmt; und Senden, in Reaktion auf die LPID der Anweisung zur Ungültigkeitserklärung der Adressübersetzung, die mit irgendeiner der LPIDs in der eingehenden Filterliste übereinstimmt, der Anweisung zur Ungültigkeitserklärung der Adressübersetzung in den Prozessor, der das eingehende Filter mit der LPID aufweist, die mit der LPID auf der eingehenden Filterliste übereinstimmt.
  12. Informationsbearbeitungssystem nach Anspruch 11, wobei das System in Betrieb ferner dafür ausgelegt und konfiguriert ist zum: Prüfen, in den Übersetzungspuffern in dem Prozessor, bei dem die LPID der Anweisung zur Ungültigkeitserklärung der Adressübersetzung mit einer LPID auf dem eingehenden Filter übereinstimmt, auf Adressübersetzungseinträge, die der Anweisung zur Ungültigkeitserklärung der Adressübersetzung entsprechen; und Bestätigen, in Reaktion auf ein Abschließen der Prüfung in jedem Prozessor, der eine LPID in seinem eingehenden Filter hat, die mit der LPID der Anweisung zur Ungültigkeitserklärung der Adressübersetzung übereinstimmt, der Anweisung zur Ungültigkeitserklärung der Adressübersetzung für den jeweiligen Prozessor.
  13. Informationsbearbeitungssystem nach Anspruch 11, wobei das System in Betrieb ferner dafür ausgelegt und konfiguriert ist zum: Bestätigen, in Reaktion auf die LPID der Anweisung zur Ungültigkeitserklärung der Adressübersetzung, die mit keiner der LPIDs in der eingehenden Filterliste übereinstimmt, der Anweisung zur Ungültigkeitserklärung der Adressübersetzung für den jeweiligen Prozessor.
  14. Informationsbearbeitungssystem nach Anspruch 11, wobei das System in Betrieb ferner dafür ausgelegt und konfiguriert ist zum: Prüfen, in den Übersetzungspuffern in dem Prozessor, in dem die LPID der Anweisung zur Ungültigkeitserklärung der Adressübersetzung mit einer LPID in der eingehenden Filterliste übereinstimmt, auf Adressübersetzungseinträge, die der Anweisung zur Ungültigkeitserklärung der Adressübersetzung entsprechen; Bestätigen, in Reaktion auf ein Abschließen der Prüfung in jedem Prozessor, der eine LPID in seiner eingehenden Filterliste hat, die mit der LPID der Anweisung zur Ungültigkeitserklärung der Adressübersetzung übereinstimmt, der Anweisung zur Ungültigkeitserklärung der Adressübersetzung für den jeweiligen Prozessor; Bestätigen, in Reaktion auf die LPID der Anweisung zur Ungültigkeitserklärung der Adressübersetzung, die mit keiner der LPIDs in der eingehenden Filterliste übereinstimmt, der Anweisung zur Ungültigkeitserklärung der Adressübersetzung für den jeweiligen Prozessor.
  15. Informationsbearbeitungssystem nach Anspruch 11, wobei das System in Betrieb ferner dafür ausgelegt und konfiguriert ist zum: Prüfen in dem einen oder den mehreren Übersetzungspuffern in dem Prozessor, von dem die Anweisung zur Ungültigkeitserklärung der Adressübersetzung ausgegeben wird, auf Adressübersetzungseinträge, die der Anweisung zur Ungültigkeitserklärung der Adressübersetzung entsprechen; und Bestätigen, in Reaktion auf ein Abschließen der Prüfung in dem ausgebenden Prozessor, der Anweisung zur Ungültigkeitserklärung der Adressübersetzung für den ausgebenden Prozessor.
  16. Informationsbearbeitungssystem nach Anspruch 11, wobei das Filterkonstrukt ein ausgehendes Filter aufweist, das eine Liste von LPIDs verwaltet, die ausschließlich diesem Prozessor zugewiesen sind, und das System in Betrieb ferner dafür ausgelegt und konfiguriert ist zum: Prüfen der ausgehenden Filterliste in dem Prozessor, von dem die Anweisung zur Ungültigkeitserklärung der Adressübersetzung ausgegeben wurde; Bestimmen, ob die LPID der Anweisung zur Ungültigkeitserklärung der Adressübersetzung mit irgendeiner der LPIDs in der ausgehenden Filterliste übereinstimmt; und Bestätigen, in mindestens einer Teilantwort an die LPID der Anweisung zur Ungültigkeitserklärung der Adressübersetzung, die mit irgendeiner der LPIDs in der ausgehenden Filterliste übereinstimmt, der Anweisung zur Ungültigkeitserklärung der Adressübersetzung für das System.
  17. Informationsbearbeitungssystem nach Anspruch 16, wobei das System in Betrieb ferner dafür ausgelegt und konfiguriert ist zum: Senden, in Reaktion auf die LPID der Anweisung zur Ungültigkeitserklärung der Adressübersetzung, die keiner der LPIDs in dem ausgehenden Filter entspricht, der Anweisung zur Ungültigkeitserklärung der Adressübersetzung aus dem Prozessor, von dem die Anweisung zur Ungültigkeitserklärung der Adressübersetzung ausgegeben wurde, an die anderen Prozessoren in dem System.
  18. Informationsbearbeitungssystem nach Anspruch 16, wobei das System in Betrieb ferner dafür ausgelegt und konfiguriert ist zum: Verbreiten der Anweisung zur Ungültigkeitserklärung der Adressübersetzung auf dem prozessorübergreifenden Netzwerk, um die Anweisung zur Ungültigkeitserklärung der Adressübersetzung an die Prozessoren in dem System zu senden, die nicht dem Prozessor entsprechen, von dem die Anweisung zur Ungültigkeitserklärung der Adressübersetzung ausgegeben wurde.
  19. Informationsbearbeitungssystem nach Anspruch 11, wobei die eingehende Filterliste dafür ausgelegt und konfiguriert ist, um unter Verwendung von Software aktualisiert und verwaltet zu werden.
  20. Informationsbearbeitungssystem nach Anspruch 16, wobei die ausgehende Filterliste dafür ausgelegt und konfiguriert ist, um unter Verwendung von Software aktualisiert und verwaltet zu werden.
  21. Informationsbearbeitungssystem nach Anspruch 11, wobei das Filterkonstrukt sich auf einem Netzwerkadapter befindet, der jeden der Prozessoren mit dem prozessorübergreifenden Netzwerk verbindet.
  22. Informationsbearbeitungssystem mit einer Mehrzahl von Prozessoren, die durch ein prozessorübergreifendes Netzwerk verbunden sind, wobei jeder von der Mehrzahl von Prozessoren aufweist: einen oder mehrere Adressübersetzungspuffer, wobei jeder Adressübersetzungspufferspeicher mit einer Mehrzahl von Adressübersetzungseinträgen Adressübersetzungsinformationen enthält; und ein Filterkonstrukt mit einer ausgehenden Filterliste, die logische Partitionsidentifizierungen (LIPDs) identifiziert, die ausschließlich diesem Prozessor zugewiesen sind, wobei das System aufweist: ein oder mehrere durch einen Computer lesbare Speichermedien; und auf dem einen oder den mehreren durch einen Computer lesbaren Speichermedien gespeicherte Programmieranweisungen zur Ausführung durch mindestens einen von der Mehrzahl von Prozessoren, wobei die Programmanweisungen in Betrieb das System veranlassen zum: Ausgeben einer Anweisung zur Ungültigkeitserklärung der Adressübersetzung mit einer LPID in einem von der Mehrzahl von Prozessoren in dem Verarbeitungssystem; Prüfen der ausgehenden Filterliste in dem Prozessor, von dem die Anweisung zur Ungültigkeitserklärung der Adressübersetzung ausgegeben wurde; Bestimmen, ob die LPID der Anweisung zur Ungültigkeitserklärung der Adressübersetzung mit irgendeiner der LPIDs in der ausgehenden Filterliste übereinstimmt; und Bestätigen, in mindestens einer Teilantwort an die LPID der Anweisung zur Ungültigkeitserklärung der Adressübersetzung, die mit irgendeiner der LPIDs in der ausgehenden Filterliste übereinstimmt, der Anweisung zur Ungültigkeitserklärung der Adressübersetzung für das System.
  23. Informationsbearbeitungssystem nach Anspruch 22, wobei das System weitere Programmieranweisungen aufweist, die im Betrieb das System veranlassen zum: Prüfen in dem einen oder den mehreren Übersetzungspuffern in dem Prozessor, von dem die Anweisung zur Ungültigkeitserklärung der Adressübersetzung ausgegeben wird, auf Adressübersetzungseinträge, die der Anweisung zur Ungültigkeitserklärung der Adressübersetzung entsprechen.
  24. Informationsbearbeitungssystem nach Anspruch 22, wobei das System in Betrieb ferner dafür ausgelegt und konfiguriert ist zum: Senden, in Reaktion auf die LPID der Anweisung zur Ungültigkeitserklärung der Adressübersetzung, die keiner der LPIDs in dem ausgehenden Filter entspricht, der Anweisung zur Ungültigkeitserklärung der Adressübersetzung aus dem Prozessor, von dem die Anweisung zur Ungültigkeitserklärung der Adressübersetzung ausgegeben wurde; und Verbreiten der Anweisung zur Ungültigkeitserklärung der Adressübersetzung auf dem prozessorübergreifenden Netzwerk an die anderen Prozessoren in dem System, die nicht dem Prozessor entsprechen, von dem die Anweisung zur Ungültigkeitserklärung der Adressübersetzung ausgegeben wurde.
  25. Informationsbearbeitungssystem mit einer Mehrzahl von Prozessoren, die durch ein prozessorübergreifendes Netzwerk verbunden sind, wobei jeder von der Mehrzahl von Prozessoren aufweist: einen oder mehrere Adressübersetzungspuffer, wobei jeder Adressübersetzungspufferspeicher mit einer Mehrzahl von Adressübersetzungseinträgen Adressübersetzungsinformationen enthält; und ein Filterkonstrukt mit einem eingehenden Filter, das logische Partitionsidentifizierungen (LPIDs) identifiziert, die diesem Prozessor und mindestens einem anderen Prozessor in dem System zugewiesen sind, wobei das System in Betrieb dafür ausgelegt und konfiguriert ist zum: Ausgeben einer Anweisung zur Ungültigkeitserklärung der Adressübersetzung in einem von der Mehrzahl von Prozessoren in dem Verarbeitungssystem; Senden der Anweisung zur Ungültigkeitserklärung der Adressübersetzung aus dem Prozessor, von dem die Anweisung zur Ungültigkeitserklärung der Adressübersetzung ausgegeben wird, an die anderen Prozessoren in dem System; Bestimmen, für jeden von den Prozessoren in dem System, der nicht dem Prozessor entspricht, von dem die Anweisung zur Ungültigkeitserklärung der Adressübersetzung ausgegeben wurde, ob die LPID der Anweisung zur Ungültigkeitserklärung der Adressübersetzung mit irgendeiner der LPIDs in der eingehenden Filterliste des jeweiligen Prozessor übereinstimmt; und Bestätigen, in Reaktion auf die LPID der Anweisung zur Ungültigkeitserklärung der Adressübersetzung, die mit keiner der LPIDs in der eingehenden Filterliste übereinstimmt, der Anweisung zur Ungültigkeitserklärung der Adressübersetzung für den jeweiligen Prozessor.
DE112020000907.6T 2019-05-21 2020-04-29 Ungültigkeitserklärung eines adressübersetzungs-cache in einem mikroprozessor Active DE112020000907B4 (de)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US16/417,961 2019-05-21
US16/417,961 US10915456B2 (en) 2019-05-21 2019-05-21 Address translation cache invalidation in a microprocessor
PCT/IB2020/054031 WO2020234674A1 (en) 2019-05-21 2020-04-29 Address translation cache invalidation in a microprocessor

Publications (2)

Publication Number Publication Date
DE112020000907T5 true DE112020000907T5 (de) 2021-11-04
DE112020000907B4 DE112020000907B4 (de) 2023-03-30

Family

ID=73456751

Family Applications (1)

Application Number Title Priority Date Filing Date
DE112020000907.6T Active DE112020000907B4 (de) 2019-05-21 2020-04-29 Ungültigkeitserklärung eines adressübersetzungs-cache in einem mikroprozessor

Country Status (6)

Country Link
US (2) US10915456B2 (de)
JP (1) JP7459134B2 (de)
CN (1) CN113841124A (de)
DE (1) DE112020000907B4 (de)
GB (1) GB2599046B (de)
WO (1) WO2020234674A1 (de)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11663141B2 (en) * 2019-10-11 2023-05-30 Texas Instruments Incorporated Non-stalling, non-blocking translation lookaside buffer invalidation
CN115314340B (zh) * 2022-08-05 2023-07-11 科东(广州)软件科技有限公司 一种数据包的筛选方法、装置、电子设备和存储介质

Family Cites Families (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6044447A (en) 1998-01-30 2000-03-28 International Business Machines Corporation Method and apparatus for communicating translation command information in a multithreaded environment
US20050027960A1 (en) * 2003-07-31 2005-02-03 International Business Machines Corporation Translation look-aside buffer sharing among logical partitions
US20050273575A1 (en) 2004-06-02 2005-12-08 Mukherjee Shubhendu S Mechanism to invalidate data translation buffer entries a multiprocessor system
US7836258B2 (en) 2006-11-13 2010-11-16 International Business Machines Corporation Dynamic data cache invalidate with data dependent expiration
JP2008276654A (ja) 2007-05-02 2008-11-13 Hitachi Ltd 主記憶共有型マルチプロセッサ
US8356151B2 (en) 2008-02-01 2013-01-15 International Business Machines Corporation Reporting of partially performed memory move
US9086987B2 (en) 2012-09-07 2015-07-21 International Business Machines Corporation Detection of conflicts between transactions and page shootdowns
US9251088B2 (en) 2013-10-30 2016-02-02 Globalfoundries Inc. Mechanisms for eliminating a race condition between a hypervisor-performed emulation process requiring a translation operation and a concurrent translation table entry invalidation
US9323692B2 (en) * 2014-04-17 2016-04-26 International Business Machines Corporation Managing translation of a same address across multiple contexts using a same entry in a translation lookaside buffer
US9928119B2 (en) 2015-12-22 2018-03-27 International Business Machines Corporation Translation entry invalidation in a multithreaded data processing system
US10324858B2 (en) 2017-06-12 2019-06-18 Arm Limited Access control
EP3422192B1 (de) 2017-06-28 2020-08-12 Arm Ltd Adressübersetzungsdatenungültigkeitserklärung

Also Published As

Publication number Publication date
WO2020234674A1 (en) 2020-11-26
GB2599046A (en) 2022-03-23
US10915456B2 (en) 2021-02-09
JP7459134B2 (ja) 2024-04-01
JP2022533378A (ja) 2022-07-22
US11301392B2 (en) 2022-04-12
GB2599046B (en) 2022-12-28
US20210019262A1 (en) 2021-01-21
CN113841124A (zh) 2021-12-24
GB202117735D0 (en) 2022-01-19
US20200371951A1 (en) 2020-11-26
DE112020000907B4 (de) 2023-03-30

Similar Documents

Publication Publication Date Title
DE112019000629B4 (de) Koordination von cacheoperationen
DE112018002951B4 (de) Verwenden eines spurformatcodes in einem cache-steuerblock für eine spur in einem cache, um lese- und schreibanforderungen in bezug auf die spur im cache zu verarbeiten
DE69722079T2 (de) Ein Mehrrechnersystem mit Anordnung zum Durchführen von Blockkopieroperationen
DE112013000889B4 (de) Weiterleitungsfortschritts-Mechanismus für Speichervorgänge bei Vorhandensein von Ladekonflikten in einem Ladevorgänge begünstigenden System
DE102015118711B4 (de) Technologien zur Netzwerkpaketcacheverwaltung
DE112012005222T5 (de) Halbleiter-Datenspeicherverwaltung
DE112017005063T5 (de) Verwalten eines Speichers mit niedrigstem Kohärenzpunkt (LPC) mithilfe eines Dienstschichtadapters
DE102006032832A1 (de) Netzwerksystem und Verfahren zur Steuerung verteilter Speicher
DE112010001404T5 (de) Opportunistische Verbesserung einer MMIO-Anfrageabwicklung aufgrund eines Zielberichts von Raumerfordernissen
DE102013201079A1 (de) Mechanismus des Weiterleitungsfortschritts für Speichervorgänge beim Vorhandensein einer Überlastung in einem System, das Belastungen durch Zustandsänderungen begünstigt
DE112012001660T5 (de) Speicher-Checkpointing in einem System gespiegelter virtueller Maschinen
DE102014000372A1 (de) Verbesserte steuerung des prefetch-traffics
DE102008048421A1 (de) Zwischenspeichern einer Adressübersetzung und Verbesserung des Leistungsverhaltens eines I/O-Cache in virtualisierten Umgebungen
DE102012215918A1 (de) Spiegeln virtueller Maschinen von einem primären auf einen sekundären Host
DE112012004551T5 (de) Mehrkernverknüpfung in einem Netzprozessor
DE112014002754T5 (de) Effiziente Aufgabenplanung unter Verwendung eines Sperrmechanismus
DE112020000907T5 (de) Ungültigkeitserklärung eines adressübersetzungs-cache in einem mikroprozessor
DE102010044529A1 (de) Autonome Subsystem-Architektur
DE112018006769T5 (de) Erweiterte zwischenspeicherzuweisung basierend auf virtuellen knotenressourcen
DE102020134207A1 (de) Sichere Adressübersetzungsdienste unter Verwendung kryptographisch geschützter physischer Hostadressen
DE112012004926T5 (de) Gemeinsame Speichernutzung durch Prozessoren
DE112010002777T5 (de) Verzeichnis-Cache-Allokation basierend auf Snoop-Antwort-Informationen
DE102022107196A1 (de) Sichere direkte Peer-to-Peer-Speicherzugriffsanforderung zwischen Geräten
DE112020001089B4 (de) Verbessern von cache-trefferverhältnissen bei ausgewählten datenträgern in einem speichersystem
DE112018001589T5 (de) Edge-caching für kognitive anwendungen

Legal Events

Date Code Title Description
R012 Request for examination validly filed
R081 Change of applicant/patentee

Owner name: INTERNATIONAL BUSINESS MACHINES CORPORATION, A, US

Free format text: FORMER OWNER: INTERNATIONAL BUSINESS MACHINES CORPORATION, ARMONK, NY, US

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