DE112018006068T5 - Dynamische adressübersetzung für eine virtuelle maschine - Google Patents

Dynamische adressübersetzung für eine virtuelle maschine Download PDF

Info

Publication number
DE112018006068T5
DE112018006068T5 DE112018006068.3T DE112018006068T DE112018006068T5 DE 112018006068 T5 DE112018006068 T5 DE 112018006068T5 DE 112018006068 T DE112018006068 T DE 112018006068T DE 112018006068 T5 DE112018006068 T5 DE 112018006068T5
Authority
DE
Germany
Prior art keywords
memory
translation table
address translation
guest
storage
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
DE112018006068.3T
Other languages
English (en)
Inventor
Rui Yang
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 DE112018006068T5 publication Critical patent/DE112018006068T5/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/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
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/0223User address space allocation, e.g. contiguous or non contiguous base addressing
    • G06F12/023Free address space management
    • 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
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • G06F2009/45583Memory management, e.g. access or allocation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/10Providing a specific technical effect
    • G06F2212/1041Resource optimization
    • G06F2212/1044Space efficiency improvement
    • 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
    • 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/68Details of translation look-aside buffer [TLB]

Landscapes

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

Abstract

Ein Verfahren, System und Computerprogrammprodukt für eine dynamische Adressübersetzung für eine virtuelle Maschine werden offenbart. Das Verfahren umfasst ein Erlangen eines Speicherabschnitts von einem Speicherraum als Reaktion auf eine Anforderung zum Aufbauen einer dynamischen Schattenadress-Übersetzungstabelle, wobei der Speicherraum für mindestens ein Gastbetriebssystem zugeordnet wird und wobei die dynamische Schattenadress-Übersetzungstabelle eine Zuordnung zwischen mindestens einer logischen Gastspeicheradresse und mindestens einer physischen Host-Speicheradresse umfasst. Das Verfahren umfasst ferner ein Aufbauen der dynamischen Schattenadress-Übersetzungstabelle und ein Speichern der dynamischen Schattenadress-Übersetzungstabelle in dem Speicherabschnitt.

