DE112016004347T5 - Real-time local and global data center network optimizations based on platform telemetry data - Google Patents

Real-time local and global data center network optimizations based on platform telemetry data Download PDF

Info

Publication number
DE112016004347T5
DE112016004347T5 DE112016004347.3T DE112016004347T DE112016004347T5 DE 112016004347 T5 DE112016004347 T5 DE 112016004347T5 DE 112016004347 T DE112016004347 T DE 112016004347T DE 112016004347 T5 DE112016004347 T5 DE 112016004347T5
Authority
DE
Germany
Prior art keywords
platform
logic
telemetry data
processor core
cores
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
DE112016004347.3T
Other languages
German (de)
Inventor
James Robert Hearn
Patrick Connor
Kapil Sood
Scott P. Dubal
Andrew J. Herdrich
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 DE112016004347T5 publication Critical patent/DE112016004347T5/en
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • G06F9/5011Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resources being hardware resources other than CPUs, Servers and Terminals
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • G06F9/5027Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/36Handling requests for interconnection or transfer for access to common bus or bus system
    • G06F13/362Handling requests for interconnection or transfer for access to common bus or bus system with centralised access control
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/4401Bootstrapping
    • G06F9/4411Configuring for operating with peripheral devices; Loading of device drivers
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/48Program initiating; Program switching, e.g. by interrupt
    • G06F9/4806Task transfer initiation or dispatching
    • G06F9/4843Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
    • G06F9/4881Scheduling strategies for dispatcher, e.g. round robin, multi-level priority queues
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2209/00Indexing scheme relating to G06F9/00
    • G06F2209/50Indexing scheme relating to G06F9/50
    • G06F2209/502Proximity
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

Abstract

In einer Ausführungsform umfasst ein System eine Plattformlogik, die eine Vielzahl von Prozessorkernen umfasst, und Ressourcenzuweisungslogik. Die Ressourcenzuweisungslogik kann eine Verarbeitungsanfrage empfangen und die Verarbeitungsanfrage an einen Prozessorkern aus der Vielzahl von Prozessorkernen leiten, wobei der Prozessorkern zumindest teilweise basierend auf der Plattformlogik zugeordneten Telemetriedaten ausgewählt wird, wobei die Telemetriedaten eine Topologie zumindest eines Teils der Plattformlogik anzeigen.In one embodiment, a system includes platform logic that includes a plurality of processor cores and resource allocation logic. The resource allocation logic may receive a processing request and direct the processing request to a processor core of the plurality of processor cores, wherein the processor core is selected based at least in part on telemetry data associated with the platform logic, the telemetry data indicating a topology of at least a portion of the platform logic.

Description

VERWEIS AUF VERWANDTE ANMELDUNGENREFER TO RELATED APPLICATIONS

Diese Anmeldung beansprucht Priorität gegenüber der am 26. September 2015 eingereichten nicht vorläufigen (Ersatz-) US-Patentanmeldung Nr. 14/866,869 mit dem Titel „REAL-TIME LOCAL AND GLOBAL DATACENTER NETWORK OPTIMIZATIONS BASED ON PLATFORM TELEMETRY DATA“, die hierin durch Bezugnahme vollumfänglich aufgenommen ist.This application claims priority over the non-provisional (replacement) filed on 26 September 2015 U.S. Patent Application No. 14 / 866,869 entitled "REAL-TIME LOCAL AND GLOBAL DATACENT NETWORK OPTIMIZATION BASED ON PLATFORM TELEMETRY DATA", which is incorporated herein by reference in its entirety.

GEBIETTERRITORY

Die vorliegende Offenbarung bezieht sich allgemein auf das Gebiet der Computerentwicklung und insbesondere auf lokale und globale Datenzentrumsnetzoptimierungen in Echtzeit basierend auf Plattformtelemetriedaten.The present disclosure relates generally to the field of computer development, and more particularly to real-time local and global data center network optimizations based on platform telemetry data.

HINTERGRUNDBACKGROUND

Ein Datenzentrum kann eine oder mehrere Plattformen beinhalten, die jede zumindest einen Prozessor und zugeordnete Speichermodule umfassen. Jede Plattform des Datenzentrums kann die Leistung einer jeglichen geeigneten Anzahl von Prozessen, die verschiedenen, auf der Plattform laufenden Anwendungen zugeordnet sind, ermöglichen. Diese Prozesse können durch die Prozessoren und andere zugeordnete Logik der Plattformen ausgeführt werden.A data center may include one or more platforms, each including at least one processor and associated memory modules. Each data center platform may enable the performance of any suitable number of processes associated with different applications running on the platform. These processes can be performed by the processors and other associated logic of the platforms.

Figurenlistelist of figures

Es zeigen:

  • 1 ein Blockdiagramm von Komponenten eines Datenzentrums nach einigen Ausführungsformen;
  • 2 ein Blockdiagramm einer Datenzentrumsverwaltungsplattform nach einigen Ausführungsformen;
  • 3 ein Blockdiagramm einer Datenanalysemaschine nach einigen Ausführungsformen;
  • 4 ein Blockdiagramm einer zentralen Verarbeitungseinheit nach einigen Ausführungsformen;
  • 5 ein Verfahren zum Zuweisen von Plattformressourcen basierend auf Telemetriedaten nach einigen Ausführungsformen.
Show it:
  • 1 a block diagram of components of a data center according to some embodiments;
  • 2 a block diagram of a data center management platform according to some embodiments;
  • 3 a block diagram of a data analysis engine according to some embodiments;
  • 4 a block diagram of a central processing unit according to some embodiments;
  • 5 a method of allocating platform resources based on telemetry data, in accordance with some embodiments.

Gleiche Bezugszeichen und Bezeichnungen in den verschiedenen Zeichnungen verweisen auf gleiche Bauteile.Like reference numerals and designations in the various drawings refer to like components.

AUSFÜHRLICHE BESCHREIBUNGDETAILED DESCRIPTION

1 zeigt ein Blockdiagramm von Komponenten eines Datenzentrums 100 nach einigen Ausführungsformen. In der dargestellten Ausführungsform beinhaltet das Datenzentrum 100 eine Vielzahl von Plattformen 102, die Datenanalysemaschine 104 und die Datenzentrumsverwaltungsplattform 106, die durch das Netz 108 miteinander gekoppelt sind. Eine Plattform 102 kann die Plattformlogik 110 mit einer oder mehreren zentralen Verarbeitungseinheiten (Central Processing Units, CPUs) 112, Speichern 114 (die eine jegliche Anzahl an verschiedenen Modulen beinhalten können), Chipsätzen 116, Kommunikationsschnittstellen 118 und jeglicher anderer geeigneter Hardware und/oder Software zum Ausführen eines Hypervisors 120 oder anderen Betriebssystems, der bzw. das in der Lage ist, Prozesse auszuführen, die auf der Plattform 102 laufenden Anwendungen zugeordnet sind, beinhalten. In einigen Ausführungsformen kann eine Plattform 102 als eine Host-Plattform für ein oder mehrere Gastsysteme 122, die diese Anwendungen aufrufen, fungieren. 1 shows a block diagram of components of a data center 100 according to some embodiments. In the illustrated embodiment, the data center includes 100 a variety of platforms 102 , the data analysis engine 104 and the data center management platform 106 passing through the net 108 coupled together. A platform 102 can the platform logic 110 with one or more central processing units (CPUs) 112, storing 114 (which may include any number of different modules), chipsets 116 , Communication interfaces 118 and any other suitable hardware and / or software for running a hypervisor 120 or any other operating system that is capable of running processes on the platform 102 associated with running applications. In some embodiments, a platform 102 as a host platform for one or more guest systems 122 that call these applications act.

In bestimmten Ausführungsformen können verschiedene Einheiten des Datenzentrums 100, wie beispielsweise die Datenzentrumsverwaltungsplattform 106, der Hypervisor 120 oder ein oder mehrere I/O-Vorrichtungstreiber 124 (z. B. ein Ethernet-Vorrichtungstreiber) in der Lage sein, auf der Plattform 102A ausgeführten Prozessen Ressourcen (z. B. Ressourcen, die Kernen der CPUs 112 zugeordnet sind) der Plattformlogik 110 zuzuweisen. In einigen Systemen können durch herkömmliche I/O-Vorrichtungstreiber genutzte Algorithmen versuchen, die Plattformnutzung zu optimieren, indem sie, basierend darauf, welcher Kern einer Verbindung zugrunde liegt, CPU-Kernen Queues oder Flows zuweisen, die Gastmaschinen zugeordnet sind, oder können einen einfachen Round-Robin-Algorithmus nutzen, um Ziel-CPU-Kerne zu identifizieren. Solche Systeme sind jedoch eingeschränkt, da diese Optimierungen lediglich lokale Plattformoptimierungen sind, die auf lokalen Gesichtspunkten basieren.In certain embodiments, different units of the data center may be used 100 such as the data center management platform 106 , the hypervisor 120 or one or more I / O device drivers 124 (eg, an Ethernet device driver) capable of being on the platform 102A Running processes resources (such as resources, the cores of the CPUs 112 are assigned) of the platform logic 110 assign. In some systems, algorithms used by conventional I / O device drivers may attempt to optimize platform utilization by assigning queues or flows associated with guest machines to CPU cores, based on which core of a connection is allocated, or may be a simple one Use round-robin algorithm to identify target CPU cores. However, such systems are limited because these optimizations are only local platform optimizations based on local considerations.

In verschiedenen Ausführungsformen der vorliegenden Offenbarung können Einheiten (z. B. die Datenzentrumsverwaltungsplattform 106, der Hypervisor 120 oder der I/O-Vorrichtungstreiber 124) des Datenzentrums 100 Prozessen, die durch Gastsysteme 122 ausgeführt werden, gemäß Telemetriedaten, die einer oder mehreren Plattformen 102 zugeordnet sind, Ressourcen der Plattformlogik 110 zuweisen. Dementsprechend können durch diese Einheiten vorgenommene Optimierungen basierend auf einer globalen Betrachtung des Zustands der Plattform 102a und/oder des gesamten Datenzentrums 100, wie durch die Telemetriedaten dargestellt, vorgenommen werden. Als ein Beispiel kann der I/O-Vorrichtungstreiber 124, basierend auf plattformexternem Verhalten zur Laufzeit, Plattformleistungsmerkmalen über und innerhalb von Sockeln zur Aufnahme der CPUs 112 und externen Ereignissen über ein oder mehrere virtuelle oder herkömmliche Netze des Datenzentrums 100, Arbeitslasten an Ressourcen (z. B. CPU-Kerne) leiten. Als ein weiteres Beispiel können der Hypervisor 120 oder ein anderes Betriebssystem basierend auf den Zustandsinformationen bestimmen, auf welchen Kern ein I/O-Vorrichtungstreiber 124 anzusetzen ist.In various embodiments of the present disclosure, devices (eg, the data center management platform 106 , the hypervisor 120 or the I / O device driver 124) of the data center 100 Processes by guest systems 122 according to telemetry data, one or more platforms 102 associated resources of the platform logic 110 to assign. Accordingly, optimizations made by these units may be based on a global view of the state of the platform 102 and / or the entire data center 100 as shown by the telemetry data. As an example, the I / O device driver 124 may be based on platform-external behavior at runtime, platform performance features over and within sockets to accommodate the CPUs 112 and external events over one or more virtual or traditional networks of the data center 100 , Routing workloads to resources (such as CPU cores). As another example, the hypervisor 120 or another operating system based on the state information determine which core an I / O device driver 124 is to be attached to.

Jegliche geeignete Telemetriedaten bezüglich der Plattform(en) 102 können durch eine jegliche geeignete Einheit, wie beispielsweise durch den Hypervisor 120 oder das andere Betriebssystem, einen oder mehrere I/O-Vorrichtungstreiber 124, ein oder mehrere Plattformtelemetriemittel, wie beispielsweise den Chipsätzen 116 zugeordnete Verwaltungsmaschinen 126, eine Einheit außerhalb des Datenzentrums 100 oder eine Kombination derselben, gesammelt oder anderweitig bereitgestellt werden. Als nicht beschränkende Beispiele können die Plattformtelemetriedaten anhand von Laufzeitabtastung, Laufzeit-Microbenchmarks oder Pre-Benchmarking gesammelt werden. In einigen Ausführungsformen können diese Informationen dem I/O-Vorrichtungstreiber 124, dem Hypervisor 120 oder anderen Betriebssystem, einer Verwaltungsmaschine 126, der Datenzentrumsverwaltungsplattform 106 und/oder der Datenanalysemaschine 104 bereitgestellt werden. Jede dieser Einheiten kann die Daten verarbeiten und Optimierungsentscheidungen basierend auf den Daten treffen. Diese Entscheidungen können dann durch einen I/O-Vorrichtungstreiber 124, den Hypervisor 120 oder ein anderes Betriebssystem implementiert werden.Any suitable telemetry data regarding the platform (s) 102 can through any suitable entity, such as by the hypervisor 120 or the other operating system, one or more I / O device drivers 124, one or more platform telemetry devices, such as the chipsets 116 associated administrative machines 126 , a unit outside the data center 100 or a combination thereof, collected or otherwise provided. As non-limiting examples, the platform telemetry data may be collected using run-time sampling, runtime microbenches, or pre-benchmarking. In some embodiments, this information may be available to the I / O device driver 124, the hypervisor 120 or other operating system, a management machine 126 , the data center management platform 106 and / or the data analysis engine 104 to be provided. Each of these units can process the data and make optimization decisions based on the data. These decisions may then be made by an I / O device driver 124, the hypervisor 120 or another operating system.

Als nicht einschränkende Beispiele können die Telemetriedaten Verbindungsstau; Speicherzugriffsmuster; die Auslastung und Gesundheit der Kerne der CPUs 112; die aktuellen Cachebelegungs- und/oder Speicherbandbreitenniveaus pro Thread, Anwendung, virtuelle Maschine oder sonstige Abgrenzung; topologiebasierte Informationen, wie beispielsweise, welche CPU-Kerne aufgrund ihrer Anordnung auf dem CPU-Die einen höheren Zugriff auf I/O-Bandbreite und/oder Speicherbandbreite und niedrigere Latenzzeiten haben; sowie andere Informationen anzeigen.As non-limiting examples, the telemetry data may be congestion congestion; Memory access pattern; the utilization and health of the cores of the CPUs 112 ; the current caching and / or storage bandwidth levels per thread, application, virtual machine or other boundary; topology-based information, such as which CPU cores have higher access to I / O bandwidth and / or memory bandwidth and lower latencies due to their placement on the CPU die; and other information.

Wie vorstehend beschrieben, können verschiedene Ausführungsformen der vorliegenden Offenbarung Logik zum Optimieren der Leistung der Gastsysteme 122 innerhalb einer Plattform oder über mehrere Plattformen 102 beinhalten. Solche Ausführungsformen können die Optimierung in Bereitstellungen, einschließlich Netzfunktionsvirtualisierung (Network Function Virtualization, NFV) und softwaredefinierter Vernetzung (Software Defined Networking, SDN), zulassen. Beispielsweise bieten die Fähigkeit, virtuelle Netzfunktionen (Virtual Network Functions, VNFs) von einer Plattform zu einer anderen zu migrieren, und andere aufkommende NFV- und SDN-Anwendungsfälle eine Gelegenheit, lokale Optimierung basierend auf der Bereitstellung einer globalen virtuellen Vernetzung des Datenzentrums 100 durchzuführen. Darüber hinaus kann eine globale Betrachtung lokale Optimierungen erlauben, die eine bessere Sicherheit, Dienstgüte (Quality-of-Service, QoS), Differenzierung von Dienstniveaus, Verkehrsüberwachung, Verkehrstechnik von Dienstfunktionsketten (Service Function Chains, SFCs) über eine SDN und NFV-Bereitstellung liefern.As described above, various embodiments of the present disclosure may use logic to optimize the performance of the guest systems 122 within a single platform or across multiple platforms 102 include. Such embodiments may allow for optimization in deployments, including Network Function Virtualization (NFV) and Software Defined Networking (SDN). For example, the ability to migrate virtual network functions (VNFs) from one platform to another, and other emerging NFV and SDN use cases, provide an opportunity for local optimization based on the provision of a global data center virtual networking 100 perform. In addition, global consideration may allow for local optimizations that provide better security, quality-of-service (QoS), service level differentiation, traffic monitoring, service function chain (SFC) traffic engineering through SDN and NFV provisioning ,

Anhand von einer oder mehreren der Plattformen 102 zugeordneten Telemetriedaten kann die Leistung eines oder mehrerer I/O-Vorrichtungstreiber 124, der Plattformen 102 und/oder des gesamten Datenzentrums 100 über verschiedene Vektoren verbessert werden; hierzu gehören Brutto-Durchsatz, Latenzzeit, Leistungsdeterminismus, ungleichmäßige Speicherzugriffs- (Non-Uniform Memory Access, NUMA) Lokalität, Skalierbarkeit, Energie und andere geeignete Leistungsmerkmale. Solche Optimierungen können auch zur Verbesserung der Sicherheit für Flow-geleitete QoS auf den Plattformen 102 und über SFCs verwendet werden.Based on one or more of the platforms 102 associated telemetry data may include the performance of one or more I / O device drivers 124, platforms 102 and / or the entire data center 100 be improved over different vectors; These include gross throughput, latency, performance determinism, non-uniform memory access (NUMA) locality, scalability, power and other suitable features. Such optimizations can also improve security for flow-based QoS on the platforms 102 and be used via SFCs.

Jede Plattform 102 kann die Plattformlogik 110 beinhalten. Die Plattformlogik 110 umfasst, neben anderer Logik, welche die Funktionalität der Plattform 102 erlaubt, eine oder mehrere CPUs 112, den Speicher 114, einen oder mehrere Chipsätze 116 und die Kommunikationsschnittstelle 118. Wenngleich drei Plattformen dargestellt sind, kann das Datenzentrum 100 eine jegliche geeignete Anzahl an Plattformen beinhalten. In verschiedenen Ausführungsformen kann eine Plattform 102 auf einer Leiterplatte angeordnet sein, die in einem Gehäuse, einem Rack oder einer anderen geeigneten Struktur, die mehrere durch das Netz 108 (das z. B. einen Rack- oder Backplane-Switch umfassen kann) miteinander gekoppelte Plattformen umfasst, installiert ist.Every platform 102 can the platform logic 110 include. The platform logic 110 includes, among other logic, the functionality of the platform 102 allows one or more CPUs 112 , the memory 114 , one or more chipsets 116 and the communication interface 118 , Although three platforms are shown, the data center 100 include any suitable number of platforms. In various embodiments, a platform 102 be arranged on a circuit board, which in a housing, a rack or other suitable structure, which several through the network 108 (which may include, for example, a rack or backplane switch) having interconnected platforms is installed.

Die CPUs 112 können jede eine jegliche geeignete Anzahl an Prozessorkernen umfassen. Die Kerne können durch eine oder mehrere auf der CPU 112 und/oder dem Chipsatz 116 befindliche Steuerungen miteinander, mit dem Speicher 114, mit zumindest einem Chipsatz 116 und/oder mit der Kommunikationsschnittstelle 118 gekoppelt sein. In bestimmten Ausführungsformen ist eine CPU 112 innerhalb eines Sockels ausgeführt, der dauerhaft oder lösbar mit der Plattform 102 gekoppelt ist. Die CPU 112 ist weiter unten in Verbindung mit 4 ausführlicher beschrieben. Wenngleich vier CPUs dargestellt sind, kann eine Plattform 102 eine jegliche geeignete Anzahl an CPUs beinhalten.The CPUs 112 Each may comprise any suitable number of processor cores. The cores can pass through one or more on the CPU 112 and / or the chipset 116 located controllers with each other, with the memory 114 , with at least one chipset 116 and / or with the communication interface 118 be coupled. In certain embodiments, a CPU 112 executed inside a socket that is permanent or detachable with the platform 102 is coupled. The CPU 112 is in connection with below 4 described in more detail. Although four CPUs are shown, one platform can 102 include any suitable number of CPUs.

Der Speicher 114 kann eine jegliche Form eines flüchtigen oder nicht flüchtigen Speichers umfassen, einschließlich, ohne darauf beschränkt zu sein, magnetischer Medien (z. B. eines oder mehrerer Bandlaufwerke), optischer Medien, Direktzugriffsspeicher (Random-Access-Memory, RAM), Nur-Lese-Speicher (Read-Only-Memory, ROM), Flash-Speicher, Wechselmedien oder jeglicher sonstiger geeigneter lokaler oder entfernter Speicherkomponente(n). Der Speicher 114 ist zum kurz-, mittel- und/oder langfristigen Speichern durch die Plattform 102 verwendbar. Der Speicher 114 kann jegliche geeignete, von der Plattformlogik 110 verwendete Daten oder Informationen speichern, einschließlich in ein computerlesbares Medium eingebetteter Software und/oder in Hardware integrierter oder anderweitig gespeicherter codierter Logik (z. B. Firmware). Der Speicher 114 kann Daten speichern, die durch Kerne der CPUs 112 verwendet werden. In einigen Ausführungsformen kann der Speicher 114 auch die Speicherung von Befehlen umfassen, die durch die Kerne der CPUs 112 oder andere Verarbeitungselemente (z. B. auf den Chipsätzen 116 residente Logik) ausgeführt werden können, um der Verwaltungsmaschine 126 oder anderen Komponenten der Plattformlogik 110 zugeordnete Funktionalität bereitzustellen. Zusätzlich oder alternativ können die Chipsätze 116 jeweils Speicher umfassen, der ein jegliches der hier in Bezug auf den Speicher 114 beschriebenen Merkmale aufweisen kann. Der Speicher 114 kann auch die Ergebnisse und/oder Zwischenergebnisse der verschiedenen, durch die CPUs 112 oder Verarbeitungselemente auf den Chipsätzen 116 durchgeführten Berechnungen und Bestimmungen speichern. In verschiedenen Ausführungsformen kann der Speicher 114 ein oder mehrere Systemspeichermodule umfassen, die durch Speichersteuerungen (die extern oder in die CPUs 112 integriert sein können) mit den CPUs gekoppelt sind. In verschiedenen Ausführungsformen können ein oder mehrere bestimmte Module des Speichers 114 einer bestimmten CPU 112 oder anderen Verarbeitungsvorrichtung dediziert sein oder von mehreren CPUs 112 oder anderen Verarbeitungsvorrichtungen gemeinsam verwendet werden. The memory 114 may include any form of volatile or non-volatile memory including, but not limited to, magnetic media (e.g., one or more tape drives), optical media, Random Access Memory (RAM), read-only Memory (read only memory, ROM), flash memory, removable media, or any other suitable local or remote memory component (s). The memory 114 is for short, medium and / or long term storage by the platform 102 usable. The memory 114 can be any appropriate, from the platform logic 110 store used data or information, including software embedded in a computer readable medium and / or embedded or otherwise stored coded logic (eg, firmware). The memory 114 can store data by cores of CPUs 112 be used. In some embodiments, the memory may be 114 Also include the storage of commands by the cores of the CPUs 112 or other processing elements (eg, on the chipsets 116 resident logic) can be executed to the administrative engine 126 or other components of the platform logic 110 to provide assigned functionality. Additionally or alternatively, the chipsets 116 each include memory that is any of the here in relation to the memory 114 may have described features. The memory 114 Also, the results and / or intermediate results of the different, by the CPUs 112 or processing elements on the chipsets 116 saved calculations and determinations. In various embodiments, the memory may be 114 include one or more system memory modules that are controlled by memory controllers (external or to the CPUs 112 can be integrated) with the CPUs are coupled. In various embodiments, one or more particular modules of the memory may be used 114 a particular CPU 112 or other processing device or multiple CPUs 112 or other processing devices.

Eine Plattform 102 kann auch einen oder mehrere Chipsätze 116 beinhalten, die eine jegliche geeignete Logik zur Unterstützung des Betriebs der CPUs 112 umfassen. In verschiedenen Ausführungsformen kann sich der Chipsatz 116 auf demselben Paket wie eine CPU 112 oder auf einem oder mehreren anderen Paketen befinden. Jeder Chipsatz kann eine jegliche geeignete Anzahl von CPUs 112 unterstützen. Ein Chipsatz 116 kann auch eine oder mehrere Steuerungen zur Kopplung anderer Komponenten der Plattformlogik 110 (z. B. der Kommunikationsschnittstelle 118 oder des Speichers 114) mit einer oder mehreren CPUs beinhalten. Zusätzlich oder alternativ können die CPUs 112 integrierte Steuerungen beinhalten. Beispielsweise könnte die Kommunikationsschnittstelle 118 über auf jeder CPU residente integrierte I/O-Steuerungen direkt mit den CPUs 112 gekoppelt sein.A platform 102 can also have one or more chipsets 116 include any suitable logic to support the operation of the CPUs 112 include. In various embodiments, the chipset may 116 on the same package as a CPU 112 or on one or more other packages. Each chipset can be any suitable number of CPUs 112 support. A chipset 116 may also include one or more controllers for interfacing other components of the platform logic 110 (eg the communication interface 118 or the memory 114 ) with one or more CPUs. Additionally or alternatively, the CPUs 112 include integrated controls. For example, the communication interface 118 via integrated I / O controls residing on each CPU directly to the CPUs 112 be coupled.

