DE112022003489T5 - Sleep/wake-up-leistungssteigerung für gleichzeitige adressumsetztabellen-walk-operationen - Google Patents

Sleep/wake-up-leistungssteigerung für gleichzeitige adressumsetztabellen-walk-operationen Download PDF

Info

Publication number
DE112022003489T5
DE112022003489T5 DE112022003489.0T DE112022003489T DE112022003489T5 DE 112022003489 T5 DE112022003489 T5 DE 112022003489T5 DE 112022003489 T DE112022003489 T DE 112022003489T DE 112022003489 T5 DE112022003489 T5 DE 112022003489T5
Authority
DE
Germany
Prior art keywords
translation
table walk
request
address
translation request
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
DE112022003489.0T
Other languages
English (en)
Inventor
Charles D. Wait
Jake Truelove
David Campbell
Jody Joyner
Jon K. Kriegel
Glenn O. 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 DE112022003489T5 publication Critical patent/DE112022003489T5/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]

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)

Abstract

Ein Speicheradressumsetzungssystem enthält ein Umsetzungsanfragemodul, das so konfiguriert ist, dass es Umsetzungsanfragen von einer virtuellen Adresse in eine reale Adresse eines physischen Speichers bereitstellt. Ein Umsetzcachemodul ist so konfiguriert, dass es die Umsetzungsanfrage von dem Umsetzungsanfragemodul empfängt. Ein Sleep- und Wake-Steuermodul ist so konfiguriert, dass es die empfangene VA mit VAs aller gegenwärtig aktiven Table Walks der Table-Walk-Maschinen vergleicht. Wenn festgestellt wird, dass es Adressübereinstimmung in einer gegebenen Tabelle vorliegt, wird die Umsetzungsanfrage mit einer Identifikationsnummer (ID) an das Umsetzungsanfragemodul gesendet, um in einen Ruhezustand versetzt zu werden. Jede Table-Walk-Maschine ist so konfiguriert, dass sie nach Abschluss ihrer Umsetzungsstufe ein Aufwecksignal mit einer ID an das Umsetzungsanfragemodul sendet, wodurch ein Aufwachen und Verarbeiten einer gegenwärtig im Ruhezustand befindlichen Umsetzungsanfrage ausgelöst wird, um parallele Umsetz-Table-Walks zu ermöglichen.

