DE102018209187A1 - Technologien zur Bereitstellung von adaptiver Plattform-Dienstqualität - Google Patents

Technologien zur Bereitstellung von adaptiver Plattform-Dienstqualität Download PDF

Info

Publication number
DE102018209187A1
DE102018209187A1 DE102018209187.0A DE102018209187A DE102018209187A1 DE 102018209187 A1 DE102018209187 A1 DE 102018209187A1 DE 102018209187 A DE102018209187 A DE 102018209187A DE 102018209187 A1 DE102018209187 A1 DE 102018209187A1
Authority
DE
Germany
Prior art keywords
application
computing device
current
service
performance metric
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
DE102018209187.0A
Other languages
English (en)
Inventor
Francesc Guim Bernat
Susanne M. Balle
Andrew J. Herdrich
Karthik Kumar
Rahul Khanna
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 DE102018209187A1 publication Critical patent/DE102018209187A1/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/08Configuration management of networks or network elements
    • H04L41/0803Configuration setting
    • H04L41/0823Configuration setting characterised by the purposes of a change of settings, e.g. optimising configuration for enhancing reliability
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/60Network structure or processes for video distribution between server and client or between remote clients; Control signalling between clients, server and network components; Transmission of management data between server and client, e.g. sending from server to client commands for recording incoming content stream; Communication details between server and client 
    • H04N21/63Control signaling related to video distribution between client, server and network components; Network processes for video distribution between server and clients or between remote clients, e.g. transmitting basic layer and enhancement layers over different transmission paths, setting up a peer-to-peer communication via Internet between remote STB's; Communication protocols; Addressing
    • H04N21/647Control signaling between network components and server or clients; Network processes for video distribution between server and clients, e.g. controlling the quality of the video stream, by dropping packets, protecting content from unauthorised alteration within the network, monitoring of network load, bridging between two different networks, e.g. between IP and wireless
    • H04N21/64723Monitoring of network processes or resources, e.g. monitoring of network load
    • H04N21/64738Monitoring network characteristics, e.g. bandwidth, congestion level
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/50Network services
    • H04L67/60Scheduling or organising the servicing of application requests, e.g. requests for application data transmissions using the analysis and optimisation of the required network resources
    • H04L67/61Scheduling or organising the servicing of application requests, e.g. requests for application data transmissions using the analysis and optimisation of the required network resources taking into account QoS or priority requirements
    • 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/5019Ensuring fulfilment of SLA
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L43/00Arrangements for monitoring or testing data switching networks
    • H04L43/08Monitoring or testing based on specific metrics, e.g. QoS, energy consumption or environmental parameters
    • H04L43/091Measuring contribution of individual network components to actual service level
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/50Network services
    • H04L67/56Provisioning of proxy services
    • H04L67/568Storing data temporarily at an intermediate stage, e.g. caching
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/3003Monitoring arrangements specially adapted to the computing system or computing system component being monitored
    • G06F11/302Monitoring arrangements specially adapted to the computing system or computing system component being monitored where the computing system component is a software system
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/34Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment
    • G06F11/3409Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment for performance assessment

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Computer Security & Cryptography (AREA)
  • Multimedia (AREA)
  • Environmental & Geological Engineering (AREA)
  • Debugging And Monitoring (AREA)
  • Memory System Of A Hierarchy Structure (AREA)

Abstract

Technologien zum Bereitstellen von adaptiver Plattform-Dienstqualität weisen eine Rechenvorrichtung auf. Die Rechenvorrichtung soll Dienstklassendaten für eine auszuführende Anwendung erhalten, die Anwendung ausführen, in Abhängigkeit von einer oder mehreren Ressourcenverwendungen der Anwendung bei der Ausführung der Anwendung eine derzeitige Phase der Anwendung bestimmen, eine derzeitige Dienstklasse für die Anwendung in Abhängigkeit von der bestimmten Phase vorgeben, wobei die derzeitige Dienstklasse innerhalb eines der bestimmten Phase zugeordneten Bereichs ist, bestimmen, ob eine derzeitige Performance-Metrik der Anwendung einer Ziel-Performance-Metrik genügt, und als Reaktion auf eine Bestimmung, dass die derzeitige Performance-Metrik der Ziel-Performance-Metrik nicht genügt, die derzeitige Dienstklasse auf eine höhere Dienstklasse im Bereich heraufsetzen. Weitere Ausführungsformen werden ebenfalls beschrieben und beansprucht.

