DE112022000897T5 - Einheitliche speicheradressenumsetzung - Google Patents

Einheitliche speicheradressenumsetzung Download PDF

Info

Publication number
DE112022000897T5
DE112022000897T5 DE112022000897.0T DE112022000897T DE112022000897T5 DE 112022000897 T5 DE112022000897 T5 DE 112022000897T5 DE 112022000897 T DE112022000897 T DE 112022000897T DE 112022000897 T5 DE112022000897 T5 DE 112022000897T5
Authority
DE
Germany
Prior art keywords
translation
address
module
request
radix
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.)
Pending
Application number
DE112022000897.0T
Other languages
English (en)
Inventor
Charles Wait
David Campbell
Jake Truelove
Jody Joyner
Jon Kriegel
Glenn Kincaid
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 DE112022000897T5 publication Critical patent/DE112022000897T5/de
Pending legal-status Critical Current

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
    • G06F12/1009Address translation using page tables, e.g. page table structures
    • 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/1045Address translation using associative or pseudo-associative address translation means, e.g. translation look-aside buffer [TLB] associated with a data cache
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0864Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches using pseudo-associative means, e.g. set-associative or hashing
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0877Cache access modes
    • G06F12/0882Page mode
    • 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/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/1027Address translation using associative or pseudo-associative address translation means, e.g. translation look-aside buffer [TLB]
    • G06F12/1045Address translation using associative or pseudo-associative address translation means, e.g. translation look-aside buffer [TLB] associated with a data cache
    • G06F12/1054Address translation using associative or pseudo-associative address translation means, e.g. translation look-aside buffer [TLB] associated with a data cache the data cache being concurrently physically addressed
    • 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/1045Address translation using associative or pseudo-associative address translation means, e.g. translation look-aside buffer [TLB] associated with a data cache
    • G06F12/1063Address translation using associative or pseudo-associative address translation means, e.g. translation look-aside buffer [TLB] associated with a data cache the data cache being concurrently virtually addressed
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/15Use in a specific computing environment
    • G06F2212/151Emulated environment, e.g. virtual machine
    • 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/651Multi-level translation tables

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)
  • Executing Machine-Instructions (AREA)

Abstract

Ein einheitliches Speicheradressen-Umsetzungssystem umfasst ein Umsetzungswarteschlangenmodul, das dazu konfiguriert ist, verschiedene Modi von Umsetzungsanforderungen für eine reale Adresse (RA) eines physischen Speichers zu empfangen. Eine Umsetzungscache(XLTC)-Schnittstelle ist dazu konfiguriert, erfolgreiche Umsetzungsergebnisse für frühere Anforderungen für eine RA zu empfangen und das vorherige erfolgreiche Umsetzungsergebnis an das Umsetzungswarteschlangenmodul auszugeben. Eine Mehrzahl von Seitentabelleneintragsgruppen(PTEG)-Suchmodulen ist mit dem Umsetzungswarteschlangenmodul verbunden. Ein Modul zur Adresserzeugung mit einheitlicher Umsetzungs-Walk-Operation (UTWAG) ist dazu konfiguriert, eine Umsetzungshilfe für jeden Modus der unterschiedlichen Modi der Umsetzungsanforderung bereitzustellen. Eine Speicherschnittstelle ist zwischen dem UTWAG und dem physischen Speicher verbunden.

