-
HINTERGRUND
-
1. Gebiet:
-
Die vorliegende Offenbarung bezieht sich allgemein auf Datenverarbeitungs-Netzwerke und insbesondere auf das Verarbeiten von Datenpaketen in Datenverarbeitungs-Netzwerken. Noch genauer gesagt, bezieht sich die vorliegende Offenbarung auf das Leiten von Datenpaketen zu Verarbeitungs-Ressourcen in einer Netzwerk-Datenverarbeitungskomponente für eine leistungsfähigere Verarbeitung.
-
2. Beschreibung der verwandten Technik:
-
In Datenverarbeitungs-Netzwerken werden digitale Daten zur Verarbeitung zwischen Endpunkten des Netzwerks befördert. Das Internet und Netzwerk-Rechenzentren etwa sind Beispiele für solche Datenverarbeitungs-Netzwerke, ohne darauf beschränkt zu sein. Die Endpunkte des Datenverarbeitungs-Netzwerks können Computer oder sonstige Datenverarbeitungseinheiten zum Verarbeiten digitaler Daten auf vielfältige Weise zum Durchführen einer Vielfalt von Funktionen beinhalten. Die Arten von Prozessen, die an oder mithilfe von digitalen Daten an den Endpunkten eines Datenverarbeitungs-Netzwerks durchgeführt werden können, sind praktisch unbegrenzt.
-
In vielen Datenverarbeitungs-Netzwerken werden digitale Daten in Form von Datenpaketen in dem Netzwerk befördert. Bei einem Datenpaket handelt es sich um eine formatierte Einheit von Daten, die von Computern oder sonstigen Datenverarbeitungseinheiten dazu verwendet wird, Daten über das Netzwerk miteinander auszutauschen. Einige Computer und Netzwerke verwenden keine Datenpakete für den Datenaustausch, bei den meisten ist dies jedoch zurzeit der Fall, zum Beispiel bei nahezu sämtlichen Computern im Internet. Die Verwendung von Datenpaketen ermöglicht vielen Computern oder sonstigen Datenverarbeitungseinheiten in einem Netzwerk, Daten schneller und einfacher auszutauschen.
-
Über die Verarbeitung von Datenpaketen an den Endpunkten eines Datenverarbeitungs-Netzwerks hinaus können Datenpakete durch integrierte Prozessoren in dem Netzwerk verarbeitet werden. Die integrierten Prozessoren können sich zwischen den Endpunkten in dem Netzwerk befinden. Integrierte Prozessoren filtern oder modifizieren Daten in dem Netzwerk und senden sie weiter, wohingegen Endpunkte in dem Netzwerk als Datennutzer oder -verbraucher gelten können. Angriffserkennungssysteme, Leitwegrechner, Unternehmensbusse und Firewalls sind Beispiel für solche integrierten Prozessoren, ohne darauf beschränkt zu sein.
-
Endpunkt- und integrierte Datenverarbeitung in einem Netzwerk kann mithilfe von Datenverarbeitungskomponenten umgesetzt werden, die mehrere unabhängige Datenverarbeitungs-Ressourcen bereitstellen. Bei den mehreren unabhängigen Datenverarbeitungs-Ressourcen, die durch eine einzelne Datenverarbeitungskomponente dieses Typs bereitgestellt werden, kann es sich um Datenverarbeitungseinheiten handeln, die Programmbefehle unabhängig lesen und ausführen. Beispielsweise kann es sich bei den unabhängigen Datenverarbeitungs-Ressourcen in einer einzelnen Datenverarbeitungskomponente um unabhängige Prozessoren handeln. Diese unabhängigen Datenverarbeitungs-Ressourcen in der Datenverarbeitungskomponente können als Kerne bezeichnet werden. Hersteller können mehrere Kerne auf einem einzigen integrierten Schaltungs-Chip oder auf mehreren Chips in einem einzigen Chip-Gehäuse einbauen, um eine Datenverarbeitungskomponente zu formen, die mehrere unabhängige Datenverarbeitungs-Ressourcen bereitstellt. Mehrkernprozessoren werden in zahlreichen Anwendungen eingesetzt, zum Beispiel bei Universaldatenverarbeitung, eingebetteter Datenverarbeitung, Netzwerkfunktionen, digitaler Signalverarbeitung und Grafiken, ohne darauf beschränkt zu sein.
-
In Fällen, in denen ein Mehrkernprozessor verwendet wird, um Datenpakete zu verarbeiten, müssen die Datenpakete, die durch die Datenverarbeitungskomponente verarbeitet werden sollen, zur Verarbeitung zu den einzelnen Kernen geleitet werden. Es können verschiedene Prozesse und Einheiten verwendet werden, um Datenpakete zur Verarbeitung durch einzelne Prozessorkerne eines Mehrkernprozessors zu leiten. Solche Prozesse und Einheiten können verschiedene Regeln zum Leiten von Datenpaketen zur Verarbeitung durch die einzelnen Prozessorkerne anwenden. Solche Regeln können Datenpakete zur Verarbeitung durch die Prozessorkerne in einer Weise leiten, die die Verarbeitungs-Ressourcen nutzt, die in dem Mehrkernprozessor verfügbar sind, um die Datenpakete schnell und effizient zu verarbeiten. Beispielsweise kann eine solche Regel zum Leiten von Datenpaketen angeben, dass neu empfangene Datenpakete zu Prozessorkernen in dem Mehrkernprozessor geleitet werden sollen, die weniger stark ausgelastet sind als andere Prozessorkerne in dem Mehrkernprozessor, ohne darauf beschränkt zu sein. Ein Ethernet-Adapter ist ein Beispiel für eine Einheit, die solche Regeln zum Leiten von Datenpaketen zur Verarbeitung durch einzelne Prozessorkerne in einem Mehrkernprozessor umsetzen kann, um Verarbeitungseffizienz zu erzielen, ohne darauf beschränkt zu sein.
-
Sonstige Regeln zum Leiten von Datenpaketen zur Verarbeitung durch einzelne Prozessorkerne in einem Mehrkernprozessor können versuchen, andere Arten von Verarbeitungseffizienz zu erzielen. Um beispielsweise die Energieeffizienz zu erhöhen, kann eine bestimmte Anzahl aktiver Prozessorkerne in dem Mehrkernprozessor ausgeschaltet werden, während eine Anzahl inaktiver Prozessorkerne in dem Mehrkernprozessor eingeschaltet wird. Die Datenpaketverarbeitung kann dann von den Prozessorkernen, die ausgeschaltet werden, zu anderen Prozessorkernen in dem Mehrkernprozessor verlagert werden, die eingeschaltet bleiben oder werden. Einzelne Prozessorkerne erwärmen sich während der Verarbeitung von Datenpaketen. Wärmere Kerne verbrauchen mehr Energie für die Verarbeitung als kühlere Kerne. Daher kann durch Verlagern der Datenverarbeitung von wärmeren aktiven Kernen zu kühleren inaktiven Kernen der Gesamtenergieverbrauch durch den Mehrkernprozessor potenziell gesenkt werden.
-
Dennoch ist eine Verbesserung solcher Verfahren zur besseren Optimierung der erzielbaren Effizienzen wünschenswert.
-
Eine Verarbeitung mit maximaler Übertragungsgeschwindigkeit bezieht sich auf das Verarbeiten von Datenpaketen durch eine Datenverarbeitungskomponente bei einer Verarbeitungsgeschwindigkeit, bei der ein Durchsatz erzielt wird, der der theoretischen maximalen Nettoübertragungsgeschwindigkeit der Datenaustauschmedien, die die Datenpakete in einem Netzwerk übertragen, auf der Bitübertragungsschicht entspricht oder ihr nahekommt. Beispielsweise kann es sich bei den Datenaustauschmedien, die die Datenpakete in einem Netzwerk übertragen, um Kupferdrähte, Lichtwellenleiterkabel, drahtlose Medien oder sonstige Medien oder Kombinationen von Medien zum Übertragen von Datenpaketen in dem Netzwerk handeln, ohne darauf beschränkt zu sein. Länge Verzögerungen bei der Verarbeitung von Datenpaketen sind in einer Verarbeitungsumgebung mit maximaler Übertragungsgeschwindigkeit nicht zu vertreten.
-
Dementsprechend wäre es vorteilhaft, über ein Verfahren und eine Vorrichtung zu verfügen, die einem oder mehreren der oben erörterten Probleme wie auch möglichen sonstigen Problemen Rechnung trägt.
-
KURZDARSTELLUNG
-
Bei einer veranschaulichenden Ausführungsform wird ein Verfahren zum Verarbeiten von Datenpaketen bereitgestellt. Es wird ein Metrikwert für eine aktuelle Konfiguration von Verarbeitungs-Ressourcen in einer Datenverarbeitungskomponente identifiziert, die die Datenpakete verarbeitet. Mithilfe des Metrikwerts wird eine neue Konfiguration der Verarbeitungs-Ressourcen in der Datenverarbeitungskomponente ausgewählt. Die aktuelle Konfiguration der Verarbeitungs-Ressourcen in der Datenverarbeitungskomponente wird in die neue Konfiguration geändert. Anschließend werden die Datenpakete an die neue Konfiguration der Verarbeitungs-Ressourcen weitergegeben, um die Datenpakete zu verarbeiten, wie sie empfangen werden.
-
Bei einer weiteren veranschaulichenden Ausführungsform weist eine Vorrichtung eine Datenverarbeitungskomponente und einen Datenpaketverteiler auf. Die Datenverarbeitungskomponente weist eine Vielzahl von Verarbeitungs-Ressourcen auf, die zum Verarbeiten von Datenpaketen konfiguriert sind. Der Datenpaketverteiler ist dazu konfiguriert, einen Metrikwert für eine aktuelle Konfiguration der Verarbeitungs-Ressourcen in der Datenverarbeitungskomponente, die die Datenpakete verarbeitet, zu identifizieren, mithilfe des Metrikwerts eine neue Konfiguration der Verarbeitungs-Ressourcen in der Datenverarbeitungskomponente auszuwählen, die aktuelle Konfiguration der Verarbeitungs-Ressourcen in der Datenverarbeitungskomponente in die neue Konfiguration zu ändern und die Datenpakete an die neue Konfiguration der Verarbeitungs-Ressourcen zu verteilen, um die Datenpakete zu verarbeiten, wie sie empfangen werden.
-
Bei einer noch weiteren veranschaulichenden Ausführungsform weist ein Computerprogrammprodukt ein computerlesbares Speichermedium auf. Erste Programmbefehle, zweite Programmbefehle, dritte Programmbefehle und vierte Programmbefehle sind in dem computerlesbaren Speichermedium gespeichert. Die ersten Programmbefehle dienen zum Identifizieren eines Metrikwerts für eine aktuelle Konfiguration von Verarbeitungs-Ressourcen in einer Datenverarbeitungskomponente, die die Datenpakete verarbeitet. Die zweiten Programmbefehle dienen zum Auswählen einer neuen Konfiguration der Verarbeitungs-Ressourcen in der Datenverarbeitungskomponente mithilfe des Metrikwerts. Die dritten Programmbefehle dienen zum Ändern der aktuellen Konfiguration der Verarbeitungs-Ressourcen in der Datenverarbeitungskomponente in die neue Konfiguration. Die vierten Programmbefehle dienen zum Verteilen der Datenpakete an die neue Konfiguration der Verarbeitungs-Ressourcen, um die Datenpakete zu verarbeiten, wie sie empfangen werden.
-
Weitere Objekte, Merkmale und Vorteile werden aus der folgenden ausführlichen Beschreibung und den beigefügten Zeichnungsfiguren ersichtlich.
-
In einem Aspekt bezieht sich die Erfindung auf eine Vorrichtung, die aufweist: eine Datenverarbeitungskomponente, die eine Vielzahl von Verarbeitungs-Ressourcen, die dazu konfiguriert sind, Datenpakete zu verarbeiten, und einen Datenpaketverteiler, der konfiguriert ist zum:
Identifizieren eines Metrikwerts für eine aktuelle Konfiguration der Verarbeitungs-Ressourcen in der Datenverarbeitungskomponente, die die Datenpakete verarbeitet,
Auswählen einer neuen Konfiguration der Verarbeitungs-Ressourcen in der Datenverarbeitungskomponente mithilfe des Metrikwerts;
Ändern der aktuellen Konfiguration der Verarbeitungs-Ressourcen in der Datenverarbeitungskomponente in die neue Konfiguration; und
Verteilen der Datenpakete an die neue Konfiguration der Verarbeitungs-Ressourcen, um die Datenpakete zu verarbeiten, wie sie empfangen werden.
-
Gemäß einer Ausführungsform ist der Datenpaketverteiler des Weiteren dazu konfiguriert, den Metrikwert mithilfe zumindest eines von einem Arbeitslastbedarf der Verarbeitungs-Ressourcen, einer Temperatur der Verarbeitungs-Ressourcen, einem Ressourcen-Konflikt für die Verarbeitungs-Ressourcen, einer nachlassenden Funktionsfähigkeit der Verarbeitungs-Ressourcen, Positionen der Verarbeitungs-Ressourcen, einer Zusammenschaltbarkeit der Verarbeitungs-Ressourcen und einer inhärenten Ressourcen-Leistungseffizienz der Verarbeitungs-Ressourcen zu identifizieren.
-
Gemäß einer Ausführungsform handelt es sich bei der Datenverarbeitungskomponente um einen Mehrkernprozessor und bei den Verarbeitungs-Ressourcen um Kerne in dem Mehrkernprozessor.
-
Gemäß einer Ausführungsform weisen die Verarbeitungs-Ressourcen Gruppen von Prozessoren in der Datenverarbeitungskomponente auf.
-
Gemäß einer Ausführungsform weist der Metrikwert eine Anzahl von Werten für die Verarbeitungs-Ressourcen und einen Wert für die Datenverarbeitungskomponente auf.
-
Gemäß einer Ausführungsform weist der Metrikwert einen ersten Metrikwert für eine erste der Verarbeitungs-Ressourcen, der mithilfe erster Faktoren berechnet wird, und einen zweiten Metrikwert für eine zweite der Verarbeitungs-Ressourcen auf, der mithilfe zweiter Faktoren berechnet wird, wobei die ersten Faktoren sich von den zweiten Faktoren unterscheiden.
-
Gemäß einer Ausführungsform ist der Datenpaketverteiler dazu konfiguriert, die Konfiguration aus einer Gruppe von vordefinierten Konfigurationen auszuwählen.
-
Gemäß einer Ausführungsform ist der Datenpaketverteiler des Weiteren konfiguriert zum: Ermitteln, ob die aktuelle Konfiguration der Verarbeitungs-Ressourcen in der Datenverarbeitungskomponente für eine aktuelle Arbeitslast in der Datenverarbeitungskomponente geeignet ist; und Auswählen der neuen Konfiguration mithilfe des Metrikwerts und auf der Grundlage der aktuellen Arbeitslast in Reaktion auf eine Feststellung, dass die aktuelle Konfiguration von Verarbeitungs-Ressourcen in der Datenverarbeitungskomponente nicht für die aktuelle Arbeitslast geeignet ist.
-
Gemäß einer Ausführungsform ist der Datenpaketverteiler konfiguriert zum:
Ermitteln, ob der Metrikwert eine Schwellenwertbedingung erfüllt; und Auswählen der neuen Konfiguration in Reaktion auf eine Feststellung, dass der Metrikwert die Schwellenwertbedingung erfüllt.
-
KURZE BESCHREIBUNG DER VERSCHIEDENEN ANSICHTEN DER ZEICHNUNGEN
-
1 ist eine bildliche Darstellung eines Netzwerks von Datenverarbeitungssystemen, in dem veranschaulichende Ausführungsformen umgesetzt werden können;
-
2 ist eine Veranschaulichung eines Datenverarbeitungssystems zur Datenpaketverarbeitung gemäß einer veranschaulichenden Ausführungsform;
-
3 ist eine Veranschaulichung eines Ablaufplans eines Prozesses zum Bereitstellen einer Datenpaketverarbeitung gemäß einer veranschaulichenden Ausführungsform; und
-
4 ist eine Veranschaulichung eines Datenverarbeitungssystems gemäß einer veranschaulichenden Ausführungsform.
-
AUSFÜHRLICHE BESCHREIBUNG
-
Die verschiedenen veranschaulichenden Ausführungsformen würdigen und berücksichtigen eine Anzahl verschiedener Überlegungen. So, wie der Begriff hierin unter Bezugnahme auf Elemente verwendet wird, bedeutet eine „Anzahl” ein oder mehrere Elemente. „Eine Anzahl verschiedener Überlegungen” bedeutet zum Beispiel eine oder mehrere verschiedene Überlegungen.
-
Die verschiedenen veranschaulichenden Ausführungsformen würdigen und berücksichtigen, dass das Volumen von Datenpaketen, die bei einer Datenverarbeitungskomponente in einem Datenverarbeitungs-Netzwerk eingehen, üblicherweise schwanken kann, selbst über einen sehr kurzen Zeitraum hinweg. Diese Schwankung in der Eingangsrate von Datenpaketen über einen Zeitraum hinweg wird als Ruckartigkeit bezeichnet. Die Schwankung des Eingangs von Datenpaketen bei einer Datenverarbeitungskomponente kann dazu genutzt werden, Strom- und Energieeinsparungen zu erzielen. Beispielsweise können die Arbeitslasten der Datenpaketverarbeitung zwischen den Verarbeitungs-Ressourcen der Datenverarbeitungskomponente auf der Grundlage des aktuellen Bedarfs an Datenpaketverarbeitung verlagert werden, um die Anzahl der genutzten Verarbeitungs-Ressourcen zu verringern. Ungenutzte Datenverarbeitungs-Ressourcen in der Datenverarbeitungskomponente können anschließend ausgeschaltet werden, um Strom- und Energieeinsparungen zu erzielen.
-
Die verschiedenen veranschaulichenden Ausführungsformen würdigen und berücksichtigen, dass bei Verarbeitungsumgebungen mit maximaler Übertragungsgeschwindigkeit die Verarbeitung, die dem Eingang eines Datenpakets zugehörig ist, naturgemäß relativ kurz ist. Beispielsweise kann die Verarbeitung eines Datenpakets durch eine Datenverarbeitungskomponente, die in einer Betriebsumgebung mit maximaler Übertragungsgeschwindigkeit arbeitet, innerhalb von Mikrosekunden abgeschlossen sein. Des Weiteren ist die Verarbeitung von Datenpaketen in einer Verarbeitungsumgebung mit maximaler Übertragungsgeschwindigkeit unter den empfangenen Datenpaketen relativ einheitlich. Daher weist die Verarbeitung von Datenpaketen in einer Verarbeitungsumgebung mit maximaler Übertragungsgeschwindigkeit üblicherweise relativ geringe Stromschwankungen zwischen verschiedenen Vorgängen auf.
-
Es wird nun unter Bezugnahme auf die Figuren und insbesondere unter Bezugnahme auf 1 ein veranschaulichendes Schaubild einer Datenverarbeitungsumgebung bereitgestellt, in der veranschaulichende Ausführungsformen umgesetzt werden können. Es ist zu beachten, dass 1 lediglich als Veranschaulichung einer Umsetzung bereitgestellt wird und keine Einschränkungen in Bezug auf die Umgebungen implizieren soll, in denen verschiedene Ausführungsformen umgesetzt werden können. Es können zahlreiche Modifizierungen an den dargelegten Umgebungen vorgenommen werden.
-
1 legt eine bildliche Darstellung eines Netzwerks von Datenverarbeitungssystemen dar, in dem veranschaulichende Ausführungsformen umgesetzt werden können. Bei einem Netzwerk-Datenverarbeitungssystem 100 handelt es sich um ein Netzwerk von Computern, in dem die veranschaulichenden Umgebungen umgesetzt werden können. Das Netzwerk-Datenverarbeitungssystem 100 enthält ein Netzwerk 102, bei dem es sich um das Medium handelt, das zum Bereitstellen von Datenaustauschverbindungen zwischen verschiedenen Einheiten und Computern verwendet wird, die innerhalb des Netzwerk-Datenverarbeitungssystems 100 miteinander verbunden sind. Das Netzwerk 102 kann Verbindungen wie zum Beispiel drahtgebundene und drahtlose Datenaustauschverbindungen oder Lichtwellenleiterkabel beinhalten.
-
In dem dargelegten Beispiel sind ein Server-Computer 104 und ein Server-Computer 106 zusammen mit einer Speichereinheit 108 mit dem Netzwerk 102 verbunden. Darüber hinaus sind Client-Computer 110, 112 und 114 mit dem Netzwerk 102 verbunden. Bei den Client-Computern 110, 112 und 114 kann es sich zum Beispiel um Personalcomputer oder Netzwerkcomputer handeln. In dem dargelegten Beispiel stellt der Server-Computer 104 den Client-Computern 110, 112 und 114 Daten wie zum Beispiel Startdateien, Betriebssystemabbilder und Anwendungen bereit. In diesem Beispiel handelt es sich bei den Client-Computern 110, 112 und 114 um Clients des Server-Computers 104. Das Netzwerk-Datenverarbeitungssystem 100 kann zusätzliche Server-Computer, Client-Computer und sonstige Einheiten beinhalten, die nicht dargestellt sind.
-
Programmcode, der sich in dem Netzwerk-Datenverarbeitungssystem 100 befindet, kann in einem computerbeschreibbaren Speichermedium gespeichert werden und zur Verwendung auf ein Datenverarbeitungssystem oder eine sonstige Einheit heruntergeladen werden. Beispielsweise kann Programmcode in einem computerbeschreibbaren Speichermedium auf dem Server-Computer 104 gespeichert werden und zur Verwendung auf dem Client-Computer 110 über das Netzwerk 102 auf den Client-Computer 110 heruntergeladen werden.
-
In dem dargestellten Beispiel handelt es sich bei dem Netzwerk-Datenverarbeitungssystem 100 um das Internet, wobei das Netzwerk 102 einen weltweiten Bestand von Netzwerken und Gateways darstellt, die die Transmission-Control-Protocol/Internet-Protocol(TCP/IP)-Gruppe von Protokollen dazu verwenden, Daten miteinander auszutauschen. Im Kern des Internet befindet sich eine Zentralverbindung aus Hochgeschwindigkeits-Datenaustauschverbindungen zwischen Hauptknoten oder Host-Computern, die aus Tausenden von kommerziellen, behördlichen, Bildungs- und sonstigen Computersystemen bestehen, die Daten und Nachrichten weiterleiten. Selbstverständlich kann das Netzwerk-Datenverarbeitungssystem 100 auch als eine Reihe verschiedener Netzwerktypen wie zum Beispiel ein Intranet, ein lokales Netzwerk (LAN) oder ein Weitverkehrs-Netzwerk (WAN) umgesetzt werden. 1 ist als Beispiel gemeint und nicht als architektonische Einschränkung der verschiedenen veranschaulichenden Ausführungsformen.
-
Digitale Daten können über das Netzwerk-Datenverarbeitungssystem 100 in Form von Datenpaketen befördert werden. Datenpakete, die über das Netzwerk 102 befördert werden, können durch Netzwerk-Endpunkte wie zum Beispiel die Server-Computer 104 und 106 und die Client-Computer 110, 112 und 114 verarbeitet werden. Des Weiteren können Datenpakete durch integrierte Prozessoren in dem Netzwerk 102 verarbeitet werden. Integrierte Prozessoren können sich zwischen den Endpunkten in dem Netzwerk 102 befinden. Wie oben erörtert, filtern oder modifizieren integrierte Prozessoren Daten in dem Netzwerk 102 und senden sie weiter, wohingegen Endpunkte des Netzwerk-Datenverarbeitungssystems 100 als Datennutzer und -verbraucher gelten können.
-
Was 2 betrifft, so wird eine Veranschaulichung eines Datenverarbeitungssystems zur Datenpaketverarbeitung gemäß einer veranschaulichenden Ausführungsform dargestellt. Bei dem Datenverarbeitungssystem 200 handelt es sich um ein Datenverarbeitungssystem in einem Netzwerk-Datenverarbeitungssystem 202. In diesem Beispiel kann es sich bei dem Datenverarbeitungssystem 200 um ein Beispiel für die Server-Computer 104 oder 106 oder für die Client-Computer 110, 112 oder 114 an den Endpunkten des Netzwerk-Datenverarbeitungssystems 100 in 1 handeln. Als weiteres Beispiel kann es sich bei dem Datenverarbeitungssystem 200 um ein Beispiel für einen integrierten Prozessor in dem Netzwerk-Datenverarbeitungssystem 100 in 1 oder in einem beliebigen sonstigen Netzwerk-Datenverarbeitungssystem handeln. In diesem veranschaulichenden Beispiel wird das Netzwerk-Datenverarbeitungssystem 202 in Form eines Blockschaubildes dargestellt.
-
Das Datenverarbeitungssystem 200 empfängt Daten, die verarbeitet werden sollen, in Form von Datenpaketen 204. Die Datenpakete 204 können über ein beliebiges Netzwerk mithilfe eines beliebigen geeigneten Datenaustauschmediums und Datenaustauschprotokolls an das Datenverarbeitungssystem 200 gesendet werden. Die Datenpakete 204 können einen beliebigen Typ von Daten beinhalten und können unter Verwendung eines beliebigen geeigneten Datenformats formatiert sein.
-
Die Datenpakete 204 werden durch eine Datenverarbeitungskomponente 206 des Datenverarbeitungssystems 200 verarbeitet. Die Datenpakete 204 können durch die Datenverarbeitungskomponente 206 des Datenverarbeitungssystems 200 verarbeitet werden, um eine beliebige gewünschte Funktion durchzuführen. Die Datenpakete 204 können zum Beispiel durch die Datenverarbeitungskomponente 206 verarbeitet werden, um die Funktionalität eines Angriffserkennungssystems, eines Leitwegrechners, eines Unternehmensbusses, einer Firewall oder eine beliebige sonstige Funktion oder Kombination von Funktionen umzusetzen, ohne darauf beschränkt zu sein. Gemäß einer veranschaulichenden Ausführungsform können die Datenpakete 204 durch die Datenverarbeitungskomponente 206 verarbeitet werden, um eine Verarbeitung der Datenpakete 204 mit maximaler Übertragungsgeschwindigkeit durch das Datenverarbeitungssystem 200 bereitzustellen.
-
Gemäß einer veranschaulichenden Ausführungsform beinhaltet die Datenverarbeitungskomponente 206 eine Vielzahl von Verarbeitungs-Ressourcen 208. Beispielsweise kann es sich bei den Verarbeitungs-Ressourcen 208 um eine Vielzahl von unabhängigen Prozessoren handeln, die in der Datenverarbeitungskomponente 206 umgesetzt sind. In einem Beispiel handelt es sich bei der Datenverarbeitungskomponente 206 um einen Mehrkernprozessor 210, ohne darauf beschränkt zu sein. In diesem Fall handelt es sich bei den Verarbeitungs-Ressourcen 208 in der Datenverarbeitungskomponente 206 um eine Vielzahl von Kernen 212. Die Datenverarbeitungskomponente 206 kann eine beliebige Anzahl von Kernen 212 oder sonstige unabhängige Verarbeitungs-Ressourcen 208 auf einem einzigen integrierten Schaltungs-Chip beinhalten.
-
Die Verarbeitungs-Ressourcen 208 in der Datenverarbeitungskomponente 206 können außerdem Gruppen von Prozessoren 214 beinhalten. Die Gruppen von Prozessoren 214 können Untergruppen der Gesamtanzahl von Kernen 212 oder sonstiger Verarbeitungs-Ressourcen 208 beinhalten, die in der Datenverarbeitungskomponente 206 bereitgestellt werden. In einem Beispiel können die Gruppen von Prozessoren 214 physischen Bereichen 216 auf einem integrierten Schaltungs-Chip entsprechen, auf dem die Anzahl der Kerne 212, die Gruppen von Prozessoren 214 bilden, umgesetzt ist. In einem weiteren Beispiel können Gruppen von Prozessoren 214 Knoten entsprechen.
-
Die Datenpakete 204, die durch das Datenverarbeitungssystem 200 empfangen werden, werden durch den Datenpaketverteiler 218 zur Verarbeitung an einzelne Verarbeitungs-Ressourcen 208 in der Datenverarbeitungskomponente 206 verteilt. Beispielsweise kann der Datenpaketverteiler 218 als Host-Ethernet-Adapter 220 oder als beliebige sonstige Einheit zum Verteilen der Datenpakete 204 zur Verarbeitung an eine Vielzahl von Vorrichtungs-Ressourcen 208 umgesetzt werden, ohne darauf beschränkt zu sein. Gemäß einer veranschaulichenden Ausführungsform ist der Datenpaketverteiler 218 dazu konfiguriert, die Datenpakete 204 an die Verarbeitungs-Ressourcen 208 in der Datenverarbeitungskomponente 206 zu verteilen, um eine effiziente und leistungsfähige Verarbeitung der Datenpakete 204 durch die Datenverarbeitungskomponente 206 bereitzustellen.
-
Der Datenpaketverteiler 218 beinhaltet eine Metrikkennung 222. Die Metrikkennung 222 identifiziert Metrikwerte 224 für eine aktuelle Konfiguration 225 der Verarbeitungs-Ressourcen 208 in der Datenverarbeitungskomponente 206. Bei der aktuellen Konfiguration 225 handelt es sich um die Konfiguration der Verarbeitungs-Ressourcen 208 in der Datenverarbeitungskomponente 206, die zurzeit zum Verarbeiten der Datenpakete 204 verwendet wird. Im Allgemeinen kann eine Konfiguration der Verarbeitungs-Ressourcen 208 spezifische Verarbeitungs-Ressourcen 208 in der Datenverarbeitungskomponente 206, die eingeschaltet und aktiv sind, wie auch sonstige spezifische Verarbeitungs-Ressourcen 208 beinhalten, die ausgeschaltet sind. Die Verarbeitungs-Ressourcen 208, die eingeschaltet und aktiv sind, können in verschiedenen Betriebsarten betrieben werden. Daher kann eine Konfiguration der Verarbeitungs-Ressourcen 208 auch die Betriebsarten der Verarbeitungs-Ressourcen 208 in die Konfiguration einbeziehen, die eingeschaltet und aktiv sind. Der Datenpaketverteiler 218 setzt eine Datenpaket-Verteilungsfunktion 227 ein, um die Datenpakete 204 an die zurzeit aktiven Verarbeitungs-Ressourcen 208 zu verteilen, wie durch die aktuelle Konfiguration 225 definiert.
-
Bei den Metrikwerten 224 handelt es sich um Zahlenwerte, die eine Stufe der Effizienz, der Zuverlässigkeit oder sonstige relevante Merkmale der aktuellen Konfiguration 225 der Verarbeitungs-Ressourcen 208 in der Datenverarbeitungskomponente 206, die zum Verarbeiten der Datenpakete 204 verwendet wird, angeben. Die Metrikwerte 224 können Werte beinhalten, die relevante Merkmale für einzelne Verarbeitungs-Ressourcen 208 oder Gruppen von Prozessoren 214 in der Datenverarbeitungskomponente 206 angeben. Die Metrikwerte 224 können außerdem Werte für die aktuelle Konfiguration 225 der Datenverarbeitungskomponente 206 insgesamt beinhalten. Gemäß einer veranschaulichenden Ausführungsform kann die Metrikkennung 222 die Metrikwerte 224 verwenden, um zu ermitteln, ob die aktuelle Konfiguration 225 der Verarbeitungs-Ressourcen 208 in der Datenverarbeitungskomponente 206 die wünschenswerteste Konfiguration zum Verarbeiten der aktuellen Arbeitslast an Datenpaketen 204 ist, die durch das Datenverarbeitungssystem 200 verarbeitet werden sollen oder nicht.
-
Die Metrikkennung 222 kann die Metrikwerte 224 auf der Grundlage eines oder mehrerer Berechnungsfaktoren 228 identifizieren. Beispielsweise können die Berechnungsfaktoren 228 den aktuellen Arbeitslastbedarf 226, eine Temperatur 230, einen Ressourcen-Konflikt 232, eine nachlassende Funktionsfähigkeit 234, eine inhärente Leistungseffizienz 236 der Ressourcen, eine Position 237 und eine Zusammenschaltbarkeit 239 beinhalten, ohne darauf beschränkt zu sein.
-
Der Arbeitslastbedarf 226 steht mit dem Netzwerkverkehr 204 von Datenpaketen insgesamt, die durch das Datenverarbeitungssystem 200 verarbeitet werden sollen, in Zusammenhang. Der Arbeitslastbedarf 226 kann auch mit Abschnitten der gesamten Arbeitslast in Zusammenhang stehen, die zu einzelnen Verarbeitungs-Ressourcen 208 in der Datenverarbeitungskomponente 206 gemäß der aktuellen Konfiguration 225 geleitet werden.
-
Die Temperatur 230 steht mit der Temperatur der Datenverarbeitungskomponente 206 oder mit der Temperatur von Bereichen 216 in der Datenverarbeitungskomponente 206, die den Verarbeitungs-Ressourcen 208 oder den Gruppen von Prozessoren 214 entsprechen, in Zusammenhang. Die Temperatur 230 kann durch einen oder mehrere Temperaturfühler 238 in der Datenverarbeitungskomponente 206 bereitgestellt werden.
-
Der Ressourcen-Konflikt 232 steht mit dem Konflikt der Verwendung der Verarbeitungs-Ressourcen 208 zum Verarbeiten der Datenpakete 204 in der aktuellen Konfiguration 225 in Zusammenhang. Beispielsweise kann der Ressourcen-Konflikt 232 aus den Wartezeiten oder der Cachespeicher-Latenzzeit eines Cachespeichers, der einzelnen Verarbeitungs-Ressourcen 208 oder Gruppen von Prozessoren 214 in der Datenverarbeitungskomponente 206 zugehörig ist, ermittelt werden.
-
Die nachlassende Funktionsfähigkeit 234 steht mit der Nutzungsdauer einzelner Verarbeitungs-Ressourcen 208 oder von Gruppen von Prozessoren 214 in der Datenverarbeitungskomponente 206 in Zusammenhang. Die nachlassende Funktionsfähigkeit 234 kann beispielsweise auf der Grundlage der Anzahl von Zyklen ermittelt werden, in denen einzelne Verarbeitungs-Ressourcen 208 oder Gruppen von Prozessoren 214 auf Aktivitätsstufen, die einen Aktivitätsstufen-Schwellenwert überschreiten, und auf Temperaturstufen aktiv sind, die einen Temperaturschwellenwert überschreiten. Die nachlassende Funktionsfähigkeit 234 kann mithilfe von Temperaturdaten, die von den Temperaturfühlern 238 in der Datenverarbeitungskomponente 206 bereitgestellt werden, und von Aktivitätsdaten ermittelt werden, die von Hardware-Zählern 240 in der Datenverarbeitungskomponente 206 bereitgestellt werden.
-
Die inhärente Ressourcen-Leistungseffizienz 236 steht mit den inhärenten Leistungsmerkmalen verschiedener Verarbeitungs-Ressourcen 208 oder von Gruppen von Prozessoren 214 in der Datenverarbeitungskomponente 206 in Zusammenhang. Die inhärente Ressourcen-Leistungseffizienz 236 berücksichtigt, dass verschiedene Verarbeitungs-Ressourcen 208 oder Gruppen von Prozessoren 214 in der Datenverarbeitungskomponente 206 eine unterschiedliche Qualität und unterschiedliche inhärente Leistungsmerkmale aufweisen können.
-
Die Position 237 steht mit der Position der Verarbeitungs-Ressourcen 208 in der Datenverarbeitungskomponente 206 in Zusammenhang. Beispielsweise kann die Position 237 die relativen Positionen der Verarbeitungs-Ressourcen 208 in der Datenverarbeitungskomponente 206 berücksichtigen. Die Zusammenschaltbarkeit 239 steht mit der Zusammenschaltbarkeit der Verarbeitungs-Ressourcen 208 in der Datenverarbeitungskomponente 206 in Zusammenhang.
-
Die Metrikkennung 222 kann auch Faktorgewichtungen 242 zum Identifizieren der Metrikwerte 224 verwenden. Bei den Faktorgewichtungen 242 handelt es sich um Werte, die das Ausmaß definieren, in dem einzelne Berechnungsfaktoren 228 durch die Metrikkennung 222 zum Identifizieren der Metrikwerte 224 berücksichtigt werden. Die Faktorgewichtungen 242 können folglich dazu verwendet werden, den Stellenwert oder die Priorität festzulegen, die einzelne Berechnungsfaktoren 228 zum Identifizieren der Metrikwerte 224 für eine bestimmte Anwendung erhalten sollen.
-
Gemäß einer veranschaulichenden Ausführungsform können der Arbeitslastbedarf 226 und die Metrikwerte 224 durch einen Konfigurationswähler 244 dazu verwendet werden, die Konfiguration der Verarbeitungs-Ressourcen 208 in der Datenverarbeitungskomponente 206 auszuwählen, die zum Verarbeiten der Datenpakete 204 verwendet werden soll. Der Konfigurationswähler 244 kann zuerst ermitteln, ob der Arbeitslastbedarf 226 darauf hinweist, dass eine Änderung der aktuellen Konfiguration 225 der Verarbeitungs-Ressourcen 208 in der Datenverarbeitungskomponente 206 wünschenswert ist. Beispielsweise kann eine zunehmende Anzahl von Datenpaketen 204, die durch das Datenverarbeitungssystem 200 verarbeitet werden sollen, darauf hinweisen, dass die Anzahl der Datenverarbeitungs-Ressourcen 208, die zum Verarbeiten der Datenpakete 204 verwendet werden sollen, erhöht werden sollte. Als weiteres Beispiel kann eine abnehmende Anzahl von Datenpaketen 204, die durch das Datenverarbeitungssystem 200 verarbeitet werden sollen, darauf hinweisen, dass die Anzahl der Datenverarbeitungs-Ressourcen 208, die zum Verarbeiten der Datenpakete 204 verwendet werden sollen, verringert werden kann. In diesem Fall können die Datenverarbeitungs-Ressourcen 208, die nicht mehr zum Verarbeiten der Datenpakete 204 benötigt werden, ausgeschaltet werden, um den Energieverbrauch durch das Datenverarbeitungssystem 200 zu senken.
-
Der Konfigurationswähler 244 kann eine neue Konfiguration 245 für die Verarbeitungs-Ressourcen 208 in der Datenverarbeitungskomponente 206 in Reaktion auf eine Feststellung durch den Konfigurationswähler 244, dass aufgrund einer Änderung in dem Arbeitslastbedarf 226 eine Änderung an der aktuellen Konfiguration der Datenverarbeitungs-Ressourcen 208 erforderlich ist, auswählen. Der Konfigurationswähler 244 kann die neue Konfiguration 245 für die Verarbeitungs-Ressourcen 208 aus einer Anzahl von vordefinierten Konfiguration 246 auswählen. Der Konfigurationswähler 244 kann die neue Konfiguration 245 aus den vordefinierten Konfigurationen 246 auf der Grundlage sowohl des Arbeitslastbedarfs 226 als auch der Metrikwerte 224 auswählen.
-
Selbst, wenn eine Änderung in dem Arbeitslastbedarf 226 nicht darauf hindeutet, dass eine Änderung der Konfiguration der Verarbeitungs-Ressourcen 208 in der Datenverarbeitungskomponente 206 erforderlich ist, kann der Konfigurationswähler 244 feststellen, dass die aktuelle Konfiguration 225 erwünschte Leistungsmerkmale nicht so gut erfüllt wie eine andere verfügbare Konfiguration. Diese Feststellung kann durch den Konfigurationswähler 244 mithilfe der Metrikwerte 224 erfolgen, die durch die Metrikkennung 222 bereitgestellt werden. Beispielsweise kann der Konfigurationswähler 244 feststellen, dass eine Änderung der aktuellen Konfiguration 225 erwünscht ist, wenn ein oder mehrere Metrikwerte 224 oder Kombinationen von Metrikwerten 224 eine Schwellenwertbedingung 249 erfüllen. In diesem Fall kann der Konfigurationswähler 244 die neue Konfiguration 245 für die Verarbeitungs-Ressourcen 208 aus den vordefinierten Konfigurationen 246 auswählen.
-
Der Konfigurationswähler 244 kann einen oder mehrere Metrikwerte 224 dazu verwenden, die neue Konfiguration 245 aus den vordefinierten Konfigurationen 246 auszuwählen. Die vordefinierten Konfigurationen 246 können beispielsweise mithilfe einer Konfigurationstabelle 248 oder einer sonstigen geeigneten Datenstruktur mit entsprechenden Metrikwerten 224 oder Bereichen der Metrikwerte 224 verknüpft werden. In diesem Fall kann der Konfigurationswähler 244 die geeignete neue Konfiguration 245 mithilfe eines oder mehrerer Metrikwerte 224 auswählen, um eine der vordefinierten Konfigurationen 246 zu identifizieren, die dem einen oder mehreren Metrikwerten 224 in der Konfigurationstabelle 248. entspricht.
-
Wenn die neue Konfiguration 245 für die Verarbeitungs-Ressourcen 208 in der Datenverarbeitungskomponente 206 durch den Konfigurationswähler 244 ausgewählt wird, kann die neue Konfiguration 245 in jedem Fall durch eine Funktion 250 zum Ändern der Konfiguration in der Datenverarbeitungskomponente 206 umgesetzt werden. Beispielsweise kann die Funktion 250 zum Ändern der Konfiguration die Verarbeitungs-Ressourcen 208 oder Gruppen von Prozessoren 214 in der Datenverarbeitungskomponente 206 einschalten und Verarbeitungs-Ressourcen 208 oder Gruppen von Prozessoren 214 in der Datenverarbeitungskomponente 206 ausschalten, wie es zum Umsetzen der neuen Konfiguration 245 erforderlich ist. Die Funktion 250 zum Ändern der Konfiguration kann außerdem die Betriebsart einer oder mehrerer aktiver Verarbeitungs-Ressourcen 208 in der Datenverarbeitungskomponente 206 ändern, um die neue Konfiguration 245 umzusetzen. Die Wirkung der Umsetzung der neuen Konfiguration 245 in der Datenverarbeitungskomponente 206 besteht darin, die aktuelle Konfiguration 225 durch die neue Konfiguration 245 zu ersetzen. Auf diese Weise wird die neue Konfiguration 245 zur neuen aktuellen Konfiguration 225. Die Datenpaket-Verteilungsfunktion 227 kann anschließend die Datenpakete 204 an die Verarbeitungs-Ressourcen 208 verteilen, um die Datenpakete 204 gemäß der neuen Konfiguration 245 zu verarbeiten, wie sie empfangen werden.
-
Die Veranschaulichung des Datenverarbeitungssystems 200 in 2 ist zur Veranschaulichung einer Weise dargestellt worden, in der die Netzwerk-Datenpaketverarbeitung gemäß einer veranschaulichenden Ausführungsform umgesetzt werden kann. Diese Veranschaulichung soll die Weise, in der die Netzwerk-Datenpaketverarbeitung in sonstigen veranschaulichenden Ausführungsformen umgesetzt werden kann, nicht einschränken.
-
Beispielsweise können veranschaulichende Ausführungsformen verwendet werden, um die Konfiguration der Verarbeitungs-Ressourcen in einer Datenverarbeitungskomponente auszuwählen, um jegliche Verarbeitungsmerkmale, die der Verarbeitung von Datenpaketen durch die Datenverarbeitungskomponente zugehörig sind, zu verbessern. In einem Beispiel kann es sich bei dem zu verbessernden Verarbeitungsmerkmal um die Energieeffizienz handeln, ohne darauf beschränkt zu sein. Veranschaulichende Ausführungsformen können jedoch dazu verwendet werden, sonstige Verarbeitungsmerkmale, die der Verarbeitung von Datenpakten zugehörig sind, wie zum Beispiel Leistungsfähigkeit, Zuverlässigkeit oder sonstige Verarbeitungsmerkmale oder Kombinationen von Merkmalen zu verbessern.
-
Gemäß einer veranschaulichenden Ausführungsform können die Berechnungsfaktoren 228 und die Faktorgewichtungen 242, die zum Berechnen der Metrikwerte 224 und der Schwellenwertbedingung 249 verwendet werden, auf der Grundlage der Leistungsmerkmale ausgewählt werden, die für eine bestimmte Anwendung relevant sind. Es können verschiedene Leistungsmerkmale für verschiedene Verarbeitungs-Ressourcen 208 oder Gruppen von Prozessoren 214 in der Datenverarbeitungskomponente 206 relevant sein. Folglich können in einigen Fällen die Metrikwerte 224 für verschiedene Verarbeitungs-Ressourcen 208 oder Gruppen von Prozessoren 214 in der Datenverarbeitungskomponente 206 mithilfe verschiedener Berechnungsfaktoren 228, Faktorgewichtungen 242 oder beider in verschiedenen Kombinationen identifiziert werden.
-
Was 3 betrifft, so wird eine Veranschaulichung eines Ablaufplans eines Prozesses zum Bereitstellen einer Datenpaketverarbeitung gemäß einer veranschaulichenden Ausführungsform dargestellt. Beispielsweise kann der Prozess von 3 in dem Datenpaketverteiler 218 zum Verteilen der Datenpakete 204 zur Verarbeitung durch die Datenverarbeitungskomponente 206 in 2 umgesetzt werden. Der in 3 veranschaulichte Beispielprozess zielt darauf ab, die Energieeffizienz der Datenpaketverarbeitung durch eine Datenverarbeitungskomponente zu erhöhen. Es können Varianten in dem in 3 veranschaulichten Prozess verwendet werden, um sonstige Verarbeitungsmerkmale zu verbessern, die der Verarbeitung von Datenpaketen durch die Verarbeitungs-Ressourcen in einer Datenverarbeitungskomponente zugehörig sind. Der in 3 veranschaulichte Prozess beruht darauf, dass Verarbeitungs-Ressourcen einer Datenverarbeitungskomponente in einer aktuellen Konfiguration zum Verarbeiten von Datenpaketen konfiguriert sind. In der aktuellen Konfiguration sind einige der Verarbeitungs-Ressourcen in der Datenverarbeitungskomponente eingeschaltet oder aktiv, andere Verarbeitungs-Ressourcen in der Datenverarbeitungskomponente können hingegen inaktiv und ausgeschaltet sein.
-
Der Prozess beginnt durch Ermitteln des Arbeitslastbedarfs (Vorgang 302). Der Vorgang 302 kann das Ermitteln sowohl des Arbeitslastbedarfs für einzelne Verarbeitungs-Ressourcen oder für Gruppen von Prozessoren in einer Datenverarbeitungskomponente als auch des Arbeitslastbedarfs für die Datenverarbeitungskomponente insgesamt beinhalten. Außerdem werden Werte für die Berechnungsfaktoren ermittelt (Vorgang 304). Beispielsweise kann der Vorgang 304 das Ermitteln von Werten für die Temperatur von Verarbeitungs-Ressourcen in der Datenverarbeitungskomponente, eines Ressourcen-Konflikts der Verarbeitungs-Ressourcen, von Werten, die mit nachlassender Funktionsfähigkeit der Verarbeitungs-Ressourcen in Zusammenhang stehen, einer inhärenten Leistungseffizienz der Verarbeitungs-Ressourcen oder sonstiger Faktoren oder Kombinationen von Faktoren beinhalten, ohne darauf beschränkt zu sein.
-
Anschließend werden Metrikwerte für einzelne Verarbeitungs-Ressourcen oder Gruppen von Prozessoren für die aktuelle Konfiguration identifiziert (Vorgang 306). Die Metrikwerte können mithilfe des Arbeitslastbedarfs, der in Vorgang 302 identifiziert worden ist, und der Werte der Berechnungsfaktoren, die in Vorgang 304 identifiziert worden sind, in beliebiger Kombination identifiziert werden. Die Metrikwerte können mithilfe ausgewählter Faktorgewichtungen identifiziert werden. Die Faktorgewichtungen können dazu verwendet werden, den Stellenwert oder die Priorität des Arbeitslastbedarfs und sonstiger Berechnungsfaktoren für eine bestimmte Anwendung zu identifizieren.
-
Beispielsweise kann ein Vorgang 306 einen Metrikwert ER für eine Verarbeitungs-Ressource oder eine Gruppe von Verarbeitungs-Ressourcen in der Datenverarbeitungskomponente mithilfe folgender Formel identifizieren: ER = V/(t1·Tprox + w2·WLprox + c3·Cprox + w4·WOprox). Tprox ist ein Näherungswert (Proxy-Wert) der Temperatur, der als Tprox = e(ΣTn/N)·Tmax berechnet werden kann. Dieser Faktor kann auf den durchschnittlichen Temperaturmesswert des Bereichs eines integrierten Schaltungs-Chips gegründet werden, in dem die Verarbeitungs-Ressourcen umgesetzt sind. Der durchschnittliche Temperaturmesswert kann von einem Temperaturfühler auf dem Chip bezogen werden. Die Durchschnittstemperatur wird mit der Höchsttemperatur gewichtet. Der Exponentialfaktor stellt die exponentielle Abhängigkeit von Streuverlusten oder statischer Leistung von Temperaturen als Messgröße für die Energieeffizienz dar.
-
WLprox ist ein Näherungswert für den Arbeitslastbedarf, der als WLprox = Länge einer Warteschlange an einer Verarbeitungs-Ressource/geschätzter Netzwerk-Datenverkehr berechnet werden kann. Dieser Faktor wird berechnet, indem die Verkehrslast im Netzwerk insgesamt und der Anteil der gesamten Arbeitslast, die zu der Verarbeitungs-Ressource geleitet wird, berücksichtigt werden.
-
Cprox ist ein Näherungswert für einen Ressourcen-Konflikt, der als Cprox = f(Inhalt eines Cachespeichers und einer Funktionseinheit) berechnet werden kann. Dieser Faktor wird berechnet, indem der Ressourcen-Konflikt an der Verarbeitungs-Ressource mithilfe von Wartezeiten oder der Cachespeicher-Latenzzeit an dem Cachespeicher, der den Verarbeitungs-Ressourcen zugehörig ist, geschätzt wird.
-
WOprox ist ein Näherungswert der nachlassenden Funktionsfähigkeit, der als WOprox = Anzahl der Zyklen ((Hardware-Zähler > Aktivitätsschwellenwert) UND (Tmax > Tthreshold))/Chip-WOAvg berechnet werden kann. Dieser Faktor kann auf der Grundlage der Anzahl von Zyklen berechnet werden, während derer sich die Verarbeitungs-Ressource im Vergleich zu dem übrigen Chip auf einer hohen Aktivitätsstufe und auf einer hohen Temperatur befindet. Eine hohe Aktivität kann durch Vergleichen der Ausgabe eines Hardware-Zählers mit einem Aktivitätsschwellenwert identifiziert werden. Eine hohe Temperatur kann durch Vergleichen von Temperaturdaten, die von einem Temperaturfühler auf dem Chip bereitgestellt werden, mit einem Temperaturschwellenwert identifiziert werden.
-
V ist ein Wert, der die inhärente Leistungseffizienz der Verarbeitungs-Ressource angibt. Dieser Faktor ermöglicht, dass die unterschiedliche inhärente Qualität von Verarbeitungs-Ressourcen in der Verarbeitungs-Ressource berücksichtigt wird.
-
Bei t1, w2, c3 und w4 handelt es sich um Gewichtungen für die verschiedenen Berechnungsfaktoren. Diese Gewichtungen können ausgewählt werden, um den besonderen Stellenwert oder die besondere Priorität einzelner Faktoren für eine bestimmte Anwendung widerzuspiegeln. Wenn beispielsweise die nachlassende Funktionsfähigkeit bei einer bestimmten Anwendung nicht von Bedeutung ist, kann w4 auf 0 festgelegt werden.
-
In diesem Beispiel wird ein hoher Wert für ER vorgezogen. Ein hoher Wert für ER gibt an, dass in einer Verarbeitungs-Ressource die Temperaturen niedrig sind, die Warteschlangen relativ leer sind, die nachlassende Funktionsfähigkeit gering ist und ein geringer Konflikt besteht.
-
Anschließend kann ein Metrikwert für die Datenverarbeitungskomponente berechnet werden (Vorgang 308). Der Metrikwert für die Datenverarbeitungskomponente kann aus den Metrikwerten für die Verarbeitungs-Ressourcen berechnet werden, die in Vorgang 306 identifiziert worden waren.
-
Beispielsweise kann, ohne darauf beschränkt zu sein, der Metrikwert Echip für die Datenverarbeitungskomponente als Echip = ΣER(Active Resources)/ΣER(CompatibleInactiveResources) berechnet werden, wobei sowohl ΣER(Active Resources) als auch ΣER(CompatibleInactiveResources) auf die Anzahl der Ressourcen in der Datenverarbeitungskomponente normalisiert werden.
-
Anschließend kann ermittelt werden, ob die aktiven Verarbeitungs-Ressourcen in der aktuellen Konfiguration zu dem aktuellen Arbeitslastbedarf passen (Vorgang 310). Wenn die aktuelle Konfiguration nicht zu dem aktuellen Bedarf passt, wird mithilfe eines oder mehrerer der identifizierten Metrikwerte eine neue Konfiguration für die Datenverarbeitungs-Ressourcen ausgewählt (Vorgang 314). Der Vorgang 314 kann zum Beispiel das Verwenden eines oder mehrerer Metrikwerte beinhalten, um eine neue Konfiguration aus einer Anzahl von vordefinierten Konfigurationen auszuwählen. Die aktuelle Konfiguration der Datenverarbeitungs-Ressourcen kann anschließend in die neu ausgewählte Konfiguration geändert werden (Vorgang 316). Dann können Datenpakete gemäß der neuen Konfiguration an Verarbeitungs-Ressourcen verteilt werden, wenn die Datenpakete empfangen werden (Vorgang 318), wobei sich der Prozess danach wiederholt.
-
Wenn in Vorgang 310 festgestellt wird, dass die aktuelle Konfiguration der Verarbeitungs-Ressourcen nicht zu dem aktuellen Arbeitslastbedarf passt, kann ermittelt werden, ob die identifizierten Metrikwerte eine Schwellenwertbedingung erfüllen (Vorgang 312). Zielwerte für die Schwellenwertbedingungen können für Bereiche auf der Ebene von Prozessorengruppen wie auch auf Chip-Ebene auf der Grundlage der Verarbeitungsbedingungen festgelegt werden, die für eine bestimmte Anwendung relevant sind. In diesem Beispiel kann in Vorgang 312 festgelegt werden, dass die Schwellenwertbedingung erfüllt ist, wenn Echip < 1 ist. In diesem Fall gibt der Metrikwert an, dass die Energieeffizienz durch Ändern der aktuellen Konfiguration in eine neue Konfiguration verbessert werden kann. Wenn die Schwellenwertbedingung erfüllt ist, kann der Prozess fortgesetzt werden, indem in Vorgang 314 eine neue Konfiguration der Datenverarbeitungs-Ressourcen mithilfe eines oder mehrerer der identifizierten Metrikwerte ausgewählt wird. Anderenfalls kann der Prozess zu Vorgang 302 zurückkehren, um diesen zu wiederholen.
-
Auf diese Weise stellen die veranschaulichenden Ausführungsformen ein Verfahren und eine Vorrichtung zum Verbessern von Verarbeitungsmerkmalen bereit, die der Verarbeitung von Netzwerk-Datenpaketen durch eine Datenverarbeitungskomponente, die mehrere Verarbeitungs-Ressourcen beinhaltet, zugehörig sind. Verschiedene relevante Metrikwerte für die Datenverarbeitungskomponente werden während der Laufzeit wiederholt identifiziert, wenn Datenpakete durch die Datenverarbeitungskomponente empfangen und verarbeitet werden. Daten von Fühlern in der Datenverarbeitungskomponente können dazu verwendet werden, Werte für verschiedene Faktoren zu identifizieren, die dazu verwendet werden, die Metrikwerte zu identifizieren. Vorgegebene Konfigurationen zum Leiten von Datenpaketen zu den Datenverarbeitungs-Ressourcen der Datenverarbeitungskomponente werden für verschiedene Bereiche von Metrikwerten bereitgestellt. Die vorgegebenen Konfigurationen können die Positionen der Strukturen auf einem integrierten Schaltungs-Chip oder in sonstigen Datenverarbeitungskomponenten nutzen, um die Effizienz der Konfiguration so weit wie möglich zu steigern. Veranschaulichende Ausführungsformen ermöglichen eine sorgfältige Auswahl aktiver und inaktiver Verarbeitungs-Ressourcen, um durch Verbessern der Auslastung und der Bandbreite für gemeinsam genutzte Ressourcen, wie zum Beispiel gemeinsam genutzte Cachespeicher, Spitzentemperaturen so weit wie möglich zu senken, eine statische Verlustleistung zu verringern und die Gesamteffizienz des Systems zu verbessern. Die zur Laufzeit identifizierten Metriken wie auch eine dynamische Bewertung des Netzwerkverkehrs können dazu verwendet werden, die geeignete Konfiguration zum Leiten von Datenpaketen zu denjenigen Verarbeitungs-Ressourcen der Datenverarbeitungskomponente auszuwählen, die zu verbesserten Verarbeitungsmerkmalen führt.
-
Beispielsweise stellen eine oder mehrere der veranschaulichenden Ausführungsformen eine Funktion zum Senken der Betriebstemperatur und der statischen Verlustleistung einer Datenverarbeitungskomponente zum Verarbeiten von Datenpaketen in einem Netzwerk bereit, ohne darauf beschränkt zu sein. Infolgedessen wird eine größere Energieeffizienz zum Verarbeiten der Datenpakete durch die Datenverarbeitungskomponente erzielt. Merkmale nachlassender Funktionsfähigkeit der Datenverarbeitungskomponente werden ebenfalls verbessert, wodurch die Nutzungsdauer der Datenverarbeitungskomponente verlängert wird.
-
Was 4 betrifft, so wird eine Veranschaulichung eines Datenverarbeitungssystems gemäß einer veranschaulichenden Ausführungsform dargestellt. In diesem Beispiel handelt es sich bei dem Datenverarbeitungssystem 400 um ein Beispiel für das Datenverarbeitungssystem 200 in 2. Bei diesem veranschaulichenden Beispiel beinhaltet das Datenverarbeitungssystem 400 eine Datenaustauschstruktur 402, die einen Datenaustausch zwischen einer Prozessoreinheit 404, einem Speicher 406, einem nichtflüchtigen Speicher 408, einer Datenaustauscheinheit 410, einer Eingabe/Ausgabe(E/A)-Einheit 412 und einer Anzeige 414 bereitstellt.
-
Die Prozessoreinheit 404 dient zum Verarbeiten von Befehlen für Software, die in den Speicher 406 geladen werden kann. Bei der Prozessoreinheit 404 kann es sich abhängig von der jeweiligen Umsetzung um eine Anzahl von Prozessoren, um einen Mehrprozessorkern oder um einen sonstigen Prozessortyp handeln. So, wie der Begriff hierin unter Bezugnahme auf ein Element verwendet wird, bedeutet eine Anzahl ein oder mehrere Elemente. Des Weiteren kann die Prozessoreinheit 404 mithilfe einer Anzahl von heterogenen Prozessorsystemen umgesetzt werden, in denen sich ein Hauptprozessor mit untergeordneten Prozessoren auf einem einzigen Chip befindet. Als weiteres veranschaulichendes Beispiel kann es sich bei der Prozessoreinheit 404 um ein symmetrisches Mehrprozessorsystem handeln, das mehrere Prozessoren desselben Typs enthält.
-
Der Speicher 406 und der nichtflüchtige Speicher 408 sind Beispiele für Speichereinheiten 416. Eine Speichereinheit ist eine Hardware, die in der Lage ist, Informationen wie Daten, Programmcode in funktionaler Form und/oder sonstige Daten entweder zeitweilig und/oder dauerhaft zu speichern, ohne darauf beschränkt zu sein. Die Speichereinheiten 416 können in diesen Beispielen auch als computerlesbare Speichereinheiten bezeichnet werden. Bei dem Speicher 406 kann es sich in diesen Beispielen etwa um einen Direktzugriffsspeicher oder eine beliebige sonstige geeignete flüchtige oder nichtflüchtige Speichereinheit handeln. Der nichtflüchtige Speicher 408 kann abhängig von der jeweiligen Umsetzung verschiedene Formen annehmen.
-
Beispielsweise kann der nichtflüchtige Speicher 408 eine oder mehrere Komponenten oder Einheiten enthalten. Bei dem nichtflüchtigen Speicher 408 kann es sich zum Beispiel um eine Festplatte, einen Flash-Speicher, eine wiederbeschreibbare optische Speicherplatte, ein wiederbeschreibbares Magnetband oder um eine Kombination der Obigen handeln. Die durch den nichtflüchtigen Speicher 408 verwendeten Medien können auch auswechselbar sein. Beispielsweise kann eine Wechselfestplatte als nichtflüchtiger Speicher 408 verwendet werden.
-
Die Datenaustauscheinheit 410 stellt in diesen Beispielen einen Datenaustausch mit sonstigen Datenverarbeitungssystemen oder -einheiten bereit. In diesen Beispielen handelt es sich bei der Datenaustauscheinheit 410 um eine Netzwerk-Schnittstellenkarte. Die Datenaustauscheinheit 410 kann einen Datenaustausch durch die Verwendung entweder von physischen oder von drahtlosen Datenaustauschverbindungen oder unter Verwendung beider bereitstellen.
-
Die Eingabe/Ausgabe-Einheit 412 ermöglicht die Eingabe und Ausgabe von Daten mit sonstigen Einheiten, die mit dem Datenverarbeitungssystem 400 verbunden sein können. Die Eingabe/Ausgabe-Einheit 412 kann zum Beispiel eine Verbindung für Benutzereingaben durch eine Tastatur, eine Maus und/oder eine sonstige geeignete Eingabeeinheit bereitstellen. Des Weiteren kann die Eingabe/Ausgabe-Einheit 412 Ausgaben an einen Drucker senden. Die Anzeige 414 stellt einen Mechanismus zum Anzeigen von Daten für einen Benutzer bereit.
-
Befehle für das Betriebssystem, Anwendungen und/oder Programme können sich in den Speichereinheiten 416 befinden, die durch die Datenaustauschstruktur 402 Daten mit der Prozessoreinheit 404 austauschen. In diesen veranschaulichenden Beispielen liegen die Befehle in einer funktionalen Form in dem nichtflüchtigen Speicher 408 vor. Diese Befehle können zur Ausführung durch die Prozessoreinheit 404 in den Speicher 406 geladen werden. Die Prozesse der verschiedenen Ausführungsformen können durch die Prozessoreinheit 404 mithilfe von computerimplementierten Befehlen durchgeführt werden, die sich in einem Speicher wie zum Beispiel dem Speicher 406 befinden können.
-
Diese Befehle werden als Programmbefehle, Programmcode, computerverwendbarer Programmcode oder computerlesbarer Programmcode bezeichnet, der von einem Prozessor in der Prozessoreinheit 404 gelesen und verarbeitet werden kann. Der Programmcode in den verschiedenen Ausführungsformen kann in verschiedenen physischen oder computerlesbaren Speichermedien wie zum Beispiel dem Speicher 406 oder dem nichtflüchtigen Speicher 408 verkörpert sein.
-
Der Programmcode 418 befindet sich in einer funktionalen Form auf einem computerlesbaren Medium 420, das selektiv entnommen werden kann, und kann zur Verarbeitung durch die Prozessoreinheit 404 in das Datenverarbeitungssystem 400 geladen oder übertragen werden. Der Programmcode 418 und das computerlesbare Medium 420 bilden in diesen Beispielen ein Computerprogrammprodukt 422. In einem Beispiel kann es sich bei dem computerlesbaren Medium 420 um ein computerlesbares Speichermedium 424 oder um ein computerlesbares Signalmedium 426 handeln.
-
Das computerlesbare Speichermedium 424 kann zum Beispiel eine optische Platte oder Magnetplatte beinhalten, die zur Übertragung auf eine Speichereinheit wie zum Beispiel ein Festplattenlaufwerk, das einen Teil des nichtflüchtigen Speichers 408 bildet, in ein Laufwerk oder eine sonstige Einheit eingelegt wird, bei der es sich um einen Teil des nichtflüchtigen Speichers 408 handelt. Das computerlesbare Speichermedium 424 kann auch die Form eines nichtflüchtigen Speichers wie zum Beispiel eines Festplattenlaufwerks, eines USB-Speichersticks (thumb drive) oder eines Flash-Speichers annehmen, das/der mit dem Datenverarbeitungssystem 400 verbunden ist.
-
In einigen Fällen ist es möglich, dass das computerlesbare Speichermedium 424 nicht aus dem Datenverarbeitungssystem 400 entnommen werden kann. In diesen Beispielen handelt es sich bei dem computerlesbaren Speichermedium 424 um eine physische oder materielle Speichereinheit, die zum Speichern des Programmcodes 418 verwendet wird, statt um ein Medium, das den Programmcode 418 verbreitet oder überträgt. Das computerlesbare Speichermedium 424 wird auch als materielle computerlesbare Speichereinheit oder als physische computerlesbare Speichereinheit bezeichnet. Mit anderen Worten, es handelt sich bei dem computerlesbaren Speichermedium 424 um ein Medium, das von einer Person berührt werden kann.
-
Alternativ kann der Programmcode 418 mithilfe des computerlesbaren Signalmediums 426 in das Datenverarbeitungssystem 400 übertragen werden. Bei dem computerlesbaren Signalmedium 426 kann es sich zum Beispiel um ein sich ausbreitendes Datensignal handeln, das den Programmcode 418 enthält. Das computerlesbare Signalmedium 426 kann zum Beispiel ein elektromagnetisches Signal, ein optisches Signal und/oder ein beliebiger anderer Signaltyp sein. Diese Signale können über Datenaustauschverbindungen wie zum Beispiel drahtlose Datenaustauschverbindungen, ein Lichtwellenleiterkabel, ein Koaxialkabel, einen Draht und/oder einen beliebigen anderen Typ einer Datenaustauschverbindung übertragen werden. Mit anderen Worten, die Datenaustauschverbindung und/oder die Verbindung können in den veranschaulichenden Beispielen physisch oder drahtlos sein.
-
Bei einigen veranschaulichenden Ausführungsformen kann der Programmcode 418 zur Verwendung innerhalb des Datenverarbeitungssystems 400 von einer/einem weiteren Einheit oder Datenverarbeitungssystem durch das computerlesbare Signalmedium 426 über ein Netzwerk in den nichtflüchtigen Speicher 408 heruntergeladen werden. Beispielsweise kann in einem computerlesbaren Speichermedium in einem Server-Datenverarbeitungssystem gespeicherter Programmcode über ein Netzwerk von dem Server auf das Datenverarbeitungssystem 400 heruntergeladen werden. Bei dem Datenverarbeitungssystem, das den Programmcode 418 bereitstellt, kann es sich um einen Server-Computer, einen Client-Computer oder eine sonstige Einheit handeln, die in der Lage ist, den Programmcode 418 zu speichern und zu übertragen.
-
Die verschiedenen für das Datenverarbeitungssystem 400 veranschaulichten Komponenten sind nicht dazu bestimmt, der Architektur Beschränkungen in der Weise aufzuerlegen, in der verschiedene Ausführungsformen umgesetzt werden können. Die verschiedenen veranschaulichenden Ausführungsformen können in einem Datenverarbeitungssystem umgesetzt werden, das Komponenten zusätzlich zu oder anstelle von denjenigen beinhaltet, die für das Datenverarbeitungssystem 400 veranschaulicht werden. Sonstige in 4 dargestellte Komponenten können von den dargestellten veranschaulichenden Beispielen abweichen. Die verschiedenen Ausführungsformen können mithilfe einer/eines beliebigen Hardware-Einheit oder -Systems umgesetzt werden, die/das in der Lage ist, Programmcode auszuführen. Das Datenverarbeitungssystem kann als ein Beispiel organische Komponenten beinhalten, die mit anorganischen Komponenten kombiniert sind, und/oder kann gänzlich aus organischen Komponenten außer einem Menschen bestehen. Eine Speichereinheit kann zum Beispiel aus einem organischen Halbleiter bestehen.
-
In einem weiteren veranschaulichenden Beispiel kann die Prozessoreinheit 404 die Form einer Hardware-Einheit annehmen, die Schaltungen aufweist, die für eine bestimmte Verwendung gefertigt oder konfiguriert sind. Dieser Hardware-Typ kann Vorgänge durchführen, ohne dass Programmcode von einer Speichereinheit in einen Speicher geladen und zum Durchführen der Vorgänge konfiguriert werden muss.
-
Wenn beispielsweise die Prozessoreinheit 404 die Form einer Hardware-Einheit annimmt, kann es sich bei der Prozessoreinheit 404 um ein Schaltungssystem, eine anwendungsspezifische integrierte Schaltung (application specific integrated circuit, ASIC), eine programmierbare logische Einheit oder einen anderen geeigneten Hardware-Typ handeln, der dazu konfiguriert ist, eine Anzahl von Vorgängen durchzuführen. Bei einer programmierbaren logischen Einheit ist die Einheit dazu konfiguriert, eine Anzahl von Vorgängen durchzuführen. Die Einheit kann zu einem späteren Zeitpunkt neu konfiguriert werden oder kann dauerhaft konfiguriert sein, um die Anzahl von Vorgängen durchzuführen. Beispiele für programmierbare logische Einheiten beinhalten etwa ein programmierbares logisches Array, eine programmierbare Array-Logik, ein beim Kunden programmierbares logisches Array, ein beim Kunden programmierbares Gate-Array und sonstige geeignete Hardware-Einheiten. Bei dieser Art der Umsetzung kann der Programmcode 418 weggelassen werden, da die Prozesse für die verschiedenen Ausführungsformen in einer Hardware-Einheit umgesetzt werden.
-
Bei einem noch weiteren veranschaulichenden Beispiel kann die Prozessoreinheit 404 mithilfe einer Kombination von Prozessoren umgesetzt werden, die in Computern und Hardware-Einheiten zu finden sind. Die Prozessoreinheit 404 kann eine Anzahl von Hardware-Einheiten und eine Anzahl von Prozessoren aufweisen, die dazu konfiguriert sind, den Programmcode 418 auszuführen. Bei diesem dargestellten Beispiel können einige der Prozesse in der Anzahl von Hardware-Einheiten umgesetzt werden, wohingegen andere Prozesse in der Anzahl von Prozessoren umgesetzt werden können.
-
In einem weiteren Beispiel kann ein Bussystem dazu verwendet werden, die Datenaustauschstruktur 402 umzusetzen, und es kann aus einem oder mehreren Bussen wie zum Beispiel einem Systembus oder einem Eingabe/Ausgabe-Bus bestehen. Das Bussystem kann selbstverständlich mithilfe eines beliebigen geeigneten Typs einer Architektur umgesetzt werden, der eine Übertragung von Daten zwischen verschiedenen, mit dem Bussystem verbundenen Komponenten oder Einheiten ermöglicht.
-
Zusätzlich kann eine Datenaustauscheinheit eine Anzahl von Einheiten beinhalten, die Daten übertragen, Daten empfangen oder Daten übertragen und empfangen. Bei einer Datenaustauscheinheit kann es sich zum Beispiel um einen Modem oder einen Netzwerkadapter, zwei Netzwerkadapter oder eine Kombination davon handeln. Des Weiteren kann es sich bei einem Speicher zum Beispiel um den Speicher 406 oder um einen Cachespeicher handeln, wie er beispielweise in einem Schnittstellen- und Speichersteuereinheiten-Hub zu finden ist, der in der Datenaustauschstruktur 402 vorhanden sein kann.
-
Wie für einen Fachmann ersichtlich ist, können Aspekte der vorliegenden Erfindung als System, Verfahren oder Computerprogrammprodukt verkörpert werden. Dementsprechend können Aspekte der vorliegenden Erfindung eine reine Hardware-Ausführungsform, eine reine Software-Ausführungsform (darunter Firmware, residente Software, Mikrocode usw.) oder eine Ausführungsform annehmen, in der Software- und Hardware-Aspekte kombiniert werden, die sämtlich hierin verallgemeinernd als „Schaltung”, „Modul” oder „System” bezeichnet werden können.
-
Des Weiteren können Aspekte der vorliegenden Erfindung die Form eines Computerprogrammprodukts annehmen, das in einem oder mehreren computerlesbaren Medien verkörpert wird, auf denen computerlesbarer Programmcode verkörpert ist.
-
Es kann eine beliebige Kombination eines oder mehrerer computerlesbarer Medien verwendet werden. Bei dem computerlesbaren Medium kann es sich um ein computerlesbares Signalmedium oder ein computerlesbares Speichermedium handeln. Bei dem computerlesbaren Speichermedium kann es sich zum Beispiel um ein(e) elektronische(s), magnetische(s), optische(s), elektromagnetische(s), Infrarot- bzw. Halbleitersystem, -vorrichtung oder -einheit oder um eine beliebige geeignete Kombination aus Obigem handeln, ohne darauf beschränkt zu sein. Zu konkreteren Beispielen (einer nicht erschöpfenden Liste) des computerlesbaren Speichermediums würden folgende gehören: eine elektrische Verbindung mit einer oder mehreren Leitungen, eine tragbare Computerdiskette, eine Festplatte, ein Direktzugriffsspeicher (random access memory, RAM), ein Festwertspeicher (read-only memory, ROM), ein löschbarer, programmierbarer Festwertspeicher (erasable programmable read-only memory, EPROM oder Flash-Speicher), ein Lichtwellenleiter, ein tragbarer Compact-Disk-Festwertspeicher (CD-ROM), eine optische Speichereinheit, eine Magnetspeichereinheit oder eine beliebige geeignete Kombination des Obigen. Im Rahmen dieses Dokuments kann ein computerlesbares Speichermedium ein beliebiges physisches Medium sein, das ein Programm zur Verwendung durch ein System, eine Vorrichtung oder Einheit zur Befehlsausführung bzw. in Verbindung mit diesen enthalten oder speichern kann.
-
Ein computerlesbares Signalmedium kann ein sich ausbreitendes Datensignal, in dem computerlesbarer Programmcode verkörpert wird, zum Beispiel im Basisband oder als Teil einer Trägerwelle beinhalten. Ein solches sich ausbreitendes Signal kann eine Vielfalt von Formen annehmen, darunter eine elektromagnetische, eine optische oder eine beliebige geeignete Kombination daraus, ohne darauf beschränkt zu sein. Bei einem computerlesbaren Signalmedium kann es sich um ein beliebiges computerlesbares Medium handeln, das kein computerlesbares Speichermedium ist und das ein Programm zur Verwendung durch ein System, eine Vorrichtung oder Einheit zur Befehlsausführung bzw. in Verbindung mit diesen austauschen, verbreiten oder transportieren kann.
-
Auf einem computerlesbaren Medium verkörperter Programmcode kann mithilfe eines beliebigen geeigneten Mediums übertragen werden, zum Beispiel über Funk, Kabel, Lichtwellenleiterkabel, Hochfrequenz (HF) usw. oder über eine beliebige geeignete Kombination des Obigen, ohne darauf beschränkt zu sein.
-
Computerprogrammcode zum Ausführen von Vorgängen für Aspekte der vorliegenden Erfindung kann in einer beliebigen Kombination einer oder mehrerer Programmiersprachen geschrieben werden, zum Beispiel in einer objektorientierten Programmiersprache wie etwa Java, Smalltalk, C++ oder dergleichen und in herkömmlichen verfahrensorientierten Programmiersprachen wie zum Beispiel der Programmiersprache „C” oder ähnlichen Programmiersprachen. Der Programmcode kann vollständig auf dem Computer des Benutzers, zum Teil auf dem Computer des Benutzers, als eigenständiges Software-Paket, zum Teil auf dem Computer des Benutzers und zum Teil auf einem entfernt angeordneten Computer oder vollständig auf dem entfernt angeordneten Computer oder Server ausgeführt werden. In letzterem Szenario kann der entfernt angeordnete Computer mit dem Computer des Benutzers durch eine beliebige Art von Netzwerk verbunden sein, zum Beispiel durch ein lokales Netzwerk (local area network, LAN) oder ein Weitverkehrs-Netzwerk (wide area network, WAN), oder die Verbindung kann mit einem externen Computer (zum Beispiel über das Internet mithilfe eines Internet-Diensteanbieters) hergestellt werden.
-
Aspekte der vorliegenden Erfindung werden hierin unter Bezugnahme auf Ablaufpläne und/oder Blockschaubilder von Verfahren, Vorrichtungen (Systemen) und Computerprogrammprodukten gemäß Ausführungsformen der Erfindung beschrieben. Es versteht sich, dass jeder Block der Ablaufpläne und/oder Blockschaubilder und Kombinationen von Blöcken in den Ablaufplänen und/oder Blockschaubildern durch Computerprogrammbefehle umgesetzt werden kann/können. Diese Computerprogrammbefehle können für einen Prozessor eines Universalcomputers, eines Spezialcomputers oder einer sonstigen programmierbaren Datenverarbeitungsvorrichtung bereitgestellt werden, um eine Maschine zu erzeugen, sodass die Befehle, die über den Prozessor des Computers oder einer sonstigen programmierbaren Datenverarbeitungsvorrichtung ausgeführt werden, ein Mittel zum Umsetzen der Funktionen/Vorgänge erzeugen, die in dem Block oder den Blöcken der Ablaufpläne und/oder der Blockschaubilder angegeben sind.
-
Diese Computerprogrammbefehle können auch in einem computerlesbaren Medium gespeichert werden, das einen Computer, eine sonstige programmierbare Datenverarbeitungsvorrichtung oder sonstige Einheiten so steuern kann, dass sie in einer bestimmten Weise funktionieren, sodass die in dem computerlesbaren Medium gespeicherten Befehle einen hergestellten Gegenstand (article of manufacture) erzeugen, der Befehle beinhaltet, die die/den Funktion/Vorgang umsetzen, die/der in dem Block oder den Blöcken der Ablaufpläne und/oder der Blockschaltbilder angegeben ist.
-
Die Computerprogrammbefehle können außerdem auf einen Computer, eine sonstige programmierbare Datenverarbeitungsvorrichtung oder sonstige Einheiten geladen werden, um zu bewirken, dass eine Reihe von Schritten eines Vorgangs auf dem Computer, einer sonstigen programmierbaren Vorrichtung oder sonstigen Einheiten ausgeführt wird, um einen computerimplementierten Prozess zu erzeugen, sodass die auf dem Computer oder einer sonstigen programmierbaren Vorrichtung ausgeführten Befehle Prozesse bereitstellen, um die in dem Block oder den Blöcken der Ablaufpläne und/oder der Blockschaubilder angegebenen Funktionen/Vorgänge umzusetzen.
-
So, wie er hierin verwendet wird, bedeutet der Begriff „zumindest eines von”, wenn er mit einer Liste von Elementen verwendet wird, dass verschiedene Kombinationen eines oder mehrerer der aufgeführten Elemente verwendet werden können und dass nur ein Element in der Liste erforderlich sein kann. Beispielsweise kann „zumindest eines von dem Element A, Element B und Element C” Element A oder Element A und Element B beinhalten, ohne darauf beschränkt zu sein. Dieses Beispiel kann außerdem Element A, Element B und Element C beinhalten. In anderen Beispielen kann es sich bei „zumindest einem von” etwa um zwei von Element A, eines von Element B und zehn von Element C; vier von Element B und sieben von Element C; und andere geeignete Kombinationen handeln.
-
Die Ablaufpläne und Blockschaubilder bei den verschiedenen dargestellten Ausführungsformen veranschaulichen die Architektur, die Funktionalität und den Betrieb einiger möglicher Umsetzungen von Vorrichtungen und Verfahren bei einer veranschaulichenden Ausführungsform. In diesem Zusammenhang kann jeder Block in den Ablaufplänen oder Blockschaubildern ein Modul, ein Segment, eine Funktion und/oder einen Abschnitt eines Vorgangs oder Schritts darstellen. Beispielsweise können einer oder mehrere der Blöcke als Programmcode, Hardware oder eine Kombination des Programmcodes und der Hardware umgesetzt werden. Wenn sie in Hardware umgesetzt werden, kann die Hardware zum Beispiel die Form von integrierten Schaltungen annehmen, die dazu gefertigt oder konfiguriert sind, einen oder mehrere Vorgänge in den Ablaufplänen oder Blockschaubildern durchzuführen.
-
Bei einigen alternativen Umsetzungen einer veranschaulichenden Ausführungsform können die in dem Block vermerkte(n) Funktion oder Funktionen in einer anderen Reihenfolge als in den Figuren vermerkt auftreten. Beispielsweise können in einigen Fällen je nach einbezogener Funktionalität zwei nacheinander dargestellte Blöcke im Wesentlichen gleichzeitig ausgeführt werden, oder die Blöcke können bisweilen in der umgekehrten Reihenfolge ausgeführt werden. Außerdem können zusätzlich zu den veranschaulichten Blöcken sonstige Blöcke in einem Ablaufplan oder Blockschaubild hinzugefügt werden.
-
Die Ablaufpläne und die Blockschaubilder in den Figuren veranschaulichen die Architektur, Funktionalität und Arbeitsweise möglicher Umsetzungen von Systemen, Verfahren und Computerprogrammprodukten gemäß verschiedener Ausführungsformen der vorliegenden Erfindung. In diesem Zusammenhang kann jeder Block in den Ablaufplänen oder Blockschaubildern ein Modul, ein Segment oder einen Abschnitt eines Codes darstellen, der einen oder mehrere Befehle zum Umsetzen der angegebenen logischen Funktion(en) aufweist. Es ist außerdem zu beachten, dass bei einigen alternativen Umsetzungen die in dem Block vermerkten Funktionen in einer anderen Reihenfolge als in den Figuren vermerkt auftreten können. Beispielsweise können je nach einbezogener Funktionalität zwei nacheinander dargestellte Blöcke sogar im Wesentlichen gleichzeitig ausgeführt werden, oder die Blöcke können bisweilen in der umgekehrten Reihenfolge ausgeführt werden. Es ist ferner zu beachten, dass jeder Block der Blockschaubilder und/oder der Ablaufpläne und Kombinationen von Blöcken in den Blockschaubildern und/oder in den Ablaufplänen durch Spezialsysteme auf der Grundlage von Hardware, die die angegebenen Funktionen oder Vorgänge ausführen, oder durch Kombinationen von Spezial-Hardware und Computerbefehlen umgesetzt werden können.
-
Die hierin verwendete Terminologie dient lediglich der Beschreibung bestimmter Ausführungsformen und soll die Erfindung nicht beschränken. So, wie sie hierin verwendet werden, sollen die Singularformen „ein”, „eine” und „der”, „die”, „das” auch die Pluralformen beinhalten, sofern dies aus dem Kontext nicht eindeutig anders hervorgeht. Es versteht sich darüber hinaus, dass die Begriffe „aufweist” und/oder „aufweisend”, wenn sie in dieser Beschreibung verwendet werden, das Vorhandensein von angegebenen Merkmalen, Ganzzahlen, Schritten, Vorgängen, Elementen und/oder Komponenten bezeichnen, jedoch nicht das Vorhandensein oder die Beifügung von einem/einer oder mehreren anderen Merkmalen, Ganzzahlen, Schritten, Vorgängen, Elementen, Komponenten und/oder Gruppen davon ausschließen.
-
Die entsprechenden Strukturen, Materialien, Vorgänge und Entsprechungen aller Mittel bzw. Schritte sowie die Funktionselemente in den nachstehenden Ansprüchen sollen jede Struktur, jedes Material bzw. jeden Vorgang zum Durchführen der Funktion in Kombination mit anderen beanspruchten Elementen als ausdrücklich beansprucht beinhalten. Die Beschreibung der vorliegenden Erfindung erfolgte zum Zweck der Veranschaulichung und Beschreibung, ist jedoch nicht erschöpfend oder auf die Erfindung in der dargestellten Form beschränkt gemeint. Viele Modifizierungen und Varianten sind für Fachleute ersichtlich, ohne vom Umfang und Gedanken der Erfindung abzuweichen. Die Ausführungsform wurde ausgewählt und beschrieben, um die Grundgedanken der Erfindung und die praktische Anwendung am besten zu erläutern und um anderen Fachleuten das Verständnis der Erfindung für verschiedene Ausführungsformen mit verschiedenen, für den in Betracht gezogenen Einsatz geeigneten Modifizierungen zu ermöglichen.