Description

  • STAND DER TECHNIK
  • Typische Merkmale der Plattform-Dienstqualität (pQoS) einer Rechenvorrichtung ermöglichen es einem Administrator oder Benutzer der Rechenvorrichtung, für eine Anwendung den Zugriff auf bestimmte Ressourcen zu reservieren, die primär für Auswirkungen auf die Leistungscharakteristik der Anwendung verantwortlich sind. Falls die Leistungscharakteristik der Anwendung beispielsweise besonders durch die Verfügbarkeit von Daten im Low-Level-Cache (LLC) beeinflusst ist, kann ein Benutzer ein pQoS-Merkmal der Rechenvorrichtung verwenden, um eine Anzahl von Wegen im LLC zum Reduzieren der Wahrscheinlichkeit dafür zu reservieren, dass von der Anwendung häufig benutzte Daten enthaltende Cache-Leitungen aus dem LLC entleert werden. Im Ergebnis ist die Leistungscharakteristik der Anwendung durch andere gleichzeitig ausführende Anwendungen, die den LLC der Rechenvorrichtung intensiv nutzen, weniger beeinträchtigt. Die Reservierung der Ressourcen (z. B. der Wege im LLC) bleibt jedoch unabhängig davon bestehen, ob die Anwendung tatsächlich alle reservierten Ressourcen zu einem gegebenen Zeitpunkt nutzt, und zwar potenziell zum Nachteil der gleichzeitig ausführenden Anwendungen, die die Ressourcen anderenfalls verwenden würden.
  • Figurenliste
  • Die hier beschriebenen Konzepte sind in den beigefügten Zeichnungen als Beispiele und nicht als Einschränkung dargestellt. Zur Vereinfachung und Verdeutlichung der Darstellung sind in den Figuren wiedergegebene Elemente nicht unbedingt maßstabsgetreu gezeichnet. Sofern dies als angemessen betrachtet wird, wurden Kennzeichnungen in den Figuren wiederholt, um entsprechende oder analoge Elemente anzugeben.
    • 1 ist ein vereinfachtes Blockdiagramm mindestens einer Ausführungsform eines Systems für die Bereitstellung von adaptiver Plattform-Dienstqualität;
    • 2 ist ein vereinfachtes Blockdiagramm mindestens einer Ausführungsform einer Rechenvorrichtung des Systems aus 2;
    • 3 ist ein vereinfachtes Blockdiagramm mindestens einer Ausführungsform einer Umgebung, die durch eine Rechenvorrichtung aus 1 und 2 aufgebaut werden kann; und
    • 4-7 sind vereinfachte Blockdiagramme von mindestens einer Ausführungsform eines Verfahrens zur adaptiven Kontrolle einer Plattform-Dienstqualität, das durch eine Rechenvorrichtung aus 1 und 2 ausgeführt werden kann.
  • DETAILLIERTE BESCHREIBUNG DER ZEICHNUNGEN
  • Während die Konzepte der vorliegenden Offenbarung verschiedenen Abänderungen und alternativen Formen unterliegen können, sind spezifische diesbezügliche Ausführungsformen als Beispiele in den Zeichnungen gezeigt, die hier detailliert beschrieben werden. Es versteht sich jedoch, dass es nicht beabsichtigt ist, die Konzepte der vorliegenden Offenbarung auf die besonderen offenbarten Formen einzuschränken, sondern es sollen dagegen alle Abänderungen, Äquivalente und Alternativen abgedeckt werden, die mit der vorliegenden Offenbarung und den beigefügten Ansprüchen in Einklang stehen.
  • Verweise in der Spezifikation auf „eine Ausführungsform“, „eine beispielhafte Ausführungsform“ und so weiter geben an, dass die beschriebene Ausführungsform besondere Merkmale, Strukturen oder Eigenschaften einschließen kann, wobei jedoch jede Ausführungsform die betreffenden Merkmale, Strukturen oder Eigenschaften einschließen kann, aber nicht zwangsläufig einschließen muss. Zudem beziehen sich derartige Formulierungen nicht notwendigerweise auf die gleiche Ausführungsform. Wenn weiter bestimmte Merkmale, Strukturen oder Eigenschaften in Verbindung mit einer Ausführungsform beschrieben sind, wird vorausgesetzt, dass der Kenntnisstand von Fachleuten auf diesem Gebiet die Ausführung derartiger Merkmale, Strukturen oder Eigenschaften in Verbindung mit anderen Ausführungsformen umfasst, sei dies explizit beschrieben oder nicht. Zusätzlich versteht es sich, dass in einer Liste enthaltene Punkte in der Form von „mindestens A, B und C“ bedeuten können (A); (B); (C); (A und B); (A und C); (B und C); oder (A, B und C). Entsprechend können in der Form von „mindestens eines von A, B oder C“ aufgeführte Punkte bedeuten: (A); (B); (C); (A und B); (A und C); (B und C); oder (A, B und C).
  • Die offenbarten Ausführungsformen können in einigen Fällen in Hardware, Firmware, Software oder beliebigen Kombinationen daraus implementiert sein. Die offenbarten Ausführungsformen können auch implementiert sein als Anweisungen, die auf einem temporären oder nicht temporären maschinenlesbaren (zum Beispiel computerlesbaren) Speichermedium gehalten oder gespeichert sind, dass durch einen oder mehrere Prozessoren gelesen und ausgeführt werden kann. Ein maschinenlesbares Speichermedium kann in Form von beliebigen Speichervorrichtungen, Mechanismen oder anderen physikalischen Strukturen zum Speichern oder Übertragen von Informationen in einer durch eine Maschine lesbaren Form ausgeführt sein (zum Beispiel als flüchtiger oder nichtflüchtiger Speicher, Medien-Disk oder sonstige Medienvorrichtung).
  • In den Zeichnungen können einige strukturelle oder Methodenmerkmale in spezifischen Anordnungen und/oder Zusammenstellungen gezeigt sein. Es versteht sich jedoch, dass derartige spezifische Anordnungen und/oder Zusammenstellungen nicht erforderlich sein müssen. Vielmehr können derartige Merkmale bei einigen Ausführungsformen in einer von der in den beispielhaften Figuren gezeigten unterschiedlichen Weise und/oder Zusammenstellung angeordnet sein. Zudem soll der Einschluss eines strukturellen oder methodischen Merkmals in einer bestimmten Figur nicht implizieren, dass dieses Merkmal in allen Ausführungsformen erforderlich ist, und bei einigen Ausführungsformen kann es auch nicht eingeschlossen sein, oder es kann mit anderen Merkmalen kombiniert sein.
  • Entsprechend der Darstellung in 1 schließt ein beispielhaftes System 110 zum Bereitstellen von adaptiver Plattform-Dienstqualität (pQoS) eine Gruppe von Rechenvorrichtungen 130 in Kommunikation mit einem Orchestrator-Server 140 ein. Die Gruppe schließt Rechenvorrichtungen 120, 122 und 124 ein. Während drei Rechenvorrichtungen 130 gezeigt sind, versteht es sich, dass die Gruppe bei anderen Ausführungsformen eine unterschiedliche Anzahl von Rechenvorrichtungen 130 einschließen kann. Im Betrieb führt jede Rechenvorrichtung 130 eine oder mehrere ihr zugeordnete Anwendungen aus. Die Anwendungen können durch den Orchestrator-Server 140 zugewiesen werden, beispielsweise als Reaktion auf eine Dienstanforderung von einer Client-Vorrichtung 150 in Kommunikation mit dem Orchestrator-Server 140 durch ein Netzwerk 160 oder von einer anderen Quelle. In der beispielhaften Ausführungsform erhält jede Rechenvorrichtung 130 Dienstklassendaten, die als beliebige Daten ausgeführt sein können, die einen Umfang von einer oder mehreren Ressourcen (zum Beispiel eine Anzahl von Wegen von Cache-Assoziativität, Speicher-Bandbreite usw.) angeben, die jeder Anwendung für jede Dienstklasse in einem Bereich von Dienstklassen, einer Ziel-Performance-Metrik für jede Phase jeder Anwendung und einer maximalen Dienstklasse für jede Phase jeder Anwendung zugeordnet werden sollen. Bei der beispielhaften Ausführungsform bezieht sich eine Dienstklasse auf einen Grad, bis zu dem Ressourcen der Rechenvorrichtung 130 zur Verwendung durch eine gegebene Anwendung reserviert sind (zum Beispiel bei einem Kern der Rechenvorrichtung 130, der die Anwendung ausführt), um Latenz, Durchsatz und/oder andere der Performance der Anwendung zugeordnete Merkmale zu verbessern.
  • Weiter kann bei der beispielhaften Ausführungsform jede Phase einer Anwendung als Gruppe von Vorgängen ausgeführt sein, die eine bestimmte Verwendung von Ressourcen aufweist (zum Beispiel eine relativ geringe Prozessorverwendung und eine relativ hohe Speicherverwendung, eine relativ hohe Prozessorverwendung und eine relativ geringe Speicherverwendung usw.). Im Betrieb bestimmt jede Rechenvorrichtung 130, in welcher Phase sich eine bestimmte Anwendung befindet, wenn die Rechenvorrichtung 130 die Anwendung ausführt; sie bestimmt, ob die Performance der Anwendung einer Ziel-Performance-Metrik genügt, die der derzeitigen Anwendungsphase zugeordnet ist, und falls dies nicht so ist, setzt sie die Dienstklasse auf eine höhere Dienstklasse im Bereich von der derzeitigen Phase zugeordneten Dienstklassen herauf. Falls die Performance der Anwendung dagegen der Ziel-Performance-Metrik genügt, setzt die Rechenvorrichtung 130 bei der beispielhaften Ausführungsform die Dienstklasse iterativ herab, bis der Ziel-Performance-Metrik nicht mehr genügt werden kann (zum Beispiel, um die Mindest-Dienstklasse zu finden, die zur Erfüllung der Ziel-Performance-Metrik erforderlich ist). Dabei gibt die Rechenvorrichtung 130 adaptiv Ressourcen frei zur Verwendung durch andere Anwendungen, die gleichzeitig auf der Rechenvorrichtung 130 ausgeführt werden (zum Beispiel durch andere Kerne in der Rechenvorrichtung 130), wodurch es diesen Anwendungen möglich wird, ihre Performance zu verbessern, ohne die Fähigkeit der derzeitigen Anwendung, der Ziel-Performance-Metrik für die derzeitige Phase zu genügen, nachteilig zu beeinflussen.
  • Mit Bezug auf 2 kann jede Rechenvorrichtung 130 als Vorrichtung beliebigen Typs ausgeführt sein, die die hier beschriebenen Funktionen durchführen kann. Beispielsweise kann bei einigen Ausführungsformen jede Rechenvorrichtung 130 ohne diesbezügliche Einschränkung ausgeführt sein als ein in einem Gestell montierter Computer, ein verteiltes Computersystem, ein Server-Computer, ein Desktop-Computer, eine Workstation, ein Laptop-Computer, ein Notebook-Computer, ein Tablet-Computer, ein Smartphone, ein Multiprozessorsystem, eine Verbraucherelektronik-Vorrichtung, ein intelligentes Gerät und/oder eine beliebige andere Vorrichtung, die die Fähigkeit aufweist, Dienstklassendaten für eine auszuführende Anwendung zu erhalten; die Anwendung auszuführen; eine derzeitige Anwendungsphase in Abhängigkeit von der Verwendung von einer oder mehreren Ressourcen der Anwendung bei der Ausführung der Anwendung festzulegen; eine derzeitige Dienstklasse für die Anwendung in Abhängigkeit von der festgelegten Phase vorzugeben; zu bestimmen, ob eine derzeitige Performance-Metrik der Anwendung der Ziel-Performance-Metrik genügt; und die Dienstklasse innerhalb des Bereichs zur Erfüllung der Ziel-Performance-Metrik anzupassen, wobei es anderen Anwendungen ermöglicht wird, Ressourcen zu verwenden, die zur Erfüllung der Ziel-Performance-Metrik nicht erforderlich sind. Entsprechend der Darstellung in 2 umfasst die beispielhafte Rechenvorrichtung 130 eine zentrale Recheneinheit (CPU) 202, einen Hauptspeicher 204, ein Eingangs-/Ausgangs-(I/O)-Subsystem 206, Kommunikationsschaltung 208 und eine oder mehrere Datenspeichervorrichtungen 210. Selbstverständlich kann die Rechenvorrichtung 130 bei anderen Ausführungsformen andere oder zusätzliche Komponenten einschließen, wie z. B. solche, die üblicherweise in einem Computer vorliegen (zum Beispiel Peripherievorrichtungen, eine Anzeige usw.). Zudem können bei einigen Ausführungsformen eine oder mehrere der beispielhaften Komponenten in eine andere Komponente integriert sein oder auf sonstige Weise einen Teil davon bilden. Beispielsweise können bei einigen Ausführungsformen der Hauptspeicher 204 oder Teile davon in die CPU 202 integriert sein.
  • Die CPU 202 kann als Prozessor oder Prozessoren beliebigen Typs ausgeführt sein, die die hier beschriebenen Funktionen ausführen können. Somit kann die CPU 202 in Form von Einzelkern- oder Mehrkern-Prozessoren, einem Mikrocontroller oder einer anderen Prozessor- oder Verarbeitungs-/Steuerschaltung ausgeführt sein. Bei einigen Ausführungsformen kann die CPU 202 als eine vor Ort programmierbare Gatter-Anordnung (FPGA), als anwendungsspezifische integrierte Schaltung (ASIC), rekonfigurierbare Hardware oder Hardwareschaltung oder andere spezielle Hardware ausgeführt sein, diese aufweisen oder damit gekoppelt sein, um die Ausführung der hier beschriebenen Funktionen zu ermöglichen. Bei der beispielhaften Ausführungsform schließt die CPU 202 eine Plattform-Dienstqualität (pQoS) Logikeinheit 220 ein, die ausgeführt sein kann als beliebige Vorrichtung oder Schaltung mit der Fähigkeit, die derzeitige Phase jeder von der Rechenvorrichtung 130 ausgeführten Anwendung zu bestimmen, einen jeder Phase zugeordneten Dienstklassenbereich zu bestimmen, und den Anwendungen selektiv Dienstklassen innerhalb der festgelegten Bereiche zuzuordnen, um für die Anwendungen ausreichende Ressourcen zur Erfüllung der Ziel-Performance-Metriken bereitzustellen, ohne übermäßige Ressourcen zu reservieren, die von anderen Anwendungen eingesetzt werden könnten.
  • Bei der beispielhaften Ausführungsform schließt die CPU 202 mehrere Kerne 230 ein, die ausgeführt sein können als beliebige Vorrichtungen mit der Fähigkeit, Anwendungen separat auszuführen und bei der Ausführung der Anwendungen weitere Ressourcen der Rechenvorrichtung zu verwenden (zum Beispiel Teile eines Low-Level-Cache (LLC) 250, Hauptspeicher 204, Bandbreite des I/O-Subsystems 206, Bandbreite der Kommunikationsschaltung 208 usw.). Bei der in 2 dargestellten Ausführungsform sind zwei Kerne 232, 234 gezeigt. Es versteht sich jedoch, dass die Anzahl von Kernen 230 bei anderen Ausführungsformen unterschiedlich sein kann. Weiter schließt die CPU 202 bei der beispielhaften Ausführungsform ein oder mehrere Register 240 ein, wie zum Beispiel modellspezifische Register (MSR). Entsprechend der hier wiedergegebenen detaillierteren Beschreibung kann jedes Register 240 ausgeführt sein als beliebige Vorrichtung oder Schaltung mit der Fähigkeit, einen Wert zu speichern, auf den die Rechenvorrichtung 130 zugreifen kann (Lese- und/oder Schreibzugriff). Bei der beispielhaften Ausführungsform können eines oder mehrere der Register 240 die derzeitigen Dienstklassen für Ressourcen angeben, die von einer bestimmten Anwendung eingesetzt werden. Zusätzlich umfasst die CPU 202 bei der beispielhaften Ausführungsform den Cache 250, der als beliebige Vorrichtung oder Schaltung ausgeführt sein kann mit der Fähigkeit, Kopien von Daten von häufig verwendeten Positionen des Hauptspeichers 204 temporär zu speichern und für die Kerne 230 einen vergleichsweise schnelleren Zugriff auf die Daten bereitzustellen (d. h. im Vergleich zum Hauptspeicher 204).
  • Der Hauptspeicher 204 kann ausgeführt sein als beliebiger Typ flüchtigen Speichers (zum Beispiel dynamisches RAM (DRAM) usw.) oder nichtflüchtigen Speichers oder Datenspeichers mit der Fähigkeit, die hier beschriebenen Funktionen auszuführen. Bei einigen Ausführungsformen kann der gesamte Hauptspeicher 204 oder ein Teil davon in die CPU 202 integriert sein. Im Betrieb kann der Hauptspeicher 204 verschiedene Software und Daten speichern, die während des Betriebs verwendet werden, wie zum Beispiel durch die von den Kernen 230 ausgeführten Anwendungen verwendete Daten, Telemetriedaten, Phasendaten, Dienstklassendaten, Betriebssysteme, Anwendungen, Programme, Bibliotheken und Treiber. Der Hauptspeicher 204 kann bei einigen Ausführungsformen auch den weiter oben beschriebenen Cache 250 einschließen.
  • Das I/O-Subsystem 206 kann ausgeführt sein als Schaltung und/oder Komponenten, um Eingabe-/Ausgabe-Vorgänge mit der CPU 202, dem Hauptspeicher 204 und anderen Komponenten der Rechenvorrichtung 130 zu ermöglichen. Beispielsweise kann das I/O-Subsystem 206 ausgeführt sein in Form von Speichersteuerknoten, Eingabe-/Ausgabe-Steuerknoten, integrierten Sensorknoten, Firmware-Vorrichtungen, Kommunikationsverbindungen (z. B. Punkt-zu-Punkt-Verbindungen, Bus-Verbindungen, Drähte, Kabel, Lichtleiter, Leiterplattenbahnen usw.) und/oder anderen Komponenten und Subsystemen, um die Eingabe-/Ausgabe-Vorgänge zu ermöglichen. Bei einigen Ausführungsformen kann das I/O-Subsystem 206 einen Teil eines System-auf-einem-Chip (SoC) bilden und zusammen mit einem oder mehreren Elementen aus der CPU 202, dem Hauptspeicher 204 und anderen Komponenten der Rechenvorrichtung 130 auf einem einzelnen Chip eines integrierten Schaltkreises untergebracht sein.
  • Der Kommunikationsschaltkreis 208 kann ausgeführt sein als beliebiger Kommunikationsschaltkreis, Vorrichtung oder Zusammenstellung davon mit der Fähigkeit, Kommunikation über das Netzwerk 160 zwischen der Rechenvorrichtung 130 und einer anderen Vorrichtung (zum Beispiel dem Orchestrator-Server 140 und/oder einer anderen Rechenvorrichtung 130) zu ermöglichen. Der Kommunikationsschaltkreis 208 kann dafür ausgelegt sein, eine oder mehrere beliebige Kommunikationstechnologien (zum Beispiel kabelgebundene oder drahtlose Kommunikation) und dazugehörige Protokolle (zum Beispiel Ethernet, Bluetooth®, Wi-Fi®, WiMAX usw.) zu verwenden, um diese Kommunikation durchzuführen.
  • Der beispielhafte Kommunikationsschaltkreis 208 schließt eine Netzwerksteuerung (NIC) 212 ein, die auch als Host-Fabric-Schnittstelle (HFI) bezeichnet werden kann. Der Kommunikationsschaltkreis 208 kann auf von der CPU 202 separatem Silizium angeordnet sein, oder der Kommunikationsschaltkreis 208 kann in einem Multi-Chip-Paket mit der CPU 202 oder sogar auf dem gleichen Plättchen (Die) wie die CPU 202 eingeschlossen sein. Der NIC 212 kann ausgeführt sein als ein oder mehrere Zusatzplatinen, Tochterkarten, Netzwerkkarten, Steuer-Chips, Chipsätze, spezielle Komponenten wie eine vor Ort programmierbare Gatter-Anordnung (FPGA) oder eine anwendungsspezifische integrierte Schaltung (ASIC) oder sonstige Vorrichtungen, die von der Rechenvorrichtung 130 zur Verbindung mit einer anderen Vorrichtung verwendet werden können (zum Beispiel mit dem Orchestrator-Server 140 und/oder einer anderen Rechenvorrichtung 130). Bei einigen Ausführungsformen kann der NIC 212 ausgeführt sein als Teil eines System-auf-einem-Chip (SoC), das einen oder mehrere Prozessoren einschließt, oder er kann in einem Multi-Chip-Paket eingeschlossen sein, dass auch einen oder mehrere Prozessoren enthält. Bei einigen Ausführungsformen kann der NIC 212 einen lokalen Prozessor aufweisen (nicht dargestellt) und/oder einen lokalen Speicher (nicht dargestellt), die beide in Bezug auf den NIC 212 lokal sind. Bei derartigen Ausführungsformen kann der lokale Prozessor des NIC 212 die Fähigkeit aufweisen, eine oder mehrere der hier beschriebenen Funktionen der CPU 202 auszuführen. Zusätzlich oder alternativ dazu kann der lokale Speicher des NIC 212 bei derartigen Ausführungsformen auf Platinen-Ebene, Sockel-Ebene, Chip-Ebene und/oder anderen Ebenen in eine oder mehrere Komponenten der Rechenvorrichtung 130 integriert sein.
  • Die eine oder mehreren beispielhaften Datenspeichervorrichtungen 210 können ausgeführt sein als Vorrichtungen beliebigen Typs, ausgelegt für kurzfristige oder langfristige Datenspeicherung, wie zum Beispiel Speichervorrichtungen und -Schaltungen, Speicherkarten, Festplattenlaufwerke, Festkörperlaufwerke oder andere Datenspeichervorrichtungen. Jede Datenspeichervorrichtung 210 kann eine Systempartition einschließen, die Daten und Firmware-Code für die Datenspeichervorrichtung 210 speichert. Jede Datenspeichervorrichtung 210 kann auch eine Betriebssystem-Partition einschließen, die Datendateien und ausführbare Programme für ein Betriebssystem speichert.
  • Zusätzlich oder alternativ dazu kann die Rechenvorrichtung 130 eine oder mehrere Peripherievorrichtungen 214 einschließen. Derartige Peripherievorrichtungen 214 können Peripherievorrichtungen beliebigen Typs einschließen, die in einer Rechenvorrichtung üblicherweise anzutreffen sind, wie zum Beispiel eine Anzeige, Lautsprecher, eine Maus, eine Tastatur und/oder andere Eingabe-/Ausgabe-Vorrichtungen, Schnittstellenvorrichtungen und/oder sonstige Peripherievorrichtungen.
  • Der Orchestrator-Server 140 und die Client-Vorrichtung 150 können ähnliche Komponenten wie die in 2 beschriebenen aufweisen. Somit ist die Beschreibung der betreffenden Komponenten der Rechenvorrichtung 130 gleichermaßen anwendbar auf die Beschreibung von Komponenten des Orchestrator-Servers 140 und der Client-Vorrichtung 150 und wird hier im Interesse der Klarheit der Beschreibung nicht wiederholt, mit der Ausnahme, dass der Orchestrator-Server 140 und die Client-Vorrichtung 150 bei der beispielhaften Ausführungsform die adaptive pQoS-Logikeinheit 220 auch nicht einschließen können. Es versteht sich, dass sowohl der Orchestrator-Server 140 als auch die Client-Vorrichtung 150 jeweils andere Komponenten, Subkomponenten und Vorrichtungen einschließen können, die üblicherweise in einer Rechenvorrichtung anzutreffen sind und die vorstehend mit Bezug auf die Rechenvorrichtung 130 nicht erörtert sind und die hier im Interesse der Klarheit der Beschreibung nicht erläutert werden.
  • Entsprechend der vorstehenden Beschreibung sind die Rechenvorrichtungen 130, der Orchestrator-Server 140 und die Client-Vorrichtung 150 veranschaulichend in Kommunikation über das Netzwerk 160, das ausgeführt sein kann als kabelgebundenes oder drahtloses Kommunikationsnetzwerk beliebigen Typs einschließlich von globalen Netzwerken (zum Beispiel das Internet) sowie lokalen Netzwerken (LANs) oder Weitverkehrsnetzen (WANs), zellulären Netzwerken (zum Beispiel Global System for Mobile Communications (GSM), 3G, Long Term Evolution (LTE), Worldwide Interoperability for Microwave Access (WiMAX) usw.), DSL-Netzen (digitale Anschlussleitung), Kabelnetzen (zum Beispiel Koaxialnetzwerke, Fasernetzwerke usw.) oder beliebigen Kombinationen daraus.
  • Mit Bezug auf 3 kann bei der beispielhaften Ausführungsform jede Rechenvorrichtung 130 während des Betriebs eine Umgebung 300 herstellen. Die beispielhafte Umgebung 300 schließt einen Netzwerk-Kommunikator 320, eine Anwendungsausführungsschaltung 330 und eine Plattform-Dienstqualitätsverwaltung 340 ein. Jede der Komponenten der Umgebung 300 kann als Hardware, Firmware, Software oder Kombination daraus ausgeführt sein. Somit können bei einigen Ausführungsformen eine oder mehrere der Komponenten der Umgebung 300 ausgeführt sein als Schaltkreis oder Zusammenstellung elektrischer Vorrichtungen (zum Beispiel Netzwerk-Kommunikator-Schaltkreis 320, Anwendungsausführungsschaltung 330, Plattform-Dienstqualitäts-Verwaltungsschaltung 340 usw.). Es versteht sich, dass bei derartigen Ausführungsformen eine oder mehrere des Netzwerk-Kommunikator-Schaltkreises 320, des Anwendungs-Ausführungsschaltkreises 330 oder des Plattform-Dienstqualitäts-Verwaltungsschaltkreises 340 einen Teil von einem oder mehreren aus CPU 202, Hauptspeicher 204, I/O-Subsystem 206 und/oder anderen Komponenten der Rechenvorrichtung 130 bilden können.
  • Bei der beispielhaften Ausführungsform schließt die Umgebung 300 Telemetriedaten 302 ein, die ausgeführt sein können als beliebige Daten, die die Verwendung von Ressourcen angeben (zum Beispiel relative Werte wie Prozentsätze von durch jede Anwendung verwendeten verfügbaren Ressourcen oder Ist-Werte, die den Umfang von jeder Ressource, die durch jede Anwendung verwendet wird, angeben), die durch die Rechenvorrichtung 130 kontinuierlich bestimmt werden können (zum Beispiel in vorbestimmten Intervallen). Zusätzlich geben die Telemetriedaten 302 die Performance der Anwendungen an, wie zum Beispiel durch den jeder Anwendung zugeordneten Kern 230 ausgeführte Anweisungen pro Zyklus und/oder andere, jeder Anwendung zugeordnete Messwerte der Dienstqualität. Zusätzlich schließt die beispielhafte Umgebung 300 Phasendaten 304 ein, die ausgeführt sein können als beliebige Daten, die Anwendungsphasen und die Zeitlängen der betreffenden Phasen (d. h. Andauern der Phasen) für jede der Anwendungen angeben. Weiter schließt die beispielhaften Umgebung 300 Dienstklassendaten 306 ein, die als beliebige Daten ausgeführt sein können, die einen Umfang von einer oder mehreren Ressourcen angeben, die einer Anwendung für jede Dienstklasse in einem Bereich von Dienstklassen, einer Ziel-Performance-Metrik für jede Phase der Anwendung und einer maximalen Dienstklasse für jede Phase der Anwendung zugeordnet werden sollen. Zusätzlich können die Dienstklassendaten 306 eine Frequenz angeben, mit der die Performance einer Anwendung gemessen werden soll, und eine Angabe des Verlaufs (zum Beispiel linear, exponentiell usw.), mit dem die Dienstklasse für eine gegebene Phase einer Anwendung als Reaktion auf eine Bestimmung, dass die Anwendung die Ziel-Performance-Metrik mit den bei der derzeitigen Dienstklasse zugeordneten Ressourcen nicht erfüllt, heraufgesetzt werden soll.
  • Bei der beispielhaften Umgebung 300 ist der Netzwerk-Kommunikator 320, der ausgeführt sein kann als Hardware, Firmware, Software, virtualisierte Hardware, simulierte Architektur und/oder eine Kombination daraus entsprechend der vorstehenden Erörterung, dafür ausgelegt, eingehende und ausgehende Netzwerkkommunikationen zu bzw. von der Rechenvorrichtung 130 zu ermöglichen (zum Beispiel Netzwerkverkehr, Netzwerkpakete, Netzwerkströme usw.). Hierzu ist der Netzwerk-Kommunikator 320 dafür ausgelegt, Datenpakete zu empfangen und zu verarbeiten und Datenpakete zu einem System oder einer Rechenvorrichtung (zum Beispiel dem Orchestrator-Server 140) vorzubereiten und zu senden. Dementsprechend kann bei einigen Ausführungsformen mindestens ein Teil des Funktionsumfangs des Netzwerk-Kommunikators 320 durch die Kommunikationsschaltung 208 und bei der beispielhaften Ausführungsform durch den NIC 212 ausgeführt werden.
  • Der Anwendungs-Ausführungsschaltkreis 330, der ausgeführt sein kann als Hardware, Firmware, Software, virtualisierte Hardware, emulierte Architektur und/oder eine Kombination daraus entsprechend der vorstehenden Erörterung, ist dafür ausgelegt, der Rechenvorrichtung 130 zugeordnete Anwendungen auszuführen und Telemetriedaten im Prozess zur Verwendung durch die Plattform-Dienstqualitätsverwaltung 340 zu erzeugen. Hierzu schließt der Anwendungs-Ausführungsschaltkreis 330 bei der beispielhaften Ausführungsform einen Telemetrie-Generator 332 ein, der bei der beispielhaften Ausführungsform dafür ausgelegt ist, Daten von Komponenten der Rechenvorrichtung 130 zu erhalten, einschließlich der Kerne 230 und anderer Komponenten wie des Speichers 204, des I/O-Subsystems 206, der Kommunikationsschaltung 208 und/oder der Datenspeichervorrichtung 210, und die Daten zu analysieren und zu speichern als Telemetriedaten 302 in Verbindung mit Kennungen der dazugehörigen Komponenten und der Anwendungen, auf deren Veranlassung die Komponenten bei der Erzeugung der Daten Vorgänge ausgeführt haben. Bei der beispielhaften Ausführungsform kann der Telemetrie-Generator 332 aktiv jede der Komponenten abfragen (zum Beispiel die Kerne 230, den Speicher 204, das I/O-Subsystem 206, die Kommunikationsschaltung 208, die Datenspeichervorrichtung 210 usw.), die in der Rechenvorrichtung 130 verfügbar sind, um aktualisierte Telemetriedaten 302 auf fortlaufender Basis zu erhalten, oder er kann die Telemetriedaten 302 von den Komponenten passiv empfangen, wie zum Beispiel durch Überwachung von einem oder mehreren Registern usw.
  • Die Plattform-Dienstqualitätsverwaltung 340, die ausgeführt sein kann als Hardware, Firmware, Software, virtualisierte Hardware, simulierte Architektur und/oder eine Kombination daraus, ist dafür ausgelegt, die Dienstklassendaten 306 zu erhalten, die Telemetriedaten 302 zu analysieren, um die durch die Kerne 230 ausgeführte derzeitige Phase jeder Anwendung zu bestimmen, um zu bestimmen, ob die derzeitige Performance jeder Anwendung der in den Dienstklassendaten 306 für die derzeitige Phase jeder Anwendung angegebenen dazugehörigen Ziel-Performance-Metrik genügt, und um die einer oder mehreren der Anwendungen zugeordnete Dienstklasse selektiv anzupassen (zum Beispiel inkrementell zu erhöhen oder herabzusetzen), um der dazugehörigen Ziel-Performance-Metrik zu genügen, ohne der Anwendung Ressourcen über den zur Erfüllung der Ziel-Performance-Metrik erforderlichen Umfang hinaus zuzuweisen. Hierzu schließt die Plattform-Dienstqualitätsverwaltung 340 bei der beispielhaften Ausführungsform einen Phasenbestimmer 342, einen Performance-Bestimmer 346 und einen Dienstklassen-Anpasser 348 ein.
  • Bei der beispielhaften Ausführungsform ist der Phasenbestimmer 342 dafür ausgelegt, die jeder Anwendung zugeordneten Telemetriedaten 302 zu vergleichen mit der bekannten Phasen jeder Anwendung zugeordneten Referenz-Ressourcenverwendungscharakteristik (zum Beispiel Referenzphasen in den Phasendaten 304). Falls beispielsweise eine Phase einer Anwendung charakterisiert ist durch einen Zeitraum hoher CPU-Verwendung (zum Beispiel einen Prozentsatz oberhalb eines Schwellenprozentwerts) und niedriger Speicherverwendung (zum Beispiel einen Prozentsatz unterhalb eines Schwellenprozentwerts) und falls die der Anwendung zugeordneten Telemetriedaten 302 hohe CPU-Verwendung und niedrige Speicherverwendung angeben, kann der Phasenbestimmer 342 festlegen, dass die Anwendung in der oben beschriebenen Phase ist, die sich von einer anderen Phase unterscheidet, in der die Ressourcenverwendungen abweichend sind. Der Phasenbestimmer 342 kann zusätzlich einen Subphasen-Bestimmer 344 einschließen, der dafür ausgelegt sein kann, Subphasen in einer Phase zu erkennen. Eine Subphase kann ausgeführt sein als relativ kurzer Zeitraum, während dessen innerhalb einer Phase Variationen bei den Verwendungen von einer oder mehreren Ressourcen auftreten. Während derartiger Subphasen kann die Plattform-Dienstqualitätsverwaltung 340 Änderungen bei der Performance der Anwendung detektieren und die Dienstklasse innerhalb des der Phase der Anwendung zugeordneten Bereichs variieren, um die Ziel-Performance-Metrik aufrechtzuerhalten.
  • Der Performance-Bestimmer 346 ist bei der beispielhaften Ausführungsform dafür ausgelegt, eine oder mehrere Performance-Metriken jeder Anwendung auf fortlaufender Basis zu bestimmen. Beispielsweise kann der Performance-Bestimmer 346 kontinuierlich die Anzahl von Anweisungen pro Zyklus bestimmen, die durch den der Anwendung zugeordneten Kern 230 ausgeführt worden sind, sowie die Anzahl von Treffern (Cache-Hits) oder Fehltreffern (Cache-Misses) in einem vorbestimmten Zeitraum, die Latenz bei der Bereitstellung einer Ausgabe für eine gegebene Gruppe von Vorgängen oder andere Messwerte der Performance von jeder durch die Rechenvorrichtung 130 ausgeführten Anwendung. Bei der beispielhaften Ausführungsform kann der Performance-Bestimmer 346 die Performance-Metriken in Intervallen bestimmen, die in den Dienstklassendaten 306 angegeben sind.
  • Der Dienstklassen-Anpasser 348 ist bei der beispielhaften Ausführungsform dafür ausgelegt, die einer oder mehreren Ressourcen der Rechenvorrichtung 130 zugeordnete Dienstklasse als Reaktion auf eine Bestimmung, ob eine jeder Anwendung zugeordnete Performance-Metrik die dazugehörige Ziel-Performance-Metrik für die derzeitige Phase jeder Anwendung erfüllt, selektiv zu erhöhen oder herabzusetzen. Falls die Ziel-Performance-Metrik erfüllt ist, kann der Dienstklassen-Anpasser 348 die derzeitige Dienstklasse für eine oder mehrere einer Anwendung zugeordnete Ressourcen auf eine niedrigere Dienstklasse im Bereich der Dienstklassen für die derzeitige Phase der Anwendung reduzieren (zum Beispiel weniger Wege von Cache-Assoziativität, weniger Speicherbandbreite usw.). Als Ergebnis kann der Dienstklassen-Anpasser 348 Ressourcen zur Verwendung durch andere Anwendungen freigeben. Dagegen kann der Dienstklassen-Anpasser 348 als Reaktion auf eine Feststellung, dass die Ziel-Performance-Metrik durch eine Anwendung derzeit nicht erfüllt ist, die Dienstklasse auf eine höhere Dienstklasse im für die derzeitige Phase der Anwendung angegebenen Bereich erhöhen, um mehr Ressourcen für die Anwendung bereitzustellen und dadurch die Performance der Anwendung zu erhöhen. Durch selektives Anpassen der Dienstklassen kann der Dienstklassen-Anpasser 348 einen bestimmten Ressourcentyp identifizieren, für den die Dienstklasse erhöht werden soll (zum Beispiel mehr Wege von Cache-Assoziativität), in Abhängigkeit vom Typ der Ziel-Performance-Metrik, die nicht erfüllt ist (zum Beispiel Cache-Treffer), oder er kann die Dienstklasse für alle Ressourcen erhöhen, für die in den Dienstklassendaten 306 höhere Dienstklassen vorliegen. Zudem kann der Dienstklassen-Anpasser 348 die Dienstklassen in einem in den Dienstklassendaten angegebenen Umfang anpassen (zum Beispiel lineare Inkremente, exponentielle Inkremente usw.).
  • Es versteht sich, dass sowohl der Phasenbestimmer 342 als auch der Subphasen-Bestimmer 344, der Performance-Bestimmer 346 und der Dienstklassen-Anpasser 348 separat als Hardware, Firmware, Software, virtualisierte Hardware, simulierte Architektur und/oder eine Kombination daraus ausgeführt sein können. Beispielsweise kann der Phasenbestimmer 342 als Hardwarekomponente ausgeführt sein, während der Subphasen-Bestimmer 344, der Performance-Bestimmer 346 und/oder der Dienstklassen-Anpasser 348 jeweils als virtualisierte Hardwarekomponente oder als eine andere Kombination aus Hardware, Firmware, Software, virtualisierte Hardware, simulierte Architektur und/oder eine Kombination daraus ausgeführt sind.
  • Mit Bezug auf 4 kann jede Rechenvorrichtung 130 im Betrieb ein Verfahren 400 zur adaptiven Steuerung einer Plattform-Dienstqualität ausführen. Das Verfahren 400 beginnt mit Block 402, in dem die Rechenvorrichtung 130 bei der beispielhaften Ausführungsform bestimmt, ob die Plattform-Dienstqualität der Rechenvorrichtung 130 verwaltet werden soll. Dabei kann die Rechenvorrichtung 130 bei der beispielhaften Ausführungsform bestimmen, ob die CPU 202 die adaptive pQoS-Logikeinheit 220 einschließt, in dem ein Register der CPU 202 auf einen vorbestimmten Wert geprüft wird, der das Vorliegen der adaptiven pQoS-Logikeinheit 220 angibt. Bei anderen Ausführungsformen kann die Rechenvorrichtung 130 bestimmen, ob die Plattform-Dienstqualität basierend auf anderen Faktoren verwaltet werden soll. Unabhängig davon geht das Verfahren 400 als Reaktion auf eine Festlegung der Verwaltung der Plattform-Dienstqualität zum Block 404 über, in dem die Rechenvorrichtung 130 eine Zuordnung von einer oder mehreren auszuführenden Anwendungen empfängt. Dabei kann die Rechenvorrichtung 130 Kennungen der Anwendungen und/oder des Anwendungscodes selbst vom Orchestrator-Server 140 empfangen. Bei anderen Ausführungsformen kann die Rechenvorrichtung 130 die Zuordnung der einen oder mehreren Anwendungen von einer anderen Quelle empfangen, wie zum Beispiel von einem direkt mit der Rechenvorrichtung 130 interagierenden Benutzer (zum Beispiel durch eine Benutzeroberfläche), von einer anderen Rechenvorrichtung 130 oder von einer anderen Quelle. Unabhängig davon geht das Verfahren 400 nach dem Empfang der Zuordnung der einen oder mehreren auszuführenden Anwendungen zum Block 406 über, in dem die Rechenvorrichtung 130 Dienstklassendaten für die eine oder mehreren auszuführenden Anwendungen erhält (zum Beispiel die Dienstklassendaten 306). Bei anderen Ausführungsformen kann die Rechenvorrichtung 130 die Dienstklassendaten 306 vor dem Empfang der Zuordnungen erhalten. Bei noch weiteren Ausführungsformen kann die Rechenvorrichtung 130 die Dienstklassendaten 306 gleichzeitig mit dem Empfang der Zuordnung der auszuführenden Anwendungen empfangen (zum Beispiel als mit den Anwendungen assoziierte Metadaten, als Parameter für eine oder mehrere Zuordnungsanforderungen usw.).
  • Beim Erhalt der Dienstklassendaten 306 erhält die Rechenvorrichtung 130 Daten, die einen Ressourcentyp angeben (zum Beispiel Anzahl von Wegen von Cache-Assoziativität, Speicherbandbreite usw.), einen Bereich von dem Ressourcentyp zugeordneten Dienstklassen und Mengen von jeder Ressource, die einer Anwendung für jede Dienstklasse im Bereich entsprechend der Angabe in Block 408 zugeordnet werden sollen. Beispielsweise kann der Bereich von Dienstklassen für den Cache eine erste Dienstklasse einschließen, die 10 Wege von Cache-Assoziativität angibt, eine zweite Dienstklasse, die 12 Wege von Cache-Assoziativität angibt und eine dritte Dienstklasse, die 14 Wege von Cache-Assoziativität angibt und so weiter. Entsprechend kann der Bereich von Dienstklassen für Speicherbandbreite eine erste Dienstklasse einschließen, die 10 % der Speicherbandbreite angibt, eine zweite Dienstklasse, die 20 % der Speicherbandbreite angibt und eine dritte Dienstklasse, die 30 % der Speicherbandbreite angibt und so weiter. Zusätzlich erhält die Rechenvorrichtung 130 in Block 410 beim Erhalten der Dienstklassendaten 306 Daten, die eine Ziel-Performance-Metrik für jede Phase einer Anwendung angeben. Bei der beispielhaften Ausführungsform können die Daten eine Ziel-Performance-Metrik von 10 Anweisungen pro Zyklus in Phase A einer Anwendung angeben, die einer relativ hohen Prozessorverwendung und einer relativ niedrigen Speicherverwendung zugeordnet werden können. Die Daten können auch eine Ziel-Performance-Metrik von 6 Anweisungen pro Zyklus in Phase B der Anwendung angeben, die einer relativ niedrigen Prozessorverwendung und einer relativ hohen Speicherverwendung zugeordnet werden können. Die Rechenvorrichtung 130 kann für jede Phase mehrere Ziel-Performance-Metriken empfangen (zum Beispiel eine Zielnummer von Anweisungen pro Zyklus und eine Zielnummer von Cache-Fehltreffern). Entsprechend der Angabe in Block 412 erhält die Rechenvorrichtung 130 bei der beispielhaften Ausführungsform auch Daten, die für jeden Ressourcentyp (zum Beispiel Anzahl von Wegen von Cache-Assoziativität, Speicherbandbreite usw.) eine maximale Dienstklasse, die vorgegeben werden kann, und einen Dienstklassen-Inkrementtyp für jede Phase jeder Anwendung angeben. Unter Verwendung des vorstehenden Beispiels kann die Rechenvorrichtung 130 Daten erhalten, die angeben, dass für Phase A der Anwendung die maximale Dienstklasse, die vorgegeben werden kann, die dritte Dienstklasse für jeden Ressourcentyp ist und dass für Phase B der Anwendung die Dienstklasse für die Speicherbandbreite die dritte Dienstklasse erreichen kann, wobei aber die Dienstklasse für die Anzahl von Wegen von Cache-Assoziativität nur die zweite Dienstklasse erreichen kann. Die Inkrementtypen geben an, wie schnell die Dienstklasse für einen oder mehrere Ressourcentypen als Reaktion auf die Bestimmung, dass die Performance der Anwendung einer dazugehörigen Ziel-Performance-Metrik für die derzeitige Phase der Anwendung nicht genügt, heraufgesetzt werden soll. Somit kann der Inkrementtyp einen linearen, exponentiellen oder sonstigen Verlauf aufweisen, mit dem die Dienstklasse heraufgesetzt werden soll.
  • Bei der beispielhaften Ausführungsform erhält die Rechenvorrichtung 130 in Block 414 Daten, die eine oder mehrere Performance-Metrik-Typen und Zeitintervalle zur periodischen Bestimmung der dazugehörigen Performance-Metriken der einen oder mehreren Anwendungen bei deren Ausführung angeben. Beispielsweise können die Daten angeben, dass die Anzahl von Anweisungen pro Sekunde ungefähr alle 2 bis 3 µs bestimmt werden soll und dass die Anzahl von Cache-Fehltreffern ungefähr alle 1 bis 2 µs bestimmt werden soll. Entsprechend der Angabe in Block 416 empfängt die Rechenvorrichtung 130 bei der beispielhaften Ausführungsform die Dienstklassendaten 306 vom Orchestrator-Server 140, wie weiter oben erörtert. Bei anderen Ausführungsformen kann die Rechenvorrichtung 130 die Dienstklassendaten 306 von einer anderen Quelle erhalten (zum Beispiel direkte Eingabe durch einen Administrator über eine Benutzeroberfläche, Einlesen aus einer Konfigurationsdatei, die zuvor basierend auf vorangegangenen Ausführungen der Anwendungen durch die Rechenvorrichtung 130 geschrieben worden sein kann usw.). Anschließend geht das Verfahren 400 zum Block 418 über, in dem die Rechenvorrichtung 130 die eine oder mehreren zugeordneten Anwendungen ausführt.
  • Bei der Ausführung der Anwendungen kann die Rechenvorrichtung 130 unterschiedliche Anwendungen mit unterschiedlichen Kernen 230 der CPU 202 (zum Beispiel eine Anwendung pro Kern) entsprechend den Angaben in Block 420 ausführen. Zusätzlich erzeugt die Rechenvorrichtung 130 bei der beispielhaften Ausführungsform bei der Ausführung der einen oder mehrere Anwendungen entsprechend der Angabe in Block 422 die Telemetriedaten 302. Weiter kann die Rechenvorrichtung 130 bei der beispielhaften Ausführungsform entsprechend der Angabe in Block 424 die Telemetriedaten 302 zur Analyse zum Orchestrator-Server 140 bereitstellen (beispielsweise senden) (z. B. Bestimmung der derzeitigen Phase jeder Anwendung). Anschließend geht das Verfahren 400 zum Block 426 aus 5 über, in dem die Rechenvorrichtung 130 die derzeitige Phase jeder Anwendung in Abhängigkeit von den Telemetriedaten 302 bestimmt.
  • Mit Bezug auf 5 kann die Rechenvorrichtung 130 bei der Bestimmung der derzeitigen Phase jeder Anwendung eine Identifizierung der derzeitigen Phase jeder Anwendung vom Orchestrator-Server 140 entsprechend der Angabe in Block 428 empfangen. Alternativ dazu und entsprechend der Angabe in Block 430 kann die Rechenvorrichtung 130 die derzeitige Phase jeder Anwendung lokal durch Vergleichen von einer oder mehreren Ressourcenverwendungen bestimmen (z. B. derzeitige Prozessorverwendung, derzeitige Speicherverwendung usw.), die in den Telemetriedaten 302 angegebenen sind, um auf mit unterschiedlichen Phasen jeder Anwendung assoziierte Ressourcenverwendungen (z. B. in den Phasendaten 304) zu verweisen. Anschließend bestimmt die Rechenvorrichtung 130 in Block 432, ob eine oder mehrere der Anwendungen in eine neue Phase eingetreten sind. Anfangs ist das Resultat ja, da die derzeitige Phase jeder Anwendung die erste seit Beginn der Ausführung bestimmte Phase ist. Als Reaktion auf eine Feststellung, dass die derzeitige Phase der einen oder mehreren Anwendungen eine neue Phase ist, geht das Verfahren 400 zu Block 434 über, in dem die Rechenvorrichtung aus den erhaltenen Dienstklassendaten 306 den Bereich von Dienstklassen für jede Ressource für die derzeitige Phase jeder Anwendung bestimmt (z. B. die in den Blöcken 408 und 412 aus 4 erhaltenen Bereiche und Daten der maximalen Dienstklasse).
  • In Block 436 setzt die Rechenvorrichtung 130 eine anfängliche Dienstklasse für jede Anwendung in Abhängigkeit von den bestimmten Bereichen fest. Dabei kann die Rechenvorrichtung 130 entsprechend der Angabe in Block 438 eine für jede Anwendung reservierte Anzahl von Wegen von Cache-Assoziativität festlegen. Entsprechend der Angabe in Block 440 kann die Rechenvorrichtung 130 einen Umfang von für jede Anwendung verfügbarer Speicherbandbreite festlegen. Weiter kann die Rechenvorrichtung 130 ein modellspezifisches Register festlegen (z. B. eines oder mehrere der Register 240), um die derzeitige Dienstklasse für jede Anwendung entsprechend der Angabe in Block 442 anzugeben. Zusätzlich kann die Rechenvorrichtung 130 entsprechend der Angabe im Block 444 eine Bitmaske oder andere Daten festlegen, um die Verfügbarkeit von einer oder mehreren der Ressourcen für andere durch die Rechenvorrichtung 130 ausgeführte Anwendungen anzugeben. Anschließend, oder falls in Block 432 keine neue Phase detektiert worden ist, geht das Verfahren 400 zu Block 446 aus 6 über, in dem die Rechenvorrichtung 130 eine oder mehrere Performance-Metriken jeder Anwendung überwacht.
  • Mit Bezug auf 6 kann die Rechenvorrichtung 130 bei der Überwachung der Performance-Metriken in der beispielhaften Ausführungsform entsprechend der Angabe in Block 448 individuelle Performance-Metriken bei den in den erhaltenen Dienstklassendaten 306 angegebenen Intervallen überwachen (z. B. bei den Intervallen aus Block 414 aus 4). Dabei kann die Rechenvorrichtung entsprechend der Angabe in Block 450 die Anzahl von Anweisungen pro Zyklus für jede Anwendung überwachen. Zusätzlich oder alternativ dazu kann die Rechenvorrichtung 130 entsprechend der Angabe in Block 452 die Anzahl von Cache-Fehltreffern für jede Anwendung überwachen. Bei anderen Ausführungsformen kann die Rechenvorrichtung 130 andere Performance-Metriken überwachen.
  • Anschließend bestimmt die Rechenvorrichtung 130 in Block 454, ob die überwachten Performance-Metriken den dazugehörigen, der derzeitigen Phase jeder Anwendung zugeordneten Ziel-Performance-Metriken genügen. Anschließend bestimmt die Rechenvorrichtung 130 in Block 456 den anschließenden Vorgangsverlauf in Abhängigkeit davon, ob die Ziel-Performance-Metriken erfüllt waren. Falls eine oder mehrere der Ziel-Performance-Metriken nicht erfüllt waren, geht das Verfahren 400 zu Block 458 über. In Block 458 setzt die Rechenvorrichtung 130 die derzeitige Dienstklasse für eine oder mehrere Ressourcen auf eine höhere Dienstklasse in dem der derzeitigen Phase jeder Anwendung, für die die dazugehörige Ziel-Performance-Metrik nicht erfüllt war, zugeordneten Bereich herauf. Dabei, und entsprechend der Angabe in Block 460, kann die Rechenvorrichtung 130 für jede in den Dienstklassendaten 306 identifizierte Ressource eine höhere Dienstklasse festlegen. Alternativ dazu kann die Rechenvorrichtung 130 die derzeitige Dienstklasse entsprechend der Angabe in Block 462 nur für eine Untermenge der in den Dienstklassen 306 identifizierten Ressourcen heraufsetzen (z. B. nur die Speicherbandbreite heraufsetzen, ohne die Wege von Cache-Assoziativität heraufzusetzen). Beim Heraufsetzen auf eine höhere Dienstklasse kann die Rechenvorrichtung 130 entsprechend der Angabe in Block 464 die Erhöhung in Abhängigkeit vom Inkrementtyp durchführen, der in den Dienstklassendaten 306 angegeben ist (z. B. eine lineare Erhöhung, eine exponentielle Erhöhung usw.). Alternativ dazu kann die Rechenvorrichtung 130 entsprechend der Angabe in Block 466 einen Fehler melden (zum Beispiel über eine Benutzeroberfläche an einen Benutzer, an den Orchestrator-Server 140 usw.), falls die derzeitige Dienstklasse bereits die maximale Dienstklasse für die derzeitige Phase ist. Anschließend springt das Verfahren 400 zurück zu Block 418 aus 4, in dem die Rechenvorrichtung 130 die Ausführung der zugewiesenen Anwendungen fortsetzt.
  • Wenn wieder mit Bezug auf Block 456 die Rechenvorrichtung 130 stattdessen bestimmt, dass die Ziel-Performance-Metriken für alle Anwendungen erfüllt worden sind, geht das Verfahren 400 zu Block 468 aus 7 über, in dem die Rechenvorrichtung 130 die derzeitige Dienstklasse für die Anwendungen auf eine niedrigere Dienstklasse im Bereich für die derzeitige Phase jeder Anwendung herabsetzt. Mit Bezug auf 7 kann die Rechenvorrichtung 130 beim Herabsetzen auf eine niedrigere Dienstklasse entsprechend der Angabe in Block 470 auf eine niedrigere Dienstklasse für jede in den Dienstklassen 306 identifizierte Ressource herabsetzen. Alternativ dazu kann die Rechenvorrichtung 130 entsprechend der Angabe in Block 472 nur für eine Untermenge der Ressourcen eine niedrigere Dienstklasse vorgeben (z. B. nur die Dienstklasse für die Speicherbandbreite herabsetzen, während die Dienstklasse der Cache-Assoziativität unverändert gelassen wird). Anschließend springt das Verfahren 400 zurück zu Block 418 aus 4, in dem die Rechenvorrichtung 130 die Ausführung der zugewiesenen Anwendungen fortsetzt. Somit gibt die Rechenvorrichtung 130 einen Umfang der Ressourcen zur Verwendung durch andere Anwendungen frei und bestimmt, ob die Ziel-Performance-Metriken noch erfüllt sind.
  • BEISPIELE
  • Veranschaulichende Beispiele der hier offenbarten Technologien sind im Folgenden bereitgestellt. Einer Ausführungsform bei Technologien kann eines oder mehrere oder eine beliebige Kombination der hier beschriebenen Beispiele einschließen.
  • Beispiel 1 weist eine Rechenvorrichtung zur adaptiven Steuerung einer Plattform-Dienstqualität auf, wobei die Rechenvorrichtung eine oder mehrere Prozessoren umfasst; wobei eine oder mehrere Speichervorrichtungen eine darin gespeicherte Mehrzahl von Anweisungen aufweisen, die bei Ausführung durch den einen oder die mehreren Prozessoren die Computervorrichtung veranlassen, Dienstklassendaten für eine auszuführende Anwendung zu erhalten, wobei die Dienstklassendaten einen Umfang von einer oder mehreren Ressourcen angeben, die der Anwendung für jede Dienstklasse in einem Bereich von Dienstklassen zugeordnet werden sollen, sowie eine Ziel-Performance-Metrik für jede Phase der Anwendung und eine maximale Dienstklasse für jede Phase der Anwendung; und die Anwendung auszuführen; in Abhängigkeit von einer oder mehreren Ressourcenverwendungen der Anwendung bei der Ausführung der Anwendung eine derzeitige Phase der Anwendung zu bestimmen; eine derzeitige Dienstklasse für die Anwendung in Abhängigkeit von der bestimmten Phase festzulegen, wobei die derzeitige Dienstklasse innerhalb des der bestimmten Phase zugeordneten Bereichs ist; zu bestimmen, ob eine derzeitige Performance-Metrik der Anwendung der Ziel-Performance-Metrik genügt; und als Reaktion auf eine Bestimmung, dass die derzeitige Performance-Metrik der Ziel-Performance-Metrik nicht genügt, die derzeitige Dienstklasse auf eine höhere Dienstklasse im Bereich heraufzusetzen.
  • Beispiel 2 weist den Gegenstand von Beispiel 1 auf, wobei die Mehrzahl von Anweisungen bei der Ausführung weiter die Rechenvorrichtung veranlasst, als Reaktion auf eine Bestimmung, dass die derzeitige Performance-Metrik der Ziel-Performance-Metrik genügt, die derzeitige Dienstklasse auf eine niedrigere Dienstklasse im Bereich herabzusetzen.
  • Beispiel 3 weist den Gegenstand von einem der Beispiele 1 und 2 auf, wobei die Mehrzahl von Anweisungen bei der Ausführung die Rechenvorrichtung weiter veranlasst, zu detektieren, ob die Anwendung eine anschließende Phase durchlaufen hat; und als Reaktion auf eine Bestimmung, dass die Anwendung eine anschließende Phase durchlaufen hat, einen zweiten Bereich von der anschließenden Phase zugeordneten Dienstphasen zu bestimmen; und eine anschließende Dienstphase für die Anwendung in Abhängigkeit von der anschließenden Phase vorzugeben, wobei die anschließende Dienstklasse innerhalb des zweiten Bereichs ist.
  • Beispiel 4 weist den Gegenstand von einem der Beispiele 1-3 auf, wobei das Erhalten der Dienstklassendaten den Empfang von Inkrementtyp-Daten umfasst, die einen Betrag angeben, um den die derzeitige Dienstklasse als Reaktion auf eine Bestimmung, dass die derzeitige Performance-Metrik nicht der Ziel-Performance-Metrik genügt, heraufgesetzt werden soll.
  • Beispiel 5 weist den Gegenstand von einem der Beispiele 1-4 auf, wobei das Heraufsetzen der Dienstklasse das Heraufsetzen einer Anzahl von für die Anwendung verfügbaren Wegen von Cache-Assoziativität umfasst.
  • Beispiel 6 weist den Gegenstand von einem der Beispiele 1-5 auf, wobei das Heraufsetzen der Dienstklasse das Heraufsetzen einer für die Anwendung verfügbaren Speicherbandbreite umfasst.
  • Beispiel 7 weist den Gegenstand von einem der Beispiele 1-6 auf, wobei die Mehrzahl von Anweisungen bei der Ausführung weiter die Rechenvorrichtung veranlasst, ein modellspezifisches Register vorzugeben, um die derzeitige Dienstklasse der Anwendung anzugeben.
  • Beispiel 8 weist den Gegenstand von einem der Beispiele 1-7 auf, wobei die Mehrzahl von Anweisungen bei der Ausführung weiter die Rechenvorrichtung veranlasst, eine Bitmaske vorzugeben, die eine Verfügbarkeit von einer oder mehreren Ressourcen für andere Anwendungen angibt.
  • Beispiel 9 weist den Gegenstand von einem der Beispiele 1-8 auf, wobei die Bestimmung, ob die derzeitige Performance-Metrik der Ziel-Performance-Metrik genügt, das Bestimmen umfasst, ob eine derzeitige Anzahl von Anweisungen pro Zyklus einer Zielanzahl von Anweisungen pro Zyklus genügt.
  • Beispiel 10 weist den Gegenstand von einem der Beispiele 1-9 auf, wobei die Bestimmung, ob die derzeitige Performance-Metrik der Ziel-Performance-Metrik genügt, das Bestimmen umfasst, ob eine derzeitige Anzahl von Cache-Fehltreffern einer Zielanzahl von Cache-Fehltreffern genügt.
  • Beispiel 11 weist den Gegenstand von einem der Beispiele 1-10 auf, wobei das Heraufsetzen der derzeitigen Dienstklasse das Heraufsetzen eines Umfangs einer der Anwendung zugeordneten Ressource umfasst.
  • Beispiel 12 weist den Gegenstand von einem der Beispiele 1-11 auf, wobei das Heraufsetzen der derzeitigen Dienstklasse das Heraufsetzen eines Umfangs von mehreren der Anwendung zugeordneten Ressourcen umfasst.
  • Beispiel 13 weist den Gegenstand von einem der Beispiele 1-12 auf, wobei die Mehrzahl von Anweisungen bei der Ausführung weiter die Rechenvorrichtung veranlasst, Telemetriedaten, die Ressourcenverwendungen durch die Anwendung angeben, an einen Orchestrator-Server zu melden; und wobei die Bestimmung der derzeitigen Phase der Anwendung den Empfang einer Identifizierung der derzeitigen Phase vom Orchestrator-Server umfasst.
  • Beispiel 14 weist den Gegenstand von einem der Beispiele 1-13 auf, wobei die Bestimmung der derzeitigen Phase der Anwendung das Vergleichen der Ressourcenverwendung der Anwendung mit unterschiedlichen Phasen zugeordneten Referenz-Ressourcenverwendungen umfasst.
  • Beispiel 15 weist den Gegenstand von einem der Beispiele 1-14 auf, wobei der eine oder die mehreren Prozessoren mehrere Kerne einschließen und wobei das Ausführen der Anwendung die Ausführung mehrerer Anwendungen mit unterschiedlichen Kernen der Rechenvorrichtung umfasst.
  • Beispiel 16 weist ein Verfahren zur adaptiven Steuerung einer Plattform-Dienstqualität auf, wobei das Verfahren das Erhalten von Dienstklassendaten für eine auszuführende Anwendung durch eine Rechenvorrichtung umfasst, wobei die Dienstklassendaten einen Umfang von einer oder mehreren Ressourcen angeben, die der Anwendung für jede Dienstklasse in einem Bereich von Dienstklassen zugeordnet werden sollen, sowie eine Ziel-Performance-Metrik für jede Phase der Anwendung und eine maximale Dienstklasse für jede Phase der Anwendung; und die Ausführung der Anwendung durch die Rechenvorrichtung; die Bestimmung, in Abhängigkeit von einer oder mehreren Ressourcenverwendungen der Anwendung bei der Ausführung der Anwendung, einer derzeitigen Phase der Anwendung durch die Rechenvorrichtung; die Vorgabe einer derzeitigen Dienstklasse für die Anwendung in Abhängigkeit von der bestimmten Phase durch die Rechenvorrichtung, wobei die derzeitige Dienstklasse innerhalb des der bestimmten Phase zugeordneten Bereichs ist; die Bestimmung durch die Rechenvorrichtung, ob eine derzeitige Performance-Metrik der Anwendung der Ziel-Performance-Metrik genügt; und das Heraufsetzen der derzeitigen Dienstklasse auf eine höhere Dienstklasse im Bereich als Reaktion auf eine Bestimmung, dass die derzeitige Performance-Metrik der Ziel-Performance-Metrik nicht genügt.
  • Beispiel 17 weist den Gegenstand von Beispiel 16 auf, weiter aufweisend das Herabsetzen der derzeitigen Dienstklasse auf eine niedrigere Dienstklasse im Bereich durch die Rechenvorrichtung als Reaktion auf eine Bestimmung, dass die derzeitige Performance-Metrik der Ziel-Performance-Metrik genügt.
  • Beispiel 18 weist den Gegenstand von einem der Beispiele 16 und 17 auf, weiter aufweisend das Detektieren durch die Rechenvorrichtung, ob die Anwendung eine nachfolgende Phase durchlaufen hat; die Bestimmung durch die Rechenvorrichtung als Reaktion auf eine Bestimmung, dass die Anwendung eine nachfolgende Phase durchlaufen hat, eines zweiten Bereichs von der nachfolgenden Phase zugeordneten Dienstklassen; und die Vorgabe durch die Rechenvorrichtung einer nachfolgenden Dienstklasse für die Anwendung in Abhängigkeit von der nachfolgenden Phase, wobei die nachfolgende Dienstklasse im zweiten Bereich ist.
  • Beispiel 19 weist den Gegenstand von einem der Beispiele 16-18 auf, wobei das Erhalten der Dienstklassendaten den Empfang von Inkrementtyp-Daten umfasst, die einen Umfang angeben, um den die derzeitige Dienstklasse als Reaktion auf eine Bestimmung, dass die derzeitige Performance-Metrik nicht der Ziel-Performance-Metrik genügt, heraufgesetzt werden soll.
  • Beispiel 20 weist den Gegenstand von einem der Beispiele 16-19 auf, wobei das Heraufsetzen der Dienstklasse das Heraufsetzen einer Anzahl von für die Anwendung verfügbaren Wegen von Cache-Assoziativität umfasst.
  • Beispiel 21 weist den Gegenstand von einem der Beispiele 16-20 auf, wobei das Heraufsetzen der Dienstklasse das Heraufsetzen einer für die Anwendung verfügbaren Speicherbandbreite umfasst.
  • Beispiel 22 weist den Gegenstand von einem der Beispiele 16-21 auf, weiter umfassend die Vorgabe eines modellspezifischen Registers durch die Rechenvorrichtung, um die derzeitige Dienstklasse der Anwendung anzugeben.
  • Beispiel 23 weist den Gegenstand von einem der Beispiele 16-22 auf, weiter umfassend die Vorgabe einer Bitmaske, die eine Verfügbarkeit von einer oder mehreren Ressourcen für andere Anwendungen angibt, durch die Rechenvorrichtung.
  • Beispiel 24 weist den Gegenstand von einem der Beispiele 16-23 auf, wobei die Bestimmung, ob die derzeitige Performance-Metrik der Ziel-Performance-Metrik genügt, das Bestimmen umfasst, ob eine derzeitige Anzahl von Anweisungen pro Zyklus einer Zielanzahl von Anweisungen pro Zyklus genügt.
  • Beispiel 25 weist den Gegenstand von einem der Beispiele 16-24 auf, wobei die Bestimmung, ob die derzeitige Performance-Metrik der Ziel-Performance-Metrik genügt, das Bestimmen umfasst, ob eine derzeitige Anzahl von Cache-Fehltreffern einer Zielanzahl von Cache-Fehltreffern genügt.
  • Beispiel 26 weist den Gegenstand von einem der Beispiele 16-25 auf, wobei das Heraufsetzen der derzeitigen Dienstklasse das Heraufsetzen eines Umfangs einer der Anwendung zugeordneten Ressource umfasst.
  • Beispiel 27 weist den Gegenstand von einem der Beispiele 16-26 auf, wobei das Heraufsetzen der derzeitigen Dienstklasse das Heraufsetzen eines Umfangs von mehreren der Anwendung zugeordneten Ressourcen umfasst.
  • Beispiel 28 weist den Gegenstand von einem der Beispiele 16-27 auf, weiter aufweisend das Melden von Telemetriedaten, die Ressourcenverwendungen durch die Anwendung angeben, an einen Orchestrator-Server durch die Rechenvorrichtung; wobei die Bestimmung der derzeitigen Phase der Anwendung den Empfang einer Identifizierung der derzeitigen Phase vom Orchestrator-Server umfasst.
  • Beispiel 29 weist den Gegenstand von einem der Beispiele 16-28 auf, wobei die Bestimmung der derzeitigen Phase der Anwendung das Vergleichen der Ressourcenverwendung der Anwendung mit unterschiedlichen Phasen zugeordneten Referenz-Ressourcenverwendungen umfasst.
  • Beispiel 30 weist den Gegenstand von einem der Beispiele 16-29 auf, wobei das Ausführen der Anwendung die Ausführung mehrerer Anwendungen mit unterschiedlichen Kernen der Rechenvorrichtung umfasst.
  • Beispiel 31 weist ein oder mehrere maschinenlesbare Speichermedien auf, umfassend eine Mehrzahl von darauf gespeicherten Anweisungen, die als Reaktion auf ihre Ausführung eine Rechenvorrichtung veranlassen, das Verfahren nach einem der Beispiele 16-30 durchzuführen.
  • Beispiel 32 weist eine Rechenvorrichtung zur adaptiven Steuerung einer Plattform-Dienstqualität auf, wobei die Rechenvorrichtung einen oder mehrere Prozessoren umfasst, und eine oder mehrere Speichervorrichtungen mit einer darin gespeicherten Mehrzahl von Anweisungen, die bei Ausführung durch den einen oder die mehrere Prozessoren die Rechenvorrichtung veranlassen, das Verfahren nach einem der Beispiele 16-30 durchzuführen.
  • Beispiel 33 weist eine Rechenvorrichtung auf, umfassend Mittel zum Durchführen des Verfahrens nach einem der Beispiele 16-30.
  • Beispiel 34 weist eine Rechenvorrichtung zur adaptiven Steuerung einer Plattform-Dienstqualität auf, wobei die Rechenvorrichtung einen Plattform-Dienstqualitäts-Verwaltungsschaltkreis umfasst, um Dienstklassendaten für eine auszuführende Anwendung zu erhalten, wobei die Dienstklassendaten einen Umfang von einer oder mehreren Ressourcen angeben, die der Anwendung für jede Dienstklasse in einem Bereich von Dienstklassen zugeordnet werden sollen, sowie eine Ziel-Performance-Metrik für jede Phase der Anwendung und eine maximale Dienstklasse für jede Phase der Anwendung; und einen Anwendungs-Ausführungsschaltkreis zum Ausführen der Anwendung; wobei der Plattform-Dienstqualitäts-Verwaltungsschaltkreis weiter in Abhängigkeit von einer oder mehreren Ressourcenverwendungen der Anwendung bei der Ausführung der Anwendung eine derzeitige Phase der Anwendung bestimmt; eine derzeitige Dienstklasse für die Anwendung in Abhängigkeit von der bestimmten Phase vorgibt, wobei die derzeitige Dienstklasse innerhalb des der bestimmten Phase zugeordneten Bereichs ist; bestimmt, ob eine derzeitige Performance-Metrik der Anwendung der Ziel-Performance-Metrik genügt; und als Reaktion auf eine Bestimmung, dass die derzeitige Performance-Metrik der Ziel-Performance-Metrik nicht genügt, die derzeitige Dienstklasse auf eine höhere Dienstklasse im Bereich heraufsetzt.
  • Beispiel 35 weist den Gegenstand von Beispiel 34 auf, wobei der Plattform-Dienstqualitäts-Verwaltungsschaltkreis weiter als Reaktion auf eine Bestimmung, dass die derzeitige Performance-Metrik der Ziel-Performance-Metrik genügt, die derzeitige Dienstklasse auf eine niedrigere Dienstklasse im Bereich herabsetzt.
  • Beispiel 36 weist den Gegenstand von einem der Beispiele 34 und 35 auf, wobei der Plattform-Dienstqualitäts-Verwaltungsschaltkreis weiter detektiert, ob die Anwendung eine nachfolgende Phase durchlaufen hat; als Reaktion auf eine Bestimmung, dass die Anwendung zu einer nachfolgenden Phase übergegangen ist, einen zweiten Bereich von der nachfolgenden Phase zugeordneten Dienstklassen bestimmt; und in Abhängigkeit von der nachfolgenden Phase eine nachfolgende Dienstklasse für die Anwendung vorgibt, wobei die nachfolgende Dienstklasse im zweiten Bereich ist.
  • Beispiel 37 weist den Gegenstand von einem der Beispiele 34-36 auf, wobei das Erhalten der Dienstklassendaten den Empfang von Inkrementtyp-Daten umfasst, die einen Umfang angeben, um den die derzeitige Dienstklasse als Reaktion auf eine Bestimmung, dass die derzeitige Performance-Metrik nicht der Ziel-Performance-Metrik genügt, heraufgesetzt werden soll.
  • Beispiel 38 weist den Gegenstand von einem der Beispiele 34-37 auf, wobei das Heraufsetzen der Dienstklasse das Heraufsetzen einer Anzahl von für die Anwendung verfügbaren Wegen von Cache-Assoziativität umfasst.
  • Beispiel 39 weist den Gegenstand von einem der Beispiele 34-38 auf, wobei das Heraufsetzen der Dienstklasse das Heraufsetzen einer für die Anwendung verfügbaren Speicherbandbreite umfasst.
  • Beispiel 40 weist den Gegenstand von einem der Beispiele 34-39 auf, wobei der Plattform-Dienstqualitäts-Verwaltungsschaltkreis weiter ein modellspezifisches Register vorgibt, um die derzeitige Dienstklasse der Anwendung anzugeben.
  • Beispiel 41 weist den Gegenstand von einem der Beispiele 34-40 auf, wobei der Plattform-Dienstqualitäts-Verwaltungsschaltkreis weiter eine Bitmaske vorgibt, die eine Verfügbarkeit von einer oder mehreren Ressourcen für andere Anwendungen angibt.
  • Beispiel 42 weist den Gegenstand von einem der Beispiele 34-41 auf, wobei die Bestimmung, ob die derzeitige Performance-Metrik der Ziel-Performance-Metrik genügt, das Bestimmen umfasst, ob eine derzeitige Anzahl von Anweisungen pro Zyklus einer Zielanzahl von Anweisungen pro Zyklus genügt.
  • Beispiel 43 weist den Gegenstand von einem der Beispiele 34-42 auf, wobei die Bestimmung, ob die derzeitige Performance-Metrik der Ziel-Performance-Metrik genügt, das Bestimmen umfasst, ob eine derzeitige Anzahl von Cache-Fehltreffern einer Zielanzahl von Cache-Fehltreffern genügt.
  • Beispiel 44 weist den Gegenstand von einem der Beispiele 34-43 auf, wobei das Heraufsetzen der derzeitigen Dienstklasse das Heraufsetzen eines Umfangs einer der Anwendung zugeordneten Ressource umfasst.
  • Beispiel 45 weist den Gegenstand von einem der Beispiele 34-44 auf, wobei das Heraufsetzen der derzeitigen Dienstklasse das Heraufsetzen eines Umfangs von mehreren der Anwendung zugeordneten Ressourcen umfasst.
  • Beispiel 46 weist den Gegenstand von einem der Beispiele 34-45 auf, weiter aufweisend einen Netzwerk-Kommunikator-Schaltkreis, um Telemetriedaten, die Ressourcenverwendungen durch die Anwendung angeben, an einen Orchestrator-Server zu melden; und wobei die Bestimmung der derzeitigen Phase der Anwendung den Empfang einer Identifizierung der derzeitigen Phase vom Orchestrator-Server umfasst.
  • Beispiel 47 weist den Gegenstand von einem der Beispiele 34-46 auf, wobei die Bestimmung der derzeitigen Phase der Anwendung das Vergleichen der Ressourcenverwendung der Anwendung mit unterschiedlichen Phasen zugeordneten Referenz-Ressourcenverwendungen umfasst.
  • Beispiel 48 weist den Gegenstand von einem der Beispiele 34-47 auf, wobei das Ausführen der Anwendung die Ausführung mehrerer Anwendungen mit unterschiedlichen Kernen der Rechenvorrichtung umfasst.
  • Beispiel 49 weist eine Rechenvorrichtung zur adaptiven Steuerung einer Plattform-Dienstqualität auf, wobei die Rechenvorrichtung einen Schaltkreis umfasst, um Dienstklassendaten für eine auszuführende Anwendung zu erhalten, wobei die Dienstklassendaten einen Umfang von einer oder mehreren Ressourcen angeben, die der Anwendung für jede Dienstklasse in einem Bereich von Dienstklassen zugeordnet werden sollen, sowie eine Ziel-Performance-Metrik für jede Phase der Anwendung und eine maximale Dienstklasse für jede Phase der Anwendung; sowie einen Schaltkreis zum Ausführen der Anwendung; Mittel zum Bestimmen, in Abhängigkeit von einer oder mehreren Ressourcenverwendungen der Anwendung bei der Ausführung der Anwendung, einer derzeitigen Phase der Anwendung; Mittel zum Vorgeben einer derzeitigen Dienstklasse für die Anwendung in Abhängigkeit von der bestimmten Phase, wobei die derzeitige Dienstklasse innerhalb des der bestimmten Phase zugeordneten Bereichs ist; Mittel zum Bestimmen, ob eine derzeitige Performance-Metrik der Anwendung der Ziel-Performance-Metrik genügt; und Mittel zum Heraufsetzen, als Reaktion auf eine Bestimmung, dass die derzeitige Performance-Metrik der Ziel-Performance-Metrik nicht genügt, der derzeitigen Dienstklasse auf eine höhere Dienstklasse im Bereich.
  • Beispiel 50 weist den Gegenstand von Beispiel 49 auf, weiter aufweisend Mittel zum Herabsetzen, als Reaktion auf eine Bestimmung, dass die derzeitige Performance-Metrik der Ziel-Performance-Metrik genügt, der derzeitigen Dienstklasse auf eine niedrigere Dienstklasse im Bereich.
  • Beispiel 51 weist den Gegenstand von einem der Beispiele 49 und 50 auf, weiter aufweisend Mittel zum Detektieren, ob die Anwendung eine nachfolgende Phase durchlaufen hat; Mittel zur Bestimmung, als Reaktion auf eine Bestimmung, dass die Anwendung zu einer nachfolgenden Phase übergegangen ist, eines zweiten Bereichs von der nachfolgenden Phase zugeordneten Dienstklassen; und Mittel zum Vorgeben einer nachfolgenden Dienstklasse für die Anwendung in Abhängigkeit von der nachfolgenden Phase, wobei die nachfolgende Dienstklasse im zweiten Bereich ist.
  • Beispiel 52 weist den Gegenstand von einem der Beispiele 49-51 auf, wobei der Schaltkreis zum Erhalten der Dienstklassendaten einen Schaltkreis zum Empfangen von Inkrementtyp-Daten umfasst, die einen Umfang angeben, um den die derzeitige Dienstklasse als Reaktion auf eine Bestimmung, dass die derzeitige Performance-Metrik nicht der Ziel-Performance-Metrik genügt, heraufgesetzt werden soll.
  • Beispiel 53 weist den Gegenstand von einem der Beispiele 49-52 auf, wobei die Mittel zum Heraufsetzen der Dienstklasse einen Schaltkreis zum Heraufsetzen einer Anzahl von für die Anwendung verfügbaren Wegen von Cache-Assoziativität umfassen.
  • Beispiel 54 weist den Gegenstand von einem der Beispiele 49-53 auf, wobei Mittel zum Heraufsetzen der Dienstklasse einen Schaltkreis zum Heraufsetzen einer für die Anwendung verfügbaren Speicherbandbreite umfassen.
  • Beispiel 55 weist den Gegenstand von einem der Beispiele 49-54 auf, weiter umfassend einen Schaltkreis zum Vorgeben eines modellspezifischen Registers, um die derzeitige Dienstklasse der Anwendung anzugeben.
  • Beispiel 56 weist den Gegenstand von einem der Beispiele 49-55 auf, weiter umfassend einen Schaltkreis zum Vorgeben einer Bitmaske, die eine Verfügbarkeit von einer oder mehreren Ressourcen für andere Anwendungen angibt.
  • Beispiel 57 weist den Gegenstand von einem der Beispiele 49-56 auf, wobei die Mittel zum Bestimmen, ob die derzeitige Performance-Metrik der Ziel-Performance-Metrik genügt, einen Schaltkreis zur Bestimmung umfassen, ob eine derzeitige Anzahl von Anweisungen pro Zyklus einer Zielanzahl von Anweisungen pro Zyklus genügt.
  • Beispiel 58 weist den Gegenstand von einem der Beispiele 49-57 auf, wobei die Mittel zum Bestimmen, ob die derzeitige Performance-Metrik der Ziel-Performance-Metrik genügt, einen Schaltkreis zur Bestimmung umfassen, ob eine derzeitige Anzahl von Cache-Fehltreffern einer Zielanzahl von Cache-Fehltreffern genügt.
  • Beispiel 59 weist den Gegenstand von einem der Beispiele 49-58 auf, wobei die Mittel zum Heraufsetzen der Dienstklasse einen Schaltkreis zum Heraufsetzen eines Umfangs einer der Anwendung zugeordneten Ressource umfassen.
  • Beispiel 60 weist den Gegenstand von einem der Beispiele 49-59 auf, wobei die Mittel zum Heraufsetzen der Dienstklasse einen Schaltkreis zum Heraufsetzen eines Umfangs von mehreren der Anwendung zugeordneten Ressourcen umfassen.
  • Beispiel 61 weist den Gegenstand von einem der Beispiele 49-60 auf, weiter aufweisend einen Schaltkreis zum Melden von Telemetriedaten, die Ressourcenverwendungen durch die Anwendung angeben, an einen Orchestrator-Server; wobei die Mittel zur Bestimmung der derzeitigen Phase der Anwendung einen Schaltkreis zum Empfangen einer Identifizierung der derzeitigen Phase vom Orchestrator-Server umfassen.
  • Beispiel 62 weist den Gegenstand von einem der Beispiele 49-61 auf, wobei die Mittel zur Bestimmung der derzeitigen Phase der Anwendung einen Schaltkreis zum Vergleichen der Ressourcenverwendung der Anwendung mit unterschiedlichen Phasen zugeordneten Referenz-Ressourcenverwendungen umfassen.
  • Beispiel 63 weist den Gegenstand von einem der Beispiele 49-62 auf, wobei der Schaltkreis zum Ausführen der Anwendung einen Schaltkreis zur Ausführung mehrerer Anwendungen mit unterschiedlichen Kernen der Rechenvorrichtung umfasst.