In der abgebildeten Ausführungsform beinhaltet jeder Chipsatz 116 auch eine Verwaltungsmaschine 126. Die Verwaltungsmaschine 126 kann eine jegliche geeignete Logik zur Unterstützung des Betriebs des Chipsatzes 116 beinhalten. In einer besonderen Ausführungsform ist die Verwaltungsmaschine 126 (die auch als eine Innovationsmaschine bezeichnet werden kann) in der Lage, Echtzeit-Telemetriedaten vom Chipsatz 116, von der (den) CPU(s) 112 und/oder dem Speicher 114, die durch den Chipsatz 116, andere Komponenten der Plattformlogik 110 und/oder verschiedene Verbindungen zwischen Komponenten der Plattformlogik 110 verwaltet werden, zu sammeln. Es können jegliche geeignete Telemetriedaten gesammelt werden, wie beispielsweise die aktuelle CPU-Cachenutzung, die aktuelle Speicherbandbreitennutzung und die aktuelle I/O-Bandbreitennutzung durch jedes Gastsystem 122 oder Komponente derselben (z. B. Thread, Anwendung usw.) oder jede I/O-Vorrichtung (z. B. Ethernet-Vorrichtung oder Festplattensteuerung). Zusätzliche Telemetriedaten können eine Größe eines verfügbaren Speicherplatzes oder einer Bandbreite, eine Größe eines verfügbaren CPU-Cacheplatzes oder einer Bandbreite oder einer verfügbaren I/O-Bandbreite für jede I/O-Vorrichtung beinhalten. Darüber hinaus können Temperaturen, Ströme und/oder Spannungen von verschiedenen Punkten der Plattform 102, wie beispielsweise an einer oder mehreren Positionen jedes Kerns, einer oder mehreren Positionen jeder CPU 112, einer oder mehreren Positionen der Chipsätze 116 oder an anderen Positionen der Plattform 102, gesammelt werden (z. B. können die Lufteintritts- und Luftaustrittstemperaturen gemessen werden).In the depicted embodiment, each chipset includes 116 also an administrative machine 126 , The administrative machine 126 may be any suitable logic to support the operation of the chipset 116 include. In a particular embodiment, the management engine 126 (which may also be referred to as an innovation machine) capable of real-time telemetry data from the chipset 116 , CPU (s) 112 and / or memory 114 that through the chipset 116 , other components of the platform logic 110 and / or various connections between components of the platform logic 110 managed to collect. Any suitable telemetry data may be collected, such as the current CPU cache usage, the current memory bandwidth usage, and the current I / O bandwidth usage by each guest 122 or component thereof (eg, thread, application, etc.) or any I / O device (eg, Ethernet device or hard disk drive). Additional telemetry data may include a size of available space or bandwidth, a size of available CPU cache space, or bandwidth or available I / O bandwidth for each I / O device. In addition, temperatures, currents and / or voltages from different points of the platform 102 , such as at one or more locations of each core, one or more locations of each CPU 112 , one or more positions of the chipsets 116 or at other positions of the platform 102 , are collected (eg the air inlet and outlet temperatures can be measured).

In verschiedenen Ausführungsformen operiert die Verwaltungsmaschine 126 als ein asynchrones Außerband-Datenverarbeitungsmittel, das in der Lage ist, Schnittstellen mit den verschiedenen Elementen der Plattformlogik 110 zu bilden, um Telemetriedaten ohne oder mit minimaler Störung der laufenden Prozesse auf den CPUs 112 zu sammeln. Beispielsweise kann die Verwaltungsmaschine 126 ein dediziertes Verarbeitungselement (z. B. einen Prozessor, eine Steuerung oder andere Logik) auf dem Chipsatz 116 umfassen, das die Funktionalität der Verwaltungsmaschine 126 bereitstellt (z. B. durch Ausführen von Softwarebefehlen), und so Verarbeitungszyklen der CPUs 112 für den Gastsystemen 122 zugeordnete Operationen bewahren. Darüber hinaus kann die dedizierte Logik für die Verwaltungsmaschine 126 asynchron zu den CPUs 112 operieren und zumindest einige der Telemetriedaten erfassen, ohne die Belastung der CPUs zu erhöhen.In various embodiments, the management engine operates 126 as an asynchronous out-of-band data processing means capable of interfacing with the various elements of the platform logic 110 to make telemetry data without or with minimal disturbance of the running processes on the CPUs 112 to collect. For example, the management engine 126 a dedicated processing element (eg, a processor, a controller, or other logic) on the chipset 116 include the functionality of the administrative machine 126 (for example, by executing software instructions), and thus processing cycles of the CPUs 112 for the guest systems 122 preserve associated operations. In addition, the dedicated logic for the administrative machine 126 asynchronous to the CPUs 112 operate and capture at least some of the telemetry data without increasing the load on the CPUs.

Die Verwaltungsmaschine 126 kann von ihr gesammelte Daten auch filtern oder anderweitig verarbeiten. Beispielsweise kann die Verwaltungsmaschine 126 in einigen Ausführungsformen Kennzahlen einer Dienstgütevereinbarung (Service Level Agreement, SLA) basierend auf ihren gesammelten Telemetriedaten berechnen und SLA-Verstöße durch Meldung dieser Verstöße an die Datenzentrumsverwaltungsplattform 106 oder lokale Verarbeitung oder durch Durchführung zugeordneter Durchsetzungsmaßnahmen ahnden. The administrative machine 126 may also filter or otherwise process data that it collects. For example, the management engine 126 in some embodiments, calculate metrics of a service level agreement (SLA) based on their collected telemetry data and SLA violations by reporting those violations to the data center management platform 106 or local processing or enforcing enforcement actions.

In verschiedenen Ausführungsformen meldet die Verwaltungsmaschine 126 die von ihr gesammelten Daten und/oder die Ergebnisse ihrer Datenfilterung oder sonstigen -verarbeitung an andere Elemente im Datenzentrum, wie beispielsweise an einen mehrere I/O-Vorrichtungstreiber 124, den Hypervisor 120 oder ein anderes Betriebssystem, die Datenanalysemaschine 104 und/oder die Datenzentrumsverwaltungsplattform 106. In einigen Ausführungsformen werden die Telemetriedaten regelmäßig an eine oder mehrere dieser Einheiten gemeldet. In bestimmten Ausführungsformen kann ein kritisches Ereignis, wie beispielsweise ein überlasteter Kern oder eine zu hohe Temperatur vor dem normalen Telemetriedaten-Meldeintervall gemeldet werden (z. B. kann eine Benachrichtigung unmittelbar bei der Feststellung gesendet werden).In various embodiments, the management engine reports 126 the data that it collects and / or the results of its data filtering or other processing to other elements in the data center, such as a multiple I / O device driver 124, the hypervisor 120 or another operating system, the data analysis engine 104 and / or the data center management platform 106 , In some embodiments, the telemetry data is regularly reported to one or more of these devices. In certain embodiments, a critical event, such as a congested core or too high a temperature, may be reported prior to the normal telemetry data reporting interval (eg, a notification may be sent immediately upon discovery).

In verschiedenen Ausführungsformen kann die Verwaltungsmaschine 126 programmierbaren Code beinhalten, der konfigurierbar ist, um einzustellen, welche CPU(s) 112 der Chipsatz 116 verwaltet und/oder welche Telemetriedaten gesammelt werden.In various embodiments, the management engine may 126 include programmable code that is configurable to set which CPU (s) 112 the chipset 116 managed and / or which telemetry data is collected.

Die Chipsätze 116 beinhalten jeder außerdem eine Kommunikationsschnittstelle 128. Die Kommunikationsschnittstelle 128 ist zur Kommunikation von Signalisierung und/oder Daten zwischen dem Chipsatz 116 und einer oder mehreren I/O-Vorrichtungen, einem oder mehreren Netzen 108 und/oder einer oder mehreren mit dem Netz 108 gekoppelten Vorrichtungen (z. B. der Datenzentrumsverwaltungsplattform 106 oder der Datenanalysemaschine 104) verwendbar. Beispielsweise ist die Kommunikationsschnittstelle 128 zum Senden und Empfangen von Netzverkehr, wie beispielsweise Datenpaketen, verwendbar. In einer besonderen Ausführungsform umfasst die Kommunikationsschnittstelle 128 eine oder mehrere physische Netzschnittstellensteuerungen (Network Interface Controllers, NICs), auch als Netzschnittstellenkarten oder Netzadapter bekannt. Eine NIC kann eine elektronische Schaltungsanordnung beinhalten, um anhand eines jeglichen geeigneten Bitübertragungsschicht- und Sicherungsschichtstandards, wie beispielsweise Ethernet (z. B. wie durch die IEEE-Norm 802.3 definiert), Fibre Channel, InfiniBand, Wi-Fi, oder eines anderen geeigneten Standards zu kommunizieren. Eine NIC kann einen oder mehrere physische Anschlüsse beinhalten, die mit einem Kabel (z. B. einem Ethernet-Kabel) gekoppelt sein können. Eine NIC kann die Kommunikation zwischen einem jeglichen geeigneten Element des Chipsatzes 116 (z. B. der Verwaltungsmaschine 126 oder dem Switch 130) und einer anderen mit dem Netz 108 gekoppelten Vorrichtung erlauben. In einigen Ausführungsformen kann das Netz 108 einen Switch mit Überbrückungs- und/oder Routingfunktionen umfassen, der sich außerhalb der Plattform 102 befindet und operabel ist, um verschiedene, über das Datenzentrum 100 (z. B. auf verschiedene Plattformen) verteilte NICs miteinander zu koppeln. In verschiedenen Ausführungsformen kann eine NIC in den Chipsatz integriert sein (d. h. sich auf derselben integrierten Schaltung oder Leiterplatte wie die übrige Chipsatzlogik befinden) oder sich auf einer anderen integrierten Schaltung oder Leiterplatte, die elektromechanisch mit dem Chipsatz gekoppelt ist, befinden.The chipsets 116 Each also includes a communication interface 128 , The communication interface 128 is to communicate signaling and / or data between the chipset 116 and one or more I / O devices, one or more networks 108 and / or one or more with the network 108 coupled devices (e.g., the data center management platform 106 or the data analysis engine 104 ) usable. For example, the communication interface 128 for sending and receiving network traffic, such as data packets. In a particular embodiment, the communication interface comprises 128 one or more Network Interface Controllers (NICs), also known as network interface cards or network adapters. A NIC may include electronic circuitry to use any suitable physical layer and data link layer standard, such as Ethernet (eg, as per the IEEE standard 802.3 defined), Fiber Channel, InfiniBand, Wi-Fi, or any other appropriate standard. A NIC may include one or more physical ports that may be coupled to a cable (eg, an Ethernet cable). A NIC can communicate between any appropriate element of the chipset 116 (eg the administration machine 126 or the switch 130 ) and another with the net 108 allow coupled device. In some embodiments, the network may 108 include a switch with bridging and / or routing capabilities that external to the platform 102 is located and operable to various, via the data center 100 (eg, on different platforms) to link distributed NICs together. In various embodiments, one NIC may be integrated into the chipset (ie, reside on the same integrated circuit or circuit board as the rest of the chipset logic) or on another integrated circuit or circuit board that is electromechanically coupled to the chipset.

In bestimmten Ausführungsformen kann die Kommunikationsschnittstelle 128 die Kommunikation von Daten, die Verwaltungs- und Überwachungsfunktionen zugeordnet sind, welche durch die Verwaltungsmaschine 126 durchgeführt werden, zulassen (z. B. zwischen der Verwaltungsmaschine 126 und der Datenzentrumsverwaltungsplattform 106 und/oder der Datenanalysemaschine 104). In verschiedenen Ausführungsformen kann die Verwaltungsmaschine 126 Elemente (z. B. eine oder mehrere NICs) der Kommunikationsschnittstelle 128 nutzen, um die Telemetriedaten zu melden (z. B. an die Datenzentrumsverwaltungsplattform 106 oder die Datenanalysemaschine 104), um die Verwendung von NICs der Kommunikationsschnittstelle 118 für den Gastsystemen 122 zugeordnete Operationen zu reservieren. In einigen Ausführungsformen kann die Kommunikationsschnittstelle 128 auch zulassen, dass in die Plattform integrierte oder plattformexterne 1/0-Vorrichtungen (z. B. Laufwerke, andere NICs usw.) mit den CPU-Kernen kommunizieren.In certain embodiments, the communication interface 128 the communication of data associated with management and monitoring functions performed by the management engine 126 be performed (for example, between the administrative engine 126 and the data center management platform 106 and / or the data analysis engine 104 ). In various embodiments, the management engine may 126 Elements (eg one or more NICs) of the communication interface 128 to report the telemetry data (for example, to the data center management platform 106 or the data analysis engine 104 ) to the use of NICs of the communication interface 118 for the guest systems 122 reserve allocated operations. In some embodiments, the communication interface 128 also allow integrated or off-platform 1/0 devices (eg, drives, other NICs, etc.) into the platform to communicate with the CPU cores.

Der Switch 130 kann sich mit verschiedenen (z. B. durch NICs bereitgestellten) Anschlüssen der Kommunikationsschnittstelle 128 koppeln und Daten zwischen diesen Anschlüsse und verschiedenen Komponenten des Chipsatzes 116 (z. B. einer oder mehreren mit den CPUs 112 gekoppelten Peripheral Component Interconnect Express- (PCIe-) Lanes) schalten. Der Switch 130 kann ein physischer oder virtueller (d. h. Software-) Switch sein.The switch 130 can interfere with different (for example, NICs provided) ports of the communication interface 128 pair and data between these ports and different components of the chipset 116 (eg one or more with the CPUs 112 coupled Peripheral Component Interconnect Express (PCIe) lanes. The switch 130 can be a physical or virtual (ie software) switch.

Die Plattformlogik 110 kann eine zusätzliche Kommunikationsschnittstelle 118 beinhalten. Ähnlich der Kommunikationsschnittstelle 128 ist die Kommunikationsschnittstelle 118 zur Kommunikation von Signalisierung und/oder Daten zwischen der Plattformlogik 110 und einem oder mehreren Netzen 108 und einer oder mehreren mit dem Netz 108 gekoppelten Vorrichtungen verwendbar. Beispielsweise ist die Kommunikationsschnittstelle 118 zum Senden und Empfangen von Netzverkehr, wie beispielsweise Datenpaketen, verwendbar. In einer besonderen Ausführungsform umfasst die Kommunikationsschnittstelle 118 eine oder mehrere physische NICs. Diese NICs können die Kommunikation zwischen einem jeglichen geeigneten Element der Plattformlogik 110 (z. B. CPUs 112) und einer anderen mit dem Netz 108 gekoppelten Vorrichtung (z. B. Elementen anderer Plattformen oder durch ein oder mehrere Netze mit dem Netz 108 gekoppelte entfernte Knoten) erlauben. In bestimmten Ausführungsformen kann die Kommunikationsschnittstelle 118 zulassen, dass plattformexterne Vorrichtungen (z. B. Laufwerke, andere NICs usw.) mit den CPU-Kernen kommunizieren. In verschiedenen Ausführungsformen können NICs der Kommunikationsschnittstelle 118 durch I/O-Steuerungen (die extern oder in die CPUs 112 integriert sein können) mit den CPUs gekoppelt sein.The platform logic 110 can be an additional communication interface 118 include. Similar to the communication interface 128 is the communication interface 118 for communicating signaling and / or data between the platform logic 110 and one or more networks 108 and one or more with the network 108 coupled devices usable. For example, the communication interface 118 for sending and receiving network traffic, such as data packets. In a particular embodiment, the communication interface comprises 118 one or more physical NICs. These NICs can communicate between any appropriate element of the platform logic 110 (eg CPUs 112 ) and another with the net 108 coupled device (eg, elements of other platforms or through one or more networks to the network 108 coupled remote nodes). In certain embodiments, the communication interface 118 allow non-platform devices (eg, drives, other NICs, etc.) to communicate with the CPU cores. In various embodiments, NICs may be the communication interface 118 through I / O controllers (external or to the CPUs 112 can be integrated) with the CPUs.

Die Plattformlogik 110 kann jegliche geeignete Arten von Verarbeitungsanfragen empfangen und ausführen. Eine Verarbeitungsanfrage kann eine jegliche Anfrage zur Nutzung einer oder mehrerer Ressourcen der Plattformlogik 110, wie beispielsweise eines oder mehrerer Kerne oder zugeordneter Logik, beinhalten. Beispielsweise kann eine Verarbeitungsanfrage einen Prozessorkern-Interrupt; eine Anfrage zum Instanziieren einer Softwarekomponente, wie beispielsweise eines I/O-Vorrichtungstreibers 124 oder der virtuellen Maschine 132; eine Anfrage zum Verarbeiten eines von einer virtuellen Maschine 132 oder von einer außerhalb der Plattform 102 befindlichen Vorrichtung (wie beispielsweise von einem mit dem Netz 108 gekoppelten Netzknoten) empfangenen Netzpakets; eine Anfrage zum Ausführen einer Arbeitslast (z. B. eines Prozesses oder Threads), die einer virtuellen Maschine 132, einer auf der Plattform 102 laufenden Anwendung, dem Hypervisor 120 oder einem anderen auf der Plattform 102 laufenden Betriebssystem zugeordnet ist; oder eine andere geeignete Anfrage umfassen.The platform logic 110 can receive and execute any suitable types of processing requests. A processing request may be any request to use one or more resources of the platform logic 110 , such as one or more cores or associated logic. For example, a processing request may be a processor core interrupt; a request to instantiate a software component, such as an I / O device driver 124 or the virtual machine 132 ; a request to process one from a virtual machine 132 or from outside the platform 102 located device (such as one with the network 108 coupled network nodes) received network packets; a request to execute a workload (such as a process or thread) that is a virtual machine 132 , one on the platform 102 running application, the hypervisor 120 or another on the platform 102 associated with the current operating system; or another suitable request.

In verschiedenen Ausführungsformen können Verarbeitungsanfragen den Gastsystemen 122 zugeordnet sein. Ein Gastsystem kann eine einzelne virtuelle Maschine (z. B. die virtuelle Maschine 132a oder 132b) oder mehrere zusammen operierende virtuelle Maschinen (z. B. eine virtuelle Netzfunktion (VNF) 134 oder eine Dienstfunktionskette (SFC) 136) umfassen. Wie abgebildet, können verschiedene Ausführungsformen eine Vielfalt von Typen von auf derselben Plattform 102 vorhandenen Gastsystemen 122 beinhalten.In various embodiments, processing requests may be to the guest systems 122 be assigned. A guest can be a single virtual machine (such as the virtual machine 132a or 132b ) or several virtual machines operating together (for example, a virtual network function (VNF)). 134 or a service function chain (SFC) 136 ). As depicted, various embodiments may have a variety of types of on the same platform 102 existing guest systems 122 include.

Eine virtuelle Maschine 132 kann ein Computersystem mit seiner eigenen dedizierten Hardware emulieren. Eine virtuelle Maschine 132 kann ein Gastbetriebssystem über dem Hypervisor 120 betreiben. Die Komponenten der Plattformlogik 110 (z. B. die CPUs 112, der Speicher 114, der Chipsatz 116 und die Kommunikationsschnittstelle 118) können so virtualisiert sein, dass es dem Gastbetriebssystem erscheint, dass die virtuelle Maschine 132 ihre eigenen dedizierten Komponenten aufweist.A virtual machine 132 can emulate a computer system with its own dedicated hardware. A virtual machine 132 can be a guest OS over the hypervisor 120 operate. The components of the platform logic 110 (eg the CPUs 112 , the memory 114 , the chipset 116 and the communication interface 118 ) can be virtualized so that it appears to the guest operating system that the virtual machine 132 has its own dedicated components.

Eine virtuelle Maschine 132 kann eine virtualisierte NIC (vNIC) beinhalten, die durch die virtuelle Maschine als ihre Netzschnittstelle genutzt wird. Einer vNIC kann eine Medienzugriffssteuerungs- (Media Access Control-, MAC-) Adresse zugewiesen werden, wodurch ermöglicht wird, dass mehrere virtuelle Maschinen 132 in einem Netz einzeln adressierbar sind.A virtual machine 132 may include a virtualized NIC (vNIC) that is used by the virtual machine as its network interface. A vNIC can be assigned a media access control (MAC) address, which allows multiple virtual machines 132 in a network are individually addressable.

In einigen Ausführungsformen kann eine virtuelle Maschine 132b paravirtualisiert sein. Beispielsweise kann die virtuelle Maschine 132b erweiterte Treiber (z. B. Treiber, die eine höhere Leistung bereitstellen oder Schnittstellen mit höherer Bandbreite zu zugrundeliegenden Ressourcen oder Fähigkeiten, die durch den Hypervisor 120 bereitgestellt werden, aufweisen) beinhalten. Beispielsweise kann ein erweiterter Treiber eine schnellere Schnittstelle zu dem zugrundliegenden virtuellen Switch 138 für eine höhere Netzleistung gegenüber Standardtreibern aufweisen.In some embodiments, a virtual machine 132b be paravirtualized. For example, the virtual machine 132b advanced drivers (for example, drivers that provide higher performance or higher bandwidth interfaces to underlying resources or capabilities provided by the hypervisor 120 be provided). For example, an extended driver may provide a faster interface to the underlying virtual switch 138 for a higher network performance over standard drivers.

Die VNF 134 kann eine Softwareimplementierung eines funktionalen Bausteins mit definierten Schnittstellen und Verhaltensweisen, die in einer virtualisierten Infrastruktur einsetzbar sind, umfassen. In bestimmten Ausführungsformen kann eine VNF 134 eine oder mehrere virtuelle Maschinen 132 beinhalten, die zusammen spezifische Funktionalitäten (z. B. Weitverkehrsnetz- (Wide Area Network-, WAN-) Optimierung, Abschluss eines virtuellen privaten Netzes (Virtual Private Network, VPN), Firewall-Operationen, Lastverteilungsoperationen, Sicherheitsfunktionen usw.) bereitstellen. Eine auf der Plattformlogik 110 laufende VNF 134 kann dieselbe Funktionalität wie herkömmliche, durch dedizierte Hardware implementierte Netzkomponenten bereitstellen. Beispielsweise kann eine VNF 134 Komponenten zum Ausführen jeglicher geeigneter NFV-Arbeitslasten, wie beispielsweise virtualisierte Evolved Packet Core- (vEPC-) Komponenten, Mobilitätsverwaltungseinheiten (Mobility Management Entities), 3rd Generation Partnership Project- (3GPP-) Steuerung und Datenebenenkomponenten usw., beinhalten.The VNF 134 can comprise a software implementation of a functional building block with defined interfaces and behaviors that can be used in a virtualized infrastructure. In certain embodiments, a VNF 134 one or more virtual machines 132 which together provide specific functionalities (e.g., wide area network (WAN) optimization, virtual private network (VPN) completion, firewall operations, load balancing operations, security functions, etc.). One on the platform logic 110 ongoing VNF 134 can provide the same functionality as traditional dedicated hardware implemented network components. For example, a VNF 134 Components for performing any suitable NFV workloads, such as virtualized evolved packet core (vEPC) components, mobility management entities, 3rd generation partnership project (3GPP) control, and data tier components, etc., are included.

Die SFC 136 ist eine Gruppe von VNFs 134, die als eine Kette organisiert sind, um eine Reihe von Operationen, wie beispielsweise Netzpaketverarbeitungsoperationen, auszuführen. Dienstfunktionsverkettung kann die Fähigkeit bereitstellen, eine geordnete Liste von Netzdiensten (z. B. Firewalls, Lastverteiler), die zur Erzeugung einer Dienstkette miteinander verknüpft sind, zu definieren.The SFC 136 is a group of VNFs 134 organized as a chain to perform a series of operations, such as network packet processing operations. Service chaining may provide the ability to maintain an ordered list of network services (eg, firewalls, Load distributor), which are linked together to create a service chain.

Ein Hypervisor 120 (auch als virtueller Maschinen-Monitor bekannt) kann Logik zum Erzeugen und Betreiben der Gastsysteme 122 umfassen. Der Hypervisor 120 kann Gastbetriebssysteme aufweisen, die durch virtuelle Maschinen mit einer virtuellen Betriebsplattform ausgeführt werden (d. h. den virtuellen Maschinen erscheint es, dass sie auf separaten physischen Knoten laufen, obwohl sie tatsächlich auf eine einzige Hardwareplattform konsolidiert sind), und die Ausführung der Gastbetriebssysteme durch die Plattformlogik 110 verwalten. Dienste des Hypervisors 120 können durch Virtualisieren in Software oder durch hardwaregestützte Ressourcen, die minimale Softwareeingriffe erfordern, oder beides bereitgestellt sein. Zahlreiche Instanzen einer Vielfalt von Gastbetriebssystemen können durch den Hypervisor 120 verwaltet werden. Jede Plattform 102 kann eine separate Instanziierung eines Hypervisors 120 aufweisen.A hypervisor 120 (Also known as a virtual machine monitor) may be logic for generating and operating the guest systems 122 include. The hypervisor 120 may include guest operating systems that are executed by virtual machines with a virtual operating platform (ie, the virtual machines appear to be running on separate physical nodes although they are in fact consolidated on a single hardware platform) and the execution of the guest operating systems by the platform logic 110 manage. Services of the hypervisor 120 may be provided by virtualization in software or by hardware-based resources that require minimal software intervention, or both. Many instances of a variety of guest operating systems can be served by the hypervisor 120 to get managed. Every platform 102 may be a separate instantiation of a hypervisor 120 exhibit.

Der Hypervisor 120 kann ein nativer oder Bare-Metal-Hypervisor sein, der direkt auf der Plattformlogik 110 läuft, um die Plattformlogik zu steuern und die Gastbetriebssysteme zu verwalten. Alternativ kann der Hypervisor 120 ein gehosteter Hypervisor sein, der auf einem Host-Betriebssystem läuft und die Gastbetriebssysteme vom Host-Betriebssystem abstrahiert. Verschiedene Ausführungsformen können eine oder mehrere nicht virtualisierte Plattformen 102 beinhalten; in diesem Fall können jegliche hier beschriebene geeignete Merkmale oder Funktionen des Hypervisors 120 auf ein Betriebssystem der nicht virtualisierten Plattform zutreffen.The hypervisor 120 can be a native or bare-metal hypervisor directly on the platform's logic 110 runs to control the platform logic and manage the guest operating systems. Alternatively, the hypervisor 120 a hosted hypervisor that runs on a host operating system and abstracts the guest operating systems from the host operating system. Various embodiments may include one or more non-virtualized platforms 102 include; In this case, any suitable features or functions of the hypervisor described herein may be used 120 apply to an operating system of the non-virtualized platform.

