DE102012219705B4 - Datenpaketverarbeitung im netzwerk - Google Patents

Datenpaketverarbeitung im netzwerk Download PDF

Info

Publication number
DE102012219705B4
DE102012219705B4 DE102012219705.2A DE102012219705A DE102012219705B4 DE 102012219705 B4 DE102012219705 B4 DE 102012219705B4 DE 102012219705 A DE102012219705 A DE 102012219705A DE 102012219705 B4 DE102012219705 B4 DE 102012219705B4
Authority
DE
Germany
Prior art keywords
processing
processing resources
data
data packets
component
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
DE102012219705.2A
Other languages
English (en)
Other versions
DE102012219705A1 (de
Inventor
Claude Basso
Jean L. Calvignac
Hubertus Franke
Eren Kursun
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
International Business Machines Corp
Original Assignee
International Business Machines Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by International Business Machines Corp filed Critical International Business Machines Corp
Publication of DE102012219705A1 publication Critical patent/DE102012219705A1/de
Application granted granted Critical
Publication of DE102012219705B4 publication Critical patent/DE102012219705B4/de
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/26Power supply means, e.g. regulation thereof
    • G06F1/32Means for saving power
    • G06F1/3203Power management, i.e. event-based initiation of a power-saving mode
    • G06F1/3206Monitoring of events, devices or parameters that trigger a change in power modality
    • G06F1/3209Monitoring remote activity, e.g. over telephone lines or network connections
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • G06F9/5027Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
    • G06F9/5044Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals considering hardware capabilities
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5094Allocation of resources, e.g. of the central processing unit [CPU] where the allocation takes into account power or heat criteria
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/26Power supply means, e.g. regulation thereof
    • G06F1/32Means for saving power
    • G06F1/3203Power management, i.e. event-based initiation of a power-saving mode
    • G06F1/3234Power saving characterised by the action undertaken
    • G06F1/3287Power saving characterised by the action undertaken by switching off individual functional units in the computer system
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/26Power supply means, e.g. regulation thereof
    • G06F1/32Means for saving power
    • G06F1/3203Power management, i.e. event-based initiation of a power-saving mode
    • G06F1/3234Power saving characterised by the action undertaken
    • G06F1/3293Power saving characterised by the action undertaken by switching to a less power-consuming processor, e.g. sub-CPU
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2209/00Indexing scheme relating to G06F9/00
    • G06F2209/50Indexing scheme relating to G06F9/50
    • G06F2209/501Performance criteria
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2209/00Indexing scheme relating to G06F9/00
    • G06F2209/50Indexing scheme relating to G06F9/50
    • G06F2209/5012Processor sets
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

Verfahren zum Verarbeiten von Datenpaketen, das aufweist:- Identifizieren (306) eines Metrikwerts für eine aktuelle Konfiguration von Verarbeitungs-Ressourcen in einer Datenverarbeitungskomponente, die die Datenpakete verarbeitet,- wobei der Metrikwert identifiziert wird in Abhängigkeit von:- einem Näherungswert der Temperatur,- einem Näherungswert des Arbeitslastbedarfs, der sich aus der Verkehrslast im Netzwerk insgesamt und dem Anteil der gesamten Arbeitslast, die zu der Verarbeitungs-Ressource geleitet wird, ergibt,- einem Ressourcen-Konfliktwert, der sich aus der Wartezeit oder der Cachespeicher-Latenzzeit an dem Cachespeicher, der den Verarbeitungs-Ressourcen zugehörig ist, ergibt,- einem Verschleißwert, der sich aus der Anzahl von Zyklen, während derer sich die Verarbeitungs-Ressource im Vergleich zu dem übrigen Chip auf einer hohen Aktivitätsstufe und auf einer hohen Temperatur befindet, ergibt,- einer inhärenten Ressourcen-Leistungseffizienz der Verarbeitungs-Ressourcen, die die inhärente Leistungseffizienz der Verarbeitungs-Ressource angibt, und- Auswählen (314) einer neuen Konfiguration der Verarbeitungs-Ressourcen in der Datenverarbeitungskomponente mithilfe des Metrikwerts;- Ändern (316) der aktuellen Konfiguration der Verarbeitungs-Ressourcen in der Datenverarbeitungskomponente in die neue Konfiguration; und- Verteilen (318) der Datenpakete an die neue Konfiguration der Verarbeitungs-Ressourcen, um die Datenpakete zu verarbeiten, wie sie empfangen werden.

Description

  • HINTERGRUND
  • 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.
  • 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. Lange Verzögerungen bei der Verarbeitung von Datenpaketen sind in einer Verarbeitungsumgebung mit maximaler Übertragungsgeschwindigkeit nicht zu vertreten.
  • Aus US 8 074 110 B2 ist ein Verfahren zum Verbessern der Zuverlässigkeit eines Mehrkernprozessors bekannt.
  • Aus Tang et al., „Energy-Efficient, Thermal-Aware Task Scheduling for Homogeneous, High Performance Computing Data Centers: A Cyber-Physical Approach“, IEEE Transactions on Parallel and Distributed Systems (Volume: 19 , Issue: 11 , Nov. 2008), ist ein Verfahren zur thermischen Überwachung eines Rechenzentrums bekannt.
  • Aus Sarood et al., „A ‚Cool‘Load Balancer for Parallel Applications", Proceeding SC '11 Proceedings of 2011 International Conference for High Performance Computing, Networking, Storage and Analysis, Article No. 21, Seattle, Washington - November 12 - 18, 2011, ist das Leistungsmanagement von großen Anlagen bekannt.
  • Die Erfindung stellt sich die Aufgabe, eine bessere Anpassung der Konfiguration von Verarbeitungs-Ressourcen an den Bedarf zu erreichen.
  • Die Aufgabe wird gelöst durch das Verfahren nach Anspruch 1, die Vorrichtung nach Anspruch 10 und das Computerprogrammprodukt nach Anspruch 14. Bevorzugte Ausführungsformen der Erfindung sind Gegenstand der jeweiligen Unteransprüche.
  • KURZDARSTELLUNG
  • In dem erfindungsgemäßen Verfahren zum Verarbeiten von Datenpaketen wird u.a. 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.
  • Die erfindungsgemäße Vorrichtung weist u.a. 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.
  • Das erfindungsgemäße Computerprogrammprodukt weist ein computerlesbares Speichermedium auf.
  • Weitere Objekte, Merkmale und Vorteile werden aus der folgenden ausführlichen Beschreibung und den beigefügten Zeichnungsfiguren ersichtlich.
  • Figurenliste
    • 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, 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 + c 3 * Cprox + w 4 * WOprox ) .
    Figure DE102012219705B4_0001
    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) / LER(CompatiblelnactiveResources) berechnet werden, wobei sowohl ΣER(Active Resources) als auch ΣER(CompatiblelnactiveResources) 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 Bespiel 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.