Description

  • HINTERGRUND
  • Ausführungsformen der vorliegenden Offenbarung beziehen sich allgemein auf Computertechnologien und insbesondere auf eine dynamische Adressübersetzung für eine virtuelle Maschine.
  • Die Technologie virtueller Maschinen wird in Computersystemen, speziell in Servern der Enterprise-Klasse, breit verwendet. In solch einem System kann eine Mehrzahl virtueller Maschinen (d.h. Gastbetriebssysteme) unabhängig und gleichzeitig auf derselben Hardware-Struktur unter der Verwaltung eines Hypervisors laufen, der eine Anwendung in einem Host-Betriebssystem oder das Host-Betriebssystem an sich sein kann. Wenn eine Anwendung in einer virtuellen Maschine einen Zugriff für einen Abschnitt des Systemspeichers anfordert, wird eine dynamische Adressübersetzung von einer logischen Gastspeicheradresse in eine physische Host-Speicheradresse erforderlich sein.
  • KURZDARSTELLUNG
  • Ein erster Aspekt von Ausführungsformen der vorliegenden Offenbarung stellt ein Verfahren zur dynamischen Adressübersetzung bereit. Das Verfahren umfasst ein Erlangen eines Speicherabschnitts von einem Speicherraum als Reaktion auf eine Anforderung zum Aufbauen einer dynamischen Schattenadress-Übersetzungstabelle, wobei der Speicherraum für mindestens ein Gastbetriebssystem zugeordnet wird und wobei die dynamische Schattenadress-Übersetzungstabelle eine Zuordnung zwischen mindestens einer logischen Gastspeicheradresse und mindestens einer physischen Host-Speicheradresse umfasst. Das Verfahren umfasst ferner ein Aufbauen der dynamischen Schattenadress-Übersetzungstabelle und ein Speichern der dynamischen Schattenadress-Übersetzungstabelle in dem Speicherabschnitt.
  • Ein zweiter Aspekt von Ausführungsformen der vorliegenden Offenbarung stellt ein Computersystem zur dynamischen Adressübersetzung bereit. Das Computersystem umfasst: mindestens einen Prozessor, eine Assistenzsteuereinheit zur dynamischen Adressübersetzung und einen Speicher, der mit dem mindestens einen Prozessor und der Assistenzsteuereinheit verbunden ist. Ein Satz von Computerprogrammanweisungen wird in dem Speicher gespeichert und durch den mindestens einen Prozessor und die Assistenzsteuereinheit ausgeführt, um ein Verfahren durchzuführen. Das Verfahren umfasst ein Erlangen eines Speicherabschnitts von einem Speicherraum durch den mindestens einen Prozessor als Reaktion auf eine Anforderung zum Aufbauen einer dynamischen Schattenadress-Übersetzungstabelle, wobei der Speicherraum für mindestens ein Gastbetriebssystem zugeordnet wird und wobei die dynamische Schattenadress-Übersetzungstabelle eine Zuordnung zwischen mindestens einer logischen Gastspeicheradresse und mindestens einer physischen Host-Speicheradresse umfasst. Das Verfahren umfasst ferner ein Aufbauen der dynamischen Schattenadress-Übersetzungstabelle durch die Assistenzsteuereinheit und ein Speichern der dynamischen Schattenadress-Übersetzungstabelle in dem Speicherabschnitt durch die Assistenzsteuereinheit.
  • Ein dritter Aspekt von Ausführungsformen der vorliegenden Offenbarung stellt ein Computerprogrammprodukt zur dynamischen Adressübersetzung bereit. Das Computerprogrammprodukt umfasst ein computerlesbares Datenspeichermedium mit darauf ausgebildeten Programmanweisungen. Das computerlesbare Datenspeichermedium ist kein flüchtiges Signal an sich. Die Programmanweisungen sind durch eine Assistenzsteuereinheit ausführbar, um ein Verfahren durchzuführen. Das Verfahren umfasst ein Erlangen eines Speicherabschnitts von einem Speicherraum als Reaktion auf eine Anforderung zum Aufbauen einer dynamischen Schattenadress-Übersetzungstabelle, wobei der Speicherraum für mindestens ein Gastbetriebssystem zugeordnet wird und wobei die dynamische Schattenadress-Übersetzungstabelle eine Zuordnung zwischen mindestens einer logischen Gastspeicheradresse und mindestens einer physischen Host-Speicheradresse umfasst. Das Verfahren umfasst ferner ein Aufbauen der dynamischen Schattenadress-Übersetzungstabelle und ein Speichern der dynamischen Schattenadress-Übersetzungstabelle in dem Speicherabschnitt.
  • Figurenliste
  • Durch die detailliertere Beschreibung mancher Ausführungsformen der vorliegenden Offenbarung in den begleitenden Zeichnungen werden die obigen und andere Aufgaben, Merkmale und Vorteile der vorliegenden Offenbarung ersichtlicher, wobei sich derselbe Bezug allgemein auf dieselben Komponenten in den Ausführungsformen der vorliegenden Offenbarung bezieht.
    • 1 ist ein Blockschaubild, das ein beispielhaftes Computersystem zeigt, das anwendbar ist, um Ausführungsformen der vorliegenden Erfindung umzusetzen.
    • 2 ist ein Blockschaubild, das gemäß einer Ausführungsform der vorliegenden Offenbarung eine grundlegende Struktur eines Systems virtueller Maschinen zeigt, das in dem Computersystem wie in 1 ausführbar ist.
    • 3 ist ein beispielhaftes Schaubild, das gemäß einer Ausführungsform der vorliegenden Offenbarung zeigt, wie eine Anwendung in einer virtuellen Maschine auf den physischen Speicher in der Hardware-Plattform zugreift.
    • 4 ist ein Ablaufplan, der gemäß einer Ausführungsform der vorliegenden Offenbarung ein Verfahren zur dynamischen Adressübersetzung für eine virtuelle Maschine zeigt.
    • 5 ist ein Schaubild, das gemäß einer Ausführungsform der vorliegenden Offenbarung eine Kette einer Mehrzahl von Speicherrahmen zeigt, die in Schritt S401 in 4 zugeordnet werden.
    • 6 ist ein Schaubild, das gemäß einer Ausführungsform der vorliegenden Offenbarung ein Erlangen eines freien Speicherrahmens von der Kette kommend zeigt.
    • 7 ist ein Ablaufplan des Prozesses des Aufbauens der dynamischen Schattenadress-Übersetzungstabelle gemäß einer Ausführungsform der vorliegenden Offenbarung.
    • 8 ist ein Schaubild, das gemäß einer Ausführungsform der vorliegenden Offenbarung die Datenübertragung zeigt, wenn die dynamische Schattenadress-Übersetzungstabelle aufgebaut wird.
    • 9 ist ein Blockschaubild, das gemäß einer Ausführungsform der vorliegenden Offenbarung ein weiteres beispielhaftes Computersystem zeigt, das anwendbar ist, um manche Ausführungsformen der vorliegenden Offenbarung umzusetzen.
    • 10 ist ein Schaubild, das gemäß einer Ausführungsform der vorliegenden Offenbarung die Zusammenarbeit zwischen einer CPU und einer Assistenzsteuereinheit zeigt.
  • DETAILLIERTE BESCHREIBUNG
  • Manche bevorzugbaren Ausführungsformen werden detaillierter unter Bezugnahme auf die begleitenden Zeichnungen beschrieben, in denen die bevorzugbaren Ausführungsformen der vorliegenden Offenbarung veranschaulicht wurden. Die vorliegende Offenbarung kann jedoch auf vielfältige Weisen umgesetzt werden und sollte somit nicht als auf die hierin offenbarten Ausführungsformen beschränkt angesehen werden.
  • Bezug nehmend auf 1, in der ein beispielhaftes Computersystem/ein beispielhafter Server 12, das oder der anwendbar ist, um die Ausführungsformen der vorliegenden Offenbarung umzusetzen, gezeigt ist. 1 ist zudem geeignet, ein veranschaulichendes Beispiel einer tragbaren elektronischen Einheit darzustellen, wie beispielsweise eine Datenübertragungseinheit, die anwendbar ist, um die Ausführungsformen der vorliegenden Offenbarung umzusetzen. Das Computersystem/der Server 12 ist nur veranschaulichend und soll nicht auf irgendeine Einschränkung im Hinblick auf den Umfang der Verwendung oder die Funktionalität von Ausführungsformen der hierin beschriebenen Offenbarung hindeuten.
  • Wie in 1 gezeigt, ist das Computersystem/der Server 12 in der Form einer universellen Datenverarbeitungseinheit gezeigt. Die Komponenten des Computersystems/des Servers 12 können, ohne auf diese beschränkt zu sein, einen oder mehrere Prozessoren oder eine oder mehrere Verarbeitungseinheiten 16, einen Systemspeicher 28 und einen Bus 18 umfassen, der vielfältige Systemkomponenten einschließlich des Systemspeichers 28 mit dem Prozessor 16 verbindet.
  • Der Bus 18 steht für eine oder mehrere jeder beliebigen von verschiedenen Arten von Busstrukturen, die einen Speicherbus oder eine Speichersteuereinheit, einen Peripherieeinheiten-Bus, einen beschleunigten Grafikanschluss und einen Prozessor- oder lokalen Bus unter Verwendung jeder beliebigen einer Vielfalt von Busarchitekturen umfassen. In beispielhafter Weise und ohne Einschränkung können solche Architekturen einen ISA-Bus (Industry Standard Architecture (ISA) bus), einen MCA-Bus (Micro Channel Architecture (MCA) bus), einen erweiterten ISA-Bus (Enhanced ISA (EISA) bus), einen lokalen VESA-Bus (Video Electronics Standards Association (VESA) local bus) und einen PCI-Bus (Peripheral Component Interconnect (PCI) bus) umfassen.
  • Das Computersystem/der Server 12 umfasst üblicherweise eine Vielfalt von durch Computersysteme lesbaren Medien. Bei solchen Medien kann es sich um jedes beliebige verfügbare Medium handeln, auf welches durch das Computersystem/den Server 12 zugegriffen werden kann, und es umfasst sowohl flüchtige als auch nichtflüchtige, Wechsel- und Nicht-Wechsel-Medien.
  • Der Systemspeicher 28 kann durch Computersysteme lesbare Medien in der Form von flüchtigem Speicher, wie beispielsweise Direktzugriffsspeicher (random access memory (RAM)) 30, und/oder Cachespeicher 32 umfassen. Das Computersystem/der Server 12 kann ferner weitere Wechsel-/Nicht-Wechsel-, flüchtige/nichtflüchtige Computersystem-Datenspeichermedien umfassen. In lediglich beispielhafter Weise kann ein Datenspeichersystem 34 für ein Lesen von und Schreiben auf ein nichtflüchtiges magnetisches Nicht-Wechsel-Medium bereitgestellt werden (nicht gezeigt und üblicherweise als „Festplattenlaufwerk“ bezeichnet). Obwohl nicht gezeigt, kann auch ein magnetisches Plattenlaufwerk zum Lesen von und Schreiben auf eine nichtflüchtige magnetische Wechselplatte (z.B. eine „Floppydiskette“) oder ein optisches Plattenlaufwerk zum Lesen von oder Schreiben auf eine nichtflüchtige optische Wechselplatte, wie beispielsweise eine CD-ROM, DVD-ROM oder ein anderes optisches Medium, bereitgestellt werden. In solchen Beispielen kann jedes durch eine oder mehrere Datenmedienschnittstellen mit dem Bus 18 verbunden sein. Wie nachfolgend weiterhin dargestellt und beschrieben wird, kann der Speicher 28 mindestens ein Programmprodukt umfassen, das einen Satz (z.B. mindestens eines) von Programmmodulen enthält, die so konfiguriert sind, dass sie die Funktionen von Ausführungsformen der Offenbarung ausführen.
  • Ein Programm/Dienstprogramm (utility) 40 mit einem Satz (mindestens einem) von Programmmodulen 42 kann in dem Speicher 28 in beispielhafter Weise und ohne Einschränkung auch als Betriebssystem, ein oder mehrere Anwendungsprogramme, andere Programmmodule und Programmdaten gespeichert sein. Jedes von dem Betriebssystem, dem einem oder den mehreren Anwendungsprogrammen, den anderen Programmmodulen und den Programmdaten oder irgendeine Kombination davon kann eine Umsetzung einer Netzwerkumgebung umfassen. Die Programmmodule 42 führen allgemein die Funktionen und/oder Verfahrensweisen von Ausführungsformen der hierin beschriebenen Offenbarung aus.
  • Das Computersystem/der Server 12 kann auch mit einer oder mehreren externen Einheiten 14 Daten austauschen, wie beispielsweise einer Tastatur, einer Zeigeeinheit, einer Anzeige 24 usw.; einer oder mehreren Einheiten, die es einem Benutzer ermöglichen, mit dem Computersystem/dem Server 12 zu interagieren; und/oder beliebigen Einheiten (z.B. Netzwerkkarte, Modem usw.), die das Computersystem/den Server 12 befähigen, mit einer oder mehreren anderen Datenverarbeitungseinheiten Daten auszutauschen. Ein derartiger Datenaustausch kann über Eingabe/Ausgabe(E/A)-Schnittstellen 22 erfolgen. Des Weiteren kann das Computersystem/der Server 12 mit einem oder mehreren Netzwerken, wie beispielsweise einem lokalen Netzwerk (local area network (LAN)), einem allgemeinen Weitverkehrsnetzwerk (wide area network (WAN)) und/oder einem öffentlichen Netzwerk (z.B. dem Internet), über einen Netzwerkadapter 20 Daten austauschen. Wie dargestellt, tauscht der Netzwerkadapter 20 mit den anderen Komponenten des Computersystems/Servers 12 über den Bus 18 Daten aus. Es sollte verstanden werden, dass andere Hardware- und/oder Software-Komponenten in Verbindung mit dem Computersystem/Server 12 verwendet werden können, auch wenn sie nicht gezeigt sind. Beispiele umfassen, ohne auf diese beschränkt zu sein: Mikrocode, Einheitentreiber, redundante Verarbeitungseinheiten, externe Plattenlaufwerk-Arrays, RAID-Systeme, Bandlaufwerke und Datenarchivierungs-Datenspeichersysteme usw.
  • 2 ist ein Blockschaubild, das gemäß einer Ausführungsform der vorliegenden Offenbarung eine grundlegende Struktur eines Systems virtueller Maschinen zeigt, das in einem Computersystem wie in 1 ausführbar ist. Wie in 2 gezeigt, läuft eine Mehrzahl von virtuellen Maschinen 202, 203, 204 unabhängig und gleichzeitig auf derselben Hardware-Plattform des Computersystems/Servers 12 unter der Verwaltung eines Hypervisors 201.
  • Hardware-Ressourcen, wie beispielsweise Prozessoren, Speicher oder Datenspeicherplatten in dem Computersystem/Server 12 können unterschiedlichen virtuellen Maschinen dynamisch oder statisch zugewiesen werden. Üblicherweise sind mindestens während einer gewissen Betriebsperiode die einer virtuellen Maschine, wie beispielsweise der virtuellen Maschine 202, zugewiesenen Hardware-Ressourcen unabhängig, und der Zugriff auf diese zugewiesenen Hardware-Ressourcen wird nicht durch eine andere virtuelle Maschine, wie beispielsweise die virtuelle Maschine 203, beeinflusst. Namentlich wird der Benutzer der virtuellen Maschine 202 nicht durch den Benutzer der virtuellen Maschine 203 beeinflusst. Die Verwendung der Hardware-Ressourcen in dem Computersystem, insbesondere in einem großen Computersystem, wie beispielsweise einem Server der Enterprise-Klasse, kann enorm verbessert werden. Eine Sicherheitsverwaltung für die Benutzer kann auch genau umgesetzt werden, indem virtuellen Maschinen jeweils eine unterschiedliche Berechtigung zugewiesen wird.
  • 3 ist ein beispielhaftes Schaubild, das gemäß einer Ausführungsform der vorliegenden Offenbarung zeigt, wie eine Anwendung in einer virtuellen Maschine auf den physischen Speicher in der Hardware-Plattform zugreift. Wie in 3 gezeigt, fordert eine Benutzeranwendung 301 einen Zugriff auf einen Speicher mit einer logischen Gastspeicheradresse 304 an. Als Reaktion auf diese Anforderung übersetzt das Gastbetriebssystem 302 die logische Gastspeicheradresse 304 in eine physische Gastspeicheradresse 305. Die Übersetzung kann umgesetzt werden, indem eine dynamische Gastadress-Übersetzungstabelle durchsucht wird, die eine Zuordnung zwischen einer logischen Gastspeicheradresse und einer physischen Gastspeicheradresse umfasst. Die physische Gastspeicheradresse 305 wird zu dem Hypervisor 201 übertragen. Zum Beispiel kann der Hypervisor 201 eine Verwaltungsanwendung sein, die unter einem Host-Betriebssystem läuft, oder kann das Host-Betriebssystem an sich sein. Der Hypervisor 201 erlangt eine logische Host-Speicheradresse 306 auf Grundlage der physischen Gastspeicheradresse 305. Zum Beispiel kann die physische Gastspeicheradresse 305 die logische Host-Speicheradresse 306 an sich sein. Namentlich kann eine physische Gastspeicheradresse 305 direkt als eine logische Host-Speicheradresse 306 an sich verwendet werden. Der Hypervisor 201 durchsucht eine dynamische Adressübersetzungstabelle, die eine Zuordnung zwischen einer logischen Host-Speicheradresse 306 und einer physischen Host-Speicheradresse 307 umfasst, um die logische Host-Speicheradresse 306 in eine physische Host-Speicheradresse 307 zu übersetzen. Die physische Host-Speicheradresse 307 ist verwendbar, um auf den physischen Host-Speicher 303 in dem Speicher 28 des Computersystems/Servers 12 zuzugreifen. Dann werden Rückmeldungen, wie beispielsweise 308, 309 und 310, einschließlich Daten oder Zugriffsergebnis durch den Hypervisor 201 erhalten und dann an das Gastbetriebssystem 302 und die Benutzeranwendung 301 in Folge ausgegeben.
  • Während dieser Übersetzungen der Speicheradressen muss die CPU unterbrochen werden und wechselt zwischen einem Gastzustand zum Ausführen des Gastbetriebssystems und einem Host/Kernel-Zustand zum Ausführen des Host. Die Unterbrechung der CPU ist sehr zeitaufwändig. Da ferner die Anwendungen üblicherweise eine Mehrzahl von Anforderungen in einer kurzen Zeit bereitstellen, wird der vorgenannte Prozess wiederholt durchlaufen, was die Belastung der CPU vergrößert.
  • Bei einem E/A-Vorgang mit massivem Datenaustausch kann die Benutzeranwendung einen E/A-Puffer zum Zweck eines DMA (direct memory access, direkter Speicherzugriff) anfordern. Eine dynamische Schattenadress-Übersetzungstabelle einschließlich einer Zuordnung zwischen den logischen Gastspeicheradressen 304 des E/A-Puffers und den entsprechenden physischen Host-Speicheradressen 307 kann aufgebaut und an eine DMA-Steuereinheit gesendet werden. Die DMA-Steuereinheit kann unter Verwendung der dynamischen Schattenadress-Übersetzungstabelle direkt auf den physischen Host-Speicher zugreifen, um die Zentraleinheit (central processing unit (CPU)) freizugeben, die ein Prozessor in der Verarbeitungseinheit sein kann.
  • Unter dieser Lösung kann die Benutzeranwendung 301 die CPU auffordern, die dynamische Schattenadress-Übersetzungstabelle vor dem E/A-Vorgang aufzubauen. Ferner kann ein Abschnitt des Systemspeichers, auf den zugegriffen werden soll, gepinnt werden, um zu vermeiden, dass vom Speicher auf die Festplatte gewechselt wird. Dann kann die DMA-Steuereinheit während des E/A-Vorgangs auf den physischen Host-Speicher zugreifen. Nachdem der E/A-Vorgang beendet ist, kann die Benutzeranwendung 301 die CPU auffordern, die dynamische Schattenadress-Übersetzungstabelle zu löschen/die Registrierung aufzuheben. Übersetzungen von einer Mehrzahl von logischen Gastspeicheradressen in eine Mehrzahl von physischen Host-Speicheradressen werden durch die CPU gleichzeitig beendet. Somit muss die CPU während des E/A-Vorgangs nicht unterbrochen werden.
  • Jedes Mal, wenn die Benutzeranwendung anfordert, eine dynamische Schattenadress-Übersetzungstabelle aufzubauen/zu registrieren, zu löschen/die Registrierung aufzuheben, wird die CPU jedoch unterbrochen, um von dem Gastzustand in den Host/Kernel-Zustand zu wechseln. Diese Zustandsänderungen und ihr zugehöriger Kontext erfordern noch viele CPU-Zyklen, speziell wenn eine Benutzeranwendung in einem Gastbetriebssystem häufig anfordert, die dynamische Schattenadress-Übersetzungstabelle nach jedem E/A-Vorgang zu aktualisieren.
  • 4 ist ein Ablaufplan, der gemäß einer Ausführungsform der vorliegenden Offenbarung ein Verfahren zur dynamischen Adressübersetzung für eine virtuelle Maschine zeigt. Wie in 4 gezeigt, wird in Schritt S401 ein Speicherraum für mindestens ein Gastbetriebssystem zugeordnet. In Schritt S402 wird als Reaktion auf eine Anforderung zum Aufbauen einer dynamischen Schattenadress-Übersetzungstabelle ein Speicherabschnitt von dem Speicherraum kommend erlangt. Dies kann vorgenommen werden, ohne zu einem Host-Zustand zu wechseln. Die dynamische Schattenadress-Übersetzungstabelle umfasst eine Zuordnung zwischen mindestens einer logischen Gastspeicheradresse und mindestens einer physischen Host-Speicheradresse. In Schritt S403 wird die dynamische Schattenadress-Übersetzungstabelle aufgebaut. In Schritt S404 wird die dynamische Schattenadress-Übersetzungstabelle in dem Speicherabschnitt gespeichert. Auf den zugeordneten Speicherraum kann durch jeden andern Prozessor oder jede andere Steuereinheit als die CPU, wie beispielsweise eine Assistenzsteuereinheit, zum Zweck eines Aufbauens oder Zugreifens auf die dynamische Schattenadress-Übersetzungstabelle zugegriffen werden, ohne in einen Host-Zustand zu wechseln. Somit muss die CPU zum Aufbauen oder Zugreifen auf die dynamische Schattenadress-Übersetzungstabelle nicht unterbrochen werden, und die Belastung der CPU kann weiter verringert werden.
  • Das Verfahren zur dynamischen Adressübersetzung für eine virtuelle Maschine kann ferner einen Schritt S405 umfassen. In Schritt S405 wird als Reaktion auf eine Anforderung zum Löschen der dynamischen Schattenadress-Übersetzungstabelle der durch die dynamische Schattenadress-Übersetzungstabelle belegte Speicherabschnitt dem Speicherraum zurückgegeben. Die Rückgabe des belegten Abschnitts des Speicherraums wird die Auslastungseffizienz des Speicherraums verbessern.
  • In einem beispielhaften Computersystem ist der physische Host-Speicher 303 zur Vereinfachung der Verwaltung in viele Speicherrahmen mit fester Größe geteilt. Dementsprechend kann in Ausführungsformen der vorliegenden Offenbarung der Speicherraum eine Kette einer Mehrzahl von Speicherrahmen aufweisen. Wenn in Schritt S402 ein Speicherabschnitt von dem Speicherraum kommend erlangt wird, wird mindestens ein Speicherrahmen von der Kette kommend erlangt. Die Kette der Mehrzahl der Speicherrahmen kann die Einfachheit eines Zugreifens durch einen anderen Prozessor oder eine andere Steuereinheit als die CPU verbessern.
  • 5 ist ein Schaubild, das gemäß einer Ausführungsform der vorliegenden Offenbarung eine Kette einer Mehrzahl von Speicherrahmen zeigt, die in dem Schritt S401 in 4 zugeordnet werden. Wie in 5 gezeigt, kann eine CPU in Schritt S401 eine Mehrzahl von Speicherrahmen zuordnen, um eine Kette 50 aufzubauen. Die Initialisierungsgröße der Kette kann voreingestellt sein.
  • In Ausführungsformen der vorliegenden Offenbarung, kann ein Kettenzeiger 601, der auf einen Kopf 501 der Kette 50 verweist, an einem vorher angeordneten Ort in dem physischen Host-Speicher 303, wie beispielsweise in einer CPU-Präfixseite, gespeichert werden, um den Zugriff zu erleichtern. In zwei benachbarten Speicherrahmen in der Kette weist ein Speicherrahmen einen Zeiger auf, der auf den anderen Speicherrahmen verweist. Namentlich umfasst jeder Speicherrahmen in der Kette 50 mit Ausnahme einer Endung 504 einen Zeiger zu dem nächsten Speicherrahmen in der Kette 50, wie beispielsweise einen Zeiger 5011 in dem Kopf 501, einen Zeiger 5021 in der Mitte 502 und einen Zeiger 5031 in der Mitte 503. Ein Zeiger zu oder in der Kette kann architekturabhängig sein, um die Zugriffsgeschwindigkeit der Kette weiter zu erleichtern.
  • Ferner kann die CPU die Mehrzahl von Speicherrahmen in der Kette 50 in der Speicherrahmentabelle 61 auch markieren, um diese Speicherrahmen zu reservieren, so dass sie nicht für einen anderen Zweck verwendet werden.
  • 6 ist ein Schaubild, das gemäß einer Ausführungsform der vorliegenden Offenbarung ein Erlangen eines freien Speicherrahmens von der Kette kommend zeigt. In Schritt S402 in 4 oder 5 kann eine Assistenzsteuereinheit als Reaktion auf eine Anforderung zum Aufbauen einer dynamischen Schattenadress-Übersetzungstabelle einen Speicherrahmen von der Kette erlangen. Zum Beispiel kann die Anforderung von einer Benutzeranwendung mit Notwendigkeit für einen E/A-Vorgang mit Massendatenaustausch stammen. Wie in 6 gezeigt, wird ein Speicherrahmen 502 zwischen den Speicherrahmen 501 und 503 in der Kette herausgenommen. Der Wert des Zeigers 5021 kann in den Speicherrahmen 501 kopiert werden, der dem Speicherrahmen 502 vorangeht. Dann wird der Zeiger 5011 in dem Speicherrahmen 501 auf den Speicherrahmen 503 verweisen, der dem Speicherrahmen 502 als Nächster folgt. Es sollte verstanden werden, dass jeder Speicherrahmen in der Kette, einschließlich Kopf, Endung, herausgenommen werden kann.
  • Gemäß einer bestimmten Ausführungsform der vorliegenden Offenbarung kann mehr Speicherraum zugeordnet werden, wenn ein zuvor festgelegtes Kriterium erfüllt wird. In manchen Fällen kann die Kette leer sein. Als Reaktion auf diese Situation kann eine CPU mehr Speicherraum zuordnen, d.h. der Kette 50 einen neuen Speicherrahmen zuordnen und hinzufügen. Dieser Prozess kann wiederholt werden, bis die Anzahl der Speicherrahmen in der Kette 50 einen voreingestellten Wert erreicht oder gerade der Größe der aufzubauenden dynamischen Schattenadress-Übersetzungstabelle entspricht.
  • Wenn eine Assistenzsteuereinheit den Schritt S405 ausführt, um einen Speicherrahmen von der Kette 50 zu erlangen, und herausfindet, dass die Kette 50 leer ist, kann die Assistenzsteuereinheit die CPU auffordern, der Kette 50 einen neuen Speicherrahmen zuzuordnen und hinzuzufügen. Die CPU kann unterbrochen werden, um die Anforderung rechtzeitig abzuwickeln. Alternativ oder zusätzlich kann die CPU auch periodisch aktiv prüfen, ob die Kette 50 in einem inaktiven Betriebszyklus leer ist, um die Anzahl an Unterbrechungen zu verringern.
  • 7 ist ein Ablaufplan des Prozesses des Aufbauens der dynamischen Schattenadress-Übersetzungstabelle gemäß einer Ausführungsform der vorliegenden Offenbarung. Schritt S403 in 4 kann auch durch die Assistenzsteuereinheit ausgeführt werden. Wie in 7 gezeigt, kann Schritt S403 Schritte S701 bis S707 umfassen. In Schritt S701 wird eine zu übersetzende logische Gastspeicheradresse von der Anforderung des Aufbauens einer dynamischen Schattenadress-Übersetzungstabelle erlangt. In Schritt S702 wird eine dynamische Gastadress-Übersetzungstabelle einschließlich Zuordnungen zwischen logischen Gastspeicheradressen und physischen Gastspeicheradressen von einem Gastbetriebssystem kommend erlangt. In Schritt S703 wird die dynamische Gastadress-Übersetzungstabelle mit der logischen Gastspeicheradresse durchsucht, um eine physische Gastspeicheradresse zu erlangen. In Schritt S704 wird eine logische Host-Speicheradresse auf Grundlage der physischen Gastspeicheradresse erlangt. In Schritt S705 wird eine dynamische Host-Adress-Übersetzungstabelle einschließlich Zuordnungen zwischen logischen Host-Speicheradressen und physischen Host-Speicheradressen von einem Host-Betriebssystem kommend erlangt. In Schritt S706 wird die dynamische Host-Adress-Übersetzungstabelle mit der logischen Host-Speicheradresse durchsucht, um eine physische Host-Speicheradresse zu erlangen. In Schritt S707 wird eine Zuordnung zwischen der logischen Gastspeicheradresse und der physischen Host-Speicheradresse in der dynamischen Schattenadress-Übersetzungstabelle gespeichert. Zum Beispiel werden die logischen Gastspeicheradresse und die physische Host-Speicheradresse beide an entsprechenden Positionen in der dynamischen Schattenadress-Übersetzungstabelle gespeichert.
  • 8 ist ein Schaubild, das gemäß einer Ausführungsform der vorliegenden Offenbarung die Datenübertragung zeigt, wenn die dynamische Schattenadress-Übersetzungstabelle aufgebaut wird. Wie in 8 gezeigt, wird mit einer Anforderung zum Aufbauen einer dynamischen Schattenadress-Übersetzungstabelle aus einer Benutzeranwendung eine Liste von logischen Gastspeicheradressen 801 übermittelt, die dieser Anforderung zugewiesen sind.
  • In Schritt S701 wird zum Beispiel eine zu übersetzende logische Gastspeicheradresse A1 durch die Assistenzsteuereinheit aus der Liste von logischen Gastspeicheradressen 801 erlangt. Die Liste 801 in 8 wird für ein besseres Klären des Prozesses verwendet. In einer anderen beispielhaften Ausführungsform der vorliegenden Offenbarung kann die Liste 801 weggelassen werden. Die Assistenzsteuereinheit erlangt die logische Gastspeicheradresse direkt von der dynamischen Gastadress-Übersetzungstabelle 802, da alle benötigten logischen Gastspeicheradressen bereits in der dynamischen Gastadress-Übersetzungstabelle 802 gespeichert sind.
  • In Schritt S702 erlangt die Assistenzsteuereinheit die dynamische Gastadress-Übersetzungstabelle 802. Zum Beispiel könnte das Gastbetriebssystem zur Vereinfachung des Erlangens durch die Assistenzsteuereinheit die dynamische Gastadress-Übersetzungstabelle 802 erneut in einem Speicher speichern, wo die Assistenzsteuereinheit darauf zugreifen kann, oder nur an die Assistenzsteuereinheit einen entsprechenden Zeiger/eine entsprechende Adresse eines Speichers senden, wo die dynamische Gastadress-Übersetzungstabelle 802 gespeichert ist.
  • In Schritt S703 durchsucht die Assistenzsteuereinheit die dynamische Gastadress-Übersetzungstabelle 802, spezifisch in einer Spalte von logischen Gastspeicheradressen 8021, um eine entsprechende physische Gastspeicheradresse B2 von einer Spalte von physischen Gastspeicheradressen 8022 zu erlangen. Die dynamische Gastadress-Übersetzungstabelle 802 in 8 zeigt auch eine allgemeine Situation, dass die logischen Gastspeicheradressen 8021 kontinuierlich sind, während die physischen Gastspeicheradressen 8022 dynamisch und nicht kontinuierlich zugewiesen werden. Die in der dynamischen Gastadress-Übersetzungstabelle 802 gezeigte Zuordnungsbeziehung ist ebenfalls beispielhaft, da sie üblicherweise dynamisch und unvorhersagbar ist.
  • In Schritt S704 erlangt die Assistenzsteuereinheit eine logische Host-Speicheradresse B2, welche die physische Gastspeicheradresse B2 an sich ist. In 8 kann eine beispielhafte Liste 803 der logischen Host-Speicheradressen gespeichert werden, wobei die physischen Gastspeicheradressen 8031 in dem Wert dieselben sind wie die logischen Host-Speicheradressen 8032.
  • In Schritt S705 erlangt die Assistenzsteuereinheit die dynamische Host-Adress-Übersetzungstabelle 804. Die Struktur der dynamischen Host-Adress-Übersetzungstabelle 804, die durch das Host-Betriebssystem verwaltet wird, ist der Struktur der dynamischen Gastadress-Übersetzungstabelle 802 ähnlich, die durch das Gastbetriebssystem verwaltet wird. Die logischen Host-Speicheradressen 8041 sind kontinuierlich, während die physischen Host-Speicheradressen 8042 diskontinuierlich zugewiesen werden.
  • Gleichermaßen könnte das Host-Betriebssystem die dynamische Host-Adress-Übersetzungstabelle 804 erneut in einem Speicher speichern, wo die Assistenzsteuereinheit darauf zugreifen kann, oder nur an die Assistenzsteuereinheit einen entsprechenden Zeiger/eine entsprechende Adresse eines Speichers senden, wo die dynamische Host-Adress-Übersetzungstabelle 804 gespeichert ist. Das erneute Speichern des Sendens kann zuvor durch das Host-Betriebssystem beendet werden, womit die dynamische Host-Adress-Übersetzungstabelle 804 einfach durch die Assistenzsteuereinheit erlangt werden kann, ohne in den Host-Zustand zu wechseln.
  • In Schritt S706 durchsucht die Assistenzsteuereinheit die dynamische Host-Adress-Übersetzungstabelle 804 mit der logischen Host-Speicheradresse B2, um eine physische Host-Speicheradresse C5 zu erlangen.
  • In Schritt S707 speichert die Assistenzsteuereinheit die logische Gastspeicheradresse A1 und die physische Host-Speicheradresse C5 in der dynamischen Schattenadress-Übersetzungstabelle 805.
  • Schließlich können die logischen Gastspeicheradressen 8051 und die physischen Host-Speicheradressen 8052 in der dynamischen Schattenadress-Übersetzungstabelle 805 enthalten sein.
  • Ferner wird eine Zuordnung zwischen der logischen Gastspeicheradresse und der physischen Gastspeicheradresse in der dynamischen Schattenadress-Übersetzungstabelle 805 gespeichert. Zum Beispiel kann die physische Gastspeicheradresse B2 auch in der dynamischen Schattenadress-Übersetzungstabelle 805 gespeichert werden. Als ein Ergebnis können entsprechende physische Gastspeicheradressen 8053 auch in der dynamischen Schattenadress-Übersetzungstabelle 805 enthalten sein. Daher können durch das Gastbetriebssystem an der Zuordnung zwischen den logischen Gastspeicheradressen und den physischen Gastspeicheradressen vorgenommene Änderungen verfolgt werden und können rechtzeitig durch die dynamische Schattenadress-Übersetzungstabelle 805 widergespiegelt werden, falls dies notwendig ist.
  • Die dynamische Schattenadress-Übersetzungstabelle 805 kann in einem oder mehreren Speicherrahmen gespeichert werden, wie beispielsweise dem in 7 gezeigten Speicherrahmen 502. Jede berechtigte Einheit oder Anwendung, wie beispielsweise eine DMA-Steuereinheit, kann darauf zugreifen. Gleichzeitig können die Teile in dem physischen Host-Speicher, die den physischen Host-Speicheradressen 8052 entsprechen, als gepinnt markiert werden, um zu vermeiden, dass sie unerwartet betrieben werden, speziell zu vermeiden, dass sie während eines Wechselprozesses aus dem Speicher auf die Festplatte wechseln.
  • Wenn in manchen Fällen die physische Host-Speicheradresse C5 ungültig ist, tritt ein Fehler auf, und der Prozess kann pausieren. Die Assistenzsteuereinheit kann eine Unterbrechung erzeugen, die durch die CPU abgewickelt wird.
  • 8 ist nur ein veranschaulichendes Schaubild, in dem alle Nummern, wie beispielsweise A1, B2, C5, nur beispielhaft zum besseren Klären der Ausführungsform und nicht zur Einschränkung der Ausführungsform sind. Da zum Beispiel die logischen Gastspeicheradressen während der Übermittlung nicht geändert werden, werden ihre Werte möglicherweise nicht an die dynamische Schattenadress-Übersetzungstabelle 805 übermittelt und darin gespeichert, solange die Abfolgereihenfolge ihrer Eintragsnummern, wie beispielsweise 0, 1, ... n, aufrechterhalten wird. Ferner die Sicherheit und/oder den Grundsatz der Speicherverwaltung berücksichtigend, können die Nummern, wie beispielsweise C5, auch Eintragsnummern sein, die für den direkten Zugriff auf die Hardware noch übersetzt werden müssen. Wenn in dieser Situation C5 eine zulässige Eintragsnummer ist, die übersetzte Adresse jedoch ungültig ist, kann auch ein Fehler auftreten und der Prozess kann auch pausieren.
  • Ferner gibt die Assistenzsteuereinheit in Schritt S405 als Reaktion auf eine Anforderung zum Löschen der dynamischen Schattenadress-Übersetzungstabelle 805, die üblicherweise nach der Verwendung der dynamischen Schattenadress-Übersetzungstabelle 805 auftritt, den durch die dynamische Schattenadress-Übersetzungstabelle belegten Speicherrahmen 502 an die Kette 50 aus. Der Speicherrahmen 502 kann in jeder Position der Kette 50 hinzugefügt werden, wie beispielsweise zu der Endung.
  • In Ausführungsformen der vorliegenden Offenbarung ist eine Kette 50, die eine Mehrzahl von Speicherrahmen umfasst, vorab zugewiesen, um dynamische Schattenadress-Übersetzungstabellen zu speichern, welche die Adressen der derzeit gepinnten physischen Host-Speicher aufweisen. Somit können diese gepinnten physischen Host-Speicher einschließlich derjenigen, die als E/A-Puffer für DMA verwendet werden, einheitlich verwaltet werden, um die Verwaltung der Hardware-Ressourcen zu erleichtern, wie beispielsweise eine statistische Analyse der Speicher. Ferner kann der Hypervisor 201 eine Ressourcenzuordnungsstrategie auf Grundlage der statistischen Analyse an die virtuellen Maschinen anpassen.
  • 9 ist ein Blockschaubild, das ein weiteres beispielhaftes Computersystem zeigt, das anwendbar ist, um manche Ausführungsformen der vorliegenden Offenbarung umzusetzen. Wie in 10 gezeigt, weist das Computersystem/der Server 12 ferner eine Assistenzsteuereinheit 161 auf. Ein Satz von Computerprogrammanweisungen entsprechend den in dem Programm/Dienstprogramm 40 enthaltenen Programmmodulen 42 wird in dem Speicher 28 gespeichert und durch mindestens einen der Prozessoren, wie beispielsweise die CPU 160 in der Verarbeitungseinheit 16 und die Assistenzsteuereinheit 161 ausgeführt, um Aktionen durchzuführen. In den Aktionen wird ein Speicherraum durch den mindestens einen der Prozessoren zugeordnet. Als Reaktion auf eine Anforderung zum Aufbauen einer dynamischen Schattenadress-Übersetzungstabelle wird ein Speicherabschnitt von dem Speicherraum kommend durch die Assistenzsteuereinheit erlangt. Die dynamische Schattenadress-Übersetzungstabelle umfasst eine Zuordnung zwischen mindestens einer logischen Gastspeicheradresse und mindestens einer physischen Host-Speicheradresse. Die dynamische Schattenadress-Übersetzungstabelle wird durch die Assistenzsteuereinheit aufgebaut. Die dynamische Schattenadress-Übersetzungstabelle wird durch die Assistenzsteuereinheit in dem Speicher gespeichert. Als Reaktion auf eine Anforderung zum Löschen der dynamischen Schattenadress-Übersetzungstabelle wird der durch die dynamische Schattenadress-Übersetzungstabelle belegte Speicherabschnitt dem Speicherraum durch die Assistenzsteuereinheit zurückgegeben. Kurz gesagt kann der mindestens eine der Prozessoren die CPU 160 mit hoher Berechtigung sein und führt die meisten der Programmanweisungen durch. Die CPU 160 führt das Host-Betriebssystem und Gastbetriebssystem in dem Computersystem/Server 12 aus. Die Assistenzsteuereinheit 161, die ein Prozessor in der Verarbeitungseinheit 16 sein kann, arbeitet, um automatisch eine dynamische Schattenadress-Übersetzungstabelle aufzubauen, zu aktualisieren und zu löschen. Neue Hardware kann für die Assistenzsteuereinheit verwendet werden, oder bestehende Hardware kann zugewiesen und umprogrammiert werden, um als die Assistenzsteuereinheit 161 zu fungieren
  • 10 ist ein Schaubild, das gemäß einer Ausführungsform der vorliegenden Offenbarung die Zusammenarbeit zwischen einer CPU und einer Assistenzsteuereinheit zeigt. Wie in 10 gezeigt, muss die CPU 1001 ohne die Assistenzsteuereinheit 161 häufig zwischen in dem Host/Kernel-Zustand 1021, um das Host-Betriebssystem auszuführen, und in dem Gastzustand 1022, um das Gastbetriebssystem auszuführen, wechseln. Wann immer zum Beispiel eine Anforderung zum Aufbauen oder Aktualisieren einer dynamischen Schattenadress-Übersetzungstabelle während S4010, worin die CPU 1001 das Gastbetriebssystem ausführt, empfangen wird, wird die CPU 1001 unterbrochen. S402 wird ausgeführt, und die CPU 1001 geht in den Host/Kernel-Zustand 1021, um die dynamische Schattenadress-Übersetzungstabelle aufzubauen oder zu aktualisieren. Wann immer eine Anforderung zum Löschen einer dynamischen Schattenadress-Übersetzungstabelle während S4030 empfangen wird, worin die CPU 1001 das Gastbetriebssystem ausführt, wird die CPU 1001 unterbrochen, um wieder in den Host/Kernel-Zustand 1021 zu gehen. Die Zustandsänderung und ihr zugehöriger Kontextwechsel sind zeitaufwändig, speziell wenn ein Gastbetriebssystem häufig die dynamische Schattenadress-Übersetzungstabelle nach jedem E/A-Vorgang aktualisiert und die CPU 1001 wiederholt unterbrochen wird.
  • Mit der Assistenzsteuereinheit 161 kann die CPU 160 Aufgaben durch S402, S403, S404 fortführen, ohne unterbrochen zu werden. Nur in wenigen Fällen kann die CPU 160 als Reaktion auf die Anforderung von der Assistenzsteuereinheit 161 die Leerkettenunterbrechung 1013 während S402 oder die Unterbrechung einer ungültigen Adresse 1014 während S704 abwickeln. Die Betriebsperiode 1023 der Assistenzsteuereinheit 161 deckt S402, S403 und S404 ab, namentlich kann die Assistenzsteuereinheit 161 die dynamische Schattenadress-Übersetzungstabelle automatisch aufbauen, aktualisieren, löschen, um den Zeitaufwand des Abwickelns der Unterbrechung durch die CPU zu verringern, so dass die Gesamtleistung des Computersystems/Servers verbessert werden kann
  • Bei der vorliegenden Offenbarung kann es sich um ein System, ein Verfahren und/oder ein Computerprogrammprodukt auf einer beliebigen möglichen technischen Detaillierungsstufe einer Integration handeln. Das Computerprogrammprodukt kann (ein) durch einen Computer lesbare(s) Speichermedium (oder -medien) umfassen, auf dem/denen durch einen Computer lesbare Programmanweisungen gespeichert ist/sind, um einen Prozessor dazu zu veranlassen, Aspekte der vorliegenden Offenbarung auszuführen.
  • Bei dem durch einen Computer lesbaren Speichermedium kann es sich um eine physische Einheit handeln, die Anweisungen zur Verwendung durch ein System zur Ausführung von Anweisungen behalten und speichern kann. Bei dem durch einen Computer lesbaren Speichermedium kann es sich zum Beispiel um eine elektronische Speichereinheit, eine magnetische Speichereinheit, eine optische Speichereinheit, eine elektromagnetische Speichereinheit, eine Halbleiterspeichereinheit oder jede geeignete Kombination daraus handeln, ohne auf diese beschränkt zu sein. Zu einer nicht erschöpfenden Liste spezifischerer Beispiele des durch einen Computer lesbaren Speichermediums gehören die Folgenden: eine tragbare Computerdiskette, eine Festplatte, ein Direktzugriffsspeicher (RAM), ein Nur-Lese-Speicher (ROM), ein löschbarer programmierbarer Nur-Lese-Speicher (EPROM bzw. Flash-Speicher), ein statischer Direktzugriffsspeicher (SRAM), ein tragbarer Kompaktspeicherplatte-Nur-Lese-Speicher (CD-ROM), eine DVD (digital versatile disc), ein Speicher-Stick, eine Diskette, eine mechanisch kodierte Einheit wie zum Beispiel Lochkarten oder erhabene Strukturen in einer Rille, auf denen Anweisungen gespeichert sind, und jede geeignete Kombination daraus. Ein durch einen Computer lesbares Speichermedium soll in der Verwendung hierin nicht als flüchtige Signale an sich aufgefasst werden, wie zum Beispiel Funkwellen oder andere sich frei ausbreitende elektromagnetische Wellen, elektromagnetische Wellen, die sich durch einen Wellenleiter oder ein anderes Übertragungsmedium ausbreiten (z.B. durch ein Glasfaserkabel geleitete Lichtimpulse) oder durch einen Draht übertragene elektrische Signale.
  • Hierin beschriebene, durch einen Computer lesbare Programmanweisungen können von einem durch einen Computer lesbaren Speichermedium auf jeweilige Datenverarbeitungs-/Verarbeitungseinheiten oder über ein Netzwerk wie zum Beispiel das Internet, ein lokales Netzwerk, ein Weitverkehrsnetz und/oder ein drahtloses Netzwerk auf einen externen Computer oder eine externe Speichereinheit heruntergeladen werden. Das Netzwerk kann Kupferübertragungskabel, Lichtwellenübertragungsleiter, drahtlose Übertragung, Leitwegrechner, Firewalls, Vermittlungseinheiten, Gateway-Computer und/oder Edge-Server aufweisen. Eine Netzwerkadapterkarte oder Netzwerkschnittstelle in jeder Datenverarbeitungs-/Verarbeitungseinheit empfängt durch einen Computer lesbare Programmanweisungen aus dem Netzwerk und leitet die durch einen Computer lesbaren Programmanweisungen zur Speicherung in einem durch einen Computer lesbaren Speichermedium innerhalb der entsprechenden Datenverarbeitungs-/Verarbeitungseinheit weiter.
  • Bei durch einen Computer lesbaren Programmanweisungen zum Ausführen von Arbeitsschritten der vorliegenden Offenbarung kann es sich um Assembler-Anweisungen, ISA-Anweisungen (Instruction-Set-Architecture), Maschinenanweisungen, maschinenabhängige Anweisungen, Mikrocode, Firmware-Anweisungen, zustandssetzende Daten oder entweder Quellcode oder Objektcode handeln, die in einer beliebigen Kombination aus einer oder mehreren Programmiersprachen geschrieben werden, darunter objektorientierte Programmiersprachen wie Smalltalk, C++ o.ä. sowie herkömmliche prozedurale Programmiersprachen wie die Programmiersprache „C“ oder ähnliche Programmiersprachen. Die durch einen Computer lesbaren Programmanweisungen können vollständig auf dem Computer des Benutzers, teilweise auf dem Computer des Benutzers, als eigenständiges Software-Paket, teilweise auf dem Computer des Benutzers und teilweise auf einem fernen Computer oder vollständig auf dem fernen Computer oder Server ausgeführt werden. In letzterem Fall kann der entfernt angeordnete Computer mit dem Computer des Benutzers durch eine beliebige Art Netzwerk verbunden sein, darunter ein lokales Netzwerk (LAN) oder ein Weitverkehrsnetz (WAN), oder die Verbindung kann mit einem externen Computer hergestellt werden (zum Beispiel über das Internet unter Verwendung eines Internet-Dienstanbieters). In einigen Ausführungsformen können elektronische Schaltungen, darunter zum Beispiel programmierbare Logikschaltungen, im Feld programmierbare Gatter-Anordnungen (FPGA, field programmable gate arrays) oder programmierbare Logikanordnungen (PLA, programmable logic arrays) die durch einen Computer lesbaren Programmanweisungen ausführen, indem sie Zustandsinformationen der durch einen Computer lesbaren Programmanweisungen nutzen, um die elektronischen Schaltungen zu personalisieren, um Aspekte der vorliegenden Offenbarung durchzuführen.
  • Aspekte der vorliegenden Offenbarung sind hierin unter Bezugnahme auf Ablaufpläne und/oder Blockschaltbilder bzw. Schaubilder von Verfahren, Vorrichtungen (Systemen) und Computerprogrammprodukten gemäß Ausführungsformen der Offenbarung beschrieben. Es wird darauf hingewiesen, dass jeder Block der Ablaufpläne und/oder der Blockschaltbilder bzw. Schaubilder sowie Kombinationen von Blöcken in den Ablaufplänen und/oder den Blockschaltbildern bzw. Schaubildern mittels durch einen Computer lesbare Programmanweisungen ausgeführt werden können.
  • Diese durch einen Computer lesbaren Programmanweisungen können einem Prozessor eines Universalcomputers, eines Spezialcomputers oder einer anderen programmierbaren Datenverarbeitungsvorrichtung bereitgestellt werden, um eine Maschine zu erzeugen, 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 Blockschaltbilder bzw. Schaubilder 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 Blockschaltbilder bzw. Schaubilder 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 Blockschaltbilder bzw. Schaubilder festgelegten Funktionen/Schritte umsetzen.
  • Die Ablaufpläne 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 Blockschaltbildern bzw. Schaubildern 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 dem Block 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 Blockschaltbilder bzw. Schaubilder und/oder der Ablaufpläne sowie Kombinationen aus Blöcken in den Blockschaltbildern bzw. Schaubildern 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.
  • Die Beschreibungen der verschiedenen Ausführungsformen der vorliegenden Offenbarung wurden zu Zwecken der Veranschaulichung vorgelegt, sind jedoch nicht als erschöpfend oder auf die offenbarten Ausführungsformen beschränkt aufzufassen. Viele Änderungen und Variationen sind für den Fachmann ersichtlich, ohne von dem Umfang und Geist der beschriebenen Ausführungsformen abzuweichen. Die hierin verwendete Terminologie wurde gewählt, um die Grundgedanken der Ausführungsformen, die praktische Anwendung oder technischen Verbesserungen gegenüber auf dem Markt anzutreffenden Technologien am besten zu erklären oder um anderen Fachleuten ein Verständnis der hierein offenbarten Ausführungsformen zu ermöglichen.