Der Hypervisor 120 kann jegliche geeignete Telemetriedaten (wie beispielsweise die vorstehend beschriebenen) sammeln und die Telemetriedaten an eine jegliche geeignete Einheit, wie beispielsweise an eine oder mehrere Verwaltungsmaschinen 126, die Datenzentrumsverwaltungsplattform 106 oder die Datenanalysemaschine 104, melden. In einer Ausführungsform meldet der Hypervisor 120 die Telemetriedaten über eine Inband-Lösung (d. h. unter Verwendung derselben, durch die Gastsysteme 122 verwendeten Kommunikationsschnittstelle) durch die Kommunikationsschnittstelle 118 an die Datenzentrumsverwaltungsplattform 106 und/oder an die Datenanalysemaschine 104. Der Hypervisor 120 kann auch einen oder mehrere I/O-Vorrichtungstreiber 124 (entweder direkt oder durch eine Zwischenschnittstelle) mit der Verwaltungsmaschine 126 in Kontakt bringen und so die Kommunikation zwischen den beiden Einheiten zulassen.The hypervisor 120 may collect any suitable telemetry data (such as those described above) and the telemetry data to any suitable entity, such as one or more administrative engines 126 , the data center management platform 106 or the data analysis engine 104 , Report. In one embodiment, the hypervisor reports 120 the telemetry data via an in-band solution (ie using the same, by the guest systems 122 used communication interface) through the communication interface 118 to the data center management platform 106 and / or to the data analysis engine 104 , The hypervisor 120 may also include one or more I / O device drivers 124 (either directly or through an intermediate interface) with the management engine 126 and allow communication between the two units.

Der Hypervisor 120 kann einen virtuellen Switch 138 beinhalten, der den virtuellen Maschinen der Gastsysteme 122 virtuelle Switching- und/oder Routingfunktionen bereitstellen kann. Der virtuelle Switch 138 kann ein logisches Switching Fabric umfassen, das die vNICs der virtuellen Maschinen 132 miteinander koppelt und so ein virtuelles Netz erzeugt, durch das virtuelle Maschinen miteinander kommunizieren können. Der virtuelle Switch 138 kann auch über physische NICs der Kommunikationsschnittstelle 118 mit einem oder mehreren Netzen (z. B. Netz 108) gekoppelt sein, um die Kommunikation zwischen den virtuellen Maschinen 132 und einem oder mehreren außerhalb der Plattform 102 befindlichen Netzknoten (z. B. einer virtuellen Maschine, die auf einer anderen Plattform 102 läuft, oder einem Knoten, der mit durch das Internet oder ein anderes Netz mit der Plattform 102 gekoppelt ist) zuzulassen. Der virtuelle Switch 138 kann ein Softwareelement umfassen, das anhand von Komponenten der Plattformlogik 110 ausgeführt wird. In verschiedenen Ausführungsformen kann der Hypervisor 120 mit einer jeglichen geeigneten Einheit (z. B. einer SDN-Steuerung) in Kommunikation stehen, die bewirken kann, dass der Hypervisor 120 die Parameter des virtuellen Switches 138 in Reaktion auf veränderte Bedingungen in der Plattform 102 (z. B. die Ergänzung oder Entfernung virtueller Maschinen 132 oder die Identifikation von Optimierungen, die zur Verbesserung der Leistung der Plattform vorgenommen werden können) rekonfiguriert.The hypervisor 120 can be a virtual switch 138 involve the virtual machines of the guest systems 122 can provide virtual switching and / or routing functions. The virtual switch 138 can include a logical switching fabric that contains the vNICs of the virtual machines 132 coupled together, creating a virtual network that allows virtual machines to communicate with each other. The virtual switch 138 can also communicate via physical NICs of the communication interface 118 with one or more networks (eg network 108 ) to communicate between the virtual machines 132 and one or more outside the platform 102 located network nodes (for example, a virtual machine running on another platform 102 running, or a node that is using the internet or another network with the platform 102 coupled). The virtual switch 138 may comprise a software element based on components of the platform logic 110 is performed. In various embodiments, the hypervisor may 120 communicate with any appropriate entity (e.g., an SDN controller) that can cause the hypervisor 120 the parameters of the virtual switch 138 in response to changing conditions in the platform 102 (eg the addition or removal of virtual machines 132 or the identification of optimizations that can be made to improve the performance of the platform).

Der Hypervisor 120 kann auch die Ressourcenzuweisungslogik 144 beinhalten, die Logik zum Bestimmen der Zuweisung von Plattformressourcen basierend auf den Telemetriedaten beinhalten kann. Die Ressourcenzuweisungslogik 144 kann auch Logik zum Kommunizieren mit verschiedenen Einheiten der Plattform 102 zum Implementieren solcher Optimierungen beinhalten, wie beispielsweise Komponenten der Plattformlogik 102 und Ressourcenzuweisungslogik 142 eines oder mehrerer I/O-Vorrichtungstreiber 124. Beispielsweise kann die Ressourcenzuweisungslogik 144 vorgeben, welche Ressourcen der Plattformlogik 110 genutzt werden, um den virtuellen Switch 138 oder einen oder mehrere I/O-Vorrichtungstreiber 124 zu implementieren. Als ein weiteres Beispiel könnte die Ressourcenzuweisungslogik 144 den I/O auf virtuelle Maschinen 132 ansetzen, die mehr Ressourcen zur Handhabung der Last als andere virtuelle Maschinen aufweisen. In bestimmten Ausführungsformen kann die Ressourcenzuweisungslogik 144 die Bewegung von Prozessen, die Anwendungen und/oder virtuellen Maschinen zugeordnet sind, über Kerne der Plattformlogik 110 leiten.The hypervisor 120 can also use the resource allocation logic 144 which may include logic for determining the allocation of platform resources based on the telemetry data. The resource allocation logic 144 Also can logic to communicate with different units of the platform 102 to implement such optimizations, such as components of the platform logic 102 and resource allocation logic 142 one or more I / O device drivers 124. For example, the resource allocation logic 144 specify which resources of the platform logic 110 be used to the virtual switch 138 or implement one or more I / O device drivers 124. As another example, the resource allocation logic could 144 the I / O to virtual machines 132 that have more resources to handle the load than other virtual machines. In certain embodiments, the resource allocation logic 144 the movement of processes associated with applications and / or virtual machines via cores of the platform logic 110 conduct.

Der Hypervisor 120 kann eine jegliche geeignete Anzahl an I/O-Vorrichtungstreibern 124 beinhalten. Der I/O-Vorrichtungstreiber 124 weist eine oder mehrere Softwarekomponenten auf, die es zulassen, dass der Hypervisor 120 mit einer physischen I/O-Vorrichtung kommuniziert. In verschiedenen Ausführungsformen kann die zugrundeliegende physische I/O-Vorrichtung mit einer jeglichen der CPUs 112 gekoppelt sein und Daten an die CPUs 112 senden und Daten von den CPUs 112 empfangen. Die zugrundeliegende I/O-Vorrichtung kann ein jegliches geeignetes Kommunikationsprotokoll, wie beispielsweise PCI, PCIe, Universal Serial Bus (USB), seriell angeschlossene SCSI (SAS), serielle ATA (SATA), InfiniBand, Fibre Channel, ein IEEE 802.3-Protokoll, ein IEEE 802.11-Protokoll oder ein anderes aktuelles oder künftiges Signalisierungsprotokoll, beinhalten.The hypervisor 120 may include any suitable number of I / O device drivers 124. The I / O device driver 124 includes one or more software components that allow the hypervisor 120 communicates with a physical I / O device. In different Embodiments may use the underlying physical I / O device with any of the CPUs 112 be coupled and data to the CPUs 112 send and data from the CPUs 112 receive. The underlying I / O device can use any suitable communication protocol, such as PCI, PCIe, Universal Serial Bus (USB), Serial Attached SCSI (SAS), Serial ATA (SATA), InfiniBand, Fiber Channel, an IEEE 802.3 protocol, an IEEE 802.11 protocol or other current or future signaling protocol.

Die zugrundeliegende I/O-Vorrichtung kann einen oder mehrere Anschlüsse beinhalten, die operabel sind, um mit Kernen der CPUs 112 zu kommunizieren. In einem Beispiel ist die zugrundeliegende I/O-Vorrichtung eine physische NIC oder ein physischer Switch. In einer Ausführungsform ist die zugrundeliegende I/O-Vorrichtung des I/O-Vorrichtungstreibers 124 beispielsweise eine NIC der Kommunikationsschnittstelle 118 mit mehreren Anschlüssen (z. B. Ethernetanschlüssen).The underlying I / O device may include one or more ports that are operable to connect to cores of the CPUs 112 to communicate. In one example, the underlying I / O device is a physical NIC or a physical switch. For example, in one embodiment, the underlying I / O device of the I / O device driver 124 is a NIC of the communication interface 118 with several connections (eg Ethernet connections).

In anderen Ausführungsformen können zugrundeliegende I/O-Vorrichtungen eine jegliche geeignete Vorrichtung beinhalten, die in der Lage ist, Daten an die CPUs 112 zu übertragen und von selbigen zu empfangen, wie beispielsweise eine Audio/Video- (A/V-) Vorrichtungssteuerung (z. B. eine Grafikbeschleuniger- oder Audiosteuerung); eine Datenspeicher-Vorrichtungssteuerung, wie beispielsweise eine Flash-Speichervorrichtung, eine magnetische Speicherplatten- oder optische Speicherplattensteuerung; einen drahtlosen Transceiver; einen Netzprozessor oder eine Steuerung für eine andere Eingabevorrichtung, wie beispielsweise einen Monitor, einen Drucker, eine Maus, eine Tatstatur oder einen Scanner; oder eine andere geeignete Vorrichtung.In other embodiments, underlying I / O devices may include any suitable device capable of providing data to the CPUs 112 to transmit and receive, such as audio / video (A / V) device control (eg, a graphics accelerator or audio controller); a data storage device controller, such as a flash memory device, a magnetic disk or optical disk controller; a wireless transceiver; a network processor or controller for another input device, such as a monitor, a printer, a mouse, a keyboard, or a scanner; or another suitable device.

In verschiedenen Ausführungsformen können, wenn eine Verarbeitungsanfrage empfangen wird, der I/O-Vorrichtungstreiber 124 oder die zugrundeliegende I/O-Vorrichtung einen Interrupt (wie beispielsweise einen Message Signaled Interrupt) an einen jeglichen der Kerne der Plattformlogik 110 senden. Beispielsweise kann der I/O-Vorrichtungstreiber 124 einen Interrupt an einen Kern senden, der ausgewählt ist, um eine Operation auszuführen (z. B. für eine virtuelle Maschine 132 oder einen Prozess einer Anwendung). Bevor der Interrupt an den Kern geliefert wird, könnten die für den Kern bestimmten Eingangsdaten (z. B. Netzpakete) bei der zugrundeliegenden I/O-Vorrichtung und/oder einem der CPU 112 des Kerns zugeordneten I/O-Block zwischengespeichert werden. In einigen Ausführungsformen kann der I/O-Vorrichtungstreiber 124 die zugrundeliegende I/O-Vorrichtung mit Befehlen in Bezug darauf, wohin Interrupts zu senden sind, konfigurieren.In various embodiments, when a processing request is received, the I / O device driver 124 or the underlying I / O device may issue an interrupt (such as a message-signaled interrupt) to any of the cores of the platform logic 110 send. For example, the I / O device driver 124 may send an interrupt to a kernel selected to perform an operation (eg, for a virtual machine 132 or a process of an application). Before the interrupt is delivered to the core, the core input data (eg, network packets) may be at the underlying I / O device and / or one of the CPUs 112 the core associated I / O block are cached. In some embodiments, the I / O device driver 124 may configure the underlying I / O device with instructions related to where interrupts are to be sent.

In verschiedenen Ausführungsformen beinhaltet der I/O-Vorrichtungstreiber 124 Überwachungslogik 140, die in der Lage sein kann, dem I/O-Vorrichtungstreiber 124 zugeordnete Echtzeit- und/oder Benchmark-Telemetriedaten zu sammeln. In einigen Ausführungsformen können der Hypervisor 120 und/oder der I/O-Vorrichtungstreiber 124 eine Reihe von Benchmarktests ausführen, um verschiedene Telemetriedaten zu erhalten. Die Benchmarktests können zu einer jeglichen geeigneten Zeit, beispielsweise wenn die Plattform 102 eingeschaltet wird, wenn der I/O-Vorrichtungstreiber 124 initialisiert wird oder wenn in der Plattform 102 eine Konfigurationsänderung auftritt, ausgeführt werden. In verschiedenen Ausführungsformen können die Benchmarktests durch den Hypervisor 120 oder den I/O-Vorrichtungstreiber 124 instanziiert werden (in einigen Ausführungsformen in Reaktion auf eine Anfrage von der Verwaltungsmaschine 126 zum Ausführen von Benchmarktests). In einigen Ausführungsformen können bestimmte Benchmarktests während eines Zeitraums durchgeführt werden, in dem gemessene Telemetrie anzeigt, dass die Benchmarktests durch die CPU-Kerne ausgeführte normale Prozesse nicht stören würden.In various embodiments, the I / O device driver 124 includes monitoring logic 140 , which may be capable of collecting real-time and / or benchmark telemetry data associated with the I / O device driver 124. In some embodiments, the hypervisor may 120 and / or the I / O device driver 124 perform a series of benchmark tests to obtain various telemetry data. The benchmark tests may take place at any appropriate time, for example when the platform 102 is turned on when the I / O device driver 124 is initialized or in the platform 102 a configuration change occurs. In various embodiments, the benchmark tests may be performed by the hypervisor 120 or the I / O device driver 124 (in some embodiments in response to a request from the management engine 126 to run benchmark tests). In some embodiments, certain benchmark tests may be performed during a period in which measured telemetry indicates that the benchmark tests would not interfere with normal processes performed by the CPU cores.

In einigen Ausführungsformen können der Hypervisor 120 und/oder der I/O-Vorrichtungstreiber 124 während eines Benchmarktests die Kerne durchlaufen und jedem Kern zugeordnete Daten sammeln. Die Benchmarktests können Latenzzeiten, Bandbreiten, Determinismen (d. h. das Maß, in dem die für eine bestimmte Aufgabe erforderliche Zeitmenge vorhersagbar ist) oder Jitter in Verbindung mit jedem CPU-Kern (z. B. in Bezug auf die Kommunikation zwischen dem Kern und dem Systemspeicher, dem Kern und anderen Kernen, dem Kern und I/O-Vorrichtungen, wie beispielsweise NICs, dem Kern und einem oder mehreren Caches usw.) oder andere geeignete Informationen messen. Als ein Beispiel können kleine Datenübermittlungen (wie beispielsweise eine einzige Cachezeile) über verschiedene Komponenten der Plattform (z. B. Kerne, I/O-Vorrichtungen, verschiedene CPU-Sockel, Speicher 114 usw.) durchgeführt und die Latenzzeiten jeder Übermittlung können gemessen werden.In some embodiments, the hypervisor may 120 and / or the I / O device driver 124 go through the cores during a benchmark test and collect data associated with each core. The benchmark tests may include latencies, bandwidths, determinisms (ie, the extent to which the amount of time required for a particular task is predictable), or jitter associated with each CPU core (eg, with respect to core-to-system memory communication , the core and other cores, the core and I / O devices such as NICs, the core and one or more caches, etc.) or other suitable information. As an example, small data transfers (such as a single cache line) may be through various components of the platform (eg, cores, I / O devices, various CPU sockets, memory 114 etc.) and the latencies of each transmission can be measured.

In einigen Ausführungsformen können die Benchmarktests die Bestimmung verschiedener topologischer Daten der Plattform 102 zulassen. Beispielsweise können die erhaltenen Daten die Positionierung von Kernen in Bezug aufeinander (z. B. kann die zum Kommunizieren von einem Kern zu einem anderen erforderliche Zeitmenge anzeigen, wie nah die Kerne zueinander sind), die Positionierung von Kernen in Bezug auf eine oder mehrere I/O-Vorrichtungen (z. B. können Kerne, die schneller auf Anfragen von einer I/O-Vorrichtung reagieren, als näher zur I/O-Vorrichtung gelten), die Positionierung von Kernen in Bezug auf ein Speichermodul des Speichers 114, dessen Kerne bestimmte gemeinsam genutzte Caches nutzen (und ihre Positionierung in Bezug auf die gemeinsam genutzten Caches), die Positionierung von Kernen in Bezug auf bestimmte Verbindungen (wie beispielsweise ein QuickPath Interconnect) oder andere geeignete Informationen anzeigen. Die Topologiedaten können auch Topologieinformationen einschließen, die Messungen über mehrere CPUs einbeziehen (z. B. wie nah ein bestimmter Kern der CPU 112a einem bestimmten Kern der CPU 112b ist). Die Topologiedaten können die dynamische Feststellung von Unregelmäßigkeiten in gemeinsam genutzten Plattformressourcen erlauben (beispielsweise können in einigen Ausführungsformen bestimmte Kerne eine höhere verfügbare Speicherbandbreite als andere aufweisen, und andere Kerne können eine höhere I/O-Bandbreite als andere aufweisen).In some embodiments, the benchmark tests may determine the various topological data of the platform 102 allow. For example, the obtained data may be the positioning of cores with respect to one another (eg, the amount of time required to communicate from one core to another may indicate how close the cores are to each other), the positioning of cores with respect to one or more I's / O devices (eg, cores that respond more quickly to requests from an I / O device than are closer to the I / O device) can be used to position cores with respect to a memory module of the present invention memory 114 whose cores display certain shared caches (and their positioning relative to the shared caches), the positioning of cores with respect to particular connections (such as a QuickPath interconnect), or other appropriate information. The topology data may also include topology information that includes measurements across multiple CPUs (eg, how close a particular core of the CPU is 112a a specific core of the CPU 112b is). The topology data may allow the dynamic discovery of irregularities in shared platform resources (eg, in some embodiments, certain cores may have a higher available memory bandwidth than others, and other cores may have a higher I / O bandwidth than others).

In bestimmten Ausführungsformen können Telemetriedaten, welche die Topologie oder Leistung der Komponenten der Plattform 102 anzeigen, von einer externen Quelle erhalten werden. Beispielsweise können diese Daten basierend auf einer Identifizierung verschiedener Komponenten der Plattformlogik 110 (wie beispielsweise einer Seriennummer oder Lagermengeneinheit (StockKeeping Unit, SKU) einer Komponente) aus einer Datenbank, die Information über die Konfiguration der Komponenten speichert, erhalten werden. In verschiedenen Ausführungsformen könnten solche Informationen in den Hypervisor 120 oder I/O-Vorrichtungstreiber 124 codiert werden oder dem Hypervisor 120 bzw. I/O-Vorrichtungstreiber 124 anderweitig zugänglich gemacht werden.In certain embodiments, telemetry data may indicate the topology or performance of the components of the platform 102 from an external source. For example, these data may be based on an identification of various components of the platform logic 110 (such as a serial number or stockkeeping unit (SKU) of a component) from a database storing information about the configuration of the components. In various embodiments, such information could be in the hypervisor 120 or I / O device drivers 124 or the hypervisor 120 or I / O device drivers 124 are otherwise accessible.

Telemetriedaten können auch während des Normalbetriebs der Plattform 102 gesammelt werden, wenn der I/O-Vorrichtungstreiber 124 den Verkehr innerhalb der zugrundeliegenden I/O-Vorrichtung passiv überwacht. Während einer solchen Überwachung kann der I/O-Vorrichtungstreiber 124 jegliche geeignete Informationen, wie beispielsweise die vorstehend in Verbindung mit den Benchmarks beschriebenen, sammeln. In verschiedenen Ausführungsformen können die zur Laufzeit gesammelten Daten Echtzeitbedingungen basierend auf dem Verkehrsfluss, wie beispielsweise die Belastung jedes Kerns, Caches und Speichermoduls, anzeigen. In zumindest einigen Ausführungsformen können die zur Laufzeit gemessenen Bandbreiten und Latenzzeiten eine Bandbreitenmenge oder durchschnittliche Latenzzeiten, die aufgrund des aktuellen Verkehrsflusses verfügbar sind, in Gegenüberstellung mit einer maximalen Bandbreite oder einer minimalen Latenzzeit, die während des Benchmarktests gemessen werden könnten, widerspiegeln.Telemetry data can also be used during normal operation of the platform 102 collected when the I / O device driver 124 passively monitors the traffic within the underlying I / O device. During such monitoring, the I / O device driver 124 may collect any suitable information, such as those described above in connection with the benchmarks. In various embodiments, the data collected at runtime may indicate real-time conditions based on the traffic flow, such as the load of each core, cache, and memory module. In at least some embodiments, the bandwidths and latencies measured at run time may reflect a bandwidth amount or average latencies available based on the current traffic flow in comparison with a maximum bandwidth or latency that might be measured during the benchmark test.

In einigen Ausführungsformen kann die Überwachungslogik 140 die von ihr gesammelten Daten filtern oder anderweitig verarbeiten. In verschiedenen Ausführungsformen meldet die Überwachungslogik 140 die von ihr gesammelten Daten und/oder die Ergebnisse ihrer Datenfilterung oder sonstigen -verarbeitung an andere Elemente im Datenzentrum 100, wie beispielsweise an die Verwaltungsmaschine 126, den Hypervisor 120 oder das andere Betriebssystem, die Datenanalysemaschine 104 und/oder die Datenzentrumsverwaltungsplattform 106. In einigen Ausführungsformen werden die Telemetriedaten regelmäßig an eine oder mehrere dieser Einheiten gemeldet. In verschiedenen Ausführungsformen, kann die Überwachungslogik 140 programmierbaren Code beinhalten, der konfigurierbar ist, um einzustellen, welche Telemetriedaten durch die Überwachungslogik gesammelt werden.In some embodiments, the monitoring logic may be 140 Filter or otherwise process the data that it collects. In various embodiments, the monitoring logic reports 140 the data it collects and / or the results of its data filtering or other processing to other elements in the Data Center 100 , such as the administrative engine 126 , the hypervisor 120 or the other operating system, the data analysis engine 104 and / or the data center management platform 106 , In some embodiments, the telemetry data is regularly reported to one or more of these devices. In various embodiments, the monitoring logic may 140 include programmable code that is configurable to set which telemetry data is collected by the monitoring logic.

Die Sammlung von Inband-Telemetriedaten kann erfordern, dass Arbeitslasten für die Telemetrie-Sammlung unterbrochen werden. Darüber hinaus kann die Sammlung von Telemetriedaten eingeschränkt sein, wenn bestimmte Kerne zur VNF-Line-Rate-Packet-Verarbeitung dediziert sind und nicht gestört werden sollten. Ferner verbraucht die Sammlung von Inband-Telemetriedaten Rechenkerne, Cacheplatz, Speicherbandbreite und andere Ressourcen, was vorhandene Arbeitslasten durch die Reduzierung ihrer Bandbreite, die Erhöhung von Jitter oder die Erhöhung der Gesamtlatenzzeit beeinträchtigen kann.The collection of in-band telemetry data may require that workloads for the telemetry collection be disrupted. In addition, the collection of telemetry data may be restricted if certain cores are dedicated to VNF line rate packet processing and should not be disturbed. In addition, the collection of in-band telemetry data consumes computing cores, cache space, memory bandwidth, and other resources, which can affect existing workloads by reducing their bandwidth, increasing jitter, or increasing total latency.

In verschiedenen Ausführungsformen können der I/O-Vorrichtungstreiber 124 und/oder der Hypervisor 120 Telemetriedaten in einer Außerband-Weise sammeln und/oder melden. Solche Ausführungsformen können eine Schnittstelle zwischen dem Hypervisor 120 und der Verwaltungsmaschine 126 beinhalten. Die Verwaltungsmaschine 126 kann die gesammelten Telemetriedaten durch die Schnittstelle empfangen und die Daten an die Datenanalysemaschine 104 und/oder die Datenzentrumsverwaltungsplattform 106 senden. Solche Ausführungsformen können einen Außerband-Zugang zur I/O-Vorrichtung ohne Störung der Inband-Zugänge von dem (den) den I/O-Vorrichtungstreiber 124 betreibenden Kern(en) zulassen. Solche Ausführungsformen können Overheads und Interrupt-Raten, die in Reaktion auf eine Rekonfiguration auftreten, wesentlich reduzieren. In einer weiteren Ausführungsform kann der Hypervisor 120 Telemetriedaten durch eine Kommunikationsschnittstelle (z. B. die Schnittstelle 118) melden, die auch durch die Gastsysteme 122 genutzt wird, kann die Daten jedoch zweckmäßigerweise anhand von Netzschnittstellen, die nicht genutzt werden oder nicht voll ausgelastet sind, an die Datenzentrumsverwaltungsplattform 106 und/oder die Datenanalysemaschine 104 melden, um die Auswirkungen auf die Leistung der Plattform 102 zu minimieren.In various embodiments, the I / O device driver 124 and / or the hypervisor 120 Collect and / or report telemetry data in an out-of-band manner. Such embodiments may interface with the hypervisor 120 and the administrative engine 126 include. The administrative machine 126 can receive the collected telemetry data through the interface and the data to the data analysis engine 104 and / or the data center management platform 106 send. Such embodiments may allow out-of-band access to the I / O device without disturbing the in-band accesses from the core (s) operating the I / O device driver 124. Such embodiments can significantly reduce overheads and interrupt rates that occur in response to reconfiguration. In another embodiment, the hypervisor 120 Telemetry data through a communication interface (eg the interface 118 ), also through the guest systems 122 However, the data may conveniently be forwarded to the data center management platform through network interfaces that are unused or underutilized 106 and / or the data analysis engine 104 Report the impact on the performance of the platform 102 to minimize.

Der I/O-Vorrichtungstreiber 124 kann auch die Ressourcenzuweisungslogik 142 beinhalten, die Logik zum Bestimmen der Zuweisung von Plattformressourcen basierend auf den Telemetriedaten beinhalten kann. Die Ressourcenzuweisungslogik 142 kann auch Logik zum Implementieren solcher Optimierungen beinhalten, die das Kommunizieren mit der zugrundeliegenden I/O-Vorrichtung einschließt, um die I/O-Vorrichtung zum Durchführen der Optimierungen zu leiten.The I / O device driver 124 may also use the resource allocation logic 142 include, the May include logic for determining the allocation of platform resources based on the telemetry data. The resource allocation logic 142 may also include logic for implementing such optimizations that includes communicating with the underlying I / O device to direct the I / O device to perform the optimizations.