Claims (14)

  1. Verfahren zum Verarbeiten von Datenpaketen, das aufweist: - Identifizieren (306) eines Metrikwerts für eine aktuelle Konfiguration von Verarbeitungs-Ressourcen in einer Datenverarbeitungskomponente, die die Datenpakete verarbeitet, - wobei der Metrikwert identifiziert wird in Abhängigkeit von: - einem Näherungswert der Temperatur, - einem Näherungswert des Arbeitslastbedarfs, der sich aus der Verkehrslast im Netzwerk insgesamt und dem Anteil der gesamten Arbeitslast, die zu der Verarbeitungs-Ressource geleitet wird, ergibt, - einem Ressourcen-Konfliktwert, der sich aus der Wartezeit oder der Cachespeicher-Latenzzeit an dem Cachespeicher, der den Verarbeitungs-Ressourcen zugehörig ist, ergibt, - einem Verschleißwert, der sich aus der Anzahl von Zyklen, während derer sich die Verarbeitungs-Ressource im Vergleich zu dem übrigen Chip auf einer hohen Aktivitätsstufe und auf einer hohen Temperatur befindet, ergibt, - einer inhärenten Ressourcen-Leistungseffizienz der Verarbeitungs-Ressourcen, die die inhärente Leistungseffizienz der Verarbeitungs-Ressource angibt, und - Auswählen (314) einer neuen Konfiguration der Verarbeitungs-Ressourcen in der Datenverarbeitungskomponente mithilfe des Metrikwerts; - Ändern (316) der aktuellen Konfiguration der Verarbeitungs-Ressourcen in der Datenverarbeitungskomponente in die neue Konfiguration; und - Verteilen (318) der Datenpakete an die neue Konfiguration der Verarbeitungs-Ressourcen, um die Datenpakete zu verarbeiten, wie sie empfangen werden.
  2. Verfahren nach Anspruch 1, wobei der Metrikwert mithilfe zumindest eines von einem Arbeitslastbedarf der Verarbeitungs-Ressourcen, und einer Zusammenschaltbarkeit der Verarbeitungs-Ressourcen identifiziert wird.
  3. Verfahren nach einem der Ansprüche 1 bis 2, wobei die Datenverarbeitungskomponente ein Mehrkernprozessor ist und die Verarbeitungs-Ressourcen Kerne in dem Mehrkernprozessor sind.
  4. Verfahren nach einem der Ansprüche 1 bis 3, wobei die Verarbeitungs-Ressourcen Gruppen von Prozessoren in der Datenverarbeitungskomponente aufweisen.
  5. Verfahren nach einem der Ansprüche 1 bis 4, wobei der Metrikwert eine Anzahl von Werten für die Verarbeitungs-Ressourcen und einen Wert für die Datenverarbeitungskomponente aufweist.
  6. Verfahren nach einem der Ansprüche 1 bis 5, wobei das Auswählen (314) der neuen Konfiguration ein Auswählen der neuen Konfiguration aus einer Gruppe von vordefinierten Konfiguration aufweist.
  7. Verfahren nach einem der Ansprüche 1 bis 6, das des Weiteren aufweist: - Ermitteln, ob die aktuelle Konfiguration von Verarbeitungs-Ressourcen in der Datenverarbeitungskomponente für eine aktuelle Arbeitslast in der Datenverarbeitungskomponente geeignet ist; und - Auswählen der neuen Konfiguration in Reaktion auf eine Feststellung, dass die aktuelle Konfiguration von Verarbeitungs-Ressourcen in der Datenverarbeitungskomponente nicht für die aktuelle Arbeitslast geeignet ist.
  8. Verfahren nach Anspruch 7, das des Weiteren ein Auswählen der neuen Konfiguration mithilfe des Metrikwerts auf der Grundlage der aktuellen Arbeitslast aufweist.
  9. Verfahren nach einem der Ansprüche 1 bis 8, das des Weiteren aufweist: - Ermitteln (312), 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.
  10. Vorrichtung, die umfasst: - eine Datenverarbeitungskomponente, die eine Vielzahl von Verarbeitungs-Ressourcen aufweist, die zum Verarbeiten von Datenpaketen konfiguriert sind; und - einen Datenpaketverteiler, der konfiguriert ist zum - Identifizieren (306) eines Metrikwerts in Abhängigkeit von: - einem Näherungswert der Temperatur, - einem Näherungswert des Arbeitslastbedarfs, der sich aus der Verkehrslast im Netzwerk insgesamt und dem Anteil der gesamten Arbeitslast, die zu der Verarbeitungs-Ressource geleitet wird, ergibt, - einem Ressourcen-Konfliktwert, der sich aus der Wartezeit oder der Cachespeicher-Latenzzeit an dem Cachespeicher, der den Verarbeitungs-Ressourcen zugehörig ist, ergibt, - einem Verschleißwert, der sich aus der Anzahl von Zyklen, während derer sich die Verarbeitungs-Ressource im Vergleich zu dem übrigen Chip auf einer hohen Aktivitätsstufe und auf einer hohen Temperatur befindet, ergibt, - einer inhärenten Ressourcen-Leistungseffizienz der Verarbeitungs-Ressourcen, die die inhärente Leistungseffizienz der Verarbeitungs-Ressource angibt, und - Auswählen (314) einer neuen Konfiguration der Verarbeitungs-Ressourcen in der Datenverarbeitungskomponente mithilfe des Metrikwerts; - Ändern (316) der aktuellen Konfiguration der Verarbeitungs-Ressourcen in der Datenverarbeitungskomponente in die neue Konfiguration; und - Verteilen (318) der Datenpakete an die neue Konfiguration der Verarbeitungs-Ressourcen, um die Datenpakete zu verarbeiten, wie sie empfangen werden.
  11. Vorrichtung nach Anspruch 10, wobei der Datenpaketverteiler des Weiteren dazu konfiguriert ist, den Metrikwert mithilfe zumindest eines von einem Arbeitslastbedarf der Verarbeitungs-Ressourcen und einer Zusammenschaltbarkeit der Verarbeitungs-Ressourcen zu identifizieren.
  12. Vorrichtung nach einem der Ansprüche 10 bis 11, wobei die Datenverarbeitungskomponente ein Mehrkernprozessor ist und die Verarbeitungs-Ressourcen Kerne in dem Mehrkernprozessor sind.
  13. Vorrichtung nach einem der Ansprüche 10 bis 12, wobei die Verarbeitungs-Ressourcen Gruppen von Prozessoren in der Datenverarbeitungskomponente aufweisen.
  14. Computerprogrammprodukt zum Verarbeiten von Datenpaketen, das aufweist: - ein computerlesbares Speichermedium, auf dem ein computerlesbares Programm gespeichert ist zum Ausführen des Verfahrens nach einem der Ansprüche 1 bis 9 durch einen Computer.