Claims (10)

  1. Computerumgesetztes Verfahren, aufweisend: Erlangen, als Reaktion auf eine Anforderung zum Aufbauen einer dynamischen Schattenadress-Übersetzungstabelle, eines Speicherabschnitts von einem Speicherraum kommend, wobei der Speicherraum für mindestens ein Gastbetriebssystem zugeordnet wird und wobei die dynamische Schattenadress-Übersetzungstabelle eine Zuordnung zwischen mindestens einer logischen Gastspeicheradresse und mindestens einer physischen Host-Speicheradresse aufweist; Aufbauen der dynamischen Schattenadress-Übersetzungstabelle; und Speichern der dynamischen Schattenadress-Übersetzungstabelle in dem Speicherabschnitt.
  2. Computerumgesetztes Verfahren nach Anspruch 1, ferner aufweisend: Zurückgeben, als Reaktion auf eine Anforderung zum Löschen der dynamischen Schattenadress-Übersetzungstabelle, des durch die dynamische Schattenadress-Übersetzungstabelle belegten Speicherabschnitts an den Speicherraum.
  3. Computerumgesetztes Verfahren nach Anspruch 1, wobei der Speicherraum eine Kette einer Mehrzahl von Speicherrahmen aufweist; wobei in zwei benachbarten Speicherrahmen in der Kette ein bestimmter Speicherrahmen einen Zeiger aufweist, der auf einen benachbarten Speicherrahmen verweist; und wobei das Erlangen des Speicherabschnitts von dem Speicherraum kommend ein Erlangen mindestens eines Speicherrahmens von der Kette der Mehrzahl von Speicherrahmen kommend aufweist.
  4. Computerumgesetztes Verfahren nach Anspruch 3, ferner aufweisend: Speichern des Zeigers in einen Header der Kette der Mehrzahl von Speicherrahmen.
  5. Computerumgesetztes Verfahren nach Anspruch 1, wobei das Aufbauen der dynamischen Schattenadress-Übersetzungstabelle aufweist: Erlangen einer zu übersetzenden logischen Gastspeicheradresse von der Anforderung des Aufbauens der dynamischen Schattenadress-Übersetzungstabelle kommend; Erlangen einer dynamischen Gastadress-Übersetzungstabelle einschließlich einer oder mehrerer Zuordnungen zwischen einer oder mehreren logischen Gastspeicheradressen und einer oder mehreren physischen Gastspeicheradressen von einem Gastbetriebssystem kommend; Durchsuchen der dynamischen Gastadress-Übersetzungstabelle mit der logischen Gastspeicheradresse, um eine physische Gastspeicheradresse zu erlangen; Erlangen einer logischen Host-Speicheradresse auf Grundlage der physischen Gastspeicheradresse; Erlangen einer dynamischen Host-Adress-Übersetzungstabelle einschließlich einer oder mehrerer Zuordnungen zwischen einer oder mehreren logischen Host-Speicheradressen und einer oder mehreren physischen Host-Speicheradressen von einem Host-Betriebssystem kommend; Durchsuchen der dynamischen Host-Adress-Übersetzungstabelle mit der logischen Host-Speicheradresse, um eine physische Host-Speicheradresse zu erlangen; und Speichern einer Zuordnung zwischen der logischen Gastspeicheradresse und der physischen Host-Speicheradresse in der dynamischen Schattenadress-Übersetzungstabelle.
  6. Computerumgesetztes Verfahren nach Anspruch 5, ferner aufweisend: ein Pinnen eines Teils des physischen Host-Speichers, auf den durch die physische Host-Speicheradresse verwiesen wird.
  7. Computerumgesetztes Verfahren nach Anspruch 5, wobei das Aufbauen der dynamischen Schattenadress-Übersetzungstabelle ferner aufweist: Speichern einer Zuordnung zwischen der logischen Gastspeicheradresse und der physischen Gastspeicheradresse in der dynamischen Schattenadress-Übersetzungstabelle.
  8. Computerumgesetztes Verfahren nach Anspruch 1, wobei zusätzlicher Speicherraum zugeordnet wird, wenn ein zuvor festgelegtes Kriterium erfüllt wird.
  9. System, Mittel aufweisend, die geeignet sind, alle Schritte des Verfahrens nach einem der vorhergehenden Verfahrensansprüche auszuführen.
  10. Computerprogramm, das Anweisungen zum Ausführen aller Schritte des Verfahrens nach einem der vorhergehenden Verfahrensansprüche aufweist, wenn das Computerprogramm auf einem Computersystem ausgeführt wird.