Logik auf der Plattform 102 kann die Fähigkeit beinhalten, die Zuweisung von Plattformressourcen basierend auf den Telemetriedaten (einschließlich Echtzeit-Messungen und/oder Benchmark-Daten) zu bestimmen. Beispielsweise kann die Logik bestimmen, an welchen Kern ein Interrupt weiterzuleiten ist, welche Kerne zu vermeiden sind, wo ein Prozess zu positionieren ist, der einer bestimmten virtuellen Maschine oder einer Gruppe virtueller Maschinen zugeordnet ist, welche Ressourcen einem I/O-Vorrichtungstreiber 124 zuzuordnen sind (z. B. welcher Kern zum Betreiben des I/O-Vorrichtungstreibers 124 genutzt werden sollte und/oder welche Caches oder Speichermodule zum Speichern von durch den I/O-Vorrichtungstreiber 124 genutzten Daten genutzt werden sollten), wie die Plattform zu rekonfigurieren ist, um die Ressourcennutzung zu optimieren, oder andere geeignete Ressourcenzuweisungsentscheidungen treffen. In einigen Fällen kann die Optimierung eine andere Plattform einbeziehen. Beispielsweise könnten ein Prozess, eine virtuelle Maschine oder eine andere Arbeitslast auf einer anderen Plattform mit einem zugewiesenen Kern, Cache und/oder Speicher dieser Plattform angeordnet sein oder zu dieser migriert werden.Logic on the platform 102 may include the ability to determine the allocation of platform resources based on the telemetry data (including real-time measurements and / or benchmark data). For example, the logic may determine to which core an interrupt is to be forwarded, which cores to avoid, where to position a process associated with a particular virtual machine or group of virtual machines, which allocate resources to an I / O device driver 124 (eg which kernel should be used to operate the I / O device driver 124 and / or which caches or memory modules should be used to store data used by the I / O device driver 124), how to reconfigure the platform is to optimize resource usage or make other appropriate resource allocation decisions. In some cases, optimization can involve a different platform. For example, a process, virtual machine, or other workload could be located on or migrated to another platform with an assigned core, cache, and / or storage of that platform.

Eine jegliche geeignete Logik kann eine oder mehrere dieser Optimierungsentscheidungen treffen. Beispielsweise können die Ressourcenzuweisungslogik 142 des I/O-Vorrichtungstreibers 124, die Datenanalysemaschine 104, die Datenzentrumsverwaltungsplattform 106, die Ressourcenzuweisungslogik 144 des Hypervisors 120 oder anderen Betriebssystems in der Lage sein, solche Entscheidungen zu treffen (entweder allein oder in Kombination mit anderen Elementen der Plattform 102). In einer besonderen Ausführungsform kann die Datenzentrumsverwaltungsplattform 106 (anhand von Inband- oder Außerband-Kommunikation) mit dem Hypervisor 120 kommunizieren, um die Optimierungen, die zur Einhaltung der auf der Datenzentrumsverwaltungsplattform gespeicherten Richtlinien genutzt werden sollten, zu spezifizieren.Any suitable logic may make one or more of these optimization decisions. For example, the resource allocation logic 142 I / O device driver 124, the data analysis engine 104 , the data center management platform 106 , the resource allocation logic 144 of the hypervisor 120 or any other operating system to be able to make such decisions (either alone or in combination with other elements of the platform 102 ). In a particular embodiment, the data center management platform 106 (using in-band or out-of-band communication) with the hypervisor 120 to specify the optimizations that should be used to comply with the policies stored on the data center management platform.

In verschiedenen Ausführungsformen können die Optimierungen in Echtzeit basierend auf dem Verkehrsaufkommen und der Arbeitslast auf den Kernen, wie sie durch die gesammelten Telemetriedaten gemessen wurden, vorgenommen werden. Globale (z. B. plattformweite) oder lokale (z. B. in Bezug auf eine bestimmte virtuelle Maschine, ein Gastsystem, eine auf einem Gastsystem laufende Anwendung usw.) Kennzahlen, die durch die Logik der Plattform optimiert werden können, können das Minimieren der Leistungslatenz einer Verarbeitungsanfrage, das Minimieren des Einflusses benachbarter Kerne auf die Lieferung von Interrupts, das Minimieren der Interrupt-Latenzzeit und das Maximieren des Gesamtdurchsatzes und der Leistung beinhalten. In manchen Fällen kann eine Reihe lokaler Optimierungen (z. B. Auswahlen bestimmter Kerne für bestimmte Arbeitslasten) vorgenommen werden, um einen globalen Optimierungspunkt zu erzielen (z. B. die Leistung zu maximieren oder die Latenzzeit einer bestimmten Anwendung zu minimieren).In various embodiments, the optimizations may be made in real time based on the traffic volume and workload on the cores, as measured by the collected telemetry data. Global (eg, platform-wide) or local (eg, with respect to a particular virtual machine, a guest, a guest running application, etc.) metrics that can be optimized by the logic of the platform can minimize this performance latency of a processing request, minimizing the impact of neighboring cores on the delivery of interrupts, minimizing interrupt latency, and maximizing overall throughput and performance. In some cases, a number of local optimizations (such as selecting specific cores for specific workloads) can be made to achieve a global optimization point (such as maximizing performance or minimizing the latency of a particular application).

Wie vorstehend erwähnt kann eine der Optimierungen die Platzierung eines I/O-Vorrichtungstreibers 124 und zugeordneter Ressourcen beinhalten. Beispielsweise können leistungsstarke I/O-Vorrichtungstreiber auf Kernen betrieben werden, die I/O-Blöcken der CPUs 112 am nächsten sind. Dem I/O-Vorrichtungstreiber 124 zugeordnete Ressourcen können auch an optimalen Positionen angeordnet werden. Beispielsweise können durch den I/O-Vorrichtungstreiber 124 genutzte Warteschlangen (z. B. zum Speichern von Befehlen, die zum Betreiben des Treibers oder als ein Puffer für vom Treiber geleitete eingehende oder ausgehende Pakete verwendet werden) oder Hardware-DMA-Deskriptoren einem bestimmten Cache oder Speichermodul (z. B. einem mit hoher Leistung und/oder einem nahe dem Kern, der den I/O-Vorrichtungstreiber 124 betreibt, angeordneten) zugewiesen werden.As mentioned above, one of the optimizations may involve the placement of an I / O device driver 124 and associated resources. For example, powerful I / O device drivers can be run on cores, the CPU's I / O blocks 112 are closest. Resources associated with the I / O device driver 124 may also be located at optimal locations. For example, queues utilized by the I / O device driver 124 (eg, for storing instructions used to drive the driver or as a buffer for driver-directed inbound or outbound packets) or hardware DMA descriptors may be dedicated Cache or memory module (eg, one with high power and / or near the core operating the I / O device driver 124).

Bestimmte Arbeitslasten der Gastsysteme 122 (einschließlich Kern-Interrupts) können einem bestimmten Kern basierend auf den Telemetriedaten, wie beispielsweise einer Bandbreite eines Kerns oder der Kern-zu-Cache-, Kern-zu-I/O- oder Kern-zu-SpeicherBandbreite, zugewiesen werden. Beispielsweise können Arbeitslasten oder Verbindungen mit hoher Priorität oder sonstigen Anforderungen zu leistungsstarken Kernen gelenkt werden, wohingegen Arbeitslasten mit niedriger Priorität zu relativ leistungsschwachen Kernen gelenkt werden können. Arbeitslasten können Caches oder Speichern auch basierend auf jeglichen geeigneten Telemetriedaten zugewiesen werden. Beispielsweise kann ein bestimmter Cache eine oder mehrere Partitionen beinhalten, um Daten zu speichern, die Arbeitslasten mit höherer Priorität zugeordnet sind. Als ein weiteres Beispiel kann ein zu einer bestimmten CPU lokaler Speicher für auf dieser CPU laufende Prozesse verwendet werden.Certain workloads of the guest systems 122 (including core interrupts) may be assigned to a particular core based on the telemetry data, such as core bandwidth or core-to-cache, core-to-I / O or core-to-memory bandwidth. For example, high-priority workloads or high-priority connections may be routed to high-performance cores, while low-priority workloads may be routed to relatively low-performance cores. Workloads can also be assigned to caches or stores based on any suitable telemetry data. For example, a particular cache may include one or more partitions to store data associated with higher priority workloads. As another example, local memory to a particular CPU may be used for processes running on that CPU.

In einigen Ausführungsformen kann, wenn Arbeitslasten auf die Kerne verteilt sind, der Hypervisor 120 eine größere Anzahl an Arbeitslasten zu den leistungsstärkeren Kernen als zu den leistungsschwächeren Kernen lenken. In einigen Fällen können Kernen, die Probleme, wie beispielsweise Überhitzung, oder starke Belastungen zeigen, weniger Aufgaben als anderen Kernen zugeteilt werden, oder sie können ganz umgangen werden (zumindest vorübergehend). Arbeitslasten, die Anwendungen, Diensten, Containern und/oder virtuellen Maschinen 132 zugeordnet sind, können eher anhand von Netzlast- und Verkehrsmustern als nur CPU- und Speichernutzungskennzahlen auf Kerne verteilt werden.In some embodiments, when workloads are distributed among the cores, the hypervisor may 120 direct more workloads to the more powerful cores than to the lower performing cores. In some cases For example, cores showing problems such as overheating or heavy loads may be assigned fewer tasks than other cores, or they may be bypassed altogether (at least temporarily). Workloads, the applications, services, containers, and / or virtual machines 132 can be distributed to cores based on network load and traffic patterns rather than just CPU and memory usage metrics.

Wenn einige Prozesse die I/O-Vorrichtung mit einer relativ hohen Rate nutzen, können diese Prozesse auf einen Kern affinitisiert werden, der sich nahe der I/O-Vorrichtung (d. h. nahe einem I/O-Block einer CPU 112) befindet. Ebenso kann, wenn ein Kommunikationsfluss latenzempfindlich ist, dieser auf einer leistungsstarken I/O-Vorrichtung (z. B. NIC) und einem der I/O-Vorrichtung nahen leistungsstarken Kern platziert werden.If some processes use the I / O device at a relatively high rate, these processes may be affinity-focused on a core that is close to the I / O device (ie, near an I / O block of a CPU 112 ) is located. Similarly, if a communication flow is latency sensitive, it may be placed on a high performance I / O device (eg, NIC) and a high performance core near the I / O device.

In verschiedenen Ausführungsformen können die Optimierungen das kernübergreifende Bewegen von Steuerungsstrukturen durch den I/O-Vorrichtungstreiber 124 beinhalten. Beispielsweise könnte ein gemeinsam genutzter Ring, der zum Kommunizieren von auf einem ersten Kern laufender Software genutzt wird, zusammen mit seinem Schnittstellentreiber zu einem optimaleren Kern bewegt werden.In various embodiments, the optimizations may include moving core control structures through the I / O device driver 124. For example, a shared ring used to communicate software running on a first core could be moved to a more optimal core along with its interface driver.

Die Optimierungen können auch die Struktur der Gastsysteme 122, die Kommunikationen zwischen mehreren virtuellen Maschinen nutzen können (z. B., VNF 134 oder SFC 136), berücksichtigen. Beispielsweise können die einer ersten virtuellen Maschine einer SFC zugeordneten Arbeitslasten auf einem Kern angeordnet werden, der sich neben einem Kern befindet, der einer zweiten virtuellen Maschine der SFC zugeordnete Arbeitslasten ausführt, sodass Kommunikationen von der ersten virtuellen Maschine schnell zur zweiten virtuellen Maschine gesendet werden können.The optimizations can also change the structure of the guest systems 122 who can use communications between multiple virtual machines (e.g., VNF 134 or SFC 136 ), consider. For example, the workloads associated with a first virtual machine of an SFC may be located on a core that is adjacent to a core that executes workloads associated with a second virtual machine of the SFC so that communications from the first virtual machine can be quickly sent to the second virtual machine ,

In einigen Ausführungsformen können die Optimierungen eine dynamische Skalierbarkeit ermöglichen, die besonders wichtig sein kann, da sie sich auf die Aufrechterhaltung einer hohen QoS in Bezug auf die Dienstfunktionsverkettung und andere Gastsysteme 122 bezieht. In einer besonderen Ausführungsform kann der I/O-Vorrichtungstreiber 124 Telemetriedaten sammeln, die den Verkehrsfluss anzeigen. Wenn die Verkehrsflussrate auf der Plattform 102 niedrig oder moderat ist, kann der I/O-Vorrichtungstreiber Interrupts an Kerne, die der I/O-Vorrichtung (z. B. NIC) am nächsten sind, senden, um die Latenzzeit-/Bandbreitenlokalität für eine bessere Leistung und niedrigere Latenzzeit zu maximieren. Beispielsweise kann der I/O-Vorrichtungstreiber 124 die Interrupts auf eine ausgewählte Anzahl leistungsstarker Kerne lastverteilen. In einigen Ausführungsformen können, wenn die Flussrate ohne eine Verringerung der Leistung durch einen einzelnen leistungsstarken Kern bewirkt werden kann, alle Interrupts an diesen Kern gesendet werden. Wenn die Interrupts auf eine Vielzahl von Kernen lastverteilt werden, so können eine einfache Round-Robin-Technik oder eine Methodik, die einen höheren Prozentsatz der Anfragen an einen oder mehrere leistungsstärkere Kerne richtet, für die Lastverteilung verwendet werden.In some embodiments, the optimizations may enable dynamic scalability, which may be particularly important, as they are based on maintaining high QoS with respect to service chaining and other guest systems 122 refers. In a particular embodiment, the I / O device driver 124 may collect telemetry data indicating the traffic flow. If the traffic flow rate on the platform 102 is low or moderate, the I / O device driver may send interrupts to cores closest to the I / O device (eg, NIC) to increase latency / bandwidth locality for better performance and lower latency maximize. For example, the I / O device driver 124 may load-distribute the interrupts to a selected number of high-performance cores. In some embodiments, if the flow rate can be effected without a reduction in performance by a single high-performance core, all interrupts can be sent to that core. When the interrupts are load-balanced across a large number of cores, a simple round-robin technique or methodology that directs a higher percentage of requests to one or more higher-performance cores can be used for load balancing.

Wenn die Flussrate hoch ist (z. B. über einem bestimmten Grenzwert liegt), dann können die Interrupts auf alle Kerne aufgeteilt werden, um den Durchsatz über die Plattform zu maximieren. In einigen Ausführungsformen kann die Anzahl der Kerne, denen der I/O-Vorrichtungstreiber 124 Interrupts sendet, proportional zur Verkehrsflussrate steigen, um eine hohe Leistung vorhandener Flüsse zu gewährleisten.If the flow rate is high (eg, above a certain threshold), then the interrupts can be split across all cores to maximize throughput across the platform. In some embodiments, the number of cores that the I / O device driver 124 sends interrupts may increase in proportion to the traffic flow rate to ensure high performance of existing flows.

Auf diese Weise können Arbeitslasten, die Anwendungen, Diensten, Containern oder virtuellen Maschinen 132 zugeordnet sind, eher anhand von Netzlast- und Verkehrsmustern als nur CPU- und Speichernutzungskennzahlen auf Kerne verteilt werden.This allows workloads, the applications, services, containers or virtual machines 132 are assigned to cores based on network load and traffic patterns rather than just CPU and memory usage metrics.

In einigen Ausführungsformen können Optimierungen (wie beispielsweise die Auswahl von Kernen) ferner auf einem oder mehreren durch den I/O-Vorrichtungstreiber 124 detektierten Paketmerkmalen basieren. Als ein Beispiel können kleine Pakete der Größenordnung von 64 Bytes Keepalives von Telefonanwendungen auf Handvorrichtungen in einem mobilen LTE-Netz sein und eine schnelle Antwort benötigen und würden somit an einen Kern mit niedriger Latenzzeit (z. B. einen Kern nahe der I/O-Vorrichtung) gesendet werden. Als ein weiteres Beispiel können latenzempfindliche Übertragungssteuerungsprotokoll-(Transmission Control Protocol-, TCP-) Pakete auch an einen Kern mit niedriger Latenzzeit gesendet werden.Further, in some embodiments, optimizations (such as the selection of cores) may be based on one or more packet features detected by the I / O device driver 124. As an example, small packets of the order of 64 bytes may be keep-alive of phone applications on handheld devices in a LTE mobile network and require a fast response, and would thus be connected to a low-latency core (eg, a core near the I / O). Device) are sent. As another example, latency sensitive transmission control protocol (TCP) packets may also be sent to a low latency core.

In verschiedenen Ausführungsformen kann die Platzierung einer Arbeitslast ferner auf der Kompatibilität mit Komponenten der Plattformlogik 110 basieren. Beispielsweise können Anforderungen der Arbeitslast gegen eine SKU, einen Cache-Typ, einen unterstützten Bus, eine QPI-Version oder ein anderes geeignetes Merkmal der CPU 112 geprüft werden, um zu bestimmen, ob die Arbeitslast durch einen Kern der CPU betrieben werden kann. Sollten jegliche CPUs 112 mit der Arbeitslast inkompatibel sein, so kann der beste verbleibende Kern in der Plattformlogik 110 für die Arbeitslast ausgewählt werden.In various embodiments, the placement of a workload may also be based on compatibility with platform logic components 110 based. For example, workload requirements may be against an SKU, a cache type, a supported bus, a QPI version, or any other suitable feature of the CPU 112 be checked to determine if the workload can be operated by a core of the CPU. Should any CPUs 112 Being incompatible with the workload may be the best remaining core in the platform logic 110 selected for the workload.

In verschiedenen Ausführungsformen kann die Datenzentrumsverwaltungsplattform 106 Telemetriedaten von mehreren Plattformen 102 empfangen und Optimierungen über selbige verwalten. Die Datenzentrumsverwaltungsplattform 106 kann mit den Hypervisoren 120 (z. B. in einer Außerband-Weise) oder anderen Betriebssystemen der verschiedenen Plattformen 102 kommunizieren, um durch die Datenzentrumsverwaltungsplattform geleitete Optimierungen zu implementieren. Auf diese Weise kann die Datenzentrumsverwaltungsplattform die Arbeitslastplatzierung und die Gesamtleistung des Datenzentrums steuern.In various embodiments, the data center management platform 106 Telemetry data from multiple platforms 102 receive and manage optimizations over the same. The data center management platform 106 can with the hypervisors 120 (eg in an out-of-band way) or other operating systems of the different platforms 102 communicate to implement optimizations directed by the data center management platform. In this way, the data center management platform can control workload placement and overall data center performance.

In einigen Ausführungsformen kann die Logik der Plattform 102 einen geschlossenen Regelkreis beinhalten, der die Leistung vor Durchführung einer Optimierung und nach Durchführung einer Optimierung vergleichen würde, um zu sehen, wie die Optimierung die Leistung beeinflusst hat. Der geschlossene Regelkreis kann operabel sein, um die Platzierung durch den Hypervisor so zu optimieren, dass Prozesse, die den I/O-Vorrichtungstreiber 124 nutzen, näher zum I/O-Vorrichtungstreiber 124 sind, und die Verbesserungen dynamisch auszuwerten. Die Logik, die den geschlossenen Regelkreis implementiert, kann sich in einer jeglichen geeigneten Einheit des Datenzentrums 100, wie beispielsweise einem Hypervisor 120 oder anderen Betriebssystem, dem I/O-Vorrichtungstreiber 124 oder einer Kombination derselben, befinden.In some embodiments, the logic of the platform 102 include a closed loop that would compare performance before performing optimization and after performing optimization to see how optimization has impacted performance. The closed loop may be operable to optimize placement by the hypervisor such that processes utilizing the I / O device driver 124 are closer to the I / O device driver 124 and to dynamically evaluate the improvements. The logic that implements the closed loop may reside in any appropriate unit of data center 100 such as a hypervisor 120 or other operating system, the I / O device driver 124 or a combination thereof.

Die Elemente der Plattformlogik 110 können in einer jeglichen geeigneten Weise miteinander gekoppelt sein. Beispielsweise kann ein Bus jegliche der Komponenten miteinander koppeln. Ein Bus kann ein jegliche bekannte Verbindung, wie beispielsweise einen Multi-Drop Bus, eine Mesh-Verbindung, eine Ring-Verbindung, eine Punkt-zu-Punkt-Verbindung, eine serielle Verbindung, einen parallelen Bus, einen kohärenten (z. B. Cachekohärenten) Bus, eine geschichtete Protokollarchitektur, einen differentiellen Bus oder einen Gunning-Transceiver-Logic- (GTL-) Bus, beinhalten.The elements of the platform logic 110 may be coupled together in any suitable manner. For example, a bus may couple any of the components together. A bus may be any known connection, such as a multi-drop bus, a mesh connection, a ring connection, a point-to-point connection, a serial connection, a parallel bus, a coherent (e.g. Cache coherent) bus, a layered protocol architecture, a differential bus, or a Gunning Transceiver Logic (GTL) bus.

Elemente des Datensystems 100 können in einer jeglichen geeigneten Weise, wie beispielsweise durch ein oder mehrere Netze 108, miteinander gekoppelt sein. Ein Netz 108 kann ein jegliches geeignetes Netz oder eine Kombination eines oder mehrerer Netze sein, die anhand eines oder mehrerer geeigneter Netzprotokolle operieren können. Ein Netz kann eine Reihe von Knoten, Punkten und verbundenen Kommunikationspfaden zum Empfangen und Übertragen von Informationspaketen, die sich durch ein Kommunikationssystem ausbreiten, darstellen. Beispielsweise kann ein Netz eine oder mehrere Firewalls, Router, Switches, Sicherheitsanwendungen, Antivirus-Server oder andere nützliche Netzvorrichtungen beinhalten. Ein Netz bietet kommunikative Schnittstellen zwischen Quellen und/oder Hosts und kann ein jegliches lokales Netz (Local Area Network, LAN), drahtloses lokales Netz (Wireless Local Area Network, WLAN), städtisches Netz (Metropolitan Area Network, MAN), Intranet, Extranet, Internet, Weitverkehrsnetz (Wide Area Network, WAN), virtuelles privates Netz (Virtual Private Network, VPN), Mobilfunknetz oder jegliche(s) andere geeignete Architektur oder System, welches die Kommunikation in einer Netzumgebung ermöglicht, umfassen. Ein Netz kann eine jegliche Anzahl von Hardware- oder Softwareelementen umfassen, die durch ein Kommunikationsmedium miteinander gekoppelt sind (und in Kommunikation stehen). In verschiedenen Ausführungsformen können die Gastsysteme 122 durch das Netz 108 mit Knoten kommunizieren, die sich außerhalb des Datenzentrums 100 befinden.Elements of the data system 100 may be in any suitable manner, such as by one or more networks 108 be coupled with each other. A net 108 may be any suitable network or combination of one or more networks that can operate on one or more appropriate network protocols. A network may represent a series of nodes, points, and connected communication paths for receiving and transmitting information packets propagating through a communication system. For example, a network may include one or more firewalls, routers, switches, security applications, antivirus servers, or other useful network devices. A network provides communicative interfaces between sources and / or hosts and may be any local area network (LAN), wireless local area network (WLAN), metropolitan area network (MAN), intranet, extranet , Internet, wide area network (WAN), virtual private network (VPN), cellular network, or any other suitable architecture or system that enables communication in a network environment. A network may include any number of hardware or software elements that are coupled (and in communication) through a communication medium. In various embodiments, the guest systems may 122 through the net 108 communicate with nodes that are outside the data center 100 are located.

2 zeigt ein Blockdiagramm einer Datenzentrumsverwaltungsplattform 106 nach einigen Ausführungsformen. Die Datenzentrumsverwaltungsplattform 106 beinhaltet neben jeglicher anderer geeigneter Hardware zumindest eine CPU 202, den Speicher 204 und die Kommunikationsschnittstelle 206, die jegliche geeignete Merkmale, wie vorstehend unter Bezugnahme auf die CPUs 112, den Speicher 114 und die Kommunikationsschnittstelle 118 beschrieben, beinhalten können, um die Operationen der Datenzentrumsverwaltungsplattform 106 zu ermöglichen. In verschiedenen Ausführungsformen kann sich die Datenzentrumsverwaltungsplattform 106 von den Plattformen 102 des Datenzentrums 100 unterscheiden (z. B. kann sie in einem anderen physischen Modul oder auf einer anderen Leiterplatte liegen). Die Datenzentrumsverwaltungsplattform 106 kann durch die Kommunikationsschnittstelle 206 mit jeder der Plattformen 102 und/oder der Datenanalysemaschine 104 in Kommunikation stehen und Telemetriedaten von den Plattformen 102 sammeln und die Plattformen leiten, um Optimierungen, wie hierin beschrieben, auszuführen. In einer Ausführungsform verwendet die Kommunikationsschnittstelle 206 eine Außerband-Lösung zur Kommunikation mit den Verwaltungsmaschinen 126 und eine Inband-Lösung, um direkt mit den auf den Plattformen 102 laufenden Hypervisoren 120 oder Betriebssystemen zu kommunizieren. 2 shows a block diagram of a data center management platform 106 according to some embodiments. The data center management platform 106 includes at least one CPU besides any other suitable hardware 202 , the memory 204 and the communication interface 206 having any suitable features as described above with reference to the CPUs 112 , the memory 114 and the communication interface 118 described, may include the operations of the data center management platform 106 to enable. In various embodiments, the data center management platform may 106 from the platforms 102 of the data center 100 different (for example, it may be in another physical module or on a different board). The data center management platform 106 can through the communication interface 206 with each of the platforms 102 and / or the data analysis engine 104 communicate and telemetry data from the platforms 102 and run the platforms to perform optimizations as described herein. In one embodiment, the communication interface uses 206 an out-of-band solution for communication with the management machines 126 and an in-band solution to connect directly to the platforms 102 running hypervisors 120 or operating systems.