DE102012219705.2A 2011-11-17 2012-10-29 Datenpaketverarbeitung im netzwerk Active DE102012219705B4 (de)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US13/299,045 2011-11-17
US13/299,045 US8959224B2 (en) 2011-11-17 2011-11-17 Network data packet processing

Publications (2)

Publication Number Publication Date
DE102012219705A1 DE102012219705A1 (de) 2013-05-23
DE102012219705B4 true DE102012219705B4 (de) 2019-08-01

Family

ID=47359006

Family Applications (1)

Application Number Title Priority Date Filing Date
DE102012219705.2A Active DE102012219705B4 (de) 2011-11-17 2012-10-29 Datenpaketverarbeitung im netzwerk

Country Status (3)

Country Link
US (1) US8959224B2 (de)
DE (1) DE102012219705B4 (de)
GB (1) GB2496958B (de)

Families Citing this family (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2013126066A1 (en) * 2012-02-24 2013-08-29 Hewlett-Packard Development Company, L.P. Wear-leveling cores of a multi-core processor
US9606843B2 (en) * 2013-12-18 2017-03-28 Qualcomm Incorporated Runtime optimization of multi-core system designs for increased operating life and maximized performance
US10261875B2 (en) 2013-12-18 2019-04-16 Qualcomm Incorporated Runtime optimization of multi-core system designs for increased operating life and maximized performance
US20160328644A1 (en) * 2015-05-08 2016-11-10 Qualcomm Incorporated Adaptive selection of artificial neural networks
US10803087B2 (en) * 2018-10-19 2020-10-13 Oracle International Corporation Language interoperable runtime adaptable data collections
WO2020101662A1 (en) * 2018-11-14 2020-05-22 Hewlett-Packard Development Company, L.P. Modules with communication interfaces

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20040215987A1 (en) * 2003-04-25 2004-10-28 Keith Farkas Dynamically selecting processor cores for overall power efficiency
US20100037234A1 (en) * 2005-01-13 2010-02-11 Koninklijke Philips Electronics, N.V. Data processing system and method of task scheduling
US8074110B2 (en) 2006-02-28 2011-12-06 Intel Corporation Enhancing reliability of a many-core processor
US8213305B2 (en) * 2005-03-21 2012-07-03 Intel Corporation Dynamic service management for multicore processors
US20130054179A1 (en) * 2011-08-30 2013-02-28 Dorit Shapira Determining An Effective Stress Level On A Processor

Family Cites Families (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6947430B2 (en) 2000-03-24 2005-09-20 International Business Machines Corporation Network adapter with embedded deep packet processing
US20020038339A1 (en) 2000-09-08 2002-03-28 Wei Xu Systems and methods for packet distribution
US20020116644A1 (en) 2001-01-30 2002-08-22 Galea Secured Networks Inc. Adapter card for wirespeed security treatment of communications traffic
US7412353B2 (en) 2005-09-28 2008-08-12 Intel Corporation Reliable computing with a many-core processor
US20110213947A1 (en) 2008-06-11 2011-09-01 John George Mathieson System and Method for Power Optimization
US7990974B1 (en) 2008-09-29 2011-08-02 Sonicwall, Inc. Packet processing on a multi-core processor
CN101442460A (zh) 2008-12-26 2009-05-27 厦门大学 一种工业以太网适配器
US8995289B2 (en) 2009-03-04 2015-03-31 Broadcom Corporation Method and system for implementing energy efficient ethernet techniques in a MACSec enabled PHY
US8503459B2 (en) 2009-05-05 2013-08-06 Citrix Systems, Inc Systems and methods for providing a multi-core architecture for an acceleration appliance
US8799916B2 (en) * 2011-02-02 2014-08-05 Hewlett-Packard Development Company, L. P. Determining an allocation of resources for a job

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20040215987A1 (en) * 2003-04-25 2004-10-28 Keith Farkas Dynamically selecting processor cores for overall power efficiency
US20100037234A1 (en) * 2005-01-13 2010-02-11 Koninklijke Philips Electronics, N.V. Data processing system and method of task scheduling
US8213305B2 (en) * 2005-03-21 2012-07-03 Intel Corporation Dynamic service management for multicore processors
US8074110B2 (en) 2006-02-28 2011-12-06 Intel Corporation Enhancing reliability of a many-core processor
US20130054179A1 (en) * 2011-08-30 2013-02-28 Dorit Shapira Determining An Effective Stress Level On A Processor

Non-Patent Citations (3)

* Cited by examiner, † Cited by third party
Title
Sarood et al., „A ‚Cool‘Load Balancer for Parallel Applications", Proceeding SC '11 Proceedings of 2011 International Conference for High Performance Computing, Networking, Storage and Analysis, Article No. 21, Seattle, Washington - November 12 - 18, 2011
SAROOD, Osman; KALE, Laxmikant V. A 'Cool' Load Balancer for Parallel Applications. In: Proceedings of 2011 Int'l Conf. High Performance Computing, Networking, Storage and Analysis. ACM, 2011. S. 21. [Vortrag am 15. November 2011] *
TANG, Qinghui; GUPTA, Sandeep KS; VARSAMOPOULOS, Georgios. Energy-efficient thermal-aware task scheduling for homogeneous high-performance computing data centers: A cyber-physical approach. Parallel and Distributed Systems, IEEE Transactions on, 2008, Vol. 19(11): 1458-1472. doi: 10.1109/TPDS.2008.111 *

Also Published As

Publication number Publication date
GB2496958A (en) 2013-05-29
DE102012219705A1 (de) 2013-05-23
US8959224B2 (en) 2015-02-17
GB201219658D0 (en) 2012-12-12
GB2496958B (en) 2014-05-14
US20130132535A1 (en) 2013-05-23

Similar Documents

Publication Publication Date Title
DE102012219705B4 (de) Datenpaketverarbeitung im netzwerk
DE102020132078A1 (de) Ressourcenzuteilung basierend auf anwendbarem service level agreement
DE102018204859A1 (de) Dynamischer Lastenausgleich in Netzschnittstellenkarten für eine optimale Leistung auf Systemebene
DE112016004801T5 (de) Arbeitslastzuweisung für computerressourcen
DE102016100902A1 (de) Verfahren zum dynamischen Zuteilen von Ressourcen von konfigurierbaren Datenverarbeitungsressourcen
DE112012006642B4 (de) Bandbreitengarantie und Arbeitskonservierung
DE112010003338T5 (de) Dezentrale Lastverteilung zum Verringern der Energie- und/oder Kühlkosten in einem ereignisgesteuerten System
DE102016103492B4 (de) Datenverarbeitungsvorrichtung und Verfahren zum Überwachen von Netzwerkverkehr und Maschinenlesbares Speichermedium
DE112016004347T5 (de) Lokale und globale Datenzentrumsnetzoptimierungen in Echtzeit basierend auf Plattformtelemetriedaten
DE102015118705A1 (de) Technologien für leistungsbasierte Außer-der-Reihe-Task-Planung für Datenzentren
DE112016006786T5 (de) Ressourcenorchestrierungsbrokerage für Internet-Der-Dinge-Netzwerke
DE102011082277A1 (de) System und Verfahren zum automatisierten Handhaben der Arbeitsbelastung bei der Dokumentenverarbeitung
DE112010004006T5 (de) Zuverlässige kommunikationen in chipintegrierten netzwerken
DE102019112772A1 (de) Technologien für eine dienstgütefrist-bewusste ende-zu-ende-e/a-planung
DE102020110143A1 (de) Standortbasierte virtualisierungs-workload-platzierung
US20210367855A1 (en) Network-aware workload management using artificial intelligence and exploitation of asymmetric link for allocating network resources
DE102019105881A1 (de) Technologien zur bereitstellung von effizienter detektion leerlaufender abfrageschleifen
DE102022105933A1 (de) Lenkung von warteschlangen nach priorität durch die nic und frequenzabstimmung der prozessoreinheit basierend auf paketflussanalysen
DE112017004907T5 (de) System, Vorrichtung und Verfahren zur Durchführung einer verteilten Arbitration
DE112016004319T5 (de) Technologien zur Schätzung der Netzwerkpaketumlaufzeit
DE202014009422U1 (de) NOC-Elektronikelement
DE60303444T2 (de) Ablaufsteuerung unter verwendung von quantumwerten und defizitwerten
DE112017001757T5 (de) Verfahren und vorrichtung zum koordinieren und authentifizieren von anfragen nach daten
DE102021127323A1 (de) Verwaltung der Bereitstellung von Workloads
Cao et al. A game-theoretic framework for revenue sharing in edge-cloud computing system

Legal Events

Date Code Title Description
R012 Request for examination validly filed
R016 Response to examination communication
R016 Response to examination communication
R018 Grant decision by examination section/examining division
R084 Declaration of willingness to licence
R020 Patent grant now final