Description

  • HINTERGRUND
  • Technisches Gebiet
  • Die vorliegende Offenbarung betrifft allgemein Computersysteme und insbesondere das Verwalten von Speichertabellen in einem Verarbeitungssystem.
  • Beschreibung des verwandten Standes der Technik
  • In den letzten Jahren verwendet das Betriebssystem einer Datenverarbeitungsplattform eine Kombination aus Hardware und Software, um von einem Programm verwendete Speicheradressen, die manchmal als virtuelle Adressen bezeichnet werden, auf physische Adressen im Speicher des Computers abzubilden. Auf diese Weise erscheint der Hauptspeicher als einheitliche Segmente in einem zusammenhängenden Adressraum. Ein Betriebssystem verwaltet virtuelle Adressräume und die Zuweisung von realem (physischem) Speicher zu virtuellem Speicher. Adressumsetzhardware im Prozessor, manchmal auch als Speicherverwaltungseinheit (memory management unit, MMU) bezeichnet, setzt virtuelle Adressen in physische Adressen um. Die Software innerhalb des Betriebssystems kann einen virtuellen Adressraum bereitstellen, der größer ist als die Kapazität des realen Speichers, wodurch mehr Speicher referenziert wird, als physisch in der Datenverarbeitungsplattform vorhanden ist. Durch die Verwendung von virtuellem Speicher kann die Software mehr Speicher nutzen, als physisch vorhanden ist. Virtueller Speicher vereinfacht die Anwendungsprogrammierung, indem er eine Fragmentierung des physischen Speichers verschleiert.
  • Die heutigen Datenverarbeitungssysteme verwenden je nach Art des verwendeten Betriebssystems unterschiedliche Adressumsetzmechanismen. Um mehrere Computersystemumgebungen zu unterstützen, sollte eine Adressumsetzhardware mehrere Seitengrößen bei der Umsetzung von einer virtuellen Adresse (virtual address, VA) in eine reale (d.h. physische) Adresse (RA) unterstützen. Vorliegend handelt es sich bei einer effektiven Adresse (EA) um die Adresse, die ein Programm sieht, bei einer virtuellen Adresse (VA) um die Adresse, die vom Betriebssystem verwendet wird, und bei der realen Adresse (RA) um die Adresse der tatsächlichen Speicherhardware.
  • Bei der Umsetzung einer EA oder VA in eine RA führt ein Prozessor üblicherweise einen zeitintensiven Prozess des Durchführens von Walk-Operationen der Umsetztabellen durch, um die korrekte Adresse zu ermitteln, damit auf die richtige Speicheradresse zugegriffen werden kann. In der Seitentabelle speichert das Betriebssystem seine Abbildungen virtueller Adressen (VA) auf physische Adressen, wobei jede Abbildung auch als Seitentabelleneintrag (page table entry, PTE) bezeichnet wird. Die Ergebnisse der Umsetz-Walk-Operation werden in der Regel zur späteren Verwendung zwischengespeichert. Allerdings wird zunächst der zeitintensive Table-Walk-Prozess ausgeführt, der viele Speicherlesevorgänge und Cache-Zugriffe erfordert und einen Fortschritt der Hardware-Threads oder des gesamten Prozessorkerns aufhalten kann.
  • KURZDARSTELLUNG
  • In verschiedenen Ausführungsformen umfassen ein Verfahren, ein System und eine Datenverarbeitungseinheit zum Bereitstellen einer Speicheradressumsetzung in einer Umgebung mit mehreren Seitengrößen Empfangen einer Umsetzungsanfrage von einer virtuellen Adresse (VA) in eine reale Adresse (RA) eines physischen Speichers. Die empfangenen VA werden mit VAs aller gegenwärtig aktiven Table Walks einer Gruppe von Table-Walk-Maschinen verglichen. Wenn auf Grundlage des Vergleichs festgestellt wird, dass es eine Adressübereinstimmung in einer bestimmten Table-Walk-Maschine der Gruppe von Table-Walk-Maschinen gibt, wird die Umsetzungsanfrage mit einer Identifikationsnummer (ID) an ein Umsetzungsanfragemodul gesendet, um in einen Ruhezustand (sleep) versetzt zu werden. Wenn festgestellt wird, dass die gegebene Table-Walk-Maschine ihre Umsetzstufe abgeschlossen hat, wird ein Weck- (wake-up) Signal mit der ID an das Umsetzungsanfragemodul gesendet, um ein Aufwachen und Verarbeiten der in den Ruhezustand versetzten Umsetzungsanfrage auszulösen. Ein Table Walk der VA der Umsetzungsanfrage mit der ID wird parallel zu einem oder mehreren anderen Table Walks anderer Umsetzungsanfragen der Gruppe von Table-Walk-Maschinen bereitgestellt.
  • In einer Ausführungsform umfasst der Vergleich der empfangenen VA mit den VAs der gegenwärtig aktiven Table Walks für jeden gegenwärtig aktiven Table Walk: Vergleichen virtueller Adressbits der empfangenen VA mit einem Bereich von Adressen in einer Umsetzstufe des gegenwärtig aktiven Table Walk.
  • In einer Ausführungsform wird für jeden aktiven Table Walk ein Zustand (d.h. eine Umsetzstufe) des Table Walk verwendet, um eine Anzahl zu vergleichender Adressbits zu bestimmen, um zu ermitteln, ob eine Adresskollision vorliegt.
  • In einer Ausführungsform umfasst der Vergleich der empfangenen VA mit den VAs der gegenwärtig aktiven Table Walks für jeden gegenwärtig aktiven Table Walk Vergleichen der höchstwertigen Bits (most significant bits, MSBs) der Adresse hinab bis zur Bitgrenze der größten unterstützten Seitengröße.
  • In einer Ausführungsform wird die zu bearbeitende Umsetzungsanfrage direkt von einer Table-Walk-Maschine der Gruppe von Table-Walk-Maschinen gesendet, wenn auf Grundlage des Vergleichs festgestellt wird, dass es in einer bestimmten Table-Walk-Maschine der Gruppe von Table-Walk-Maschinen keine Adressübereinstimmung gibt.
  • In einer Ausführungsform ermittelt ein Umsetzcachemodul bei Empfangen der Umsetzungsanfrage, ob die Umsetzungsanfrage der VA zuvor erfolgreich verarbeitet wurde. Wenn festgestellt wird, dass die Umsetzungsanfrage der VA zuvor nicht erfolgreich verarbeitet wurde, wird die Umsetzungsanfrage direkt an eine oder mehrere Table-Walk-Maschinen gesendet.
  • In einer Ausführungsform enthält die Umsetzungsanfrage mindestens eines der Folgenden: eine HPT- (Hashed Page Table, Hash-Seitentabellen-) Anfrage, eine Segmenttabellenanfrage, eine nichtverschachtelte Radix-Anfrage oder eine verschachtelte Radix-Anfrage.
  • In einer Ausführungsform ist die abgeschlossene Umsetzstufe eine RTDB (Radix Tree Directory Base, Radixstruktur-Verzeichnisbasis) der Stufe 1, die als Basisadresse einer ersten Radix-Umsetztabelle verwendet wird.
  • In einer Ausführungsform ist die nächste Stufe der gegebenen Table-Walk-Maschine ein Seitentabelleneintrag (PTE), der zur Definition eines nächsten Bereichs einer Umsetzung verwendet wird. Eine nächste Stufe könnte auch ein Seitenverzeichniseintrag (page directory entry, PDE) sein. Während ein PTE die physische Adresse des Umsetzvorgangs enthält, enthält ein PDE eine Radixstruktur-Verzeichnisbasis (RTDB), die ein Basiszeiger auf die nächste Radixtabelle ist. Beide können verwendet werden, um einen Adressbereich für den Vergleich zu definieren.
  • Durch die vorliegende Lehre wird eine effizientere Speicheradressumsetzung bereitgestellt, die eine parallele Verarbeitung von Umsetzungsanfragen bietet. Diese und weitere Merkmale werden aus der nachstehenden ausführlichen Beschreibung veranschaulichender Ausführungsformen ersichtlich, die in Zusammenschau mit den begleitenden Zeichnungen zu lesen ist.
  • KURZBESCHREIBUNG DER ZEICHNUNGEN
  • Die Zeichnungen zeigen beispielhafte Ausführungsformen. Sie veranschaulichen nicht alle Ausführungsformen. Andere Ausführungsformen können zusätzlich oder stattdessen verwendet werden. Offensichtliche oder unnötige Einzelheiten werden möglicherweise aus Platzgründen oder zur besseren Veranschaulichung weggelassen. Einige Ausführungsformen können mit zusätzlichen Komponenten oder Schritten und/oder ohne alle dargestellten Komponenten oder Schritte ausgeführt werden. Wenn dasselbe Bezugszeichen in verschiedenen Zeichnungen erscheint, bezieht es sich auf dieselben oder ähnliche Komponenten oder Schritte.
    • 1 ist ein konzeptionelles Blockschaubild eines Speicheradressumsetzsystems, das mehrere parallele Table Walks unterstützt, gemäß einer beispielhaften Ausführungsform.
    • 2 ist ein konzeptionelles Prozessablaufdiagramm für eine Speicheradressumsetzung in einer Umgebung mit mehreren Seitengrößen gemäß einer beispielhaften Ausführungsform.
    • 3A ist ein Beispiel für einen parallelen Sleep/Wake-Table-Walk gemäß einer beispielhaften Ausführungsform.
    • 3B ist eine Tabelle mit zwei Anfragen zur Umsetzung virtueller Adressen, die vom System verarbeitet werden, gemäß einer beispielhaften Ausführungsform.
    • 4 ist ein beispielhafter Prozessablauf für eine Speicheradressumsetzung in einer Umgebung mit mehreren Seitengrößen gemäß einer beispielhaften Ausführungsform.
    • 5 zeigt ein funktionelles Blockdiagramm einer Computerhardware-Plattform, die zum Hosten eines Speicheradressumsetzungssystems verwendet werden kann.
    • 6 zeigt eine Cloud-Computing-Umgebung gemäß einer beispielhaften Ausführungsform.
    • 7 zeigt Abstraktionsmodellschichten in Übereinstimmung mit einer beispielhaften Ausführungsform.
  • AUSFÜHRLICHE BESCHREIBUNG
  • Übersicht
  • In der nachstehenden ausführlichen Beschreibung werden zahlreiche konkrete Einzelheiten anhand von Beispielen dargelegt, um ein umfassendes Verständnis der relevanten Lehre zu ermöglichen. Es sollte jedoch klar sein, dass die vorliegende Lehre auch ohne solche Einzelheiten umgesetzt werden kann. In anderen Fällen wurden bekannte Verfahren, Prozeduren, Komponenten und/oder Schalttechnik relativ allgemein und nicht im Einzelnen beschrieben, um Aspekte der vorliegenden Lehre nicht unnötig zu verschleiern.
  • Die vorliegende Offenbarung betrifft allgemein Systeme und Verfahren zum Verwalten von Speichertabellen in einem Verarbeitungssystem. Heutzutage werden Prozessorkerne entwickelt, die verschiedene Betriebsumgebungen und virtuelle Maschinen unterstützen können. So kann beispielsweise ein Teil eines Datenverarbeitungssystems mit einem Radix-Umsetzmodus arbeiten, bei dem eine Reihe verschachtelter Tabellen anstelle einer einzigen großen Hash-Tabelle verwendet wird, um Seitentabelleneinträge für das jeweilige Betriebssystem (OS) zu finden, während ein anderer Teil des Systems mit einem Power-PC arbeitet, der einen anderen Umsetzmodus für sein entsprechendes Betriebssystem verwendet. Beispielsweise kann ein Hypervisor, der manchmal auch als VM-(virtuelle Maschine) Überwachung (VMM, virtual machine monitor) bezeichnet wird, virtuelle Maschinen (VMs) erstellen und betreiben, indem er das Hypervisor-Betriebssystem und die Ressourcen von den virtuellen Maschinen isoliert und die Erstellung und Verwaltung solcher Maschinen ermöglicht, die auf unterschiedlichen Betriebssystemen beruhen können, aber dieselbe Hardware verwenden. Jedes Betriebssystem kann eine andere Adressumsetzung auf Grundlage anderer Seitentabellen verwenden. Wenn ein Prozess Zugriff auf Daten in seinem Speicher anfragt, ist es die Aufgabe des Betriebssystems, die vom Prozess bereitgestellte virtuelle Adresse (VA) auf die physische Adresse des tatsächlichen Speichers abzubilden, in dem diese Daten gespeichert sind. In der Seitentabelle speichert das Betriebssystem seine Abbildungen virtueller Adressen auf physische Adressen, wobei jede Abbildung auch als Seitentabelleneintrag (PTE) bezeichnet wird. Da verschiedene Betriebssysteme verwendet werden, kann es verschiedene Umsetzeinheiten geben, die vorliegend manchmal als Umsetzmodi bezeichnet werden.
  • PTEs werden üblicherweise verwendet, um die virtuellen Adressen, die ein Betriebssystem sieht, in physische Adressen umzusetzen, die von der Hardware zur Verarbeitung von Anweisungen des Anwendungsprogramms verwendet werden. Die Hardware, die einen solchen Umsetzvorgang vornimmt, wird manchmal als Speicherverwaltungseinheit (MMU) bezeichnet. Jeder Eintrag in einer Seitentabelle enthält eine Angabe darüber, ob sich die entsprechende Seite im physischen Speicher befindet oder nicht. Befindet sie sich im physischen Speicher, enthält der Seitentabelleneintrag die tatsächliche Speicheradresse, unter der die Seite gespeichert ist. Wenn die Hardware auf eine Seite verweist und der Seitentabelleneintrag für die Seite anzeigt, dass sie sich derzeit nicht im physischen Speicher befindet, löst die Hardware eine Seitenfehlerausnahme (page fault exception) aus und ruft die Aufruf-Supervisor-Komponente des Betriebssystems auf.
  • Heutzutage können hochentwickelte Computersysteme mehrere Seitengrößen unterstützen, was bei der Implementierung leistungssteigernder gleichzeitiger Table Walks Probleme aufwirft. Wenn ein Hardware-Design über mehrere Table-Walk-Engines verfügt, überprüft eine neue Umsetzungsanfrage die aktuell aktiven Table-Walk-Engines auf Kollisionen zwischen virtuellen Adressen. Adresskollisionen treten auf, wenn zwei VAs auf dieselbe Seite umsetzen.
  • Wenn eine neue VA-Umsetzungsanfrage möglicherweise dieselbe Seite betrifft wie ein aktiver Umsetz-Table-Walk, wird sie in der Regel blockiert, um mehrere Einträge im Umsetzcache für dieselbe Seite zu vermeiden. Ein solches Blockieren macht die leistungssteigernden Vorteile mehrerer Hardware-Table-Walk-Engines zunichte.
  • Die vorliegende Lehre stellt eine Sleep- und/oder Wake-up-Schnittstelle sowie eine unterstützende Hardwarelogik zwischen einem Umsetzungsanfrager und mehreren Umsetz-TW- (Table Walk) Engines bereit, um eine Überlappung gleichzeitiger Table Walks zu ermöglichen. Wenn eine neue Umsetzungsanfrage eingeht, verwendet das System den Fortschrittsstatus einer aktiven Table-Walk-Engine, um die Anzahl zu vergleichender VA-Bits zu ermitteln. Bei mehreren aktiven TW-Engines erzeugt jede Engine ihren eigenen Bereich von VA-Bits auf Grundlage ihres individuellen Umsetz-Walk-Fortschritts. Das Ergebnis des Vergleichs bestimmt, ob der neue Umsetzvorgang in einen Ruhe- („Sleep“-) Modus versetzt wird. Der neue Umsetzvorgang empfängt einen Weckruf („Wake-up“), wenn die aktive TW-Engine die nächste Umsetzstufe erreicht hat, was eine gleichzeitige Überlappung ermöglicht.
  • Gemäß einem Aspekt der vorliegenden Offenbarung werden neue Anfragen nur vorübergehend „ruhiggestellt“, bis die aktive TW-Engine garantieren kann, dass die neue Anfrage nicht dieselbe Seite nutzt. An diesem Punkt „weckt“ der aktive Table Walk die neue Anfrage auf, so dass sie nicht nur parallel arbeiten kann, sondern auch den aktuellen (d.h. aktiven) Umsetz-Walk-Fortschritt nutzen kann. Beispielsweise kann die neue Anfrage den aktiven Umsetz-Walk-Fortschritt nutzen, wenn der aktive Walk Zwischenergebnisse im Umsetzcache speichert. In einigen Szenarien wird ein separater Seiten-Walk-Cache (page walk cache, PWC) für diese Zwischenergebnisse verwendet.
  • In einer Ausführungsform, in der mehrere Seitengrößen unterstützt werden, vergleicht die Adresskollisionslogik die höchstwertigen Bits (MSBs) der Adresse hinab bis zur Bitgrenze der größten unterstützten Seitengröße. Ohne die vorliegend enthaltene Lehre würde die neue Anfrage blockiert werden, bis der aktive Umsetzvorgang, der die Adresskollision verursacht hat, aufgelöst ist, wodurch das Datenverarbeitungssystem erheblich verlangsamt würde.
  • Dementsprechend bietet die vorliegende Lehre ein Computersystem und Verfahren für einen Prozessor, der mehrere Seitengrößen und gleichzeitige Table Walks unterstützt. Die vorliegend beschriebenen Methoden können auf verschiedene Weise umgesetzt werden. Beispielhafte Implementierungen werden im Folgenden unter Bezugnahme auf die nachstehenden Figuren dargestellt.
  • Beispielhafte Architektur
  • Es wird nun auf 1 Bezug genommen, die ein konzeptionelles Blockdiagramm eines Speicheradressumsetzsystems 100, das mehrere parallele Table Walks unterstützt und manchmal als Speicherverwaltungseinheit (MMU) bezeichnet wird, gemäß einer beispielhaften Ausführungsform darstellt. Das System 100 enthält einen Umsetzungsanfrager 102, der so konfiguriert ist, dass er eine Anfrage für eine RA auf Grundlage einer VA bereitstellt. Bei der Umsetzungsanfrage kann es sich beispielsweise um eine HPT (hashed page table Hash-Seitentabellen) Umsetzungsanfrage, eine Segmenttabellen-Umsetzungsanfrage, eine nichtverschachtelte Radix-Anfrage, eine verschachtelte Radix-Anfrage usw. handeln.
  • Es gibt eine Schnittstelle 110 zwischen Umsetzcache und Adressumsetzpuffer (translation lookaside buffer, TLB), die so konfiguriert ist, dass sie die Cacheanfrage vom Umsetzungsanfragemodul 102 empfängt und die Anfrage an eine oder mehrere Table-Walk-(TW-) Maschinen 130 bis 136 und das Sleep- und Wake-Steuermodul 120 abhängig davon bereitstellt, ob im TLB ein Adressfehler 126 vorliegt. Der TLB ist ein Speichercache, der dazu dient, die Zeit, die für einen Zugriff auf einen Benutzerspeicherplatz benötigt wird, zu verkürzen. Der TLB 110 speichert frühere erfolgreiche Umsetzergebnisse. Der TLB 110 kann zum Beispiel verschiedene Arten von früheren Umsetzvorgängen enthalten, wie EA nach VA, VA nach RA und EA nach RA. Wenn eine zuvor erfolgreiche Umsetzungsanfrage für eine ähnliche Anfrage vom TLB 110 gefunden wird (d.h. TLB-„Treffer“), wird die Anfrage mit der physischen RA an den Umsetzungsanfrager zurückgeschickt. Wenn jedoch die neue Umsetzungsanfrage 104 vom Umsetzungsanfragemodul 102 im TLB 110 fehlt (d.h. eine zuvor erfolgreiche Umsetzungsanfrage wird in Bezug auf die aktuelle Adresse nicht identifiziert, daher ein TLB-Nullergebnis), wird die neue Anfrage-VA 104 an das Sleep- und Wake-Steuermodul 120 weitergeleitet.
  • Das Sleep- und Wake-Steuermodul 120 vergleicht die empfangene virtuelle Adresse mit virtuellen Adressen gegenwärtig aktiver Table Walks (z.B. 130 bis 136). Der Adressbereich wird durch den Zustand des Table Walk konfiguriert. Vorliegend bezieht sich der Status eines Table Walks auf die Stufe der Radixstruktur, auf der der aktive Table Walk gerade arbeitet. Wenn der aktive Walk beispielsweise auf Stufe 2 arbeitet, wäre der zu vergleichende Adressbereich 12:33, für Stufe 3 wäre er 12:42 usw.
  • Wenn festgestellt wird, dass es eine Adressübereinstimmung in einem gegenwärtig aktiven Table Walk gibt, wird die neue Umsetzungsanfrage 106 an das Umsetzungsanfragemodul 102 zurückgeschickt, zusammen mit einer Ruhigstellungsanfrage (z.B. „Ruhigstellung“ auf Aktivem TW (Anf_ID). Dementsprechend speichert das Umsetzungsanfragemodul 102 die neue Umsetzungsanfrage als eine im Ruhezustand befindliche Anfrage (z.B. 103) mit einer entsprechenden Anfrageidentifikationsnummer (ID). Gibt es jedoch keine Adressübereinstimmung, wird die neue Umsetzungsanfrage 122 einer TW-Maschine (z.B. 130 bis 136) zugeteilt. In einer Ausführungsform gibt es einen direkten Pfad vom Umsetzscache 110 zu den Table-Walk-Maschinen 130 bis 136. Dieser Pfad 124 ist so konfiguriert, dass er die VA direkt an die Table-Walk-Maschinen 130 bis 136 bereitstellt. Wenn Zwischenergebnisse aus einem aktiven TW im Umsetzscache 110 gespeichert wurden, könnte der Pfad 124 diese auch für eine neue Umsetzungsanfrage bereitstellen.
  • Die aktive Table-Walk-Maschine schließt eine entsprechende Radixumsetzstufe ab (z.B. L1, L2, L3, L4 usw.) und sendet ein „Weck“-Signal 140 mit der entsprechenden ID an das Umsetzungsanfragemodul 102, wodurch das Umsetzungsanfragemodul 102 veranlasst wird, die nun im Ruhezustand befindliche Umsetzungsanfrage auf Grundlage der empfangenen ID erneut zu senden. Wenn eine neue Umsetzungsanfrage „ruhiggestellt“ wird, handelt es sich um die aktive TW-ID mit der damit verbundenen Adresskollision. Wenn der aktive TW eine Radixstufe abgeschlossen hat, sendet er seine ID 140 an den Umsetzungsanfrager 102, der dann alle im Ruhezustand befindlichen „neuen“ Anfragen 103 mit derselben ID aufweckt. In einer Ausführungsform können mehr als eine im Ruhezustand befindliche Anfrage durch eine einzige ID aktiviert (d.h. aufgeweckt) werden.
  • Es wird nun auf 2 Bezug genommen, die ein konzeptionelles Prozessflussdiagramm für eine Speicheradressumsetzung in einer Umgebung mit mehreren Seitengrößen gemäß einer beispielhaften Ausführungsform darstellt. Als Beispiel und nicht als Einschränkung seien zwei Radix-Umsetzungsanfragen von 64-Bit-VAs angenommen, bei denen die unterstützten möglichen Seitengrößen 1G, 2M und 4K betragen. Ohne die vorliegende Lehre würde jede Umsetzungsanfrage im gleichen 1G-Adressbereich VA (0:33) <big endian> blockiert werden, wenn es in diesem Bereich einen aktiven Table Walk gibt, unabhängig davon, wie groß die tatsächliche (unbekannte) Seitengröße sein mag. Wenn die tatsächliche Seitengröße 4k beträgt, werden (250.000- 1) andere mögliche 4k-Seitenumsetzungen abrupt blockiert, wodurch jegliche Überlappung von Table Walks verhindert wird.
  • Es wird nun auf 3A und 3B Bezug genommen, die ein Beispiel für einen parallelen Sleep-/Wake-Table-Walk gemäß einer beispielhaften Ausführungsform zeigen. Beispielsweise wird während eines Radix-Umsetz-Walk auf jeder Ebene des Umsetz-Walk auf Sätze von Umsetztabellen zugegriffen. Die VA ist in getrennte Gruppen von Adressbits unterteilt, wobei jede Gruppe zum Indexieren in eine Umsetztabelle auf einer bestimmten Umsetzungsstufe (z.B. L1 bis L4 in 3A) verwendet wird. Der Umsetztabelleneintrag enthält die Basisadresse einer Umsetztabelle auf der nächsten Umsetz-Walk-Stufe, die dann durch die nächste Gruppe von VA-Bits indiziert wird.
  • 3B ist eine Tabelle mit zwei Anfragen zur Umsetzung virtueller Adressen, die vom System verarbeitet werden, gemäß einer beispielhaften Ausführungsform. VA' steht für eine erste (z.B. vorhandene) Umsetzungsanfrage, die gerade von einer Table-Walk-Engine bearbeitet wird, während VA" für eine zweite (d.h. neue) Umsetzungsanfrage steht, die nach der ersten Umsetzungsanfrage empfangen wird. Wie im Beispiel von 3B dargestellt, ist die Adresse auf Stufe 1 (d.h. (12:24)) dieselbe (d.h. X017), was möglicherweise zu einer Umsetzungskollision führt. In diesem Zusammenhang wird VA'' in den Ruhezustand versetzt, bis der aktive Table Walk für Stufe 1 für VA' abgeschlossen ist. Auch auf Ebene 2 (d.h. (25:33)) ist die Adresse dieselbe (d.h. X29). Folglich wird VA'' blockiert (z.B. in den Ruhezustand versetzt), bis diese Stufe 2 für VA' von der entsprechenden Table-Walk-Engine abgeschlossen wird.
  • Im Gegensatz dazu zeigt ein Vergleich zwischen VA' und VA'' für Stufe 3 an, dass die Adressen für diese Umsetzungsstufe unterschiedlich sind (d.h. X1E vs. X07), so dass VA' und VA'' gleichzeitig (z.B. parallel) von der gleichen Table-Walk-Engine verarbeitet werden können. Dementsprechend erleichtert die vorliegende Lehre eine effiziente Verarbeitung von Adressumsetzungsanfragen, die eine Parallelisierung der Verarbeitung maximiert und dadurch den Durchsatz von Speicheradressumsetzungen erheblich steigert, selbst wenn die Seitengrößen unterschiedlich sind.
  • Unter erneuter Bezugnahme auf 2 sei beispielsweise ein Radix-Table-Walk von VA(12:63) 202 angenommen. Da die geringste Seitengröße 4 K beträgt (siehe L4 in 3A), kann VA(12:51) in eine Real- (Adress-) Seitenzahl, RPN (real page number) (12:51), umgesetzt werden.
  • Die Radixstruktur-Verzeichnisbasis (RTDB) der Stufe 1 ist die Basisadresse der ersten Radixumsetztabelle und eine vom System bereitgestellte RA. VA(12:24) 204 werden verwendet, um in diese Umsetztabelle zu indizieren, und der abgerufene Eintrag enthält die RTDB der Stufe 2. VA(25:33) 206 indexiert die Tabelle der Stufe 2, um die RTDB der Stufe 3 zu finden. VA(34:42) 208 indiziert die Tabelle der Stufe 3, um die RTDB der Stufe 4 zu finden. Schließlich indiziert VA(43:51) 210 die Tabelle der Stufe 4, um den Seitentabelleneintrag (PTE) zu finden, der die Umsetzung von VA(12:51) nach RPN(12:51) definiert.
  • In einer Ausführungsform speichert der aktive Walk Zwischenergebnisse in einem Umsetzcache. Ein separater Seiten-Walk-Cache (page walk cache, PWC) kann für Zwischenergebnisse verwendet werden. Zum Beispiel zeigt 206 auf eine RTDB, die durch den aktiven Walk gefunden wurde. Wenn sie zwischengespeichert wird, könnte sie von einer neuen „aufgeweckten“ Umsetzungsanfrage verwendet werden, wodurch der Status des aktuellen aktiven Table Walk genutzt wird.
  • Es sei darauf hingewiesen, dass die RTDB als Basisadresse der Umsetztabelle nur als Beispiel und nicht als Einschränkung angegeben ist. Es könnten auch andere Zeiger verwendet werden. In einer Ausführungsform könnte der Tabelleneintrag der Stufe 2 zum Beispiel ein PTE anstelle einer RTDB sein. In dieser Ausführungsform kann die Seitengröße 1 G betragen. In ähnlicher Weise könnte der Tabelleneintrag der Stufe 3 ein PTE sein; in diesem Fall beträgt die Seitengröße 2 M, wie in der Tabelle in 3A dargestellt.
  • In einer Ausführungsform wird auf jeder Stufe der Struktur die Abbildung einer VA auf RTDB in einem Seiten-Walk-Cache (PWC) gespeichert, um nachfolgende Table Walks zu beschleunigen. Ein PWC-Eintrag für VA(12:42) liefert zum Beispiel die RTDB der Stufe 4.
  • Wenn eine neue Umsetzungsanfrage von einer Gruppe von Table-Walk- (TW-) Engines empfangen wird, führt das System einen Adresskollisionsvergleich mit aktiven TW-Engines durch. Wenn VA(12:33) einer aktiven TW-Engine (1-G-Grenze) mit der neuen Anfrage übereinstimmt und die TW-Engine noch nicht auf den L2-Umsetztabelleneintrag zugegriffen hat, wird die neue Anfrage vorübergehend „ruhiggestellt“, bis die aktive TW-Engine festgestellt hat, dass kein 1-G-PTE (L2) vorhanden ist. Anders ausgedrückt: Die neue Anfrage wird vorübergehend „ruhiggestellt“, bis die aktive TW-Engine auf den Tabelleneintrag der Stufe 2 zugegriffen hat - und, falls es sich nicht um einen PTE handelt, zur Verarbeitung der Stufe 3 übergegangen ist. Da die größte in diesem Beispiel unterstützte Seitengröße 1G beträgt, entspricht sie der Stufe 2 der Radixstruktur, die wiederum (12:33) entspricht.
  • In diesem Szenario hält der Umsetzungsanfrager seine Anfrage zurück, bis die aktive TW-Engine ein Aufwecksignal sendet. Die TW-Engine sendet nach dem Zugriff auf den L2-Tabelleneintrag das Aufwecksignal und beginnt mit dem Zugriff auf den L3-Eintrag.
  • Zu diesem Zeitpunkt wird die neue Umsetzungsanfrage erneut an die Gruppe aus einer oder mehreren TW-Engines gesendet, und es werden erneut VA(12:33) verglichen. Diesmal ist die aktive TW-Engine jedoch über die L2-Umsetztabelle hinausgekommen, so dass bei diesem Vergleich kein Ruhigstellungssignal erzeugt wird.
  • Wenn die aktive TW-Engine jedoch noch nicht auf die L3-Umsetztabelle zugegriffen hat, wird der VA-Vergleich auf VA(12:42) erweitert. Wenn die VAs per Vergleich nicht übereinstimmen, wird die neue Anfrage einer untätigen (z.B. verfügbaren) TW-Engine zugewiesen und die beiden Umsetz-Walks können unvermindert parallel arbeiten.
  • Wenn eine neue Umsetzungsanfrage eingeht, verwendet das System den Fortschrittsstatus eines aktiven TW-Eintrags (d.h. die Umsetzungsstufe), um eine Anzahl zu vergleichender VA-Bits zu bestimmen. Es ist zu beachten, dass bei mehreren aktiven TW-Engines jede Engine ihren eigenen Bereich von VA-Bits auf Grundlage ihres individuellen Umsetz-Walk-Fortschritts erzeugt.
  • In einer Ausführungsform werden, wenn die aktive TW-Engine das „Aufweck“-Signal sendet, nicht nur Umsetz-Walks parallel betrieben, sondern auch die PWC für VA(12:33) einschließlich der RTDB der Stufe 3 geschrieben, die die neue Anfrage sofort nutzen kann. Wenngleich nicht explizit beschrieben, unterstützt die vorliegende Lehre auch einen „Sleep/Wakeup“-Fluss bei einer VA(12:42)-Kollision mit einer aktiven TW-Engine, die noch nicht auf die L3-RTDB (2-M-Grenze / potenzieller PTE) sowie auf höhere Ebenen zugegriffen hat.
  • Beispielhafter Prozess
  • Nach dem vorangegangenen Überblick über die Beispielsysteme 100 und 200 kann es nun hilfreich sein, einen Beispielprozess allgemein zu erörtern. Hierzu zeigt 4 ein beispielhaftes Verfahren 400 zur Umsetzung von Speicheradressen bei gleichzeitiger Unterstützung paralleler Table Walks gemäß einer beispielhaften Ausführungsform. Der Prozess 400 wird als eine Sammlung von Blöcken in einem logischen Ablaufplan dargestellt, der eine Abfolge von Operationen darstellt, die in Hardware, Software oder einer Kombination aus diesen implementiert werden können. Im Zusammenhang mit Software stellen die Blöcke durch einen Computer ausführbare Anweisungen dar, die bei Ausführung durch einen oder mehrere Prozessoren die genannten Operationen durchführen. Im Allgemeinen können durch einen Computer ausführbare Anweisungen Routinen, Programme, Objekte, Komponenten, Datenstrukturen und dergleichen umfassen, die Funktionen ausführen oder abstrakte Datentypen implementieren. In jedem Prozess ist die Reihenfolge, in der die Operationen beschrieben werden, nicht als Einschränkung zu verstehen, und eine beliebige Anzahl der beschriebenen Blöcke kann in beliebiger Reihenfolge kombiniert und/oder parallel ausgeführt werden, um den Prozess durchzuführen. Zu Diskussionszwecken wird der Prozess 400 unter Bezugnahme auf die Architektur aus 1 beschrieben.
  • In Block 402 empfängt der Umsetzcache 110 eine Umsetzanfrage von einer virtuellen Adresse (VA) in eine reale Adresse (RA) eines physischen Speichers.
  • In Block 404 vergleicht der Umsetzcache 110 die empfangene VA mit den VAs aller gegenwärtig aktiven Table Walks einer Gruppe von Table-Walk-Maschinen 130 bis 136.
  • Wenn auf Grundlage des Vergleichs festgestellt wird, dass es in einer gegebenen Table-Walk-Maschine einer Gruppe von Table-Walk-Maschinen keine Adressübereinstimmung gibt (d.h. „Nein“ im Ermittlungsblock 406), wird die Anfrage an Block 414 weitergeleitet, wo eine Table-Walk-Maschine (z.B. 130 der Gruppe von Table-Walk-Maschinen 130 bis 136) die Umsetzanfrage verarbeitet.
  • Wenn jedoch festgestellt wird, dass es eine Adressübereinstimmung in einer gegebenen Table-Walk-Maschine einer Gruppe von Table-Walk-Maschinen gibt (d.h. „Ja“ im Ermittlungsblock 406), wird der Prozess mit Block 408 fortgesetzt, in dem die Umsetzungsanfrage mit einer Identifikationsnummer (ID) an ein Umsetzungsanfragemodul zurückgegeben wird, um in einen Ruhezustand versetzt zu werden. Anders ausgedrückt: Die Umsetzungsanfrage wird vorübergehend blockiert.
  • In Block 410 wird ermittelt, ob die gegebene Table-Walk-Maschine ihre Umsetzungsstufe abgeschlossen hat. Ist dies der Fall (d.h. „Ja“ im Bestimmungsblock 410), wird der Prozess mit Block 412 fortgesetzt, in dem ein Aufwecksignal mit der ID 140 an das Umsetzungsanfragemodul 102 gesendet wird, um ein Aufwachen und Verarbeiten 414 der ruhiggestellten Umsetzungsanfrage (z.B. 103) auszulösen. In einer Ausführungsform wird der Prozess mit Block 404 fortgesetzt, in dem der Umsetzcache 110 die empfangene VA mit den VAs aller gegenwärtig aktiven Table Walks einer Gruppe von Table-Walk-Maschinen 130 bis 136 vergleicht, wenn eine „ruhiggestellte“-Anfrage ein Wecksignal empfängt. Der nächste Adressvergleich umfasst mehr Bits, da der aktive TW eine Stufe abgeschlossen hat. Auf diese Weise wird ein Table Walk der VA der Umsetzungsanfrage mit der ID parallel zu einem oder mehreren anderen Table Walks anderer Umsetzungsanfragen der Gruppe von Table-Walk-Maschinen (z.B. 130 bis 136) ermöglicht.
  • Beispielhafte Computerplattform
  • In einer Ausführungsform können Funktionen, die sich auf das Bereitstellen eines Systems zur Umsetzung von Speicheradressen beziehen, das maximale Parallelität ermöglicht, mithilfe einer oder mehrerer Datenverarbeitungseinheiten ausgeführt werden. 5 zeigt ein funktionelles Blockdiagramm einer Computerhardware-Plattform 500, die zum Hosten einer Speicheradressumsetzungseinheit 540 verwendet werden kann.
  • Die Computerplattform 500 kann eine Zentraleinheit (CPU) 504, ein Festplattenlaufwerk (HDD) 506, einen Direktzugriffsspeicher (RAM) und/oder einen 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 Festplatte 506 über Fähigkeiten, die Speichern eines Programms umfassen, das verschiedene Prozesse, wie die Speicheradressumsetzungseinheit 540, in einer vorliegend beschriebenen Weise ausführen kann. Die Speicheradressumsetzungseinheit 540 kann verschiedene Module besitzen, die so konfiguriert sind, dass sie unterschiedliche Funktionen ausführen, wie sie beispielsweise im Zusammenhang mit 1 und 2 beschrieben sind. Zum Beispiel kann ein Umsetzungsanfrager Umsetzungsanfragen von einer VA in eine RA bereitstellen. Es kann ein Sleep- und Wake-Steuermodul 544 vorhanden sein, das einen Status der gegenwärtig aktiven Table-Walk-Maschinen ermittelt und den Ruhigstellungs- und Aufweckstatus seiner Anfragen entsprechend steuert. Es kann ein Umsetzcache vorhanden sein, der so konfiguriert ist, dass er die Cache-Anfrage vom Umsetzungsanfragemodul 542 empfängt und sie an eine oder mehrere Table-Walk- (TW-) Maschinen (z.B. 548 bis 552) oder das Sleep- und Wake-Steuermodul 546 in Abhängigkeit davon weiterleitet, ob es einen Adress-„Treffer“ oder ein Adress-„Nullergebnis“ gibt Diese Module können alle vorliegend beschriebenen sowie weitere Funktionen erfüllen.
  • Während die Module 542 bis 552 in 5 als Teil der Festplatte 506 dargestellt sind, können in einigen Ausführungsformen eines oder mehrere dieser Module in der Hardware der Datenverarbeitungseinheit 500 implementiert sein. Zum Beispiel können die vorliegend besprochenen Module teilweise in Form von Hardware und teilweise in Form von Software implementiert werden. Das heißt, eine oder mehrere der Komponenten der in 5 gezeigten Speicheradressumsetzungseinheit 540 können in Form von elektronischen Schaltungen mit Transistor(en), Diode(n), Kondensator(en), Widerstand(/Widerständen), Induktor(en), Varaktor(en) und/oder Memristor(en) implementiert werden. Mit anderen Worten: Die Speicheradressumsetzungseinheit 540 kann mit einer oder mehreren speziell entwickelten elektronischen Schaltungen implementiert werden, die bestimmte, vorliegend beschriebene Aufgaben und Funktionen durch Komponenten der CPU und/oder Module des RAM/ROM 508 ausführen.
  • Beispielhafte Cloud-Plattform
  • Wie vorstehend beschrieben, können Funktionen, die sich auf die Bereitstellung eines einheitlichen Systems zur Umsetzung von Speicheradressen beziehen, eine verteilte Datenverarbeitungs- und/oder Speicherarchitektur wie in einer Cloud umfassen. Es sei klargestellt, dass das Umsetzen der hierin angeführten Lehre nicht auf eine Cloud-Computing-Umgebung beschränkt ist, auch wenn diese Offenbarung eine ausführliche Beschreibung von Cloud-Computing enthält. Stattdessen können Ausführungsformen der vorliegenden Offenbarung gemeinsam mit jeder beliebigen Art von jetzt bekannter oder später erfundener Datenverarbeitungsumgebung implementiert werden.
  • Cloud-Computing ist ein Dienstbereitstellungsmodell 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 Dienstes schnell bereitgestellt und freigegeben werden können. Dieses Cloud-Modell kann mindestens fünf Eigenschaften enthalten, mindestens drei Dienstmodelle und mindestens vier Implementierungsmodelle.
  • 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 des Dienstes 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 Inanspruchnahme 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 Netzwerk aus zusammengeschalteten Knoten aufweist.
  • Unter Bezugnahme auf 6 ist eine veranschaulichende Cloud-Computing-Umgebung 600 abgebildet. Wie gezeigt ist, 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 Dienste 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 654A-N lediglich veranschaulichend 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 vorab klar sein, dass die in 7 gezeigten Komponenten, Schichten und Funktionen lediglich veranschaulichend 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 enthält Hardware- und Software-Komponenten. 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 umfassen Software-Komponenten 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 die Verwaltungsschicht 780 die nachstehend 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 die Inanspruchnahme dieser Ressourcen bereit. In einem Beispiel können diese Ressourcen Anwendungs-Software-Lizenzen aufweisen. Die Sicherheit stellt die Identitätsüberprüfung für Cloud-Kunden 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 Workload-Schicht 790 stellt Beispiele für die Funktionalität bereit, für welche die Cloud-Computing-Umgebung verwendet werden kann. Zu Beispielen für Workloads und Funktionen, die von dieser Schicht bereitgestellt werden können, gehören: Abbildung und Navigation 791; Software-Entwicklung und Lebenszyklusverwaltung 792; Bereitstellung von Ausbildung in virtuellen Klassenzimmern 793; Datenanalytikverarbeitung 794; Transaktionsverarbeitung 795; und Umsetzungs-Engine 796, wie vorliegend erörtert.
  • Fazit
  • Die Beschreibungen der verschiedenen Ausführungsformen der vorliegenden Lehre wurden für Zwecke der Veranschaulichung dargelegt, sind jedoch nicht als abschließend oder auf die Ausführungsformen beschränkt zu verstehen. Für den Fachmann sind viele Abwandlungen und Variationen ersichtlich, ohne vom Umfang und Grundgedanken der beschriebenen Ausführungsformen abzuweichen. Die hierin verwendete Terminologie wurde gewählt, um bestmöglich die Grundgedanken der Ausführungsformen, der praktischen Anwendung oder technischen Verbesserung gegenüber den auf dem Markt erhältlichen Technologien zu erklären oder um dem Fachmann das Verständnis der hierin offenbarten Ausführungsformen zu ermöglichen.
  • Während das Vorstehende den besten Zustand und/oder andere Beispiele beschrieben hat, versteht es sich, dass verschiedene Änderungen daran vorgenommen werden können und dass der vorliegend offenbarte Gegenstand in verschiedenen Formen und Beispielen umgesetzt werden kann und dass die Lehre in zahlreichen Anwendungen angewendet werden kann, von denen hier nur einige beschrieben wurden. Mit den folgenden Ansprüchen wird beabsichtigt, alle Anwendungen, Modifikationen und Variationen zu beanspruchen, die in den tatsächlichen Anwendungsbereich der vorliegenden Lehre fallen.
  • Die vorliegend besprochenen Komponenten, Schritte, Merkmale, Objekte, Vorteile und Nutzen sind lediglich beispielhaft. Keiner dieser Aspekte und auch nicht die diesbezüglichen Diskussionen zielen darauf ab, den Schutzumfang zu begrenzen. Auch wenn vorliegend verschiedene Vorteile erörtert wurden, ist klar, dass nicht alle Ausführungsformen notwendigerweise alle Vorteile enthalten. Sofern nicht anders angegeben, sind alle Maße, Werte, Nennwerte, Positionen, Größenordnungen, Größen und andere Angaben, die in dieser Spezifikation, einschließlich der folgenden Ansprüche, angeführt werden, nicht exakt, sondern lediglich approximativ. Sie sollen einen angemessenen Umfang haben, der mit den Funktionen, auf die sie sich beziehen, und mit dem, was in dem Fachgebiet, zu dem sie gehören, üblich ist, vereinbar ist.
  • Es sind auch zahlreiche andere Ausführungsformen denkbar. Dazu gehören Ausführungsformen, die weniger, zusätzliche und/oder andere Komponenten, Schritte, Merkmale, Gegenstände, Nutzen und Vorteile aufweisen. Dazu gehören auch Ausführungsformen, bei denen die Komponenten und/oder Schritte anders angeordnet und/oder geordnet sind.
  • Aspekte der vorliegenden Erfindung sind vorliegend unter Bezugnahme auf einen Ablaufplan und/oder ein Blockschaubild von Verfahren, Vorrichtungen (Systemen) und Computerprogrammprodukten gemäß Ausführungsformen der vorliegenden Offenbarung beschrieben. Es versteht sich, 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 lesbarer Programmanweisungen ausgeführt werden können.
  • Diese durch einen Computer lesbaren Programmanweisungen können einem Prozessor eines in geeigneter Weise konfigurierten Computers, eines Spezialcomputers oder einer anderen programmierbaren Datenverarbeitungsvorrichtung bereitgestellt werden, um eine Maschine zu erzeugen, so dass die über den Prozessor des Computers bzw. der anderen programmierbaren Datenverarbeitungsvorrichtung ausgeführten Anweisungen ein 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 Datenverarbeitungsvorrichtung und/oder andere Einheiten so steuern kann, dass sie auf eine bestimmte 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.
  • Der Aufruffluss, der Ablaufplan und die Blockschaltbilder bzw. Schaubilder in den Figuren 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 darstellen, 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 durchführen, oder Kombinationen aus Spezial-Hardware und Computeranweisungen ausführen.
  • Auch wenn das Vorstehende in Verbindung mit beispielhaften Ausführungsformen beschrieben wurde, versteht es sich, dass der Ausdruck „beispielhaft“ lediglich als ein Beispiel und nicht als das Beste oder Optimale zu verstehen ist. Abgesehen von den vorstehend genannten Ausnahmen ist nichts von dem, was gesagt oder abgebildet wurde, dazu bestimmt oder sollte so ausgelegt werden, dass es zu einer Widmung einer Komponente, eines Schritts, eines Merkmals, eines Objekts, eines Nutzens, eines Vorteils oder eines Äquivalents für die Öffentlichkeit führt, unabhängig davon, ob es in den Ansprüchen erwähnt wird oder nicht.
  • Es versteht sich, dass die vorliegend verwendeten Bezeichnungen und Ausdrücke die gewöhnliche Bedeutung haben, die diesen Bezeichnungen und Ausdrücken in Bezug auf die entsprechenden Untersuchungs- und Studienbereiche zukommt, sofern vorliegend nicht besondere Bedeutungen angegeben sind. Relationale Bezeichnungen wie „erste/r/s“, „zweite/r/s“ und dergleichen können lediglich dazu verwendet werden, eine Einheit oder Handlung von einer anderen zu unterscheiden, ohne dass dies notwendigerweise eine tatsächliche Beziehung oder Reihenfolge zwischen diesen Einheiten oder Handlungen erfordert oder impliziert. Die Ausdrücke „weist auf/umfasst“, „umfassend“ oder eine andere Abwandlung davon sollen eine nicht ausschließliche Einbeziehung derart abdecken, dass ein Prozess, ein Verfahren, ein Gegenstand oder eine Vorrichtung, die eine Liste von Elementen umfasst, nicht nur diese Elemente enthält, sondern auch andere Elemente enthalten kann, die nicht ausdrücklich aufgeführt sind oder zu einem solchen Prozess, Verfahren, Gegenstand oder einer solchen Vorrichtung gehören. Ein Element, dem „ein/e“ vorausgeht, schließt nicht ohne weitere Einschränkungen die Existenz weiterer identischer Elemente in dem Prozess, dem Verfahren, dem Gegenstand oder der Vorrichtung aus, der/das/die das Element umfasst.
  • Die Zusammenfassung der Offenbarung soll es dem Leser ermöglichen, sich schnell über die Art der technischen Offenbarung zu informieren. Sie wird in dem Verständnis vorgelegt, dass sie nicht zur Auslegung oder Einschränkung des Umfangs oder der Bedeutung der Ansprüche herangezogen wird. Zudem ist aus der vorstehenden ausführlichen Beschreibung ersichtlich, dass verschiedene Merkmale in verschiedene Ausführungsform zusammengefasst sind, um die Offenbarung zu straffen. Diese Vorgehensweise in der Offenbarung ist nicht so auszulegen, dass die beanspruchten Ausführungsformen mehr Merkmale als explizit in jedem Anspruch angegeben aufweisen sollen. Vielmehr ist, wie die nachstehenden Ansprüche zeigen, ein Erfindungsgegenstand jeweils bereits durch weniger als alle Merkmale einer einzelnen offenbarten Ausführungsform gegeben. Die nachfolgenden Ansprüche werden somit hierdurch für die ausführliche Beschreibung in Bezug genommen, wobei jeder Anspruch als separat beanspruchter Gegenstand für sich steht.

Claims (21)

  1. Verfahren zum Bereitstellen einer Speicheradressumsetzung in einer Umgebung mit mehreren Seitengrößen, umfassend: Empfangen einer Umsetzungsanfrage von einer virtuellen Adresse (VA) in eine reale Adresse (RA) eines physischen Speichers; Vergleichen der empfangenen VA mit VAs aller gegenwärtig aktiven Table Walks einer Gruppe von Table-Walk-Maschinen; und Bei auf Grundlage des Vergleichs erfolgendem Feststellen, dass es eine Adressübereinstimmung in einer gegebenen Table-Walk-Maschine der Gruppe von Table-Walk-Maschinen gibt, Senden der Umsetzungsanfrage mit einer Identifikationsnummer (ID) an ein Umsetzungsanfragemodul, um in einen Ruhezustand versetzt zu werden; Bei Feststellen, dass die gegebene Table-Walk-Maschine ihre Umsetzstufe abgeschlossen hat, Senden eines Aufwecksignals mit der ID an das Umsetzungsanfragemodul, um ein Aufwachen und Verarbeiten der in den Ruhezustand versetzten Umsetzungsanfrage auszulösen; und Bereitstellen eines Table Walk der VA der Umsetzungsanfrage mit der ID parallel zu einem oder mehreren anderen Table Walks anderer Umsetzungsanfragen der Gruppe von Table-Walk-Maschinen.
  2. Verfahren nach Anspruch 1, wobei der Vergleich der empfangenen VA mit den VAs der gegenwärtig aktiven Table Walks für jeden gegenwärtig aktiven Table Walk umfasst: Vergleichen virtueller Adressbits der empfangenen VA mit einem Bereich von Adressen in einer Umsetzungsstufe des gegenwärtig aktiven Table Walk.
  3. Verfahren nach Anspruch 1, ferner umfassend für jeden aktiven Table Walk Verwenden einer Umsetzungsstufe des Table Walk, um eine Anzahl zu vergleichender Adressbits zu ermitteln, um zu ermitteln, ob eine Adresskollision vorliegt.
  4. Verfahren nach Anspruch 1, wobei der Vergleich der empfangenen VA mit den VAs der gegenwärtig aktiven Table Walks für jeden gegenwärtig aktiven Table Walk Vergleichen der höchstwertigen Bits (MSBs) der Adresse hinab bis zur Bitgrenze der größten unterstützten Seitengröße umfasst.
  5. Verfahren nach Anspruch 1, ferner umfassend bei auf Grundlage des Vergleichs erfolgendem Feststellen, dass in einer gegebenen Table-Walk-Maschine der Gruppe von Table-Walk-Maschinen keine Adressübereinstimmung vorliegt, Senden der zu verarbeitenden Umsetzungsanfrage direkt durch eine Table-Walk-Maschine der Gruppe von Table-Walk-Maschinen.
  6. Verfahren nach Anspruch 1, ferner umfassend: bei Empfangen der Umsetzungsanfrage durch ein Umsetzcachemodul erfolgendes Ermitteln, ob die Umsetzungsanfrage der VA zuvor erfolgreich verarbeitet wurde; und bei Feststellen, dass die Umsetzungsanfrage der VA zuvor nicht erfolgreich verarbeitet wurde, Senden der Umsetzungsanfrage direkt an eine oder mehrere Table-Walk-Maschinen.
  7. Verfahren nach Anspruch 1, wobei die Umsetzungsanfrage mindestens eines der Folgenden umfasst: eine Hash-Seitentabellen- (HPT-) Anfrage; eine Segmenttabellenanfrage; eine nichtverschachtelte Radixanfrage; oder eine verschachtelte Radixanfrage.
  8. Verfahren nach Anspruch 1, wobei die abgeschlossene Umsetzstufe eine RTDB (Radixstruktur-Verzeichnisbasis) der Stufe 1 ist, die als Basisadresse einer ersten Radix-Umsetztabelle verwendet wird.
  9. Verfahren nach Anspruch 1, wobei eine nächste Stufe der gegebenen Table-Walk-Maschine ein Seitentabelleneintrag (PTE) ist, der zur Definition eines nächsten Bereichs einer Umsetzung verwendet wird.
  10. System zur Umsetzung von Speicheradressen, das Folgendes aufweist: ein Umsetzungsanfragemodul, das so konfiguriert ist, dass es Umsetzungsanfragen von einer virtuellen Adresse (VA) in eine reale Adresse (RA) eines physischen Speichers bereitstellt; ein Umsetzcachemodul, das mit dem Umsetzungsanfragemodul verbunden und so konfiguriert ist, dass es die Umsetzungsanfrage von dem Umsetzungsanfragemodul empfängt; eine Gruppe von Table-Walk-Maschinen, die mit dem Umsetzcachemodul und dem Umsetzungsanfragemodul verbunden und so konfiguriert sind, dass sie Table Walks durchführen; und ein Sleep- und Wake-Steuermodul, das mit dem Umsetzungsanfragemodul, dem Umsetzcachemodul und dem Table-Walk-Maschinen-Modul verbunden ist, wobei das Sleep- und Wake-Steuermodul so konfiguriert ist zum: Vergleichen der empfangenen VA mit VAs aller gegenwärtig aktiven Table Walks der Gruppe von Table-Walk-Maschinen; und bei auf Grundlage des Vergleichs erfolgendem Feststellen, dass es eine Adressübereinstimmung in einer gegebenen Table-Walk-Maschine der Gruppe von Table-Walk-Maschinen gibt, Senden der Umsetzungsanfrage mit einer Identifikationsnummer (ID) an das Umsetzungsanfragemodul, um in einen Ruhezustand versetzt zu werden; wobei jede Table-Walk-Maschine so konfiguriert ist, dass sie ein Aufwecksignal mit einer Identifikationsnummer (ID) an das Umsetzungsanfragemodul nach Abschluss ihrer Umsetzungsstufe liefert, wodurch ein Aufwecken und Verarbeiten einer gegenwärtig im Ruhezustand befindlichen Umsetzungsanfrage mit einer entsprechenden ID ausgelöst wird, um parallele Umsetz-Table-Walks in der Gruppe von Table-Walk-Maschinen bereitzustellen.
  11. System nach Anspruch 10, wobei das System mehrere Seitengrößen unterstützt.
  12. System nach Anspruch 10, wobei der Vergleich der empfangenen VA mit den VAs der gegenwärtig aktiven Table Walks für jeden gegenwärtig aktiven Table Walk Vergleichen virtueller Adressbits der empfangenen VA mit einem Bereich von Adressen in einer Umsetzungsstufe des gegenwärtig aktiven Table Walk umfasst.
  13. System nach Anspruch 10, wobei das Sleep- und Wake-Steuermodul so konfiguriert ist, dass es für jeden aktiven Table-Walk eine Umsetzungsstufe des Table Walk verwendet, um eine Anzahl zu vergleichender Adressbits zu ermitteln, um zu ermitteln, ob eine Adresskollision vorliegt.
  14. System nach Anspruch 10, wobei der Vergleich der empfangenen VA mit den VAs der gegenwärtig aktiven Table Walks durch das Sleep- und Wake-Steuermodul für jeden gegenwärtig aktiven Table Walk Vergleichen der höchstwertigen Bits (MSBs) der Adresse hinab bis zur Bitgrenze der größten unterstützten Seitengröße umfasst.
  15. System nach Anspruch 10, ferner umfassend bei auf Grundlage des Vergleichs erfolgendem Feststellen, dass in einer gegebenen Table-Walk-Maschine der Gruppe von Table-Walk-Maschinen keine Adressübereinstimmung vorliegt, Senden der zu verarbeitenden Umsetzungsanfrage direkt durch die gegebene Table-Walk-Maschine der Gruppe von Table-Walk-Maschinen.
  16. System nach Anspruch 10, wobei das Umsetzcachemodul ferner so konfiguriert ist zum: bei Empfangen der Umsetzungsanfrage erfolgenden Ermitteln, ob die Umsetzungsanfrage der VA zuvor erfolgreich verarbeitet wurde; und bei Feststellen, dass die Umsetzungsanfrage der VA zuvor nicht erfolgreich verarbeitet wurde, Senden der Umsetzungsanfrage direkt an eine oder mehrere Table-Walk-Maschinen.
  17. System nach Anspruch 10, wobei das Umsetzungsanfragemodul so konfiguriert ist, dass es mindestens eine der folgenden Umsetzungsanfragen bereitstellt: eine Hash-Seitentabellen- (HPT-) Anfrage; eine Segmenttabellenanfrage; eine nichtverschachtelte Radixanfrage; oder eine verschachtelte Radixanfrage.
  18. System nach Anspruch 10, wobei: die abgeschlossene Umsetzstufe eine Radixstruktur-Verzeichnisbasis (RTDB) der Stufe 1 ist, die als Basisadresse einer ersten Radix-Umsetztabelle verwendet wird; und das Sleep- und Wake-Steuermodul so konfiguriert ist, dass es die RTDB der Stufe 1 als Basisadresse einer ersten Radix-Umsetztabelle verwendet.
  19. Datenverarbeitungseinheit, die Folgendes aufweist: einen Prozessor; einen mit dem Prozessor verbundenen physischen Speicher; ein Speicheradressumsetzungssystem, das mit dem Prozessor verbunden und konfiguriert ist zum: Empfangen einer Umsetzungsanfrage von einer virtuellen Adresse (VA) in eine reale Adresse (RA) des physischen Speichers; Vergleichen der empfangenen VA mit VAs aller gegenwärtig aktiven Table Walks einer Gruppe von Table-Walk-Maschinen; und bei auf Grundlage des Vergleichs erfolgendem Feststellen, dass es eine Adressübereinstimmung in einer gegebenen Table-Walk-Maschine der Gruppe von Table-Walk-Maschinen gibt, Senden der Umsetzungsanfrage mit einer Identifikationsnummer (ID) an ein Umsetzungsanfragemodul, um in einen Ruhezustand versetzt zu werden; bei Feststellen, dass die gegebene Table-Walk-Maschine ihre Umsetzstufe abgeschlossen hat, Senden eines Aufwecksignals mit der ID an das Umsetzungsanfragemodul, um ein Aufwachen und Verarbeiten der in den Ruhezustand versetzten Umsetzungsanfrage auszulösen; und Bereitstellen eines Table Walk der VA der Umsetzungsanfrage mit der ID parallel zu einem oder mehreren anderen Table Walks anderer Umsetzungsanfragen der Gruppe von Table-Walk-Maschinen.
  20. Datenverarbeitungseinheit nach Anspruch 19, wobei das Speicheradressumsetzungssystem mehrere Seitengrößen unterstützt.
  21. Computerprogrammprodukt, das in einem durch einen Computer lesbaren Speichermedium gespeichert ist und Computerprogrammcode aufweist, der bei Ausführung durch ein Informationsverarbeitungssystem die Schritte eines Verfahrens nach den Ansprüchen 1 bis 9 durchführt.
DE112022003489.0T 2021-08-30 2022-07-11 Sleep/wake-up-leistungssteigerung für gleichzeitige adressumsetztabellen-walk-operationen Pending DE112022003489T5 (de)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US17/461,919 2021-08-30
US17/461,919 US11636043B2 (en) 2021-08-30 2021-08-30 Sleeping and waking-up address translation that conflicts with translation level of active page table walks
PCT/CN2022/104829 WO2023029756A1 (en) 2021-08-30 2022-07-11 Sleep / wake-up performance enhancing for simultaneous address translation table walks

Publications (1)

Publication Number Publication Date
DE112022003489T5 true DE112022003489T5 (de) 2024-05-16

Family

ID=85289087

Family Applications (1)

Application Number Title Priority Date Filing Date
DE112022003489.0T Pending DE112022003489T5 (de) 2021-08-30 2022-07-11 Sleep/wake-up-leistungssteigerung für gleichzeitige adressumsetztabellen-walk-operationen

Country Status (5)

Country Link
US (1) US11636043B2 (de)
CN (1) CN117897696A (de)
DE (1) DE112022003489T5 (de)
GB (1) GB202403483D0 (de)
WO (1) WO2023029756A1 (de)

Family Cites Families (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5613083A (en) * 1994-09-30 1997-03-18 Intel Corporation Translation lookaside buffer that is non-blocking in response to a miss for use within a microprocessor capable of processing speculative instructions
US7334108B1 (en) 2004-01-30 2008-02-19 Nvidia Corporation Multi-client virtual address translation system with translation units of variable-range size
CN100414519C (zh) 2004-11-24 2008-08-27 中国科学院计算技术研究所 一种从虚拟地址向物理地址变换的方法及其装置
US10007619B2 (en) 2015-05-29 2018-06-26 Qualcomm Incorporated Multi-threaded translation and transaction re-ordering for memory management units
US10083124B1 (en) 2017-03-22 2018-09-25 International Business Machines Corporation Translating virtual memory addresses to physical addresses
US10649778B1 (en) 2018-12-04 2020-05-12 International Business Machines Corporation Performance optimized congruence class matching for multiple concurrent radix translations
CN113297105B (zh) 2021-05-08 2024-01-09 阿里巴巴新加坡控股有限公司 一种转换地址的缓存处理方法及装置

Also Published As

Publication number Publication date
US11636043B2 (en) 2023-04-25
US20230062909A1 (en) 2023-03-02
WO2023029756A1 (en) 2023-03-09
CN117897696A (zh) 2024-04-16
GB202403483D0 (en) 2024-04-24

Similar Documents

Publication Publication Date Title
DE112012004336B4 (de) System, Verfahren und Programmprodukt für kostenbewusste Auswahl von Vorlagen zum Bereitstellen von gemeinsam genutzten Ressourcen
DE112015001977T5 (de) Synchronisieren von Aktualisierungen von Statusanzeigern in einer Datenverarbeitungsumgebung
DE112013001308T5 (de) Verwalten von mandantenspezifischen Datensätzen in einer mandantenfähigen Umgebung
DE112012003342T5 (de) Dynamisches Anpassen und Begrenzen der Größe des Netzwerkadapterspeichers zur Speicherung von Umsetzungseinträgen für virtuelle Funktionen
DE102013222384A1 (de) Sicherheits-Screening auf Kontextgrundlage für Zugriff auf Daten
DE102013017509A1 (de) Effiziente Speichervirtualisierung in mehrsträngigen Verarbeitungseinheiten
DE202012013432U1 (de) Speichern von Daten auf Speicherknoten
DE102013017510A1 (de) Effiziente Speichervirtualisierung in mehrsträngigen Verarbeitungseinheiten
DE202020005693U1 (de) Externe berechtigungsnachweisfreie Stufen für Datenbankintegrationen
DE102013017511A1 (de) Effiziente speichervirtualisierung in mehrsträngigen verarbeitungseinheiten
DE112018005404T5 (de) Vereinfachen des zugriffs auf lokalitätsdomäneninformationen eines speichers
DE102013204186A1 (de) Ermitteln von Prioritäten für zwischengespeicherte Objekte zum Ordnen des Übertragens von Änderungen an zwischengespeicherten Objekten beruhend auf gemessener Netzwerkbandbreite
DE112020004181T5 (de) Bereitstellen eines direkten datenzugriffs zwischen beschleunigern und speicher in einer datenverarbeitungsumgebung
DE112019000421B4 (de) Arbeitslastverwaltung mit datenzugriffserkennung in einem datenverarbeitungscluster
DE112020000289T5 (de) Abfrage und überlassung von sicherem speicher
DE102021127254A1 (de) Inhaltssensitives Auswählen von Knoten zum Erstellen von Containern
DE112018002266T5 (de) Kognitives Datenfiltern für Speicherumgebungen
DE112018002955T5 (de) Kognitive datei- und objektverwaltung für verteilte speicherumgebungen
DE112021004290T5 (de) Gemeinsames nutzen von zwischengespeicherten klassendaten in einer containerisierten umgebung
DE112020000223T5 (de) Gemeinsame speichernutzung zwischen einer sicheren domäne und einer nicht sicheren entität
DE102018115251A1 (de) Technologien zum Schutz eines virtuellen Maschinenspeichers
DE112021003294T5 (de) Systemverwaltung auf grundlage von leistung und leistungsfähigkeit
DE112017005022T5 (de) Umladen der Bandverarbeitung auf Objektspeicher
DE112020003825T5 (de) Entsprechung zwischen externen Operationen und Containern sowie Mutationsereignissen
DE112019000402T5 (de) Chronologisch geordnetes out-of-place-aktualisierungs-schlüssel-wert-speichersystem

Legal Events

Date Code Title Description
R012 Request for examination validly filed