Die Richtliniendatenbank 208 der Kunden-Dienstgütevereinbarung (Service Level Agreement, SLA) beinhaltet Logik zum Zuordnen einer auf einer oder mehreren Plattformen 102 laufenden Anwendung zu einer SLA, sodass die Datenzentrumsverwaltungsplattform 106 beurteilen kann, ob Leistungsziele in Bezug auf die Anwendung erfüllt werden. SLAs können auf jeglichen geeigneten Kennzahlen basieren, wie beispielsweise auf Kennzahlen, die virtuellen Maschinen oder VNF-Operationen (z. B. Bereitstellungslatenzzeit und -zuverlässigkeit einer virtuellen Maschine, Taktfehler einer virtuellen Maschine, „Dead on Arrival“ einer virtuellen Maschine usw.) oder virtuellen Netzoperationen (z. B. Paketverzögerungen, Verzögerungsschwankungen, Netzausfälle, Anschlussstatus, Richtlinienintegrität usw.) zugeordnet sind.The policy database 208 The Customer Service Level Agreement (SLA) includes logic for mapping one to one or more platforms 102 running application to an SLA, so the data center management platform 106 assess whether performance objectives related to the application are met. SLAs may be based on any suitable measures, such as metrics, virtual machines or VNF operations (e.g., a virtual machine provisioning latency and reliability, a virtual machine clock failure, a virtual machine dead on arrival, etc.) or virtual network operations (eg packet delays, delay fluctuations, power failures, Connection status, policy integrity, etc.).

Der Sicherheitsüberwachungs- und Richtlinienorchestrator 210 kann Logik zur Sicherheitsüberwachung und -verwaltung innerhalb des Datenzentrums 100 beinhalten. Beispielsweise kann der Sicherheitsüberwachungs- und Richtlinienorchestrator 210 eine Eindringungserkennung und -risikominderung, Dienstverweigerungsfeststellung und -risikominderung, Virenschutz und andere Sicherheitsfunktionen beinhalten. Der Sicherheitsüberwachungs- und Richtlinienorchestrator 210 kann eine globale Betrachtung des Datenzentrums 100 und der Bereitstellungen virtueller Maschinen 132 innerhalb des Datenzentrums von einem Sicherheitsstandpunkt aufrechterhalten und Verbindungen zwischen verschiedenen Netzsegmenten innerhalb des Datenzentrums 100 (z. B. die Kommunikation/Überbrückung über verschiedene VLANs) verwalten.The security monitoring and policy orchestrator 210 can provide security monitoring and management logic within the data center 100 include. For example, the security guard and policy orchestrator 210 include intrusion detection and mitigation, denial and risk mitigation, anti-virus and other security features. The security monitoring and policy orchestrator 210 can be a global view of the data center 100 and virtual machine deployments 132 maintained within the data center from a security standpoint and connections between different network segments within the data center 100 (eg communication / bridging across different VLANs).

Das Verkehrsüberwachungs- und -technikmodul 212 beinhaltet Logik zum Überwachen des Verkehrs auf den Plattformen 102 des Datenzentrums und zum Leiten von Optimierungen für diesen Verkehr. Das Modul 212 kann mit der Datenanalysemaschine 104, den Verwaltungsmaschinen 126 von verschiedenen Plattformen und/oder den Hypervisoren 120 oder anderen Betriebssystemen von verschiedenen Plattformen kommunizieren, um Telemetriedaten zu empfangen, geeignete Optimierungen zu bestimmen und die Durchführung der Optimierungen zu leiten. In einigen Ausführungsformen weist die Datenzentrumsverwaltungsplattform 106 den Hypervisor 120 oder das andere Betriebssystem an, Inband-Benchmarktests durchzuführen, um zusätzliche Telemetriedaten zu erfassen. In verschiedenen Ausführungsformen kann die Datenzentrumsverwaltungsplattform Logik zur Datenaggregation und analytische Algorithmen beinhalten und/oder die Funktionalität der Datenanalysemaschine 104 nutzen, um zu bestimmen, welche Optimierungen durchzuführen sind.The traffic monitoring and engineering module 212 includes logic for monitoring the traffic on the platforms 102 of the data center and to guide optimizations for that traffic. The module 212 can with the data analysis engine 104 , the administrative machines 126 from different platforms and / or the hypervisors 120 or other operating systems from different platforms to receive telemetry data, determine appropriate optimizations, and direct execution of the optimizations. In some embodiments, the data center management platform 106 the hypervisor 120 or the other operating system to perform in-band benchmark tests to capture additional telemetry data. In various embodiments, the data center management platform may include data aggregation logic and analytic algorithms, and / or the functionality of the data analysis engine 104 use to determine which optimizations to perform.

Als ein Beispiel einer Optimierung, die vorgenommen werden könnte, kann das Modul 212 eine bestimmte Plattform 102 und/oder bestimmte Elemente der Plattformlogik 110 für eine Arbeitslast oder die Instanziierung einer virtuellen Maschine 132, einer VNF 134 oder einer SFC 136 basierend auf der Leistungsoptimierung für dieses Element oder für das Datenzentrum als Ganzes auswählen. Als ein weiteres Beispiel kann das Modul 212 die Migration einer Arbeitslast oder virtuellen Maschine 132, VNF 134 oder SFC 136 von einer Plattform (z. B. 132a) zu einer anderen Plattform (z. B. 132b) leiten, um die Leistung für das bestimmte migrierte Element oder für das Datenzentrum als Ganzes zu verbessern. In einigen Ausführungsformen kann das Modul 212 den Hypervisoren 120 verschiedener Plattformen 102 Leitlinien für durch die Hypervisoren 120 vorgenommene Optimierungen (einschließlich Optimierungen, die durch den I/O-Vorrichtungstreiber 124 vorgenommen werden) bereitstellen. In einem Anwendungsfall kann das Modul 212 erkennen, dass eine SFC 136 leistungsschwach ist (z. B. eine vorbestimmte QoS nicht erfüllt), und versuchen, die Leistung der SFC 136 zu verbessern, indem es einen Hypervisor 120 dazu führt, eine der SFC 136 zugeordnete Arbeitslast von einem leistungsschwächeren Kern zu einem leistungsstärkeren Kern zu bewegen. In einem anderen Anwendungsfall kann das Modul 212 erkennen, dass Verbindungen zwischen zwei virtuellen Maschinen 132 leistungsschwach sind, und eine oder beide der virtuellen Maschinen 132 auf andere Kerne bewegen, um die Verbindungsleistung zu erhöhen.As an example of an optimization that could be made, the module may 212 a specific platform 102 and / or certain elements of the platform logic 110 for a workload or the instantiation of a virtual machine 132 , a VNF 134 or an SFC 136 select based on the performance optimization for this element or for the data center as a whole. As another example, the module 212 the migration of a workload or virtual machine 132 , VNF 134 or SFC 136 from a platform (e.g., 132a) to another platform (e.g., 132b) to improve performance for the particular migrated element or for the data center as a whole. In some embodiments, the module may 212 the hypervisors 120 different platforms 102 Guidelines for through the hypervisors 120 provide optimizations (including optimizations made by the I / O device driver 124). In one application, the module can 212 recognize that an SFC 136 poor performance (eg, a predetermined QoS is not met), and try the performance of the SFC 136 improve by having a hypervisor 120 This leads to one of the SFC 136 associated workload to move from a lower performing core to a more powerful core. In another application, the module 212 recognize that connections between two virtual machines 132 are weak and one or both of the virtual machines 132 move to other cores to increase the connection performance.

3 zeigt ein Blockdiagramm einer Datenanalysemaschine 104 nach einigen Ausführungsformen. Die Datenanalysemaschine 104 beinhaltet neben jeglicher anderer geeigneter Hardware zumindest eine CPU 302, den Speicher 304 und die Kommunikationsschnittstelle 306, die jegliche geeignete Merkmale, wie vorstehend unter Bezugnahme auf die CPUs 112, den Speicher 114 und die Kommunikationsschnittstelle 118 beschrieben, beinhalten können, um die Vorgänge der Datenanalysemaschine 104 zu ermöglichen. In verschiedenen Ausführungsformen kann sich die Datenanalysemaschine 104 von den Plattformen 102 des Datenzentrums 100 und/oder der Datenzentrumsverwaltungsplattform unterscheiden (z. B. kann sie in einem anderen physischen Modul oder auf einer anderen Leiterplatte liegen). Die Datenanalysemaschine 104 kann durch die Kommunikationsschnittstelle 306 mit jeder der Plattformen 102 und/oder der Datenzentrumsverwaltungsplattform 106 in Kommunikation stehen und Telemetriedaten von den Plattformen 102 und/oder der Datenzentrumsverwaltungsplattform 106 empfangen und die Telemetriedaten verarbeiten. In einer Ausführungsform verwendet die Kommunikationsschnittstelle 306 eine Außerband-Lösung zur Kommunikation mit den Verwaltungsmaschinen 126 und eine Inband-Lösung, um direkt mit den auf den Plattformen 102 laufenden Hypervisoren 120 oder Betriebssystemen zu kommunizieren. 3 shows a block diagram of a data analysis machine 104 according to some embodiments. The data analysis machine 104 includes at least one CPU besides any other suitable hardware 302 , the memory 304 and the communication interface 306 having any suitable features as described above with reference to the CPUs 112 , the memory 114 and the communication interface 118 described, may involve the operations of the data analysis machine 104 to enable. In various embodiments, the data analysis engine may be 104 from the platforms 102 of the data center 100 and / or the data center management platform (e.g., it may reside in a different physical module or on a different board). The data analysis machine 104 can through the communication interface 306 with each of the platforms 102 and / or the data center management platform 106 communicate and telemetry data from the platforms 102 and / or the data center management platform 106 receive and process the telemetry data. In one embodiment, the communication interface uses 306 an out-of-band solution for communication with the management machines 126 and an in-band solution to connect directly to the platforms 102 running hypervisors 120 or operating systems.

Das Datenanalysemodul 308 kann jegliche geeignete Logik beinhalten, um die gesammelten Telemetriedaten zu lagern, zu verarbeiten und/oder aus selbigen zu lernen, um künftige Optimierungsentscheidungen durch die Plattformen 102 oder die Datenzentrumsverwaltungsplattform 106 zu lenken. Das Datenanalysemodul 308 kann Telemetriedaten aggregieren, Telemetriedaten filtern, Telemetriedaten mitteln oder die Telemetriedaten anderweitig verarbeiten.The data analysis module 308 may include any suitable logic to store, process, and / or learn the collected telemetry data for future optimization decisions by the platforms 102 or the data center management platform 106 to steer. The data analysis module 308 can aggregate telemetry data, filter telemetry data, average telemetry data, or otherwise process the telemetry data.

4 zeigt ein Blockdiagramm einer zentralen Verarbeitungseinheit (CPU) 112, die mit verschiedenen anderen Komponenten der Plattform 102 gekoppelt ist, nach einigen Ausführungsformen. Wenngleich die CPU 112 eine bestimmte Konfiguration zeigt, können die Kerne und anderen Komponenten der CPU 112 in einer jeglichen geeigneten Weise angeordnet sein. Die CPU 112 kann einen jeglichen Prozessor oder eine jegliche Verarbeitungsvorrichtung umfassen, wie beispielsweise einen Mikroprozessor, einen eingebetteten Prozessor, einen digitalen Signalprozessor (Digital Signal Processor, DSP), einen Netzprozessor, einen Anwendungsprozessor, einen Koprozessor, ein Ein-Chip-System (System On a Chip, SOC) oder eine andere Vorrichtung zum Ausführen von Code. Die CPU 112 in der abgebildeten Ausführungsform beinhaltet vier Verarbeitungselemente (die Kerne 402 in der abgebildeten Ausführungsform), die asymmetrische Verarbeitungselemente oder symmetrische Verarbeitungselemente beinhalten können. Allerdings kann die CPU 112 eine jegliche Anzahl an Verarbeitungselementen, die symmetrisch oder asymmetrisch sein können, beinhalten. 4 shows a block diagram of a central processing unit (CPU) 112 , with various other components of the platform 102 coupled, according to some embodiments. Although the CPU 112 shows a particular configuration, the cores and other components of the CPU can 112 be arranged in any suitable manner. The CPU 112 may include any processor or processing device, such as a microprocessor, an embedded processor, a digital signal processor (DSP), a network processor, an application processor, a coprocessor, a system on a chip , SOC) or another device for executing code. The CPU 112 In the depicted embodiment, four processing elements (the cores 402 in the illustrated embodiment), which may include asymmetric processing elements or symmetric processing elements. However, the CPU can 112 any number of processing elements that may be symmetric or asymmetric.

In einer Ausführungsform bezieht sich ein Verarbeitungselement auf Hardware oder Logik zum Unterstützen eines Software-Threads. Beispiele für Hardware-Verarbeitungselemente beinhalten: eine Thread-Einheit, einen Thread-Slot, einen Thread, eine Verarbeitungseinheit, einen Kontext, eine Kontexteinheit, einen Logikprozessor, einen Hardware-Thread, einen Kern und/oder ein jegliches anderes Element, das in der Lage ist, einen Zustand für einen Prozessor, wie beispielsweise einen Ausführungszustand oder einen Architekturzustand, zu halten. Anders ausgedrückt, bezieht sich ein Verarbeitungselement in einer Ausführungsform auf jegliche Hardware, die in der Lage ist, einem Code, wie beispielsweise einem Software-Thread, einem Betriebssystem, einer Anwendung oder anderem Code, unabhängig zugeordnet zu werden. Ein physischer Prozessor (oder Prozessorsockel) bezieht sich üblicherweise auf eine integrierte Schaltung, die gegebenenfalls eine jegliche Anzahl an anderen Verarbeitungselementen, wie beispielsweise Kernen oder Hardware-Threads, beinhaltet.In one embodiment, a processing element refers to hardware or logic to support a software thread. Examples of hardware processing elements include: a thread unit, a thread slot, a thread, a processing unit, a context, a context unit, a logic processor, a hardware thread, a kernel, and / or any other element disclosed in the It is able to hold a state for a processor, such as an execution state or an architectural state. In other words, in one embodiment, a processing element refers to any hardware that is capable of being independently assigned to a code, such as a software thread, an operating system, an application, or other code. A physical processor (or processor socket) typically refers to an integrated circuit that optionally includes any number of other processing elements, such as cores or hardware threads.

Ein Kern kann sich auf Logik beziehen, die auf einer integrierten Schaltung angeordnet und in der Lage ist, einen unabhängigen Architekturzustand aufrechtzuerhalten, wobei jeder unabhängig aufrechterhaltene Architekturzustand zumindest einigen dedizierten Ausführungsressourcen zugeordnet ist. Ein Hardware-Thread kann sich auf jegliche Logik beziehen, die auf einer integrierten Schaltung angeordnet und in der Lage ist, einen unabhängigen Architekturzustand aufrechtzuerhalten, wobei die unabhängig aufrechterhaltenen Architekturzustände den Zugang zu Ausführungsressourcen gemeinsam nutzen. Wie ersichtlich ist, überlappt die Grenze zwischen der Nomenklatur eines Hardware-Threads und eines Kerns, wenn bestimmte Ressourcen gemeinsam genutzt werden und andere einem Architekturzustand dediziert sind. Dennoch werden ein Kern und ein Hardware-Thread durch ein Betriebssystem häufig als einzelne Logikprozessoren angesehen, wobei das Betriebssystem in der Lage ist, Vorgänge auf jedem Logikprozessor einzeln einzuplanen.A core may refer to logic that resides on an integrated circuit and is capable of maintaining an independent architectural state, with each independently maintained architectural state associated with at least some dedicated execution resources. A hardware thread may refer to any logic that resides on an integrated circuit and is capable of maintaining an independent architectural state, with independently maintained architectural states sharing access to execution resources. As can be seen, the boundary between the nomenclature of a hardware thread and a kernel overlaps when certain resources are shared and others are dedicated to an architectural state. Nevertheless, an operating system often views a core and a hardware thread as a single logical processor, with the operating system being able to schedule operations on each logical processor individually.

Die physische CPU 112, wie in 4 dargestellt, beinhaltet vier Kerne - die Kerne 402A, 402B, 402C, und 402D - wenngleich eine CPU eine jegliche geeignete Anzahl an Kernen beinhalten kann. Hier können die Kerne 402 als symmetrische Kerne angesehen werden. In einer anderen Ausführungsform können die Kerne einen oder mehrere Out-of-Order-Prozessorkerne oder einen oder mehrere In-Order-Prozessorkerne beinhalten. Allerdings können die Kerne 402 einzeln aus einem jeglichen Kerntyp, wie beispielsweise einem nativen Kern, einem software-verwalteten Kern, einem Kern, der dazu angepasst ist, eine native Befehlssatzarchitektur (Instruction Set Architecture, ISA) auszuführen, einem Kern, der dazu angepasst ist, eine übersetzte ISA auszuführen, einem co-entwickelten Kern oder einem anderen bekannten Kern, ausgewählt sein. In einer heterogenen Kernumgebung (d. h. asymmetrische Kerne) kann eine Form von Übersetzung, wie beispielsweise binäre Übersetzung, verwendet werden, um Code auf einem oder beiden Kernen zu einzuplanen oder auszuführen.The physical CPU 112 , as in 4 shown, contains four cores - the cores 402A . 402B . 402C , and 402D Although a CPU may include any suitable number of cores. Here are the cores 402 be regarded as symmetric cores. In another embodiment, the cores may include one or more out-of-order processor cores or one or more in-order processor cores. However, the cores can 402 individually from any kernel type, such as a native kernel, a software managed kernel, a kernel adapted to execute a native instruction set architecture (ISA), a kernel adapted to execute a translated ISA , a co-developed nucleus or another known nucleus. In a heterogeneous core environment (ie, asymmetric cores), one form of translation, such as binary translation, can be used to schedule or execute code on one or both cores.

Ein Kern 402 kann ein mit einer Abrufeinheit gekoppeltes Decodiermodul beinhalten, um abgerufene Elemente zu decodieren. Abruflogik beinhaltet in einer Ausführungsform einzelne Sequenzer, die Thread-Slots der Kerne 402 zugeordnet sind. Üblicherweise ist ein Kern 402 einer ersten ISA zugeordnet, die auf dem Kern 402 ausführbare Befehle definiert/spezifiziert. Oft beinhalten Maschinencodebefehle, die Teil der ersten ISA sind, einen Teil des Befehls (als ein Opcode bezeichnet), der einen durchzuführenden Befehl oder Vorgang referenziert/spezifiziert. Die Decodierlogik kann eine Schaltungsanordnung beinhalten, die diese Befehle an ihren Opcodes erkennt und die decodierten Befehle in der Pipeline zur Verarbeitung weiterleitet, wie durch die erste ISA definiert. Beispielsweise können Decoder in einer Ausführungsform Logik beinhalten, die dazu gestaltet oder angepasst ist, bestimmte Befehle, wie beispielsweise Transaktionsbefehle, zu erkennen. Aufgrund der Erkennung durch die Decoder unternimmt die Architektur des Kerns 402 bestimmte vordefinierte Maßnahmen, um dem jeweiligen Befehl zugeordnete Aufgaben auszuführen. Es ist wichtig zu beachten, dass jegliche der hierin beschriebenen Aufgaben, Blöcke, Vorgänge und Verfahren in Reaktion auf einen einzelnen oder mehrere Befehle durchgeführt werden können, wovon einige neue oder alte Befehle sein können. Decoder der Kerne 402 erkennen in einer Ausführungsform dieselbe ISA (oder einen Subsatz davon). Alternativ kann in einer heterogenen Kernumgebung ein Decoder eines oder mehrerer Kerne (z. B. des Kerns 402B) eine zweite ISA (entweder einen Subsatz der ersten ISA oder eine eigene ISA) erkennen.A core 402 may include a decode module coupled to a fetch unit to decode fetched items. In one embodiment, fetch logic includes individual sequencers, the thread slots of the cores 402 assigned. Usually, it is a core 402 a first ISA assigned to the core 402 executable commands defined / specified. Often, machine code instructions that are part of the first ISA include a portion of the instruction (referred to as an opcode) that references / specifies a instruction or operation to be performed. The decode logic may include circuitry that recognizes these instructions at their opcodes and forwards the decoded instructions in the pipeline for processing as defined by the first ISA. For example, in one embodiment, decoders may include logic that is designed or adapted to recognize particular instructions, such as transaction instructions. Due to the recognition by the decoder undertakes the architecture of the core 402 certain predefined actions to perform tasks associated with each command. It is important to note that any of the tasks, blocks, acts and methods described herein may be performed in response to a single or multiple instructions, some of which may be new or old instructions. Decoder of the cores 402 recognize the same ISA (or a subset thereof) in one embodiment. Alternatively, in one heterogeneous core environment a decoder of one or more cores (eg the nucleus 402B ) recognize a second ISA (either a subset of the first ISA or its own ISA).

In verschiedenen Ausführungsformen können die Kerne 402 auch eine oder mehrere arithmetische Logikeinheiten (Arithmetic Logic Units, ALUs), Gleitkommaeinheiten (Floating Point Units, FPUs), Caches, Befehlspipelines, Interruptbehandlungshardware, Register oder andere geeignete Hardware beinhalten, um die Vorgänge der Kerne 402 zu ermöglichen.In various embodiments, the cores 402 Also include one or more arithmetic logic units (ALUs), floating point units (FPUs), caches, instruction pipelines, interrupt handling hardware, registers, or other suitable hardware for handling the cores 402 to enable.

Der Bus 408 kann eine jegliche geeignete, mit der CPU 112 gekoppelte Verbindung darstellen. In einem Beispiel kann der Bus 408 die CPU 112 mit einer anderen CPU der Plattformlogik 102 koppeln (z. B. über QPI). Die I/O-Blöcke 404 stellen Schnittstellenlogik zum Koppeln der I/O-Vorrichtungen 410 und 412 mit Kernen der CPU 112 dar. In verschiedenen Ausführungsformen kann ein I/O-Block 404 eine I/O-Steuerung beinhalten, die auf demselben Paket wie die Kerne 402 integriert ist, oder kann einfach Schnittstellenlogik zum Koppeln an eine chipexterne I/O-Steuerung beinhalten. Als ein Beispiel können die I/O-Blöcke 404 PCIe-Schnittstellenlogik beinhalten. Ebenso stellt die Speichersteuerung 406 Schnittstellenlogik zum Koppeln des Speichers 114 mit Kernen der CPU 112 dar. In verschiedenen Ausführungsformen ist die Speichersteuerung 406 auf demselben Paket wie die Kerne 402 integriert. In alternativen Ausführungsformen kann eine Speichersteuerung chipextern angeordnet sein.The bus 408 can be any suitable, with the cpu 112 represent coupled connection. In one example, the bus 408 the CPU 112 with another platform logic CPU 102 couple (eg via QPI). The I / O blocks 404 provide interface logic for coupling the I / O devices 410 and 412 to cores of the CPU 112 In various embodiments, an I / O block 404 may include I / O control that resides on the same package as the cores 402 integrated or may simply include interface logic for coupling to off-chip I / O control. As an example, the I / O blocks 404 may include PCIe interface logic. Likewise, the memory controller 406 Interface logic for coupling the memory 114 with cores of the CPU 112 In various embodiments, the memory controller 406 on the same package as the cores 402 integrated. In alternative embodiments, a memory controller may be located off-chip.

In der abgebildeten Ausführungsform sind die Kerne 402 über die I/O-Blöcke 404A und 404B, die Speichersteuerung 406 und den Bus 408 miteinander und mit anderen Komponenten der Plattform 102 gekoppelt. 4 zeigt Ungleichmäßigkeiten, die in verschiedenen Topologien vorhanden sein können und durch durchgeführte Benchmarktests (z. B. durch den Hypervisor 120 oder den I/O-Vorrichtungstreiber 124) entdeckt und berücksichtigt werden können, wenn Optimierungen innerhalb des Datenzentrums 100 vorgenommen werden.In the depicted embodiment, the cores are 402 via the I / O blocks 404A and 404B, the memory controller 406 and the bus 408 with each other and with other components of the platform 102 coupled. 4 shows nonuniformities that may exist in different topologies and through benchmark tests performed (eg by the hypervisor 120 or the I / O device driver 124) can be detected and taken into account when optimizing within the data center 100 be made.

Als verschiedene Beispiele kann in der abgebildeten Ausführungsform der Kern 402A eine relativ hohe Bandbreite und niedrigere Latenzzeit zu mit dem Bus 408 gekoppelten Vorrichtungen (z. B. anderen CPUs 112) und zu den NICs 410, jedoch eine relativ niedrige Bandbreite und höhere Latenzzeit zum Speicher 114 oder zum Kern 402D aufweisen. Der Kern 402B kann relativ hohe Bandbreiten und eine niedrige Latenzzeit sowohl zu den NICs 410 als auch zum PCIe-Festkörperlaufwerk (Solid State Drive, SSD) 412 und moderate Bandbreiten und Latenzzeiten zu mit dem Bus 408 gekoppelten Vorrichtungen und zum Kern 402D aufweisen. Der Kern 402C hätte relativ hohe Bandbreiten und niedrige Latenzzeiten zum Speicher 114 und zum Kern 402D. Der Kern 402D hätte schließlich eine relativ hohe Bandbreite und niedrige Latenzzeit zum Kern 402C, allerdings relativ niedrige Bandbreiten und hohe Latenzzeiten zu den NICs 410, zum Kern 402A und zu mit dem Bus 408 gekoppelten Vorrichtungen.As various examples, in the illustrated embodiment, the core 402A a relatively high bandwidth and lower latency to the bus 408 coupled devices (eg other CPUs 112 ) and the NICs 410 but a relatively low bandwidth and higher latency to memory 114 or to the core 402D exhibit. The core 402B can have relatively high bandwidths and low latency to both the NICs 410 as well as the PCIe solid state drive (SSD) 412 and moderate bandwidths and latencies to the bus 408 coupled devices and to the core 402D exhibit. The core 402C would have relatively high bandwidths and low latency to memory 114 and to the core 402D , The core 402D Finally, it would have a relatively high bandwidth and low latency to the core 402C , but relatively low bandwidths and high latency to the NICs 410 , to the core 402A and to the bus 408 coupled devices.