Description

  • TECHNISCHES GEBIET
  • Die vorliegende Erfindung betrifft allgemein Computersysteme und insbesondere die Verwaltung von Speichertabellen in einem Verarbeitungssystem, das mehrere Betriebssysteme unterstützt.
  • HINTERGRUND
  • In den letzten Jahren wurde im Betriebssystem einer Computerplattform eine Kombination aus Hardware und Software verwendet, um von einem Programm verwendete Speicheradressen, manchmal auch als virtuelle Adressen bezeichnet, in physische Adressen im Speicher des Computers abzubilden. Auf diese Weise erscheint der Hauptspeicher als einheitliche Segmente in einem zusammenhängenden Adressraum. Ein Betriebssystem verwaltet die virtuellen Adressräume und die Zuweisung von realem (physischem) Speicher zu virtuellem Speicher. Adressumsetzungshardware im Prozessor, manchmal auch als Speicherverwaltungseinheit (MMU) bezeichnet, setzt virtuelle Adressen in physische Adressen um. Die Software im Betriebssystem kann einen virtuellen Adressraum bereitstellen, der größer als die Kapazität des realen Speichers ist, wodurch mehr Speicher referenziert wird, als physisch in der Computerplattform vorhanden ist. Durch die Verwendung von virtuellem Speicher kann die Software mehr Speicher nutzen, als physisch verfügbar ist. Der virtuelle Speicher vereinfacht die Anwendungsprogrammierung, indem er die Fragmentierung des physischen Speichers verschleiert.
  • Heutige Computersysteme verwenden je nach Art des verwendeten Betriebssystems unterschiedliche Adressumsetzungsmechanismen. Um mehrere Computersystemumgebungen zu unterstützen, sollte die Adressumsetzungshardware mehrere Adressierungsmodi bei der Umsetzung einer effektiven Adresse (EA) in eine reale Adresse (RA) unterstützen. Wie hier verwendet, ist eine effektive Adresse (EA) die Adresse, die ein Programm sieht; eine virtuelle Adresse (VA) ist die vom Betriebssystem verwendete Adresse; und die reale Adresse (RA) ist die Adresse der tatsächlichen Speicherhardware. Bei der Umsetzung einer EA in eine RA führt ein Prozessor üblicherweise ein zeitintensives Verfahren durch, bei dem er eine Walk-Operation auf die Umsetzungstabellen anwendet, um die richtige Adresse zu finden, damit auf die entsprechende Speicheradresse zugegriffen werden kann. In der Seitentabelle speichert das Betriebssystem seine Zuordnungen von virtuellen Adressen (VA) zu physischen Adressen, wobei jede Zuordnung auch als Seitentabelleneintrag (PTE) bezeichnet wird. Das zeitintensive Verfahren der Konvertierung einer EA in eine VA und letztendlich eine RA kann viele Speicherlesevorgänge und Cachezugriffe erfordern und den Ablauf der Hardware-Threads oder des gesamten Prozessorkerns stoppen.
  • KURZDARSTELLUNG
  • Gemäß einem Aspekt der Erfindung umfasst ein einheitliches Speicheradressen-Umsetzungssystem ein Umsetzungswarteschlangenmodul, das dazu konfiguriert ist, unterschiedliche Modi von Umsetzungsanforderungen für eine reale Adresse (RA) eines physischen Speichers zu empfangen. Eine Umsetzungscache(XLTC)-Schnittstelle ist dazu konfiguriert, erfolgreiche Umsetzungsergebnisse für frühere Anforderungen für eine RA zu empfangen und das vorherige erfolgreiche Umsetzungsergebnis an das Umsetzungswarteschlangenmodul auszugeben. Eine Mehrzahl von Tabelleneintragsgruppen(PTEG)-Suchmodulen (z.B. für Seiten- und/oder Segmenteintragstabellengruppen PTEG und STEG) sind mit dem Umsetzungswarteschlangenmodul verbunden. Ein Modul zur Adresserzeugung mit einheitlicher Umsetzungs-Walk-Operation (UTWAG) ist dazu konfiguriert, eine Umsetzungshilfe für jeden Modus der unterschiedlichen Modi der Umsetzungsanforderung bereitzustellen. Eine Speicherschnittstelle ist zwischen dem UTWAG und dem physischen Speicher verbunden.
  • In einer Ausführungsform werden die XLTC-Schnittstelle, die PTEG-Suchmodule und das Umsetzungswarteschlangenmodul von allen Umsetzungshilfen des UTWAG-Moduls gemeinsam genutzt.
  • In einer Ausführungsform umfassen die Modi der Umsetzungsanforderungen mindestens eines von: einer Hash-Seitentabellen(HPT)-Anforderung; einer Segmenttabellenanforderung; einer nicht verschachtelten Radixanforderung; oder einer verschachtelten Radixanforderung.
  • In einer Ausführungsform wird jede der Umsetzungsanforderungen von einem Sequenzmodul des Umsetzungswarteschlangenmoduls verarbeitet.
  • In einer Ausführungsform ist das Sequenzmodul des Umsetzungswarteschlangenmoduls dazu konfiguriert, für eine Umlaufvermittlung zwischen den Umsetzungsanforderungen zu sorgen.
  • In einer Ausführungsform umfassen die Umsetzungshilfen des UTWAG-Moduls mindestens eines von: Erzeugen einer realen Adresse eines Partitionstabelleneintrags (PATE RA GEN); Erzeugen einer virtuellen Adresse einer Segmenttabelleneintragsgruppe (STEG VA GEN), das geeignet ist, für eine Umsetzung einer effektiven Adresse (EA) in eine virtuelle Adresse (VA) zu sorgen; Erzeugen einer realen Adresse einer Segmenttabelleneintragsgruppe (STEG RA GEN), das geeignet ist, eine virtuelle Zwischenadresse (STEG VA) für eine RA-Umsetzung zu definieren; Erzeugen einer realen Adresse einer Seitentabelleneintragsgruppe (PTEG RA GEN); Erzeugen einer realen Radix-Hostadresse (RADIX HOST RA GEN); oder Erzeugen einer realen Radix-Gastadresse (RADIX GUEST RA GEN).
  • In einer Ausführungsform ist eine endliche Zustandsmaschine mit jedem Umsetzungswarteschlangeneintrag verbunden.
  • In einer Ausführungsform wird die Zustandsmaschine von allen Umsetzungshilfen des UTWAG-Moduls gemeinsam genutzt.
  • Gemäß einem weiteren Aspekt der Erfindung umfasst ein Verfahren zum Bereitstellen einer einheitlichen Speicheradressumsetzung ein Empfangen einer Mehrzahl von Umsetzungsanforderungen für eine reale Adresse (RA) eines physischen Speichers durch ein Umsetzungswarteschlangenmodul. Jede der Mehrzahl von Umsetzungsanforderungen wird einem Umsetzungs-Walk-Warteschlangeneintrag des Umsetzungswarteschlangenmoduls zugewiesen. Für jeden Umsetzungs-Walk-Warteschlangeneintrag werden aus einer zugehörigen Umsetzungsanforderung eine virtuelle Startadresse (VA) und ein Umsetzungsmodus ermittelt. Die VA und der Umsetzungsmodus werden an ein Modul zur Adresserzeugung mit einheitlicher Umsetzungs-Walk-Operation (UTWAG) übergeben, das eine Mehrzahl von Umsetzungshilfen enthält, die unterschiedliche Umsetzungsmodi unterstützen. Die VA wird vom UTWAG-Modul auf Grundlage des Umsetzungsmodus in eine RA umgesetzt. Das UTWAG setzt die VA nicht selbst in eine RA um; stattdessen wird ein HPT-Umsetzungsablauf auf Grundlage einer HPT-Anforderung befolgt. Eine EA-VA-Umsetzung ist das Ziel einer „Segmenttabellenumsetzung“. Wenn eine „HPT-Umsetzung“ beginnt, wird auf den XLTC zugegriffen, um eine frühere EA-VA-Umsetzung und daraufhin einen Umsetzungs-Walk-Warteschlangeneintrag zu finden, wobei diese „Start-VA“ die Tabellen-Walk-Operationen ausführt, um die RA zu finden.
  • In einer Ausführungsform erfolgen die Mehrzahl von Umsetzungsanforderungen nicht in einem einheitlichen Modus.
  • In einer Ausführungsform umfasst die Mehrzahl von Umsetzungsanforderungen mindestens eines von: einer Hash-Seitentabellen(HPT)-Anforderung; einer Segmenttabellenanforderung; einer nicht verschachtelten Radixanforderung; oder einer verschachtelten Radixanforderung.
  • In einer Ausführungsform wird eine Umsetzungsanforderung der Mehrzahl von Umsetzungsanforderungen durch eine Umsetzungscache(XLTC)-Schnittstelle von einem Umsetzungscache (XLTC) empfangen, der geeignet ist, ein oder mehrere frühere erfolgreiche Umsetzungsergebnisse zu speichern.
  • In einer Ausführungsform werden die XLTC-Schnittstelle, ein oder mehrere Seitentabelleneintragsgruppen(PTEG)-Suchmodule und das Umsetzungswarteschlangenmodul von allen Umsetzungshilfen des UTWAG-Moduls gemeinsam genutzt.
  • In einer Ausführungsform erfolgt die Zuweisung jeder Umsetzungsanforderung zu einem der Mehrzahl von Umsetzungs-Walk-Warteschlangeneinträge, nachdem festgestellt wurde, dass im XLTC kein passendes vorheriges Ergebnis gefunden wurde.
  • In einer Ausführungsform ist jeder Umsetzungs-Walk-Warteschlangeneintrag für jeden Taktzyklus eines Prozessors unterschiedlich.
  • In einer Ausführungsform wird für eine Umlaufvermittlung zwischen den mehreren Umsetzungs-Walk-Warteschlangeneinträgen gesorgt.
  • In einer Ausführungsform stellen die Umsetzungshilfen des UTWAG-Moduls mindestens eines bereit von: Erzeugen einer realen Adresse eines Partitionstabelleneintrags (PATE RA GEN); Erzeugen einer virtuellen Adresse einer Segmenttabelleneintragsgruppe (STEG VA GEN), um für eine Umsetzung einer effektiven Adresse (EA) in eine virtuelle Adresse (VA) zu sorgen; Erzeugen einer realen Adresse einer Segmenttabelleneintragsgruppe (STEG RA GEN), um eine VA-RA-Umsetzung für die STEG VA zu definieren; Erzeugen einer realen Adresse einer Seitentabelleneintragsgruppe (PTEG RA GEN); Erzeugen einer realen Radix-Hostadresse (RADIX HOST RA GEN); oder Erzeugen einer realen Radix-Gastadresse (RADIX GUEST RA GEN).
  • In einer Ausführungsform ist eine endliche Zustandsmaschine mit jedem Umsetzungswarteschlangeneintrag verbunden.
  • In einer Ausführungsform wird die Zustandsmaschine von allen Umsetzungshilfen des UTWAG-Moduls gemeinsam genutzt.
  • Gemäß einem weiteren Aspekt der Erfindung enthält eine Computereinheit einen Prozessor, ein Umsetzungswarteschlangenmodul, das zum Empfangen verschiedener Modi von Umsetzungsanforderungen für eine reale Adresse (RA) eines physischen Speichers konfiguriert ist, eine Umsetzungscache(XLTC)-Schnittstelle, die zum Empfangen erfolgreicher Umsetzungsergebnisse für frühere Anforderungen nach einer RA und Ausgeben des vorherigen erfolgreichen Umsetzungsergebnisses an das Umsetzungswarteschlangenmodul konfiguriert ist, und eine Mehrzahl von Seitentabelleneintragsgruppen(PTEG)-Suchmodulen, die mit dem Umsetzungswarteschlangenmodul verbunden sind. Ein Speicher ist mit dem Prozessor verbunden. Im Speicher ist ein Softwaremodul zur Adresserzeugung mit einheitlicher Umsetzungs-Walk-Operation (UTWAG) gespeichert, wobei ein Ausführen des UTWAG durch den Prozessor die Computereinheit dazu konfiguriert, für jeden Modus der unterschiedlichen Modi der Umsetzungsanforderung einen Umsetzungsmodus bereitzustellen. Es ist eine Speicherschnittstelle vorgesehen, die zwischen dem UTWAG und dem physischen Speicher verbunden ist.
  • In einer Ausführungsform werden die XLTC-Schnittstelle, die PTEG-Suchmodule und das Umsetzungswarteschlangenmodul von allen Umsetzungshilfen des UTWAG-Moduls gemeinsam genutzt.
  • In einer Ausführungsform umfassen die Modi der Umsetzungsanforderungen mindestens eines von: einer Hash-Seitentabellen(HPT)-Anforderung; einer Segmenttabellenanforderung; einer nicht verschachtelten Radixanforderung; oder einer verschachtelten Radixanforderung.
  • In einer Ausführungsform umfassen die Umsetzungshilfen des UTWAG-Moduls mindestens eines von: Erzeugen einer realen Adresse eines Partitionstabelleneintrags (PATE RA GEN); Erzeugen einer virtuellen Adresse einer Segmenttabelleneintragsgruppe (STEG VA GEN), das geeignet ist, für eine Umsetzung einer effektiven Adresse (EA) in eine virtuelle Adresse (VA) zu sorgen; Erzeugen einer realen Adresse einer Segmenttabelleneintragsgruppe (STEG RA GEN), das geeignet ist, eine virtuelle Zwischenadresse (STEG VA) für eine RA-Umsetzung zu definieren; Erzeugen einer realen Adresse einer Seitentabelleneintragsgruppe (PTEG RA GEN); Erzeugen einer realen Radix-Hostadresse (RADIX HOST RA GEN); oder Erzeugen einer realen Radix-Gastadresse (RADIX GUEST RA GEN).
  • In einer Ausführungsform ist eine endliche Zustandsmaschine mit jedem Umsetzungswarteschlangeneintrag verbunden.
  • In einer Ausführungsform wird die Zustandsmaschine von allen Umsetzungshilfen des UTWAG-Moduls gemeinsam genutzt.
  • Durch die gemeinsame Nutzung verschiedener Hardware- und/oder Softwarekomponenten durch die unterschiedlichen Umsetzungsmodi wird für eine verbesserte Flächen- und Leistungseffizienz für die Adressumsetzung gesorgt. Tatsächlich führt die Verbindung des iterativen Verfahrens der Umsetzungs-Walk-Warteschlange mit dem UTWAG zu einer effizienten Nutzung der Chipfläche, einem verringerten Stromverbrauch und einer verbesserten Leistung für Umsetzungsanforderungen. Diese und weitere Merkmale werden aus der folgenden detaillierten Beschreibung von beispielhaften Ausführungsformen derselben ersichtlich, die zusammen mit den beigefügten Zeichnungen zu lesen ist.
  • KURZBESCHREIBUNG DER ZEICHNUNGEN
  • Die Zeichnungen zeigen beispielhafte Ausführungsformen. Sie zeigen nicht alle Ausführungsformen. Andere Ausführungsformen können zusätzlich oder stattdessen verwendet werden. Details, die offensichtlich oder unnötig sind, können aus Platzgründen oder zur besseren Darstellung weggelassen werden. Einige Ausführungsformen können mit zusätzlichen Komponenten oder Schritten und/oder ohne alle gezeigten Komponenten oder Schritte praktiziert werden. Wenn dasselbe Bezugszeichen in unterschiedlichen Zeichnungen erscheint, bezieht es sich auf dieselben oder ähnliche Komponenten oder Schritte.
    • 1 ist ein konzeptionelles Blockschema eines einheitlichen Speicheradressen-Umsetzungssystems gemäß einer beispielhaften Ausführungsform, das mehrere Umsetzungsmodi unterstützt.
    • 2 ist ein detaillierteres Blockschema eines einheitlichen Speicheradressen-Umsetzungssystems gemäß einer beispielhaften Ausführungsform, das mehrere Umsetzungsmodi unterstützt.
    • 3 ist ein beispielhafter Verfahrensablauf, der eine Hash-Seitentabellen(HPT)-Anforderung und eine Segmenttabellenanforderung unterstützt, während er verschiedene Komponenten des einheitlichen Umsetzungssystems von 2 gemeinsam nutzt.
    • 4 ist ein beispielhafter Verfahrensablauf, der sowohl verschachtelte als auch nicht verschachtelte Radixanforderungen unterstützt.
    • 5 zeigt ein Funktionsblockschema einer Computerhardwareplattform, die zum Hosten eines Moduls zur Adresserzeugung mit einheitlicher Umsetzungs-Walk-Operation (UTWAG) verwendet werden kann.
    • 6 zeigt eine Cloud-Computing-Umgebung gemäß einer beispielhaften Ausführungsform.
    • 7 zeigt Abstraktionsmodellschichten gemäß einer beispielhaften Ausführungsform.
  • DETAILLIERTE BESCHREIBUNG
  • In der folgenden detaillierten Beschreibung werden zahlreiche spezifische Details beispielhaft beschrieben, um ein umfassendes Verständnis der relevanten Lehren zu vermitteln. Es sollte jedoch klar sein, dass die vorliegenden Lehren auch ohne solche Einzelheiten praktiziert werden können. In anderen Fällen wurden bekannte Verfahren, Vorgänge, Komponenten und/oder Schaltungen auf einer relativ übergeordneten Ebene und ohne Details beschrieben, um Aspekte der vorliegenden Lehren nicht unnötig zu verschleiern.
  • Die vorliegende Offenbarung betrifft im Allgemeinen Systeme und Verfahren zum Verwalten von Speichertabellen in einem Verarbeitungssystem, das mehrere Betriebssysteme unterstützt. Heute gibt es Prozessorkerne, die unterschiedliche Betriebsumgebungen und virtuelle Maschinen unterstützen können. Beispielsweise kann ein Teil eines Computersystems einen Radixumsetzungsmodus ausführen, der eine Reihe verschachtelter Tabellen anstelle einer einzelnen großen Hash-Tabelle verwendet, um Seitentabelleneinträge für sein bestimmtes Betriebssystem (OS) zu finden, während ein anderer Teil des Systems einen Power-PC ausführt, der für das entsprechende Betriebssystem einen anderen Umsetzungsmodus verwendet. Beispielsweise kann ein Hypervisor, manchmal auch als Virtual Machine Monitor (VMM) bezeichnet, virtuelle Maschinen (VMs) erstellen und ausführen, indem er das Hypervisor-Betriebssystem und -Ressourcen von den virtuellen Maschinen isoliert und die Erstellung und Verwaltung dieser Maschinen ermöglicht, die auf anderen Betriebssystemen beruhen und gleichzeitig die gleiche Hardware nutzen können. Jedes Betriebssystem kann eine andere Adressumsetzung auf Grundlage unterschiedlicher Seitentabellen verwenden. Wenn ein Prozess Zugriff auf Daten in seinem Speicher anfordert, liegt es in der Verantwortung des Betriebssystems, die vom Prozess bereitgestellte virtuelle Adresse (VA) der physischen Adresse des tatsächlichen Speichers zuzuordnen, in dem diese Daten gespeichert sind. In der Seitentabelle speichert das Betriebssystem seine Abbildungen von virtuellen Adressen auf physische Adressen, wobei jede Abbildung auch als Seitentabelleneintrag (PTE) bezeichnet wird. Da unterschiedliche Betriebssysteme verwendet werden, kann es unterschiedliche Umsetzungseinheiten geben, die hier manchmal als Umsetzungsmodi bezeichnet werden.
  • Die PTEs werden üblicherweise verwendet, um die von einem Betriebssystem erfassten virtuellen Adressen in physische Adressen umzusetzen, die von der Hardware zum Verarbeiten von Anweisungen des Anwendungsprogramms verwendet werden. Die Hardware, die eine solche Umsetzung durchführt, wird manchmal als Speicherverwaltungseinheit (MMU) bezeichnet. Jeder Eintrag in einer Seitentabelle enthält einen Hinweis darauf, ob sich die entsprechende Seite im physischen Speicher befindet oder nicht. Wenn sie sich im physischen Speicher befindet, enthält der Seitentabelleneintrag die tatsächliche Speicheradresse, an der die Seite gespeichert ist. Wenn die Hardware auf eine Seite verweist und wenn der Seitentabelleneintrag für die Seite angibt, dass sie sich derzeit nicht im physischen Speicher befindet, löst die Hardware eine Seitenfehlerausnahme aus und ruft die Paging-Supervisor-Komponente des Betriebssystems auf, die später näher beschrieben wird.
  • Übliche Implementierungen verwenden für jeden Adressumsetzungsmodus aufgrund der Einzigartigkeit jedes Modus eine dedizierte Tabellen-Walk-Hardwarelogik. Es gibt getrennte Einheiten innerhalb eines Prozessors, jede mit ihren eigenen Schnittstellen zur Verarbeitung von Speicherzugriffen, Umsetzungsanforderungen zum Laden/Speichern von Daten und Befehlsabruf-Adressumsetzungsanforderungen.
  • In unterschiedlichen Szenarien können Systeme über eine Seitentabelle für das gesamte System, getrennte Seitentabellen für jede Anwendung, eine Baumstruktur von Seitentabellen für große Segmente oder eine Kombination davon verfügen. Wenn nur eine Seitentabelle vorhanden ist, verwenden unterschiedliche gleichzeitig laufende Anwendungen unterschiedliche Abschnitte eines einzigen virtuellen Adressbereichs. Wenn mehrere Seiten- oder Segmenttabellen vorhanden sind, gibt es mehrere virtuelle Adressräume, und gleichzeitige Anwendungen mit getrennten Seitentabellen verweisen auf unterschiedliche tatsächliche Adressen.
  • Mehrere Umsetzungseinheiten führen zu erhöhter Komplexität und Chipfläche, um die mehreren Schnittstellen unterzubringen. Auch Latenz und Leistung der Adressumsetzung wird beeinträchtigt, da die anfordernden Einheiten die speziellen Aspekte jeder Umsetzungseinheit handhaben. Beispielsweise kann die Segmenttabellenumsetzung Hash-Seitentabellen(HPT)-Zwischenumsetzungen umfassen, die eine Verarbeitung durch die anfordernde Einheit, eine getrennte Seitenbandschnittstelle zwischen Umsetzungseinheiten oder, schlimmer noch, eine Replikation der HPT-Umsetzungslogik erfordern können. Außerdem unterscheidet sich die Radixumsetzung insofern erheblich von HPT, dass sie eine Reihe verschachtelter Tabellen anstelle einer einzelnen großen Hash-Tabelle verwendet, um Seitentabelleneinträge(PTEs) zu finden, die die EA-RA-Umsetzung definieren. Bekannte Computersysteme unterstützen nicht mehrere Umsetzungsmodi, geschweige denn auf wirtschaftliche Weise.
  • Dementsprechend sehen die hierin enthaltenen Lehren in einem Computersystem und in Verfahren für einen Prozessor, der mehrere Adressumsetzungsmodi unterstützt, eine Umsetzungs-Walk-Warteschlange, die eine Mehrzahl von Anforderungen unterstützt, wobei sich jede Umsetzungs-Walk-Operation in einem anderen Modus und in unterschiedlichen Phasen im Umsetzungsablauf befinden kann, und einen einheitlichen Umsetzungs-Walk-Adressgenerator vor, der von den mehreren Umsetzungsmodi gemeinsam genutzt wird und alle für eine Umsetzung verwendeten Zwischenadressen bereitstellt. Durch die gemeinsame Nutzung verschiedener Hardware- und/oder Softwarekomponenten durch die unterschiedlichen Umsetzungsmodi wird für eine verbesserte Flächen- und Leistungseffizienz für die Adressumsetzung gesorgt. Die hier beschriebenen Techniken können auf verschiedene Arten implementiert werden. Im Folgenden werden Beispielimplementierungen unter Bezugnahme auf die folgenden Figuren angegeben.
  • Beispielarchitektur
  • Es wird nun auf 1 Bezug genommen, die ein konzeptionelles Blockschema eines einheitlichen Speicheradressen-Umsetzungssystems 100 gemäß einer beispielhaften Ausführungsform ist, das mehrere Umsetzungsmodi unterstützt. Das einheitliche Adressumsetzungssystem 100 erleichtert eine gemeinsame Nutzung verschiedener Umsetzungsblöcke, ohne dass Logik- und Hardwarekomponenten repliziert werden müssen. Das System 100 umfasst eine Mehrzahl von Lade/Speicher-Einheiten, dargestellt durch die Blöcke 102 und 104, die Einheiten im Prozessorkern bezeichnen, die dazu dienen, Daten zu empfangen und diese in ein Register zu schreiben, dargestellt durch den physischen Speicher 114. Zu diesem Zweck verfügen diese Einheiten 102 und 104 über eine effektive Adresse (EA), die in eine physische Adresse umgesetzt werden soll, die hier manchmal als reale Adresse (RA) des (physischen) Speichers 114 bezeichnet wird. Auf Grundlage des Betriebssystems (OS), das von der entsprechenden Lade/Speicher-Einheit 102 oder 104 verwendet wird, kann es verschiedene Verfahren zur Umsetzung der EA in eine RA geben, dargestellt durch die Mehrzahl von Umsetzungseinheiten 106 bis 112. In verschiedenen Szenarien kann eine Hash-Seitentabellen(HPT)-Umsetzung, eine Segmenttabellenumsetzung 108, eine nicht verschachtelte Radixumsetzung 110 oder eine verschachtelte Radixumsetzungstabelle 112 verwendet werden.
  • Manche zu einer Lade/Speicher-Einheit gehörigen Prozessorarchitekturen können zur dynamisch Abbildung virtueller Speicheradressen auf physische eine Hash-Seitentabelle (HPT) verwenden. Beispielsweise wird bei einer HPT die virtuelle Seitennummer in der virtuellen Adresse in die Hash-Tabelle gehasht. HPTs können beispielsweise zur Verarbeitung von Adressräumen mit mehr als 32 Bit verwendet werden. Jeder Eintrag in der Hash-Tabelle besteht aus einer Gruppe von PTEs oder PTEGs, wobei jeder PTE eine VA und eine entsprechende RA enthält. Wenn die VA mit einer PTE-VA übereinstimmt, wird auf die entsprechende RA zugegriffen, so dass die HPT die RA im Speicher 114 ausgeben kann.
  • Manche Prozessorarchitekturen können zur dynamischen Abbildung virtueller Speicheradressen auf physische eine Radixbaumstruktur-Seitentabelle (z.B. 110 oder 112) verwenden. Das Betriebssystem verwaltet physische Ressourcen in festen Zuordnungseinheiten in der Größe einer Seite, wobei die Adressumsetzung vom Betriebssystem bestimmt und in der Radixbaumstruktur-Seitentabelle gespeichert wird. Das Abbilden einer vom Betriebssystem verwendeten virtuellen Adresse auf eine physische Adresse (d.h. RA) des Speichers 114 erfordert ein Durchlaufen der Radixbaumstruktur, was hier manchmal als „Walk-Operation der Seitentabelle“ bezeichnet wird und mehrere Speicherzugriffe umfassen kann. Beispielsweise können für einen einzelnen Ladevorgang mehrere Speicherzugriffe für die Umsetzung und den Datenabruf erforderlich sein.
  • Während zur Vermeidung von Unübersichtlichkeit in 1 vier Adressumsetzungseinheiten (d.h. 106 bis 112) gezeigt sind, versteht es sich, dass durch die hierin enthaltenen Lehren zusätzliche Adressumsetzungseinheiten unterstützt werden. Herkömmlicherweise wäre jede der Adressumsetzungseinheiten 106 bis 112 unabhängig und würde keine Komponenten gemeinsam nutzen, was zu zusätzlicher Komplexität, Chipfläche und Stromverbrauch führt. Im Gegensatz dazu erleichtern die Lehren hierin die gemeinsame Nutzung verschiedener Umsetzungsblöcke eines Umsetzungssystems, ohne dass Logik- und Hardwarekomponenten repliziert werden müssen, wie im Kontext der Beschreibung von 2 unten besser verständlich wird.
  • 2 ist ein detaillierteres Blockschema eines einheitlichen Speicheradressen-Umsetzungssystems 200 gemäß einer beispielhaften Ausführungsform, das mehrere Umsetzungsmodi unterstützt. Es ist ein Umsetzungswarteschlangenmodul 230 vorgesehen, das so konfiguriert ist, dass es Adressumsetzungsanforderungen empfängt, die einen beliebigen Modus aufweisen können. Beispielsweise kann es sich bei der Umsetzungsanforderung um eine Hash-Seitentabellen(HPT)-Umsetzungsanforderung, eine Segmenttabellen-Umsetzungsanforderung, eine nicht verschachtelte Radixanforderung, eine verschachtelte Radixanforderung usw. handeln. Es ist eine Umsetzungscache(XLTC)-Schnittstelle 206 vorgesehen, die dazu konfiguriert ist, eine umgesetzte Cache-Anforderung von einem Umsetzungscache 204 zu erhalten und sie an das Umsetzungswarteschlangenmodul 230 auszugeben. Der Umsetzungscache (XLTC) 204 ist geeignet, frühere erfolgreiche Umsetzungsergebnisse zu speichern. Beispielsweise kann der XLTC 204 verschiedene Arten vorheriger Umsetzungen enthalten, etwa EA nach VA, VA nach RA und EA nach RA. Ein Seitentabelleneintragsgruppen(PTEG)-Suchmodul 208 und/oder ein Segmenttabelleneintragsgruppen-Modul 210 sind vorgesehen, die mit dem Umsetzungswarteschlangenmodul 230 verbunden sind. Eine STEG ist eine Gruppe von STEs. Eine Segmenttabellenumsetzung durchsucht auf ähnliche Weise eine STEG nach einem STE. Beispielsweise werden Segmenttabelleneinträge verwendet, um eine EA in eine VA umzusetzen.
  • Das Umsetzungsmodul 240 enthält ein Modul zur Adresserzeugung mit einheitlicher Umsetzungs-Walk-Operation (UTWAG) 260, das dazu konfiguriert ist, eine Umsetzungshilfe für jeden Modus der Umsetzungsanforderung der Mehrzahl von Umsetzungsanforderungen bereitzustellen. Die Umsetzungshilfen des UTWAG umfassen mindestens eines von: Erzeugen einer realen Adresse eines Partitionstabelleneintrags (PATE RA GEN) 262; Erzeugen einer virtuellen Adresse einer Segmenttabelleneintragsgruppe (STEG VA GEN) 264, das eine Umsetzung einer EA in eine VA bereitstellt; Erzeugen einer realen Adresse einer Segmenttabelleneintragsgruppe (STEG RA GEN) 266, das eine Gruppe von STEs liest, wobei ein passender STE eine Adressumsetzung einer EA in eine VA bereitstellt; Erzeugen einer realen Adresse einer Seitentabelleneintragsgruppe (PTEG RA GEN) 268; Erzeugen einer realen Host-Radixadresse (RADIX HOST RA GEN) 270; oder Erzeugen einer realen Radix-Gastadresse (RADIX GUEST RA GEN) 272. Ein HPT-PTE (der von Block 208 bereitgestellt werden kann) definiert eine VA-RA-Umsetzung.
  • Das UTWAG 260 ist mit einer Speicherschnittstelle 212 verbunden, die zur Datenübertragung mit einem physischen Speicher 214 geeignet ist. In einigen Ausführungsformen umfasst das Umsetzungsmodul 240 ein Erzeugungsmodul einer nächsten Stufe einer endlichen Zustandsmaschine 220. Man kann sich eine endliche Zustandsmaschine so vorstellen, dass sie aus zwei Teilen besteht: einem Satz Latches, die den aktuellen Zustand der Maschine definieren; und einen Logikblock, der dazu dient, den nächsten Zustand der Maschine zu bestimmen. Im Umsetzungswarteschlangenmodul 230 verfügt jeder Umsetzungswarteschlangeneintrag logisch über seine eigene unabhängige FSM, da jeder Eintrag über einen Satz Latches verfügt, die dessen aktuellen Zustand definieren. In einem gegebenen Prozessorzyklus entscheidet die Vermittlung 239, welcher Warteschlangeneintrag Zugriff auf den gemeinsam genutzten FSM-Logikblock 220 zur Erzeugung des nächsten Zustands hat.
  • Die Speicherzugriffsschnittstelle 212, die Lese/Schreib-Schnittstelle 206 für den Umsetzungscache (XLTC) und die XLTC-Schnittstelle 206 werden alle von allen Umsetzungshilfen 262 bis 272 des UTWAG 260 gemeinsam genutzt, wodurch Strom und/oder Chipfläche eingespart werden, während die Komplexität des einheitlichen Speicheradressen-Umsetzungssystems 200 verringert wird.
  • Als Beispiel und nicht als Einschränkung zeigt die Architektur 200 von 2 ein Umsetzungswarteschlangenmodul 230, das eine Umsetzungs-Walk-Operation mit vier Einträgen ermöglicht, obwohl klar ist, dass die Lehren hierin eine beliebige Anzahl von Umsetzungs-Walk-Warteschlangen im Umsetzungswarteschlangenmodul 230 unterstützen. Jeder Eintrag in dem Umsetzungswarteschlangenmodul 230 kann unter Verwendung eines der vorgesehenen Umsetzungseinträge 232 bis 238, die hier manchmal als Umsetzungsmodule bezeichnet werden, unabhängig eine Umsetzungsanforderung aufnehmen. Beispielsweise können die Umsetzungs-Walk-Modi eine HPT-Umsetzung 232, eine Segmenttabellenumsetzung 234, eine nicht verschachtelte Radixumsetzung 246, eine verschachtelte Radixumsetzung 238 usw. umfassen. In einer Ausführungsform umfasst das Umsetzungswarteschlangenmodul 230 ein Sequenzmodul 239, das geeignet ist, für eine Umlaufvermittlung zwischen den verschiedenen Umsetzungs-Walk-Warteschlangeneinträgen 232 bis 238 zu sorgen. Jeder dieser Umsetzungs-Walk-Warteschlangeneinträge 232 bis 238 kann von einer anderen Art sein. Beispielsweise kann der Umsetzungs-Walk-Warteschlangeneintrag 232 eine Segmenttabellen-Walk-Operation ausführen, der Umsetzungs-Walk-Warteschlangeneintrag 234 kann eine verschachtelte Radix-Walk-Operation ausführen, der Umsetzungs-Walk-Warteschlangeneintrag 236 kann eine nicht verschachtelte Radix-Walk-Operation ausführen und so weiter. Dementsprechend unterstützt die Architektur 200 automatisch unterschiedliche Thread-Modi.
  • Zusätzlich zu den Warteschlangeneinträgen 232 bis 238 umfasst die Architektur 200 einen Block zur Adresserzeugung mit einheitlicher Umsetzungs-Walk-Operation (UTWAG) 260, der alle Zwischenadressen erzeugt, die für die letztendliche Ausgabe einer RA relevant sind. Insbesondere ist das UTWAG so konfiguriert, dass die Speicherzugriffsschnittstelle 212, der Umsetzungscache (XLTC) 204, die XLTC-Schnittstelle 206, die Lese/Schreib-Schnittstelle, die hier manchmal als XLTC-Schnittstelle 206 bezeichnet wird, und die Umsetzungsanforderungsschnittstelle 202 von allen Umsetzungshilfen 262 bis 272 gemeinsam genutzt werden. Das UTWAG 260 bietet auch die Möglichkeit, dass die Umsetzungsmodi die Umsetzungsfunktionen eines Modus mit einem anderen teilen, was später ausführlicher beschrieben wird. Jeder Prozessorzyklus kann aus einem völlig anderen Thread-Modus bestehen. Die Verbindung des iterativen Verfahrens des Umsetzungs-Walk-Warteschlangeneintrags 232 bis 238 zusammen mit dem UTWAG führt zu einer effizienten Nutzung der Chipfläche, einem verringerten Stromverbrauch und einer verbesserten Leistung für Umsetzungsanforderungen.
  • Man betrachte beispielsweise einen Power10(P10)-Prozessor, bei dem die Lade/Speicher-Einheit oder die Befehlsabrufeinheit 202 die Umsetzung einer effektiven Adresse (EA) anfordert. Diese Anforderung kann an den Umsetzungscache (XLTC) 204 gesendet werden, der frühere Umsetzungsergebnisse enthält. Diese früheren Umsetzungen können von einer EA zu einer virtuellen Adresse (VA), von einer VA zu einer RA oder direkt von einer EA zu einer RA erfolgen; abhängig vom Adressumsetzungsmodus. Wenn im XLTC 204 keine vorherigen Ergebnisse gefunden wurden, wird die Umsetzungsanforderung 202 einem der Umsetzungs-Walk-Warteschlangeneinträge 232 bis 238 zugewiesen. Als Teil der Anforderung werden Kontextinformationen, die den Umsetzungsmodus definieren, zusammen mit der Start-EA bereitgestellt. In der PowerPC-Architektur könnte dies beispielsweise eine Umsetzung einer Segmenttabellen-EA in eine virtuelle Adresse, eine Umsetzung von einer virtuellen Adresse einer Hash-Seitentabelle in eine reale Adresse oder eine Umsetzung einer Radix-EA in eine RA sein.
  • Jede Umsetzungsanforderung enthält eine Adresse (z.B. EA oder VA) zusammen mit Kontextinformationen (z.B. den Modus der Anforderung). Unter Verwendung der Kontextinformationen beginnt der Umsetzungs-Walk-Warteschlangeneintrag die Ausführung. Alle Umsetzungsmodi enthalten einen „Partitionstabelleneintrag“ (PATE) 262, der die Basisadressen der einzelnen Umsetzungstabellen (Segmenttabelle, Hash-Seitentabelle oder Radixtabelle (Ebene 1)) definiert. Das UTWAG 260 führt diese gemeinsame Funktion effizient aus, indem es die Adresse des PATE für jeden Modus und die RA im Speicher 214 erzeugt.
  • Beispielverfahren
  • Angesichts der vorstehenden Übersicht über die Beispielarchitekturen 100 und 200 kann es nun hilfreich sein, eine übergeordnete Beschreibung von Beispielverfahren zu geben. Zu diesem Zweck zeigen die 3 und 4 beispielhafte Verfahren 300 und 400 zum Umsetzen von Speicheradressen mit unterschiedlichen Modi gemäß beispielhaften Ausführungsformen. Die Verfahren 300 und 400 sind jeweils als Satz von Blöcken in einem logischen Flussdiagramm gezeigt, das eine Abfolge von Vorgängen zeigt, die in Hardware, Software oder einer Kombination davon implementiert sein können. Im Zusammenhang mit Software stellen die Blöcke von einem Computer ausführbare Anweisungen dar, die bei Ausführung von einem oder mehreren Prozessoren die genannten Vorgänge ausführen. Im Allgemeinen können von einem Computer ausführbare Anweisungen Routinen, Programme, Objekte, Komponenten, Datenstrukturen und dergleichen umfassen, die Funktionen ausführen oder abstrakte Datentypen implementieren. In jedem Verfahren soll die Reihenfolge, in der die Vorgänge beschrieben sind, nicht als Einschränkung ausgelegt werden und eine beliebige Anzahl der beschriebenen Blöcke kann zur Implementierung des Verfahrens in beliebiger Reihenfolge kombiniert und/oder parallel ausgeführt werden. Zu Beschreibungszwecken werden die Verfahren 300 und 400 unter Bezugnahme auf die Architektur von 2 beschrieben.
  • 3 ist ein beispielhafter Verfahrensablauf, der eine HPT-Anforderung und eine Segmenttabellenanforderung unterstützt, während verschiedene Komponenten des einheitlichen Umsetzungssystems 200 von 2 gemeinsam genutzt werden. Beispielsweise werden die Speicherzugriffsschnittstelle 212, der Umsetzungscache (XLTC) 204, die XLTC-Schnittstelle 206, die Lese/Schreib-Schnittstelle 212 und die Umsetzungsanforderungsschnittstelle 202 von allen Umsetzungsmodi gemeinsam genutzt, die als Reaktion auf die HPT-Anforderung 302 und die Segmenttabellenanforderung 304 verwendet werden.
  • Bei Block 303 wird eine HPT-Anforderung empfangen, die eine virtuelle Adresse (VA) und einen Kontext enthält, der den Modus der Umsetzungsanforderung angibt. Bei Block 310 wird die virtuelle Adresse in eine reale Adresse einer Seitentabelleneintrags(PTE)-Gruppe gehasht (GEN PTEG RA) und an den Speicher 214 gesendet. Bei Block 312 wartet das System eine vorgegebene Zeitspanne, um die PTEG aus dem Speicher zu empfangen.
  • Bei Block 314 wird die PTEG nach einem PTE-Treffer durchsucht. Wenn es keinen PTE-Treffer gibt (d.h. ein „FEHLER“ vorliegt), kennzeichnet das Umsetzungswarteschlangenmodul 230 die Adresse (z.B. eine VA, die mit der Umsetzungsanforderung bereitgestellt wird) als Ausnahme. Beispielsweise würde das Erzeugungsmodul eines nächsten Zustands einer FSM 220 in einen „Ausnahme“-Zustand übergehen. Wenn es jedoch einen PTE-„TREFFER“ gibt, wird das Verfahren mit Block 324 fortgesetzt, bei dem der Umsetzungscache (XLTC) mit der RA aktualisiert wird.
  • Das Verfahren 300 zeigt auch einen weiteren Einstiegspunkt, dargestellt durch eine Segmenttabellenanforderung 301. Bei Block 302 wird beim Empfang der Segmenttabellenanforderung, die eine effektive Adresse (EA) enthält, ein Partitionstabelleneintrag auf Grundlage des angegebenen Umsetzungsanforderungskontexts erzeugt (GEN PATE). Bei Block 304 wartet das System eine vorgegebene Zeitspanne, bis der Partitionstabelleneintrag erzeugt wurde. Bei Block 306 wird eine Segmenttabelleneintragsgruppe (STEG VA) erzeugt. Anders ausgedrückt wird eine virtuelle Zwischenadresse (VA) bereitgestellt. Für die Segmenttabelleneintragsgruppe (STEG), bei der es sich um eine virtuelle Adresse handelt, ist selbst eine Umsetzung erforderlich (da sie eine Zwischenumsetzung der realen Adresse ist).
  • Bei Block 308 wird in einer Ausführungsform der Umsetzungscache XLTC 204 überprüft, um zu ermitteln, ob diese virtuelle Adresse (VA) zuvor umgesetzt wurde. Wenn diese virtuelle Adresse zuvor nicht umgesetzt wurde und daher nicht im Umsetzungscache (XLTC) 204 vorhanden ist (d.h. ein „FEHLER“ im Ermittlungsblock 308 vorliegt), wird das Verfahren mit den Blöcken 310 bis 314 fortgesetzt, die nahtlos mit der zuvor beschriebenen HPT-Anforderung 303 integriert sind. Anders ausgedrückt kann die Logik und/oder Hardware, die in Bezug auf die HPT-Anforderung 303 bereits vorhanden ist, erfolgreich für die Segmenttabellenanforderungs-Walk-Operation 301 wiederverwendet werden.
  • Genauer gesagt wird bei Block 310 die virtuelle Adresse in eine reale Adresse einer Seitentabelleneintrags(PTE)-Gruppe gehasht (GEN PTEG RA) und an den Speicher 214 gesendet. Bei Block 312 wartet das System eine vorgegebene Zeitspanne, um die PTEG aus dem Speicher zu empfangen. Bei Block 314 wird die PTEG nach einem PTE-„TREFFER“ durchsucht. Wenn kein PTE „TREFFER“ vorliegt (d.h. im Ermittlungsblock 314 ein „FEHLER“ vorliegt), kennzeichnet das System die Adresse als Ausnahme. Wenn es jedoch einen PTE-„TREFFER“ gibt, wird der Verfahren mit Block 316 fortgesetzt, wo der Umsetzungscache (XLTC) 204 mit der realen Adresse (RA) aktualisiert wird. Diese reale Adresse (RA) wird an den Speicher 214 gesendet und das Verfahren wird mit Block 318 fortgesetzt, bei dem eine reale Adresse der Segmenttabelleneintragsgruppe bereitgestellt wird (GEN STEG RA) und an den Speicher 214 gesendet wird. Bei Block 320 wartet das System eine vorgegebene Zeitspanne, um die Segmenttabellengruppen(STEG)-Daten aus dem Speicher 214 zu empfangen.
  • Bei Block 322 wird eine Segmenttabellengruppensuche durchgeführt (SEARCH STEG). Wenn sie erfolgreich ist (d.h. ein „TREFFER“ im Ermittlungsblock 322 vorliegt), fährt das Verfahren mit Block 324 fort, wo der Umsetzungscache (XLTC) 204 mit der VA aktualisiert wird. Das Ziel der Segmenttabellen-Umsetzungsanforderung liegt darin, eine EA mithilfe eines Segmenttabelleneintrags (STE) in eine VA umzusetzen. Genauer gesagt werden der EA-Abschnitt und die entsprechende im STE gefundene virtuelle Adresse im XLTC 204 gespeichert, so dass ein weiterer Zugriff auf dieselbe EA-Seite einen „TREFFER“ liefert, so dass ein „FEHLER“ bei der nächsten Suche vermieden wird.
  • Wenn SEARCH STEG jedoch nicht erfolgreich ist (d.h. ein „FEHLER“ im Ermittlungsblock vorliegt), kehrt das Verfahren zu Block 306 zurück und das iterative Verfahren wird fortgesetzt. Diese iterative Schleifenfunktion kann beispielsweise vier getrennte Iterationen umfassen.
  • Wenn zurück bei Block 308 die virtuelle Adresse zuvor umgesetzt wurde (d.h. ein „TREFFER“ bei Ermittlungsblock 308 vorliegt), wird die Walk-Operation wesentlich vereinfacht und geht direkt zu Block 318 über, und das Verfahren wird wie oben beschrieben fortgesetzt.
  • Wenn der in den Anforderungskontextinformationen 202 enthaltene Adressmodus eine Radix-EA-RA-Umsetzung anzeigt, folgt ein anderer Ablauf, der ebenfalls die XLTC-Schnittstelle 206 und die Speicherschnittstelle 212 effizient gemeinsam nutzt. Einige Prozessoren verwenden in nativen Anwendungen beispielsweise eine Radixbaumstruktur der Tiefe 4 für die Umsetzung effektiver in physische Adressen. Die Baumstruktur kann vier Schichten enthalten, wobei die vierte Schicht L4 die Wurzel der Baumstruktur ist. Jeder Knoten in der Baumstruktur enthält eine Tabelle, die die Knoten in der nachfolgenden Ebene der Baumstruktur darstellt. Der Knoten füllt einen einzelnen physischen Speicherrahmen. Jeder Tabelleneintrag verwaltet die physische Rahmennummer (z.B. einen Zeiger) des untergeordneten Knotens und die vom Betriebssystem auferlegten Berechtigungen für die gesamte Teilstruktur. Das Umsetzungsverfahren, das hier manchmal als „Seitentabellen-Walk-Operation“ bezeichnet wird, ist iterativ und durchläuft einen Weg vom Wurzel- zu einem Blattknoten. In jedem Schritt werden nachfolgende Bitsätze der effektiven Adresse (EA) der Quelle verwendet, um die Tabellen in nachfolgenden Knoten entlang des Wegs zu indizieren.
  • Hierzu wird nun auf 4 verwiesen, die ein beispielhafter Verfahrensablauf ist, der sowohl verschachtelte als auch nicht verschachtelte Radixanforderungen unterstützt. Um Unübersichtlichkeit zu vermeiden, wurde das Verfahren 400 vom Verfahren 300 von 3 getrennt, wobei jedoch klar ist, dass diese Verfahren integriert werden können. Im Verfahren 400 wird der verschachtelte Radixablauf durch eine durchgezogene Linie gezeigt, während der nicht verschachtelte durch eine gestrichelte Linie gezeigt wird.
  • Bei Block 401A wird eine nicht verschachtelte Radixanforderung empfangen, die eine effektive Adresse und einen Kontext enthält, der den Modus der Anforderung (d.h. nicht verschachtelte Radix) angibt. Bei Block 402 wird beim Empfang der verschachtelten Radixanforderung ein Partitionstabelleneintrag auf Grundlage des empfangenen Umsetzungskontexts erzeugt (GEN PATE). Bei Block 404 wartet das System eine vorgegebene Zeitspanne, bis der Partitionstabelleneintrag erzeugt wurde.
  • Das Verfahren geht dann zu Block 410 über, bei dem zunächst für L1 eine Hostadresse erzeugt wird (GEN HOST RA). Radix geht eine Reihe von Tabellen durch, auf die seriell verwiesen wird. Wenn auf L1 zugegriffen wird, enthält es einen Zeiger auf die L2-Hosttabelle usw. Es wird eine Walk-Operation für vier solcher Tabellen durchgeführt, wie durch die Blöcke 410 bis 416 angezeigt, bevor ein korrekter Seitentabelleneintrag PTE gefunden wird. Das Verfahren wird dann mit Block 424 fortgesetzt, wo der Umsetzungscache (XLTC) mit der RA aktualisiert wird.
  • Wie oben erwähnt, kann das Verfahren 400 auch eine verschachtelte Radixanforderung unterstützen. Beispielsweise wird bei Block 401B eine verschachtelte Radixanforderung empfangen, die eine effektive Adresse und einen Kontext enthält, der den Modus der Anforderung (d.h. verschachtelte Radix) angibt. Bei Block 402 wird beim Empfang der verschachtelten Radixanforderung ein Partitionstabelleneintrag auf Grundlage des empfangenen Umsetzungskontexts erzeugt (GEN PATE). Bei Block 404 wartet das System eine vorgegebene Zeitspanne, bis die Erstellung des Partitionstabelleneintrags abgeschlossen ist.
  • Das Verfahren wird dann mit Block 406 fortgesetzt, wo eine reale Gastadresse (GEN GUEST RA) für jede der vier Radixebenen L1 bis L4 erzeugt wird. Anders ausgedrückt werden durch die effektive Adresse Adressen auf Gastebene erzeugt, die weiter verfeinert werden, bevor eine Adresse an den Speicher gesendet werden kann, wie weiter unten ausführlicher beschrieben wird.
  • Bei Block 408 wird in einer Ausführungsform der Umsetzungscache XLTC 204 überprüft, um zu ermitteln, ob diese reale Gastadresse zuvor umgesetzt wurde. Wenn diese reale Gastadresse zuvor nicht umgesetzt wurde (d.h. ein „FEHLER“ im Ermittlungsblock 308 vorliegt), wird das Verfahren mit Block 410 fortgesetzt, wo zunächst für L1 eine Hostadresse erzeugt wird (GEN HOST RA). Wie im zuvor beschriebenen nicht verschachtelten Fall durchläuft Radix eine Reihe von Tabellen, auf die seriell verwiesen wird, wie durch die Blöcke 410 bis 416 angezeigt, bis ein korrekter Seitentabelleneintrag PTE gefunden wurde. Das Verfahren wird dann mit Block 418 fortgesetzt, wo der Umsetzungscache (XLTC) 204 mit der RA aktualisiert wird.
  • Bei Block 420 wird eine reale Hostadresse erzeugt (GEN HOST RA). In diesem Zusammenhang wird darauf hingewiesen, dass bei verschachtelten Radixen die EA-RA-Umsetzung im L4-Gasteintrag enthalten ist. Jeder Gasteintrag (L1, L2, L3, L4) wird zunächst von einer Gast-RA angesprochen. Gast-RAs können jedoch nicht an den Speicher 214 gesendet werden und werden daher in eine Host-RA umgesetzt, wie oben erläutert. Block 420 ist die Host-RA, die aus der Gast-RA umgesetzt wurde (Block 406).
  • Bei Block 422 wartet das System auf die Fertigstellung des Gasttabelleneintrags für die jeweilige Radixebene (z.B. L1). Das iterative Verfahren fährt mit der Rückkehr zu Block 406 fort, bis alle Radixebenen (d.h. im vorliegenden Beispiel L1 bis L4) für einen Gasttabelleneintrag ausgewertet wurden. Das Verfahren wird mit Block 424 fortgesetzt, wo der Umsetzungscache (XLTC) mit der RA aktualisiert wird.
  • Wenn, rückkehrend zu Block 408, die Gastadresse zuvor umgesetzt wurde (d.h. ein „TREFFER“ bei Ermittlungsblock 408 vorliegt), wird das Verfahren wesentlich vereinfacht und geht direkt zu Block 420 über und das Verfahren wird wie oben beschrieben fortgesetzt.
  • Beispiel-Computerplattform
  • In einer Ausführungsform können Funktionen im Zusammenhang mit der Bereitstellung eines einheitlichen Speicheradressen-Umsetzungssystems unter Verwendung einer oder mehrerer Computereinheiten ausgeführt werden. 5 zeigt eine Darstellung eines Funktionsblockschemas einer Computerhardwareplattform 500, die zum Hosten eines Moduls zur Adresserzeugung mit einheitlicher Umsetzungs-Walk-Operation (UTWAG) 540 verwendet werden kann.
  • Die Computerplattform 500 kann eine Zentraleinheit (CPU) 504, ein Festplattenlaufwerk (HDD) 506, Direktzugriffsspeicher (RAM) und/oder Nur-Lese-Speicher (ROM) 508, eine Tastatur 510, eine Maus 512, eine Anzeige 514 und eine Datenübertragungsschnittstelle 516 umfassen, die mit einem Systembus 502 verbunden sind.
  • In einer Ausführungsform verfügt die HDD 506 über Fähigkeiten, die ein Speichern eines Programms umfassen, das verschiedene Verfahren wie beispielsweise die UTWAG-Engine 540 auf eine hier beschriebene Weise ausführen kann. Die UTWAG-Engine 540 kann über verschiedene Module verfügen, die zum Ausführen verschiedener Funktionen wie etwa die im Kontext von 2 beschriebenen und andere konfiguriert sind. Beispielsweise können die Module PATE RA GEN 542, STEG VA GEN 544, STEG RA GEN 546, PTEG RA GEN 548, RADIX HOST RA GEN 550 und RADIX GUEST RA GEN 552 vorhanden sein, die die hier beschriebenen Funktionen ausführen. Während die Module 542 bis 552 in 5 so gezeigt sind, dass sie Teil der HDD 506 sind, können in einigen Ausführungsformen eines oder mehrere dieser Module in der Hardware der Computereinheit 500 implementiert sein. Beispielsweise können die hier beschriebenen Module teilweise in Form von Hardware und teilweise in Form von Software implementiert sein. Das heißt, dass eine oder mehrere der in 5 gezeigten Komponenten der UTWAG-Engine 540 in Form elektronischer Schaltungen mit einem oder mehreren Transistoren, Dioden, Kondensatoren, Widerständen, Induktivitäten, Varaktoren und/oder Memristoren implementiert sein können. Mit anderen Worten kann die UTWAG-Engine 540 mit einem oder mehreren speziell entwickelten elektronischen Schaltungen implementiert sein, die bestimmte hierin beschriebene Aufgaben und Funktionen durch Komponenten der CPU und/oder Module des RAM/ROM 508 ausführen.
  • Beispiel-Cloud-Plattform
  • Wie oben beschrieben, können Funktionen im Zusammenhang mit der Bereitstellung eines einheitlichen Speicheradressen-Umsetzungssystems eine verteilte Computer- und/oder Speicherarchitektur wie in einer Cloud umfassen. Es sei von vornherein klargestellt, dass das Umsetzen der hierin angeführten Lehren nicht auf eine Cloud-Computing-Umgebung beschränkt ist, obwohl diese Offenbarung eine ausführliche Beschreibung von Cloud-Computing umfasst. Stattdessen können Ausführungsformen der vorliegenden Erfindung gemeinsam mit jeder beliebigen Art von jetzt bekannter oder später erfundener Datenverarbeitungsumgebung umgesetzt werden.
  • Cloud-Computing ist ein Servicebereitstellungsmodell zum Ermöglichen eines problemlosen bedarfsgesteuerten Netzwerkzugriffs auf einen gemeinsam genutzten Pool von konfigurierbaren Datenverarbeitungsressourcen (z.B. Netzwerke, Netzwerkbandbreite, Server, Verarbeitung, Hauptspeicher, Speicher, Anwendungen, virtuelle Maschinen und Dienste), die mit minimalem Verwaltungsaufwand bzw. minimaler Interaktion mit einem Anbieter des Service schnell bereitgestellt und freigegeben werden können. Dieses Cloud-Modell kann mindestens fünf Eigenschaften, mindestens drei Dienstmodelle und mindestens vier Implementierungsmodelle umfassen.
  • Bei den Eigenschaften handelt es sich um die Folgenden:
  • On-Demand Self-Service: Ein Cloud-Nutzer kann einseitig automatisch nach Bedarf für Datenverarbeitungsfunktionen wie Serverzeit und Netzwerkspeicher sorgen, ohne dass eine menschliche Interaktion mit dem Anbieter der Dienste erforderlich ist.
  • Broad Network Access: Es sind Funktionen über ein Netzwerk verfügbar, auf die durch Standardmechanismen zugegriffen wird, welche die Verwendung durch heterogene Thin- oder Thick-Client-Plattformen (z.B. Mobiltelefone, Laptops und PDAs) unterstützen.
  • Resource-Pooling: Die Datenverarbeitungsressourcen des Anbieters werden zusammengeschlossen, um mehreren Nutzern unter Verwendung eines Multi-Tenant-Modells zu dienen, wobei verschiedene physische und virtuelle Ressourcen dynamisch nach Bedarf zugewiesen und neu zugewiesen werden. Es gibt eine gefühlte Standortunabhängigkeit, da der Nutzer allgemein keine Kontrolle bzw. Kenntnis über den genauen Standort der bereitgestellten Ressourcen hat, aber in der Lage sein kann, einen Standort auf einer höheren Abstraktionsebene festzulegen (z.B. Land, Staat oder Rechenzentrum).
  • Rapid Elasticity: Funktionen können für eine schnelle horizontale Skalierung (scale out) schnell und elastisch bereitgestellt werden, in einigen Fällen auch automatisch, und für ein schnelles Scale-in schnell freigegeben werden. Für den Nutzer erscheinen die für das Bereitstellen verfügbaren Funktionen häufig unbegrenzt und sie können jederzeit in jeder beliebigen Menge gekauft werden.
  • Measured Service: Cloud-Systeme steuern und optimieren die Verwendung von Ressourcen automatisch, indem sie eine Messfunktion auf einer gewissen Abstraktionsebene nutzen, die für die Art von Dienst geeignet ist (z.B. Speicher, Verarbeitung, Bandbreite sowie aktive Benutzerkonten). Die Nutzung von Ressourcen kann überwacht, gesteuert und gemeldet werden, wodurch sowohl für den Anbieter als auch für den Nutzer des verwendeten Dienstes Transparenz geschaffen wird.
  • Bei den Dienstmodellen handelt es sich um die Folgenden:
  • Software as a Service (SaaS): Die dem Nutzer bereitgestellte Funktion besteht darin, die in einer Cloud-Infrastruktur laufenden Anwendungen des Anbieters zu verwenden. Die Anwendungen sind über eine Thin-Client-Schnittstelle wie einen Web-Browser (z.B. auf dem Web beruhende E-Mail) von verschiedenen Client-Einheiten her zugänglich. Der Nutzer verwaltet bzw. steuert die zugrunde liegende Cloud-Infrastruktur nicht, darunter das Netzwerk, Server, Betriebssysteme, Speicher bzw. sogar einzelne Anwendungsfunktionen, mit der möglichen Ausnahme von eingeschränkten benutzerspezifischen Anwendungskonfigurationseinstellungen.
  • Platform as a Service (PaaS): Die dem Nutzer bereitgestellte Funktion besteht darin, durch einen Nutzer erstellte bzw. erhaltene Anwendungen, die unter Verwendung von durch den Anbieter unterstützten Programmiersprachen und Tools erstellt wurden, in der Cloud-Infrastruktur einzusetzen. Der Nutzer verwaltet bzw. steuert die zugrunde liegende Cloud-Infrastruktur nicht, darunter Netzwerke, Server, Betriebssysteme bzw. Speicher, hat aber die Kontrolle über die eingesetzten Anwendungen und möglicherweise über Konfigurationen des Application Hosting Environment.
  • Infrastructure as a Service (laaS): Die dem Nutzer bereitgestellte Funktion besteht darin, das Verarbeiten, Speicher, Netzwerke und andere grundlegende Datenverarbeitungsressourcen bereitzustellen, wobei der Nutzer in der Lage ist, beliebige Software einzusetzen und auszuführen, zu der Betriebssysteme und Anwendungen gehören können. Der Nutzer verwaltet bzw. steuert die zugrunde liegende Cloud-Infrastruktur nicht, hat aber die Kontrolle über Betriebssysteme, Speicher, eingesetzte Anwendungen und möglicherweise eine eingeschränkte Kontrolle über ausgewählte Netzwerkkomponenten (z.B. Host-Firewalls).
  • Bei den Einsatzmodellen handelt es sich um die Folgenden:
  • Private Cloud: Die Cloud-Infrastruktur wird einzig und allein für eine Organisation betrieben. Sie kann durch die Organisation oder einen Dritten verwaltet werden und kann sich in den eigenen Räumen oder in fremden Räumen befinden.
  • Community Cloud: Die Cloud-Infrastruktur wird von mehreren Organisationen gemeinsam genutzt und unterstützt eine spezielle Benutzergemeinschaft, die gemeinsame Angelegenheiten hat (z.B. Mission, Sicherheitsanforderungen, Richtlinien sowie Überlegungen bezüglich der Einhaltung von Vorschriften). Sie kann durch die Organisationen oder einen Dritten verwaltet werden und kann in den eigenen Räumen oder fremden Räumen stehen.
  • Public Cloud: Die Cloud-Infrastruktur wird der allgemeinen Öffentlichkeit oder einer großen Industriegruppe zur Verfügung gestellt und sie gehört einer Cloud-Dienste verkaufenden Organisation.
  • Hybrid Cloud: Die Cloud-Infrastruktur ist eine Zusammensetzung aus zwei oder mehreren Clouds (privat, Benutzergemeinschaft oder öffentlich), die zwar einzelne Einheiten bleiben, aber durch eine standardisierte oder proprietäre Technologie miteinander verbunden sind, die Daten- und Anwendungsportierbarkeit ermöglicht (z.B. Cloud-Zielgruppenverteilung für den Lastenausgleich zwischen Clouds).
  • Eine Cloud-Computing-Umgebung ist dienstorientiert mit Fokus auf Statusunabhängigkeit, geringer Kopplung, Modularität und semantischer Interoperabilität. Im Herzen von Cloud-Computing liegt eine Infrastruktur, die ein Netz aus zusammengeschalteten Knoten aufweist.
  • Unter Bezugnahme auf 6 ist eine beispielhafte Cloud-Computing-Umgebung 600 gezeigt. Wie gezeigt, weist die Cloud-Computing-Umgebung 600 einen oder mehrere Cloud-Computing-Knoten 610 auf, mit denen von Cloud-Nutzern verwendete lokale Datenverarbeitungseinheiten wie der elektronische Assistent (PDA, personal digital assistant) oder das Mobiltelefon 654A, der Desktop-Computer 654B, der Laptop-Computer 654C und/oder das Automobil-Computer-System 654N Daten austauschen können. Die Knoten 610 können miteinander Daten austauschen. Sie können physisch oder virtuell in ein oder mehrere Netzwerke wie private, Benutzergemeinschafts-, öffentliche oder hybride Clouds gruppiert werden (nicht gezeigt), wie vorstehend beschrieben wurde, oder in eine Kombination daraus. Dies ermöglicht es der Cloud-Computing-Umgebung 650, Infrastruktur, Plattformen und/oder Software als Dienst anzubieten, für die ein Cloud-Nutzer keine Ressourcen auf einer lokalen Datenverarbeitungseinheit vorhalten muss. Es sei darauf hingewiesen, dass die Arten von in 6 gezeigten Datenverarbeitungseinheiten 654 bis N lediglich beispielhaft sein sollen und dass die Datenverarbeitungsknoten 610 und die Cloud-Computing-Umgebung 650 über eine beliebige Art Netzwerk und/oder über eine beliebige Art von über ein Netzwerk aufrufbarer Verbindung (z.B. unter Verwendung eines Web-Browsers) mit einer beliebigen Art von computergestützter Einheit Daten austauschen können.
  • Unter Bezugnahme auf 7 wird ein Satz von funktionalen Abstraktionsschichten gezeigt, die durch die Cloud-Computing-Umgebung 650 (6) bereitgestellt werden. Es sollte von vornherein klar sein, dass die in 7 gezeigten Komponenten, Schichten und Funktionen lediglich beispielhaft sein sollen und Ausführungsformen der Offenbarung nicht darauf beschränkt sind. Wie abgebildet ist, werden die folgenden Schichten und entsprechenden Funktionen bereitgestellt:
  • Eine Hardware- und Software-Schicht 760 umfasst Hardware- und SoftwareKomponenten. Zu Beispielen für Hardware-Komponenten gehören: Mainframe-Computer 761; auf der RISC- (Reduced Instruction Set Computer) Architektur beruhende Server 762; Server 763; Blade-Server 764; Speichereinheiten 765; und Netzwerke sowie Netzwerkkomponenten 766. In einigen Ausführungsformen beinhalten SoftwareKomponenten eine Netzwerk-Anwendungsserver-Software 767 und eine Datenbank-Software 768.
  • Die Virtualisierungsschicht 770 stellt eine Abstraktionsschicht bereit, aus der die folgenden Beispiele für virtuelle Einheiten bereitgestellt werden können: virtuelle Server 771, virtueller Speicher 772, virtuelle Netzwerke 773, darunter virtuelle private Netzwerke, virtuelle Anwendungen und Betriebssysteme 774; und virtuelle Clients 775.
  • In einem Beispiel kann eine Verwaltungsschicht 780 die nachfolgend beschriebenen Funktionen bereitstellen. Eine Ressourcen-Bereitstellung 781 stellt die dynamische Beschaffung von Datenverarbeitungsressourcen sowie anderen Ressourcen bereit, die zum Durchführen von Aufgaben innerhalb der Cloud-Computing-Umgebung verwendet werden. Ein Messen und eine Preisfindung 782 stellen die Kostenverfolgung beim Verwenden von Ressourcen innerhalb der Cloud-Computing-Umgebung sowie die Abrechnung oder Rechnungsstellung für den Verbrauch dieser Ressourcen bereit. In einem Beispiel können diese Ressourcen Anwendungs-Software-Lizenzen umfassen. Die Sicherheit stellt die Identitätsüberprüfung für Cloud-Nutzer und Aufgaben sowie Schutz für Daten und andere Ressourcen bereit. Ein Benutzerportal 783 stellt Nutzern und Systemadministratoren den Zugang zu der Cloud-Computing-Umgebung bereit. Eine Verwaltung des Dienstumfangs 784 stellt die Zuordnung und Verwaltung von Cloud-Computing-Ressourcen bereit, so dass die benötigten Dienstziele erreicht werden. Ein Planen und Erfüllen von Vereinbarungen zum Dienstumfang (SLA, Service Level Agreement) 785 stellt die Anordnung vorab und die Beschaffung von Cloud-Computing-Ressourcen, für die eine zukünftige Anforderung vorausgesehen wird, gemäß einem SLA bereit.
  • Eine Arbeitslastschicht 790 stellt Beispiele für die Funktionalität bereit, für welche die Cloud-Computing-Umgebung verwendet werden kann. Zu Beispielen für Arbeitslasten und Funktionen, die von dieser Schicht bereitgestellt werden können, gehören: Abbildung und Navigation 791; Softwareentwicklung und Lebenszyklusverwaltung 792; Bereitstellung von Ausbildung in virtuellen Klassenzimmern 793; Datenanalytikverarbeitung 794; Transaktionsverarbeitung 795; und eine einheitliche Umsetzungs-Engine 796 wie hierin beschrieben.
  • Die Beschreibungen der verschiedenen Ausführungsformen der vorliegenden Lehren wurden zum Zweck der Veranschaulichung angegeben, sind aber nicht als erschöpfend oder auf die offenbarten Ausführungsformen beschränkt anzusehen. Viele Modifikationen und Varianten sind für Fachleute offensichtlich, ohne vom Umfang der beschriebenen Ausführungsformen abzuweichen. Die hierin verwendete Terminologie wurde ausgewählt, um die Grundsätze der Ausführungsformen, die praktische Anwendung oder die technische Verbesserung gegenüber Technologien, die am Markt vorhanden sind, am besten zu beschreiben oder anderen Fachleuten zu ermöglichen, die hierin offenbarten Ausführungsformen zu verstehen.
  • Während im Vorstehenden der als bester angesehene Zustand und/oder andere Beispiele beschrieben wurden, versteht es sich, dass daran verschiedene Änderungen vorgenommen werden können und dass der hier offenbarte Gegenstand in verschiedenen Formen und Beispielen umgesetzt werden kann, und dass die Lehren in zahlreichen Anwendungen eingesetzt werden können, von denen hier nur einige beschrieben wurden. Die folgenden Ansprüche sollen alle Anwendungen, Änderungen und Varianten beanspruchen, die in den wahren Umfang der vorliegenden Lehren fallen.
  • Die hier beschriebenen Komponenten, Schritte, Merkmale, Objekte, Nutzen und Vorteile dienen lediglich der Veranschaulichung. Keine davon, noch die diesbezüglichen Beschreibungen sollen den Schutzumfang einschränken. Obwohl hier verschiedene Vorteile beschrieben wurden, versteht es sich, dass nicht alle Ausführungsformen notwendigerweise alle Vorteile umfassen. Sofern nicht anders angegeben, handelt es sich bei allen Maßen, Werten, Bewertungen, Positionen, Größenordnungen, Größen und anderen Angaben, die in dieser Anmeldung einschließlich der folgenden Ansprüche angegeben wurden, um Näherungswerte und nicht um exakte Angaben. Sie sollen einen angemessenen Umfang haben, der mit den Funktionen, auf die sie sich beziehen, und dem in der einschlägigen Technik Üblichen im Einklang steht.
  • Zahlreiche weitere Ausführungsformen werden ebenfalls in Betracht gezogen. Dazu gehören Ausführungsformen, die weniger, zusätzliche und/oder abweichende Komponenten, Schritte, Merkmale, Objekte, Nutzen und Vorteile aufweisen. Dazu gehören auch Ausführungsformen, bei denen die Komponenten und/oder Schritte anders angeordnet und/oder gereiht sind.
  • Aspekte der vorliegenden Offenbarung sind hierin unter Bezugnahme auf einen Ablaufplan und/oder ein Blockschaubild eines Verfahrens, einer Vorrichtung (von Systemen) und von Computerprogrammprodukten gemäß Ausführungsformen der Offenbarung beschrieben. Es wird darauf hingewiesen, dass jeder Block der Ablaufpläne und/oder der Blockschaubilder sowie Kombinationen von Blöcken in den Ablaufplänen und/oder den Blockschaubildern mittels durch einen Computer lesbare Programmanweisungen ausgeführt werden können.
  • Diese durch einen Computer lesbaren Programmanweisungen können einem Prozessor eines geeignet konfigurierten Computers, eines Spezialcomputers oder einer anderen programmierbaren Datenverarbeitungseinheit bereitgestellt werden, um eine Maschine zu erzeugen, so dass die über den Prozessor des Computers bzw. der anderen programmierbaren Datenverarbeitungseinheit ausgeführten Anweisungen Mittel zur Umsetzung der in dem Block bzw. den Blöcken der Ablaufpläne und/oder der Blockschaubilder festgelegten 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 Datenverarbeitungseinheit und/oder andere Einheiten so steuern kann, dass sie auf eine Art funktionieren, so dass das durch einen Computer lesbare Speichermedium, auf dem Anweisungen gespeichert sind, ein Herstellungsprodukt aufweist, darunter Anweisungen, welche 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 Prozessschritten auf dem Computer bzw. der anderen programmierbaren Vorrichtung oder anderen Einheit zu verursachen, um einen auf einem Computer ausgeführten Prozess zu erzeugen, so dass 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 festgelegten Funktionen/Schritte umsetzen.
  • Die Anrufabläufe, Ablaufpläne und Blockschaubilder in den Figuren hierin veranschaulichen die Architektur, die Funktionalität und den Betrieb möglicher Ausführungen von Systemen, Verfahren und Computerprogrammprodukten gemäß verschiedenen Ausführungsformen der vorliegenden Offenbarung. In diesem Zusammenhang kann jeder Block in den Ablaufplänen oder Blockschaubildern ein Modul, ein Segment oder einen Teil von Anweisungen zeigen, die eine oder mehrere ausführbare Anweisungen zur Ausführung der bestimmten logischen Funktion(en) aufweisen. In einigen alternativen Ausführungen können die in den Blöcken angegebenen Funktionen in einer anderen Reihenfolge als in den Figuren gezeigt stattfinden. Zwei nacheinander gezeigte Blöcke können zum Beispiel in Wirklichkeit im Wesentlichen gleichzeitig ausgeführt werden, oder die Blöcke können manchmal je nach entsprechender Funktionalität in umgekehrter Reihenfolge ausgeführt werden. Es ist ferner anzumerken, dass jeder Block der Blockschaubilder und/oder der Ablaufpläne sowie Kombinationen aus Blöcken in den Blockschaubildern und/oder den Ablaufplänen durch spezielle auf Hardware beruhende Systeme umgesetzt werden können, welche die festgelegten Funktionen oder Schritte ausführen, oder Kombinationen aus Spezial-Hardware und Computeranweisungen ausführen.
  • Obwohl das Vorstehende in Verbindung mit beispielhaften Ausführungsformen beschrieben wurde, versteht es sich, dass der Begriff „beispielhaft“ lediglich als Beispiel und nicht als das Beste oder Optimum verstanden werden soll. Sofern nicht unmittelbar oben angegeben, ist nichts, was beschrieben oder gezeigt wurde, dazu gedacht oder sollte so interpretiert werden, dass es eine Widmung einer Komponente, eines Schritts, einer Funktion, eines Gegenstands, eines Nutzens, eines Vorteils oder eines Äquivalents für die Öffentlichkeit bewirkt, unabhängig davon, ob dies in den Ansprüchen aufgeführt ist oder nicht.
  • Es versteht sich, dass die hierin verwendeten Begriffe und Ausdrücke die gewöhnliche Bedeutung haben, die diesen Begriffen und Ausdrücken in Bezug auf die entsprechenden jeweiligen Untersuchungs- und Forschungsgebiete zukommt, sofern hierin keine bestimmte Bedeutung angegeben ist. Beziehungsbegriffe wie „erster“ und „zweiter“ und dergleichen dürfen ausschließlich zur Unterscheidung einer Entität oder Handlung von einer anderen verwendet werden, ohne dass notwendigerweise eine tatsächliche Beziehung oder Reihenfolge zwischen solchen Entitäten oder Handlungen erforderlich oder impliziert ist. Die Begriffe „weist auf“, „aufweisend“ oder jede andere Abwandlung davon sollen eine nicht ausschließliche Einbeziehung abdecken, so dass ein Prozess, ein Verfahren, ein Artikel oder eine Vorrichtung, die eine Liste von Elementen aufweist, nicht nur diese Elemente umfasst, sondern auch andere Elemente umfassen kann, die nicht ausdrücklich aufgeführt sind oder einem solchen Prozess, Verfahren, Artikel oder einer solchen Vorrichtung innewohnen. Ein Element, dem ein „ein“ vorangestellt ist, schließt ohne weitere Einschränkungen die Existenz zusätzlicher identischer Elemente in dem Prozess, Verfahren, Artikel oder der Einheit nicht aus, die das Element aufweist.
  • Die Zusammenfassung der Offenbarung soll es dem Leser ermöglichen, schnell die Art der technischen Offenbarung zu erkennen. Sie wird mit der Maßgabe eingereicht, dass sie nicht dazu verwendet wird, den Umfang oder die Bedeutung der Ansprüche zu interpretieren oder einzuschränken. Darüber hinaus ist in der vorstehenden detaillierten Beschreibung ersichtlich, dass verschiedene Merkmale in verschiedenen Ausführungsformen zusammengefasst sind, um die Offenbarung zu vereinfachen. Diese Offenbarungsmethode ist nicht so zu interpretieren, dass sie die Absicht widerspiegelt, dass die beanspruchten Ausführungsformen mehr Merkmale aufweisen, als in jedem Anspruch ausdrücklich aufgeführt sind. Wie aus den folgenden Ansprüchen hervorgeht, liegt der erfinderische Gegenstand vielmehr in weniger als allen Merkmalen einer einzelnen offenbarten Ausführungsform. Daher werden die folgenden Ansprüche hiermit in die detaillierte Beschreibung aufgenommen, wobei jeder Anspruch für sich als gesondert beanspruchter Gegenstand allein steht.