DE112018006068.3T 2017-11-28 2018-11-21 Dynamische adressübersetzung für eine virtuelle maschine Pending DE112018006068T5 (de)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US15/824,110 US10387325B2 (en) 2017-11-28 2017-11-28 Dynamic address translation for a virtual machine
US15/824,110 2017-11-28
PCT/IB2018/059176 WO2019106491A1 (en) 2017-11-28 2018-11-21 Dynamic address translation for a virtual machine

Publications (1)

Publication Number Publication Date
DE112018006068T5 true DE112018006068T5 (de) 2020-08-13

Family

ID=66633195

Family Applications (1)

Application Number Title Priority Date Filing Date
DE112018006068.3T Pending DE112018006068T5 (de) 2017-11-28 2018-11-21 Dynamische adressübersetzung für eine virtuelle maschine

Country Status (6)

Country Link
US (1) US10387325B2 (de)
JP (1) JP7089333B2 (de)
CN (1) CN111183411B (de)
DE (1) DE112018006068T5 (de)
GB (1) GB2581113B (de)
WO (1) WO2019106491A1 (de)

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10387325B2 (en) 2017-11-28 2019-08-20 International Business Machines Corporation Dynamic address translation for a virtual machine
US10891238B1 (en) 2019-06-28 2021-01-12 International Business Machines Corporation Dynamically joining and splitting dynamic address translation (DAT) tables based on operational context
US11176056B2 (en) 2019-06-28 2021-11-16 International Business Machines Corporation Private space control within a common address space
US11074195B2 (en) * 2019-06-28 2021-07-27 International Business Machines Corporation Access to dynamic address translation across multiple spaces for operational context subspaces
US11281483B2 (en) 2019-10-16 2022-03-22 International Business Machines Corporation Preserving transient address translation information across a firmware assisted dump procedure