Optimierungen, die innerhalb der Plattform 102 vorgenommen werden, können auf der innerhalb der CPUs der Plattform vorhandenen Ungleichmäßigkeit basieren. Wenn beispielsweise eine virtuelle Maschine 132 häufig mit einer anderen virtuellen Maschine 132 kommunizieren wird (z. B. könnte die erste virtuelle Maschine ein Block in einer SFC sein und die zweite virtuelle Maschine könnte der nächste Block sein), dann könnte die erste virtuelle Maschine auf dem Kern 402C angeordnet werden, und die zweite virtuelle Maschine könnte auf dem Kern 402D angeordnet werden (durch Kern-Thread-Konflikte kann es unerwünscht sein, beide virtuelle Maschinen auf demselben Kern anzuordnen). Ein weiteres Beispiel kann das Liefern von NIC-Interrupts (durch einen I/O-Vorrichtungstreiber 124) an den Kern 402A oder 402B für eine hohe Bandbreite und niedrige Latenzzeit beinhalten. Noch weitere Beispiele können das Anordnen einer häufig auf den Speicher 114 zugreifenden virtuellen Maschine auf dem Kern 402C oder eines häufig auf die SSD 412 zugreifenden Prozesses auf dem Kern 402B beinhalten.Optimizations within the platform 102 can be based on the unevenness present within the CPUs of the platform. For example, if a virtual machine 132 often with another virtual machine 132 (for example, if the first virtual machine could be a block in an SFC and the second virtual machine could be the next block), then the first virtual machine might be on the core 402C can be arranged, and the second virtual machine could be on the core 402D kernel thread conflicts may make it undesirable to place both virtual machines on the same core). Another example may be to provide NIC interrupts (through an I / O device driver 124) to the core 402A or 402B for high bandwidth and low latency. Yet other examples may include placing one frequently on the memory 114 accessing virtual machine on the core 402C or one common to the SSD 412 accessing process on the core 402B include.

5 zeigt ein Verfahren zum Zuweisen von Plattformressourcen basierend auf Telemetriedaten nach einigen Ausführungsformen. In Schritt 502 wird eine Plattform 102 eingeschaltet. In Schritt 504 werden auf Benchmarktests basierende Telemetriedaten gesammelt. Die Sammlung dieser Daten kann durch eine jegliche geeignete Einheit, wie beispielsweise die Datenzentrumsverwaltungsplattform 106, eine oder mehrere Verwaltungsmaschinen 126, den Hypervisor 120 oder ein anderes Betriebssystem oder einen oder mehrere I/O-Vorrichtungstreiber 124, initiiert und/oder gesammelt werden. Es können jegliche geeignete Telemetriedaten gesammelt werden. In einer besonderen Ausführungsform können die gesammelten Telemetriedaten eine Topologie zumindest eines Teils der Plattformlogik der Plattform 102 anzeigen. Beispielsweise können für jeden Kern der Plattformlogik die Topologiedaten eine Anzeige einer Bandbreite oder einer Latenzzeit vom Kern zu jedem der einen oder mehreren Speichermodule der Plattformlogik beinhalten. Als ein weiteres Beispiel können für jeden Kern der Plattformlogik die Telemetriedaten eine Anzeige einer Bandbreite oder einer Latenzzeit vom Kern zu jedem anderen Kern der Plattformlogik umfassen. Als ein weiteres Beispiel können für jeden Kern der Plattformlogik die Telemetriedaten eine Anzeige einer Bandbreite oder einer Latenzzeit vom Kern zu jeder der einen oder mehreren I/O-Vorrichtungen der Plattformlogik umfassen. In Schritt 506 können die Telemetriedaten von der Einheit, die sie gesammelt hat, an eine jegliche andere geeignete Einheit, wie beispielsweise die Datenzentrumsverwaltungsplattform 106, die Verwaltungsmaschine 126, den Hypervisor 120 oder das andere Betriebssystem, einen I/O-Vorrichtungstreiber 124 oder die Datenanalysemaschine 104, gemeldet werden. 5 FIG. 12 illustrates a method for allocating platform resources based on telemetry data, according to some embodiments. In step 502 becomes a platform 102 switched on. In step 504 Benchmark-based telemetry data is collected. The collection of this data may be done by any suitable entity, such as the data center management platform 106 , one or more administrative machines 126 , the hypervisor 120 or another operating system, or one or more I / O device drivers 124, are initiated and / or collected. Any suitable telemetry data can be collected. In a particular embodiment, the collected telemetry data may be a topology of at least part of the platform logic of the platform 102 Show. For example, for each core of the platform logic, the topology data may include an indication of bandwidth or latency from the core to each of the one or more memory modules of the platform logic. As another example, for each core of the platform logic, the telemetry data may include an indication of bandwidth or latency from the core to any other core of the platform logic. As another example, for each core of the platform logic, the telemetry data may be an indication of bandwidth or latency from the core to each of the one or more I / O devices. Include platform logic devices. In step 506 For example, the telemetry data may be transferred from the unit that collected it to any other suitable entity, such as the data center management platform 106 , the administrative machine 126 , the hypervisor 120 or the other operating system, an I / O device driver 124, or the data analysis engine 104 , be reported.

In Schritt 508 können zusätzliche Telemetriedaten gesammelt und anschließend in Schritt 510 gemeldet werden. Während dieser Schritte können jegliche geeignete Telemetriedaten, wie beispielsweise jegliche der vorstehend in Verbindung mit Schritt 504 oder in Verbindung mit den vorherigen Figuren beschriebenen Telemetriedaten, gesammelt und gemeldet werden. Erneut können die Telemetriedaten von der Einheit, die sie gesammelt hat, an eine jegliche andere geeignete Einheit, wie beispielsweise an die Datenzentrumsverwaltungsplattform 106, eine oder mehrere Verwaltungsmaschinen 126, den Hypervisor 120, einen oder mehrere I/O-Vorrichtungstreiber 124 oder die Datenanalysemaschine 104, gemeldet werden.In step 508 can gather additional telemetry data and then in step 510 be reported. During these steps, any suitable telemetry data, such as any of those described above in connection with step 504 or telemetry data described in connection with the previous figures. Once again, the telemetry data from the unit that collected them can be sent to any other suitable entity, such as the data center management platform 106 , one or more administrative machines 126 , the hypervisor 120 , one or more I / O device drivers 124 or the data analysis engine 104 , be reported.

Parallel zu Schritt 508 und/oder Schritt 510 können in Schritt 512 Verarbeitungsanfragen empfangen werden und in Schritt 514 Plattformressourcen basierend auf den Telemetriedaten zugewiesen werden. Eine Verarbeitungsanfrage kann eine jegliche geeignete Anfrage beinhalten, welche die Verwendung der Plattformlogik einschließt, wie beispielsweise eine Anfrage zur Bereitstellung eines Gastsystems, eine Anfrage zur Bereitstellung eines I/O-Vorrichtungstreibers 124, eine Anfrage zur Ausführung einer Arbeitslast (z. B. eines Prozesses oder Threads), die einem Gastsystem und/oder einer Anwendung zugeordnet ist, ein an ein Gastsystem adressiertes Netzpaket oder eine andere geeignete Verarbeitungsanfrage. Die Verarbeitungsanfrage kann an einer jeglichen geeigneten Einheit, wie beispielsweise am Hypervisor 120, am I/O-Vorrichtungstreiber 124 oder an der Datenzentrumsverwaltungsplattform 106, empfangen werden. Die empfangende Einheit kann allein oder in Kombination mit anderen Einheiten des Datenzentrums 100 basierend auf verfügbaren Telemetriedaten Plattformressourcen für die Anfrage zuweisen. Die Plattformressourcen können in einer Weise zugewiesen werden, welche die Leistung der Verarbeitungsanfrage, die Leistung der gesamten Plattform und/oder die Leistung des gesamten Datenzentrums optimiert. Die Schritte 508 - 514 können eine jegliche geeignete Anzahl an Malen durchgeführt werden, die es zulassen, dass Ressourcenzuweisungsentscheidungen basierend auf dem aktuellen Zustand der Plattform getroffen werden.Parallel to step 508 and / or step 510 can in step 512 Processing requests are received and in step 514 Platform resources based on the telemetry data. A processing request may include any suitable request involving the use of the platform logic, such as a request to provide a guest, a request to provide an I / O device driver 124, a request to perform a workload (e.g., a process or threads) associated with a guest system and / or application, a network packet addressed to a guest, or other suitable processing request. The processing request may be at any suitable entity, such as the hypervisor 120 , at the I / O device driver 124 or at the data center management platform 106 to be received. The receiving unit can be used alone or in combination with other units of the data center 100 Assign platform resources to the request based on available telemetry data. The platform resources may be allocated in a manner that optimizes the performance of the processing request, the performance of the entire platform, and / or the performance of the entire data center. The steps 508 - 514 For example, any appropriate number of times may be performed that allow resource allocation decisions to be made based on the current state of the platform.

Einige der in 5 dargestellten Schritte können gegebenenfalls wiederholt, kombiniert, modifiziert oder ausgelassen werden, und es können dem Ablaufdiagramm auch zusätzliche Schritte hinzugefügt werden. Zusätzlich können Schritte in einer jeglichen geeigneten Reihenfolge durchgeführt werden, ohne vom Schutzumfang bestimmter Ausführungsformen abzuweichen.Some of the in 5 If appropriate, the steps shown may be repeated, combined, modified or omitted, and additional steps may be added to the flowchart. In addition, steps may be performed in any suitable order without departing from the scope of certain embodiments.

„Logik“ (wie sie z. B. in Plattformlogik 110, Überwachungslogik 140, Ressourcenzuweisungslogik 142, Ressourcenzuweisungslogik 144 oder in anderen Verweisen auf Logik in dieser Anmeldung zu finden ist) kann sich auf Hardware, Firmware, Software und/oder jeweilige Kombinationen zum Ausführen einer oder mehrerer Funktionen beziehen. In verschiedenen Ausführungsformen kann Logik einen Mikroprozessor oder ein anderes Verarbeitungselement, der bzw. das zum Ausführen von Softwarebefehlen operabel ist, diskrete Logik, wie beispielsweise eine anwendungsspezifische integrierte Schaltung (Application Specific Integrated Circuit, ASIC), eine programmierte Logikvorrichtung, wie beispielsweise ein umfeldprogrammierbares Gate-Array (Field Programmable Gate Array, FPGA), eine Befehle enthaltende Speichervorrichtung, Kombinationen von Logikvorrichtungen (wie sie z. B. auf einer gedruckten Leiterplatte zu finden wären), oder andere geeignete Hardware und/oder Software beinhalten. Logik kann eine oder mehrere Gates oder andere Schaltungskomponenten beinhalten. In einigen Ausführungsformen kann Logik auch vollständig als Software ausgeführt sein."Logic" (as used in platform logic, for example 110 , Monitoring logic 140 , Resource allocation logic 142 , Resource allocation logic 144 or in other references to logic in this application) may refer to hardware, firmware, software, and / or respective combinations for performing one or more functions. In various embodiments, logic may include a microprocessor or other processing element operable to execute software instructions, discrete logic such as an application specific integrated circuit (ASIC), a programmed logic device such as an environment programmable gate Field programmable gate array (FPGA), memory device containing instructions, combinations of logic devices (such as would be found on a printed circuit board), or other suitable hardware and / or software. Logic may include one or more gates or other circuit components. In some embodiments, logic may also be implemented entirely as software.

Ein Design kann verschiedene Stufen durchlaufen, von der Erschaffung über die Simulation bis hin zur Herstellung. Daten, die ein Design darstellen, können das Design auf verschiedene Weisen darstellen. Zunächst kann, wie es bei Simulationen hilfreich ist, die Hardware anhand einer Hardwarebeschreibungssprache (Hardware Description Language, HDL) oder einer anderen funktionalen Beschreibungssprache dargestellt werden. Zusätzlich kann auf verschiedenen Stufen des Design-Prozesses ein Schaltungsebenenmodell mit Logik- und/oder Transistorgates erzeugt werden. Ferner erreichen die meisten Designs auf einer gewissen Stufe eine Ebene von Daten, welche die physische Platzierung verschiedener Vorrichtungen im Hardwaremodell darstellen. Im Fall der Verwendung herkömmlicher Halbleiterherstellungstechniken können die Daten, die das Hardwaremodell darstellen, die Daten sein, die das Vorhandensein oder Nichtvorhandensein verschiedener Eigenschaften auf verschiedenen Maskenschichten für Masken, die zur Herstellung der integrierten Schaltung verwendet werden, spezifizieren. In einigen Implementierungen können solche Daten in einem Datenbankdateiformat, wie beispielsweise Graphic Data System II (GDS II), Open Artwork System Interchange Standard (OASIS), oder einem ähnlichen Format gespeichert werden.A design can go through different stages, from creation to simulation and manufacturing. Data that represents a design can represent the design in several ways. First, as is helpful in simulations, the hardware can be represented by a hardware description language (HDL) or other functional description language. In addition, at various stages of the design process, a circuit level model with logic and / or transistor gates may be created. Further, at a certain level, most designs achieve a level of data representing the physical placement of various devices in the hardware model. In the case of using conventional semiconductor manufacturing techniques, the data representing the hardware model may be the data that specifies the presence or absence of various characteristics on different mask layers for masks used to fabricate the integrated circuit. In some implementations, such data may be stored in a database file format, such as Graphic Data System II (GDS II), Open Artwork System Interchange Standard (OASIS), or a similar format.

In einigen Implementierungen können softwarebasierte Hardwaremodelle und HDL und andere Objekte einer funktionalen Beschreibungssprache Registerübertragungssprachen- (Register Transfer Language-, RTL-) Dateien neben anderen Beispielen beinhalten. Solche Objekte können maschinell parsbar sein, sodass ein Design-Werkzeug das HDL-Objekt (oder -Modell) akzeptieren, das HDL-Objekt auf Attribute der beschriebenen Hardware parsen und ein physisches Schaltungs- und/oder On-Chip-Layout aus dem Objekt bestimmen kann. Die Ausgabe des Designwerkzeugs kann zur Herstellung der physischen Vorrichtung verwendet werden. Beispielsweise kann ein Design-Werkzeug Konfigurationen verschiedener Hardware- und/oder Firmwareelemente aus dem HDL-Objekt bestimmen, wie beispielsweise Busbreiten, Register (einschließlich Größen und Typen), Speicherblöcke, physische Linkpfade, Fabric-Topologien unter anderen Attributen, die implementiert würden, um das im HDL-Objekt modellierte System zu realisieren. Design-Werkzeuge können Werkzeuge zum Bestimmen der Topologie und Fabric-Konfigurationen von Ein-Chip-Systemen (SoC) und anderen Hardwarevorrichtungen beinhalten. In einigen Fällen kann das HDL-Objekt als Grundlage zum Entwickeln von Modellen und Design-Dateien verwendet werden, die durch Herstellungsausrüstung zur Fertigung der beschriebenen Hardware verwendbar sind. Tatsächlich kann ein HDL-Objekt selbst als eine Eingabe für Herstellungssoftware zur Herbeiführung der beschriebenen Hardware bereitgestellt werden. In some implementations, software-based hardware models and HDL and other functional descriptor language objects may include Register Transfer Language (RTL) files among other examples. Such objects may be mechanically parsable such that a design tool accepts the HDL object (or model), parses the HDL object for attributes of the described hardware, and determines a physical circuit and / or on-chip layout from the object can. The output of the design tool can be used to fabricate the physical device. For example, a design tool may determine configurations of various hardware and / or firmware elements from the HDL object, such as bus widths, registers (including sizes and types), memory blocks, physical link paths, fabric topologies among other attributes that would be implemented to realize the system modeled in the HDL object. Design tools may include tools for determining the topology and fabric configurations of single-chip systems (SoC) and other hardware devices. In some cases, the HDL object may be used as a basis for developing models and design files that may be used by manufacturing equipment to fabricate the described hardware. In fact, an HDL object itself may be provided as an input to manufacturing software to provide the described hardware.

Bei jeglicher Design-Darstellung können die Daten in einer jeglichen Form eines maschinenlesbaren Mediums gespeichert werden. Ein Speicher oder ein magnetisches oder optisches Speichermedium, wie beispielsweise eine Platte, können das maschinenlesbare Medium zum Speichern von Informationen sein, die über eine optische oder elektrische Welle, die zum Übertragen solcher Informationen moduliert oder anderweitig erzeugt wurden, übertragen werden. Wird eine elektrische Trägerwelle, die den Code oder das Design anzeigt oder trägt, in dem Ausmaß übertragen, dass Kopieren, Puffern oder Neuübertragung des elektrischen Signals durchgeführt wird, so wird eine neue Kopie erstellt. So kann ein Kommunikationsprovider oder ein Netzprovider einen Artikel, wie beispielsweise in eine Trägerwelle codierte Informationen, der Techniken von Ausführungsformen der vorliegenden Offenbarung verkörpert, zumindest vorübergehend auf einem greifbaren, maschinenlesbaren Medium speichern.In any design representation, the data may be stored in any form of machine-readable medium. A memory or a magnetic or optical storage medium, such as a disk, may be the machine-readable medium for storing information transmitted over an optical or electrical wave that has been modulated or otherwise generated to transmit such information. When an electrical carrier wave indicating or carrying the code or design is transmitted to the extent that copying, buffering or retransmission of the electrical signal is performed, a new copy is made. Thus, a communications provider or a network provider may store an article, such as carrier-encoded information, which embodies techniques of embodiments of the present disclosure, at least temporarily on a tangible, machine-readable medium.

Ein Modul, wie es hier verwendet wird, bezieht sich auf eine jegliche Kombination von Hardware, Software und/oder Firmware. Als ein Beispiel beinhaltet ein Modul Hardware, wie beispielsweise eine Mikrosteuerung, die einem nicht transitorischen Medium zugeordnet ist, um Code, der dazu angepasst ist, durch die Mikrosteuerung ausgeführt zu werden, zu speichern. Somit bezieht sich die Bezugnahme auf ein Modul in einer Ausführungsform auf die Hardware, die spezifisch konfiguriert ist, um den auf einem nicht transitorischen Medium zu haltenden Code zu erkennen und/oder auszuführen. Ferner bezieht sich in einer anderen Ausführungsform die Verwendung eines Moduls auf das den Code beinhaltende nicht transitorische Medium, das spezifisch dazu angepasst ist, durch die Mikrosteuerung ausgeführt zu werden, um vorbestimmte Vorgänge auszuführen. Und wie sich ableiten lässt, kann sich in noch einer anderen Ausführungsform der Begriff „Modul“ (in diesem Beispiel) auf die Kombination der Mikrosteuerung und des nicht transitorischen Mediums beziehen. Modulgrenzen, die als separat dargestellt sind, variieren üblicherweise oft und überschneiden einander gegebenenfalls. Beispielsweise können ein erstes und ein zweites Modul Hardware, Software, Firmware oder eine Kombination derselben gemeinsam nutzen, während sie gegebenenfalls manche unabhängige Hardware, Software oder Firmware beibehalten. In einer Ausführungsform beinhaltet die Verwendung des Begriffs „Logik“ Hardware, wie beispielsweise Transistoren, Register oder andere Hardware, wie beispielsweise programmierbare Logikvorrichtungen.A module as used herein refers to any combination of hardware, software and / or firmware. As an example, a module includes hardware, such as a microcontroller associated with a non-transitory medium, for storing code adapted to be executed by the microcontroller. Thus, in one embodiment, the reference to a module refers to the hardware that is specifically configured to recognize and / or execute the code to be held on a non-transitory medium. Further, in another embodiment, the use of a module refers to the code-containing non-transitory medium that is specifically adapted to be executed by the microcontroller to perform predetermined operations. And as may be deduced, in yet another embodiment, the term "module" (in this example) may refer to the combination of the microcontroller and the non-transitory medium. Module boundaries, shown as separate, usually vary often and overlap each other, if necessary. For example, a first and a second module may share hardware, software, firmware, or a combination thereof, while retaining some independent hardware, software, or firmware as appropriate. In one embodiment, the use of the term "logic" includes hardware, such as transistors, registers, or other hardware, such as programmable logic devices.

Die Verwendung der Phrase ,zu(m)‘ oder ,konfiguriert, um,‘ in einer Ausführungsform bezieht sich auf das Anordnen, Zusammenstellen, Fertigen, Zum-Verkauf-Anbieten, Importieren und/oder Entwickeln eines Geräts, einer Hardware, einer Logik oder eines Elements zum Ausführen einer designierten oder bestimmten Aufgabe. In diesem Beispiel ist ein Gerät oder Element desselben, das nicht arbeitet, dennoch konfiguriert, um‘ eine designierte Aufgabe auszuführen, wenn es zum Ausführen der designierten Aufgabe entwickelt, gekoppelt und/oder verbunden ist. Als ein rein veranschaulichendes Beispiel kann ein Logikgate während des Betriebs eine 0 oder eine 1 bereitstellen. Ein Logikgate, das ,konfiguriert‘ ist, ,um‘ einem Taktgeber ein Freigabesignal bereitzustellen, beinhaltet dagegen nicht jedes potenzielle Logikgate, das eine 1 oder eine 0 bereitstellen kann. Stattdessen ist das Logikgate eines, das in einer bestimmten Weise gekoppelt ist, sodass während des Betriebs die 1- oder 0-Ausgabe den Taktgeber aktivieren soll. Es wird erneut darauf hingewiesen, dass der Begriff ,konfiguriert, um‘ keinen Betrieb erfordert, sondern sich stattdessen auf den latenten Zustand eines Geräts, einer Hardware und/oder eines Elements richtet, wobei das Gerät, die Hardware und/oder das Element im latenten Zustand dazu gestaltet sind, eine bestimmte Aufgabe auszuführen, wenn das Gerät, die Hardware und/oder das Element arbeiten.The use of the phrase 'to (m)' or 'configured to' in one embodiment refers to the arranging, assembling, finishing, offering to sell, import and / or develop a device, hardware, logic or an item to perform a designated or specific task. In this example, a device or element thereof that is not operating is still configured to perform a designated task when it is designed, coupled, and / or connected to perform the designated task. As a purely illustrative example, a logic gate may provide a 0 or a 1 during operation. On the other hand, a logic gate that is 'configured' to provide an enable signal to a clock does not include every potential logic gate that can provide a 1 or a 0. Instead, the logic gate is one that is coupled in a certain way so that during operation the 1 or 0 output is to activate the clock. It should again be noted that the term 'configured to' does not require operation but instead refers to the latent state of a device, hardware, and / or element, where the device, hardware, and / or element is in latent state Condition are designed to perform a specific task when the device, the hardware and / or the element work.

Ferner bezieht sich die Verwendung der Phrasen ,in der Lage, zu‘ und/oder ,operabel, zu‘ in einer Ausführungsform auf ein Gerät, eine Logik, eine Hardware und/oder ein Element, die derart gestaltet sind, dass sie die Verwendung des Geräts, der Logik, der Hardware und/oder des Elements in einer spezifizierten Weise erlauben. Dabei ist wie oben zu beachten, dass sich die Verwendung von ,zu(m)‘, ,in der Lage, zu‘ oder ,operabel, zu‘ in einer Ausführungsform auf den latenten Zustand eines Geräts, einer Logik, einer Hardware und/oder eines Elements bezieht, wobei das Gerät, die Logik, die Hardware und/oder das Element nicht arbeiten, sondern derart gestaltet sind, dass sie die Verwendung eines Geräts in einer spezifizierten Weise erlauben.Further, the use of the phrases capable of 'and / or' operable, to 'in one embodiment refers to a device, a logic, a Hardware and / or an item designed to allow use of the device, logic, hardware and / or element in a specified manner. It should be noted, as noted above, that the use of 'to (m)', 'capable,' or 'operable, to' in one embodiment refers to the latent state of a device, logic, hardware, and / or of an element, wherein the device, the logic, the hardware and / or the element do not work but are designed to allow the use of a device in a specified manner.

Ein Wert, wie hierin verwendet, beinhaltet eine jegliche bekannte Darstellung einer Zahl, eines Zustands, eines logischen Zustands oder eines binären logischen Zustands. Häufig wird die Verwendung von Logikebenen, Logikwerten oder logischen Werten auch als 1en und 0en bezeichnet, was einfach binäre Logikzustände darstellt. Beispielsweise bezieht sich eine 1 auf eine hohe Logikebene und 0 bezieht sich auf eine niedrige Logikebene. In einer Ausführungsform kann eine Speicherzelle, wie beispielsweise eine Transistor- oder eine Flash-Zelle, in der Lage sein, einen einzelnen logischen Wert oder mehrere logische Werte zu halten. A value as used herein includes any known representation of a number, state, logic state, or binary logic state. Often, the use of logic levels, logic values or logical values is also referred to as 1s and 0s, which is simply binary logic states. For example, a 1 refers to a high logic level and 0 refers to a low logic level. In one embodiment, a memory cell, such as a transistor or a flash cell, may be capable of holding a single logical value or multiple logical values.

Es wurden jedoch auch andere Darstellungen von Werten in Computersystemen verwendet. Beispielsweise kann die Dezimalzahl zehn auch als ein binärer Wert von 418A0 und ein Hexadezimalzeichen A dargestellt werden. Daher beinhaltet ein Wert eine jegliche Darstellung von Informationen, die in der Lage ist, in einem Computersystem gehalten zu werden.However, other representations of values have also been used in computer systems. For example, the decimal number ten may also be represented as a binary value of 418A0 and a hexadecimal A character. Therefore, a value includes any representation of information that is capable of being held in a computer system.