Claims (20)

  1. Einheitliches Speicheradressen-Umsetzungssystem, aufweisend: ein Umsetzungswarteschlangenmodul, das dazu konfiguriert ist, verschiedene Modi von Umsetzungsanforderungen für eine reale Adresse (RA) eines physischen Speichers zu empfangen; eine Umsetzungscache(XLTC)-Schnittstelle, die dazu konfiguriert ist, erfolgreiche Umsetzungsergebnisse für frühere Anforderungen für eine RA zu empfangen und das vorherige erfolgreiche Umsetzungsergebnis an das Umsetzungswarteschlangenmodul auszugeben; mindestens eines von einem Seitentabelleneintragsgruppen(PTEG)-Suchmodul oder einem Segmenttabelleneintragsgruppen(STEG)-Suchmodul, das mit dem Umsetzungswarteschlangenmodul verbunden ist; ein Modul zur Adresserzeugung mit einheitlicher Umsetzungs-Walk-Operation (UTWAG), das dazu konfiguriert ist, eine Umsetzungshilfe für jeden Modus der verschiedenen Modi der Umsetzungsanforderung bereitzustellen; und eine Speicherschnittstelle, die zwischen dem UTWAG und dem physischen Speicher verbunden ist.
  2. System nach Anspruch 1, wobei die XLTC-Schnittstelle, das PTEG-Suchmodul, das STEG-Suchmodul und das Umsetzungswarteschlangenmodul von allen Umsetzungsmodi gemeinsam genutzt werden.
  3. System nach Anspruch 1 oder Anspruch 2, wobei die Modi der Umsetzungsanforderungen mindestens eines aufweisen von: einer Hash-Seitentabellen(HPT)-Anforderung; einer Segmenttabellenanforderung; einer nicht verschachtelten Radixanforderung; und einer verschachtelten Radixanforderung.
  4. System nach Anspruch 3, wobei jede der Umsetzungsanforderungen von einem Sequenzmodul des Umsetzungswarteschlangenmoduls verarbeitet wird.
  5. System nach Anspruch 4, wobei das Sequenzmodul des Umsetzungswarteschlangenmoduls dazu konfiguriert ist, für eine Umlaufvermittlung zwischen den Umsetzungsanforderungen zu sorgen.
  6. System nach einem der vorhergehenden Ansprüche, wobei die Umsetzungshilfen des UTWAG-Moduls mindestens eines umfassen von: einem Erzeugen einer realen Adresse eines Partitionstabelleneintrags (PATE RA GEN); einem Erzeugen einer virtuellen Adresse einer Segmenttabelleneintragsgruppe (STEG VA GEN), das geeignet ist, für eine Umsetzung von einer effektiven Adresse (EA) in eine virtuelle Adresse (VA) zu sorgen; einem Erzeugen einer realen Adresse einer Segmenttabelleneintragsgruppe (STEG RA GEN), das geeignet ist, eine Umsetzung einer virtuellen Zwischenadresse (STEG VA) in eine reale Adresse (RA) zu definieren; einem Erzeugen einer realen Adresse einer Seitentabelleneintragsgruppe (PTEG RA GEN); einem Erzeugen einer realen Radix-Hostadresse (RADIX HOST RA GEN); oder einem Erzeugen einer realen Radix-Gastadresse (RADIX GUEST RA GEN).
  7. System nach einem der vorhergehenden Ansprüche, ferner aufweisend eine endliche Zustandsmaschine, die mit jedem Umsetzungswarteschlangeneintrag des Umsetzungswarteschlangenmoduls verbunden ist.
  8. System nach Anspruch 7, wobei die Zustandsmaschine von allen Umsetzungshilfen des UTWAG-Moduls gemeinsam genutzt wird.
  9. Verfahren zum Bereitstellen einer einheitlichen Speicheradressumsetzung, aufweisend: Empfangen einer Mehrzahl von Umsetzungsanforderungen für eine reale Adresse (RA) eines physischen Speichers durch ein Umsetzungswarteschlangenmodul; Zuweisen jeder der Mehrzahl von Umsetzungsanforderungen zu einem Umsetzungs-Walk-Warteschlangeneintrag des Umsetzungswarteschlangenmoduls; für jeden Umsetzungs-Walk-Warteschlangeneintrag: Ermitteln einer virtuellen Startadresse (VA) und eines Umsetzungsmodus aus einer entsprechenden Umsetzungsanforderung; Bereitstellen einer VA und eines Umsetzungsmodus für ein Modul zur Adresserzeugung mit einheitlicher Umsetzungs-Walk-Operation (UTWAG), das eine Mehrzahl von Umsetzungshilfen aufweist, die verschiedene Umsetzungsmodi unterstützen; und Umsetzen der VA in eine RA durch das UTWAG-Modul auf Grundlage des Umsetzungsmodus.
  10. Verfahren nach Anspruch 9, wobei die Mehrzahl von Umsetzungsanforderungen keinen einheitlichen Modus aufweisen.
  11. Verfahren nach Anspruch 9 oder Anspruch 10, wobei die Mehrzahl von Umsetzungsanforderungen mindestens eines aufweisen von: einer Hash-Seitentabellen(HPT)-Anforderung; einer Segmenttabellenanforderung; einer nicht verschachtelten Radixanforderung; oder einer verschachtelten Radixanforderung.
  12. Verfahren nach einem der Ansprüche 9 bis 11, wobei eine Umsetzungsanforderung der Mehrzahl von Umsetzungsanforderungen von einer Umsetzungscache(XLTC)-Schnittstelle von einem Umsetzungscache (XLTC) empfangen wird, der dazu dient, ein oder mehrere frühere erfolgreiche Umsetzungsergebnisse zu speichern.
  13. Verfahren nach Anspruch 12, wobei die XLTC-Schnittstelle, ein oder mehrere Seitentabelleneintragsgruppen(PTEG)-Suchmodule und das Umsetzungswarteschlangenmodul von allen Umsetzungsmodi gemeinsam genutzt werden.
  14. Verfahren nach Anspruch 12, wobei die Zuweisung jeder Umsetzungsanforderung zu einem der Mehrzahl von Umsetzungs-Walk-Warteschlangeneinträge erfolgt, nachdem festgestellt wurde, dass im XLTC kein passendes vorheriges Ergebnis gefunden wurde.
  15. Verfahren nach Anspruch 9, wobei jeder Umsetzungs-Walk-Warteschlangeneintrag für jeden Taktzyklus eines Prozessors unterschiedlich ist.
  16. Verfahren nach Anspruch 9, ferner aufweisend ein Bereitstellen einer Umlaufvermittlung zwischen der Mehrzahl von Umsetzungs-Walk-Warteschlangeneinträgen.
  17. Verfahren nach Anspruch 9, wobei die Umsetzungshilfen des UTWAG-Moduls mindestens eines bereitstellen von: einem Erzeugen einer realen Adresse eines Partitionstabelleneintrags (PATE RA GEN); einem Erzeugen einer virtuellen Adresse einer Segmenttabelleneintragsgruppe (STEG VA GEN), das für eine Umsetzung einer effektiven Adresse (EA) in eine virtuelle Adresse (VA) sorgt; einem Erzeugen einer realen Adresse einer Segmenttabelleneintragsgruppe (STEG RA GEN), das eine Umsetzung einer virtuellen Zwischenadresse (STEG VA) in eine reale Adresse (RA) definiert; einem Erzeugen einer realen Adresse einer Seitentabelleneintragsgruppe (PTEG RA GEN); einem Erzeugen einer realen Radix-Hostadresse (RADIX HOST RA GEN); oder einem Erzeugen einer realen Radix-Gastadresse (RADIX GUEST RA GEN).
  18. Verfahren nach einem der Ansprüche 9 bis 17, ferner aufweisend ein Verbinden einer endlichen Zustandsmaschine mit jedem Umsetzungswarteschlangeneintrag des Umsetzungswarteschlangenmoduls.
  19. Verfahren nach Anspruch 18, wobei die Zustandsmaschine von allen Umsetzungsmodi gemeinsam genutzt wird.
  20. Computereinheit, aufweisend: einen Prozessor; einen mit dem Prozessor verbundenen Speicher; und ein einheitliches Speicheradressen-Umsetzungssystem nach einem der Ansprüche 1 bis 8, wobei das UTWAG-Modul im Speicher gespeichert ist, und wobei ein Ausführen des UTWAG durch den Prozessor die Computereinheit dazu konfiguriert, die Umsetzungshilfe für jeden Modus der unterschiedlichen Modi der Umsetzungsanforderung bereitzustellen.