Claims (25)

  1. Rechenvorrichtung zum adaptiven Steuern einer Plattform-Dienstqualität, wobei die Rechenvorrichtung Folgendes umfasst: einen oder mehrere Prozessoren; eine oder mehrere Speichervorrichtungen einer darin gespeicherten Mehrzahl von Anweisungen, die bei Ausführung durch den einen oder die mehreren Prozessoren die Rechenvorrichtung zu Folgendem veranlassen: Erhalten von Dienstklassendaten für eine auszuführende Anwendung, wobei die Dienstklassendaten einen Umfang von einer oder mehreren Ressourcen angeben, die der Anwendung für jede Dienstklasse in einem Bereich von Dienstklassen zugeordnet werden sollen, sowie einer Ziel-Performance-Metrik für jede Phase der Anwendung und einer maximalen Dienstklasse für jede Phase der Anwendung; Ausführen der Anwendung; Bestimmen einer derzeitigen Phase der Anwendung in Abhängigkeit von einer oder mehreren Ressourcenverwendungen der Anwendung bei der Ausführung der Anwendung; Vorgeben einer derzeitigen Dienstklasse für die Anwendung in Abhängigkeit von der bestimmten Phase, wobei die derzeitige Dienstklasse innerhalb des der bestimmten Phase zugeordneten Bereichs ist; Bestimmen, ob eine derzeitige Performance-Metrik der Anwendung der Ziel-Performance-Metrik genügt; und Heraufsetzen, in Abhängigkeit von einer Bestimmung, dass die derzeitige Performance-Metrik nicht der Ziel-Performance-Metrik genügt, der derzeitigen Dienstklasse auf eine höhere Dienstklasse im Bereich.
  2. Rechenvorrichtung nach Anspruch 1, wobei die Mehrzahl von Anweisungen bei der Ausführung die Rechenvorrichtung weiter veranlasst, als Reaktion auf eine Bestimmung, dass die derzeitige Performance-Metrik der Ziel-Performance-Metrik genügt, die derzeitige Dienstklasse auf eine niedrigere Dienstklasse im Bereich herabzusetzen.
  3. Rechenvorrichtung nach Anspruch 1, wobei die Mehrzahl von Anweisungen bei der Ausführung die Rechenvorrichtung weiter zu Folgendem veranlasst: Detektieren, ob die Anwendung eine nachfolgende Phase durchlaufen hat; Bestimmen, als Reaktion auf eine Bestimmung, dass die Anwendung zu einer nachfolgenden Phase übergegangen ist, eines zweiten Bereichs von der nachfolgenden Phase zugeordneten Dienstklassen; und Vorgeben einer nachfolgenden Dienstklasse für die Anwendung in Abhängigkeit von der nachfolgenden Phase, wobei die nachfolgende Dienstklasse im zweiten Bereich ist.
  4. Rechenvorrichtung nach Anspruch 1, wobei das Erhalten der Dienstklassendaten den Empfang von Inkrementtyp-Daten umfasst, die einen Umfang angeben, um den die derzeitige Dienstklasse als Reaktion auf eine Bestimmung, dass die derzeitige Performance-Metrik der Ziel-Performance-Metrik nicht genügt, heraufgesetzt werden soll.
  5. Rechenvorrichtung nach Anspruch 1, wobei das Heraufsetzen der Dienstklasse das Heraufsetzen einer Anzahl von für die Anwendung verfügbaren Wegen von Cache-Assoziativität umfasst.
  6. Rechenvorrichtung nach Anspruch 1, wobei das Heraufsetzen der Dienstklasse das Heraufsetzen von für die Anwendung verfügbarer Speicherbandbreite umfasst.
  7. Rechenvorrichtung nach Anspruch 1, wobei die Mehrzahl von Anweisungen bei der Ausführung die Rechenvorrichtung weiter veranlasst, ein modellspezifisches Register vorzugeben, um die derzeitige Dienstklasse der Anwendung anzugeben.
  8. Rechenvorrichtung nach Anspruch 1, wobei die Mehrzahl von Anweisungen bei der Ausführung die Rechenvorrichtung weiter veranlasst, eine Bitmaske vorzugeben, die eine Verfügbarkeit von einer oder mehreren Ressourcen für andere Anwendungen angibt.
  9. Rechenvorrichtung nach Anspruch 1, wobei das Bestimmen, ob die derzeitige Performance-Metrik der Ziel-Performance-Metrik genügt, die Bestimmung umfasst, ob eine derzeitige Anzahl von Anweisungen pro Zyklus einer Ziel-Anzahl von Anweisungen pro Zyklus genügt.
  10. Rechenvorrichtung nach Anspruch 1, wobei das Bestimmen, ob die derzeitige Performance-Metrik der Ziel-Performance-Metrik genügt, die Bestimmung umfasst, ob eine derzeitige Anzahl von Cache-Fehltreffern einer Ziel-Anzahl von Cache-Fehltreffern genügt.
  11. Rechenvorrichtung nach Anspruch 1, wobei das Heraufsetzen der derzeitigen Dienstklasse das Heraufsetzen eines Umfangs einer der Anwendung zugeordneten Ressource umfasst.
  12. Rechenvorrichtung nach Anspruch 1, wobei das Heraufsetzen der derzeitigen Dienstklasse das Heraufsetzen eines Umfangs von mehreren der Anwendung zugeordneten Ressourcen umfasst.
  13. Verfahren zum adaptiven Steuern einer Plattform-Dienstqualität, wobei das Verfahren Folgendes umfasst: Erhalten von Dienstklassendaten für eine auszuführende Anwendung durch eine Rechenvorrichtung, wobei die Dienstklassendaten einen Umfang von einer oder mehreren Ressourcen angeben, die der Anwendung für jede Dienstklasse in einem Bereich von Dienstklassen zugeordnet werden sollen, sowie einer Ziel-Performance-Metrik für jede Phase der Anwendung und einer maximalen Dienstklasse für jede Phase der Anwendung; Ausführen der Anwendung durch die Rechenvorrichtung; Bestimmen einer derzeitigen Phase der Anwendung durch die Rechenvorrichtung und in Abhängigkeit von einer oder mehreren Ressourcenverwendungen der Anwendung bei der Ausführung der Anwendung; Vorgeben einer derzeitigen Dienstklasse für die Anwendung durch die Rechenvorrichtung in Abhängigkeit von der bestimmten Phase, wobei die derzeitige Dienstklasse innerhalb des der bestimmten Phase zugeordneten Bereichs ist; Bestimmen durch die Rechenvorrichtung, ob eine derzeitige Performance-Metrik der Anwendung der Ziel-Performance-Metrik genügt; und Heraufsetzen der derzeitigen Dienstklasse auf eine höhere Dienstklasse im Bereich durch die Rechenvorrichtung und als Reaktion auf eine Bestimmung, dass die derzeitige Performance-Metrik der Ziel-Performance-Metrik nicht genügt.
  14. Verfahren nach Anspruch 13, weiter umfassend das Herabsetzen der derzeitigen Dienstklasse auf eine niedrigere Dienstklasse im Bereich durch die Rechenvorrichtung und als Reaktion auf eine Bestimmung, dass die derzeitige Performance-Metrik der Ziel-Performance-Metrik genügt.
  15. Verfahren nach Anspruch 13, weiter umfassend: Detektieren, ob die Anwendung eine nachfolgende Phase durchlaufen hat, durch die Rechenvorrichtung; Bestimmen eines zweiten Bereichs von der nachfolgenden Phase zugeordneten Dienstklassen durch die Rechenvorrichtung und als Reaktion auf eine Bestimmung, dass die Anwendung zu einer nachfolgenden Phase übergegangen ist; und Vorgeben einer nachfolgenden Dienstklasse für die Anwendung durch die Rechenvorrichtung in Abhängigkeit von der nachfolgenden Phase, wobei die nachfolgende Dienstklasse innerhalb des zweiten Bereichs ist.
  16. Verfahren nach Anspruch 13, wobei das Erhalten der Dienstklassendaten den Empfang von Inkrementtyp-Daten umfasst, die einen Umfang angeben, um den die derzeitige Dienstklasse als Reaktion auf eine Bestimmung, dass die derzeitige Performance-Metrik der Ziel-Performance-Metrik nicht genügt, heraufgesetzt werden soll.
  17. Verfahren nach Anspruch 13, wobei das Heraufsetzen der Dienstklasse das Heraufsetzen einer Anzahl von für die Anwendung verfügbaren Wegen von Cache-Assoziativität umfasst.
  18. Verfahren nach Anspruch 13, wobei das Heraufsetzen der Dienstklasse das Heraufsetzen einer für die Anwendung verfügbaren Speicherbandbreite umfasst.
  19. Verfahren nach Anspruch 13, weiter umfassend das Vorgeben eines modellspezifischen Registers durch die Rechenvorrichtung, um die derzeitige Dienstklasse der Anwendung anzugeben.
  20. Verfahren nach Anspruch 13, weiter umfassend das Vorgeben einer Bitmaske durch die Rechenvorrichtung, um eine Verfügbarkeit von einer oder mehreren Ressourcen für andere Anwendungen anzugeben.
  21. Verfahren nach Anspruch 13, wobei das Bestimmen, ob die derzeitige Performance-Metrik der Ziel-Performance-Metrik genügt, die Bestimmung umfasst, ob eine derzeitige Anzahl von Anweisungen pro Zyklus einer Ziel-Anzahl von Anweisungen pro Zyklus genügt.
  22. Verfahren nach Anspruch 13, wobei das Bestimmen, ob die derzeitige Performance-Metrik der Ziel-Performance-Metrik genügt, die Bestimmung umfasst, ob eine derzeitige Anzahl von Cache-Fehltreffern einer Ziel-Anzahl von Cache-Fehltreffern genügt.
  23. Verfahren nach Anspruch 13, wobei das Heraufsetzen der derzeitigen Dienstklasse das Heraufsetzen eines Umfangs einer der Anwendung zugeordneten Ressource umfasst.
  24. Ein oder mehrere maschinenlesbare Speichermedien, umfassend eine Vielzahl von darauf gespeicherten Anweisungen, die als Reaktion auf die Ausführung eine Rechenvorrichtung veranlassen, das Verfahren nach einem der Ansprüche 13-23 durchzuführen.
  25. Rechenvorrichtung zum adaptiven Steuern einer Plattform-Dienstqualität, wobei die Rechenvorrichtung umfasst: einen oder mehrere Prozessoren; eine oder mehrere Speichervorrichtungen, aufweisend eine darin gespeicherte Mehrzahl von Anweisungen, die bei Ausführung durch den einen oder die mehreren Prozessoren die Rechenvorrichtung veranlassen, das Verfahren nach einem der Ansprüche 13-23 durchzuführen.