Darüber hinaus können Zustände durch Werte oder Teile von Werten dargestellt werden. Als ein Beispiel kann ein erster Wert, wie beispielsweise eine logische Eins, einen Default- oder Ausgangszustand darstellen, während ein zweiter Wert, wie beispielsweise eine logische Null, einen Nicht-Default-Zustand darstellen kann. Darüber hinaus beziehen sich die Begriffe ,Reset‘ (zurücksetzen) und ,Set‘ (setzen bzw. einstellen) in einer Ausführungsform auf einen Defaultwert oder -zustand bzw. auf einen aktualisierten Wert oder Zustand. Beispielsweise beinhaltet ein Default-Wert gegebenenfalls einen hohen logischen Wert, d. h. ,Reset‘, während ein aktualisierter Wert gegebenenfalls einen niedrigen logischen Wert beinhaltet, d. h. ,Set‘. Dabei ist zu beachten, dass eine jegliche Kombination von Werten verwendbar ist, um eine jegliche Anzahl an Zuständen darzustellen.In addition, states can be represented by values or parts of values. As an example, a first value, such as a logical one, may represent a default state, while a second value, such as a logical zero, may represent a non-default state. Moreover, in one embodiment, the terms 'reset' and 'set' refer to a default value or state, or an updated value or state. For example, a default value may include a high logical value, i. H. Reset, while an updated value may include a low logical value, i. H. ,Set'. It should be noted that any combination of values may be used to represent any number of states.

Die vorstehend dargelegten Ausführungsformen von Verfahren, Hardware, Software, Firmware oder Code können über Befehle oder Code implementiert werden, die auf einem maschinenzugänglichen, maschinenlesbaren, computerzugänglichen oder computerlesbaren Medium gespeichert und durch ein Verarbeitungselement ausführbar sind. Ein nicht transitorisches maschinenzugängliches/-lesbares Medium beinhaltet einen jeglichen Mechanismus, der Informationen in einer Form bereitstellt (d. h. speichert und/oder überträgt), die durch eine Maschine, wie beispielsweise einen Computer oder ein elektronisches System, lesbar ist. Beispielsweise beinhaltet ein nicht transitorisches maschinenzugängliches Medium Direktzugriffsspeicher (Random-Access Memory, RAM), wie beispielsweise statischen RAM (SRAM) oder dynamischen RAM (DRAM); Nur-Lese-Speicher (Read-Only Memory, ROM); ein magnetisches oder optisches Speichermedium; Flash-Speichervorrichtungen; elektrische Speichervorrichtungen; optische Speichervorrichtungen; akustische Speichervorrichtungen, eine andere Form von Speichervorrichtungen zum Halten von aus transitorischen (übermittelten) Signalen (z. B. Trägerwellen, Infrarotsignalen, digitalen Signalen) empfangenen Informationen usw., die von den nicht transitorischen Medien zu unterscheiden sind, die Informationen daraus empfangen können.The embodiments of methods, hardware, software, firmware or code set forth above may be implemented via instructions or code stored on a machine-accessible, machine-readable, computer-accessible or computer-readable medium and executable by a processing element. A non-transitory machine-accessible / readable medium includes any mechanism that provides information (i.e., stores and / or transmits) information in a form that is readable by a machine such as a computer or electronic system. For example, a non-transitory machine-accessible medium includes Random Access Memory (RAM) such as static RAM (SRAM) or dynamic RAM (DRAM); Read-only memory (ROM); a magnetic or optical storage medium; Flash memory devices; electrical storage devices; optical storage devices; acoustic storage devices, another form of storage device for holding information received from transitory (transmitted) signals (e.g., carrier waves, infrared signals, digital signals, etc.) different from non-transitory media capable of receiving information therefrom.

Befehle, die verwendet werden, um Logik zum Ausführen von Ausführungsformen der Offenbarung zu programmieren, können innerhalb eines Speichers im System, wie beispielsweise DRAM, Cache, Flash-Speicher oder eines anderen Speichers, gespeichert werden. Ferner können die Befehle über ein Netz oder mittels anderer computerlesbarer Medien verteilt werden. So kann ein maschinenlesbares Medium einen jeglichen Mechanismus zum Speichern oder Übertragen von Informationen in einer durch eine Maschine (z. B. einen Computer) lesbaren Form beinhalten, ist jedoch nicht beschränkt auf Disketten, optische Platten, Compactdisc-Nur-Lese-Speicher (Compact Disc Read-Only Memory, CD-ROMs) und magneto-optische Platten, Nur-Lese-Speicher (Read-Only Memory, ROMs), Direktzugriffsspeicher (Random Access Memory, RAM), löschbaren programmierbaren Nur-Lese-Speicher (Erasable Programmable Read-Only Memory, EPROM), elektrisch löschbaren programmierbaren Nur-Lese-Speicher (Electrically Erasable Programmable Read-Only Memory, EEPROM), magnetische oder optische Karten, Flash-Speicher, oder einen greifbaren maschinenlesbaren Speicher, der bei der Übertragung von Informationen über das Internet über elektrische, optische, akustische oder andere Formen von Ausbreitungssignalen (z. B. Trägerwellen, Infrarotsignale, digitale Signale usw.) verwendet wird. Dementsprechend beinhaltet das computerlesbare Medium einen jeglichen Typ eines greifbaren maschinenlesbaren Mediums, das dazu geeignet ist, elektronische Befehle oder Informationen in einer durch eine Maschine (z. B. einen Computer) lesbaren Form zu speichern oder zu übertragen.Instructions used to program logic to execute embodiments of the disclosure may be stored within memory in the system, such as DRAM, cache, flash memory, or other memory. Furthermore, the commands may be distributed over a network or by other computer-readable media. Thus, a machine readable medium may include any mechanism for storing or transmitting information in a form readable by a machine (e.g., a computer), but is not limited to floppy disks, optical disks, compact disc read only memories (Compact Disc read-only memory, CD-ROMs) and magneto-optical disks, read-only memory (ROMs), random access memory (RAM), erasable programmable read-only memory (Erasable Programmable Read -Only Memory, EPROM), Electrically Erasable Programmable Read-Only Memory (EEPROM), magnetic or optical cards, flash memory, or a tangible machine-readable memory used in the transmission of information over the Internet via electrical, optical, acoustic or other forms of propagation signals (eg carrier waves, infrared signals, digital signals, etc.). Accordingly, the computer-readable medium includes any type of tangible machine-readable medium capable of storing or transmitting electronic instructions or information in a form readable by a machine (e.g., a computer).

In einer Ausführungsform umfasst ein System eine Plattformlogik, die eine Vielzahl von Prozessorkernen umfasst, und Ressourcenzuweisungslogik. Die Ressourcenzuweisungslogik soll eine Verarbeitungsanfrage empfangen und die Verarbeitungsanfrage an einen Prozessorkern aus der Vielzahl von Prozessorkernen richten, wobei der Prozessorkern zumindest teilweise basierend auf der Plattformlogik zugeordneten Telemetriedaten ausgewählt wird, wobei die Telemetriedaten eine Topologie zumindest eines Teils der Plattformlogik anzeigen.In one embodiment, a system includes platform logic that includes a plurality of processor cores, and Resource allocation logic. The resource allocation logic is to receive a processing request and direct the processing request to a processor core of the plurality of processor cores, wherein the processor core is selected based at least in part on telemetry data associated with the platform logic, the telemetry data indicating a topology of at least a portion of the platform logic.

Das System kann ferner einen I/O-Vorrichtungstreiber umfassen, der zumindest einen Teil der Ressourcenzuweisungslogik umfasst, und das Leiten der Verarbeitungsanfrage an den Prozessorkern kann das Senden eines Interrupts durch den I/O-Vorrichtungstreiber an den Prozessorkern umfassen. Der I/O-Vorrichtungstreiber kann Benchmarktests auf der Plattformlogik ausführen, um die Telemetriedaten zu sammeln.The system may further include an I / O device driver that includes at least a portion of the resource allocation logic, and routing the processing request to the processor core may include sending an interrupt to the processor core through the I / O device driver. The I / O device driver may perform benchmark tests on the platform logic to collect the telemetry data.

Die Telemetriedaten, welche die Topologie zumindest eines Teils der Plattformlogik anzeigen, können eine Anzeige einer Bandbreite oder einer Latenzzeit vom Prozessorkern zu einem Speicher der Plattformlogik umfassen. Die Telemetriedaten, welche die Topologie zumindest eines Teils der Plattformlogik anzeigen, können eine Anzeige einer Bandbreite oder einer Latenzzeit vom Prozessorkern zu einem anderen Prozessorkern aus der Vielzahl von Prozessorkernen umfassen. Die Telemetriedaten, welche die Topologie zumindest eines Teils der Plattformlogik anzeigen, können eine Anzeige einer Bandbreite oder einer Latenzzeit vom Prozessorkern zu einer I/O-Vorrichtung der Plattformlogik umfassen. Die Telemetriedaten können ferner aktuelle, durch die Prozessorkerne verwendete Bandbreiten anzeigen.The telemetry data indicating the topology of at least part of the platform logic may include an indication of bandwidth or latency from the processor core to a memory of the platform logic. The telemetry data indicating the topology of at least a portion of the platform logic may include an indication of bandwidth or latency from the processor core to another processor core of the plurality of processor cores. The telemetry data indicating the topology of at least a portion of the platform logic may include an indication of bandwidth or latency from the processor core to an I / O device of the platform logic. The telemetry data may also indicate current bandwidths used by the processor cores.

Die Ressourcenzuweisungslogik kann den Prozessorkern basierend auf dem Prozessorkern mit einer höchsten erwarteten Leistung für die Verarbeitungsanfrage der Vielzahl von Prozessoren auswählen, wenn eine insgesamt genutzte Bandbreite der Vielzahl von Prozessoren einen bestimmten Grenzwert unterschreitet. Die Ressourcenzuweisungslogik kann den Prozessorkern basierend auf einer Optimierung der Gesamtbandbreite der Vielzahl von Prozessoren auswählen, wenn eine insgesamt genutzte Bandbreite der Vielzahl von Prozessoren einen bestimmten Grenzwert überschreitet.The resource allocation logic may select the processor core based on the processor core with a highest expected performance for the processing request of the plurality of processors when a total utilized bandwidth of the plurality of processors falls below a certain threshold. The resource allocation logic may select the processor core based on optimizing the overall bandwidth of the plurality of processors when a total utilized bandwidth of the plurality of processors exceeds a certain threshold.

Die Verarbeitungsanfrage kann eine Anfrage zum Instanziieren eines I/O-Vorrichtungstreibers umfassen. Die Verarbeitungsanfrage kann eine Anfrage zum Instanziieren einer virtuellen Maschine umfassen. Die Verarbeitungsanfrage kann einer auf der Plattformlogik laufenden Dienstfunktionskette oder einer virtuellen Netzfunktion zugeordnet sein.The processing request may include a request to instantiate an I / O device driver. The processing request may include a request to instantiate a virtual machine. The processing request may be associated with a service function chain running on the platform logic or a virtual network function.

Das System kann ferner eine Verwaltungsmaschine zum Sammeln zusätzlicher, der Plattformlogik zugeordneter Telemetriedaten in einer Außerband-Weise in Bezug auf die Vielzahl von Prozessorkernen umfassen. Die Verwaltungsmaschine kann die zusätzlichen Telemetriedaten an eine Datenzentrumsverwaltungsplattform senden, die Telemetriedaten von einer Vielzahl einzelner Plattformen empfängt, wobei jede Plattform zumindest einen Prozessorkern umfasst. Die Verwaltungsmaschine kann Benchmarktests auf der Plattformlogik ausführen, um die Telemetriedaten, welche die Topologie zumindest eines Teils der Plattformlogik anzeigen, zu sammeln.The system may further include a management engine for collecting additional telemetry data associated with the platform logic in an out-of-band manner with respect to the plurality of processor cores. The management engine may send the additional telemetry data to a data center management platform that receives telemetry data from a plurality of individual platforms, each platform including at least one processor core. The management engine may perform benchmark tests on the platform logic to collect the telemetry data indicating the topology of at least part of the platform logic.

Ein durch die Plattformlogik ausgeführter/-s Hypervisor oder Betriebssystem kann Benchmarktests auf der Plattformlogik ausführen, um die Telemetriedaten, welche die Topologie zumindest eines Teils der Plattformlogik anzeigen, zu sammeln . Das System kann ferner einen die Ressourcenzuweisungslogik umfassenden Hypervisor umfassen, wobei die Ressourcenzuweisungslogik des Hypervisors den Prozessorkern basierend ferner auf einer oder mehreren der Verarbeitungsanfrage zugeordneten Leistungsanforderungen auswählen soll.A hypervisor or operating system executed by the platform logic may perform benchmark tests on the platform logic to collect the telemetry data indicating the topology of at least part of the platform logic. The system may further comprise a hypervisor comprising the resource allocation logic, wherein the hypervisor's resource allocation logic is to select the processor core based on performance requirements associated with one or more of the processing request.

In einer Ausführungsformen kann ein Verfahren Folgendes umfassen: Empfangen einer Verarbeitungsanfrage an einem Eingangs-/Ausgangs-Vorrichtungstreiber; durch den Eingangs-/Ausgangs-Vorrichtungstreiber Auswählen eines Prozessorkerns aus einer Vielzahl von Prozessorkernen basierend zumindest teilweise auf den Prozessorkernen zugeordneten Telemetriedaten; und durch den Eingangs-/Ausgangs-Vorrichtungstreiber Senden eines der Verarbeitungsanfrage zugeordneten Interruptsignals an den ausgewählten Prozessorkern.In one embodiment, a method may include receiving a processing request at an input / output device driver; by the input / output device driver, selecting a processor core from a plurality of processor cores based at least partially on the processor cores associated telemetry data; and by the input / output device driver, sending an interrupt signal associated with the processing request to the selected processor core.

Die Telemetriedaten können eine Topologie zumindest eines Teils der Prozessorkerne anzeigen. Die Telemetriedaten können eine Bandbreite oder eine Latenzzeit vom Prozessorkern zu einem mit zumindest einigen der Prozessorkerne gekoppelten Speicher; eine Bandbreite oder eine Latenzzeit vom Prozessorkern zu einem anderen Prozessorkern aus der Vielzahl von Prozessorkernen; und/oder eine Bandbreite oder eine Latenzzeit vom Prozessorkern zu einer Eingabe-/Ausgabe-Vorrichtung anzeigen.The telemetry data may indicate a topology of at least a portion of the processor cores. The telemetry data may include bandwidth or latency from the processor core to memory coupled to at least some of the processor cores; a bandwidth or latency from the processor core to another processor core of the plurality of processor cores; and / or indicate a bandwidth or latency from the processor core to an input / output device.

Das Verfahren kann ferner das Durchführen von Benchmarktests auf den Prozessorkernen durch den Eingangs-/Ausgangs-Vorrichtungstreiber umfassen, um die Telemetriedaten zu sammeln. Das Verfahren kann ferner das Auswählen des Verarbeitungskerns basierend auf dem Prozessorkern mit einer höchsten erwarteten Leistung für die Verarbeitungsanfrage der Vielzahl von Prozessoren umfassen, wenn eine insgesamt genutzte Bandbreite der Vielzahl von Prozessoren einen bestimmten Grenzwert unterschreitet. Das Verfahren kann ferner das Auswählen des Prozessorkerns ferner basierend auf einer Optimierung der Gesamtbandbreite der Vielzahl von Prozessoren umfassen, wenn eine insgesamt genutzte Bandbreite der Vielzahl von Prozessoren einen bestimmten Grenzwert überschreitet.The method may further include performing benchmark tests on the processor cores by the input / output device driver to collect the telemetry data. The method may further include selecting the processing core based on the processor core having a highest expected performance for the processing request A plurality of processors include when a total utilized bandwidth of the plurality of processors falls below a certain threshold. The method may further comprise selecting the processor core based on optimizing the overall bandwidth of the plurality of processors when a total utilized bandwidth of the plurality of processors exceeds a certain threshold.

Die Verarbeitungsanfrage kann eine Anfrage zum Instanziieren eines I/O-Vorrichtungstreibers oder eine Anfrage zum Instanziieren einer virtuellen Maschine umfassen.The processing request may include a request to instantiate an I / O device driver or a request to instantiate a virtual machine.

Das Verfahren kann ferner das Sammeln zusätzlicher Telemetriedaten durch eine Verwaltungsmaschine in einer Außerband-Weise in Bezug auf die Vielzahl von Prozessorkernen umfassen.The method may further comprise collecting additional telemetry data by an administrative engine in an out-of-band manner with respect to the plurality of processor cores.

Ein System kann eine Vielzahl von Plattformen, wobei eine Plattform eine Vielzahl von Prozessorkernen umfasst; und eine durch ein Netz mit der Vielzahl von Plattformen gekoppelte Datenzentrumsverwaltungsplattform umfassen. Die Datenzentrumsverwaltungsplattform kann Telemetriedaten von der Vielzahl von Plattformen empfangen, wobei die Telemetriedaten den Prozessorkernen jeder der Plattformen zugeordnete Leistungskennzahlen anzeigen; eine Anzeige zumindest einer durch eine Plattform aus der Vielzahl von Plattformen auszuführenden Arbeitslast empfangen; eine Plattform aus der Vielzahl von Plattformen basierend auf den von den Plattformen empfangenen Telemetriedaten auswählen; und die Platzierung der Arbeitslast auf die ausgewählte Plattform leiten.A system may comprise a plurality of platforms, wherein one platform comprises a plurality of processor cores; and a data center management platform coupled through a network with the plurality of platforms. The data center management platform may receive telemetry data from the plurality of platforms, the telemetry data indicating performance cores associated with the processor cores of each of the platforms; receive an indication of at least one workload to be executed by a platform from the plurality of platforms; select a platform from the plurality of platforms based on the telemetry data received from the platforms; and direct the placement of the workload to the selected platform.

Die Arbeitslast kann eine Dienstfunktionskette oder eine virtuelle Netzfunktion umfassen, und das Leiten der Platzierung der Arbeitslast auf die ausgewählte Plattform kann das Migrieren der Dienstfunktionskette oder virtuellen Netzfunktion von einer ersten Plattform aus der Vielzahl von Plattformen zur ausgewählten Plattform beinhalten.The workload may include a service function chain or a virtual network function, and directing the workload placement to the selected platform may include migrating the service function chain or virtual network function from a first platform of the plurality of platforms to the selected platform.

Die Telemetriedaten können ferner eine Topologie von Prozessorkernen einer Plattform anzeigen. Die Datenzentrumsverwaltungsplattform kann zumindest einen Teil der Telemetriedaten von einer oder mehreren einer Verwaltungsmaschine einer Plattform, wobei die Verwaltungsmaschine die Telemetriedaten in einer Außerband-Weise in Bezug auf die Prozessorkerne der Plattform sammelt und sendet; eines auf der Plattform laufenden Hypervisors; und eines Eingangs-/Ausgangs-Vorrichtungstreibers der Plattform empfangen.The telemetry data may also indicate a topology of processor cores of a platform. The data center management platform may collect and transmit at least a portion of the telemetry data from one or more of a management engine of a platform, the management engine collecting and transmitting the telemetry data in an out-of-band manner with respect to the processor cores of the platform; a hypervisor running on the platform; and an input / output device driver of the platform.

In einer Ausführungsform kann zumindest ein maschinenlesbares Speichermedium darauf gespeicherte Befehle aufweisen. Die Befehle können, wenn sie durch eine Maschine ausgeführt werden, die Maschine dazu veranlassen, an einem Eingangs-/Ausgangs-Vorrichtungstreiber eine Verarbeitungsanfrage zu empfangen; durch den Eingangs-/Ausgangs-Vorrichtungstreiber einen Prozessorkern aus einer Vielzahl von Prozessorkernen basierend zumindest teilweise auf den Prozessorkernen zugeordneten Telemetriedaten auszuwählen; und durch den Eingangs-/Ausgangs-Vorrichtungstreiber ein der Verarbeitungsanfrage zugeordnetes Interruptsignal an den ausgewählten Prozessorkern zu senden.In one embodiment, at least one machine-readable storage medium may have instructions stored thereon. The instructions, when executed by a machine, may cause the machine to receive a processing request at an input / output device driver; selecting, by the input / output device driver, a processor core from a plurality of processor cores based at least in part on telemetry data associated with the processor cores; and send, by the input / output device driver, an interrupt signal associated with the processing request to the selected processor core.

Die Telemetriedaten können eine Anzeige einer Topologie zumindest eines Teils der Prozessorkerne umfassen. Die Telemetriedaten können eine Anzeige einer Bandbreite oder einer Latenzzeit vom Prozessorkern zu einem anderen Prozessorkern aus der Vielzahl von Prozessorkernen umfassen. Die Telemetriedaten können eine Anzeige einer Bandbreite oder einer Latenzzeit vom Prozessorkern zu einer I/O-Vorrichtung umfassen. Die Befehle können, wenn sie ausgeführt werden, ferner die Maschine dazu veranlassen, auf der Vielzahl von Prozessorkernen Benchmarktests auszuführen, um die Telemetriedaten zu sammeln.The telemetry data may include an indication of a topology of at least a portion of the processor cores. The telemetry data may include an indication of bandwidth or latency from the processor core to another processor core of the plurality of processor cores. The telemetry data may include an indication of bandwidth or latency from the processor core to an I / O device. The instructions, when executed, may further cause the machine to perform benchmark tests on the plurality of processor cores to collect the telemetry data.

In einer Ausführungsform umfasst ein System Plattformlogik, umfassend eine Vielzahl von Prozessorkernen; Mittel zum Empfangen einer Verarbeitungsanfrage und Mittel zum Leiten der Verarbeitungsanfrage an einen Prozessorkern aus der Vielzahl von Prozessorkernen, wobei der Prozessorkern zumindest teilweise basierend auf der Plattformlogik zugeordneten Telemetriedaten ausgewählt ist, wobei die Telemetriedaten eine Topologie zumindest eines Teils der Plattformlogik anzeigen.In one embodiment, a system includes platform logic comprising a plurality of processor cores; Means for receiving a processing request and means for directing the processing request to a processor core of the plurality of processor cores, wherein the processor core is selected based at least in part on telemetry data associated with the platform logic, the telemetry data indicating a topology of at least a portion of the platform logic.

Das Richten der Verarbeitungsanfrage an den Prozessorkern kann das Senden eines Interrupts an den Prozessorkern umfassen. Die Telemetriedaten können eine Anzeige einer Topologie zumindest eines Teils der Plattformlogik umfassen. Die Telemetriedaten können eine Anzeige einer Bandbreite oder einer Latenzzeit vom Prozessorkern zu einem anderen Prozessorkern aus der Vielzahl von Prozessorkernen umfassen. Die Telemetriedaten können eine Anzeige einer Bandbreite oder einer Latenzzeit vom Prozessorkern zu einer I/O-Vorrichtung umfassen. Das System kann ferner Mittel zum Ausführen von Benchmarktests auf der Plattformlogik zum Sammeln der Telemetriedaten umfassen.The directing the processing request to the processor core may include sending an interrupt to the processor core. The telemetry data may include an indication of a topology of at least a portion of the platform logic. The telemetry data may include an indication of bandwidth or latency from the processor core to another processor core of the plurality of processor cores. The telemetry data may include an indication of bandwidth or latency from the processor core to an I / O device. The system may further comprise means for performing benchmark tests on the platform logic for collecting the telemetry data.

Die Bezugnahme auf „1 Ausführungsform“ oder „eine Ausführungsform“ in dieser Beschreibung bedeutet, dass eine bestimmte in Verbindung mit der Ausführungsform beschriebene Eigenschaft, Struktur oder Charakteristik in zumindest einer Ausführungsform der vorliegenden Offenbarung enthalten ist. So bezieht sich das Auftreten der Phrasen „in 1 Ausführungsform“ oder „in einer Ausführungsform“ an verschiedenen Stellen in dieser Beschreibung nicht notwendigerweise immer auf dieselbe Ausführungsform. Ferner können die bestimmten Eigenschaften, Strukturen oder Charakteristika in jeglicher geeigneter Weise in einer oder mehreren Ausführungsformen kombiniert sein.The reference to "1 embodiment" or "an embodiment" in this specification means that a particular feature, structure, or characteristic described in connection with the embodiment is included in at least one embodiment of the present disclosure. Thus, the occurrence of the phrases "in 1 embodiment" or "in one embodiment" at various points in this description does not necessarily always refer to the same embodiment. Furthermore, the particular properties, structures, or characteristics may be combined in any suitable manner in one or more embodiments.

In der vorstehenden Beschreibung wurde eine ausführliche Beschreibung unter Bezugnahme auf spezifische beispielhafte Ausführungsformen gegeben. Es versteht sich jedoch, dass verschiedene Modifikationen und Änderungen daran vorgenommen werden können, ohne vom weiteren Sinn und Schutzumfang der Offenbarung, wie in den beigefügten Patentansprüchen dargelegt, abzuweichen. Die Beschreibung und Zeichnungen sind dementsprechend in einem veranschaulichenden und nicht in einem einschränkenden Sinn zu sehen. Ferner bezieht sich die vorstehende Verwendung von Ausführungsform und andere beispielhafte Sprache nicht notwendigerweise auf dieselbe Ausführungsform oder dasselbe Beispiel, sondern kann sich auf unterschiedliche und voneinander verschiedene Ausführungsformen ebenso wie möglicherweise auf dieselbe Ausführungsform beziehen. In the foregoing description, a detailed description has been given with reference to specific exemplary embodiments. It is understood, however, that various modifications and changes may be made thereto without departing from the broader spirit and scope of the disclosure as set forth in the appended claims. Accordingly, the description and drawings are to be considered in an illustrative rather than a limiting sense. Further, the above use of embodiment and other exemplary language does not necessarily refer to the same embodiment or the same example, but may refer to different and different embodiments as well as possibly to the same embodiment.

ZITATE ENTHALTEN IN DER BESCHREIBUNG QUOTES INCLUDE IN THE DESCRIPTION

Diese Liste der vom Anmelder aufgeführten Dokumente wurde automatisiert erzeugt und ist ausschließlich zur besseren Information des Lesers aufgenommen. Die Liste ist nicht Bestandteil der deutschen Patent- bzw. Gebrauchsmusteranmeldung. Das DPMA übernimmt keinerlei Haftung für etwaige Fehler oder Auslassungen.This list of the documents listed by the applicant has been generated automatically and is included solely for the better information of the reader. The list is not part of the German patent or utility model application. The DPMA assumes no liability for any errors or omissions.