DE112022000897.0T 2021-03-11 2022-02-24 Einheitliche speicheradressenumsetzung Pending DE112022000897T5 (de)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US17/199,315 2021-03-11
US17/199,315 US11734188B2 (en) 2021-03-11 2021-03-11 Unified translation miss queue for multiple address translation modes
PCT/EP2022/054650 WO2022189159A1 (en) 2021-03-11 2022-02-24 Unified memory address translation

Publications (1)

Publication Number Publication Date
DE112022000897T5 true DE112022000897T5 (de) 2023-11-16

Family

ID=80952176

Family Applications (1)

Application Number Title Priority Date Filing Date
DE112022000897.0T Pending DE112022000897T5 (de) 2021-03-11 2022-02-24 Einheitliche speicheradressenumsetzung

Country Status (7)

Country Link
US (1) US11734188B2 (de)
JP (1) JP2024508588A (de)
CN (1) CN117063166A (de)
DE (1) DE112022000897T5 (de)
GB (1) GB2619477A (de)
TW (1) TWI823238B (de)
WO (1) WO2022189159A1 (de)

Family Cites Families (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7516247B2 (en) * 2005-08-12 2009-04-07 Advanced Micro Devices, Inc. Avoiding silent data corruption and data leakage in a virtual environment with multiple guests
US9256550B2 (en) * 2012-03-28 2016-02-09 International Business Machines Corporation Hybrid address translation
US9811472B2 (en) 2012-06-14 2017-11-07 International Business Machines Corporation Radix table translation of memory
US9600419B2 (en) * 2012-10-08 2017-03-21 International Business Machines Corporation Selectable address translation mechanisms
US9348757B2 (en) * 2012-10-08 2016-05-24 International Business Machines Corporation System supporting multiple partitions with differing translation formats
TWI524272B (zh) * 2013-09-20 2016-03-01 上海兆芯集成電路有限公司 微處理器及其動態重設方法及偵測方法、及電腦程式產品
GB2536201B (en) * 2015-03-02 2021-08-18 Advanced Risc Mach Ltd Handling address translation requests
US10599569B2 (en) * 2016-06-23 2020-03-24 International Business Machines Corporation Maintaining consistency between address translations in a data processing system
US10552338B2 (en) 2017-02-21 2020-02-04 Arm Limited Technique for efficient utilisation of an address translation cache
US10552937B2 (en) 2018-01-10 2020-02-04 Intel Corporation Scalable memory interface for graphical processor unit
US11847064B2 (en) 2018-12-07 2023-12-19 International Business Machines Corporation Buffer and methods for address translations in a processor
US10817291B2 (en) 2019-03-30 2020-10-27 Intel Corporation Apparatuses, methods, and systems for swizzle operations in a configurable spatial accelerator

Also Published As

Publication number Publication date
JP2024508588A (ja) 2024-02-28
GB2619477A (en) 2023-12-06
CN117063166A (zh) 2023-11-14
TW202240399A (zh) 2022-10-16
WO2022189159A1 (en) 2022-09-15
US20220292028A1 (en) 2022-09-15
US11734188B2 (en) 2023-08-22
GB202314593D0 (en) 2023-11-08
TWI823238B (zh) 2023-11-21

Similar Documents

Publication Publication Date Title
DE112015001977B4 (de) Synchronisieren von Aktualisierungen von Statusanzeigern in einer Datenverarbeitungsumgebung
DE112012004336B4 (de) System, Verfahren und Programmprodukt für kostenbewusste Auswahl von Vorlagen zum Bereitstellen von gemeinsam genutzten Ressourcen
DE102013205572B4 (de) Verwenden von softwarekomponenten-metadaten zum bereitstellen von virtuellen maschinen in einer vernetzten datenverarbeitungsumgebung
DE112019000321T5 (de) Transaktionsoperationen in verteilten Multi-Master-Datenverwaltungssystemen
DE112012004238T5 (de) Auf Erkennung beruhende Identifizierung und Migration von leicht in eine Cloud verlagerbaren Anwendungen
DE112020004699B4 (de) Schützen von arbeitslasten in kubernetes
DE112012003342T5 (de) Dynamisches Anpassen und Begrenzen der Größe des Netzwerkadapterspeichers zur Speicherung von Umsetzungseinträgen für virtuelle Funktionen
DE112019000421B4 (de) Arbeitslastverwaltung mit datenzugriffserkennung in einem datenverarbeitungscluster
DE102012215219A1 (de) Ermitteln von Verteilungen von Abbildmustern von virtuellen Maschinen in einer vernetzten Datenverarbeitungsumgebung
DE112018005898T5 (de) Dynamische bereitstellung von software-funktionen
DE112020000303T5 (de) Testen von speicherschutz-hardware in einer umgebung einer sicheren virtuellen maschine
DE112020000289T5 (de) Abfrage und überlassung von sicherem speicher
DE112021003294T5 (de) Systemverwaltung auf grundlage von leistung und leistungsfähigkeit
DE112020000223T5 (de) Gemeinsame speichernutzung zwischen einer sicheren domäne und einer nicht sicheren entität
DE102021127254A1 (de) Inhaltssensitives Auswählen von Knoten zum Erstellen von Containern
DE112018002955T5 (de) Kognitive datei- und objektverwaltung für verteilte speicherumgebungen
DE112020003929T5 (de) Verwaltung von metadaten von virtuellen speichern
DE112021001408T5 (de) Verwendung kohärent verbundener schnittstellen in einem netzwerkstapelrahmen
DE112020003825T5 (de) Entsprechung zwischen externen Operationen und Containern sowie Mutationsereignissen
DE112017005022T5 (de) Umladen der Bandverarbeitung auf Objektspeicher
DE112021005636T5 (de) Migrieren von komplexen legacy-anwendungen
DE112012006412T5 (de) System zur verteilten Datensuche, Verfahren zur verteilten Datensuche und Managementcomputer
DE102020114272A1 (de) Einsatz von virtuellen Node Clustern in einer mehrmittelbaren Umgebung
DE102012221261A1 (de) Verfahren zum Zwischenspeichern und System zum Ausführen des Verfahrens zum Zwischenspeichern zum Betreiben eines mindestens einen Host-Computer aufweisenden Computerserversystems
DE112021005881T5 (de) Inline datenpakettransformationen

Legal Events

Date Code Title Description
R012 Request for examination validly filed
R084 Declaration of willingness to licence