Family Cites Families (18)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2001051900A (ja) * 1999-08-17 2001-02-23 Hitachi Ltd 仮想計算機方式の情報処理装置及びプロセッサ
US7310721B2 (en) 2003-10-30 2007-12-18 Microsoft Corporation Shadow page tables for address translation control
US7363463B2 (en) * 2005-05-13 2008-04-22 Microsoft Corporation Method and system for caching address translations from multiple address spaces in virtual machines
US20080005447A1 (en) * 2006-06-30 2008-01-03 Sebastian Schoenberg Dynamic mapping of guest addresses by a virtual machine monitor
US7996628B2 (en) 2008-02-14 2011-08-09 International Business Machines Corporation Cross adapter shared address translation tables
US8095773B2 (en) * 2008-02-26 2012-01-10 International Business Machines Corporation Dynamic address translation with translation exception qualifier
US8234432B2 (en) * 2009-01-26 2012-07-31 Advanced Micro Devices, Inc. Memory structure to store interrupt state for inactive guests
US8060722B2 (en) 2009-03-27 2011-11-15 Vmware, Inc. Hardware assistance for shadow page table coherence with guest page mappings
US8799879B2 (en) * 2009-06-30 2014-08-05 Oracle America, Inc. Method and apparatus for protecting translated code in a virtual machine
US8635430B2 (en) 2010-06-23 2014-01-21 International Business Machines Corporation Translation of input/output addresses to memory addresses
US8650337B2 (en) 2010-06-23 2014-02-11 International Business Machines Corporation Runtime determination of translation formats for adapter functions
CN103597451B (zh) * 2011-03-31 2017-06-13 英特尔公司 用于高可用性的存储器镜像和冗余生成
US9384024B2 (en) * 2012-12-18 2016-07-05 Dynavisor, Inc. Dynamic device virtualization
CN104239227B (zh) 2013-06-20 2017-06-06 新华三技术有限公司 一种虚拟化存储管理装置、本地虚拟存储管理装置及方法
US9223553B2 (en) * 2013-09-26 2015-12-29 Intel Corporation Methods and apparatus to validate translated guest code in a dynamic binary translator
CN103793260A (zh) 2013-10-09 2014-05-14 中国电子设备***工程公司研究所 一种平台虚拟化***
CN104750623B (zh) 2013-12-31 2017-11-24 华为技术有限公司 一种内存虚拟化的方法及装置
US10387325B2 (en) 2017-11-28 2019-08-20 International Business Machines Corporation Dynamic address translation for a virtual machine