Zitierte PatentliteraturCited patent literature

  • US 14866869 [0001]US 14866869 [0001]

Claims (31)

System, umfassend: Plattformlogik, die eine Vielzahl von Prozessorkernen umfasst; und Ressourcenzuweisungslogik zum: Empfangen einer Verarbeitungsanfrage und Leiten der Verarbeitungsanfrage an einen Prozessorkern aus der Vielzahl von Prozessorkernen, wobei der Prozessorkern zumindest teilweise basierend auf der Plattformlogik zugeordneten Telemetriedaten ausgewählt wird, wobei die Telemetriedaten eine Topologie zumindest eines Teils der Plattformlogik anzeigen.System comprising: Platform logic that includes a variety of processor cores; and Resource Assignment Logic for: Receive a processing request and Routing the processing request to a processor core of the plurality of processor cores, wherein the processor core is selected based at least in part on telemetry data associated with the platform logic, the telemetry data indicating a topology of at least a portion of the platform logic. System nach Anspruch 1, ferner umfassend einen I/O-Vorrichtungstreiber, der zumindest einen Teil der Ressourcenzuweisungslogik umfasst, und wobei das Leiten der Verarbeitungsanfrage an den Prozessorkern das Senden eines Interrupts durch den I/O-Vorrichtungstreiber an den Prozessorkern umfasst.System after Claim 1 and further comprising an I / O device driver that includes at least a portion of the resource allocation logic, and wherein routing the processing request to the processor core includes sending an interrupt to the processor core through the I / O device driver. System nach Anspruch 1, ferner umfassend einen I/O-Vorrichtungstreiber, der zumindest einen Teil der Ressourcenzuweisungslogik umfasst, wobei der I/O-Vorrichtungstreiber Benchmarktests auf der Plattformlogik ausführen soll, um die Telemetriedaten zu sammeln.System after Claim 1 , further comprising an I / O device driver including at least a portion of the resource allocation logic, wherein the I / O device driver is to perform benchmark tests on the platform logic to collect the telemetry data. System nach Anspruch 1, wobei die Telemetriedaten, welche die Topologie zumindest eines Teils der Plattformlogik anzeigen, eine Anzeige einer Bandbreite oder einer Latenzzeit vom Prozessorkern zu einem Speicher der Plattformlogik umfassen.System after Claim 1 wherein the telemetry data indicating the topology of at least a portion of the platform logic includes an indication of bandwidth or latency from the processor core to a memory of the platform logic. System nach Anspruch 1, wobei die Telemetriedaten, welche die Topologie zumindest eines Teils der Plattformlogik anzeigen, eine Anzeige einer Bandbreite oder einer Latenzzeit vom Prozessorkern zu einem anderen Prozessorkern aus der Vielzahl von Prozessorkernen umfassen.System after Claim 1 wherein the telemetry data indicating the topology of at least a portion of the platform logic includes an indication of bandwidth or latency from the processor core to another processor core of the plurality of processor cores. System nach Anspruch 1, wobei die Telemetriedaten, welche die Topologie zumindest eines Teils der Plattformlogik anzeigen, eine Anzeige einer Bandbreite oder einer Latenzzeit vom Prozessorkern zu einer I/O-Vorrichtung der Plattformlogik umfassen.System after Claim 1 wherein the telemetry data indicating the topology of at least a portion of the platform logic includes an indication of bandwidth or latency from the processor core to an I / O device of the platform logic. System nach Anspruch 1, wobei die Telemetriedaten ferner aktuelle, durch die Prozessorkerne verwendete Bandbreiten anzeigen.System after Claim 1 The telemetry data further indicates current bandwidths used by the processor cores. System nach Anspruch 7, wobei die Ressourcenzuweisungslogik den Prozessorkern basierend auf dem Prozessorkern mit einer höchsten erwarteten Leistung für die Verarbeitungsanfrage der Vielzahl von Prozessoren auswählen soll, wenn eine insgesamt genutzte Bandbreite der Vielzahl von Prozessoren einen bestimmten Grenzwert unterschreitet.System after Claim 7 wherein the resource allocation logic is to select the processor core based on the processor core with a highest expected performance for the processing request of the plurality of processors when a total utilized bandwidth of the plurality of processors falls below a certain threshold. System nach Anspruch 7, wobei die Ressourcenzuweisungslogik den Prozessorkern basierend auf einer Optimierung der Gesamtbandbreite der Vielzahl von Prozessoren auswählen soll, wenn eine insgesamt genutzte Bandbreite der Vielzahl von Prozessoren einen bestimmten Grenzwert überschreitet.System after Claim 7 wherein the resource allocation logic is to select the processor core based on optimizing the overall bandwidth of the plurality of processors when a total utilized bandwidth of the plurality of processors exceeds a certain threshold. System nach Anspruch 1, wobei die Verarbeitungsanfrage eine Anfrage zum Instanziieren eines I/O-Vorrichtungstreibers umfasst.System after Claim 1 wherein the processing request comprises a request to instantiate an I / O device driver. System nach Anspruch 1, wobei die Verarbeitungsanfrage eine Anfrage zum Instanziieren einer virtuellen Maschine umfasst.System after Claim 1 wherein the processing request comprises a request to instantiate a virtual machine. System nach Anspruch 1, wobei die Verarbeitungsanfrage einer Dienstfunktionskette oder einer virtuellen Netzfunktion, die auf der Plattformlogik läuft, zugeordnet ist.System after Claim 1 wherein the processing request is associated with a service function chain or a virtual network function running on the platform logic. System nach Anspruch 1, ferner umfassend eine Verwaltungsmaschine zum Sammeln zusätzlicher, der Plattformlogik zugeordneter Telemetriedaten in einer Außerband-Weise in Bezug auf die Vielzahl von Prozessorkernen.System after Claim 1 and further comprising a management engine for collecting additional telemetry data associated with the platform logic in an out-of-band manner with respect to the plurality of processor cores. System nach Anspruch 13, wobei die Verwaltungsmaschine ferner die zusätzlichen Telemetriedaten an eine Datenzentrumsverwaltungsplattform senden soll, die Telemetriedaten von einer Vielzahl einzelner Plattformen empfängt, wobei jede Plattform zumindest einen Prozessorkern umfasst.System after Claim 13 wherein the management engine is further to transmit the additional telemetry data to a data center management platform that receives telemetry data from a plurality of individual platforms, each platform including at least one processor core. System nach Anspruch 13, wobei die Verwaltungsmaschine ferner Benchmarktests auf der Plattformlogik ausführen soll, um die Telemetriedaten, welche die Topologie zumindest eines Teils der Plattformlogik anzeigen, zu sammeln.System after Claim 13 wherein the management engine is further to perform benchmark tests on the platform logic to collect the telemetry data indicating the topology of at least part of the platform logic. System nach Anspruch 1, wobei ein durch die Plattformlogik ausgeführter/-s Hypervisor oder Betriebssystem Benchmarktests auf der Plattformlogik ausführen soll, um die Telemetriedaten, welche die Topologie zumindest eines Teils der Plattformlogik anzeigen, zu sammeln.System after Claim 1 wherein a hypervisor or operating system executed by the platform logic is to perform benchmark tests on the platform logic to collect the telemetry data indicating the topology of at least part of the platform logic. System nach Anspruch 1, ferner umfassend einen die Ressourcenzuweisungslogik umfassenden Hypervisor, wobei die Ressourcenzuweisungslogik des Hypervisors den Prozessorkern basierend ferner auf einer oder mehreren, der Verarbeitungsanfrage zugeordneten Leistungsanforderungen auswählen soll.System after Claim 1 and further comprising a hypervisor comprising the resource allocation logic, wherein the hypervisor's resource allocation logic is to further select the processor core based on one or more performance requirements associated with the processing request. Verfahren, umfassend: Empfangen einer Verarbeitungsanfrage an einem Eingangs-/Ausgangs-Vorrichtungstreiber; durch den Eingangs-/Ausgangs-Vorrichtungstreiber Auswählen eines Prozessorkerns aus einer Vielzahl von Prozessorkernen basierend zumindest teilweise auf den Prozessorkernen zugeordneten Telemetriedaten, wobei die Telemetriedaten eine Topologie zumindest eines Teils der Prozessorkerne anzeigen; und durch den Eingangs-/Ausgangs-Vorrichtungstreiber Senden eines der Verarbeitungsanfrage zugeordneten Interruptsignals an den ausgewählten Prozessorkern.A method, comprising: receiving a processing request at an input / output device driver; by the input / output device driver, at least partially, selecting a processor core from a plurality of processor cores telemetry data associated with the processor cores, the telemetry data indicating a topology of at least a portion of the processor cores; and by the input / output device driver, sending an interrupt signal associated with the processing request to the selected processor core. System, umfassend: eine Vielzahl von Plattformen, wobei eine Plattform eine Vielzahl von Prozessorkernen umfasst; und eine mit der Vielzahl von Plattformen durch ein Netz gekoppelte Datenzentrumsverwaltungsplattform, wobei die Datenzentrumsverwaltungsplattform dazu dient: Telemetriedaten von der Vielzahl von Plattformen zu empfangen, wobei die Telemetriedaten den Prozessorkernen jeder der Plattformen zugeordnete Leistungskennzahlen anzeigen; eine Anzeige zumindest einer durch eine Plattform aus der Vielzahl von Plattformen auszuführenden Arbeitslast zu empfangen; eine Plattform aus der Vielzahl von Plattformen basierend auf den von den Plattformen empfangenen Telemetriedaten auszuwählen; und die Platzierung der Arbeitslast auf die ausgewählte Plattform zu leiten.System comprising: a plurality of platforms, wherein a platform comprises a plurality of processor cores; and a data center management platform coupled to the plurality of platforms through a network, the data center management platform serving to: Receive telemetry data from the plurality of platforms, the telemetry data indicating performance cores associated with the processor cores of each of the platforms; receive an indication of at least one workload to be executed by a platform from the plurality of platforms; select a platform from the plurality of platforms based on the telemetry data received from the platforms; and direct the placement of the workload to the selected platform. System nach Anspruch 19, wobei die Arbeitslast eine Dienstfunktionskette oder eine virtuelle Netzfunktion umfasst und das Leiten der Platzierung der Arbeitslast auf die ausgewählte Plattform das Migrieren der Dienstfunktionskette bzw. virtuellen Netzfunktion von einer ersten Plattform aus der Vielzahl von Plattformen zur ausgewählten Plattform beinhaltet.System after Claim 19 wherein the workload comprises a service function chain or virtual network function, and directing the workload placement to the selected platform includes migrating the service function chain or virtual network function from a first platform of the plurality of platforms to the selected platform. Zumindest ein maschinenlesbares Speichermedium mit darauf gespeicherten Befehlen, wobei die Befehle, wenn sie durch eine Maschine ausgeführt werden, die Maschine dazu veranlassen sollen: an einem Eingangs-/Ausgangs-Vorrichtungstreiber eine Verarbeitungsanfrage zu empfangen; durch den Eingangs-/Ausgangs-Vorrichtungstreiber einen Prozessorkern aus einer Vielzahl von Prozessorkernen basierend zumindest teilweise auf den Prozessorkernen zugeordneten Telemetriedaten auszuwählen und durch den Eingangs-/Ausgangs-Vorrichtungstreiber ein der Verarbeitungsanfrage zugeordnetes Interruptsignal an den ausgewählten Prozessorkern zu senden.At least one machine-readable storage medium with instructions stored thereon, the instructions, when executed by a machine, to cause the machine to: receiving, at an input / output device driver, a processing request; selecting, by the input / output device driver, a processor core from a plurality of processor cores based at least in part on telemetry data associated with the processor cores, and send, by the input / output device driver, an interrupt signal associated with the processing request to the selected processor core. Medium nach Anspruch 21, wobei die Telemetriedaten eine Anzeige einer Topologie zumindest eines Teils der Prozessorkerne umfassen.Medium after Claim 21 wherein the telemetry data comprises an indication of a topology of at least a portion of the processor cores. Medium nach Anspruch 21, wobei die Telemetriedaten eine Anzeige einer Bandbreite oder einer Latenzzeit vom Prozessorkern zu einem anderen Prozessorkern aus der Vielzahl von Prozessorkernen umfassen.Medium after Claim 21 wherein the telemetry data includes an indication of bandwidth or latency from the processor core to another processor core of the plurality of processor cores. Medium nach Anspruch 21, wobei die Telemetriedaten eine Anzeige einer Bandbreite oder einer Latenzzeit vom Prozessorkern zu einer I/O-Vorrichtung umfassen.Medium after Claim 21 wherein the telemetry data comprises an indication of bandwidth or latency from the processor core to an I / O device. Medium nach Anspruch 21, wobei die Befehle, wenn sie ausgeführt werden, ferner die Maschine dazu veranlassen sollen, auf der Vielzahl von Prozessorkernen Benchmarktests durchzuführen, um die Telemetriedaten zu sammeln.Medium after Claim 21 The instructions, when executed, are further intended to cause the machine to perform benchmark tests on the plurality of processor cores to collect the telemetry data. System, umfassend: Plattformlogik, die eine Vielzahl von Prozessorkernen umfasst; Mittel zum Empfangen einer Verarbeitungsanfrage und Mittel zum Leiten der Verarbeitungsanfrage an einen Prozessorkern aus der Vielzahl von Prozessorkernen, wobei der Prozessorkern zumindest teilweise basierend auf der Plattformlogik zugeordneten Telemetriedaten ausgewählt wird, wobei die Telemetriedaten eine Topologie zumindest eines Teils der Plattformlogik anzeigen.System comprising: Platform logic that includes a variety of processor cores; Means for receiving a processing request and Means for routing the processing request to a processor core of the plurality of processor cores, wherein the processor core is selected based at least in part on telemetry data associated with the platform logic, the telemetry data indicating a topology of at least a portion of the platform logic. System nach Anspruch 26, wobei das Leiten der Verarbeitungsanfrage an den Prozessorkern das Senden eines Interrupts an den Prozessorkern umfasst.System after Claim 26 wherein directing the processing request to the processor core includes sending an interrupt to the processor core. System nach Anspruch 26, wobei die Telemetriedaten eine Anzeige einer Topologie zumindest eines Teils der Plattformlogik umfassen.System after Claim 26 wherein the telemetry data comprises an indication of a topology of at least a portion of the platform logic. System nach Anspruch 26, wobei die Telemetriedaten eine Anzeige einer Bandbreite oder einer Latenzzeit vom Prozessorkern zu einem anderen Prozessorkern aus der Vielzahl von Prozessorkernen umfassen.System after Claim 26 wherein the telemetry data includes an indication of bandwidth or latency from the processor core to another processor core of the plurality of processor cores. System nach Anspruch 26, wobei die Telemetriedaten eine Anzeige einer Bandbreite oder einer Latenzzeit vom Prozessorkern zu einer I/O-Vorrichtung umfassen.System after Claim 26 wherein the telemetry data comprises an indication of bandwidth or latency from the processor core to an I / O device. System nach Anspruch 26, ferner umfassend Mittel zum Durchführen von Benchmarktests auf der Plattformlogik, um die Telemetriedaten zu sammeln.System after Claim 26 and further comprising means for performing benchmark tests on the platform logic to collect the telemetry data.
DE112016004347.3T 2015-09-26 2016-08-24 Real-time local and global data center network optimizations based on platform telemetry data Pending DE112016004347T5 (en)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US14/866,869 2015-09-26
US14/866,869 US10860374B2 (en) 2015-09-26 2015-09-26 Real-time local and global datacenter network optimizations based on platform telemetry data
PCT/US2016/048260 WO2017052910A1 (en) 2015-09-26 2016-08-24 Real-time local and global datacenter network optimizations based on platform telemetry data

Publications (1)

Publication Number Publication Date
DE112016004347T5 true DE112016004347T5 (en) 2018-06-21

Family

ID=58387334

Family Applications (1)

Application Number Title Priority Date Filing Date
DE112016004347.3T Pending DE112016004347T5 (en) 2015-09-26 2016-08-24 Real-time local and global data center network optimizations based on platform telemetry data

Country Status (4)

Country Link
US (1) US10860374B2 (en)
CN (1) CN107924341B (en)
DE (1) DE112016004347T5 (en)
WO (1) WO2017052910A1 (en)

Families Citing this family (23)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10860374B2 (en) 2015-09-26 2020-12-08 Intel Corporation Real-time local and global datacenter network optimizations based on platform telemetry data
US10057022B2 (en) 2015-09-28 2018-08-21 Yazaki Corporation Method for controlling access to an in-vehicle wireless network
JP6530562B2 (en) 2015-10-23 2019-06-12 矢崎総業株式会社 Limit distractions by in-vehicle portable devices
US9438478B1 (en) * 2015-11-13 2016-09-06 International Business Machines Corporation Using an SDN controller to automatically test cloud performance
US10110707B2 (en) 2015-12-11 2018-10-23 International Business Machines Corporation Chaining virtual network function services via remote memory sharing
US10599479B2 (en) 2016-09-21 2020-03-24 International Business Machines Corporation Resource sharing management of a field programmable device
US10572310B2 (en) 2016-09-21 2020-02-25 International Business Machines Corporation Deploying and utilizing a software library and corresponding field programmable device binary
US10355945B2 (en) * 2016-09-21 2019-07-16 International Business Machines Corporation Service level management of a workload defined environment
US10417012B2 (en) 2016-09-21 2019-09-17 International Business Machines Corporation Reprogramming a field programmable device on-demand
US10361915B2 (en) * 2016-09-30 2019-07-23 International Business Machines Corporation System, method and computer program product for network function optimization based on locality and function type
US11005968B2 (en) * 2017-02-17 2021-05-11 Intel Corporation Fabric support for quality of service
US10649943B2 (en) * 2017-05-26 2020-05-12 Dell Products, L.P. System and method for I/O aware processor configuration
US10715620B2 (en) * 2017-11-08 2020-07-14 Google Llc Streaming network monitoring caching infrastructure
KR102504660B1 (en) 2018-02-05 2023-03-02 삼성전자주식회사 Application processor, automotive electronic processor, and computing device including application processor
US11330042B2 (en) * 2018-05-17 2022-05-10 International Business Machines Corporation Optimizing dynamic resource allocations for storage-dependent workloads in disaggregated data centers
US10754783B2 (en) * 2018-06-29 2020-08-25 Intel Corporation Techniques to manage cache resource allocations for a processor cache
US11082305B2 (en) * 2018-06-29 2021-08-03 Assia Spe, Llc Systems and methods for chaining control-plane virtual functions for ensuring end-to-end quality of service (QoS) of internet services
US20200322287A1 (en) * 2020-06-18 2020-10-08 Intel Corporation Switch-managed resource allocation and software execution
US11818230B2 (en) * 2020-12-11 2023-11-14 Drivenets Ltd. Virtualization of multiple network functions in high-scale routing
US20210117307A1 (en) * 2020-12-26 2021-04-22 Chris M. MacNamara Automated verification of platform configuration for workload deployment
US20220414577A1 (en) * 2021-06-28 2022-12-29 Dell Products L.P. System and method for performance-centric workload placement in a hybrid cloud environment
US11736348B2 (en) 2021-06-28 2023-08-22 Dell Products L.P. System and method for network services based functionality provisioning in a VDI environment
CN115174393B (en) * 2022-06-27 2023-09-22 福州大学 Service function chain dynamic adjustment method based on in-band network telemetry

Family Cites Families (26)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7325122B2 (en) * 2004-02-20 2008-01-29 International Business Machines Corporation Facilitating inter-DSP data communications
US20070150895A1 (en) * 2005-12-06 2007-06-28 Kurland Aaron S Methods and apparatus for multi-core processing with dedicated thread management
US8490103B1 (en) * 2007-04-30 2013-07-16 Hewlett-Packard Development Company, L.P. Allocating computer processes to processor cores as a function of process utilizations
US7724149B2 (en) 2007-06-11 2010-05-25 Hewlett-Packard Development Company, L.P. Apparatus, and associated method, for selecting distribution of processing tasks at a multi-processor data center
US8417848B2 (en) * 2007-11-20 2013-04-09 Hangzhou H3C Technologies Co., Ltd. Method and apparatus for implementing multiple service processing functions
US8561073B2 (en) * 2008-09-19 2013-10-15 Microsoft Corporation Managing thread affinity on multi-core processors
US8095739B2 (en) * 2009-04-13 2012-01-10 International Business Machines Corporation Barriers processing in a multiprocessor system having a weakly ordered storage architecture without broadcast of a synchronizing operation
US9274851B2 (en) * 2009-11-25 2016-03-01 Brocade Communications Systems, Inc. Core-trunking across cores on physically separated processors allocated to a virtual machine based on configuration information including context information for virtual machines
US8321615B2 (en) * 2009-12-18 2012-11-27 Intel Corporation Source core interrupt steering
WO2011120000A2 (en) * 2010-03-26 2011-09-29 Citrix Systems, Inc. Systems and methods for link load balancing on a multi-core device
US20110265090A1 (en) * 2010-04-22 2011-10-27 Moyer William C Multiple core data processor with usage monitoring
US8443376B2 (en) * 2010-06-01 2013-05-14 Microsoft Corporation Hypervisor scheduler
GB2514947B (en) 2012-05-04 2015-06-17 Box Inc Repository redundancy implementation of a system which incrementally updates clients with events that occured via a cloud-enabled platform
US9396025B2 (en) 2012-09-26 2016-07-19 Oracle International Corporation Time-variant use models in constraint-based IT resource consolidation
US9143412B1 (en) 2012-10-16 2015-09-22 Google Inc. Proxy reporting for central management systems
US9946319B2 (en) * 2012-11-20 2018-04-17 Advanced Micro Devices, Inc. Setting power-state limits based on performance coupling and thermal coupling between entities in a computing device
US9405351B2 (en) * 2012-12-17 2016-08-02 Intel Corporation Performing frequency coordination in a multiprocessor system
US10142406B2 (en) 2013-03-11 2018-11-27 Amazon Technologies, Inc. Automated data center selection
US9268609B2 (en) * 2013-04-30 2016-02-23 Hewlett Packard Enterprise Development Lp Application thread to cache assignment
US9740404B2 (en) * 2013-05-31 2017-08-22 Hitachi, Ltd. Control apparatus and control method
US9298516B2 (en) * 2013-10-01 2016-03-29 Globalfoundries Inc. Verification of dynamic logical partitioning
US9632832B2 (en) * 2014-02-27 2017-04-25 Empire Technology Development Llc Thread and data assignment in multi-core processors based on cache miss data
CN103997122A (en) * 2014-05-04 2014-08-20 珠海博威智能电网有限公司 System of multi-core parallel intelligent controller
US9367370B2 (en) * 2014-08-25 2016-06-14 Empire Technology Development Llc NOC loopback routing tables to reduce I/O loading and off-chip delays
US9942631B2 (en) 2015-09-25 2018-04-10 Intel Corporation Out-of-band platform tuning and configuration
US10860374B2 (en) 2015-09-26 2020-12-08 Intel Corporation Real-time local and global datacenter network optimizations based on platform telemetry data

Also Published As

Publication number Publication date
WO2017052910A1 (en) 2017-03-30
US20170090987A1 (en) 2017-03-30
CN107924341B (en) 2022-04-15
CN107924341A (en) 2018-04-17
US10860374B2 (en) 2020-12-08

Similar Documents

Publication Publication Date Title
DE112016004347T5 (en) Real-time local and global data center network optimizations based on platform telemetry data
CN108694071B (en) Multi-cluster panel for distributed virtualized infrastructure element monitoring and policy control
US10225631B2 (en) Computing infrastructure optimizations based on tension levels between computing infrastructure nodes
DE102020132078A1 (en) RESOURCE ALLOCATION BASED ON APPLICABLE SERVICE LEVEL AGREEMENT
Lin et al. {PANIC}: A {High-Performance} programmable {NIC} for multi-tenant networks
Kim et al. {FreeFlow}: Software-based Virtual {RDMA} Networking for Containerized Clouds
US11296956B2 (en) Oversubscribable resource allocation
DE112011100392B4 (en) RESOURCE AFFINITY BY ADDING OR REMOVING QUEEN CARD PAIRS FOR NET ADAPTER WITH SOFTWARE FOR RECEIPT SCALE (RSS)
KR101593463B1 (en) Native cloud computing via network segmentation
DE102018006546A1 (en) PLATFORMS INTERFACIAL LAYER AND PROTOCOL FOR ACCELERATORS
DE112013000395B4 (en) DEVICE, METHOD AND COMPUTER READABLE STORAGE FOR POLICY ENFORCEMENT IN A COMPUTING ENVIRONMENT
US8589922B2 (en) Performance monitor design for counting events generated by thread groups
CN106489251A (en) The methods, devices and systems that applied topology relation finds
DE112016005910T5 (en) Architecture for Software-Defined Interconnect Switch
TWI722145B (en) Network function virtualization
DE102018202432A1 (en) Structure support for the quality of service
DE102021122231A1 (en) DYNAMIC NETWORK CONTROL PERFORMANCE MANAGEMENT
BRPI0924319B1 (en) METHOD AND DEVICE FOR PROGRAMMING DATA COMMUNICATION DOORS
DE102018129112A1 (en) System decoder for training accelerators
DE112016006065T5 (en) SPECULATIVE NUMBERING OF ADDRESS SPACES FOR BUS SETUP FUNCTIONS
DE102018004111A1 (en) Data center performance management
DE102014115947A1 (en) Execution-based platform selection
DE112019000965T5 (en) TECHNOLOGIES TO REDUCE NIC CONNECTIONS WITH ACCELERATED CIRCUIT
DE112018007780T5 (en) TRANSPARENT ENCRYPTION
DE102022126611A1 (en) SERVICE MESH OFFSET TO NETWORK DEVICES

Legal Events

Date Code Title Description
R012 Request for examination validly filed