DE102018209187.0A 2017-06-29 2018-06-08 Technologien zur Bereitstellung von adaptiver Plattform-Dienstqualität Pending DE102018209187A1 (de)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US15/636,779 2017-06-29
US15/636,779 US20190007747A1 (en) 2017-06-29 2017-06-29 Technologies for providing adaptive platform quality of service

Publications (1)

Publication Number Publication Date
DE102018209187A1 true DE102018209187A1 (de) 2019-01-03

Family

ID=64661761

Family Applications (1)

Application Number Title Priority Date Filing Date
DE102018209187.0A Pending DE102018209187A1 (de) 2017-06-29 2018-06-08 Technologien zur Bereitstellung von adaptiver Plattform-Dienstqualität

Country Status (3)

Country Link
US (1) US20190007747A1 (de)
CN (1) CN109218068A (de)
DE (1) DE102018209187A1 (de)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20210056326A (ko) * 2018-08-07 2021-05-18 아이디에이씨 홀딩스, 인크. Nr v2x에서의 자율 자원 선택을 위한 방법 및 장치
US11579926B2 (en) * 2020-02-10 2023-02-14 EMC IP Holding Company LLC Processing rest API requests based on resource usage satisfying predetermined limits

Family Cites Families (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20050256971A1 (en) * 2003-08-14 2005-11-17 Oracle International Corporation Runtime load balancing of work across a clustered computing system using current service performance levels
US7437459B2 (en) * 2003-08-14 2008-10-14 Oracle International Corporation Calculation of service performance grades in a multi-node environment that hosts the services
US7594006B2 (en) * 2004-04-27 2009-09-22 Hewlett-Packard Development Company, L.P. Trending method and apparatus for resource demand in a computing utility
US20060070060A1 (en) * 2004-09-28 2006-03-30 International Business Machines Corporation Coordinating service performance and application placement management
US8756307B1 (en) * 2007-07-30 2014-06-17 Hewlett-Packard Development Company, L.P. Translating service level objectives to system metrics
US8631154B2 (en) * 2011-06-29 2014-01-14 International Business Machines Corporation Dynamically modifying quality of service levels for resources in a networked computing environment
US9054992B2 (en) * 2011-12-27 2015-06-09 Solidfire, Inc. Quality of service policy sets
US10554505B2 (en) * 2012-09-28 2020-02-04 Intel Corporation Managing data center resources to achieve a quality of service
US9515899B2 (en) * 2012-12-19 2016-12-06 Veritas Technologies Llc Providing optimized quality of service to prioritized virtual machines and applications based on quality of shared resources
US9655000B2 (en) * 2014-08-19 2017-05-16 Verizon Patent And Licensing Inc. Optimized quality of service transport architecture to compensate for SINR variations
US9563564B2 (en) * 2015-04-07 2017-02-07 Intel Corporation Cache allocation with code and data prioritization

Also Published As

Publication number Publication date
US20190007747A1 (en) 2019-01-03
CN109218068A (zh) 2019-01-15

Similar Documents

Publication Publication Date Title
DE112007001215B4 (de) Vorhersage der Leistungsnutzung von Rechenplattformspeicher
DE102011102871B4 (de) Adaptive Skalierung der Speicherfrequenz
DE112011101633B4 (de) Virtualisierung und dynamische Ressourcenzuweisung berücksichtigendes Neuordnen von Speicherebenen
DE112017004808T5 (de) Dynamische zuteilung virtueller cpu-kerne
DE112011105608T5 (de) System und Verfahren zum Verbessern eines Netzwerkzugriffs bei einer Maschine-zu-Maschine-Kommunikation
DE112012006377B4 (de) Energieverbrauch und Leistung von Computersystemen steuern
DE112017003688T5 (de) Technologien zur Durchführung einer Orchestrierung mit Online-Analyse von Telemetriedaten
DE112013000656T5 (de) System und Verfahren zum Verringern der Speichernutzung durch optimales Platzieren von virtuellen Maschinen in einem virtualisierten Rechenzentrum
DE112011100739T5 (de) Programmatisches Ermitteln eines Ausführungsmodus für eine Anforderungszuteilungunter Verwendung von historischen Masszahlen
DE112016005112T5 (de) Techniken zur Behandlung bösartiger Aktivität eines virtuellen Netztreibers
DE202010017613U1 (de) Datenspeichervorrichtung mit host-gesteuerter Speicherbereinigung
DE102011102238A1 (de) Speicherenergiemanagement über dynamische Speicherbetriebszustände
DE112012002664T5 (de) Erhöhen der Energieeffizienz des Turbo-Modus-Betriebs in einem Prozessor
DE102008030875A1 (de) Abschätzung der Arbeitslast von Datenzentren
DE112006003081T5 (de) Leistungspriorisierung in Multithreadprozessoren
DE102018209188A1 (de) Technologien zum Verwalten der Dienstgüte für Plattformverbindungen
DE112011105672T5 (de) Verwaltung der Datennutzung einer Recheneinrichtung
DE112020004651B4 (de) Multi-tenant-etl-ressourcenaufteilung
DE102010029209A1 (de) Verfahren zur dynamischen Verteilung von einem oder mehreren Diensten in einem Netz aus einer Vielzahl von Rechnern
DE112020004661T5 (de) Ermitteln einer optimalen Anzahl von Threads pro Kern in einem Mehrkern-Prozessorkomplex
DE102014108049A1 (de) Intelligente Abfragehäufigkeit
DE112013003873T5 (de) Verfahren und Vorrichtung zum Patchen
DE102016101311A1 (de) Datenspeicherverfahren, Datenspeichervorrichtung und Solid State Disk
DE102012224362B4 (de) Anpassung einer Testhäufigkeit für die Ressourcenauslastung
DE112014000340T5 (de) Vorablesezugriff auf Daten für einen Chip mit einem übergeordneten Kern und einem Scout-Kern