Also Published As

Publication number Publication date
WO2019106491A1 (en) 2019-06-06
US10387325B2 (en) 2019-08-20
JP7089333B2 (ja) 2022-06-22
CN111183411A (zh) 2020-05-19
JP2021504804A (ja) 2021-02-15
GB2581113A (en) 2020-08-05
US20190163643A1 (en) 2019-05-30
GB202008612D0 (en) 2020-07-22
GB2581113B (en) 2020-12-23
CN111183411B (zh) 2023-10-13

Similar Documents

Publication Publication Date Title
DE112018006068T5 (de) Dynamische adressübersetzung für eine virtuelle maschine
DE112005002298B4 (de) Leistungssteigerung einer Adreßübersetzung unter Verwendung von Übersetzungstabellen, die große Adreßräume umfassen
DE112017001027B4 (de) Seitenfehlerbehebung
DE112018002951T5 (de) Verwenden eines spurformatcodes in einem cache-steuerblock für eine spur in einem cache, um lese- und schreibanforderungen in bezug auf die spur im cache zu verarbeiten
DE102018213430A1 (de) Beschleuniger mit geringer Latenzzeit
DE112017005063T5 (de) Verwalten eines Speichers mit niedrigstem Kohärenzpunkt (LPC) mithilfe eines Dienstschichtadapters
DE102010035603A1 (de) Bereitstellen von Hardwareunterstützung für gemeinsam benutzten virtuellen Speicher zwischen physischem Lokal- und Fernspeicher
DE112010005821T5 (de) Kontextwechsel
DE102010001985A1 (de) Vorrichtung zum Schalten des Betriebs einer virtuellen Maschine zwischen mehreren Computern, die der gleichen Computerplattform zugeordnet sind, und entsprechende Schaltverfahren
DE69524916T2 (de) Verfahren und Vorrichtung zur Datenübertragung im Bereich der Rechnersysteme
DE112018005121T5 (de) Speichersystem unter verwendung von cloud-speicher als eine speicherbank
DE112018005135T5 (de) Thin provisioning unter verwendung von speicherbänken auf cloud-grundlage
DE112019001863T5 (de) Verwenden von spursperren und schrittweitengruppensperren zum verwalten von cacheoperationen
DE112020002583T5 (de) Speicherdienste zwischen betriebssystemen über kommunikationsnetzwerkverbindungen
DE112018004220T5 (de) Speicherzugriffs-Vermittlersystem mit anwendungsgesteuerter Unterstützung für frühzeitige Schreibbestätigung
DE102021131418A1 (de) Dedizierte registerdatei mit begrenzungsinformationen zum schützen vor speicherreferenzen ausserhalb der begrenzungen
DE102013209643A1 (de) Mechanismus für optimierte Nachrichtenaustauschdatenübertragung zwischen Nodelets innerhalb eines Plättchens
DE102017124078A1 (de) Ordinale modifikation der dienstgüte
DE102021107336A1 (de) VORRICHTUNGEN, SYSTEME, UND VERFAHREN FÜR PCIe ENDPUNKT INTERRUPT
DE112018005359T5 (de) Verhindern eines Beibehaltens von Datensatzsperren durch Transaktionen mit langer Laufzeit
DE102018213428A1 (de) Techniken zum Reduzieren von Beschleuniger-Speicherzugriffskosten in Plattformen mit mehreren Speicherkanälen
DE112020002558T5 (de) Speicherverwaltungseinheit (mmu) für zugriff auf ausgeliehenen speicher
DE112010005951T5 (de) Unterbrechungssignal-Annahmevorrichtung und Computervorrichtung
DE112016007538T5 (de) Technologie zur realisierung eines binärverzweigten non-volatile-memory-express-treibers
DE112020005106T5 (de) Verfahren und systeme zum umsetzen von virtuellen adressen in einem auf virtuellem speicher beruhenden system

Legal Events

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