-
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.