DE102019103932A1 - Technologien für optimierte Dienstgütebeschleunigung - Google Patents

Technologien für optimierte Dienstgütebeschleunigung Download PDF

Info

Publication number
DE102019103932A1
DE102019103932A1 DE102019103932.0A DE102019103932A DE102019103932A1 DE 102019103932 A1 DE102019103932 A1 DE 102019103932A1 DE 102019103932 A DE102019103932 A DE 102019103932A DE 102019103932 A1 DE102019103932 A1 DE 102019103932A1
Authority
DE
Germany
Prior art keywords
qos
layer
node
tree
data processing
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
DE102019103932.0A
Other languages
English (en)
Inventor
Manasi Deval
Duke Hong
Yashaswini Raghuram Prathivadi Bhayankaram
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.)
Intel Corp
Original Assignee
Intel 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 Intel Corp filed Critical Intel Corp
Publication of DE102019103932A1 publication Critical patent/DE102019103932A1/de
Pending legal-status Critical Current

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L41/00Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
    • H04L41/50Network service management, e.g. ensuring proper service fulfilment according to agreements
    • H04L41/5003Managing SLA; Interaction between SLA and QoS
    • H04L41/5019Ensuring fulfilment of SLA
    • H04L41/5025Ensuring fulfilment of SLA by proactively reacting to service quality change, e.g. by reconfiguration after service quality degradation or upgrade
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L41/00Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
    • H04L41/08Configuration management of networks or network elements
    • H04L41/0803Configuration setting
    • H04L41/0813Configuration setting characterised by the conditions triggering a change of settings
    • H04L41/0816Configuration setting characterised by the conditions triggering a change of settings the condition being an adaptation, e.g. in response to network events
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L41/00Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
    • H04L41/08Configuration management of networks or network elements
    • H04L41/0895Configuration of virtualised networks or elements, e.g. virtualised network function or OpenFlow elements
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L41/00Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
    • H04L41/08Configuration management of networks or network elements
    • H04L41/0896Bandwidth or capacity management, i.e. automatically increasing or decreasing capacities
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L41/00Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
    • H04L41/08Configuration management of networks or network elements
    • H04L41/0896Bandwidth or capacity management, i.e. automatically increasing or decreasing capacities
    • H04L41/0897Bandwidth or capacity management, i.e. automatically increasing or decreasing capacities by horizontal or vertical scaling of resources, or by migrating entities, e.g. virtual resources or entities
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L41/00Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
    • H04L41/50Network service management, e.g. ensuring proper service fulfilment according to agreements
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L41/00Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
    • H04L41/50Network service management, e.g. ensuring proper service fulfilment according to agreements
    • H04L41/5003Managing SLA; Interaction between SLA and QoS
    • H04L41/5009Determining service level performance parameters or violations of service level contracts, e.g. violations of agreed response time or mean time between failures [MTBF]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L43/00Arrangements for monitoring or testing data switching networks
    • H04L43/16Threshold monitoring
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L41/00Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
    • H04L41/40Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks using virtualisation of network functions or resources, e.g. SDN or NFV entities
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L41/00Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
    • H04L41/50Network service management, e.g. ensuring proper service fulfilment according to agreements
    • H04L41/5003Managing SLA; Interaction between SLA and QoS

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Quality & Reliability (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

Technologien zum Konfigurieren von Dienstgüte- bzw. QoS-Parametern eines Netzwerks umfassen eine Datenverabeitungsvorrichtung, die eine Netzwerksteuerung mit einem Scheduler-Baum aufweist. Die Datenverarbeitungsvorrichtung erzeugt einen QoS-Knoten für einen QoS-Parameter in einer geteilten Schicht eines Treiber-QoS-Baums. Der Knoten weist einen auf exklusiv gesetzten Status auf und ist einem Zeitstempel zugeordnet. Wenn der Knoten mehreren Entitäten zugeordnet ist, kann der Status auf geteilt gesetzt werden. Die Datenverarbeitungsvorrichtung programmiert die Netzwerksteuerung mit einem QoS-Knoten für den QoS-Parameter in einer geteilten Schicht des Scheduler-Baums. Die Datenverarbeitungsvorrichtung bestimmt, ob verfügbare Knoten in der geteilten Schicht unter einer Schwelle liegen. Wenn dem so ist, findet die Datenverarbeitungsvorrichtung einen ältesten exklusiven QoS-Knoten in der geteilten Schicht des Treiber-QoS-Baums und bewegt den Knoten zu einer exklusiven Schicht des Treiber-QoS-Baums und des Scheduler-Baums. Es werden andere Ausführungsformen beschrieben und beansprucht.

Description

  • VERWEIS AUF VERWANDTE ANMELDUNG
  • Die vorliegende Anmeldung beansprucht den Vorteil der vorläufigen US-Patentanmeldung Nr. 62/644,040 , eingereicht am 16.3.2018.
  • HINTERGRUND
  • Ein Cloud-Dienstanbieter stellt mehreren Kunden, wie zum Beispiel Unternehmen, Einzelpersonen oder anderen Entitäten, eine oder mehrere Komponenten einer Cloud-Datenverarbeitungsumgebung (z.B. Plattform, Infrastruktur, Anwendung, Speicherung oder andere Cloud-Dienstinformationen) bereit. In einer virtualisierten CSP-Umgebung kann die Hypervisor-Schicht Mehrwertdienste wie Paketüberwachung, Zählung und Modifikationen auf der Basis der eingerichteten Tunnelungsschemata bereitstellen. Unter bestimmten Umständen (z.B. bei Geschwindigkeiten von 40 Gbps und mehr) kann das Hypervisor-Overhead verringert werden, indem Netzwerkoperationen in einem Modus der Einzel-Wurzel-E/A-Virtualisierung (SR-IOV) ausgeführt werden. In diesem Modus können die durch den Hypervisor bereitgestellten Dienste durch die Hardware in einem vertrauenswürdigen Modus bereitgestellt werden. Zu diesen Diensten können Zugangskontrolllisten (ACL), die Flüsse auf der Basis der Steuerebenerichtlinie abwerfen oder erlauben, und ein Tunnel-Endpunkt, der Paketmodifikationen zum Hinzufügen oder Entfernen von Tunnel-Headern bereitstellt, und Ratenbeschränkung oder Bandbreitengarantien an einem einzelnen Fluss oder einer Gruppe von Flüssen gehören.
  • Figurenliste
  • Die hier beschriebenen Konzepte werden beispielhaft und nicht zur Beschränkung in den beigefügten Figuren dargestellt. Der Einfachheit und Klarheit der Darstellung halber sind in den Figuren dargestellte Elemente nicht unbedingt maßstabsgetreu gezeichnet. Wenn es als angemessen betrachtet wird, wurden Bezugszeichen in den Figuren wiederholt, um entsprechende oder analoge Elemente anzugeben.
    • 1 ist eine vereinfachte Blockdarstellung mindestens einer Ausführungsform eines Systems für optimierte Beschleunigung der Dienstgüte (QoS);
    • 2 ist eine vereinfachte Blockdarstellung mindestens einer Ausführungsform einer Umgebung einer Datenverarbeitungsvorrichtung von 1;
    • 3 ist ein vereinfachtes Flussdiagramm mindestens einer Ausführungsform eines Verfahrens zum Programmieren von QoS-Beschleunigung einer Netzwerkschnittstellensteuerung, das durch eine Datenverarbeitungsvorrichtung von 1-2 ausgeführt werden kann;
    • 4 ist ein vereinfachtes Flussdiagramm mindestens einer Ausführungsform eines Verfahrens zum Optimieren von QoS-Beschleunigung einer Netzwerkschnittstellensteuerung, das durch eine Datenverarbeitungsvorrichtung von 1-2 ausgeführt werden kann;
    • 5 ist eine schematische Darstellung eines Scheduler-Baums einer Netzwerkschnittstellensteuerung von 1-4; und
    • 6 ist eine schematische Darstellung eines optimierten Scheduler-Baums einer Netzwerkschnittstellensteuerung von 1-4.
  • AUSFÜHRLICHE BESCHREIBUNG DER ZEICHNUNGEN
  • Während die Konzepte der vorliegenden Offenbarung für verschiedene Modifikationen und alternative Formen offen sind, wurden hier beispielhaft spezifische Ausführungsformen davon in den Zeichnungen gezeigt, die hier ausführlich beschrieben werden. Es versteht sich jedoch, dass keine Absicht besteht, die Konzepte der vorliegenden Offenbarung auf die konkreten offenbarten Formen zu beschränken, sondern im Gegenteil die Erfindung alle Modifikationen, Äquivalente und Alternativen abdecken soll, die mit der vorliegenden Offenbarung und den angefügten Ansprüchen vereinbar sind.
  • Erwähnungen von „einer Ausführungsform“, „eine Ausführungsform“, „eine beispielhafte Ausführungsform“ usw. in der Beschreibung geben an, dass die beschriebene Ausführungsform ein bestimmtes Merkmal, eine bestimmte Struktur oder ein bestimmtes Charakteristikum umfassen kann, aber nicht unbedingt jede Ausführungsform dieses konkrete Merkmal, diese konkrete Struktur oder dieses konkrete Charakteristikum umfasst. Außerdem beziehen sich solche Ausdrücke nicht unbedingt auf dieselbe Ausführungsform. Wenn ein bestimmtes Merkmal, eine bestimmte Struktur oder ein bestimmtes Charakteristikum in Verbindung mit einer Ausführungsform beschrieben wird, verseht sich ferner, dass es innerhalb der Fähigkeiten von Fachleuten liegt, ein solches Merkmal, eine solche Struktur oder ein solches Charakteristikum in Verbindung mit anderen Ausführungsformen zu bewirken, gleichgültig, ob es ausdrücklich beschrieben wird oder nicht. Zusätzlich versteht sich, dass in einer Liste der Form „mindestens eines von A, B und C“ enthaltene Posten (A); (B); (C); (A und B); (A und C); (B und C); oder (A, B und C) bedeuten können. Ähnlich können Posten, die in der Form „mindestens eines von A, B oder C“ aufgelistet sind, (A); (B); (C); (A und B); (A und C); (B und C); oder (A, B und C) bedeuten.
  • Die offenbarten Ausführungsformen können in einigen Fällen in Hardware, Firmware, Software oder einer beliebigen Kombination davon implementiert werden. Außerdem können die offenbarten Ausführungsformen als Anweisungen implementiert werden, die auf einem transitorischen oder nichttransitorischen maschinenlesbaren (z.B. computerlesbaren) Speicherungsmedium gespeichert sind, das durch einen oder mehrere Prozessoren gelesen und ausgeführt werden kann. Ein maschinenlesbares Speicherungsmedium kann als eine beliebige Speicherungsvorrichtung, ein beliebiger Mechanismus oder eine beliebige andere physische Struktur zum Speichern oder Übertragung von Informationen in einer durch eine Maschine lesbaren Form (z.B. ein flüchtiger oder nichtflüchtiger Speicher, ein Medien-Datenträger oder eine andere Medienvorrichtung) realisiert werden.
  • In den Zeichnungen können einige strukturelle oder Verfahrensmerkmale in spezifischen Anordnungen und/oder Reihenfolgen gezeigt sein. Es versteht sich jedoch, dass solche spezifischen Anordnungen und/oder Reihenfolgen nicht erforderlich sein müssen. Stattdessen können bei einigen Ausführungsformen solche Merkmale auf eine andere Weise und/oder in einer anderen Reihenfolge als in den beispielhaften Figuren gezeigt angeordnet sein. Außerdem ist aus der Aufnahme eines strukturellen oder Verfahrensmerkmals in eine bestimmte Figur nicht zu folgern, dass ein solches Merkmal bei allen Ausführungsformen erforderlich ist, und bei einigen Ausführungsformen kann es nicht enthalten oder mit anderen Merkmalen kombiniert sein.
  • Nunmehr mit Bezug auf 1 umfasst ein System 100 für optimierte QoS-Beschleunigung mehrere Datenverarbeitungsvorrichtungen 102 in Kommunikation über ein Netzwerk 104. Jede Datenverarbeitungsvorrichtung umfasst Hardware-Beschleunigerunterstützung für Verkehrsformung oder andere Dienstgüte- bzw. QoS-Operationen. Im Gebrauch verwendet die Datenverarbeitungsvorrichtung 102 anfänglich geteilte Bandbreitenressourcen für jede Bandbreitenkonfiguration. Zu geteilten Bandbreitenressourcen gehören Bandbreitengrenzen, Bandbreitengarantien oder andere Scheduler-Ressourcen, die von mehreren QoS-Entitäten geteilt werden, wie etwa Warteschlangen, virtuelle Maschinen, Verkehrsklassen oder andere Entitäten. Der Treiber überwacht die Verwendung geteilter Ressourcen, um zu folgern, ob die geteilte Ressource wirklich geteilt wird oder tatsächlich ein individuelles Charakteristikum sein kann. Wenn ein gegebenes Bandbreitencharakteristikum nicht mit einer anderen Entität geteilt wurde, wird das geteilte Bandbreitencharakteristikum nahtlos umkonfiguriert, um eine individuelle Bandbreitenressource zu verwenden und die geteilte Ressource freizugeben. Die geteilte Ressource kann ferner für Bandbreitencharakteristikum-Konfiguration verwendet werden, bei denen sie entweder geteilt wird oder ihr Teil-Status noch nicht bestimmt wurde. Das System 100 kann existierende Techniken durch dynamisches Folgern der Anforderungen der Steuerebene (z.B. Bestimmung von Anforderungen zur Laufzeit auf der Basis des beobachteten Verhaltens) verbessern, wodurch Benutzer Scheduler-Knotenressourcen effizient benutzen können. Dementsprechend unterstützt das System 100 feinkörnige Dienstgüte- bzw. QoS-Regeln mit kosteneffektiver Hardware. Wie nachfolgend weiter beschrieben wird, können Scheduler als Bäume in der Hardware implementiert werden, wobei der Baum viel mehr individuelle Scheduler-Knoten als geteilte Knoten bereitstellt. Dynamisches Folgern, ob eine Ressource individuell oder geteilt ist, kann die Anzahl von geteilten Ressourcen, die benutzt werden, verringern, was die Verwendung von kosteneffektiver Hardware erlauben kann (z.B. durch Verringern der Größe oder Kosten der Hardware) und/oder Unterstützung zusätzlicher geteilter Entitäten erlauben kann. Außerdem kann das System 100 QoS-Optimierung mit minimaler Störung des Netzwerkverkehrs durchführen.
  • Jede Datenverarbeitungsvorrichtung 102 kann als eine beliebige Art von Berechnungs- oder Computervorrichtung realisiert werden, die in der Lage ist, die hier beschriebenen Funktionen auszuführen, darunter, ohne Beschränkung, ein Computer, ein Server, eine Workstation, ein Desktop-Computer, ein Laptop-Computer, ein Notebook-Computer, ein Tablet-Computer, eine mobile Datenverarbeitungsvorrichtung, eine Wearable-Datenverarbeitungsvorrichtung, ein Netzwerkgerät, ein Web-Gerät, ein verteiltes Datenverarbeitungssystem, ein prozessorgestütztes System und/oder eine Verbraucherelektronikvorrichtung. Wie in 1 gezeigt, umfasst die Datenverarbeitungsvorrichtung 102 beispielhaft einen Prozessor 120, ein Eingabe-/Ausgabesubsystem 124, einen Speicher 126, eine Datenspeicherungsvorrichtung 128, ein Kommunikationssubsystem 130, einen Beschleuniger 134 und/oder andere Komponenten und Vorrichtungen, die üblicherweise in einem Server oder einer ähnlichen Datenverarbeitungsvorrichtung vorhanden sind. Natürlich kann die Datenverarbeitungsvorrichtung 102 bei anderen Ausführungsformen andere oder zusätzliche Komponenten umfassen, wie etwa diejenigen, die üblicherweise in einem Servercomputer vorhanden sind (z.B. verschiedene Eingabe-/Ausgabevorrichtungen). Zusätzlich können bei einigen Ausführungsformen eine oder mehrere der beispielhaften Komponenten in einer anderen Komponente integriert sein oder anderweitig einen Teil dieser bilden. Zum Beispiel können der Speicher 126 oder Teile davon bei einigen Ausführungsformen in den Prozessor 120 integriert sein.
  • Der Prozessor 120 kann als eine beliebige Art von Prozessor realisiert werden, der in der Lage ist, die hier beschriebenen Funktionen auszuführen. Der Prozessor 120 ist beispielsweise ein Mehrkernprozessor, obwohl bei anderen Ausführungsformen der Prozessor 120 als ein Einzel- oder Mehrkernprozessor(en), ein digitaler Signalprozessor, ein Mikrocontroller oder ein anderer Prozessor oder eine andere Verarbeitungs-/Steuerschaltung realisiert sein kann. Der beispielhafte Prozessor 120 umfasst mehrere Prozessorkerne 122, die jeweils eine unabhängige Vielzweck-Verarbeitungseinheit sind, die programmierte Anweisungen ausführen kann. Zum Beispiel kann jeder Prozessorkern 122 Anweisungen aus einer Vielzweck-Anweisungssatzarchitektur (ISA), wie etwa IA-32 oder Intel® 64, ausführen. Obwohl er mit einem Prozessorkern 122 dargestellt ist, kann der Prozessor 120 bei einigen Ausführungsformen eine größere Anzahl von Prozessorkernen 122 umfassen, zum Beispiel vier Prozessorkerne 122, vierzehn Prozessorkerne 122, achtundzwanzig Prozessorkerne 122 oder eine andere Anzahl. Obwohl sie als einen einzigen Prozessor 120 umfassend dargestellt ist, kann außerdem die Datenverarbeitungsvorrichtung 102 bei einigen Ausführungsformen als ein Mehrfach-Socket-Server mit mehreren Prozessoren 120 realisiert sein.
  • Der Speicher 126 kann als eine beliebige Art von flüchtigem oder nichtflüchtigem Speicher oder Datenspeicherung mit der Fähigkeit zum Ausführen der hier beschriebenen Funktionen realisiert werden. Im Betrieb kann der Speicher 126 verschiedene Daten und Software speichern, die während des Betriebs der Datenverarbeitungsvorrichtung 102 verwendet werden, wie etwa Betriebssysteme, Anwendungen, Programme, Bibliotheken und Treiber. Der Speicher 126 ist über das E/A-Subsystem 124, das als Schaltkreise und/oder Komponenten zur Ermöglichung von Eingabe-/Ausgabeoperationen mit dem Prozessor 120, dem Beschleuniger 134, dem Speicher 126 und anderen Komponenten der Datenverarbeitungsvorrichtung 102 realisiert sein kann, kommunikativ mit dem Prozessor 120 gekoppelt. Zum Beispiel kann das E/A-Subsystem 124 als Speichercontroller-Hubs, Eingabe-/Ausgabesteuer-Hubs, Sensor-Hubs, Firmware-Vorrichtungen, Kommunikationsverbindungen (d.h. Punkt-zu-Punkt-Verbindungen, Busverbindungen, Drähte, Kabel, Lichtleiter, Leiterplattenbahnen usw.) und/oder andere Komponenten und Subsysteme zur Ermöglichung der Eingabe-/Ausgabeoperationen realisiert sein oder diese anderweitig umfassen. Bei einigen Ausführungsformen kann das E/A-Subsystem 124 einen Teil eines SoC (System auf einem Chip) bilden und kann zusammen mit dem Prozessor 120, dem Speicher 126 und anderen Komponenten der Datenverarbeitungsvorrichtung 102 auf einem einzigen integrierten Schaltungschip integriert sein.
  • Die Datenspeicherungsvorrichtung 128 kann als eine beliebige Art von Vorrichtung oder Vorrichtungen realisiert sein, die für kurzfristige oder langfristige Speicherung von Daten ausgelegt sind, wie zum Beispiel Speichervorrichtungen und -schaltungen, Speicherkarten, Festplatten, Halbleiterlaufwerke, nichtflüchtiger Flash-Speicher oder andere Datenspeicherungsvorrichtungen. Die Datenverarbeitungsvorrichtung 102 umfasst außerdem das Kommunikationssubsystem 130, das als eine beliebige Kommunikationsschaltung, -vorrichtung oder Ansammlung davon mit der Fähigkeit zur Ermöglichung von Kommunikation zwischen der Datenverarbeitungsvorrichtung 102 und anderen entfernten Vorrichtungen über das Computernetzwerk 104 realisiert sein kann. Zum Beispiel kann das Kommunikationssubsystem 130 als eine Netzwerkschnittstellensteuerung (NIC) 132 oder eine andere Netzwerksteuerung zum Senden und/oder Empfangen von Netzwerkdaten mit entfernten Vorrichtungen realisiert sein oder diese anderweitig umfassen. Die NIC 132 kann als eine beliebige Netzwerkschnittstellenkarte, ein beliebiger Netzwerkadapter, eine beliebige Hostfabric-Schnittstelle, ein beliebiger Netzwerkcoprozessor oder eine beliebige andere Komponente realisiert sein, die die Datenverarbeitungsvorrichtung 102 mit dem Netzwerk 104 verbindet. Das Kommunikationssubsystem 130 kann dafür ausgelegt sein, eine beliebige oder mehrere Kommunikationstechnologien (z.B. verdrahtete oder drahtlose Kommunikation) und zugeordnete Protokolle (z.B. Ethernet, InfiniBand®, Bluetooth®, Wi-Fi®, WiMAX, 3G, 4G LTE usw.) zur Bewirkung solcher Kommunikation zu verwenden. Bei einigen Ausführungsformen kann das Kommunikationssubsystem 132 und/oder die NIC 132 einen Teil eines SoC bilden und zusammen mit dem Prozessor 120 und anderen Komponenten der Datenverarbeitungsvorrichtung 102 auf einem einzigen integrierten Schaltungschip integriert sein.
  • Wie in 1 gezeigt, kann die Datenverarbeitungsvorrichtung 102 auch den Beschleuniger 134 umfassen. Der Beschleuniger 134 kann als ein FPGA (Field-Programmable Gatearray), ein ASIC (anwendungsspezifische integrierte Schaltung), ein eingebetteter digitaler Logikblock, ein Coprozessor oder eine andere digitale Logikvorrichtung mit der Fähigkeit zum Ausführen von beschleunigten Netzwerkfunktionen realisiert sein. Obwohl er als getrennte Komponenten dargestellt ist, versteht sich, dass der Beschleuniger 134 bei einigen Ausführungsformen in die NIC 132 integriert oder anderweitig damit gekoppelt sein kann. Zusätzlich oder als Alternative kann der Beschleuniger 134 bei einigen Ausführungsformen als ein FPGA realisiert sein, das in einer Mehrchipkapselung mit dem Prozessor 120 und der NIC 132 enthalten ist. Der Beschleuniger 134 kann über mehrere Hochgeschwindigkeits-Verbindungsschnittstellen, darunter kohärente und/oder nicht kohärente Interconnects, mit dem Prozessor 120 und/oder der NIC 132 gekoppelt sein.
  • Die Datenverarbeitungsvorrichtung 102 kann ferner eine oder mehrere Peripherievorrichtungen 136 umfassen. Die Peripherievorrichtungen 136 können eine beliebige Anzahl von zusätzlichen Eingabe-/Ausgabevorrichtungen, Schnittstellenvorrichtungen und/oder anderen Peripherievorrichtungen umfassen. Zum Beispiel können die Peripherievorrichtungen 136 bei einigen Ausführungsformen einen Touchscreen, Grafikschaltkreise, eine Grafikverarbeitungseinheit (GPU) und/oder Prozessorgrafik, eine Audiovorrichtung, ein Mikrofon, eine Kamera, eine Tastatur, eine Maus, eine Netzwerkschnittstelle und/oder andere Eingabe-/Ausgabevorrichtungen, Schnittstellenvorrichtungen und/oder Peripherievorrichtungen umfassen.
  • Die Datenverarbeitungsvorrichtungen 102 können dafür ausgelegt sein, über das Netzwerk 104 Daten miteinander und/oder mit anderen Vorrichtungen des Systems 100 zu senden und zu empfangen. Das Netzwerk 104 kann als eine beliebige Anzahl von verschiedenen verdrahteten und/oder drahtlosen Netzwerken realisiert sein. Zum Beispiel kann das Netzwerk 104 als ein verdrahtetes oder drahtloses lokales Netzwerk (LAN) und/oder ein verdrahtetes oder drahtloses großflächiges Netzwerk (WAN) realisiert sein oder dieses anderweitig umfassen. Dementsprechend kann das Netzwerk 104 eine beliebige Anzahl zusätzlicher Vorrichtungen umfassen, wie etwa zusätzliche Computer, Router und Switches, um Kommunikation zwischen den Vorrichtungen des Systems 100 zu erleichtern. Bei der beispielhaften Ausführungsform ist das Netzwerk 104 als ein lokales Ethernet-Netzwerk realisiert.
  • Nunmehr mit Bezug auf 2 stellt bei einer beispielhaften Ausführungsform die Datenverarbeitungsvorrichtung 102 während des Betriebs eine Umgebung 200 her. Die beispielhafte Umgebung 200 umfasst eine Anwendung 202, eine Netzwerkstapelung 204, einen NIC-Treiber 206 und die NIC 132. Der NIC-Treiber 206 umfasst ferner einen Baummanager 208, einen NIC-Programmierer 210 und einen Baumaktualisierer 212. Die NIC 132 umfasst ferner einen Verkehrsformungs-Beschleuniger 216. Wie gezeigt, können die verschiedenen Komponenten der Umgebung 200 als Hardware, Mikrocode, Firmware, Software oder eine Kombination davon realisiert sein. Dementsprechend können bei einigen Ausführungsformen eine oder mehrere der Komponenten der Umgebung 200 als Schaltkreise oder Ansammlung elektrischer Vorrichtungen (z.B. Anwendungsschaltkreise 202, Netzwerkstapelschaltkreise 204, NIC-Treiberschaltkreise 206 und/oder Verkehrsformungs-Beschleunigerschaltkreise 216) realisiert sein. Es versteht sich, dass bei solchen Ausführungsformen einer oder mehrere von den Anwendungsschaltkreisen 202, den Netzwerkstapelschaltkreisen 204, den NIC-Treiberschaltkreisen 206 und/oder den Verkehrsformungs-Beschleunigerschaltkreisen 216 einen Teil des Prozessors 120, der NIC 132, des Beschleunigers 134, des E/A-Subsystems 124 und/oder anderer Komponenten der Datenverarbeitungsvorrichtung 102 bilden können. Bei der beispielhaften Ausführungsform werden die Anwendung 202, der Netzwerkstapel 204 und der NIC-Treiber 206 durch einen oder mehrere Prozessorkerne 122 des Prozessors 120 ausgeführt, und der Verkehrsformungs-Beschleuniger 216 ist als Hardware, Firmware, Mikrocode oder andere Ressourcen der NIC 132 realisiert. Zusätzlich oder als Alternative kann bei einigen Ausführungsformen der Verkehrsformungs-Beschleuniger 216 als ein oder mehrere selbstständige Beschleuniger 134 realisiert sein oder anderweitig darin enthalten sein. Zusätzlich können bei einigen Ausführungsformen einige oder mehrere der beispielhaften Komponenten einen Teil einer anderen Komponente bilden und/oder eine oder mehrere der beispielhaften Komponenten können unabhängig voneinander sein.
  • Die Anwendung 202 kann dafür ausgelegt sein, Netzwerkdaten zur Übertragung zu erzeugen und/oder empfangene Netzwerkdaten zu verarbeiten. Zum Beispiel kann die Anwendung 202 Paketdaten in einem oder mehreren Anwendungspuffern in dem Speicher 126 speichern. Die Anwendung 202 kann als ein beliebiger Client, ein beliebiger Server oder eine beliebige andere Netzwerkanwendung, die durch die Datenverarbeitungsvorrichtung 102 ausgeführt wird, realisiert sein. Bei einigen Ausführungsformen kann die Anwendung 202 als eine virtualisierte Arbeitslast, wie etwa eine virtuelle Maschine, realisiert sein. Eine virtuelle Maschine (VM) kann ein teilweise oder vollständig emuliertes Computersystem umfassen, darunter ein Gast-Betriebssystem und eine oder mehrere Netzwerkwarteschlangen. Die VM kann unter Verwendung von Virtualisierungs-Hardwareunterstützung der Datenverarbeitungsvorrichtung 102, darunter virtualisierte E/A-Unterstützung des Prozessors 120 und/oder der NIC 132, ausgeführt werden. Bei einigen Ausführungsformen kann jede VM auf eine dedizierte virtuelle Funktion der NIC 132 zugreifen, zum Beispiel in einem Modus der Einzel-Wurzel-E/A-Virtualisierung (SR-IOV).
  • Der Netzwerkstapel 204 ist dafür ausgelegt, Dienstgüte- bzw. QoS-Parameter zu erzeugen und diese QoS-Parameter dem NIC-Treiber 206 bereitzustellen. Zu den QoS-Parametern können Bandbreitengrenzen, Bandbreitengarantien oder andere QoS-Parameter gehören. Der Netzwerkstapel 204 ist ferner dafür ausgelegt, Assoziationen zwischen QoS-Parametern und QoS-Entitäten, wie etwa Warteschlangen, virtuelle Maschinen, Verkehrsklassen oder anderen Entitäten, herzustellen. Ein Netzwerkstapel 204 ist dafür ausgelegt, dem NIC-Treiber 206 die Assoziationen bereitzustellen.
  • Der Baummanager 208 ist dafür ausgelegt, für jeden QoS-Parameter in einer geteilten Schicht eines QoS-Baums 214 einen QoS-Knoten zu erzeugen. Der QoS-Baum 214 wird durch den NIC-Treibe 206 unterhalten, zum Beispiel in dem Speicher 126, und kann eine Kopie eines Scheduler-Baums 218 der NIC 132 sein, der nachfolgend weiter beschrieben wird. Der Baummanager 208 ist dafür ausgelegt, anfänglich den Status jedes QoS-Knotens auf exklusiv zu setzen und während der Erzeugung einen jedem QoS-Knoten zugeordneten Zeitstempel zu erzeugen. Der Baummanager 208 kann ferner dafür ausgelegt sein, Assoziationen zwischen QoS-Parametern und QoS-Entitäten zu empfangen, zu bestimmen, ob ein QoS-Parameter mehreren QoS-Entitäten zugeordnet ist, und wenn dem so ist, den Status dieses ersten QoS-Knotens auf geteilt zu setzen.
  • Der NIC-Programmierer 210 ist dafür ausgelegt, die NIC 132 mit einem QoS-Knoten für den QoS-Parameter in einer geteilten Schicht des Scheduler-Baums 218 zu programmieren. Der Scheduler-Baum 218 kann als Speicher, Tabellen, Register oder andere programmierbare Speicherung der NIC 132 realisiert sein. Wie nachfolgend ausführlicher beschrieben wird, kann die NIC 132 Verkehrsformung oder andere QoS-Operationen auf der Basis des Scheduler-Baums ausführen. Der Scheduler-Baum 218 kann mehrere QoS-Knoten umfassen, die zu Schichten organisiert sind, die jeweils geteilt oder exklusiv sein können. Zum Beispiel kann bei einer Ausführungsform die geteilte Schicht eine Virtuellmaschinen-Teilschicht sein und die exklusive Schicht kann eine Virtuellmaschinenschicht sein. Als ein anderes Beispiel kann die geteilte Schicht eine Warteschlangenteilschicht sein, und die exklusive Schicht kann eine Warteschlangenschicht sein. Die Knoten des Scheduler-Baums 218 können nach oben hin von einer Wurzel entsprechend dem Netzwerkport der NIC 132 herauf zu Blattknoten organisiert sein, die einzelnen Warteschlangen entsprechen. Während der Baum von dem Blatt zur Wurzel durchquert wird, verringert sich die Anzahl der Knoten, zum Beispiel um einen Faktor 4 oder 2. Somit kann die NIC 132 Unterstützung für mehr exklusive Knoten als geteilte Knoten umfassen.
  • Der Baumaktualisierer 212 ist dafür ausgelegt, zu bestimmen, ob eine Anzahl verfügbarer Knoten in einer geteilten Schicht des QoS-Baums 214 eine vorbestimmte Beziehung zu einer vorbestimmten Schwelle (z.B. die Hälfte der Gesamtknoten in der geteilten Schicht) aufweist (z.B. kleiner als, kleiner oder gleich usw.) aufweist. Jede geteilte Schicht kann einer bestimmten vorbestimmten Schwelle zugeordnet sein. Der Baumaktualisierer 212 kann ferner dafür ausgelegt sein, wenn die Anzahl verfügbarer Knoten die vorbestimmte Beziehung zu der vorbestimmten Schwelle aufweist, Kandidatenknoten in der geteilten Schicht zu identifizieren, deren Status auf exklusiv gesetzt ist, und von diesen Kandidatenknoten einen ältesten Kandidatenknoten auf der Basis der zugeordneten Zeitstempel zu identifizieren. Der Baumaktualisierer 212 ist ferner dafür ausgelegt, den identifizierten Knoten in eine exklusive Schicht des QoS-Baums 214 und den entsprechenden Knoten des Scheduler-Baums 218 zu einer exklusiven Schicht des Scheduler-Baums 218 zu bewegen. Das Bewegen des Knotens zu der exklusiven Schicht kann Programmieren der NIC 132 mit einem Knoten für den entsprechenden QoS-Parameter in der exklusiven Schicht des Scheduler-Baums 218 und Freigeben des Knotens aus der geteilten Schicht des Scheduler-Baums 218 umfassen. Die vorbestimmte Schwelle umfasst eine Hälfte von Gesamtknoten der geteilten Schicht.
  • Der Verkehrsformungs-Beschleuniger 216 ist dafür ausgelegt, Netzwerkverkehr der Datenverarbeitungsvorrichtung auf der Basis des Scheduler-Baums 218 als Reaktion auf Programmierung der NIC 132 zu formen. Wie oben beschrieben sind die Scheduling-Knoten als ein Scheduler-Baum 218 angeordnet. Scheduler-Guthaben fließen in dem Scheduler-Baum 218 nach oben. Wenn eine Entität (z.B. eine Warteschlange, eine VM oder eine Verkehrsklasse), die einem Scheduler-Knoten zugeordnet ist, Guthaben aufweist, kann die Entität Verkehr proportional zum Guthaben senden.
  • Nunmehr mit Bezug auf 3 kann im Gebrauch die Datenverarbeitungsvorrichtung 102 ein Verfahren 300 zum Programmieren von QoS-Beschleunigung ausführen. Es versteht sich, dass bei einigen Ausführungsformen die Operationen des Verfahrens 300 durch eine oder mehrere Komponenten der Umgebung 200 der Datenverarbeitungsvorrichtung 102 wie in 2 gezeigt ausgeführt werden können. Das Verfahren 300 beginnt in Block 302, in dem die Datenverarbeitungsvorrichtung 102 einen oder mehrere Dienstgüte- bzw. QoS-Parameter von dem Netzwerkstapel 204 empfängt. Zum Beispiel können die QoS-parameter durch den NIC-Treiber 206 empfangen werden. Die QoS-Parameter können als eine Bandbreitengrenze, eine Bandbreitengarantie oder ein anderer QoS-Parameter, der durch den Netzwerkstapel 204 spezifiziert wird, realisiert sein. In Block 304 empfängt die Datenverarbeitungsvorrichtung 102 eine Assoziation des QoS-Parameters mit einer Entität von dem Netzwerkstapel 204. Der QoS-Parameter kann exklusiv oder unter mehreren Entitäten, wie etwa Warteschlangen, virtuellen Maschinen (VM) oder Verkehrsklassen, geteilt sein. Die QoS-Parameter können letztendlich von einer oder mehreren Dienstniveauvereinbarungen (SLA) abhängen, die mit einem Kunden oder anderen Benutzern der Datenverarbeitungsvorrichtung 102 gelten. Zum Beispiel kann ein QoS-Parameter wie eine Bandbreitengrenze von allen VM von einem bestimmten Kunden, die durch die Datenverarbeitungsvorrichtung 102 ausgeführt werden, geteilt werden. VM können jedoch durch einen Fabric-Orchestrierer oder eine andere Steuerebenenentität zur Ausführung auf der Datenverarbeitungsvorrichtung 102 migriert oder anderweitig eingeteilt werden. Somit kann dem NIC-Treiber 206 nicht bewusst sein, ob ein QoS-Parameter geteilt oder exklusiv ist, wenn er von dem Netzwerkstapel 204 empfangen wird.
  • In Block 306 aktualisiert die Datenverarbeitungsvorrichtung 102 den QoS-Baum 214, der durch den NIC-Treiber 206 unterhalten wird, mit dem hinzugefügten QoS-Parameter in einer geteilten Schicht. Die Datenverarbeitungsvorrichtung 102 kann zum Beispiel einen neuen Knoten in den QoS-Baum 214 einfügen, der dem hinzugefügten QoS-Parameter entspricht. Da an diesem Punkt unbekannt ist, ob der Knoten mit mehreren Entitäten geteilt sein kann, wird der Knoten in einer geteilten Schicht eingefügt, wie etwa einer Warteschlangenteilschicht, VM-Teilschicht oder VM-Teil-Aggregatorschicht des QoS-Baums 214. In Block 308 setzt die Datenverarbeitungsvorrichtung 102 das Anfangs-Status-Flag des Knotens auf exklusiv. Das Status-Flag kann als ein Bit oder ein anderer Boole'scher Wert realisiert sein, das bzw. der angibt, ob der Knoten geteilt oder exklusiv ist. Standardmäßig werden Knoten somit in eine geteilte Schicht eingefügt, aber als exklusiv markiert. In Block 310 setzt die Datenverarbeitungsvorrichtung 102 einen Zeitstempel für den neu hinzugefügten Knoten. Der Zeitstempel kann zum Beispiel als der Zeitpunkt des Hinzufügens des Knotens zu dem QoS-Baum 214 gesetzt werden.
  • In Block 312 kann die Datenverarbeitungsvorrichtung 102 den Status eines QoS-Knotens in dem Treiber-QoS-Baum 214 auf geteilt setzen, wenn dieser Knoten mehreren Entitäten zugeordnet ist. Zum Beispiel kann die Datenverarbeitungsvorrichtung 102 bestimmen, dass ein QoS-Parameter von mehreren VM (z.B. VM vom selben Kunden oder einem anderen Benutzer) geteilt wird. In diesem Beispiel kann die Datenverarbeitungsvorrichtung 102 das Statusbit des QoS-Knotens in dem QoS-Baum 214, das diesem QoS-Parameter entspricht, auf geteilt setzen.
  • In Block 314 programmiert die Datenverarbeitungsvorrichtung 102 den Scheduler-Baum 218 der NIC 132 mit einem QoS-Knoten für den hinzugefügten QoS-Parameter in einer geteilten Schicht. Die Datenverarbeitungsvorrichtung 102 programmiert den Scheduler-Baum 218 mit einem Knoten, der dem Knoten entspricht, der zu dem QoS-Baum 214 hinzugefügt wird. Somit kann der QoS-Baum 214 eine Kopie der Inhalte des Scheduler-Baums 218 sein. Bei einigen Ausführungsformen kann die Datenverarbeitungsvorrichtung 102 in Block 316 den Knoten auf eine Schicht n - 1 programmieren. Wie oben beschrieben umfasst der Scheduler-Baum 218 Knoten, die in Schichten von einem Wurzelknoten zu den Blattknoten angeordnet sind. Somit kann jede Schicht durch eine Tiefe vom Wurzelknoten (z.B. Tiefe n - 1) beschrieben werden. Nach dem Programmieren des NIC-Scheduler-Baums 218 kehrt das Verfahren 300 in einer Schleife zu Block 302 zurück, um die Verarbeitung von QoS-Parametern fortzusetzen.
  • Nunmehr mit Bezug auf 4 kann im Gebrauch die Datenverarbeitungsvorrichtung 102 ein Verfahren 400 zum Optimieren von QoS-Beschleunigung ausführen. Es versteht sich, dass bei einigen Ausführungsformen die Operationen des Verfahrens 400 durch eine oder mehrere Komponenten der Umgebung 200 der Datenverarbeitungsvorrichtung 102 wie in 2 gezeigt ausgeführt werden können. Das Verfahren 400 kann periodisch, kontinuierlich oder reagierend durch die Datenverarbeitungsvorrichtung 102 ausgeführt werden. Zum Beispiel kann das Verfahren 400 in einem Timer-Thread oder einem anderen Wartungs-Thread ausgeführt werden, der durch den NIC-Treiber 206 ausgeführt wird. Als ein anderes Beispiel kann ein Verfahren 400 als Reaktion auf bestimmte Ereignisse, wie etwa Programmieren von Knoten in den Scheduler-Baum 218 der NIC 132, ausgeführt werden. Das Verfahren 400 beginnt in Block 402, in dem die Datenverarbeitungsvorrichtung 102 die Anzahl verfügbarer QoS-Knoten in einer geteilten Schicht des Treiber-QoS-Baums 214 mit einer vorbestimmten Schwelle vergleicht. Die vorbestimmte Schwelle kann ein beliebiger Anteil oder eine andere Menge verfügbarer Knoten sein, wodurch angegeben wird, dass ein Mangel an geteilten Knoten bestehen kann. Zum Beispiel kann die Schwelle die Hälfte der gesamten Knoten einer bestimmten geteilten Schicht des QoS-Baums 214 sein. In Block 404 bestimmt die Datenverarbeitungsvorrichtung 102, ob die Anzahl verfügbarer QoS-Knoten kleiner als die vorbestimmte Schwelle ist (oder anderweitig eine vorbestimmte Beziehung zur Schwelle aufweist). Wenn nicht, kehrt das Verfahren 400 in einer Schleife zu Block 402 zurück, um das Optimieren der QoS-Beschleunigung fortzusetzen. Wenn die Anzahl verfügbarer QoS-Knoten kleiner als die Schwelle ist, schreitet das Verfahren 400 zu Block 406.
  • In Block 406 findet die Datenverarbeitungsvorrichtung 102 alle QoS-Knoten in einer geteilten Schicht n - 1 mit auf exklusiv gesetztem Status. Wie oben beschrieben kann die geteilte Schicht eine Warteschlangen-Teilschicht, eine VM-Teilschicht, eine VM-Teil-Aggregatorschicht oder eine andere geteilte Schicht des QoS-Baums 214 sein. In Block 408 bestimmt die Datenverarbeitungsvorrichtung 102, ob irgendwelche exklusiven QoS-Knoten gefunden wurden. Wenn nicht, kehrt das Verfahren 400 in einer Schleife zu Block 402 zurück, um das Optimieren der QoS-Beschleunigung fortzusetzen. Wenn exklusive QoS-Knoten gefunden wurden, schreitet das Verfahren 400 zu Block 410.
  • In Block 410 findet die Datenverarbeitungsvorrichtung 102 den ältesten exklusiven QoS-Knoten in der geteilten Schicht n - 1 unter Verwendung der jedem QoS-Knoten zugeordneten Zeitstempel. In Block 412 programmiert die Datenverarbeitungsvorrichtung 102 den Scheduler-Baum 218 der NIC 132 mit einem QoS-Knoten, der dem ältesten exklusiven QoS-Knoten entspricht, in eine exklusive Schicht des Scheduler-Baums 218. Zum Beispiel kann die Datenverarbeitungsvorrichtung 102 den neuen Knoten in eine Warteschlangenschicht, eine VM-Schicht oder eine andere exklusive Schicht des Scheduler-Baums 218 programmieren. Der in der exklusiven Schicht des Scheduler-Baums 218 erzeugte Knoten entspricht somit denselben QoS-Parametern und Entitäten des zuvor in der geteilten Schicht erzeugten Knotens. Bei einigen Ausführungsformen kann in Block 410 die Datenverarbeitungsvorrichtung 102 den neuen QoS-Knoten in eine Schicht n des Scheduler-Baums 218 programmieren. Wie oben beschrieben ist die geteilte Schicht die Schicht n - 1, und somit ist die Schicht n eine Schicht weiter von der Wurzel des Scheduler-Baums entfernt. Die Schicht n kann mehr verfügbare Knoten als die Schicht n - 1 aufweisen (z.B. zwei- oder viermal so viele Knoten).
  • In Block 416 programmiert die Datenverarbeitungsvorrichtung 102 den Scheduler-Baum 218 der NIC 132, um einen dem ältesten exklusiven QoS-Knoten entsprechenden Knoten aus der geteilten Schicht freizugeben. Freigeben des Knotens kann den Knoten zur Verwendung zum Scheduling geteilter Entitäten befreien. Bei einigen Ausführungsformen kann in Block 418 die Datenverarbeitungsvorrichtung 102 den Knoten in der Schicht n - 1 des Scheduler-Baums 218 freigeben.
  • In Block 420 bewegt die Datenverarbeitungsvorrichtung 102 den ältesten in dem Treiber-QoS-Baum 214 gefundenen exklusiven Knoten zu einer exklusiven Schicht. Nach dem Bewegen des Knotens kann der QoS-Baum 214 eine Kopie des Scheduler-Baums 218 der NIC 132 sein. Bei einigen Ausführungsformen kann die Datenverarbeitungsvorrichtung 102 in Block 422 den Knoten von Schicht n - 1 zu Schicht n bewegen. Nach der Aktualisierung des QoS-Baums 214 kehrt das Verfahren 400 in einer Schleife zu Block 402 zurück, um das Optimieren der QoS-Beschleunigung fortzusetzen. Bei einigen Ausführungsformen kann des Verfahren 400 rekursiv oder anderweitig an mehreren verschiedenen Knoten und/oder Schichten des Treiber-QoS-Baums 214 wiederholt ausgeführt werden. Zum Beispiel kann das Verfahren 400 wiederholt ausgeführt werden, bis die Anzahl der in der geteilten Schicht verfügbaren QoS-Knoten über der Schwelle liegt. Als ein anderes Beispiel kann das Verfahren 400 rekursiv, gleichzeitig oder anderweitig wiederholt für jede geteilte Schicht des QoS-Baums 214 ausgeführt werden.
  • Nunmehr mit Bezug auf 5 zeigt die Darstellung 500 einen Scheduler-Baum 218, der in die NIC 132 programmiert werden kann. Wie gezeigt umfasst, von der Wurzel zu den Blattknoten angeordnet, der Scheduler-Baum 218 eine PortSchicht 502, eine VM-Teil-Aggregatorschicht 504, eine VM-Teil-Schicht 506, eine VM-Schicht 508 und eine Warteschlangenschicht 510. Bei der beispielhaften Ausführungsform ist die VM-Schicht 508 eine exklusive Schicht, und die VM-Teil-Schicht 506 und die VM-Teil-Aggregatorschicht 504 sind geteilte Schichten. Natürlich kann der Scheduler-Baum 218 bei anderen Ausführungsformen eine andere Anzahl und/oder Anordnung von Schichten umfassen, wie etwa eine Warteschlangen-Teil-Schicht. Die Portschicht 502 umfasst einen Knoten 512, die VM-Teil-Aggregatorschicht 504 umfasst Knoten 514, die VM-Teil-Schicht 506 umfasst Knoten 516, die VM-Schicht 508 umfasst Knoten 518 und die Warteschlangenschicht 510 umfasst Knoten 520.
  • 5 zeigt eine potentielle Ausführungsform des Scheduler-Baums 218 nach Konfiguration mit mehreren Knoten, wie im Zusammenhang mit 3 beschrieben, aber vor Optimierung, wie im Zusammenhang mit 4 beschrieben. Beispielsweise wurden QoS-Knoten für die VM 522a, 522b, 522c, 522d, 522e in den Scheduler-Baum 218 programmiert. In dem Anschauungsbeispiel sind die VM 522a, 522b, 522c nichtgeteilte Entitäten, und die VM 522d, 522e sind geteilt. Wie gezeigt werden die VM 522a, 522b, 522c anfänglich jeweils unter Verwendung von geteilten Knoten, insbesondere geteilten Knoten 516a, 516b, 516c, zu dem Scheduler-Baum 218 hinzugefügt. Die VM 522d, 522e, die dem NIC-Treiber 206 als geteilte Entitäten bekannt sein können, wurden unter Verwendung eines geteilten Knotens 516d hinzugefügt.
  • Nunmehr mit Bezug auf 6 zeigt die Darstellung 600 den Scheduler-Baum 218 der NIC 132 nach der Durchführung von Optimierung wie oben im Zusammenhang mit 4 beschrieben. Da die VM 522a, 522b, 522c nichtgeteilte Entitäten sind, wurden wie gezeigt die Knoten 516b, 516c in der VM-Teil-Schicht 506 freigegeben. Die entsprechenden QoS-Knoten für diese VM 522a, 522b, 522c können stattdessen in der VM-Schicht 508 jeweils als Knoten 518a, 518b, 518c erzeugt werden. Da die Anzahl der in der VM-Teil-Schicht 506 verwendeten Knoten verringert wurde, wurde ähnlich der Knoten 514b in der VM-Teil-Aggregatorschicht 504 auch freigegeben. Das Freigeben geteilter Knoten, wie in 6 gezeigt, verringert den Ressourcenverbrauch und kann es der NIC 132 erlauben, eine größere Anzahl von Entitäten (geteilt und/oder exklusiv) zu unterstützen.
  • Es versteht sich, dass bei einigen Ausführungsformen die Verfahren 300 und/oder als verschiedene Anweisungen realisiert werden können, die auf einem computerlesbaren Medium gespeichert werden, die durch den Prozessor 120, die NIC 132, den Beschleuniger 134 und/oder andere Komponenten der Datenverarbeitungsvorrichtung 102 ausgeführt werden können, um zu bewirken, dass die Datenverarbeitungsvorrichtung 102 das jeweilige Verfahren 300 und/oder 400 ausführt. Das computerlesbare Medium kann als eine beliebige Art von Medium realisiert werden, das durch die Datenverarbeitungsvorrichtung 102 gelesen werden kann, darunter, aber ohne Beschränkung darauf, der Speicher 126, die Datenspeicherungsvorrichtung 128, Firmware-Vorrichtungen, Mikrocode, andere Speicher- oder Datenspeicherungsvorrichtungen der Datenverarbeitungsvorrichtung 102, durch eine Peripherievorrichtung 136 der Datenverarbeitungsvorrichtung 102 lesbare tragbare Medien und/oder andere Medien.
  • BEISPIELE
  • Anschauungsbeispiele für die hier offenbarten Technologien werden nachfolgend bereitgestellt. Eine Ausführungsform der Technologien kann eines oder mehrere und eine beliebige Kombination der nachfolgend beschriebenen Beispiele umfassen.
  • Beispiel 1 umfasst eine Datenverarbeitungvorrichtung zum Konfigurieren von Netzwerk-Dienstgüteparametern, wobei die Datenverarbeitungsvorrichtung Folgendes umfasst: eine Netzwerksteuerung, die einen Scheduler-Baum umfasst; einen Treiber-Baummanager zum Erzeugen eines ersten QoS-Knotens für einen QoS-Parameter in einer geteilten Schicht eines Treiber-QoS-Baums; einen Netzwerksteuerungs-Programmierer zum Programmieren der Netzwerksteuerung mit einem zweiten QoS-Knoten für den QoS-Parameter in einer geteilten Schicht des Scheduler-Baums; und einen Treiber-Baumaktualisierer zum (i) Bestimmen, ob eine Anzahl verfügbarer Knoten in der geteilten Schicht des Treiber-QoS-Baums eine vorbestimmte Beziehung zu einer vorbestimmten Schwelle aufweist, als Reaktion auf Programmierung der Netzwerksteuerung, wobei die vorbestimmte Schwelle der geteilten Schicht des Treiber-QoS-Baums zugeordnet ist; und (ii) Bewegen des zweiten QoS-Knotens zu einer exklusiven Schicht des Scheduler-Baums der Netzwerksteuerung und Bewegen des ersten QoS-Knotens zu einer exklusiven Schicht des Treiber-QoS-Baums als Reaktion auf eine Bestimmung, dass die Anzahl verfügbarer Knoten die vorbestimmte Beziehung zu der vorbestimmten Schwelle aufweist.
  • Beispiel 2 umfasst den Gegenstand von Beispiel 1, und wobei der Treiber-Baumaktualisierer ferner Folgendes soll: Identifizieren mehrerer Kandidatenknoten in der geteilten Schicht des Treiber-QoS-Baums als Reaktion auf die Bestimmung, dass die Anzahl verfügbarer Knoten die vorbestimmte Beziehung zu der vorbestimmten Schwelle aufweist, wobei jeder der mehreren Kandidatenknoten einen auf exklusiv gesetzten Status aufweist und wobei die mehreren Kandidatenknoten den ersten QoS-Knoten umfassen; wobei Bewegen des Ersten-QoS-Knotens zu der exklusiven Schicht Bewegen des ersten QoS-Knotens zu der exklusiven Schicht als Reaktion auf Identifikation der mehreren Kandidatenknoten umfasst.
  • Beispiel 3 umfasst den Gegenstand eines der Beispiele 1 und 2, und wobei der Treiber-Baumaktualisierer ferner Folgendes soll: Identifizieren eines ältesten Kandidatenknotens der mehreren Kandidatenknoten, wobei jeder der mehreren Kandidatenknoten einem Zeitstempel zugeordnet ist und wobei der älteste Kandidatenknoten den ersten QoS-Knoten umfasst; wobei Erzeugen des ersten QoS-Knotens Erzeugen des dem ersten QoS-Knoten zugeordneten Zeitstempels umfasst.
  • Beispiel 4 umfasst den Gegenstand eines der Beispiele 1-3, und wobei Bewegen des zweiten QoS-Knotens zu der exklusiven Schicht Folgendes umfasst: Programmieren der Netzwerksteuerung mit einem dritten QoS-Knoten für den QoS-Parameter in der exklusiven Schicht des Scheduler-Baums; und Programmieren der Netzwerksteuerung zum Freigeben des zweiten QoS-Knotens aus der geteilten Schicht des Scheduler-Baums.
  • Beispiel 5 umfasst den Gegenstand eines der Beispiele 1-4, und wobei der Treiber-Baummanager ferner eine Zuordnung zwischen dem QoS-Parameter und einer QoS-Entität empfangen soll, wobei die QoS-Entität eine Warteschlange, eine virtuelle Maschine oder eine Verkehrsklasse umfasst.
  • Beispiel 6 umfasst den Gegenstand eines der Beispiele 1-5, und wobei Erzeugen des ersten QoS-Knotens Setzen eines Status des ersten QoS-Knotens auf exklusiv umfasst; und der Treiber-Baummanager ferner Folgendes soll: Bestimmen, ob der QoS-Parameter mehreren QoS-Entitäten zugeordnet ist; und Setzen des Status des ersten QoS-Knotens auf geteilt als Reaktion auf eine Bestimmung, dass der QoS-Parameter mehreren QoS-Entitäten zugeordnet ist.
  • Beispiel 7 umfasst den Gegenstand eines der Beispiele 1-6, und wobei der QoS-Parameter eine Bandbreitengrenze oder eine Bandbreitengarantie umfasst.
  • Beispiel 8 umfasst den Gegenstand eines der Beispiele 1-7, und wobei die geteilte Schicht eine Virtuellmaschinen-Teil-Schicht umfasst und wobei die exklusive Schicht eine Virtuellmaschinenschicht umfasst.
  • Beispiel 9 umfasst den Gegenstand eines der Beispiele 1-8, und wobei die geteilte Schicht eine Warteschlangen-Teil-Schicht umfasst und wobei die exklusive Schicht eine Warteschlangenschicht umfasst.
  • Beispiel 10 umfasst den Gegenstand eines der Beispiele 1-9, und wobei die vorbestimmte Schwelle eine Hälfte von Gesamtknoten der geteilten Schicht umfasst.
  • Beispiel 11 umfasst den Gegenstand eines der Beispiele 1-10, und wobei die Netzwerksteuerung einen Verkehrsformungs-Beschleuniger zum Formen von Netzwerkverkehr der Datenverarbeitungsvorrichtung auf der Basis des Scheduler-Baums als Reaktion auf Programmierung der Netzwerksteuerung umfasst.
  • Beispiel 12 umfasst ein Verfahren zum Konfigurieren von Netzwerk-Dienstgüteparametern, wobei das Verfahren Folgendes umfasst: Erzeugen eines ersten QoS-Knotens für einen QoS-Parameter in einer geteilten Schicht eines Treiber-QoS-Baums durch die Datenverarbeitungsvorrichtung; Programmieren einer Netzwerksteuerung der Datenverarbeitungsvorrichtung durch die Datenverarbeitungsvorrichtung mit einem zweiten QoS-Knoten für den QoS-Parameter in einer geteilten Schicht eines Scheduler-Baums der Netzwerksteuerung; Bestimmen durch die Datenverarbeitungsvorrichtung, ob eine Anzahl verfügbarer Knoten in der geteilten Schicht des Treiber-QoS-Baums eine vorbestimmte Beziehung zu einer vorbestimmten Schwelle aufweist, als Reaktion auf Programmierung der Netzwerksteuerung, wobei die vorbestimmte Schwelle der geteilten Schicht des Treiber-QoS-Baums zugeordnet ist; und als Reaktion auf Bestimmung, dass die Anzahl verfügbarer Knoten die vorbestimmte Beziehung zu der vorbestimmten Schwelle aufweist: Bewegen des zweiten QoS-Knotens durch die Datenverarbeitungsvorrichtung zu einer exklusiven Schicht des Scheduler-Baums der Netzwerksteuerung; und Bewegen des ersten QoS-Knotens durch die Datenverarbeitungsvorrichtung zu einer exklusiven Schicht des Treiber-QoS-Baums.
  • Beispiel 13 umfasst den Gegenstand von Beispiel 12, und umfasst ferner: Identifizieren mehrerer Kandidatenknoten in der geteilten Schicht des Treiber-QoS-Baums durch die Datenverarbeitungsvorrichtung als Reaktion auf die Bestimmung, dass die Anzahl verfügbarer Knoten die vorbestimmte Beziehung zu der vorbestimmten Schwelle aufweist, wobei jeder der mehreren Kandidatenknoten einen auf exklusiv gesetzten Status aufweist und wobei die mehreren Kandidatenknoten den ersten QoS-Knoten umfassen; wobei Bewegen des Ersten-QoS-Knotens zu der exklusiven Schicht Bewegen des ersten QoS-Knotens zu der exklusiven Schicht als Reaktion auf Identifikation der mehreren Kandidatenknoten umfasst.
  • Beispiel 14 umfasst den Gegenstand eines der Beispiele 12 und 13, und umfasst ferner: Identifizieren eines ältesten Kandidatenknoten der mehreren Kandidatenknoten durch die Datenverarbeitungsvorrichtung, wobei jeder der mehreren Kandidatenknoten einem Zeitstempel zugeordnet ist und wobei der älteste Kandidatenknoten den ersten QoS-Knoten umfasst; wobei Erzeugen des ersten QoS-Knotens Erzeugen des dem ersten QoS-Knoten zugeordneten Zeitstempels umfasst.
  • Beispiel 15 umfasst den Gegenstand eines der Beispiele 12-14, und wobei Bewegen des zweiten QoS-Knotens zu der exklusiven Schicht Folgendes umfasst: Programmieren der Netzwerksteuerung mit einem dritten QoS-Knoten für den QoS-Parameter in der exklusiven Schicht des Scheduler-Baums; und Programmieren der Netzwerksteuerung zum Freigeben des zweiten QoS-Knotens aus der geteilten Schicht des Scheduler-Baums.
  • Beispiel 16 umfasst den Gegenstand eines der Beispiele 12-15, und umfasst ferner: Empfangen einer Zuordnung zwischen dem QoS-Parameter und einer QoS-Entität durch die Datenverarbeitungsvorrichtung, wobei die QoS-Entität eine Warteschlange, eine virtuelle Maschine oder eine Verkehrsklasse umfasst.
  • Beispiel 17 umfasst den Gegenstand eines der Beispiele 12-16, und umfasst ferner: Bestimmen durch die Datenverarbeitungsvorrichtung, ob der QoS-Parameter mehreren QoS-Entitäten zugeordnet ist; und Setzen eines Status des ersten QoS-Knotens auf geteilt durch die Datenverarbeitungsvorrichtung als Reaktion auf Bestimmung, dass der QoS-Parameter mehreren QoS-Entitäten zugeordnet ist; wobei Erzeugen des ersten QoS-Knotens Setzen des Status des ersten QoS-Knotens auf exklusiv umfasst.
  • Beispiel 18 umfasst den Gegenstand eines der Beispiele 12-17, und wobei der QoS-Parameter eine Bandbreitengrenze oder eine Bandbreitengarantie umfasst.
  • Beispiel 19 umfasst den Gegenstand eines der Beispiele 12-18, und wobei die geteilte Schicht eine Virtuellmaschinen-Teil-Schicht umfasst und wobei die exklusive Schicht eine Virtuellmaschinenschicht umfasst.
  • Beispiel 20 umfasst den Gegenstand eines der Beispiele 12-19, und wobei die geteilte Schicht eine Warteschlangen-Teil-Schicht umfasst und wobei die exklusive Schicht eine Warteschlangenschicht umfasst.
  • Beispiel 21 umfasst den Gegenstand eines der Beispiele 12-20, und wobei die vorbestimmte Schwelle eine Hälfte von Gesamtknoten der geteilten Schicht umfasst.
  • Beispiel 22 umfasst den Gegenstand eines der Beispiele 12-21, und umfasst ferner Formen von Netzwerkverkehr der Datenverarbeitungsvorrichtung durch die Netzwerksteuerung auf der Basis des Scheduler-Baums als Reaktion auf Programmierung der Netzwerksteuerung.
  • Beispiel 23 umfasst ein oder mehrere computerlesbare Speicherungsmedien, die darauf gespeichert mehrere Anweisungen umfassen, die, wenn sie ausgeführt werden, eine Datenverarbeitungsvorrichtung zu Folgendem veranlassen: Erzeugen eines ersten QoS-Knotens für einen QoS-Parameter in einer geteilten Schicht eines Treiber-QoS-Baums; Programmieren einer Netzwerksteuerung der Datenverarbeitungsvorrichtung mit einem zweiten QoS-Knoten für den QoS-Parameter in einer geteilten Schicht eines Scheduler-Baums der Netzwerksteuerung, Bestimmen, ob eine Anzahl verfügbarer Knoten in der geteilten Schicht des Treiber-QoS-Baums eine vorbestimmte Beziehung zu einer vorbestimmten Schwelle aufweist, als Reaktion auf Programmierung der Netzwerksteuerung, wobei die vorbestimmte Schwelle der geteilten Schicht des Treiber-QoS-Baums zugeordnet ist; und Bewegen des zweiten QoS-Knotens zu einer exklusiven Schicht des Scheduler-Baums der Netzwerksteuerung und Bewegen des ersten QoS-Knotens zu einer exklusiven Schicht des Treiber-QoS-Baums als Reaktion auf eine Bestimmung, dass die Anzahl verfügbarer Knoten die vorbestimmte Beziehung zu der vorbestimmten Schwelle aufweist.
  • Beispiel 24 umfasst den Gegenstand von Beispiel 23, und umfasst ferner mehrere darauf gespeicherte Anweisungen, die, wenn sie ausgeführt werden, die Datenverarbeitungsvorrichtung zu Folgendem veranlassen: Identifizieren mehrerer Kandidatenknoten in der geteilten Schicht des Treiber-QoS-Baums als Reaktion auf die Bestimmung, dass die Anzahl verfügbarer Knoten die vorbestimmte Beziehung zu der vorbestimmten Schwelle aufweist, wobei jeder der mehreren Kandidatenknoten einen auf exklusiv gesetzten Status aufweist und wobei die mehreren Kandidatenknoten den ersten QoS-Knoten umfassen; wobei Bewegen des Ersten-QoS-Knotens zu der exklusiven Schicht Bewegen des ersten QoS-Knotens zu der exklusiven Schicht als Reaktion auf Identifikation der mehreren Kandidatenknoten umfasst.
  • Beispiel 25 umfasst den Gegenstand eines der Beispiele 23 und 24, und umfasst ferner mehrere darauf gespeicherte Anweisungen, die, wenn sie ausgeführt werden, die Datenverarbeitungsvorrichtung zu Folgendem veranlassen: Identifizieren eines ältesten Kandidatenknotens der mehreren Kandidatenknoten, wobei jeder der mehreren Kandidatenknoten einem Zeitstempel zugeordnet ist und wobei der älteste Kandidatenknoten den ersten QoS-Knoten umfasst; wobei Erzeugen des ersten QoS-Knotens Erzeugen des dem ersten QoS-Knoten zugeordneten Zeitstempels umfasst.
  • Beispiel 26 umfasst den Gegenstand eines der Beispiele 23-25, und wobei Bewegen des zweiten QoS-Knotens zu der exklusiven Schicht Folgendes umfasst: Programmieren der Netzwerksteuerung mit einem dritten QoS-Knoten für den QoS-Parameter in der exklusiven Schicht des Scheduler-Baums; und Programmieren der Netzwerksteuerung zum Freigeben des zweiten QoS-Knotens aus der geteilten Schicht des Scheduler-Baums.
  • Beispiel 27 umfasst den Gegenstand eines der Beispiele 23-26, und umfasst ferner mehrere darauf gespeicherte Anweisungen, die, wenn sie ausgeführt werden, die Datenverarbeitungsvorrichtung zu Folgendem veranlassen: Empfangen einer Zuordnung zwischen dem QoS-Parameter und einer QoS-Entität, wobei die QoS-Entität eine Warteschlange, eine virtuelle Maschine oder eine Verkehrsklasse umfasst.
  • Beispiel 28 umfasst den Gegenstand eines der Beispiele 23-27, und umfasst ferner mehrere darauf gespeicherte Anweisungen, die wenn sie ausgeführt werden, die Datenverarbeitungsvorrichtung zu Folgendem veranlassen: Bestimmen durch die Datenverarbeitungsvorrichtung, ob der QoS-Parameter mehreren QoS-Entitäten zugeordnet ist; und Setzen eines Status des ersten QoS-Knotens auf geteilt durch die Datenverarbeitungsvorrichtung als Reaktion auf Bestimmung, dass der QoS-Parameter mehreren QoS-Entitäten zugeordnet ist; wobei Erzeugen des ersten QoS-Knotens Setzen des Status des ersten QoS-Knotens auf exklusiv umfasst.
  • Beispiel 29 umfasst den Gegenstand eines der Beispiele 23-28, und wobei der QoS-Parameter eine Bandbreitengrenze oder eine Bandbreitengarantie umfasst.
  • Beispiel 30 umfasst den Gegenstand eines der Beispiele 23-39, und wobei die geteilte Schicht eine Virtuellmaschinen-Teil-Schicht umfasst und wobei die exklusive Schicht eine Virtuellmaschinenschicht umfasst.
  • Beispiel 31 umfasst den Gegenstand eines der Beispiele 23-30, und wobei die geteilte Schicht eine Warteschlangen-Teil-Schicht umfasst und wobei die exklusive Schicht eine Warteschlangenschicht umfasst.
  • Beispiel 32 umfasst den Gegenstand eines der Beispiele 23-31, und wobei die vorbestimmte Schwelle eine Hälfte von Gesamtknoten der geteilten Schicht umfasst.
  • Beispiel 33 umfasst den Gegenstand eines der Beispiele 23-32, und umfasst ferner mehrere darauf gespeicherte Anweisungen, die, wenn sie ausgeführt werden, die Datenverarbeitungsvorrichtung zu Folgendem veranlassen: Formen von Netzwerkverkehr der Datenverarbeitungsvorrichtung durch die Netzwerksteuerung auf der Basis des Scheduler-Baums als Reaktion auf Programmierung der Netzwerksteuerung.
  • ZITATE ENTHALTEN IN DER BESCHREIBUNG
  • Diese Liste der vom Anmelder aufgeführten Dokumente wurde automatisiert erzeugt und ist ausschließlich zur besseren Information des Lesers aufgenommen. Die Liste ist nicht Bestandteil der deutschen Patent- bzw. Gebrauchsmusteranmeldung. Das DPMA übernimmt keinerlei Haftung für etwaige Fehler oder Auslassungen.
  • Zitierte Patentliteratur
    • US 62644040 [0001]

Claims (25)

  1. Datenverarbeitungvorrichtung zum Konfigurieren von Netzwerk-Dienstgüteparametern, wobei die Datenverarbeitungsvorrichtung Folgendes umfasst: eine Netzwerksteuerung, die einen Scheduler-Baum umfasst; einen Treiber-Baummanager zum Erzeugen eines ersten QoS-Knotens für einen QoS-Parameter in einer geteilten Schicht eines Treiber-QoS-Baums; einen Netzwerksteuerungs-Programmierer zum Programmieren der Netzwerksteuerung mit einem zweiten QoS-Knoten für den QoS-Parameter in einer geteilten Schicht des Scheduler-Baums; und einen Treiber-Baumaktualisierer zum (i) Bestimmen, ob eine Anzahl verfügbarer Knoten in der geteilten Schicht des Treiber-QoS-Baums eine vorbestimmte Beziehung zu einer vorbestimmten Schwelle aufweist, als Reaktion auf Programmierung der Netzwerksteuerung, wobei die vorbestimmte Schwelle der geteilten Schicht des Treiber-QoS-Baums zugeordnet ist; und (ii) Bewegen des zweiten QoS-Knotens zu einer exklusiven Schicht des Scheduler-Baums der Netzwerksteuerung und Bewegen des ersten QoS-Knotens zu einer exklusiven Schicht des Treiber-QoS-Baums als Reaktion auf eine Bestimmung, dass die Anzahl verfügbarer Knoten die vorbestimmte Beziehung zu der vorbestimmten Schwelle aufweist.
  2. Datenverarbeitungsvorrichtung nach Anspruch 1, wobei der Treiber-Baumaktualisierer ferner Folgendes soll: Identifizieren mehrerer Kandidatenknoten in der geteilten Schicht des Treiber-QoS-Baums als Reaktion auf die Bestimmung, dass die Anzahl verfügbarer Knoten die vorbestimmte Beziehung zu der vorbestimmten Schwelle aufweist, wobei jeder der mehreren Kandidatenknoten einen auf exklusiv gesetzten Status aufweist und wobei die mehreren Kandidatenknoten den ersten QoS-Knoten umfassen; wobei Bewegen des Ersten-QoS-Knotens zu der exklusiven Schicht Bewegen des ersten QoS-Knotens zu der exklusiven Schicht als Reaktion auf Identifikation der mehreren Kandidatenknoten umfasst.
  3. Datenverarbeitungsvorrichtung nach Anspruch 2, wobei der Treiber-Baumaktualisierer ferner Folgendes soll: Identifizieren eines ältesten Kandidatenknotens der mehreren Kandidatenknoten, wobei jeder der mehreren Kandidatenknoten einem Zeitstempel zugeordnet ist und wobei der älteste Kandidatenknoten den ersten QoS-Knoten umfasst; wobei Erzeugen des ersten QoS-Knotens Erzeugen des dem ersten QoS-Knoten zugeordneten Zeitstempels umfasst.
  4. Datenverarbeitungsvorrichtung nach Anspruch 1, wobei Bewegen des zweiten QoS-Knotens zu der exklusiven Schicht Folgendes umfasst: Programmieren der Netzwerksteuerung mit einem dritten QoS-Knoten für den QoS-Parameter in der exklusiven Schicht des Scheduler-Baums; und Programmieren der Netzwerksteuerung zum Freigeben des zweiten QoS-Knotens aus der geteilten Schicht des Scheduler-Baums.
  5. Datenverarbeitungsvorrichtung nach Anspruch 1, wobei der Treiber-Baummanager ferner eine Zuordnung zwischen dem QoS-Parameter und einer QoS-Entität empfangen soll, wobei die QoS-Entität eine Warteschlange, eine virtuelle Maschine oder eine Verkehrsklasse umfasst.
  6. Datenverarbeitungsvorrichtung nach Anspruch 5, wobei Erzeugen des ersten QoS-Knotens Setzen eines Status des ersten QoS-Knotens auf exklusiv umfasst; und der Treiber-Baummanager ferner Folgendes soll: Bestimmen, ob der QoS-Parameter mehreren QoS-Entitäten zugeordnet ist; und Setzen des Status des ersten QoS-Knotens auf geteilt als Reaktion auf eine Bestimmung, dass der QoS-Parameter mehreren QoS-Entitäten zugeordnet ist.
  7. Datenverarbeitungsvorrichtung nach Anspruch 1, wobei der QoS-Parameter eine Bandbreitengrenze oder eine Bandbreitengarantie umfasst.
  8. Datenverarbeitungsvorrichtung nach Anspruch 1, wobei die geteilte Schicht eine Virtuellmaschinen-Teil-Schicht umfasst und wobei die exklusive Schicht eine Virtuellmaschinenschicht umfasst.
  9. Datenverarbeitungsvorrichtung nach Anspruch 1, wobei die geteilte Schicht eine Warteschlangen-Teil-Schicht umfasst und wobei die exklusive Schicht eine Warteschlangenschicht umfasst.
  10. Datenverarbeitungsvorrichtung nach Anspruch 1, wobei die vorbestimmte Schwelle eine Hälfte von Gesamtknoten der geteilten Schicht umfasst.
  11. Datenverarbeitungsvorrichtung nach Anspruch 1, wobei die Netzwerksteuerung einen Verkehrsformungs-Beschleuniger zum Formen von Netzwerkverkehr der Datenverarbeitungsvorrichtung auf der Basis des Scheduler-Baums als Reaktion auf Programmierung der Netzwerksteuerung umfasst.
  12. Verfahren zum Konfigurieren von Netzwerk-Dienstgüteparametern, wobei das Verfahren Folgendes umfasst: Erzeugen eines ersten QoS-Knotens für einen QoS-Parameter in einer geteilten Schicht eines Treiber-QoS-Baums durch die Datenverarb ei tungsvorri chtung; Programmieren einer Netzwerksteuerung der Datenverarbeitungsvorrichtung durch die Datenverarbeitungsvorrichtung mit einem zweiten QoS-Knoten für den QoS-Parameter in einer geteilten Schicht eines Scheduler-Baums der Netzwerksteuerung; Bestimmen durch die Datenverarbeitungsvorrichtung, ob eine Anzahl verfügbarer Knoten in der geteilten Schicht des Treiber-QoS-Baums eine vorbestimmte Beziehung zu einer vorbestimmten Schwelle aufweist, als Reaktion auf Programmierung der Netzwerksteuerung, wobei die vorbestimmte Schwelle der geteilten Schicht des Treiber-QoS-Baums zugeordnet ist; und als Reaktion auf Bestimmung, dass die Anzahl verfügbarer Knoten die vorbestimmte Beziehung zu der vorbestimmten Schwelle aufweist: Bewegen des zweiten QoS-Knotens durch die Datenverarbeitungsvorrichtung zu einer exklusiven Schicht des Scheduler-Baums der Netzwerksteuerung; und Bewegen des ersten QoS-Knotens durch die Datenverarbeitungsvorrichtung zu einer exklusiven Schicht des Treiber-QoS-Baums.
  13. Verfahren nach Anspruch 12, ferner umfassend: Identifizieren mehrerer Kandidatenknoten in der geteilten Schicht des Treiber-QoS-Baums durch die Datenverarbeitungsvorrichtung als Reaktion auf die Bestimmung, dass die Anzahl verfügbarer Knoten die vorbestimmte Beziehung zu der vorbestimmten Schwelle aufweist, wobei jeder der mehreren Kandidatenknoten einen auf exklusiv gesetzten Status aufweist und wobei die mehreren Kandidatenknoten den ersten QoS-Knoten umfassen; wobei Bewegen des Ersten-QoS-Knotens zu der exklusiven Schicht Bewegen des ersten QoS-Knotens zu der exklusiven Schicht als Reaktion auf Identifikation der mehreren Kandidatenknoten umfasst.
  14. Verfahren nach Anspruch 13, ferner umfassend: Identifizieren eines ältesten Kandidatenknotens der mehreren Kandidatenknoten durch die Datenverarbeitungsvorrichtung, wobei jeder der mehreren Kandidatenknoten einem Zeitstempel zugeordnet ist und wobei der älteste Kandidatenknoten den ersten QoS-Knoten umfasst; wobei Erzeugen des ersten QoS-Knotens Erzeugen des dem ersten QoS-Knoten zugeordneten Zeitstempels umfasst.
  15. Verfahren nach Anspruch 12, wobei Bewegen des zweiten QoS-Knotens zu der exklusiven Schicht Folgendes umfasst: Programmieren der Netzwerksteuerung mit einem dritten QoS-Knoten für den QoS-Parameter in der exklusiven Schicht des Scheduler-Baums; und Programmieren der Netzwerksteuerung zum Freigeben des zweiten QoS-Knotens aus der geteilten Schicht des Scheduler-Baums.
  16. Verfahren nach Anspruch 12, ferner umfassend: Empfangen einer Zuordnung zwischen dem QoS-Parameter und einer QoS-Entität durch die Datenverarbeitungsvorrichtung, wobei die QoS-Entität eine Warteschlange, eine virtuelle Maschine oder eine Verkehrsklasse umfasst.
  17. Verfahren nach Anspruch 16, ferner umfassend: Bestimmen durch die Datenverarbeitungsvorrichtung, ob der QoS-Parameter mehreren QoS-Entitäten zugeordnet ist; und Setzen eines Status des ersten QoS-Knotens auf geteilt durch die Datenverarbeitungsvorrichtung als Reaktion auf Bestimmung, dass der QoS-Parameter mehreren QoS-Entitäten zugeordnet ist; wobei Erzeugen des ersten QoS-Knotens Setzen des Status des ersten QoS-Knotens auf exklusiv umfasst.
  18. Verfahren nach Anspruch 12, wobei der QoS-Parameter eine Bandbreitengrenze oder eine Bandbreitengarantie umfasst.
  19. Verfahren nach Anspruch 12, wobei die geteilte Schicht eine Virtuellmaschinen-Teil-Schicht umfasst und wobei die exklusive Schicht eine Virtuellmaschinenschicht umfasst.
  20. Verfahren nach Anspruch 12, wobei die geteilte Schicht eine Warteschlangen-Teil-Schicht umfasst und wobei die exklusive Schicht eine Warteschlangenschicht umfasst.
  21. Verfahren nach Anspruch 12, wobei die vorbestimmte Schwelle eine Hälfte von Gesamtknoten der geteilten Schicht umfasst.
  22. Verfahren nach Anspruch 12, das ferner Formen von Netzwerkverkehr der Datenverarbeitungsvorrichtung durch die Netzwerksteuerung auf der Basis des Scheduler-Baums als Reaktion auf Programmierung der Netzwerksteuerung umfasst.
  23. Datenverarbeitungsvorrichtung, umfassend: einen Prozessor; und einen Speicher, in dem mehrere Anweisungen gespeichert sind, die, wenn sie durch den Prozessor ausgeführt werden, bewirken, dass die Datenverarbeitungsvorrichtung das Verfahren nach einem der Ansprüche 12-22 ausführt.
  24. Ein oder mehrere nichttransitorische computerlesbare Speicherungsmedien, auf denen mehrere Anweisungen gespeichert sind, die, wenn sie ausgeführt werden, dazu führen, dass eine Datenverarbeitungsvorrichtung das Verfahren nach einem der Ansprüche 12-22 ausführt.
  25. Datenverarbeitungsvorrichtung mit Mitteln zum Ausführen des Verfahrens nach einem der Ansprüche 12-22.
DE102019103932.0A 2018-03-16 2019-02-15 Technologien für optimierte Dienstgütebeschleunigung Pending DE102019103932A1 (de)

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
US201862644040P 2018-03-16 2018-03-16
US62/644,040 2018-03-16
US16/022,815 US20190044832A1 (en) 2018-03-16 2018-06-29 Technologies for optimized quality of service acceleration
US16/022,815 2018-06-29

Publications (1)

Publication Number Publication Date
DE102019103932A1 true DE102019103932A1 (de) 2019-09-19

Family

ID=65231226

Family Applications (1)

Application Number Title Priority Date Filing Date
DE102019103932.0A Pending DE102019103932A1 (de) 2018-03-16 2019-02-15 Technologien für optimierte Dienstgütebeschleunigung

Country Status (3)

Country Link
US (1) US20190044832A1 (de)
CN (1) CN110278104A (de)
DE (1) DE102019103932A1 (de)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11258714B1 (en) * 2018-09-28 2022-02-22 Google Llc Fine grain traffic shaping offload for a network interface card
US11188368B2 (en) 2018-10-31 2021-11-30 Nutanix, Inc. Asynchronous workload migration control
US11194620B2 (en) * 2018-10-31 2021-12-07 Nutanix, Inc. Virtual machine migration task management
CN110505105B (zh) * 2019-09-26 2022-02-11 中国联合网络通信集团有限公司 网络服务质量的控制方法、装置、设备及存储介质

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20080291916A1 (en) * 2007-05-22 2008-11-27 Bo Xiong Systems and methods for dynamic quality of service
US10255218B1 (en) * 2018-06-25 2019-04-09 Apple Inc. Systems and methods for maintaining specific ordering in bus traffic

Also Published As

Publication number Publication date
US20190044832A1 (en) 2019-02-07
CN110278104A (zh) 2019-09-24

Similar Documents

Publication Publication Date Title
DE102019103932A1 (de) Technologien für optimierte Dienstgütebeschleunigung
DE102020132078A1 (de) Ressourcenzuteilung basierend auf anwendbarem service level agreement
DE102015105884B4 (de) Rechenknoten und Verfahren zur Migration einer virtuellen Maschine, Rechenzentrummanager zur Migration virtueller Maschinen, Maschinenlesbares Speichermedium und Rechenvorrichtungen
DE112013000486B4 (de) Anweisungsausgleich durch Anweisungsunsicherheit für Prozessoren mit mehreren Threads
DE112013000752B4 (de) Verwalten von Verarbeitungselementen in einem Streaming-Datensystem
DE112016004347T5 (de) Lokale und globale Datenzentrumsnetzoptimierungen in Echtzeit basierend auf Plattformtelemetriedaten
DE102019105193A1 (de) Technologien zum beschleunigen von edge-vorrichtungsarbeitslasten
DE102015119890A1 (de) Paralleles Verarbeiten von Service-Funktionen in Service-Funktionsketten
DE112011100094T5 (de) Verfahren und System zum Abstrahieren eines auf nichtfunktionalen Anforderungen beruhenden Einsatzes von virtuellen Maschinen
WO2021136137A1 (zh) 一种资源调度方法、装置及相关设备
DE112013006417B4 (de) Verlustfreie Schalterstruktur mit niedriger Latenzzeit zum Gebrauch in einem Rechenzentrum
DE102020109669A1 (de) Dienstgüte-verkehrsmanagement in hochgeschwindigkeitspaketverarbeitungssystemen
CN112153700A (zh) 一种网络切片资源管理方法及设备
DE112012004336T5 (de) System, Verfahren und Programmprodukt für kostenbewusste Auswahl von Vorlagen zum Bereitstellen von gemeinsam genutzten Ressourcen
DE112012000444T5 (de) Ermitteln einer optimalen Datenverarbeitungsumgebung zum Ausführen eines Abbildes
DE112013000656T5 (de) System und Verfahren zum Verringern der Speichernutzung durch optimales Platzieren von virtuellen Maschinen in einem virtualisierten Rechenzentrum
DE102019112772A1 (de) Technologien für eine dienstgütefrist-bewusste ende-zu-ende-e/a-planung
DE112017003294T5 (de) Technologien für ein skalierbares Senden und Empfangen von Paketen
DE112020004651B4 (de) Multi-tenant-etl-ressourcenaufteilung
DE102019105615A1 (de) Technologien für leistungsbewusste planung für netzwerkpaketverarbeitung
Callegati et al. Live migration of virtualized edge networks: Analytical modeling and performance evaluation
DE102018207377A1 (de) Vorabvalidierung einer plattform
DE102018204577A1 (de) Techniken zum Erfüllen von Dienstgüteanforderungen für eine Fabric-Punkt-zu-Punkt-Verbindung
DE102014115947A1 (de) Ausführungsbasierte Plattformauswahl
DE102018209188A1 (de) Technologien zum Verwalten der Dienstgüte für Plattformverbindungen

Legal Events

Date Code Title Description
R079 Amendment of ipc main class

Free format text: PREVIOUS MAIN CLASS: H04L0012240000

Ipc: H04L0041000000