DE102021122880A1 - Infrastrukturverarbeitungseinheit - Google Patents

Infrastrukturverarbeitungseinheit Download PDF

Info

Publication number
DE102021122880A1
DE102021122880A1 DE102021122880.8A DE102021122880A DE102021122880A1 DE 102021122880 A1 DE102021122880 A1 DE 102021122880A1 DE 102021122880 A DE102021122880 A DE 102021122880A DE 102021122880 A1 DE102021122880 A1 DE 102021122880A1
Authority
DE
Germany
Prior art keywords
ipu
data
service
memory
node
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
DE102021122880.8A
Other languages
English (en)
Inventor
Kshitij Doshi
Johan Van De Groenendaal
Debra Bernstein
Edmund Chen
Uri Cummings
Andrew Herdrich
Utkarsh Kakaiya
Ravi Sahita
Christine Severns-Williams
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 DE102021122880A1 publication Critical patent/DE102021122880A1/de
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/52Program synchronisation; Mutual exclusion, e.g. by means of semaphores
    • G06F9/522Barrier synchronisation
    • 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/5061Partitioning or combining of resources
    • G06F9/5072Grid computing
    • 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/5061Partitioning or combining of resources
    • G06F9/5077Logical partitioning of resources; Management or configuration of virtualized resources
    • 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/54Interprogram communication
    • G06F9/547Remote procedure calls [RPC]; Web services
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L43/00Arrangements for monitoring or testing data switching networks
    • H04L43/08Monitoring or testing based on specific metrics, e.g. QoS, energy consumption or environmental parameters
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/1001Protocols in which an application is distributed across nodes in the network for accessing one among a plurality of replicated servers
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/1001Protocols in which an application is distributed across nodes in the network for accessing one among a plurality of replicated servers
    • H04L67/1004Server selection for load balancing
    • H04L67/1014Server selection for load balancing based on the content of a request
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/14Session management
    • H04L67/148Migration or transfer of sessions
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/50Network services
    • H04L67/51Discovery or management thereof, e.g. service location protocol [SLP] or web services
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L69/00Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
    • H04L69/40Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass for recovering from a failure of a protocol instance or entity, e.g. service redundancy protocols, protocol state redundancy or protocol service redirection
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/133Protocols for remote procedure calls [RPC]
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • General Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Environmental & Geological Engineering (AREA)
  • Mathematical Physics (AREA)
  • Computer Security & Cryptography (AREA)
  • Multi Processors (AREA)
  • Debugging And Monitoring (AREA)

Abstract

Hierin beschriebene Beispiele betreffen eine Infrastrukturverarbeitungseinheit (IPU), die Folgendes umfasst: eine Schnittstellenschaltungsanordnung zum Bereitstellen einer kommunikativen Kopplung mit einer Plattform; eine Netzwerkschnittstellenschaltungsanordnung zum Bereitstellen einer kommunikativen Kopplung mit einem Netzwerkmedium; und eine Schaltungsanordnung zum Offenlegen von Infrastrukturdiensten, auf die durch Mikrodienste zugegriffen werden soll, zur Funktionskomposition.

Description

  • VERWANDTE ANMELDUNG
  • Die vorliegende Anmeldung beansprucht den Prioritätsvorteil der vorläufigen US-Anmeldung 63/087,218 , eingereicht am 3. Oktober 2020. Der Inhalt dieser Anmeldung wird hiermit in seiner Gesamtheit aufgenommen.
  • BESCHREIBUNG
  • Cloud-Computing befindet sich an einem Wendepunkt mit zwei sich gegenseitig verstärkenden Trends. Es gibt ein schnelles Aufkommen von maßstäblichen Cloud-Nativ-Diensten mit großen, lose gekoppelten, schnell zusammengesetzten und eingesetzten Mikrodiensten, die sich mit massiv verteilten Daten befassen, dies aber dadurch durchführen, dass die Berechnung lokal zu Daten gehalten wird. Es gibt Änderungen am traditionellen Softwarestapel, bei denen Abstraktionen durch eine Progression von horizontalen Schichten erfolgen, jetzt zu einem größeren Grad an Modularität, Heterogenität, Lokalität eng gekoppelter Aktionen und Daten- und Dienstvirtualisierung hinter dienstorientierten Anwendungsprogrammschnittstellen (APIs).
  • Figurenliste
    • 1 ist ein vereinfachtes Diagramm von mindestens einer Ausführungsform eines Datenzentrums zum Ausführen von Arbeitslasten mit disaggregierten Ressourcen.
    • 2 ist ein vereinfachtes Diagramm von mindestens einer Ausführungsform eines Pods, das in einem Datenzentrum enthalten sein kann.
    • 3 ist ein vereinfachtes Blockdiagramm von mindestens einer Ausführungsform einer Oberseite eines Knotens.
    • 4 ist ein vereinfachtes Blockdiagramm von mindestens einer Ausführungsform einer Unterseite eines Knotens.
    • 5 ist ein vereinfachtes Blockdiagramm von mindestens einer Ausführungsform eines Rechenknotens.
    • 6 ist ein vereinfachtes Blockdiagramm mindestens einer Ausführungsform eines Beschleunigerknotens, der in einem Datenzentrum verwendbar ist.
    • 7 ist ein vereinfachtes Blockdiagramm von mindestens einer Ausführungsform eines Speicherungsknotens, der in einem Datenzentrum verwendbar ist.
    • 8 ist ein vereinfachtes Blockdiagramm von mindestens einer Ausführungsform eines Speicherknotens, der in einem Datenzentrum verwendbar ist.
    • 9 stellt ein System zum Ausführen einer oder mehrerer Arbeitslasten dar.
    • 10 stellt ein beispielhaftes System dar.
    • 11 zeigt ein beispielhaftes System.
    • 12 zeigt verschiedene Client-Endpunkte.
    • 13 stellt ein beispielhaftes Edge-Rechensystem dar.
    • 14 veranschaulicht Einsatz und Orchestrierung für virtualisierte und containerbasierte Edge-Konfigurationen.
    • 15 veranschaulicht eine beispielhafte Softwareverteilungsplattform.
    • 16 zeigt verschiedene Ausführungsformen einer CPU und von Netzwerkschnittstellenkarten(NIC)-Systemen mit Speicherzugriff.
    • 17 zeigt verschiedene Ausführungsformen eines Systems.
    • 18 stellt ein Beispiel für die Verwendung einer IPU dar.
    • 19 stellt ein Beispiel für eine IPU dar.
    • 20 stellt ein Beispiel für einen Übersetzer dar.
    • 21 stellt ein Beispiel für Komponenten eines sicheren Ressourcenmanagers dar.
    • 22 stellt ein beispielhaftes Sicherheit-und Root-of-Trust-System dar.
    • 23A stellt ein Beispiel für ein Ressourcenkompositionssystem dar.
    • 23B stellt eine beispielhafte Weise dar, durch die eine IPI Ressourcen koordiniert.
    • 24 stellt ein Beispiel für Ressourcenzuweisung durch eine IPU unter Verwendung von Ressourcen an einer IPU und Ressourcen in anderen IPUs und Knoten dar.
    • 25 zeigt verschiedene Ausführungsformen eines Systems.
    • 26 stellt ein beispielhaftes System dar, das ein Neuausgleichen von Sicherheitssteuerpunkten von CPUs zu IPUs darstellt.
    • 27 stellt ein beispielhaftes System dar.
    • 28A stellt ein beispielhaftes System mit Ende-zu-Ende-Telemetrie dar.
    • 28B stellt eine beispielhafte Systemverwendung zur Arbeitslastausführung auf mehreren Systemen dar. UUID kann zur Identifizierung von Mikrodiensten verwendet werden.
    • 28C stellt ein Beispiel für die Verwendung von Telemetrie zum Verwalten einer Arbeitslastausführung dar.
    • 28D und 28E stellen ein Beispiel für die Verwendung einer IPU dar, die eine Arbeitslastausführung durch eine CPU anfordert.
    • 29 stellt ein beispielhaftes System dar, das unter Verwendung eines konfigurierbaren Switches verbunden ist.
    • 30 stellt ein Beispiel für eine Mikrodienstkommunikationsbeschleunigung dar.
    • 31A stellt einen beispielhaften Prozess zur Attestierung von Ressourcen dar.
    • 31B stellt ein Beispiel für die Verwendung eines sicheren Datenpfads durch attestierte Ressourcen dar.
    • 32A stellt eine beispielhafte Systemressourcenkomposition für eine IPU dar, die reservierte Berechnung von einer entfernten Partition online bringt, gemäß manchen Ausführungsformen.
    • 32B stellt ein Beispiel für IPU-Steuerebenen-Konfigurationsoperationen dar, die durchgeführt werden können.
    • 32C-1 und 32C-2 stellen ein Beispiel für eine Steuerebenenoperation unter Verwendung verschiedener Sicherheitsmerkmale dar.
    • 33A stellt ein Beispiel für eine IPU-Datenebene und einen Betrieb dar.
    • 33B stellt ein Beispiel für eine IPU-Datenebene und einen Betrieb mit Sicherheitsmerkmalen dar.
    • 33C-1 bis 33C-3 veranschaulichen Systemansichten von Sicherheitsmerkmalen aus 33B.
    • 34A und 34B stellen ein Anwendungsbeispiel eines IPU-Datenebene-RPC mit Dienst-Mesh dar.
    • 35A und 35B stellen ein Beispiel für eine Dienstdekomposition über lokale und entfernte Ressourcen dar.
    • 36A und 36B stellen ein beispielhaftes System und einen beispielhaften Betrieb einer IPU-Dienstdekomposition für Speicher- und Speicherungsszenarien dar.
    • 37 stellt eine beispielhafte Netzwerkschnittstelle dar.
    • 38 stellt ein beispielhaftes System dar.
  • AUSFÜHRLICHE BESCHREIBUNG
  • Dienstabstraktion wie etwa Mikrodienste und Functions as a Service (FaaS) oder Serviceless (dienstlos) steuern lose gekoppelte, dynamisch orchestrierte Dienste an, die eine Partitionierung von Berechnung oder XPU und Standardisierung von Diensten erfordern, die Backend as a Service (BaaS) ermöglichen. Eine XPU oder xPU könnte sich auf eine Grafikverarbeitungseinheit (GPU), eine Allzweck-GPU (GPGPU), ein feldprogrammierbares Gate-Array (FPGA), eine beschleunigte Verarbeitungseinheit (APU), einen Beschleuniger oder einen anderen Prozessor beziehen. Diese können auch Funktionen wie etwa Dienstgütedurchsetzung, Tracing, Durchführungs- und Fehlerüberwachung, Protokollierung, Authentifizierung, Dienst-Mesh, Datentransformation usw. beinhalten. Mit massiven Niveaus an Datenverarbeitung werden Daten möglicherweise nicht lokal für die Berechnung gespeichert und Verarbeitungsvoraussetzungen können eine einzelne XPU-Skala überschreiten. Diese treiben ein Wachstum in der Kommunikation zwischen Diensten an.
  • Gepoolte Ressourcen (z. B. lokal angehängt oder über ein Fabric oder ein Netzwerk verteilt) können zur Kostenersparnis aggregiert und zur Effizienz dynamisch an Kunden partitioniert werden. Gepoolte Ressourcen treiben den Bedarf an hoher Bandbreite, Konnektivität mit niedriger Latenz, Virtualisierung und Zusammensetzbarkeit von Ressourcen, Zero-Trust-Sicherheit, feingranularer Telemetrie und Dienstgüte und optimierter Bewegung und Verarbeitung von Daten an.
  • Ein wichtiger Trend ist die Annahme von Mikrodiensten über Cloud-, Unternehmens-, IOT- und Telekommunikationsanbietern (Telcos) hinweg. Mikrodienste und Dienste können mit den Datenzentrumarchitekturen oder Edge-Rechenarchitekturen implementiert werden. Mikrodienste können eine Dekomposition einer monolithischen Anwendung in kleine handhabbare definierte Dienste beinhalten. Ein Mikrodienst kann durch eines oder mehrere von Folgendem gekennzeichnet sein: Verwenden von feingranulierten Schnittstellen (für unabhängig einsetzbare Dienste), polyglotte Programmierung (z. B. Code, der in mehreren Sprachen geschrieben ist, um zusätzliche Funktionalität und Effizienz zu erfassen, die nicht in einer einzigen Sprache verfügbar sind), oder leichten Container- oder Virtuelle-Maschine-Einsatz und dezentralisierte kontinuierliche Mikrodienstlieferung. Mikrodienste haben viele Vorteile, die eine schnelle Übernahme antreiben. Die Vorteile von Mikrodiensten treiben auch neuen Komplexitäts- und Verarbeitungs-Overhead an, der verwaltet werden muss. Insgesamt überwiegen die Vorteile aus Sicht des Anwendungsentwicklers die damit verbundene Komplexität.
  • Bei manchen Beispielen kann eine Anwendung aus Mikrodiensten bestehen, wobei jeder Mikrodienst in seinem eigenen Prozess läuft und unter Verwendung von Protokollen (z. B. HTTP-Ressourcen-API, Nachrichtendienst, RPC (Remote Procedure Calls - entfernte Prozeduraufrufe), JavaScript Object Notation (JSON), Thrift oder gRPC) kommuniziert. Mittels zentraler Verwaltung dieser Dienste können Mikrodienste unabhängig eingesetzt werden. Das Verwaltungssystem kann in unterschiedlichen Programmiersprachen geschrieben sein und unterschiedliche Datenspeicherungstechnologien verwenden.
  • Mikrodienste bringen Kosten und Vorteile. Vorteile können leichtere Erstellung und Wartung von Anwendungen, Organisation um Geschäftsfähigkeiten, verbesserte Produktivität und Geschwindigkeit, Flexibilität beim Verwenden von Technologien und Skalierbarkeit und autonome, funktionsübergreifende Teams beinhalten.
  • Cloud-Dienstanbieter (CSPs) entwickeln ihre Hardwareplattformen, indem sie Zentralverarbeitungseinheiten (CPUs), Allzweck-Grafikverarbeitungseinheiten (GPGPUs), kundenspezifische XPUs und gepoolte Speicherung und Speicher (z. B. DDR, persistenter Speicher, 3D-XPoint, Optane oder Speichervorrichtungen, die Chalkogenidglas verwenden) anbieten. CSPs integrieren diese vertikal mit kundenspezifischen Orchestrierungssteuerebenen, um diese als Dienste für Kunden offenzulegen. Bei einigen Beispielen könnte die Cloud Datenzentrum-Cloud an verschiedenen Orten beinhalten, die von Vor-Ort-Unternehmens-, Telecom-Cloud-Datenzentren variieren können, oder könnte alternativ dazu auf Edge-Cloud verweisen. Bei manchen Beispielen könnten Cloud-Dienstanbieter allgemeiner Dienstanbieter beinhalten. Beliebige der Dienste und Mikrodienste können in Edge-Recheneinstellungen ausgeführt werden.
  • Verschiedene Ausführungsformen hierin beschriebener Infrastrukturverarbeitungseinheiten (IPUs: Infrastructure Processing Units) können von CSPs für Durchführungs-, Verwaltungs-, Sicherheits- und Koordinationsfunktionen zusätzlich zu Infrastruktur-Offload und -kommunikationen verwendet werden. Zum Beispiel können IPUs mit SmartNICs und Speicherung oder Speicher (z. B. auf demselben Die, System-on-Chip (SoC) oder verbundenen Dies) integriert sein, die sich an Vor-Ort-Systemen, Basisstationen, Gateways, Nachbarschaftszentralen und so weiter befinden.
  • Verschiedene Beispiele für eine IPU können eine Anwendung durchführen, die aus Mikrodiensten besteht, wobei jeder Mikrodienst in seinem eigenen Prozess läuft und unter Verwendung von Protokollen (z. B. eine HTTP-Ressourcen-API, Nachrichtendienst oder gRPC) kommuniziert. Mittels zentraler Verwaltung dieser Dienste können Mikrodienste unabhängig eingesetzt werden. Ein Verwaltungssystem kann in unterschiedlichen Programmiersprachen geschrieben sein und unterschiedliche Datenspeicherungstechnologien verwenden.
  • BEISPIELHAFTE UMGEBUNGEN ZUR VERWENDUNG VON INFRASTRUKTURVERARBEITUNGSEINHEITEN
  • 1 stellt ein Datenzentrum dar, in dem disaggregierte Ressourcen kooperativ eine oder mehrere Arbeitslasten (z. B. Anwendungen im Auftrag von Kunden) ausführen können, die mehrere Pods 110, 70, 130, 80 beinhalten, wobei ein Pod eine oder mehrere Reihen von Racks ist oder beinhaltet. Obwohl das Datenzentrum 100 mit mehreren Pods gezeigt ist, kann das Datenzentrum 100 bei manchen Ausführungsformen natürlich als ein einziges Pod umgesetzt sein. Wie hierin ausführlicher beschrieben, beherbergt jedes Rack mehrere Knoten, von denen manche mit einer oder mehreren Arten von Ressourcen ausgestattet sein können (z. B. Speichervorrichtungen, Datenspeicherungsvorrichtungen, Beschleunigervorrichtungen, Allzweckprozessoren). Ressourcen können logisch gekoppelt sein, um einen zusammengesetzten Knoten oder Verbundknoten zu bilden, der zum Beispiel als ein Server fungieren kann, um einen Auftrag, eine Arbeitslast oder Mikrodienste durchzuführen. Bei der veranschaulichenden Ausführungsform sind die Knoten in jedem Pod 110, 70, 130, 80 mit mehreren Pod-Switches (z. B. Switches, die Datenkommunikationen zu und von Knoten innerhalb des Pods routen) verbunden. Die Pod-Switches sind wiederum mit Spine-Switches 90 verbunden, die Kommunikationen zwischen Pods (z. B. den Pods 110, 70, 130, 80) in dem Datenzentrum 100 vermitteln. Bei manchen Ausführungsformen können die Knoten unter Verwendung von Intel® Omni-Path-Technologie mit einem Fabric verbunden sein. Bei anderen Ausführungsformen können die Knoten mit anderen Fabrics, wie etwa InfiniBand oder Ethernet, verbunden sein. Wie hierin ausführlicher beschrieben, können Ressourcen innerhalb von Knoten in dem Datenzentrum 100 einer Gruppe (hierin als „verwalteter Knoten“ bezeichnet) zugewiesen werden, die Ressourcen von einem oder mehreren Knoten enthält, die kollektiv bei der Ausführung einer Arbeitslast genutzt werden sollen. Die Arbeitslast kann so ausgeführt werden, als ob sich die zu dem verwalteten Knoten gehörenden Ressourcen auf demselben Knoten befinden würden. Die Ressourcen in einem verwalteten Knoten können zu Knoten gehören, die zu unterschiedlichen Racks gehören, und sogar zu unterschiedlichen Pods 110, 70, 130, 80 gehören. Von daher können manche Ressourcen eines einzelnen Knotens einem verwalteten Knoten zugewiesen werden, während andere Ressourcen desselben Knotens einem anderen verwalteten Knoten zugewiesen werden (wobei z. B. ein Prozessor einem verwalteten Knoten zugewiesen wird und ein anderer Prozessor desselben Knotens einem anderen verwalteten Knoten zugewiesen wird).
  • Ein Datenzentrum, das disaggregierte Ressourcen umfasst, wie etwa das Datenzentrum 100, kann in einer breiten Vielfalt von Kontexten verwendet werden, wie etwa Unternehmen, Regierung, Cloud-Dienstanbieter und Kommunikationsdienstanbieter (z. B. Telcos), sowie in unterschiedlichsten Größen, von Megadatenzentren eines Cloud-Dienstanbieters, die über 60.000 Quadratfuß verbrauchen, zu Einzel- oder Multi-Rack-Installationen zur Verwendung in Basisstationen.
  • Die Disaggregation von Ressourcen zu Knoten, die überwiegend aus einem einzigen Ressourcentyp bestehen (z. B. Rechenknoten, die primär Rechenressourcen umfassen, Speicherknoten, die primär Speicherressourcen enthalten), und die selektive Zuweisung und Aufhebung der Zuweisung der disaggregierten Ressourcen zum Bilden eines verwalteten Knotens, der zum Ausführen einer Arbeitslast zugewiesen ist, verbessert den Betrieb und die Ressourcennutzung des Datenzentrums 100 relativ zu typischen Datenzentren, die aus hyperkonvergierten Servern bestehen, die Rechen-, Speicher-, Speicherungs- und vielleicht zusätzliche Ressourcen in einem einzigen Gehäuse enthalten. Weil Knoten zum Beispiel überwiegend Ressourcen eines bestimmten Typs enthalten, können Ressourcen eines gegebenen Typs unabhängig von anderen Ressourcen aufgerüstet werden. Da unterschiedliche Ressourcentypen (Prozessoren, Speicherung, Beschleuniger usw.) typischerweise unterschiedliche Auffrischraten aufweisen, können zusätzlich eine größere Ressourcennutzung und reduzierte Gesamtkosten der Eigentümerschaft erreicht werden. Zum Beispiel kann ein Datenzentrumsbetreiber die Prozessoren in seiner gesamten Anlage aufrüsten, indem er nur die Rechenknoten austauscht. In einem solchen Fall werden Beschleuniger- und Speicherungsressourcen möglicherweise nicht gleichzeitig aufgerüstet und es kann stattdessen ermöglicht werden, mit dem Betrieb fortzufahren, bis diese Ressourcen für ihre eigene Auffrischung geplant sind. Die Ressourcenausnutzung kann auch zunehmen. Falls zum Beispiel verwaltete Knoten basierend auf Voraussetzungen der Arbeitslasten zusammengesetzt werden, die auf ihnen ausgeführt werden, werden Ressourcen innerhalb eines Knotens wahrscheinlicher vollständig genutzt. Eine solche Nutzung kann ermöglichen, dass mehr verwaltete Knoten in einem Datenzentrum mit einem gegebenen Satz von Ressourcen ausgeführt werden, oder dass ein Datenzentrum, von dem erwartet wird, dass es einen gegebenen Satz von Arbeitslasten ausführt, unter Verwendung von weniger Ressourcen erstellt wird.
  • 2 stellt ein Pod dar. Ein Pod kann einen Satz von Reihen 200, 210, 220, 230 von Racks 240 beinhalten. Jedes Rack 240 kann mehrere Knoten (z. B. sechzehn Knoten) unterbringen und Leistungs- und Datenverbindungen zu den untergebrachten Knoten bereitstellen, wie hierin ausführlicher beschrieben. Bei der veranschaulichenden Ausführungsform sind die Racks in jeder Reihe 200, 210, 220, 230 mit mehreren Pod-Switches 250, 260 verbunden. Der Pod-Switch 250 beinhaltet einen Satz von Ports 252, mit denen die Knoten der Racks des Pods 110 verbunden sind, und einen anderen Satz von Ports 254, die den Pod 110 mit den Spine-Switches 90 verbinden, um Konnektivität mit anderen Pods in dem Datenzentrum 100 bereitzustellen. Gleichermaßen beinhaltet der Pod-Switch 260 einen Satz von Ports 262, mit denen die Knoten der Racks des Pod 110 verbunden sind, und einen Satz von Ports 264, die den Pod 110 mit den Spine-Switches 90 verbinden. Von daher liefert das Verwenden des Paares von Switches 250, 260 eine Menge an Redundanz für den Pod 110. Falls zum Beispiel einer der Switches 250, 260 ausfällt, können die Knoten in dem Pod 110 weiterhin Datenkommunikation mit dem Rest des Datenzentrums 100 (z. B. Knoten anderer Pods) durch den anderen Switch 250, 260 aufrechterhalten. Des Weiteren können die Switches 90, 250, 260 bei der veranschaulichenden Ausführungsform als optische Doppelmodus-Switches umgesetzt sein, die in der Lage sind, sowohl Ethernet-Protokoll-Kommunikationen, die Internetprotokoll(IP)-Pakete führen, als auch Kommunikationen gemäß einem zweiten Hochleistungs-Verbindungsschichtprotokoll (z. B. PCI-Express oder Compute-Express-Link) über optische Signalisierungsmedien eines optischen Fabric zu routen.
  • Es versteht sich, dass jeder der anderen Pods 70, 130, 80 (sowie beliebige zusätzliche Pods des Datenzentrums 100) ähnlich aufgebaut sein kann wie der in 2 gezeigte und beschriebene Pod 110 und ähnliche Komponenten aufweisen kann (z. B. kann jeder Pod Reihen von Racks aufweisen, die mehrere Knoten unterbringen, wie oben beschrieben). Obwohl zwei Pod-Switches 250, 260 gezeigt sind, versteht es sich zusätzlich, dass bei anderen Ausführungsformen jeder Pod 110, 70, 130, 80 mit einer anderen Anzahl von Pod-Switches verbunden sein kann, was noch mehr Failover-Kapazität bereitstellt. Natürlich können bei anderen Ausführungsformen Pods anders als die in den 1-2 gezeigten Reihen von Racks angeordnet sein. Ein Pod kann zum Beispiel als mehrere Sätze von Racks umgesetzt sein, wobei jeder Satz von Racks radial angeordnet ist, die Racks z. B. äquidistant von einem zentralen Switch sind.
  • Nun unter Bezugnahme auf 3 ist ein Knoten 400 bei der veranschaulichenden Ausführungsform dazu konfiguriert, in einem entsprechenden Rack 240 des Datenzentrums 100 gemounted zu werden, wie oben besprochen. Bei manchen Ausführungsformen kann jeder Knoten 400 zum Durchführen bestimmter Aufgaben, wie etwa Rechenaufgaben, Beschleunigungsaufgaben, Datenspeicherungsaufgaben usw., optimiert oder anderweitig konfiguriert sein. Zum Beispiel kann der Knoten 400 als ein Rechenknoten 500, wie unten in Bezug auf 5 besprochen, ein Beschleunigerknoten 600, wie unten in Bezug auf 6 besprochen, ein Speicherungsknoten 700, wie unten in Bezug auf die 7 besprochen, oder als ein Knoten, der zum Durchführen anderer spezialisierter Aufgaben optimiert oder anderweitig konfiguriert ist, wie etwa ein Speicherknoten 800, der unten mit Bezug auf 8 besprochen wird, umgesetzt sein.
  • Wie oben besprochen, beinhaltet der veranschaulichende Knoten 400 ein Leiterplattensubstrat 302, das verschiedene physische Ressourcen (z. B. elektrische Komponenten) unterstützt, die darauf befestigt sind.
  • Wie oben besprochen, beinhaltet der veranschaulichende Knoten 400 eine oder mehrere physische Ressourcen 320, die an einer Oberseite 350 des Leiterplattensubstrats 302 befestigt sind. Obwohl in 3 zwei physische Ressourcen 320 gezeigt sind, versteht es sich, dass der Knoten 400 bei anderen Ausführungsformen eine, zwei oder mehr physische Ressourcen 320 beinhalten kann. Die physischen Ressourcen 320 können als ein beliebiger Typ von Prozessor, Steuerung oder einer anderen Rechenschaltung umgesetzt sein, die in der Lage ist, verschiedene Aufgaben wie etwa Rechenfunktionen durchzuführen und/oder die Funktionen des Knotens 400 in Abhängigkeit von zum Beispiel dem Typ oder der beabsichtigten Funktionalität des Knotens 400 zu steuern. Wie unten ausführlicher besprochen, können die physischen Ressourcen 320 zum Beispiel umgesetzt sein als Hochleistungsprozessoren in Ausführungsformen, in denen der Knoten 400 als ein Rechenknoten umgesetzt ist, als Beschleuniger-Coprozessoren oder -schaltungen in Ausführungsformen, in denen der Knoten 400 als ein Beschleunigerknoten umgesetzt ist, als Speicherungssteuerungen in Ausführungsformen, in denen der Knoten 400 als ein Speicherungsknoten umgesetzt ist, oder als ein Satz von Speichervorrichtungen in Ausführungsformen, in denen der Knoten 400 als ein Speicherknoten umgesetzt ist.
  • Der Knoten 400 beinhaltet auch eine oder mehrere zusätzliche physische Ressourcen 330, die auf der Oberseite 350 des Leiterplattensubstrats 302 befestigt sind. Bei der veranschaulichenden Ausführungsform beinhalten die zusätzlichen physischen Ressourcen eine Netzwerkschnittstellensteuerung (NIC: Network Interface Controller), wie unten ausführlicher besprochen ist. Natürlich können die physischen Ressourcen 330 in Abhängigkeit von der Art und Funktionalität des Knotens 400 in anderen Ausführungsformen zusätzliche oder andere elektrische Komponenten, Schaltungen und/oder Vorrichtungen beinhalten.
  • Die physischen Ressourcen 320 können über ein Eingabe/Ausgabe(E/A)-Subsystem 322 kommunikativ mit den physischen Ressourcen 330 gekoppelt sein. Das E/A-Subsystem 322 kann als Schaltungsanordnung und/oder Komponenten umgesetzt sein, um Eingabe/Ausgabe-Operationen mit den physischen Ressourcen 320, den physischen Ressourcen 330 und/oder anderen Komponenten des Knotens 400 zu ermöglichen. Zum Beispiel kann das E/A-Subsystem 322 als Speichersteuerungshubs, Eingabe/Ausgabe-Steuerhubs, integrierte Sensorhubs, Firmwarevorrichtungen, Kommunikationslinks (z. B. Punkt-zu-Punkt-Links, Buslinks, Drähte, Kabel, Wellenleiter, Lichtleiter, Leiterplattenbahnen usw.) und/oder andere Komponenten und Subsysteme umgesetzt sein oder diese anderweitig beinhalten, um die Eingabe/Ausgabe-Operationen zu ermöglichen. Bei der veranschaulichenden Ausführungsform ist das E/A-Subsystem 322 als ein DDR4-Datenbus (DDR: Double Data Rate 4 - doppelte Datenrate 4) oder ein DDR5-Datenbus umgesetzt oder beinhaltet diesen anderweitig.
  • Bei manchen Ausführungsformen kann der Knoten 400 auch ein Ressource-zu-Ressource-Interconnect 324 beinhalten. Das Ressource-zu-Ressource-Interconnect 324 kann als ein beliebiger Typ eines Kommunikations-Interconnect ausgeführt sein, das dazu in der Lage ist, Ressource-zu-Ressource-Kommunikationen zu ermöglichen. Bei der veranschaulichenden Ausführungsform ist das Ressource-zu-Ressource-Interconnect 324 als ein Hochgeschwindigkeit-Punkt-zu-Punkt-Interconnect (z. B. schneller als das E/A-Subsystem 322) umgesetzt. Zum Beispiel kann das Ressource-zu-Ressource-Interconnect 324 als ein QuickPath-Interconnect (QPI), ein UltraPath-Interconnect (UPI), PCI-Express (PCIe) oder ein anderes Hochgeschwindigkeits-Punkt-zu-Punkt-Interconnect, das für Ressource-zu-Ressource-Kommunikationen dediziert ist, umgesetzt sein.
  • Der Knoten 400 beinhaltet auch einen Leistungsverbinder 340, der dazu konfiguriert ist, mit einem entsprechenden Leistungsverbinder des Racks 240 zusammenzupassen, wenn der Knoten 400 in dem entsprechenden Rack 240 gemounted ist. Der Knoten 400 empfängt Leistung von einer Leistungsversorgung des Racks 240 über den Leistungsverbinder 340, um die verschiedenen elektrischen Komponenten des Knotens 400 mit Leistung zu versorgen. Das heißt, der Knoten 400 beinhaltet keine lokale Leistungsversorgung (z. B. eine geräteinterne Leistungsversorgung), um die elektrischen Komponenten des Knotens 400 mit Leistung zu versorgen. Der Ausschluss einer lokalen oder geräteinternen Leistungsversorgung erleichtert die Reduzierung der gesamten Grundfläche des Leiterplattensubstrats 302, was die thermischen Kühlcharakteristiken der verschiedenen elektrischen Komponenten erhöhen kann, die auf dem Leiterplattensubstrat 302 befestigt sind, wie oben besprochen. Bei manchen Ausführungsformen sind Spannungsregler auf einer Unterseite 450 (siehe 4) des Leiterplattensubstrats 302 direkt gegenüber den Prozessoren 520 (siehe 5) platziert und Leistung wird von den Spannungsreglern durch Vias, die sich durch das Leiterplattensubstrat 302 erstrecken, zu den Prozessoren 520 geleitet. Eine solche Konfiguration stellt ein erhöhtes thermisches Budget, zusätzlichen Strom und/oder zusätzliche Spannung und eine bessere Spannungssteuerung relativ zu typischen Leiterplatten bereit, bei denen Prozessorleistung von einem Spannungsregler teilweise durch Leiterbahnen geliefert wird.
  • Bei manchen Ausführungsformen kann der Knoten 400 auch Befestigungsmerkmale 342 beinhalten, die dazu konfiguriert sind, mit einem Befestigungsarm oder einer anderen Struktur eines Roboters zusammenzupassen, um die Platzierung des Knotens 300 in einem Rack 240 durch den Roboter zu erleichtern. Die Befestigungsmerkmale 342 können als eine beliebige Art physischer Strukturen umgesetzt sein, die es dem Roboter ermöglichen, den Knoten 400 zu greifen, ohne das Leiterplattensubstrat 302 oder die daran befestigten elektrischen Komponenten zu beschädigen. Zum Beispiel können die Befestigungsmerkmale 342 bei manchen Ausführungsformen als nichtleitfähige Pads umgesetzt sein, die an dem Leiterplattensubstrat 302 angebracht sind. Bei anderen Ausführungsformen können die Befestigungsmerkmale als Halterungen, Streben oder andere ähnliche Strukturen umgesetzt sein, die an dem Leiterplattensubstrat 302 angebracht sind. Die bestimmte Anzahl, Form, Größe und/oder Zusammensetzung des Befestigungsmerkmals 342 kann von dem Design des Roboters abhängen, der zum Verwalten des Knotens 400 konfiguriert ist.
  • Nun unter Bezugnahme auf 4 beinhaltet der Knoten 400 zusätzlich zu den physischen Ressourcen 330, die auf der Oberseite 350 des Leiterplattensubstrats 302 befestigt sind, auch eine oder mehrere Speichervorrichtungen 420, die auf einer Unterseite 450 des Leiterplattensubstrats 302 befestigt sind. Das heißt, das Leiterplattensubstrat 302 kann als eine doppelseitige Leiterplatte umgesetzt sein. Die physischen Ressourcen 320 können über das E/A-Subsystem 322 kommunikativ mit Speichervorrichtungen 420 gekoppelt sein. Zum Beispiel können die physischen Ressourcen 320 und die Speichervorrichtungen 420 kommunikativ durch ein oder mehrere Vias gekoppelt sein, die sich durch das Leiterplattensubstrat 302 erstrecken. Eine physische Ressource 320 kann bei manchen Ausführungsformen kommunikativ mit einem anderen Satz von einer oder mehreren Speichervorrichtungen 420 gekoppelt sein. Alternativ dazu kann bei anderen Ausführungsformen jede physische Ressource 320 kommunikativ mit jeder Speichervorrichtung 420 gekoppelt sein.
  • Die Speichervorrichtungen 420 können als eine beliebige Art von Speichervorrichtung umgesetzt sein, die in der Lage ist, Daten für die physischen Ressourcen 320 während des Betriebs des Knotens 400 zu speichern, wie etwa eine beliebige Art flüchtiger (z. B. dynamischer Direktzugriffsspeicher (DRAM) usw.) oder nichtflüchtiger Speicher. Ein flüchtiger Speicher kann ein Speicherungsmedium sein, das Leistung zum Aufrechterhalten des Zustands von durch das Medium gespeicherten Daten benötigt. Nichtbeschränkende Beispiele für flüchtigen Speicher können verschiedene Typen von Direktzugriffsspeicher (RAM), wie etwa dynamischen Direktzugriffsspeicher (DRAM) oder statischen Direktzugriffsspeicher (SRAM), einschließen. Ein bestimmter Typ von DRAM, der in einem Speichermodul verwendet werden kann, ist synchroner dynamischer Direktzugriffsspeicher (SDRAM). Bei bestimmten Ausführungsformen kann DRAM einer Speicherkomponente einem Standard entsprechen, der durch JEDEC veröffentlicht ist, wie etwa ESD79F für DDR-SDRAM, JESD79-2F für DDR2-SDRAM, JESD79-3F für DDR3-SDRAM, JESD79-4A für DDR4-SDRAM, JESD209 für Low-Power-DDR (LPDDR), JESD209-2 für LPDDR2, JESD209-3 für LPDDR3, und JESD209-4 für LPDDR4. Solche Standards (und ähnliche Standards) können als DDR-basierte Standards bezeichnet werden und Kommunikationsschnittstellen der Speicherungsvorrichtungen, die solche Standards implementieren, können als DDR-basierte Schnittstellen bezeichnet werden.
  • Bei einer Ausführungsform ist die Speichervorrichtung eine blockadressierbare Speichervorrichtung, wie etwa jene auf NAND- oder NOR-Technologien basierte. Ein Block kann eine beliebige Größe aufweisen, wie etwa unter anderem 2 KB, 4 KB, 5 KB und so weiter. Eine Speichervorrichtung kann auch nichtflüchtige Vorrichtungen der nächsten Generation beinhalten, wie etwa Intel Optane®-Speicher oder andere byteadressierbare nichtflüchtige Write-in-Place-Speichervorrichtungen. Bei einer Ausführungsform kann die Speichervorrichtung Speichervorrichtungen sein oder beinhalten, die Chalkogenidglas, Mehrfach-Schwellenpegel-NAND-Flash-Speicher, NOR-Flash-Speicher, Einzel- oder Mehrfachpegel-Phasenwechselspeicher (PCM), einen resistiven Speicher, Nanodrahtspeicher, ferroelektrischen Transistor-Direktzugriffsspeicher (FeTRAM), antiferroelektrischen Speicher, magnetoresistiven Direktzugriffsspeicher(MRAM)-Speicher, der Memristortechnologie beinhaltet, resistiven Speicher einschließlich der Metalloxid-Basis, der Sauerstoffleerstellen-Basis und des leitfähigen Brücken-Direktzugriffsspeichers (CB-RAM) oder Spin-Transfer-Torque(STT)-MRAM, eine Vorrichtung basierend auf spintronischen Magnetübergangsspeicher, eine Vorrichtung basierend auf Magnettunnelübergang (MTJ: Magnetic Tunnel Junction), eine Vorrichtung basierend auf DW (Domänenwand) und SOT (Spin Orbit Transfer), eine thyristorbasierte Speichervorrichtung oder eine Kombination von beliebigen der Obigen oder einen anderen Speicher verwenden. Die Speichervorrichtung kann sich auf den Die selbst und/oder auf ein verpacktes Speicherprodukt beziehen. Bei manchen Ausführungsformen kann die Speichervorrichtung eine transistorlose stapelbare Kreuzungspunktarchitektur umfassen, in der Speicherzellen bei den Schnittpunkten von Wortleitungen und Bitleitungen sitzen und einzeln adressierbar sind und in der eine Bitspeicherung auf einer Änderung eines Volumenwiderstands basiert.
  • Nun unter Bezugnahme auf 5 kann der Knoten 400 bei manchen Ausführungsformen als ein Rechenknoten 500 umgesetzt sein. Der Rechenknoten 500 kann dazu konfiguriert sein, Rechenaufgaben durchzuführen. Natürlich kann, wie oben besprochen, der Rechenknoten 500 auf andere Knoten, wie etwa Beschleunigungsknoten und/oder Speicherungsknoten, angewiesen sein, um Rechenaufgaben durchzuführen.
  • In dem veranschaulichenden Rechenknoten 500 sind die physischen Ressourcen 320 als Prozessoren 520 umgesetzt. Obwohl in 5 nur zwei Prozessoren 520 gezeigt sind, versteht es sich, dass der Rechenknoten 500 in anderen Ausführungsformen zusätzliche Prozessoren 520 beinhalten kann. Veranschaulichend sind die Prozessoren 520 als Hochleistungsprozessoren 520 ausgeführt und können dazu konfiguriert sind, bei einer relativ hohen Nennleistung zu arbeiten.
  • Bei manchen Ausführungsformen kann der Rechenknoten 500 auch ein Prozessor-zu-Prozessor-Interconnect 542 beinhalten. Das Prozessor-zu-Prozessor-Interconnect 542 kann als eine beliebige Art von Kommunikations-Interconnect umgesetzt sein, das in der Lage ist, Kommunikationen des Prozessor-zu-Prozessor-Interconnect 542 zu ermöglichen. Bei der veranschaulichenden Ausführungsform ist das Prozessor-zu-Prozessor-Interconnect 542 als ein Hochgeschwindigkeit-Punkt-zu-Punkt-Interconnect (z. B. schneller als das E/A-Subsystem 322) umgesetzt. Zum Beispiel kann das Prozessor-zu-Prozessor-Interconnect 542 als ein QuickPath-Interconnect (QPI), ein UltraPath-Interconnect (UPI) oder ein anderes Hochgeschwindigkeits-Punkt-zu-Punkt-Interconnect, das Prozessor-zu-Prozessor-Kommunikationen dediziert ist (z. B. PCIe oder CXL), umgesetzt sein.
  • Der Rechenknoten 500 weist auch eine Kommunikationsschaltung 530 auf. Die veranschaulichende Kommunikationsschaltung 530 beinhaltet eine Netzwerkschnittstellensteuerung (NIC) 532, die auch als eine Host-Fabric-Schnittstelle (HFI: Host Fabric Interface) bezeichnet werden kann. Die NIC 532 kann als eine beliebige Art von integrierter Schaltung, diskreten Schaltungen, Steuerungschips, Chipsätzen, Add-In-Platinen, Tochterkarten, Netzwerkschnittstellenkarten oder anderen Vorrichtungen umgesetzt sein oder diese anderweitig beinhalten, die durch den Rechenknoten 500 verwendet werden können, um sich mit einer anderen Rechenvorrichtung (z. B. mit anderen Knoten 400) zu verbinden. Bei manchen Ausführungsformen kann die NIC 532 als Teil eines System-on-Chip (SoC) umgesetzt sein, das einen oder mehrere Prozessoren beinhaltet, oder auf einem Multichip-Package enthalten sein, das auch einen oder mehrere Prozessoren enthält. Bei manchen Ausführungsformen kann die NIC 532 einen lokalen Prozessor (nicht gezeigt) und/oder einen lokalen Speicher (nicht gezeigt) beinhalten, die beide lokal für die NIC 532 sind. Bei solchen Ausführungsformen kann der lokale Prozessor der NIC 532 dazu in der Lage sein, eine oder mehrere der Funktionen der Prozessoren 520 durchzuführen. Zusätzlich oder alternativ dazu kann bei solchen Ausführungsformen der lokale Speicher der NIC 532 in eine oder mehrere Komponenten des Rechenknotens auf Platinenebene, Socket-Ebene, Chipebene und/oder anderen Ebenen integriert sein. Bei manchen Beispielen beinhaltet eine Netzwerkschnittstelle eine Netzwerkschnittstellensteuerung oder eine Netzwerkschnittstellenkarte. Bei manchen Beispielen kann eine Netzwerkschnittstelle eine Netzwerkschnittstellensteuerung (NIC) 532 und/oder eine Host-Fabric-Schnittstelle (HFI) und/oder einen Host-Busadapter (HBA) und/oder eine Netzwerkschnittstelle, die mit einem Bus oder einer Verbindung verbunden ist (z. B. PCIe, CXL, DDR und so weiter), beinhalten. Bei manchen Beispielen kann eine Netzwerkschnittstelle Teil eines Switches oder eines System-on-Chip (SoC) sein.
  • Die Kommunikationsschaltung 530 ist kommunikativ mit einem optischen Datenverbinder 534 gekoppelt. Der optische Datenverbinder 534 ist dazu konfiguriert, mit einem entsprechenden optischen Datenverbinder eines Racks zusammenzupassen, wenn der Rechenknoten 500 in dem Rack gemountet ist. Veranschaulichend beinhaltet der optische Datenverbinder 534 mehrere optische Fasern, die von einer Gegenfläche des optischen Datenverbinders 534 zu einem optischen Sendeempfänger 536 führen. Der optische Sendeempfänger 536 ist dazu konfiguriert, eingehende optische Signale von dem rackseitigen optischen Datenverbinder in elektrische Signale umzuwandeln und elektrische Signal in ausgehende optische Signale zu dem rackseitigen optischen Datenverbinder umzuwandeln. Obwohl bei der veranschaulichenden Ausführungsform als Teil des optischen Datenverbinders 534 bildend gezeigt, kann der optische Sendeempfänger 536 bei anderen Ausführungsformen einen Teil der Kommunikationsschaltung 530 bilden.
  • Bei manchen Ausführungsformen kann der Rechenknoten 500 auch einen Erweiterungsverbinder 540 beinhalten. Bei solchen Ausführungsformen ist der Erweiterungsverbinder 540 dazu konfiguriert, mit einem entsprechenden Verbinder eines Erweiterungsleiterplattensubstrats zusammenzupassen, um dem Rechenknoten 500 zusätzliche physische Ressourcen bereitzustellen. Die zusätzlichen physischen Ressourcen können zum Beispiel durch die Prozessoren 520 während des Betriebs des Rechenknotens 500 verwendet werden. Das Erweiterungsleiterplattensubstrat kann im Wesentlichen dem oben besprochenen Leiterplattensubstrat 302 ähnlich sein und kann verschiedene daran befestigte elektrische Komponenten beinhalten. Die jeweiligen auf dem Erweiterungsleiterplattensubstrat befestigten elektrischen Komponenten können von der beabsichtigten Funktionalität des Erweiterungsleiterplattensubstrats abhängen. Das Erweiterungsleiterplattensubstrat kann zum Beispiel zusätzliche Rechenressourcen, Speicherressourcen und/oder Speicherungsressourcen bereitstellen. Von daher können die zusätzlichen physischen Ressourcen des Erweiterungsleiterplattensubstrats unter anderem Prozessoren, Speichervorrichtungen, Speicherungsvorrichtungen und/oder Beschleunigerschaltungen beinhalten, einschließlich zum Beispiel feldprogrammierbare Gate-Arrays (FPGA), anwendungsspezifische integrierte Schaltungen (ASICs), Sicherheits-Coprozessoren, Grafikverarbeitungseinheiten (GPUs), Maschinenlernschaltungen oder andere spezialisierte Prozessoren, Steuerungen, Vorrichtungen und/oder Schaltungen.
  • Nun unter Bezugnahme auf 6 kann der Knoten 400 bei manchen Ausführungsformen als ein Beschleunigerknoten 600 umgesetzt sein. Der Beschleunigerknoten 600 ist dazu konfiguriert, spezialisierte Rechenaufgaben durchzuführen, wie etwa maschinelles Lernen, Verschlüsselung, Hashing oder eine andere rechenintensive Aufgabe. Bei manchen Ausführungsformen kann ein Rechenknoten 500 zum Beispiel Aufgaben während des Betriebs an den Beschleunigerknoten 600 abladen. Der Beschleunigerknoten 600 beinhaltet verschiedene Komponenten ähnlich Komponenten des Knotens 400 und/oder des Rechenknotens 500, die in 6 unter Verwendung der gleichen Bezugsziffern identifiziert wurden.
  • In dem veranschaulichenden Beschleunigerknoten 600 sind die physischen Ressourcen 320 als Beschleunigerschaltungen 620 umgesetzt. Obwohl in 6 nur zwei Beschleunigerschaltungen 620 gezeigt sind, versteht es sich, dass der Beschleunigerknoten 600 bei anderen Ausführungsformen zusätzliche Beschleunigerschaltungen 620 beinhalten kann. Die Beschleunigerschaltungen 620 können als ein beliebiger Typ eines Prozessors, eines Coprozessors, einer Rechenschaltung oder einer anderen Vorrichtung umgesetzt sein, die zum Durchführen von Rechen- oder Verarbeitungsoperationen in der Lage ist. Zum Beispiel können die Beschleunigerschaltungen 620 als zum Beispiel Zentralverarbeitungseinheiten, Kerne, feldprogrammierbare Gate-Arrays (FPGA), anwendungsspezifische integrierte Schaltungen (ASICs), programmierbare Steuerlogik (PCL), Sicherheits-Coprozessoren, Grafikverarbeitungseinheiten (GPUs), neuromorphe Prozessoreinheiten, Quantencomputer, Maschinenlernschaltungen oder andere spezialisierte Prozessoren, Steuerungen, Vorrichtungen und/oder Schaltungen umgesetzt sein.
  • Bei manchen Ausführungsformen kann der Beschleunigerknoten 600 auch ein Beschleuniger-zu-Beschleuniger-Interconnect 642 beinhalten. Ähnlich dem Ressource-zu-Ressource-Interconnect 324 des oben besprochenen Knotens 300 kann das Beschleuniger-zu-Beschleuniger-Interconnect 642 als eine beliebige Art von Kommunikations-Interconnect umgesetzt sein, das in der Lage ist, Beschleuniger-zu-Beschleuniger-Kommunikationen zu ermöglichen. Bei der veranschaulichenden Ausführungsform ist das Beschleuniger-zu-Beschleuniger-Interconnect 642 als ein Hochgeschwindigkeit-Punkt-zu-Punkt-Interconnect (z. B. schneller als das E/A-Subsystem 322) umgesetzt. Zum Beispiel kann das Beschleuniger-zu-Beschleuniger-Interconnect 642 als ein QuickPath-Interconnect (QPI), ein UltraPath-Interconnect (UPI) oder ein anderes Hochgeschwindigkeit-Punkt-zu-Punkt-Interconnect umgesetzt sein, das Prozessor-zu-Prozessor-Kommunikationen dediziert ist. Bei manchen Ausführungsformen können die Beschleunigerschaltungen 620 mit einer primären Beschleunigerschaltung 620, die mit der NIC 532 und dem Speicher 420 durch das E/A-Subsystem 322 verbunden ist, und einer sekundären Beschleunigerschaltung 620, die mit der NIC 532 und dem Speicher 420 durch eine primäre Beschleunigerschaltung 620 verbunden ist, verkettet sein.
  • Nun unter Bezugnahme auf 7 kann der Knoten 400 bei manchen Ausführungsformen als ein Speicherungsknoten 700 umgesetzt sein. Der Speicherungsknoten 700 ist dazu konfiguriert, Daten in einer Datenspeicherung 750 zu speichern, die lokal zu dem Speicherungsknoten 700 ist. Während des Betriebs kann zum Beispiel ein Rechenknoten 500 oder ein Beschleunigerknoten 600 Daten aus der Datenspeicherung 750 des Speicherungsknotens 700 speichern und abrufen. Der Speicherungsknoten 700 beinhaltet verschiedene Komponenten ähnlich Komponenten des Knotens 400 und/oder des Rechenknotens 500, die in 7 unter Verwendung der gleichen Bezugsziffern identifiziert wurden.
  • In dem veranschaulichenden Speicherungsknoten 700 sind die physischen Ressourcen 320 als Speicherungssteuerungen 420 umgesetzt. Obwohl in 7 nur zwei Speicherungssteuerungen 420 gezeigt sind, versteht es sich, dass der Speicherungsknoten 700 bei anderen Ausführungsformen zusätzliche Speicherungssteuerungen 420 beinhalten kann. Die Speicherungssteuerungen 420 können als eine beliebige Art von Prozessor, Steuerung oder Steuerschaltung umgesetzt sein, die in der Lage ist, das Speichern und Abrufen von Daten in die Datenspeicherung 750 basierend auf Anforderungen, die über die Kommunikationsschaltung 530 empfangen werden, zu steuern. Bei der veranschaulichenden Ausführungsform sind die Speicherungssteuerungen 420 als Prozessoren oder Steuerungen mit relativ niedriger Leistung umgesetzt. Zum Beispiel können die Speicherungssteuerungen 420 bei manchen Ausführungsformen dazu konfiguriert sein, mit einer Nennleistung von 75 Watt zu arbeiten.
  • Bei manchen Ausführungsformen kann der Speicherungsknoten 700 auch ein Steuerung-zu-Steuerung-Interconnect 742 beinhalten. Ähnlich dem Ressource-zu-Ressource-Interconnect 324 des oben besprochenen Knotens 400 kann das Steuerung-zu-Steuerung-Interconnect 742 als eine beliebige Art von Kommunikations-Interconnect umgesetzt sein, das in der Lage ist, Steuerung-zu-Steuerung-Kommunikationen zu ermöglichen. Bei der veranschaulichenden Ausführungsform ist das Steuerung-zu-Steuerung-Interconnect 742 als ein Hochgeschwindigkeits-Punkt-zu-Punkt-Interconnect (z. B. schneller als das E/A-Subsystem 322) umgesetzt. Zum Beispiel kann das Steuerung-zu-Steuerung-Interconnect 742 als ein QuickPath-Interconnect (QPI), ein UltraPath-Interconnect (UPI) oder ein anderes Hochgeschwindigkeits-Punkt-zu-Punkt-Interconnect umgesetzt sein, das für Prozessor-zu-Prozessor-Kommunikationen dediziert ist.
  • Nun unter Bezugnahme auf 8 kann der Knoten 400 bei manchen Ausführungsformen als ein Speicherknoten 800 umgesetzt sein. Der Speicherknoten 800 ist dazu konfiguriert, anderen Knoten 400 (z. B. Rechenknoten 500, Beschleunigerknoten 600 usw.) Zugriff auf einen Pool von Speicher (z. B. in zwei oder mehr Sätzen 830, 832 von Speichervorrichtungen 420) lokal zu dem Speicherungsknoten 700 bereitzustellen. Während des Betriebs kann zum Beispiel ein Rechenknoten 500 oder ein Beschleunigerknoten 600 unter Verwendung eines logischen Adressraums, der auf physische Adressen in den Speichersätzen 830, 832 abgebildet ist, entfernt in einen oder mehrere der Speichersätze 830, 832 des Speicherknotens 800 schreiben und/oder lesen.
  • In dem veranschaulichenden Speicherknoten 800 sind die physischen Ressourcen 320 als Speichersteuerungen 820 umgesetzt. Obwohl in 8 nur zwei Speichersteuerungen 820 gezeigt sind, versteht es sich, dass der Speicherknoten 800 bei anderen Ausführungsformen zusätzliche Speichersteuerungen 820 beinhalten kann. Die Speichersteuerungen 820 können als ein beliebiger Typ von Prozessor, Steuerung oder Steuerschaltung umgesetzt sein, der zum Steuern des Schreibens und Lesens von Daten in die Speichersätze 830, 832 basierend auf Anforderungen in der Lage ist, die über die Kommunikationsschaltung 530 empfangen werden. Bei der veranschaulichenden Ausführungsform ist jede Speichersteuerung 820 mit einem entsprechenden Speichersatz 830, 832 verbunden, um in die Speichervorrichtungen 420 innerhalb des entsprechenden Speichersatzes 830, 832 zu schreiben und von diesen zu lesen und jegliche Genehmigungen (z. B. Lesen, Schreiben usw.) durchzusetzen, die mit dem Knoten 400 assoziiert sind, der eine Anforderung an den Speicherknoten 800 gesendet hat, um eine Speicherzugriffsoperation (z. B. Lesen oder Schreiben) durchzuführen.
  • Bei manchen Ausführungsformen kann der Speicherknoten 800 auch ein Steuerung-zu-Steuerung-Interconnect 842 beinhalten. Ähnlich dem Ressource-zu-Ressource-Interconnect 324 des oben besprochenen Knotens 400 kann das Steuerung-zu-Steuerung-Interconnect 842 als eine beliebige Art von Kommunikations-Interconnect umgesetzt sein, das in der Lage ist, Steuerung-zu-Steuerung-Kommunikationen zu ermöglichen. Bei der veranschaulichenden Ausführungsform ist das Steuerung-zu-Steuerung-Interconnect 842 als ein Hochgeschwindigkeits-Punkt-zu-Punkt-Interconnect (z. B. schneller als das E/A-Subsystem 322) umgesetzt. Zum Beispiel kann das Steuerung-zu-Steuerung-Interconnect 842 als ein QuickPath-Interconnect (QPI), ein UltraPath-Interconnect (UPI) oder ein anderes Hochgeschwindigkeits-Punkt-zu-Punkt-Interconnect umgesetzt sein, das für Prozessor-zu-Prozessor-Kommunikationen dediziert ist. Von daher kann bei manchen Ausführungsformen eine Speichersteuerung 820 durch das Steuerung-zu-Steuerung-Interconnect 842 auf einen Speicher zugreifen, der innerhalb des Speichersatzes 832 liegt, der mit einer anderen Speichersteuerung 820 assoziiert ist. Bei manchen Ausführungsformen besteht eine skalierbare Speichersteuerung aus mehreren kleineren Speichersteuerungen, hierin als „Chiplets“ bezeichnet, auf einem Speicherknoten (z. B. dem Speicherknoten 800). Die Chiplets können miteinander verbunden sein (z. B. unter Verwendung von EMIB (Embedded Multi-Die Interconnect Bridge - eingebettete Mehrfach-Die-Interconnect-Brücke)). Die kombinierte Chiplet-Speichersteuerung kann bis zu einer relativ großen Anzahl an Speichersteuerungen und E/A-Ports (z. B. bis zu 16 Speicherkanälen) skalieren. Bei manchen Ausführungsformen können die Speichersteuerungen 820 eine Speicherverschachtelung implementierten (z. B. wird eine Speicheradresse auf den Speichersatz 830 abgebildet, wird die nächste Speicheradresse auf den Speichersatz 832 abgebildet und wird die dritte Adresse auf den Speichersatz 830 abgebildet usw.). Das Verschachteln kann innerhalb der Speichersteuerungen 820 oder von CPU-Sockets (z. B. des Rechenknotens 500) über Netzwerklinks zu den Speichersätzen 830, 832 verwaltet werden und kann die Latenz, die mit dem Durchführen von Speicherzugriffsoperationen assoziiert ist, im Vergleich zum Zugreifen auf zusammenhängende Speicheradressen von derselben Speichervorrichtung verbessern.
  • Ferner kann der Speicherknoten 800 bei manchen Ausführungsformen unter Verwendung des Wellenleiterverbinders 880 durch einen Wellenleiter mit einem oder mehreren anderen Knoten 400 (z. B. in demselben Rack 240 oder einem angrenzenden Rack 240) verbunden sein. Bei der veranschaulichenden Ausführungsform sind die Wellenleiter 64-Millimeter-Wellenleiter, die 16 Rx-Spuren (z. B. Empfangsspuren) und 16 Tx-Spuren (z. B. Sendespuren) bereitstellen. Jede Spur beträgt bei der veranschaulichenden Ausführungsform entweder 16 GHz oder 32 GHz. Bei anderen Ausführungsformen können die Frequenzen unterschiedlich sein. Das Verwenden eines Wellenleiters kann einen Zugriff auf einen hohen Durchsatz auf den Speicherpool (z. B. die Speichersätze 830, 832) für einen anderen Knoten (z. B. einen Knoten 400 in demselben Rack 240 oder einem angrenzenden Rack 240 wie der Speicherknoten 800) bereitstellen, ohne zu der Last auf dem optischen Datenverbinder 534 hinzuzufügen.
  • Nun unter Bezugnahme auf 9 kann ein System zum Ausführen einer oder mehrerer Arbeitslasten (z. B. Anwendungen) implementiert sein. Bei der veranschaulichenden Ausführungsform beinhaltet das System 910 einen Orchestratorserver 920, der als ein verwalteter Knoten umgesetzt sein kann, der eine Rechenvorrichtung (z. B. einen Prozessor 520 auf einem Rechenknoten 500) umfasst, die Verwaltungssoftware (z. B. eine Cloud-Betriebsumgebung, wie etwa OpenStack) ausführt, die kommunikativ mit mehreren Knoten 400 gekoppelt ist, einschließlich einer großen Anzahl von Rechenknoten 930 (die z. B. jeweils dem Rechenknoten 500 ähnlich sind), Speicherknoten 940 (die z. B. jeweils dem Speicherknoten 800 ähnlich sind), Beschleunigerknoten 950 (die z. B. jeweils dem Speicherknoten 600 ähnlich sind) und Speicherungsknoten 960 (die z. B. jeweils dem Speicherungsknoten 700 ähnlich sind). Einer oder mehrere der Knoten 930, 940, 950, 960 können in einen verwalteten Knoten 970 gruppiert werden, wie etwa durch den Orchestratorserver 920, um gemeinsam eine Arbeitslast (z. B. eine Anwendung 932, die in einer virtuellen Maschine oder in einem Container ausgeführt wird) durchzuführen.
  • Der verwaltete Knoten 970 kann als eine Anordnung physischer Ressourcen 320, wie etwa Prozessoren 520, Speicherressourcen 420, Beschleunigerschaltungen 620 oder Datenspeicherung 750, von denselben oder unterschiedlichen Knoten 400 umgesetzt sein. Ferner kann der verwaltete Knoten durch den Orchestratorserver 920 zu der Zeit, wenn eine Arbeitsaufgabe dem verwalteten Knoten zuzuweisen ist, oder zu einer beliebigen anderen Zeit eingerichtet, definiert oder „aufgesponnen“ werden und kann unabhängig davon existieren, ob irgendwelche Arbeitsaufgaben momentan dem verwalteten Knoten zugewiesen sind. Bei der veranschaulichenden Ausführungsform kann der Orchestratorserver 920 physische Ressourcen 320 von den Knoten 400 selektiv zuweisen und/oder die Zuweisung aufheben und/oder einen oder mehrere Knoten 400 von dem verwalteten Knoten 970 als eine Funktion von Dienstgütezielen (QoS-Zielen) (z. B. einen Zieldurchsatz, eine Ziellatenz, eine Zielanzahl von Anweisungen pro Sekunde usw.) hinzufügen oder entfernen, die mit einem Service Level Agreement (Dienstgütevereinbarung) für die Arbeitslast (z. B. die Anwendung 932) assoziiert sind. Dabei kann der Orchestratorserver 920 Telemetriedaten empfangen, die Performanzbedingungen (z. B. Durchsatz, Latenz, Anweisungen pro Sekunde usw.) in jedem Knoten 400 des verwalteten Knotens 970 angeben, und die Telemetriedaten mit den Dienstgütezielen vergleichen, um zu bestimmen, ob die Dienstgüteziele erfüllt sind. Der Orchestratorserver 920 kann zusätzlich bestimmen, ob die Zuweisung für eine oder mehrere physische Ressourcen von dem verwalteten Knoten 970 aufgehoben werden kann, während die QoS-Ziele weiterhin erfüllt sind, wodurch diese physischen Ressourcen zur Verwendung in einem anderen verwalteten Knoten freigegeben werden (um z. B. eine andere Arbeitslast auszuführen). Falls die QoS-Ziele gegenwärtig nicht erfüllt sind, kann der Orchestratorserver 920 alternativ bestimmen, zusätzliche physische Ressourcen dynamisch zuzuweisen, um bei der Ausführung der Arbeitslast (z. B. der Anwendung 932) zu assistieren, während die Arbeitslast ausgeführt wird. Gleichermaßen kann der Orchestratorserver 920 bestimmen, die Zuweisung für physische Ressourcen dynamisch von einem verwalteten Knoten aufzuheben, falls der Orchestratorserver 920 bestimmt, dass das Aufheben der Zuweisung für die physischen Ressourcen dazu führen würde, dass QoS-Ziele immer noch erfüllt werden.
  • Zusätzlich kann der Orchestratorserver 920 bei manchen Ausführungsformen Trends in der Ressourcennutzung der Arbeitslast (z. B. der Anwendung 932) identifizieren, wie etwa durch Identifizieren von Ausführungsphasen (z. B. Zeiträumen, in denen unterschiedliche Operationen, jeweils mit unterschiedlichen Ressourcenauslastungscharakteristiken durchgeführt werden) der Arbeitslast (z. B. der Anwendung 932) und präemptives Identifizieren verfügbarer Ressourcen in dem Datenzentrum und Zuweisen von diesen zu dem verwalteten Knoten 970 (z. B. innerhalb eines vordefinierten Zeitraums des assoziierten Phasenanfangs). Bei manchen Ausführungsformen kann der Orchestratorserver 920 die Performanz basierend auf verschiedenen Latenzen und einem Verteilungsschema modellieren, um Arbeitslasten unter Rechenknoten und anderen Ressourcen (z. B. Beschleunigerknoten, Speicherknoten, Speicherungsknoten) in dem Datenzentrum zu platzieren. Zum Beispiel kann der Orchestratorserver 920 ein Modell nutzen, das die Performanz von Ressourcen auf den Knoten 400 (z. B. FPGA-Performanz, Speicherzugriffslatenz usw.) und die Performanz (z. B. Überlastung, Latenz, Bandbreite) des Pfades durch das Netzwerk zu der Ressource (z. B. FPGA) berücksichtigt. Von daher kann der Orchestratorserver 920 bestimmen, welche Ressource(n) mit welchen Arbeitslasten verwendet werden sollte(n), basierend auf der Gesamtlatenz, die mit jeder potenziellen Ressource assoziiert ist, die in dem Datenzentrum 100 verfügbar ist (z. B. die Latenz, die mit der Performanz der Ressource selbst assoziiert ist, zusätzlich zu der Latenz, die mit dem Pfad durch das Netzwerk zwischen dem Rechenknoten, der die Arbeitslast ausführt, und dem Knoten 400, auf dem sich die Ressource befindet, assoziiert ist).
  • Bei manchen Ausführungsformen kann der Orchestratorserver 920 eine Wärmeerzeugungskarte in dem Datenzentrum 100 unter Verwendung von Telemetriedaten (z. B. Temperaturen, Lüftergeschwindigkeiten usw.), die von den Knoten 400 gemeldet werden, erzeugen und Ressourcen verwalteten Knoten als eine Funktion der Wärmeerzeugungskarte und vorhergesagter Wärmeerzeugung, die mit unterschiedlichen Arbeitslasten assoziiert sind, zuweisen, um eine Zieltemperatur und Wärmeverteilung in dem Datenzentrum 100 beizubehalten. Zusätzlich oder alternativ dazu kann der Orchestratorserver 920 bei manchen Ausführungsformen empfangene Telemetriedaten in ein hierarchisches Modell organisieren, das indikativ für eine Beziehung zwischen den verwalteten Knoten ist (z. B. eine räumliche Beziehung, wie etwa die physischen Standorte der Ressourcen der verwalteten Knoten innerhalb des Datenzentrum 100 und/oder eine funktionale Beziehung, wie etwa Gruppierungen der verwalteten Knoten, durch die Kunden, für die die verwalteten Knoten Dienste bereitstellen, die Typen von Funktionen, die typischerweise durch die verwalteten Knoten durchgeführt werden, verwaltete Knoten, die typischerweise Arbeitslasten untereinander teilen oder austauschen usw.). Basierend auf Unterschieden der physischen Standorte und Ressourcen der verwalteten Knoten kann eine gegebene Arbeitslast unterschiedliche Ressourcennutzungen (z. B. eine unterschiedliche interne Temperatur verursachen, einen unterschiedlichen Prozentsatz einer Prozessor- oder Speicherkapazität verwenden) über die Ressourcen unterschiedlicher verwalteter Knoten aufzeigen. Der Orchestratorserver 920 kann die Unterschiede basierend auf den Telemetriedaten bestimmen, die in dem hierarchischen Modell gespeichert sind, und die Unterschiede in eine Vorhersage einer zukünftigen Ressourcennutzung einer Arbeitslast einbeziehen, falls die Arbeitslast von einem verwalteten Knoten zu einem anderen verwalteten Knoten neu zugewiesen wird, um eine Ressourcennutzung in dem Datenzentrum 100 genau auszugleichen. Bei manchen Ausführungsformen kann der Orchestratorserver 920 Muster in Ressourcennutzungsphasen der Arbeitslasten identifizieren und die Muster verwenden, um zukünftige Ressourcennutzung der Arbeitslasten vorherzusagen.
  • Um die Rechenlast auf dem Orchestratorserver 920 und die Datenübertragungslast auf dem Netzwerk zu reduzieren, kann der Orchestratorserver 920 bei manchen Ausführungsformen Selbsttestinformationen an die Knoten 400 senden, um jedem Knoten 400 zu ermöglichen, lokal (z. B. am Knoten 400) zu bestimmen, ob Telemetriedaten, die durch den Knoten 400 erzeugt werden, eine oder mehrere Bedingungen erfüllen (z. B. eine verfügbare Kapazität, die eine vordefinierte Schwelle erfüllt, eine Temperatur, die eine vordefinierte Schwelle erfüllt usw.). Jeder Knoten 400 kann dann ein vereinfachtes Ergebnis (z. B. ja oder nein) an den Orchestratorserver 920 zurückmelden, das der Orchestratorserver 920 beim Bestimmen der Zuweisung von Ressourcen zu verwalteten Knoten nutzen kann.
  • EDGE-NETZWERKUMGEBUNGEN
  • Edge-Computing bezieht sich auf allgemeiner Ebene auf die Implementierung, Koordination und Verwendung von Computing und Ressourcen an Orten näher am „Edge“ („Rand“) oder an einer Sammlung von „Edges“ des Netzwerks. Zweck dieser Anordnung ist es, die Gesamtkosten der Eigentümerschaft zu verbessern, Anwendungs- und Netzwerklatenz zu reduzieren, Netzwerk-Backhaul-Verkehr und assoziierten Energieverbrauch zu reduzieren, Dienstfähigkeiten zu verbessern und die Einhaltung von Sicherheits- oder Datenschutzvoraussetzungen (insbesondere im Vergleich zu herkömmlichem Cloud-Computing) zu verbessern. Komponenten, die Edge-Rechenoperationen durchführen können („Edge-Knoten“), können sich an jedem Ort befinden, der von der Systemarchitektur oder dem Ad-hoc-Dienst benötigt wird (z. B. in einem Hochleistungs-Rechendatenzentrum oder einer Hochleistungs-Cloud-Installation; einem designierten Edge-Knoten-Server, einem Unternehmensserver, einem Straßenrandserver, einer Telekommunikationszentrale; oder einer lokalen oder Peer-am-Edge-Vorrichtung, die mit zu verbrauchenden Edge-Diensten versorgt wird).
  • Anwendungen, die für Edge-Computing angepasst wurden, beinhalten unter anderem Virtualisierung traditioneller Netzwerkfunktionen (z. B. um Telekommunikations- oder Internetdienste zu betreiben) und die Einführung von Merkmalen und Diensten der nächsten Generation (um z. B. 5G-Netzdienste zu unterstützen). Verwendungsfälle, die von denen erwartet wird, dass sie Edge-Computing umfangreich nutzen werden, beinhalten verbundene selbstfahrende Autos, Überwachung, Internet-der-Dinge(IoT)-Vorrichtungsdatenanalytik, Videocodierung und -analytik, standortbewusste Dienste, Vorrichtungserfassung in Smart-Städten, unter vielen anderen netzwerk- und rechenintensiven Diensten.
  • Edge-Computing kann bei einigen Szenarien einen Cloud-ähnlichen verteilten Dienst anbieten oder hosten, um Orchestrierung und Verwaltung für Anwendungen und koordinierte Dienstinstanzen unter vielen Arten von Speicherungs- und Rechenressourcen anzubieten. Es wird auch erwartet, dass Edge-Computing eng mit existierenden Verwendungsfällen und Technologie integriert ist, die für IoT- und Fog-/verteilte Networking-Konfigurationen entwickelt wurden, da Endpunktvorrichtungen, Clients und Gateways versuchen, auf Netzwerkressourcen und Anwendungen an Orten zuzugreifen, die näher am Edge (Rand) des Netzwerks liegen.
  • Die folgenden Ausführungsformen betreffen allgemein Datenverarbeitungs-, Dienstverwaltungs-, Ressourcenzuweisungs-, Rechenverwaltungs-, Netzwerkkommunikations-, Anwendungspartionierungs- und Kommunikationssystemimplementierungen und insbesondere Techniken und Konfigurationen zum Anpassen verschiedener Edge-Rechenvorrichtungen und Entitäten, um mehrere Entitäten (z. B. mehrere Mandanten, Benutzer, Stakeholders, Dienstinstanzen, Anwendungen usw.) in einer verteilten Edge-Rechenumgebung dynamisch zu unterstützen.
  • In der folgenden Beschreibung werden Verfahren, Konfigurationen und verwandte Einrichtungen für verschiedene Verbesserungen der Konfiguration und funktionalen Fähigkeiten einer Edge-Rechenarchitektur und eines implementierenden Edge-Rechensystems offenbart. Diese Verbesserungen können einer Vielfalt von Verwendungsfällen zugute kommen, insbesondere solchen, die mehrere Stakeholders des Edge-Rechensystems involvieren - sei es in der Form mehrerer Benutzer eines Systems, mehrerer Mandanten auf einem System, mehrerer Vorrichtungen oder Benutzergeräte, die mit einem System interagieren, mehrerer Dienste, die von einem System angeboten werden, mehrerer Ressourcen, die innerhalb eines Systems verfügbar sind oder verwaltet werden, mehrerer Formen von Netzwerkzugriff, die für ein System offengelegt werden, mehrerer Betriebsorte für ein System und dergleichen. Solche mehrdimensionalen Aspekte und Betrachtungen werden hierin allgemein als „Multi-Entitäts“-Beschränkungen bezeichnet, mit spezifischer Besprechung von Ressourcen, die in Multi-Mandanten- und Multi-Dienst-Edge-Rechenkonfigurationen verwaltet oder orchestriert werden.
  • Mit den unten beschriebenen veranschaulichenden Edge-Networking-Systemen werden Rechen- und Speicherungsressourcen näher an den Rand des Netzwerks bewegt (z. B. näher an die Clients, Endpunktvorrichtungen oder „Dinge“). Durch das Bewegen der Rechen- und Speicherungsressourcen näher an die Vorrichtung, die die Daten produziert oder verwendet, können verschiedene Latenz-, Konformitäts- und/oder Geld- oder Ressourcenkostenbeschränkungen relativ zu einem standardmäßigen vernetzten (z. B. Cloud-Computing) System erreichbar sein. Dazu können sich in manchen Beispielen Pools von Rechen-, Speicher- und/oder Speicherungsressourcen in lokalen Servern, Routern und/oder anderen Netzwerkgeräten befinden oder anderweitig damit ausgestattet sein. Solche lokalen Ressourcen erleichtern die Erfüllung von an das System gestellten Einschränkungen. Die lokalen Rechen- und Speicherungsressourcen ermöglichen zum Beispiel, dass ein Edge-System Berechnungen in Echtzeit oder nahezu Echtzeit durchführt, was in Benutzerfällen mit niedriger Latenz, wie etwa autonomem Fahren, Videoüberwachung und Verbrauch mobiler Medien, berücksichtigt werden kann. Zusätzlich werden diese Ressourcen von einer Dienstverwaltung in einem Edge-System profitieren, das die Fähigkeit bereitstellt, lokale SLAs zu skalieren und zu erreichen, abgestufte Dienstvoraussetzungen zu verwalten und lokale Merkmale und Funktionen auf einer temporären oder permanenten Basis zu ermöglichen.
  • Ein veranschaulichendes Edge-Rechensystem kann verschiedene Dienste unterstützen und/oder Endpunktvorrichtungen (z. B. Client-Benutzergeräte (UEs)) bereitstellen, die jeweils unterschiedliche Voraussetzungen oder Einschränkungen aufweisen können. Zum Beispiel können manche Dienste Prioritäts- oder Dienstgüte(QoS)-Einschränkungen (z. B. können Verkehrsdaten für autonome Fahrzeuge eine höhere Priorität als Temperatursensordaten aufweisen), Zuverlässigkeit und Widerstandsfähigkeit (z. B. können Verkehrsdaten missionskritische Zuverlässigkeit erfordern, während Temperaturdaten eine gewisse Fehlervarianz zugelassen werden kann) sowie Leistungs-, Kühlungs- und Formfaktoreinschränkungen aufweisen. Diese und andere technische Einschränkungen können erhebliche Komplexität und technische Herausforderungen bieten, wenn sie in der Multi-Stakeholder-Einstellung angewendet werden.
  • Mit den Vorteilen von Edge-Computing ergeben sich jedoch die folgenden Kaveaten. Die am Edge befindlichen Vorrichtungen sind häufig ressourcenbeschränkt, und deshalb besteht Druck auf die Nutzung von Edge-Ressourcen. Typischerweise wird dies durch das Pooling von Speicher- und Speicherungsressourcen zur Verwendung durch mehrere Benutzer (Mandanten) und Vorrichtungen adressiert. Der Edge kann leistungs- und kühlungseingeschränkt sein, sodass der Leistungsverbrauch durch die Anwendungen berücksichtigt werden muss, die die meiste Leistung verbrauchen. Es kann inhärente Leistung-Performanz-Kompromisse in diesen gepoolten Speicherressourcen geben, da viele von ihnen wahrscheinlich neu entwickelte Speichertechnologien verwenden, bei denen höhere Leistung eine größere Speicherbandbreite benötigt. Gleichermaßen sind verbesserte Sicherheit von Hardware und vertrauenswürdigen Root-of-Trust-Funktionen auch erforderlich, da Edge-Orte unbemannt sein können und sogar zugelassenen Zugriff benötigen können (z. B. wenn sie an einem Drittparteistandort untergebracht sind). Solche Probleme werden in der Edge-Cloud in einem Multi-Mandanten-, Multi-Eigentümer- oder Mehrfachzugriff-Umfeld vergrößert, in dem Dienste und Anwendungen von vielen Benutzern angefordert werden, insbesondere da die Netzwerknutzung dynamisch schwankt und sich die Zusammensetzung der mehreren Stakeholders, Verwendungsfälle und Dienste ändert.
  • 10 ist ein Blockdiagramm 1000, das einen Überblick über eine Konfiguration für Edge-Computing zeigt, das eine Verarbeitungsschicht beinhaltet, die in vielen der folgenden Beispiele als eine „Edge-Cloud“ bezeichnet wird. Wie gezeigt, ist die Edge-Cloud 1010 an einem Edge-Ort colokalisiert, wie etwa an einem Zugangspunkt oder einer Basisstation 1040, einem lokalen Verarbeitungshub 1050 oder einer Zentrale 1020, und kann somit mehrere Entitäten, Vorrichtungen und Geräteinstanzen beinhalten. Die Edge-Cloud 1010 befindet sich viel näher an den Endpunkt(Verbraucher und Erzeuger)-Datenquellen 1060 (z. B. autonome Fahrzeuge 1061, Benutzergeräte 1062, Unternehmens- und Industrieausrüstung 1063, Videoaufnahmevorrichtungen 1064, Drohnen 1065, Smart-Städte- und -Gebäude-Vorrichtungen 1066, Sensoren und IoT-Vorrichtungen 1067 usw.) als das Cloud-Datenzentrum 1030. Rechen-, Speicher- und Speicherungsressourcen, die an den Edges in der Edge-Cloud 1010 angeboten werden, sind kritisch für das Bereitstellen von Antwortzeiten mit ultraniedriger Latenz für Dienste und Funktionen, die durch die Endpunktdatenquellen 1060 verwendet werden, sowie für das Reduzieren von Netzwerk-Backhaul-Verkehr von der Edge-Cloud 1010 zu dem Cloud-Datenzentrum 1030, wodurch Energieverbrauch und Gesamtnetzwerknutzungen unter anderen Vorteilen verbessert werden.
  • Rechen-, Speicher- und Speicherungsressourcen sind knappe Ressourcen und nehmen im Allgemeinen in Abhängigkeit von dem Edge-Ort ab (wobei z. B. weniger Verarbeitungsressourcen an Verbraucherendpunktvorrichtungen verfügbar sind als an einer Basisstation als an einer Zentrale). Je näher sich der Edge-Ort jedoch am Endpunkt (z. B. Benutzergerät (UE)) befindet, desto mehr sind Raum und Leistung häufig eingeschränkt. Somit versucht Edge-Computing die Menge an Ressourcen, die für Netzwerkdienste benötigt werden, durch die Verteilung von mehr Ressourcen, die sich sowohl geographisch als auch in der Netzwerkzugriffszeit näher befinden, zu reduzieren. Auf diese Weise versucht Edge-Computing, die Rechenressourcen gegebenenfalls zu den Arbeitslastdaten zu bringen oder die Arbeitslastdaten zu den Rechenressourcen zu bringen.
  • Das Folgende beschreibt Aspekte einer Edge-Cloud-Architektur, die mehrere potenzielle Einsätze abdeckt und Einschränkungen adressiert, die manche Netzbetreiber oder Dienstanbieter in ihren eigenen Infrastrukturen aufweisen können. Diese beinhalten Variation von Konfigurationen basierend auf dem Edge-Ort (weil Edges auf einer Basisstationsebene zum Beispiel mehr eingeschränkte Leistungsfähigkeit und Fähigkeiten in einem Multi-Mandanten-Szenario aufweisen können); Konfigurationen basierend auf der Art von Berechnung, Speicher, Speicherung, Fabric, Beschleunigung oder ähnlichen Ressourcen, die Edge-Orten, Stufen von Orten oder Gruppen von Orten zur Verfügung stehen; die Dienst-, Sicherheits- und Verwaltungs- und Orchestrierungsfähigkeiten; und zugehörige Ziele zum Erreichen der Nutzbarkeit und Leistungsfähigkeit von Enddiensten. Diese Einsätze können eine Verarbeitung in Netzwerkschichten bewerkstelligen, die in Abhängigkeit von Latenz-, Entfernungs- und Timing-Charakteristiken als „Near-Edge“-, „Close-Edge“-, „Local-Edge“-, „Middle-Edge“- oder „Far-Edge“-Schichten betrachtet werden können.
  • Edge-Computing ist ein sich entwickelndes Paradigma, bei dem Computing an oder näher an dem „Edge“ („Rand“) eines Netzwerks durchgeführt wird, typischerweise durch die Verwendung einer geeignet angeordneten Rechenplattform (z. B. x86, ARM, Nvidia oder eine andere CPU/GPU-basierte Rechenhardwarearchitektur), die an Basisstationen, Gateways, Netzwerkroutern oder anderen Vorrichtungen implementiert wird, die sich viel näher an Endpunktvorrichtungen befinden, die die Daten produzieren und verbrauchen. Edge-Gateway-Server können zum Beispiel mit Pools von Speicher- und Speicherungsressourcen ausgestattet sein, um eine Berechnung in Echtzeit für Verwendungsfälle mit niedriger Latenz (z. B. autonomes Fahren oder Videoüberwachung) für verbundene Client-Vorrichtungen durchzuführen. Oder als ein Beispiel können Basisstationen mit Rechen- und Beschleunigungsressourcen erweitert werden, um Dienstarbeitslasten für verbundene Benutzergeräte direkt zu verarbeiten, ohne ferner Daten über Backhaul-Netzwerke zu kommunizieren. Oder als ein anderes Beispiel kann Zentralen-Netzwerkverwaltungshardware durch standardisierte Rechenhardware ersetzt werden, die virtualisierte Netzwerkfunktionen durchführt und Rechenressourcen für die Ausführung von Diensten und Verbraucherfunktionen für verbundene Vorrichtungen anbietet. Alternativ kann auch eine Anordnung mit Hardware kombiniert mit virtualisierten Funktionen, allgemein als eine Hybrid-Anordnung bezeichnet, erfolgreich implementiert werden. Innerhalb von Edge-Rechennetzwerken kann es Szenarien in Diensten geben, in denen die Rechenressource zu den Daten „verschoben“ wird, sowie Szenarien geben, in denen die Daten zu der Rechenressource „verschoben“ werden. Oder als ein Beispiel können Basisstationsberechnungs-, Beschleunigungs- und Netzwerkressourcen Dienste bereitstellen, um die Arbeitslastanforderungen nach Bedarf durch Aktivieren ruhender Kapazität (Subskription, Kapazität nach Bedarf) zu skalieren, um Eckfälle, Notfälle zu verwalten oder Langlebigkeit für eingesetzte Ressourcen über einen wesentlich längeren implementierten Lebenszyklus bereitzustellen.
  • 11 veranschaulicht Betriebsschichten unter Endpunkten, einer Edge-Cloud und Cloud-Rechenumgebungen. Insbesondere stellt 11 Beispiele für Rechenverwendungsfälle 1105 dar, die die Edge-Cloud 1010 unter mehreren veranschaulichenden Schichten des Netzwerk-Computing nutzen. Die Schichten beginnen bei einer Endpunkt(Vorrichtungen und Dinge)-Schicht 1100, die auf die Edge-Cloud 1010 zugreift, um Datenerzeugungs-, Analyse- und Datenverbrauchsaktivitäten durchzuführen. Die Edge-Cloud 1010 kann mehrere Netzwerkschichten überspannen, wie etwa eine Edge-Vorrichtungsschicht 1110 mit Gateways, Vor-Ort-Servern oder Netzwerkgeräten (Knoten 1115), die sich in physisch nahen Edge-Systemen befinden; eine Netzwerkzugangsschicht 1120, umfassend Basisstationen, Funkverarbeitungseinheiten, Netzwerkhubs, regionale Datenzentren (DZ) oder lokale Netzwerkgeräte (Geräte 1125); und beliebige Geräte, Vorrichtungen oder Knoten, die sich dazwischen befinden (in Schicht 1112, nicht ausführlich veranschaulicht). Die Netzwerkkommunikationen innerhalb der Edge-Cloud 1010 und inmitten der verschiedenen Schichten können über eine beliebige Anzahl von drahtgebundenen oder drahtlosen Medien stattfinden, einschließlich über Konnektivitätsarchitekturen und Technologien, die nicht dargestellt sind.
  • Beispiele für Latenz, die aus Netzwerkkommunikationsdistanz- und Verarbeitungszeitbeschränkungen resultieren, können von weniger als einer Millisekunde (ms), wenn innerhalb der Endpunktschicht 1100, unter 5 ms an der Edge-Vorrichtungsschicht 1110, sogar zwischen 10 und 40 ms, wenn mit Knoten an der Netzwerkzugangsschicht 1120 kommuniziert, reichen. Jenseits der Edge-Cloud 1010 befinden sich Schichten des Kernnetzwerks 1130 und des Cloud-Datenzentrums 1140, jeweils mit zunehmender Latenz (z. B. zwischen 50-60 ms an der Kernnetzwerkschicht 1130 bis 100 oder mehr ms an der Cloud-Datenzentrumsschicht). Infolgedessen werden Operationen an einem Kernnetzwerk-Datenzentrum 1135 oder einem Cloud-Datenzentrum 1145 mit Latenzen von mindestens 50 bis 100 ms oder mehr nicht in der Lage sein, viele zeitkritische Funktionen der Verwendungsfälle 1105 zu realisieren. Jeder dieser Latenzwerte wird zu Veranschaulichungs- und Kontrastzwecken bereitgestellt; es versteht sich, dass die Verwendung anderer Zugangsnetzwerkmedien und -technologien die Latenzen weiter reduzieren kann. Bei manchen Beispielen können jeweilige Teile des Netzwerks relativ zu einer Netzwerkquelle und einem Netzwerkziel als „Close-Edge“-, „Local-Edge“-, „Near-Edge“-, „Middle-Edge“- oder „Far-Edge“-Schichten kategorisiert sein. Beispielsweise kann aus der Perspektive des Kernnetzwerk-Datenzentrums 1135 oder eines Cloud-Datenzentrums 1145 ein Zentralen- oder Inhaltsdatennetzwerk als innerhalb einer „Near-Edge“-Schicht („near“ (nahe) an der Cloud, mit hohen Latenzwerten, wenn mit den Vorrichtungen und Endpunkten der Verwendungsfälle 1105 kommuniziert wird) befindlich betrachtet werden, wohingegen ein Zugangspunkt, eine Basisstation, ein Vor-Ort-Server oder ein Netzwerk-Gateway als innerhalb einer „Far-Edge“-Schicht („far“ (fern) von der Cloud entfernt, mit niedrigen Latenzwerten, wenn mit den Vorrichtungen und Endpunkten der Verwendungsfälle 1105 kommuniziert wird) befindlich betrachtet werden können. Es versteht sich, dass andere Kategorisierungen einer speziellen Netzwerkschicht als ein „Close“-, „Local“-, „Near“-, „Middle“- oder „Far“-Edge bildend auf Latenz, Distanz, Anzahl von Netzwerksprüngen oder anderen messbaren Charakteristiken basieren können, wie sie von einer Quelle in einer beliebigen der Netzwerkschichten 1100 bis 1140 gemessen werden.
  • Die diversen Nutzungsfälle 1105 können aufgrund mehrerer Dienste, die die Edge-Cloud nutzen, auf Ressourcen unter Nutzungsdruck von Eingangsströmen zugreifen. Um Ergebnisse mit niedriger Latenz zu erzielen, gleichen die Dienste, die innerhalb der Edge-Cloud 1010 ausgeführt werden, variierende Voraussetzungen in Bezug auf Folgendes aus: (a) Priorität (Durchsatz oder Latenz) und Dienstgüte (QoS: Quality of Service) (z. B. kann Verkehr für ein autonomes Auto eine höhere Priorität als ein Temperatursensor hinsichtlich der Antwortzeitvoraussetzung aufweisen; oder eine Performanzempfindlichkeit/-engstelle kann an einer Rechen-/Beschleuniger-, Speicher-, Speicherungs- oder Netzwerkressource in Abhängigkeit von der Anwendung existieren); (b) Zuverlässigkeit und Widerstandsfähigkeit (z. B. müssen manche Eingangsströme bearbeitet und der Verkehr mit missionskritischer Zuverlässigkeit geleitet werden, wohingegen manche anderen Eingangsströme je nach Anwendung einen gelegentlichen Ausfall tolerieren können); und (c) physikalische Beschränkungen (z. B. Leistung, Kühlung und Formfaktor).
  • Die Ende-zu-Ende-Dienstansicht für diese Anwendungsfälle beinhaltet das Konzept eines Dienstablaufs und ist mit einer Transaktion assoziiert. Die Transaktion gibt die Gesamtdienstvoraussetzung für die Entität an, die den Dienst verbraucht, sowie die assoziierten Dienste für die Ressourcen, Arbeitslasten, Arbeitsabläufe und Unternehmensfunktions- und Unternehmensebenenvoraussetzungen. Die Dienste, die mit den beschriebenen „Begriffen“ ausgeführt werden, können in jeder Schicht auf eine Weise verwaltet werden, dass Echtzeit- und Laufzeitvertragskonformität für die Transaktion während des Lebenszyklus des Dienstes sichergestellt wird. Wenn einer Komponente in der Transaktion ihr vereinbartes SLA fehlt, kann das System als Ganzes (Komponenten in der Transaktion) die Fähigkeit bereitstellen, (1) die Auswirkung der SLA-Verletzung zu verstehen und (2) andere Komponenten in dem System zu erweitern, um das gesamte Transaktions-SLA wiederaufzunehmen, und (3) Schritte zu implementieren, um Abhilfe zu schaffen.
  • Dementsprechend kann unter Berücksichtigung dieser Variationen und Dienstleistungsmerkmale Edge-Computing innerhalb der Edge-Cloud 1010 die Fähigkeit bereitstellen, mehrere Anwendungen der Verwendungsfälle 1105 (z. B. Objektverfolgung, Videoüberwachung, verbundene Autos usw.) in Echtzeit oder nahezu Echtzeit zu versorgen und auf diese zu reagieren und Voraussetzungen für ultraniedrige Latenz für diese mehreren Anwendungen zu erfüllen. Diese Vorteile ermöglichen eine ganz neue Klasse von Anwendungen (VNFs (Virtual Network Functions), FaaS (Function as a Service), Edge as a Service (EaaS), Standardprozesse usw.), die herkömmliches Cloud-Computing aufgrund von Latenz oder anderen Einschränkungen nicht nutzen können.
  • Mit den Vorteilen von Edge-Computing ergeben sich jedoch die folgenden Kaveaten. Die am Edge befindlichen Vorrichtungen sind häufig ressourcenbeschränkt, und deshalb besteht Druck auf die Nutzung von Edge-Ressourcen. Typischerweise wird dies durch das Pooling von Speicher- und Speicherungsressourcen zur Verwendung durch mehrere Benutzer (Mandanten) und Vorrichtungen adressiert. Der Edge kann leistungs- und kühlungseingeschränkt sein, sodass der Leistungsverbrauch durch die Anwendungen berücksichtigt werden muss, die die meiste Leistung verbrauchen. Es kann inhärente Leistung-Performanz-Kompromisse in diesen gepoolten Speicherressourcen geben, da viele von ihnen wahrscheinlich neu entwickelte Speichertechnologien verwenden, bei denen höhere Leistung eine größere Speicherbandbreite benötigt. Gleichermaßen sind verbesserte Sicherheit von Hardware und vertrauenswürdigen Root-of-Trust-Funktionen auch erforderlich, da Edge-Orte unbemannt sein können und sogar zugelassenen Zugriff benötigen können (z. B. wenn sie an einem Drittparteistandort untergebracht sind). Solche Probleme werden in der Edge-Cloud 1010 in einem Multi-Mandanten-, Multi-Eigentümer- oder Multi-Zugriff-Umfeld vergrößert, in dem Dienste und Anwendungen von vielen Benutzern angefordert werden, insbesondere da die Netzwerknutzung dynamisch schwankt und sich die Zusammensetzung der mehreren Stakeholder, Verwendungsfälle und Dienste ändert.
  • Auf einer generischeren Ebene kann ein Edge-Rechensystem so beschrieben werden, dass es eine beliebige Anzahl von Einsätzen an den zuvor besprochenen Schichten umfasst, die in der Edge-Cloud 1010 arbeiten (Netzwerkschichten 1100-1140), die eine Koordination von Client- und verteilten Rechenvorrichtungen bereitstellen. Ein oder mehrere Edge-Gateway-Knoten, ein oder mehrere Edge-Aggregationsknoten und ein oder mehrere Kerndatenzentren können über Schichten des Netzwerks verteilt sein, um eine Implementierung des Edge-Rechensystems durch oder im Auftrag eines Telekommunikationsdienstanbieters („telco“ oder „TSP“), Internet-der-Dinge-Dienstanbieters, Cloud-Dienstanbieters (CSP), Unternehmens entität oder einer beliebigen anderen Anzahl von Entitäten bereitzustellen. Verschiedene Implementierungen und Konfigurationen des Edge-Rechensystems können dynamisch bereitgestellt werden, wie zum Beispiel, bei Orchestrierung, um Dienstziele zu erfüllen.
  • Im Einklang mit den hierin bereitgestellten Beispielen kann ein Client-Rechenknoten als eine beliebige Art von Endpunktkomponente, -vorrichtung, -gerät oder anderem umgesetzt sein, die dazu in der Lage sind, als ein Produzent oder Verbraucher von Daten zu kommunizieren. Ferner bedeutet die Bezeichnung „Knoten“ oder „Vorrichtung“, wie es in dem Edge-Rechensystem verwendet wird, nicht notwendigerweise, dass ein solcher Knoten oder eine solche Vorrichtung in einer Client- oder Agenten-/Minion-/Folgerrolle arbeitet; vielmehr beziehen sich beliebige der Knoten oder Vorrichtungen in dem Edge-Rechensystem auf einzelne Entitäten, Knoten oder Untersysteme, die diskrete oder verbundene Hardware- oder Softwarekonfigurationen beinhalten, um die Edge-Cloud 1010 zu ermöglichen oder zu verwenden.
  • Von daher wird die Edge-Cloud 1010 aus Netzwerkkomponenten und Funktionsmerkmalen gebildet, die durch und innerhalb von Edge-Gateway-Knoten, Edge-Aggregationsknoten oder anderen Edge-Rechenknoten unter den Netzwerkschichten 1110-1130 betrieben werden. Die Edge-Cloud 1010 kann somit als eine beliebige Art von Netzwerk umgesetzt sein, das Edge-Computing- und/oder Speicherungsressourcen bereitstellt, die sich in der Nähe von Funkzugangsnetzwerk(RAN)-fähigen Endpunktvorrichtungen (z. B. mobilen Rechenvorrichtungen, IoT-Vorrichtungen, Smart-Vorrichtungen usw.) befinden, die hierin besprochen werden. Mit anderen Worten kann die Edge-Cloud 1010 als ein „Edge“ angesehen werden, der die Endpunktvorrichtungen und traditionelle Netzwerkzugangspunkte, die als ein Eingangspunkt in Dienstanbieter-Kernnetzwerke dienen, verbindet, einschließlich Mobilträgernetzen (z. B. GSM(Global System for Mobile Communications)-Netze, LTE(Long-Term Evolution)-Netze, 5G/6G-Netze usw.), während auch Speicherungs- und/oder Rechenfähigkeiten bereitgestellt werden. Andere Arten und Formen von Netzwerkzugang (z. B. WiFi, Long-Range-Wireless, drahtgebundene Netze einschließlich optischer Netze) können auch anstelle von oder in Kombination mit solchen 3GPP-Trägernetzen genutzt werden.
  • Die Netzwerkkomponenten der Edge-Cloud 1010 können Server, Multi-Mandanten-Server, Geräterechenvorrichtungen und/oder eine beliebige andere Art von Rechenvorrichtungen sein. Zum Beispiel kann die Edge-Cloud 1010 eine Geräterechenvorrichtung beinhalten, die eine eigenständige elektronische Vorrichtung einschließlich einer Einhausung, eines Gehäuses, eines Behälters oder einer Hülle ist. Unter Umständen kann die Einhausung für Portabilität dimensioniert sein, sodass es von einem Menschen getragen und/oder versandt werden kann. Alternativ kann es sich beispielsweise um ein kleineres Modul handeln, das zum Einbau in ein Fahrzeug geeignet ist. Beispielhafte Einhausungen können Materialien beinhalten, die eine oder mehrere Außenflächen bilden, die Inhalte des Geräts teilweise oder vollständig schützen, wobei der Schutz Wetterschutz, Schutz in gefährlichen Umgebungen (z. B. EMI, Vibration, extreme Temperaturen) beinhalten kann und/oder Eintauchbarkeit ermöglichen kann. Beispielhafte Einhausungen können Leistungsschaltungsanordnungen beinhalten, um Leistung für stationäre und/oder tragbare Implementierungen bereitzustellen, wie etwa AC-Leistungseingänge, DC-Leistungseingänge, AC/DC- oder DC/AC-Wandler, Leistungsregler, Transformatoren, Ladeschaltungsanordnungen, Batterien, drahtgebundene Eingänge und/oder drahtlose Leistungseingänge. Kleinere modulare Ausführungsformen können auch eine erweiterbare oder eingebettete Antennenanordnung für Drahtloskommunikation beinhalten. Beispielhafte Einhausungen und/oder Oberflächen davon können Befestigungshardware beinhalten oder mit dieser verbunden sein, um eine Befestigung an Strukturen, wie etwa Gebäuden, Telekommunikationsstrukturen (z. B. Masten, Antennenstrukturen usw.) und/oder Racks (z. B. Server-Racks, Blade-Mounts usw.), zu ermöglichen. Beispielhafte Einhausungen und/oder Oberflächen davon können einen oder mehrere Sensoren (z. B. Temperatursensoren, Vibrationssensoren, Lichtsensoren, Akustiksensoren, kapazitive Sensoren, Näherungssensoren usw.) unterstützen. Ein oder mehrere solcher Sensoren können in der Oberfläche enthalten, von dieser getragen oder anderweitig darin eingebettet und/oder an der Oberfläche des Geräts befestigt sein. Beispielhafte Einhausungen und/oder Oberflächen davon können mechanische Konnektivität unterstützen, wie etwa Antriebshardware (z. B. Räder, Propeller usw.) und/oder Gelenkhardware (z. B. Roboterarme, schwenkbare Anhänge usw.). Unter manchen Umständen können die Sensoren eine beliebige Art von Eingabevorrichtungen beinhalten, wie etwa Benutzerschnittstellenhardware (z. B. Tasten, Schalter, Wählscheiben, Schieber usw.). Unter manchen Umständen beinhalten beispielhafte Einhausungen Ausgabeeinrichtungen, die in diesen enthalten, durch diese getragen, in diese eingebettet und/oder an diesen angebracht sind. Ausgabevorrichtungen können Anzeigen, Touchscreens, Leuchten, LEDs, Lautsprecher, E/A-Ports (z. B. USB) usw. beinhalten. Unter manchen Umständen sind Edge-Vorrichtungen Vorrichtungen, die in dem Netzwerk für einen spezifischen Zweck vorhanden sind (z. B. eine Ampel), können aber Verarbeitungs- und/oder andere Kapazitäten aufweisen, die für andere Zwecke genutzt werden können. Solche Edge-Vorrichtungen können unabhängig von anderen vernetzten Vorrichtungen sein und können mit einer Einhausung ausgestattet sein, die einen Formfaktor aufweist, der für seinen primären Zweck geeignet ist; aber dennoch für andere Rechenaufgaben verfügbar ist, die ihre primäre Aufgabe nicht stören. Edge-Vorrichtungen beinhalten Internet-der-Dinge-Vorrichtungen. Die Geräterechenvorrichtung kann Hardware- und Softwarekomponenten beinhalten, um lokale Probleme, wie etwa Vorrichtungstemperatur, Vibration, Ressourcenausnutzung, Aktualisierungen, Leistungsprobleme, physische Sicherheit und Netzwerksicherheit usw., zu verwalten. Die Edge-Cloud 1010 kann auch einen oder mehrere Server und/oder einen oder mehrere Multi-Mandanten-Server beinhalten. Ein solcher Server kann ein Betriebssystem beinhalten und eine virtuelle Rechenumgebung implementieren. Eine virtuelle Rechenumgebung kann einen Hypervisor beinhalten, der eine oder mehrere virtuelle Maschinen, einen oder mehrere Container usw. verwaltet (z. B. erzeugt, einsetzt, zerstört usw.). Solche virtuellen Rechenumgebungen stellen eine Ausführungsumgebung bereit, in der eine oder mehrere Anwendungen und/oder andere Software, Code oder Skripte ausgeführt werden können, während sie von einer oder mehreren anderen Anwendungen, Software, Code oder Skripten isoliert sind.
  • 12 stellt verschiedene Client-Endpunkte 1210 (in der Form von Mobilvorrichtungen, Computern, autonomen Fahrzeugen, Unternehmensrechenanlagen, industriellen Verarbeitungsanlagen) dar, die Anforderungen und Antworten austauschen, die spezifisch für den Typ der Endpunktnetzwerkaggregation sind. Beispielsweise können Client-Endpunkte 1210 Netzwerkzugang über ein drahtgebundenes Breitbandnetzwerk erhalten, indem Anforderungen und Antworten 1222 durch ein Vor-Ort-Netzwerksystem 1232 ausgetauscht werden. Manche Client-Endpunkte 1210, wie etwa mobile Rechenvorrichtungen, können Netzwerkzugang über ein drahtloses Breitbandnetzwerk erhalten, indem Anforderungen und Antworten 1224 durch einen Zugangspunkt (z. B. Mobilfunkturm) 1234 ausgetauscht werden. Manche Client-Endpunkte 1210, wie etwa autonome Fahrzeuge, können Netzwerkzugang für Anforderungen und Antworten 1226 über ein drahtloses Fahrzeugnetzwerk durch ein Straßennetzwerksystem 1236 erhalten. Unabhängig von der Art des Netzwerkzugangs kann der TSP jedoch Aggregationspunkte 1242, 1244 innerhalb der Edge-Cloud 1010 einsetzen, um Verkehr und Anforderungen zu aggregieren. Somit kann der TSP innerhalb der Edge-Cloud 1010 verschiedene Rechen- und Speicherungsressourcen einsetzen, wie etwa bei Edge-Aggregationsknoten 1240, um angeforderten Inhalt bereitzustellen. Die Edge-Aggregationsknoten 1240 und andere Systeme der Edge-Cloud 1010 sind mit einer Cloud oder einem Datenzentrum 1260 verbunden, die/das ein Backhaul-Netzwerk 1250 verwendet, um Anforderungen mit höherer Latenz von einer Cloud/einem Datenzentrum für Websites, Anwendungen, Datenbankserver usw. zu erfüllen. Zusätzliche oder konsolidierte Instanzen der Edge-Aggregationsknoten 1240 und der Aggregationspunkte 1242, 1244, einschließlich jener, die auf einem einzigen Server-Framework eingesetzt werden, können auch innerhalb der Edge-Cloud 1010 oder anderer Bereiche der TSP-Infrastruktur vorhanden sein.
  • 13 stellt ein beispielhaftes Edge-Rechensystem 1300 zum Bereitstellen von Edge-Diensten und -Anwendungen an Multi-Stakeholder-Entitäten dar, wie unter einem oder mehreren Client-Rechenknoten 1302, einem oder mehreren Edge-Gateway-Knoten 1312, einem oder mehreren Edge-Aggregationsknoten 1322, einem oder mehreren Kerndatenzentren 1332 und einer globalen Netzwerk-Cloud 1342 verteilt, wie über Schichten des Netzwerks verteilt. Die Implementierung des Edge-Rechensystems 1300 kann bei einem oder im Auftrag eines Telekommunikationsdienstanbieters („Telco“ oder „TSP“), Internet-der-Dinge-Dienstanbieters, Cloud-Dienstanbieters (CSP), einer Unternehmens entität oder einer beliebigen anderen Anzahl von Entitäten bereitgestellt werden. Verschiedene Implementierungen und Konfigurationen des Systems 1300 können dynamisch bereitgestellt werden, wie etwa, wenn orchestriert, um Dienstziele zu erfüllen.
  • Zum Beispiel befinden sich die Client-Rechenknoten 1302 auf einer Endpunktschicht, während sich die Edge-Gateway-Knoten 1312 auf einer Edge-Vorrichtungsschicht (lokale Ebene) des Edge-Rechensystems 1300 befinden. Zusätzlich dazu befinden sich die Edge-Aggregationsknoten 1322 (und/oder Fog-Vorrichtungen 1324, falls mit oder unter einer Fog-Netzwerkkonfiguration 1326 angeordnet oder betrieben) auf einer Netzwerkzugangsschicht (einer Zwischenebene). Fog-Computing (oder „Fogging“) bezieht sich allgemein auf Erweiterungen des Cloud-Computing zum Edge eines Netzwerks eines Unternehmens oder auf die Fähigkeit, Transaktionen über die Cloud-/Edge-Landschaft hinweg zu verwalten, typischerweise in einem koordinierten verteilten oder Mehrknotennetzwerk. Manche Formen von Fog-Computing stellen den Einsatz von Rechen-, Speicherungs- und Networking-Diensten zwischen Endvorrichtungen und Cloud-Rechendatenzentren im Auftrag der Cloud-Rechenstandorte bereit. Manche Formen von Fog-Computing stellen auch die Fähigkeit bereit, die Arbeitslast/Arbeitsablaufebenendienste in Bezug auf die Gesamttransaktion zu verwalten, indem bestimmte Arbeitslasten basierend auf der Fähigkeit, die Gesamtdienstebenenvereinbarung zu erfüllen, an den Edge oder an die Cloud gepusht werden.
  • Fog-Computing in vielen Szenarien stellt eine dezentralisierte Architektur bereit und dient als eine Erweiterung des Cloud-Computing, indem mit einer oder mehreren Edge-Knotenvorrichtungen zusammenarbeitet wird, die subsequente Menge an lokalisierter Steuerung, Konfiguration und Verwaltung und viel mehr für Endvorrichtungen bereitstellt wird. Des Weiteren stellt Fog-Computing die Fähigkeit für Edge-Ressourcen bereit, ähnliche Ressourcen zu identifizieren und zusammenzuarbeiten, um eine Edge-Local-Cloud zu erzeugen, die allein oder in Verbindung mit Cloud-Computing verwendet werden kann, um rechen-, speicherungs- oder konnektivitätsbezogene Dienste durchzuführen. Fog-Computing kann es auch den Cloud-basierten Diensten ermöglichen, ihre Reichweite auf den Edge eines Netzwerks von Vorrichtungen zu erweitern, um lokale und schnellere Zugänglichkeit zu Edge-Vorrichtungen anzubieten. Somit stellen manche Formen von Fog-Computing Operationen bereit, die mit Edge-Computing, wie hierin besprochen, konsistent sind; die hierin besprochenen Edge-Computing-Aspekte sind auch auf Fog-Netzwerke, Fogging und Fog-Konfigurationen anwendbar. Ferner können Aspekte der hierin besprochenen Edge-Rechensysteme als ein Fog konfiguriert sein oder Aspekte eines Fog können in eine Edge-Rechenarchitektur integriert sein.
  • Das Kerndatenzentrum 1332 befindet sich auf einer Kernnetzwerkschicht (einer regionalen oder geographisch zentralen Ebene), während sich die globale Netzwerk-Cloud 1342 auf einer Cloud-Datenzentrumschicht 240 (einer nationalen oder weltweiten Schicht) befindet. Die Verwendung von „Kern“ ist als Begriff für einen zentralisierten Netzwerkort - tiefer im Netzwerk - bereitgestellt, auf den mehrere Edge-Knoten oder Komponenten zugreifen können; ein „Kern“ bezeichnet jedoch nicht notwendigerweise das „Zentrum“ oder den tiefsten Ort des Netzwerks. Dementsprechend kann sich das Kerndatenzentrum 1332 innerhalb, an oder nahe der Edge-Cloud 1300 befinden. Obwohl eine veranschaulichende Anzahl von Client-Rechenknoten 1302, Edge-Gateway-Knoten 1312, Edge-Aggregationsknoten 1322, Edge-Kerndatenzentren 1332, globalen Netzwerk-Clouds 1342 in 13 gezeigt ist, versteht es sich, dass das Edge-Rechensystem 1300 zusätzliche Vorrichtungen oder Systeme auf jeder Schicht beinhalten kann. Vorrichtungen auf einer beliebigen Schicht können als Peer-Knoten zueinander konfiguriert sein und dementsprechend kollaborativ agieren, um Dienstziele zu erfüllen.
  • Im Einklang mit den hierin bereitgestellten Beispielen kann ein Client-Rechenknoten 1302 als eine beliebige Art von Endpunktkomponente, -vorrichtung, -gerät oder anderem umgesetzt sein, die dazu in der Lage sind, als ein Produzent oder Verbraucher von Daten zu kommunizieren. Ferner bedeutet die Bezeichnung „Knoten“ oder „Vorrichtung“, wie in dem Edge-Rechensystem 1300 verwendet, nicht notwendigerweise, dass ein solcher Knoten oder eine solche Vorrichtung in einer Client- oder Agenten-/Untergebenen-/Folgerrolle arbeitet; vielmehr beziehen sich beliebige der Knoten oder Vorrichtungen in dem Edge-Rechensystem 1300 auf einzelne Entitäten, Knoten oder Subsysteme, die diskrete oder verbundene Hardware- oder Softwarekonfigurationen beinhalten, um die Edge-Cloud 1300 zu ermöglichen oder zu verwenden.
  • Von daher wird die Edge-Cloud 1300 aus Netzwerkkomponenten und Funktionsmerkmalen gebildet, die durch und innerhalb der Edge-Gateway-Knoten 1312 und der Edge-Aggregationsknoten 1322 betrieben werden. Die Edge-Cloud 1300 kann als eine beliebige Art von Netzwerk umgesetzt sein, das Edge-Computing- und/oder Speicherungsressourcen bereitstellt, die sich in der Nähe von Funkzugangsnetzwerk(RAN)-fähigen Endpunktvorrichtungen (z. B. Mobilrechenvorrichtungen, IoT-Vorrichtungen, Smart-Vorrichtungen usw.) befinden, die in 13 als die Client-Rechenknoten 1302 gezeigt sind. Mit anderen Worten kann man sich die Edge-Cloud 1300 als ein „Edge“ vorstellen, das die Endpunktvorrichtungen und traditionelle Netzwerkzugangspunkte verbindet, das als ein Eintrittspunkt in Dienstanbieter-Kernnetzwerke, einschließlich Mobilträgernetzwerken (z. B. Global System for Mobile Communications-Netzwerken (GSM-Netzwerken), Long-Term Evolution-Netzwerken (LTE-Netzwerken), 5G/6G-Netzwerken usw.) dient, während auch Speicherungs- und/oder Rechenfähigkeiten bereitgestellt werden. Andere Arten und Formen von Netzwerkzugang (z. B. WiFi, Long-Range-Wireless, drahtgebundene Netze einschließlich optischer Netze) können auch anstelle von oder in Kombination mit solchen 3GPP-Trägernetzen genutzt werden.
  • Bei manchen Beispielen kann die Edge-Cloud 1300 einen Teil einer Fog-Networking-Konfiguration 1326 (z. B. ein Netzwerk von Fog-Vorrichtungen 1324, nicht im Detail gezeigt) bilden oder anderweitig einen Eintrittspunkt in oder über diese bereitstellen, die als eine horizontale und verteilte Architektur auf Systemebene umgesetzt sein kann, die Ressourcen und Dienste verteilt, um eine spezifische Funktion durchzuführen. Beispielsweise kann ein koordiniertes und verteiltes Netzwerk von Fog-Vorrichtungen 1324 Rechen-, Speicherungs-, Steuerungs- oder Networking-Aspekte im Kontext einer IoT-Systemanordnung durchführen. Andere vernetzte, aggregierte und verteilte Funktionen können in der Edge-Cloud 1300 zwischen dem Kerndatenzentrum 1332 und den Client-Endpunkten (z. B.Client-Rechenknoten 1302) existieren. Einige davon werden in den folgenden Abschnitten im Zusammenhang mit Netzwerkfunktionen oder Dienstvirtualisierung besprochen, einschließlich der Nutzung virtueller Edges und virtueller Dienste, die für mehrere Stakeholder orchestriert werden.
  • Wie unten ausführlicher besprochen, arbeiten die Edge-Gateway-Knoten 1312 und die Edge-Aggregationsknoten 1322 zusammen, um verschiedene Edge-Dienste und Sicherheit für die Client-Rechenknoten 1302 bereitzustellen. Weil ein Client-Rechenknoten 1302 stationär oder mobil sein kann, kann ferner ein jeweiliger Edge-Gateway-Knoten 1312 mit anderen Edge-Gateway-Vorrichtungen zusammenarbeiten, um gegenwärtig bereitgestellte Edge-Dienste, relevante Dienstdaten und Sicherheit zu propagieren, während sich der entsprechende Client-Rechenknoten 1302 in einem Gebiet bewegt. Dazu können die Edge-Gateway-Knoten 1312 und/oder Edge-Aggregationsknoten 1322 mehrere Mandanten- und mehrere Stakeholder-Konfigurationen unterstützen, in denen Dienste von mehreren Dienstanbietern, Eigentümern und mehreren Verbrauchern (oder gehostet für diese) über eine einzelne oder mehrere Rechenvorrichtungen unterstützt und koordiniert werden können.
  • Eine Vielzahl von Sicherheitsansätzen kann innerhalb der Architektur der Edge-Cloud 1300 genutzt werden. In einer Multi-Stakeholder-Umgebung kann es mehrere ladbare Sicherheitsmodule (LSMs) geben, die verwendet werden, um Richtlinien bereitzustellen, die Interessen des Stakeholders erzwingen. Durchsetzungspunktumgebungen könnten mehrere LSMs unterstützen, die die Kombination geladener LSM-Richtlinien anwenden (wobei z. B. die am meisten eingeschränkte effektive Richtlinie angewendet wird, wie etwa dort, falls irgendwelche von A-, B- oder C-Stakeholders den Zugriff einschränken, wo dann der Zugriff eingeschränkt ist). Innerhalb der Edge-Cloud 1300 kann jede Edge-Entität LSMs bereitstellen, die Interessen der Edge-Entitäten durchsetzen. Die Cloud-Entität kann LSMs bereitstellen, die die Interessen von Cloud-Entitäten durchsetzen. Gleichermaßen können die verschiedenen Fog- und IoT-Netzwerkentitäten LSMs bereitstellen, die die Interessen der Fog-Entitäten durchsetzen.
  • In diesen Beispielen können Dienste aus der Perspektive einer Transaktion betrachtet werden, die gegen einen Satz von Verträgen oder Bestandteilen durchgeführt wird, unabhängig davon, ob sie auf einer Bestandteilebene oder einer für Menschen wahrnehmbaren Ebene betrachtet werden. So erwartet ein Benutzer, der eine Dienstvereinbarung mit einem Dienstanbieter hat, die Erbringung des Dienstes unter den Bedingungen des SLA. Obwohl nicht ausführlich besprochen, kann die Verwendung der hierin besprochenen Edge-Computing-Techniken Rollen während der Verhandlung der Vereinbarung und der Messung der Erfüllung der Vereinbarung spielen (um zu identifizieren, welche Elemente das System benötigt, um einen Dienst durchzuführen, wie das System auf Dienstbedingungen und -änderungen reagiert und dergleichen).
  • Ein „Dienst“ ist ein breiter Begriff, der häufig auf verschiedene Zusammenhänge angewendet wird, er bezieht sich aber allgemein auf eine Beziehung zwischen zwei Entitäten, wobei eine Entität Arbeit für den Nutzen einer anderen anbietet und durchführt. Die von einer Entität zu einer anderen Entität gelieferten Dienste müssen jedoch mit bestimmten Leitlinien durchgeführt werden, die ein Vertrauen zwischen den Entitäten gewährleisten und die Transaktion gemäß den eingangs, während und am Ende des Dienstes dargelegten Vertragsbegriffen und -bedingungen verwalten.
  • Der Einsatz eines Multi-Stakeholder-Edge-Rechensystems kann eingerichtet und orchestriert sein, um den Einsatz mehrerer Dienste und virtueller Edge-Instanzen unter mehreren Edge-Knoten und Subsystemen zur Verwendung durch mehrere Mandanten und Dienstanbieter zu ermöglichen. Bei einem Systembeispiel, das auf einen Cloud-Dienstanbieter (CSP) anwendbar ist, kann der Einsatz eines Edge-Rechensystems über einen „Over-the-top“-Ansatz bereitgestellt werden, um Edge-Rechenknoten als ein Ergänzungswerkzeug zu Cloud-Computing einzuführen. In einem kontrastierenden Systembeispiel, das auf einen Telekommunikationsdienstanbieter (TSP) anwendbar ist, kann der Einsatz eines Edge-Rechensystems über einen „Netzwerkaggregations“-Ansatz bereitgestellt werden, um Edge-Rechenknoten an Standorten einzuführen, an denen Netzwerkzugänge (von verschiedenen Arten von Datenzugangsnetzwerken) aggregiert werden. In den 5 und 6 sind diese Over-the-top- und Netzwerkaggregationsansätze für Networking und Dienste in dem jeweiligen Edge-Rechensystem gegenübergestellt. Diese Over-the-top- und Netzwerkaggregationsansätze können jedoch zusammen in einem hybriden oder vereinten Ansatz oder einer hybriden oder vereinten Konfiguration implementiert werden, wie in späteren Beispielen vorgeschlagen wird.
  • 14 veranschaulicht Einsatz und Orchestrierung für virtualisierte und containerbasierte Edge-Konfigurationen über ein Edge-Rechensystem, das zwischen mehreren Edge-Knoten und mehreren Mandanten (z. B. Benutzern, Anbietern) betrieben wird, die solche Edge-Knoten verwenden. Insbesondere stellt 14 eine Koordination eines ersten Edge-Knotens 1422 und eines zweiten Edge-Knotens 1424 in einem Edge-Rechensystem 1400 dar, um Anforderungen und Antworten für verschiedene Client-Endpunkte 1410 (z. B. Smart-Städte / -Gebäude-Systeme, Mobilvorrichtungen, Rechenvorrichtungen, Unternehmens-/Logistiksysteme, Industriesysteme usw.) zu erfüllen, die auf verschiedene virtuelle Edge-Instanzen zugreifen. Hier stellen die virtuellen Edge-Instanzen 1432, 1434 Edge-Rechenfähigkeiten und Verarbeitung in einer Edge-Cloud mit Zugriff auf eine Cloud/ein Datenzentrum 1440 für Anforderungen mit höherer Latenz für Websites, Anwendungen, Datenbankserver usw. bereit. Die Edge-Cloud ermöglicht jedoch eine Koordination der Verarbeitung zwischen mehreren Edge-Knoten für mehrere Mandanten oder Entitäten.
  • In dem Beispiel von 14 beinhalten diese virtuellen Edge-Instanzen: einen ersten virtuellen Edge 1432, der einem ersten Mandanten (Mandanten 1) angeboten wird, der eine erste Kombination von Edge-Speicherung, Computing und Diensten anbietet; und einen zweiten virtuellen Edge 1434, der eine zweite Kombination von Edge-Speicherung, Computing und Diensten anbietet. Die virtuellen Edge-Instanzen 1432, 1434 sind unter den Edge-Knoten 1422, 1424 verteilt und können Szenarien beinhalten, in denen eine Anforderung und Antwort von demselben oder unterschiedlichen Edge-Knoten erfüllt werden. Die Konfiguration der Edge-Knoten 1422, 1424 zum Arbeiten auf eine verteilte, aber koordinierte Weise findet basierend auf Edge-Bereitstellungsfunktionen 1450 statt. Die Funktionalität der Edge-Knoten 1422, 1424 zum Bereitstellen eines koordinierten Betriebs für Anwendungen und Dienste unter mehreren Mandanten findet basierend auf Orchestrierungsfunktionen 1460 statt.
  • Es versteht sich, dass manche der Vorrichtungen in 1410 Multi-Mandanten-Vorrichtungen sind, wobei Mandant 1 innerhalb eines Mandantl-„Slice“ funktionieren kann, während ein Mandant 2 innerhalb eines Mandant2-Slice funktionieren kann (und, in weiteren Beispielen können zusätzliche oder Unter-Mandanten existieren; und jeder Mandant kann sogar spezifisch berechtigt und transaktionell an einen spezifischen Satz von Merkmalen bis zu spezifischen Hardwaremerkmalen gebunden sein). Eine vertrauenswürdige Multi-Mandanten-Vorrichtung kann ferner einen mandantenspezifischen kryptografischen Schlüssel enthalten, sodass die Kombination aus Schlüssel und Slice als eine „Root of Trust“ (RoT) oder mandantenspezifische RoT angesehen werden kann. Eine RoT kann ferner dynamisch unter Verwendung einer DICE-Architektur (DICE: Device Identity Composition Engine) berechnet werden, sodass ein einzelner DICE-Hardwarebaustein verwendet werden kann, um geschichtete vertrauenswürdige Rechenbasiskontexte zum Schichten von Vorrichtungsfähigkeiten (wie etwa ein feldprogrammierbares Gate-Array (FPGA)) zu konstruieren. Die RoT kann ferner für einen vertrauenswürdigen Rechenkontext verwendet werden, um einen „Fan-Out“ zu ermöglichen, der zum Unterstützen von Multi-Mandanten nützlich ist. Innerhalb einer Multi-Mandanten-Umgebung können die jeweiligen Edge-Knoten 1422, 1424 als Sicherheitsmerkmaldurchsetzungspunkte für lokale Ressourcen arbeiten, die mehreren Mandanten pro Knoten zugewiesen sind. Zusätzlich dazu können Mandantenlaufzeit und Anwendungsausführung (z. B. in den Fällen 1432, 1434) als ein Durchsetzungspunkt für ein Sicherheitsmerkmal dienen, das eine virtuelle Edge-Abstraktion von Ressourcen erzeugt, die potenziell mehrere physische Hosting-Plattformen überspannen. Schließlich können die Orchestrierungsfunktionen 1460 an einer Orchestrierungsentität als ein Sicherheitsmerkmaldurchsetzungspunkt zum Marshalling von Ressourcen entlang Mandantengrenzen arbeiten.
  • Edge-Rechenknoten können Ressourcen (Speicher, Zentralverarbeitungseinheit (CPU), Grafikverarbeitungseinheit (GPU), Interrupt-Steuerung, Eingabe/Ausgabe(E/A)-Steuerung, Speichersteuerung, Bussteuerung usw.) partitionieren, wobei jeweilige Partitionen eine RoT-Fähigkeit enthalten können und wobei Fan-Out und Schichtbildung gemäß einem DICE-Modell ferner auf Edge-Knoten angewendet werden können. Cloud-Rechenknoten verwenden häufig Container, FaaS-Engines, Servlets, Server oder eine andere Berechnungsabstraktion, die gemäß einer DICE-Schichtbildungs- und -Fan-out-Struktur partitioniert werden können, um jeweils einen RoT-Kontext zu unterstützen. Dementsprechend können die jeweiligen Vorrichtungen 1410, 1422 und 1440, die RoTs überspannen, die Erstellung einer verteilten vertrauenswürdigen Rechenbasis (DTCB: Distributed Trusted Computing Base) koordinieren, sodass ein mandantenspezifischer virtueller vertrauenswürdiger sicherer Kanal, der alle Elemente Ende-zu-Ende verknüpft, erstellt werden kann.
  • Ferner versteht es sich, dass ein Container daten- oder arbeitslastspezifische Schlüssel aufweisen kann, die seinen Inhalt vor einem vorherigen Edge-Knoten schützen. Als Teil der Migration eines Containers kann eine Pod-Steuerung an einem Quell-Edge-Knoten einen Migrationsschlüssel von einer Ziel-Edge-Knoten-Pod-Steuerung erhalten, wobei der Migrationsschlüssel zum Wrappen der containerspezifischen Schlüssel verwendet wird. Wenn der Container/Pod zu dem Ziel-Edge-Knoten migriert wird, wird der Unwrapping-Schlüssel der Pod-Steuerung preisgegeben, die dann die gewrappten Schlüssel entschlüsselt. Die Schlüssel können nun zur Durchführung von Operationen an containerspezifischen Daten verwendet werden. Die Migrationsfunktionen können durch korrekt attestierte Edge-Knoten und Pod-Manager (wie oben beschrieben) angesteuert werden.
  • In weiteren Beispielen wird ein Edge-Rechensystem erweitert, um Orchestrierung mehrerer Anwendungen durch die Verwendung von Containern (einer containerisierten, einsetzbaren Softwareeinheit, die Code und benötigte Abhängigkeiten bereitstellt) in einer Multi-Eigentümer-, Multi-Mandanten-Umgebung bereitzustellen. Ein Multi-Mandanten-Orchestrator kann verwendet werden, um Schlüsselverwaltung, Vertrauensanker-Verwaltung und andere Sicherheitsfunktionen in Bezug auf die Bereitstellung und den Lebenszyklus des vertrauenswürdigen „Slice“-Konzepts in 14 durchzuführen. Beispielsweise kann ein Edge-Rechensystem dazu konfiguriert sein, Anforderungen und Antworten für verschiedene Client-Endpunkte von mehreren virtuellen Edge-Instanzen (und von einer Cloud oder einem entfernten Datenzentrum) zu erfüllen. Die Verwendung dieser virtuellen Edge-Instanzen kann mehrere Mandanten und mehrere Anwendungen (z. B. Augmented Reality (AR)/Virtual Reality (VR), Unternehmens anwendungen, Inhaltslieferung, Gaming, Rechen-Offload) gleichzeitig unterstützen. Ferner kann es mehrere Arten von Anwendungen innerhalb der virtuellen Edge-Instanzen geben (z. B. normale Anwendungen; latenzempfindliche Anwendungen; latenzkritische Anwendungen; Benutzerebenenanwendungen; Networking-Anwendungen usw.). Die virtuellen Edge-Instanzen können auch über Systeme mehrerer Eigentümer an unterschiedlichen geographischen Orten (oder jeweilige Rechensysteme und Ressourcen, den mehreren Eigentümern gemeinsam gehören oder gemeinsam von diesen verwaltet werden) gespannt sein.
  • Beispielsweise kann jeder Edge-Knoten 1422, 1424 die Verwendung von Containern implementieren, wie etwa unter Verwendung eines Container-„Pods“ 1426, 1428, der eine Gruppe von einem oder mehreren Containern bereitstellt. In einer Einstellung, die eine oder mehrere Container-Pods verwendet, ist eine Pod-Steuerung oder ein Orchestrator für die lokale Steuerung und Orchestrierung der Container im Pod verantwortlich. Verschiedene Edge-Knotenressourcen (z. B. Speicherung, Berechnung, Dienste, dargestellt mit Hexagonen), die für die jeweiligen Edge-Slices 1432, 1434 bereitgestellt werden, werden gemäß den Bedürfnissen jedes Containers partitioniert.
  • Bei der Verwendung von Container-Pods übersieht eine Pod-Steuerung die Partitionierung und Zuweisung von Containern und Ressourcen. Die Pod-Steuerung empfängt Anweisungen von einem Orchestrator (z. B. Orchestrator 1460), die Steuerung darüber anzuweisen, wie und für welche Dauer physische Ressourcen am besten zu partitionieren sind, wie etwa durch Empfangen von KPI(Key Performance Indicator)-Zielen basierend auf SLA-Verträgen. Die Pod-Steuerung bestimmt, welcher Container welche Ressourcen und für wie lange benötigt, um die Arbeitslast abzuschließen und das SLA zu erfüllen. Die Pod-Steuerung verwaltet auch Container-Lebenszyklusvorgänge, wie etwa: Erzeugen des Containers, Versehen desselben mit Ressourcen und Anwendungen, Koordinieren von Zwischenergebnissen zwischen mehreren Containern, die auf einer verteilten Anwendung zusammenarbeiten, Zerlegen von Containern, wenn die Arbeitslast abgeschlossen ist, und dergleichen. Zusätzlich dazu kann eine Pod-Steuerung eine Sicherheitsrolle spielen, die eine Zuweisung von Ressourcen verhindert, bis sich der rechte Mandant authentifiziert, oder eine Bereitstellung von Daten oder einer Arbeitslast an einen Container verhindert, bis ein Attestierungsergebnis erfüllt ist.
  • Auch bei der Verwendung von Container-Pods können Mandantengrenzen immer noch existieren, aber im Kontext jedes Pods von Containern. Falls jeder mandantenspezifische Pod eine mandantenspezifische Pod-Steuerung aufweist, wird es eine gemeinsam genutzte Pod-Steuerung geben, die Ressourcenzuweisungsanforderungen konsolidiert, um typische Ressourcenmangelsituationen zu vermeiden. Weitere Steuerungen können vorgesehen sein, um eine Attestierung und Vertrauenswürdigkeit des Pods und der Pod-Steuerung zu gewährleisten. Beispielsweise kann der Orchestrator 1460 lokalen Pod-Steuerungen, die eine Attestierungsverifizierung durchführen, eine Attestierungsverifizierungsrichtlinie bereitstellen. Falls eine Attestierung eine Richtlinie für eine erste Mandanten-Pod-Steuerung, aber nicht eine zweite Mandanten-Pod-Steuerung erfüllt, dann könnte der zweite Pod zu einem anderen Edge-Knoten migriert werden, der ihn erfüllt. Alternativ dazu kann dem ersten Pod erlaubt werden, ausgeführt zu werden, und eine andere gemeinsam genutzte Pod-Steuerung wird installiert und aufgerufen, bevor der zweite Pod ausgeführt wird.
  • 15 veranschaulicht eine beispielhafte Softwareverteilungsplattform 1505 zum Verteilen von Software, wie etwa den beispielhaften computerlesbaren Anweisungen 1550, an eine oder mehrere Vorrichtungen, wie etwa beispielhafte Prozessorplattform(en) 1500 und/oder beispielhafte verbundene Edge-Vorrichtungen. Die beispielhafte Softwareverteilungsplattform 1505 kann durch einen beliebigen Computerserver, eine beliebige Dateneinrichtung, einen beliebigen Cloud-Dienst usw. implementiert werden, der/die in der Lage ist, Software zu speichern und zu anderen Rechenvorrichtungen (z. B. Drittparteien, beispielhafte verbundene Edge-Vorrichtungen) zu übertragen. Beispielhafte verbundene Edge-Vorrichtungen können Kunden, Clients, Verwaltungsvorrichtungen (z. B. Server), Drittparteien (z. B. Kunden einer Entität, die die Softwareverteilungsplattform 1505 besitzt und/oder betreibt) sein. Beispielhafte verbundene Edge-Vorrichtungen können in kommerziellen und/oder Heimautomatisierungsumgebungen arbeiten. Bei manchen Beispielen ist eine Drittpartei ein Entwickler, ein Verkäufer und/oder ein Lizenzgeber von Software, wie etwa der beispielhaften computerlesbaren Anweisungen 1550. Die Drittparteien können Verbraucher, Benutzer, Einzelhändler, OEMs usw. sein, die die Software zur Verwendung kaufen und/oder lizenzieren und/oder wiederverkaufen und/oder sublizenzieren. In manchen Beispielen bewirkt verteilte Software, dass eine Anzeige einer oder mehrerer Benutzeroberflächen (UIs) und/oder grafischer Benutzeroberflächen (GUIs) die eine oder die mehreren Vorrichtungen (z. B. verbundene Edge-Vorrichtungen) geographisch und/oder logisch voneinander getrennt (z. B. physisch getrennte IoT-Vorrichtungen, beauftragt mit der Verantwortung zur Wasserverteilungssteuerung (z. B. Pumpen), Stromverteilungssteuerung (z. B. Relais) usw.) identifiziert.
  • In dem veranschaulichten Beispiel von 15 beinhaltet die Softwareverteilungsplattform 1505 einen oder mehrere Server und eine oder mehrere Speicherungsvorrichtungen. Die Speicherungsvorrichtungen speichern die computerlesbaren Anweisungen 1550, die den beispielhaften computerlesbaren Anweisungen, wie oben beschrieben, entsprechen können. Der eine oder die mehreren Server der beispielhaften Softwareverteilungsplattform 1505 stehen in Kommunikation mit einem Netzwerk 1510, das einem oder mehreren beliebigen des Internets und/oder beliebigen der oben beschriebenen beispielhaften Netzwerke entsprechen kann. In einigen Beispielen reagieren der eine oder die mehreren Server auf Anforderungen, die Software als Teil einer kommerziellen Transaktion an eine anfragende Partei zu übertragen. Die Zahlung für die Zustellung, den Verkauf und/oder die Lizenz der Software kann durch den einen oder die mehreren Server der Softwareverteilungsplattform und/oder über eine Drittpartei-Zahlungsentität gehandhabt werden. Die Server ermöglichen Käufern und/oder Lizenzgebern, die computerlesbaren Anweisungen 1550 von der Softwareverteilungsplattform 1505 herunterzuladen. Zum Beispiel kann die Software, die den beispielhaften computerlesbaren Anweisungen entsprechen kann, auf die beispielhafte(n) Prozessorplattform(en) 1500 (z. B. beispielhafte verbundene Edge-Vorrichtungen) heruntergeladen werden, die die computerlesbaren Anweisungen 1550 ausführen sollen, um beliebige hierin beschriebene Ausführungsformen zu implementieren. In manchen Beispielen sind ein oder mehrere Server der Softwareverteilungsplattform 1505 kommunikativ mit einer oder mehreren Sicherheitsdomänen und/oder Sicherheitsvorrichtungen verbunden, durch die Anforderungen und Übertragungen der beispielhaften computerlesbaren Anweisungen 1550 laufen müssen. Bei manchen Beispielen bieten ein oder mehrere Server der Softwareverteilungsplattform 1505 periodisch Aktualisierungen der Software (z. B. die beispielhaften computerlesbaren Anweisungen 1550) an, übertragen und/oder erzwingen diese, um sicherzustellen, dass Verbesserungen, Patches, Aktualisierungen usw. verteilt und an der Software an den Endbenutzervorrichtungen angewendet werden.
  • In dem veranschaulichten Beispiel von 15 sind die computerlesbaren Anweisungen 1550 auf Speicherungsvorrichtungen der Softwareverteilungsplattform 1505 in einem bestimmten Format gespeichert. Ein Format von computerlesbaren Anweisungen beinhaltet unter anderem eine spezielle Codesprache (z. B. Java, JavaScript, Python, C, C#, SQL, HTML usw.) und/oder einen speziellen Codezustand (z. B. unkompilierter Code (z. B. ASCII), interpretierter Code, verknüpfter Code, ausführbarer Code (z. B. ein Binärobjekt) usw.). In manchen Beispielen befinden sich die computerlesbaren Anweisungen 1550, die in der Softwareverteilungsplattform 1505 gespeichert sind, in einem ersten Format, wenn sie an die beispielhafte(n) Prozessorplattform(en) 1500 übertragen werden. In manchen Beispielen ist das erste Format ein ausführbares Binärobjekt, in dem bestimmte Arten der Prozessorplattform(en) 1500 ausgeführt werden können. In manchen Beispielen ist das erste Format jedoch unkompilierter Code, der eine oder mehrere Vorbereitungsaufgaben erfordert, um das erste Format in ein zweites Format zu transformieren, um eine Ausführung auf der (den) beispielhaften Prozessorplattform(en) 1500 zu ermöglichen. Beispielsweise müssen die empfangende(n) Prozessorplattform(en) 1500 die computerlesbaren Anweisungen 1550 in dem ersten Format kompilieren, um ausführbaren Code in einem zweiten Format zu erzeugen, der in der Lage ist, auf der (den) Prozessorplattform(en) 1500 ausgeführt zu werden. In noch anderen Beispielen ist das erste Format interpretierter Code, der beim Erreichen der Prozessorplattform(en) 1500 durch einen Interpreter interpretiert wird, um die Ausführung von Anweisungen zu ermöglichen.
  • INFRASTRUKTURVERARBEITUNGSEINHEITEN
  • 16 zeigt verschiedene Ausführungsformen einer CPU und von Netzwerkschnittstellenkarten(NIC)-Systemen mit Speicherzugriff. Systeme können, zumindest basierend darauf, wie Funktionen abgebildet und abgeladen werden, unterschiedlich zusammengesetzt sein. System A kann zum Beispiel ein System beinhalten, bei dem eine CPU Dienste in Software bereitstellt, wie etwa Ausführen eines Virtuelle-Maschine-Managers (VMM) (z. B. Hypervisor), Durchführen von Networking-Stapelverarbeitungsoperationen, Durchführen von Sicherheitsoperationen (kryptographischen Operationen), Ausführen von Speicherzugriffssoftware und Verwalten von Überwachung und Dienst-Mesh (z. B. Steuern, wie verschiedene Teile einer Anwendung Daten miteinander teilen).
  • System B kann zum Beispiel ein System beinhalten, bei dem eine CPU einen VMM ausführen, Sicherheitsoperationen (kryptographische Operationen) durchführen, Überwachung und Dienst-Mesh verwalten (z. B. steuern, wie verschiedene Teile einer Anwendung Daten miteinander teilen) kann. System B kann eine SmartNIC mit Prozessoren verwenden, um Networking-Stapelverarbeitungsoperationen (z. B. virtueller Switch oder vSwitch) und Speichersoftware (z. B. Blockspeicherzugriffsoperationen) auszuführen.
  • System C kann zum Beispiel ein System beinhalten, bei dem eine IPU Plattformverwaltung, Networking-Stapelverarbeitungsoperationen, Sicherheits(Krypto)-Operationen, Speichersoftware, Identitäts- und Schlüsselverwaltung, Telemetrie, Protokollierung, Überwachung und Dienst-Mesh (z. B. Steuern, wie verschiedene Mikrodienste miteinander kommunizieren) ausführen kann. Die IPU kann auf eine xPU zugreifen, um die Durchführung verschiedener Aufgaben abzuladen.
  • 17 zeigt verschiedene Ausführungsformen eines Systems. Konfiguration 1702 zeigt ein Beispiel für die Verwendung eines Servers, der eine Paketverarbeitung ausführt, eines Containers, eines Dienst-Mesh und eines Hypervisors. Bei einer beispielhaften Konfiguration 1704 kann eine IPU Aufgaben durchführen, die ansonsten durch ein Gastbetriebssystem (Gast-OS) (z. B. Software, die auf entweder einer virtuellen Maschine (VM) installiert ist, die sich von dem Host-Betriebssystem unterscheidet) durchgeführt werden könnten, zusätzlich zu Diensten von dem Host-Hypervisor. Zum Beispiel können die Gastanwendungsdienste, wie etwa Dienst-Mesh (Routing, Netzwerkadressenübersetzung (NAT), Lastausgleich und so weiter), Verschlüsselung und zuverlässige Transportdienste, an die IPU abgeladen werden. Vom Host-Hypervisor können Dienste, wie etwa Ressourcenverwaltung, Vorrichtungsvirtualisierung, Ereignis- und Nutzungsprotokollierung, Verbindungsverwaltung und virtueller Switch (vSwitch), an die IPU abgeladen werden. Die IPU kann Treiber zur Schnittstellenbildung mit einem Gast-OS auf einem Hostsystem sowie einer XPU oder Speicherungsvorrichtungen ausführen.
  • 18 stellt ein Beispiel für die Verwendung einer IPU dar. In diesem Beispiel legt eine IPU XPU-, Speicherungs-, Speicher- und CPU-Ressourcen und -Fähigkeiten als Dienste offen, auf die andere Mikrodienste zur Funktionskomposition zugreifen können. Dies kann die Performanz verbessern und Datenbewegung und Latenz reduzieren. Eine IPU kann Fähigkeiten durchführen, wie etwa jene eines Routers, eines Lastausgleichers, einer Firewall, TCP/zuverlässigen Transports, eines Dienst-Mesh (z. B. Proxy oder API-Gateway), Sicherheit, Datentransformation, Authentifizierung, Dienstgüte (QoS), Sicherheit, Telemetriemessung, Ereignisprotokollierung, Initiierung und Verwaltung von Datenabläufen, Datenplatzierung oder Arbeitsauftragsplanung von Ressourcen auf einer XPU, einer Speicherung, einem Speicher oder einer CPU.
  • Gemäß verschiedenen Ausführungsformen kann eine IPU eines oder mehrere der Folgenden beinhalten: Netzwerkschnittstellensteuerung („SmartNIC“) mit einem oder mehreren programmierbaren oder Festfunktionsprozessoren zum Durchführen eines Offload von Operationen, die durch eine CPU durchgeführt worden sein könnten, wie etwa: Virtueller-Switch-Offload, Speicherungs-Offload (z. B. Komprimierung, Krypto, Virtualisierung); Offload von Operationen von einer Anwendung; Virtualisierungsdienste, wodurch, anstatt dass die CPU der Hub des Virtualisierens jeder Vorrichtung ist, die IPU aus der Sicht des Virtualisierens aller Fähigkeiten, einschließlich CPUs, zu einem „Bump in the wire“ wird. Verschiedene Ausführungsformen einer IPU sind mit den CPU- und xPU-Komponenten integriert oder physisch getrennt von diesen. Verschiedene Ausführungsformen einer IPU stellen eine Brücke zwischen lokaler Speicheradressierung zu entferntem Speicher über das Datenzentrum-Fabric bereit.
  • Gemäß verschiedenen Ausführungsformen kann eine IPU Sicherheitsmerkmale bereitstellen, die Folgendes beinhalten: (1) RoT (Root of Trust), Attestierungsdienste, sichere Enklaven; Speichern von Verschlüsselungsschlüsseln und vollständigen Schlüsselverwaltungsaufgaben; Protokollverschlüsselungsendpunkte für Linkschnittstellen und Netzwerkschnittstellen, die die IPU mit anderen Knoten in dem verteilten System verbinden; separate Steuerebenenschnittstelle, die gemessen werden kann (über Zertifikatsmechanismen); Zustandsmaschinen an Vorrichtungsschnittstellen, die individuell konfiguriert und von anderen Vorrichtungsschnittstellen auf der Vorrichtung isoliert werden können; Attestierung, Autorisierung, Zugangssteuerung, Protokollierung, Protokollfilterung, unveränderliches Protokollieren (z. B. Blockchain); Sicherheitshubfunktionen zur Inter-XPU-Vertraulichkeit und Identitäts- und Informationsisolation, Brokering von Datensichtbarkeit zwischen mehreren Clients zur kooperativen Verarbeitung; sichere und verschlüsselte Schnittstellen für externe Schnittstellen aus dem IPU-SoC einschließlich Speicher (z. B. flüchtig und persistent), Netzwerk- und EA-Fabrics (PCIe, CXL); passive oder aktive Durchsetzung von Sicherheitsrichtlinien und Diensten, wie etwa Zugriffssteuerungslisten, Ratenbegrenzung, Intrusionsdetektion, verteilte Denial-of-Service-Angriffe usw.
  • Verschiedene Ausführungsformen einer IPU können auch CPU-Fähigkeiten und -Performanz bereitstellen, sodass Aufgaben (z. B. datenparallelisierte Aufgaben) an die IPU abgeladen werden können, sowie: Plattform- und Vorrichtungsverwaltung; verteilte (Inter-Knoten und Intra-Knoten) Telemetrie, Tracing, Protokollierung und Überwachung; Dienstgütedurchsetzung; Dienst-Mesh; Datenverarbeitung einschließlich Serialisierung, Deserialisierung, Transformation wie etwa Größen- und Formatumwandlung, Bereichsvalidierung, Zugriffsrichtliniendurchsetzung; verteilte (Inter-Knoten und Intra-Knoten) Sicherheit; und/oder integrierte Beschleunigungs-Engines, die flexible und programmierbare Beschleunigungs-Engines bereitstellen, die Gleitkommaoperationen pro Sekunde (FLOPS)/ Tensoroperationen pro Sekunde (TOPS) intensives KI und maschinelles Lernen abladen und ihre Performanz verbessern.
  • Im Vergleich zu einer SmartNIC oder Datenverarbeitungseinheit (DPU) stellen verschiedene Ausführungsformen zum Beispiel eine IPU bereit, die als Reaktion auf einen Dienstaufruf eine Funktionsausführung an lokalen und/oder entfernten Ressourcen unter Verwendung einer oder mehrerer Dienstschnittstellen planen kann. Verschiedene Ausführungsformen stellen Dienste bei einer höheren Abstraktion (APIs, RPCs, Dienste) bereit, die es der IPU ermöglichen, eine feinere Granularität von Offloads und Diensten bereitzustellen (im Vergleich zu nur Paketen und 5-Tupeln). Diverse Ausführungsformen können verbesserte Telemetrie/Protokollierung/Überwachung, QoS und Austritts- und Eintrittsplanung, Arbeitslastplatzierung/-beschleunigung, Sicherheit/Authentifizierung und so weiter ermöglichen.
  • Verschiedene Ausführungsformen einer IPU können XPU-Cache- und Bandbreitenkontamination reduzieren, neben dem Verfügbarmachen der Verwendung von Allzweck-Rechenkernen, und können die Verwendung von Beschleunigungsvorrichtungen übergreifend integrieren. Eine IPU kann zum Beispiel In-Stream-Datenfilterung an dem Netzwerk und dem Speicherungs-Edge durchführen; Direkt-zu-Disk-Verschlüsselung/-Entschlüsselung/-Transkription und Komprimierung oder Dekomprimierung zu/von der GPU oder zu/von dem Netzwerk.
  • Verschiedene Ausführungsformen einer IPU können Datenplatzierung und -verwaltung bereitstellen, sodass Daten in einer Speicher- oder Speicherungsvorrichtung gestuft und gespeichert werden, die physisch unmittelbar oder nahe an der Stelle, an der sie verarbeitet werden, sind, um die Latenz des Datenzugriffs zu reduzieren. Eine IPU kann eine strombasierte Schnittstelle beinhalten, sodass es für den Host nicht notwendig ist, Daten zu paketisieren und paketgranulare Flusssteuerung und Thread-Planung durchzuführen. Daten können in Großregionen des Speichers konsolidiert werden, auf die die CPU zugreifen kann, und wobei Metadaten (z. B. Informationen, die aus Netzwerkpaketheadern extrahiert werden) und plattenbasierte Datenstrukturen direkt in Caches nahe der CPU für Nanosekundengranularen Lade-/Speicherzugriff platziert werden können. Koordinations-Overhead zwischen Vorrichtungen kann mit wenig oder keiner E/A-Ereignissynchronisation (Abfragen, Schlafen, Unterbrechen usw.) reduziert werden.
  • Bei manchen Beispielen ist Telemetrie zum Ressourcen-Tracing von Ressourcen und Latenz in einem Ausführungspfad bereitgestellt, der zum Überwachen, zur Ressourcenbereitstellung und QoS verwendet werden kann. Bei manchen Beispielen wird QOS zum Ressourcen-Tracing von Ressourcen in einem Ausführungspfad bereitgestellt. Eine IPU kann Telemetrie verwenden, um Ressourcenverfolgung von Ressourcen in dem Pfad durchzuführen, die die Performanz eines Mikrodiensteinsatzes beeinflussen, wodurch sowohl Ende-zu-Ende-Dienst als auch Verfolgbarkeit auf Komponentenebene und entsprechende angezielte Steuerungen ermöglicht werden. Verschiedene Ausführungsformen stellen eine IPU bereit, die einen Konnektivitätsfluss verwaltet, wie etwa Sicherheits-, Routing-, Beschleunigungs- und Überbrückungsspeicherzugriffe (lokal oder entfernt) und diese als einen Mikrodienst (z. B. System-API) offenlegt. Verschiedene Ausführungsformen stellen eine IPU bereit, die ein Endpunkt für Dienste oder ein Proxy zum Zugreifen auf Dienste ist.
  • Verschiedene Ausführungsformen stellen eine System-API für eine Anwendung bereit, um die Ausführung eines oder mehrerer Mikrodienste auf lokalen oder entfernten Vorrichtungen zu bewirken. Dies ermöglicht eine Abstraktionsschicht, die Dienstfunktionsfähigkeiten von der Ausführungskomplexität, Änderungen in der Implementierung, dem Einsatzmaßstab und dem Einsatzort trennt. Bei manchen Beispielen kann eine IPU eine Softwarekomposition durchführen, um die Konnektivität zwischen mehreren Diensten zu beschleunigen.
  • Verschiedene Ausführungsformen führen Offload-E/A-Datenpfad-Operationen zu einer IPU durch, wie etwa Verschlüsselung, Authentifizierung, Komprimierung, Routing, Richtliniendurchsetzung, Deep-Packet-/Message-Inspection, RDMA-Beschleunigung (RDMA: Remote Direct Memory Access - entfernter Direktspeicherzugriff) (z. B. RoCE oder iWarp, virtualisiert oder nicht), Netzwerkprotokoll(z. B. TCP, UDP usw.)-Offload, zuverlässiger Transport, Überlastungssteuerung, Dienstgüte, Abtastung, Replikation/Multicast, Multipath (Mehrweg), NAT, Firewall usw.
  • Verschiedene Ausführungsformen führen einen Offload von E/A-Datenpfad-Operationen zu einer IPU zum Vereinheitlichen von Speicherzugriffen auf lokalen oder entfernten gemeinsam genutzten Speicher durch, wie etwa Verschlüsselung, Zugriffssteuerung, Adressenneuabbildung, Cache-Verwaltung, zuverlässiger Zugriff, atomare Befehle und persistente Speicherverwaltung.
  • Verschiedene Ausführungsformen führen einen Offload von E/A-Steuerpfad-Operationen zu einer IPU durch, wie etwa Verbindungsaufbau, Identitätsverwaltung, Schlüsselverwaltung, Authentifizierung, Tunneleinrichtungen, intelligentes Networking (z. B. Offloading-Flusssteuerung, zuverlässiger Transport, Überlastungssteuerung), dynamische Ressourcenzuweisung oder schnelles Failover.
  • Verschiedene Ausführungsformen führen ein Offloading einer globalen hierarchischen Software-definierten Steuerebenenverwaltung zu einer IPU durch, wie etwa eine IPU-gehostete lokale hierarchische Steuerebene für einen oder mehrere Knoten, wie etwa Multi-Host und Multi-Homing, wodurch schnellere Reaktionszeit und bessere Skalierbarkeit basierend auf lokalisierten Knotenvoraussetzungen, Live-Migration, Ressourcenzuweisung ermöglicht wird.
  • Verschiedene Ausführungsformen stellen eine IPU bereit, die agentenlose Mikrosegmentierung durchführt (z. B. Platzieren von Verkehrsinspektion und Engpässen um jede Arbeitslast herum, ohne Agenten in jeder Arbeitslast modifizieren und einsetzen zu müssen, um zum Beispiel bösartigen oder übelartigen Verkehr zu überwachen, zu analysieren und zu beheben).
  • Verschiedene Ausführungsformen stellen eine IPU bereit, die versuchen soll, lokale und entfernte Speicherung zu vereinheitlichen und (lokale/entfernte Speicherungs-) E/As zu beschleunigen, durch Emulieren von NVMe (Non-Volatile Memory Express) und Offloading von NVMe-over-Fabrics(NVMe-oF)-Speicherbefehlserzeugung (oder iSCSI-Speicherbefehlserzeugung (iSCSI: Internet Small Computer Systems Interface)) für Hyperscale-Hochleistungsspeicherung (z. B. NVMe- oder iSCSI-Emulation in dem Speicherpfad). NVMe-oF ist zum Beispiel zumindest in NVM Express, Inc., „NVM Express Over Fabrics“, Revision 1.0, 5. Juni 2016 und darin referenzierten Spezifikationen und Variationen und Revisionen davon beschrieben. iSCSI ist zumindest in RFC 3720 (2004) und Variationen und Revisionen davon beschrieben.
  • Verschiedene Ausführungsformen stellen eine IPU bereit, um ein virtuelles Hochleistungs-Speicherungsbereichsnetzwerk (SAN: Virtual Storage Area Network) für virtualisierten und Bare-Metal-Betrieb zu verwalten. Verschiedene Ausführungsformen stellen eine IPU bereit, die Speicherungsverkehrsbeendigung bereitstellt. Verschiedene Ausführungsformen stellen eine IPU bereit, um eine zusammensetzbare Speicherung von lokalen oder entfernten Speicherungsvorrichtungen einschließlich Komprimierung und Verschlüsselung zu verwalten. Verschiedene Ausführungsformen stellen eine IPU bereit, die Schutz von Data-in-Use (Daten in Gebrauch), Data-in-Flight (Daten in Übertragung) und Data-in-Rest (Daten in Ruhe) (Verschlüsselung, Beschleunigung mit privatem/öffentlichem Schlüssel) durchführt. Verschiedene Ausführungsformen stellen eine IPU bereit, die Schlüsselverwaltung und Identitätsverwaltung durchführt.
  • Verschiedene Ausführungsformen stellen eine IPU bereit, um eine Regulärer-Ausdruck(reg-ex)-Verarbeitung (z. B. Beschleunigung) durchzuführen, wie etwa eine Hochgeschwindigkeits-Deep-Packet-Inspection auf Zeilenrate, eine strukturierte Datenobjektsuche und eine Metadatenverarbeitung. Eine IPU kann zum Beispiel eine Verarbeitung von Metadaten ausführen, die mit der Speicherung assoziiert sind, wie etwa Suchen nach Aufzeichnungszeitstempeln und Durchsetzung von Aufzeichnungszugriffssteuerungen.
  • Verschiedene Ausführungsformen stellen eine IPU bereit, um atomare Femoperationen über Konnektivität unter Verwendung von RDMA (Remote Direct Memory Access) durchzuführen, können aber auf hoher Ebene benutzerprogrammierbar sein. Beispiele beinhalten eine verknüpfte Listensuche, ein Durchsuchen eines entfernten Speichers/entfernter Objekte nach einem datenspezifischen Muster und ein Suchen oder Modifizieren eines dünn besetzten Speichers.
  • Verschiedene Ausführungsformen stellen eine IPU bereit, die eine Hardware-Root-of-Trust als eine intelligente Speicherungssteuerung und einen vertrauenswürdigen Steuerpunkt zur Attestierung von Plattformvorrichtungen oder eingesetzten Softwareanwendungen (z. B. Container, Functions as a Service, Enklaven usw.) implementiert.
  • Verschiedene Ausführungsformen stellen eine IPU bereit, die als eine sichere, kopflose (die z. B. keine Anweisungen oder Betriebssteuerung von einer zusätzlichen separaten CPU erfordert) zum Verwalten von CPU-/XPU-/Speicherungs-/Speicherendpunkten fungiert.
  • Verschiedene Ausführungsformen stellen eine IPU bereit, die logisch zentralisierte datenzentrumsweite Richtlinien für Endpunktsicherheit und -isolation bereitstellt.
  • Verschiedene Ausführungsformen stellen eine IPU bereit, die netzwerkinternes beschleunigtes Supercomputing (z. B. OpenSNAPI von UCF Consortium) durchführt. Beispielsweise kann eine IPU mit künstlicher Intelligenz (KI) betriebene Cyber-Intelligenz und Analytik anwenden, um Datenzentren zu sichern, und eine prädiktive Wartung für Betriebskosten(OPEX)-Optimierungen (Telemetrie, Überwachung, Verwaltung, Orchestrierung, Cyber-Sicherheit und Anomaliedetektion, prädiktive und präventive Wartung) ermöglichen.
  • Verschiedene Ausführungsformen stellen eine IPU bereit, die isolierte duale Steuerebenenschnittstellen bereitstellt, die gemessen und attestiert werden können, um dann eine weitere Isolation über Multi-Mandanten-Arbeitslasten an der IPU z. B. über virtuelle Funktionen durchzusetzen; sodass die nicht vertrauenswürdige Steuerebenenschnittstelle den Betriebsmodus der IPU-Dienste nicht bösartig (ohne Ereignis/Fehler) ändern kann.
  • Das Folgende stellt einen beispielhaften Betrieb und eine Verwendung einer IPU bereit. (1) eine Anwendung gibt einen Funktionsaufruf (z. B. API) an einen Peer aus, um eine Funktion, einen Dienst oder einen Mikrodienst durchzuführen (z. B. prozessorausgeführte Software, Hardware und so weiter). (2) die IPU kann den Funktionsaufruf abfangen. In manchen Beispielen könnte eine IPU einen oder mehrere Dienste (lokal oder entfernt) zum Durchführen des Funktionsaufrufs entdecken. Bei manchen Beispielen kann ein Dienst Software und/oder Hardware beinhalten. In manchen Beispielen kann eine IPU kommunikativ mit einem oder mehreren Knoten (z. B. auf demselben Die, über eine oder mehrere Vorrichtungsschnittstellen oder über ein Netzwerk oder ein Fabric) gekoppelt sein und zugänglich sein, um einen Funktionsaufruf von einer beliebigen Software oder Vorrichtung auf dem einen oder den mehreren Knoten zu empfangen. Die IPU kann einen Lastausgleich von Funktionsaufrufen durchführen. Die IPU kann eine Attestierung und/oder Erzeugung vertrauenswürdiger Ressourcen durchführen. In manchen Beispielen ist die xPU eine vertrauenswürdige Ressource. (3) ein IPU-Funktionsaufruf an die Ziel-xPU, um den Dienst durchzuführen. (4) die xPU kann den Dienst durchführen und eine Antwort an die Anwendung zurückgeben, die den Funktionsaufruf ausgegeben hat, und die xPU kann ihren globalen Zustand aktualisieren. (5) die IPU kann die Antwort von der xPU abfangen und eine Antwort an die Anwendung über den Abschluss der Funktion bereitstellen.
  • Potenzielle Nutzen der Verwendung einer IPU können beliebige der Folgenden beinhalten: (a) reduzierte Angriffsoberfläche durch physische Isolation von nicht vertrauenswürdigen Mandantenanwendungen; (b) Pro-Server-Skalierung für einfachere Dimensionierung und reduzierten Blast-Radius; (c) deutlicher Konnektivitätsabstraktionspunkt und Verwendung von xPUs und CPUs mit Verkäuferunabhängigkeit; (d) Multi-Mandanten- und Bare-Metal-Unterstützung; (e) Assoziativität des Zustands für bessere Tabellenskalierung und besseres Caching; (f) Beschleuniger-Toolbox für xPU-Offload konnektivitätsbezogener Dienste; (g) programmierbare Beschleunigung (nahtlos auf Anwendungen und Frameworks höherer Ebene, Bibliotheken usw.); (h) heterogenes Intra-Knoten- und Inter-Knoten-verteiltes Computing in großem Maßstab, das durch sichere und skalierbare Richtlinien- und Ressourcenverwaltungsvorlagen geleitet werden (deklarative Verwaltung von Skalierung und Sicherheit); (i) Meta-Computing, das zum Organisieren von Computing im Dienst von Computing verwendet werden kann; Selbstbeobachtung von einer vertrauenswürdigen nahen Partei usw.; (j) neue Softwaredesignmuster, die auf selbstwahrnehmendem Computing aufgebaut sind; (k) Entfernen unnötiger Codepfade, z. B. direkte Virtualisierung einer Vorrichtung ohne OS, Hypervisor usw.; (1) assoziatives In-Flow-Blending und -Splitting, Umleitung, Filterung, die den Overhead weiter reduzieren, indem eine Operation durchgeführt wird, wenn erforderlich, und dies schnell und vor Ort vorgenommen wird, wodurch die Notwendigkeit vermieden wird, markante Bits zu speichern und dann wieder zu extrahieren; oder (m) verwaltete Datenflüsse.
  • 19 stellt ein Beispiel für eine IPU dar. Zum Beispiel kann die IPU 1900 zumindest einen sicheren Ressourcenmanager 1902, eine Netzwerkschnittstellensteuerung (NIC) 1904, eine Sicherheit-und-Root-of-Trust 1906, eine Ressourcenkomposition 1908, einen Zeitstempelmanager 1910, Speicher und Speicherung 1912, Prozessoren 1914, Beschleuniger 1916 oder einen Übersetzer 1918 beinhalten oder darauf zugreifen. Andere Komponenten können verwendet werden, wie etwa unter anderem andere in 19 gezeigte Komponenten. Verschiedene Ausführungsformen können eine oder mehrere Komponenten der IPU 1900 zusammen oder getrennt verwenden. Beispielsweise kann Komprimierung-und-Verschlüsselung 1920 als ein separater Dienst verwendet werden oder als Teil eines Datenflusses mit vSwitch und Paketverschlüsselung verkettet werden.
  • Bei manchen Beispielen kann die IPU 1900 ein feldprogrammierbares Gate-Array (FPGA) beinhalten, das dazu konfiguriert ist, Befehle von einer CPU, XPU oder Anwendung über eine API zu empfangen und Befehle im Auftrag der CPU durchzuführen, einschließlich Arbeitslastverwaltung und Offload- oder Beschleunigeroperationen. Das FPGA kann dazu konfiguriert sein, beliebige Operationen einer beliebigen hierin beschriebenen IPU durchzuführen.
  • Ein Rechen-Fabric 1950 kann Konnektivität zu einem lokalen Host oder einer lokalen Vorrichtung (z. B. Server oder Vorrichtung (z. B. xPU, Speicher- oder Speicherungsvorrichtung) bereitstellen. Konnektivität mit einem lokalen Host oder einer lokalen Vorrichtung oder SmartNIC oder einer anderen IPU kann unter Verwendung von Peripheral Component Interconnect Express (PCIe) und/oder ARM AXI und/oder Intel® QuickPath Interconnect (QPI) und/oder Intel® Ultra Path Interconnect (UPI) und/oder Intel® On-Chip System Fabric (IOSF) und/oder Omnipath und/oder Ethernet und/oder Compute Express Link (CXL) und/oder HyperTransport und/oder NVLink und/oder Advanced Microcontroller Bus Architecture (AMBA) Interconnect und/oder OpenCAPI und/oder Gen-Z und/oder CCIX und/oder Infinity Fabric (IF) und so weiter bereitgestellt werden. Verschiedene Ausführungsformen der Host-Konnektivität stellen symmetrischen Speicher und symmetrisches Caching bereit, um gleiches Peering zwischen CPU, XPU und IPU zu ermöglichen (z. B. über CXL.cache und CXL.mem).
  • Eine Medienschnittstelle 1960 kann Konnektivität zu einer entfernten SmartNIC oder einer anderen IPU oder einem Dienst über ein Netzwerkmedium oder ein Netzwerk-Fabric bereitstellen. Dies kann über eine beliebige Art von Netzwerkmedien (z. B. drahtgebunden oder drahtlos) und unter Verwendung eines beliebigen Protokolls (z. B. Ethernet, InfiniBand, Fiber Channel, ATM, um einige zu nennen) bereitgestellt werden.
  • Bei manchen Beispielen kann die IPU 1900, anstatt dass der Server/die CPU die primäre Komponente ist, die die IPU 1900 verwaltet, ein Root eines Systems (z. B. Rack von Servern oder Datenzentrum) sein und Rechenressourcen (z. B. CPU, xPU, Speicherung, Speicher, andere IPUs usw.) in der IPU 1900 und außerhalb der IPU 1900 verwalten. Im Folgenden werden verschiedene Operationen einer IPU beschrieben.
  • Die IPU 1900 kann eine Orchestrierung durchführen, um zu entscheiden, welche Hardware oder Software eine Arbeitslast ausführen soll, basierend auf verfügbaren Ressourcen (z. B. Dienste und Vorrichtungen) und durch Berücksichtigen von Service-Level-Agreements und Latenzen, um zu bestimmen, ob Ressourcen (z. B. CPU, xPU, Speicherung, Speicher) von dem lokalen Host oder von einem entfernten Host oder einer gepoolten Ressource zugewiesen werden sollen. Wenn die IPU 1900 ausgewählt wird, um eine Arbeitslast durchzuführen, kann der sichere Ressourcenmanager 1902 Arbeit zu einer CPU, xPU oder eine andere Vorrichtung abladen und die IPU 1900 kann die Konnektivität verteilter Laufzeiten beschleunigen, Latenz, CPU reduzieren und Zuverlässigkeit erhöhen.
  • Beispielsweise kann der sichere Ressourcenmanager 1902 ein Dienst-Mesh ausführen, um zu entscheiden, welche Ressource die Arbeitslast ausführen soll, und dafür sorgen, dass L7- (Anwendungsschicht) und Fernprozeduraufruf(RPC)-Verkehr insgesamt den Kern umgehen, sodass eine Benutzerraumanwendung direkt mit der IPU 1900 kommunizieren kann (die IPU 1900 und die Anwendung können z. B. einen Speicherplatz teilen). Ein Dienst-Mesh kann eine konfigurierbare Infrastrukturschicht mit niedriger Latenz sein, die dazu ausgelegt ist, Kommunikationen zwischen Anwendungsmikrodiensten unter Verwendung von Anwendungsprogrammierungsschnittstellen (APIs) (z. B. über Fernprozeduraufrufe (RPCs)) zu bearbeiten. Ein Dienst-Mesh kann schnelle, zuverlässige und sichere Kommunikationen zwischen containerisierten oder virtualisierten Anwendungsinfrastrukturdiensten bereitstellen. Das Dienst-Mesh kann kritische Fähigkeiten bereitstellen, einschließlich Dienstentdeckung, Lastausgleich, Verschlüsselung, Beobachtbarkeit, Verfolgbarkeit, Authentifizierung und Autorisierung und Unterstützung für das Sicherungsschaltermuster.
  • Bei manchen Beispielen können Infrastrukturdienste einen Verbundknoten beinhalten, der durch eine IPU bei oder nach dem Empfangen einer Arbeitslast von einer Anwendung erzeugt wird. In manchen Fällen beinhaltet der Verbundknoten Zugriff auf Hardwarevorrichtungen, Software unter Verwendung von APIs, RPCs, gRPCs oder Kommunikationsprotokolle mit Anweisungen, wie unter anderem iSCSI, NVMe-oF oder CXL.
  • In manchen Fällen kann sich die IPU 1900 dynamisch selbst auswählen, um eine gegebene Arbeitslast (z. B. Mikrodienst) innerhalb einer zusammensetzbaren Infrastruktur einschließlich einer IPU, xPU, CPU, Speicherung, Speicher und anderen Vorrichtungen in einem Knoten auszuführen.
  • Kommunikationen können durch die Medienschnittstelle 1960 der IPU 1900 durch ein Medium zu einer NIC/SmartNIC (für knotenübergreifende Kommunikationen) oder zurück zu einem lokalen Dienst auf demselben Host laufen. Kommunikationen durch die Medienschnittstelle 1960 der IPU 1900 zu einer anderen IPU können dann gemeinsam genutzten Speicherunterstützungstransport zwischen durch die lokalen IPUs geschalteten xPUs verwenden. Die Verwendung von IPU-zu-IPU-Kommunikation kann Latenz und Jitter durch Eintrittsplanung von Nachrichten und Arbeitsverarbeitung basierend auf einem Dienstebenenziel (SLO: Service Level Objective) reduzieren.
  • Zum Beispiel kann die IPU 1900 für eine Anforderung an eine Datenbankanwendung, die eine Antwort erfordert, ihre Verarbeitung priorisieren, um das Anhalten der anfordernden Anwendung zu minimieren. Die IPU 1900 kann die priorisierte Nachrichtenanforderung, die das Ereignis ausgibt, planen, um eine SQL-Abfragedatenbank auszuführen, und die IPU kann Mikrodienste konstruieren, die SQL-Abfragen ausgeben, und die Abfragen werden an die entsprechenden Vorrichtungen oder Dienste gesendet.
  • 20 stellt ein Beispiel für einen Übersetzer dar. Beispielsweise kann eine IPU Verkehr von Speicherungsmedien zu IPU vermitteln und Transformationen, wie etwa Komprimierung und Verschlüsselung, durchführen. Die IPU kann Datentransfer und Paketbildung initiieren, die entfernte oder virtualisierte Speicherungsvorrichtungen als lokale Dienste, die durch Anwendungen verwendet werden, offenlegen. Die IPU kann Inhalt von Daten ohne weitere Übersetzung in ein Format umwandeln, das zur Verarbeitung durch eine Vorrichtung akzeptiert wird. Zum Beispiel kann zur Erzeugung von Paketen das von der IPU durchgeführte Offload Serialisieren (z. B. Aufheben der Referenzierung von Zeigern und/oder Offsets), Umwandeln einer Datenstruktur von einem Speicherformat in ein EAfertiges Format mit Nutzlast/Puffer und Headern, Validieren von Daten, wie etwa Sicherstellen, dass Werte innerhalb unterstützter Bereiche liegen, oder Einfüllen von Datenstrukturen und Platzieren von Daten an Speicherorten beinhalten.
  • Verschiedene Ausführungsformen eines Übersetzers 2000 stellen zumindest Serialisierung/Deserialisierung 2002 für Netzwerk, Speicherung (Fernspeicherung) und Maschinenlernmodelle und Datensätze bereit. Serialisieren kann Übersetzen einer Datenstruktur in ein Format beinhalten, das (zum Beispiel in einer Datei oder einem Speicherdatenpuffer) gespeichert oder (zum Beispiel über ein Computernetzwerk) übertragen und später (möglicherweise in einer anderen Computerumgebung) rekonstruiert werden kann. Deserialisierung kann das Extrahieren einer Datenstruktur aus einer Reihe von Bytes beinhalten. Transformationen oder Übersetzungen können unter Verwendung von Hardwarezustandsmaschinen, prozessorausgeführter Software, Hardware, regex-Engines unter Verwendung von Schemavorlagen durchgeführt werden.
  • Diverse Ausführungsformen einer Datenformatübersetzung 2004 können Übersetzung zwischen Skalarformat (z. B. Quantität), Vektorformat (z. B. Richtung und Größe) und Tensorformat (z. B. Skalare, Vektoren, Dualvektoren, multilineare Abbildungen zwischen Vektorräumen usw.) durchführen. Verschiedene Ausführungsformen der Datenformatübersetzung 2004 stellen eine Übersetzung von Zeilen- zu Spaltenformaten und umgekehrt bereit. Eine GPU kann zum Beispiel Vektor- oder Tensorformat oder Spalten-/Zeilenformat akzeptieren, aber Skalarformatdaten sind verfügbar und die Datenformatübersetzung 2004 kann eine solche Übersetzung durchführen.
  • Ein Datenformat kann Gleitkomma(FP)-8-Bit, FP16, FP32, FP64 oder ein beliebiges Gleitkomma mit einer Anzahl von Bits, die ein Vielfaches von 2 sind, oder eine Ganzzahl(int)-8-Bit, Ganzzahl-16, Ganzzahl-32 oder eine beliebige Ganzzahl mit einer Anzahl von Bits, die ein Vielfaches von 2 sind, sein. Bei manchen Beispielen kann die Datenformatübersetzung 2004 eine Übersetzung durchführen, die Daten vom Format FP32 in das Format FP16 oder allgemeiner FPX in FPY transformiert, wobei X und Y unterschiedliche Ganzzahlen sind. Bei manchen Beispielen kann die Datenformatübersetzung 2004 eine Übersetzung durchführen, die Daten von intX in intY transformiert, wobei X und Y unterschiedliche Ganzzahlen sind. Andere numerische Formate können transformiert werden, wie etwa bfloatZ (Brain Floating Point), das ein Gleitkommaformat beinhalten kann, das Z Bits in einem Computerspeicher belegt, das einen weiten Dynamikbereich numerischer Werte unter Verwendung eines gleitenden Radixpunkts repräsentiert. Ein beliebiges numerisches Format kann in ein beliebiges anderes numerisches Format umgewandelt werden.
  • Verschiedene Ausführungsformen der Datenformatübersetzung 2004 können Trennung, Mischung, Erzeugung und Anwendung von Bitmasken für Daten-Streaming zumindest zwischen IPU und xPU, xPU und CPU, CPU und GPU, CPU und einer Speicherungssteuerung, NIC und Speicher oder Speicherung usw. durchführen. Eine Trennung kann Erzeugen einer Mehrfachstromausgabe aus einem Strom beinhalten. Mischen kann Senden von Daten zu einem Ziel und Zulassen, dass das Ziel Daten in einen einzigen Datenblock mischt, beinhalten. Beispielsweise kann eine Ziel-IPU eine Mischung durchführen. Eine Bitmaske kann verwendet werden, um ein dichtes Format in einem dünn besetzten Format unter Verwendung eines Nulltests oder Schwellenvergleichs zu repräsentieren, um ein Bit zu verwenden, um Werte als ungleich Null zu identifizieren. Eine Empfänger-IPU kann dichtes Format unter Verwendung der Daten und der Bitmaske erzeugen. Falls ein Empfänger keine IPU ist, können Daten in einem dünn besetzten Format gespeichert werden.
  • Das Bewegen nicht verarbeiteter Daten in eine CPU kann zu einer Ineffizienz führen und den Gesamtdurchsatz reduzieren, Jitter erhöhen und dazu führen, dass CPU-Zyklen für Infrastrukturaktivitäten anstelle von Umsatzerzeugungsarbeit verwendet werden. Das Beenden von Datendiensten an einer IPU (z. B. Datenformatübersetzung 2004) kann effiziente Fähigkeiten zum Parsen, Transformieren, Filtern und anderweitigem Verarbeiten der Daten, die zu der CPU gepusht werden, anstatt Daten zu der CPU zur Formatmodifikation zu pushen, bereitstellen. Die Datenformatübersetzung 2004 kann Daten formatieren, die für das Verarbeitungselement geeignet sind, das Ziel der Daten ist (z. B. eine SQL-Abfrage-Engine usw.). Die Datenformatübersetzung 2004 kann zum Beispiel Schema-Parsen, Datentransformationen, Datenvalidierung, Abgleichen-und-Durchführen, Abgleichen-und-Routen, Abgleichen-und-Extrahieren, Verdichten, Expandieren, Vorlagenfüllung usw. durchführen. Die IPU kann die Datenformatübersetzung 2004 einrichten, um Daten in ein Format zu transformieren, das durch einen prozessorausgeführten Mikrodienst verwendet wird.
  • Das Offloading von Netzwerkoperationen für eine globale hierarchische Steuerebene zur IPU kann stattfinden, um Konfiguration, neue Dienste und Verwaltungsänderungen (z. B. Netzwerk), die durch Software definiert werden, spontan („on-the-fly“) zu erzeugen. Falls eine SmartNIC in einem Knoten oder einer Plattformvorrichtung vorhanden ist oder nicht, der/die an der IPU angebracht ist, kann die IPU auch das Netzwerk-OS zur SDN-Steuerung ausführen. Um IPU-Zyklen zu sparen, kann die IPU, falls es SmartNICs gibt, manche der SDN-Datenebenenoperationen niedriger Ebene, wie Verkapselung/Entkapselung, Verschlüsselung/Entschlüsselung usw., zur SmartNIC abladen, wobei die IPU Steuerebenenoperationen, wie SDN-Richtlinien, wie etwa Routenverwaltung, Einrichtung und Abbau von Kanälen, Verwaltung der Verfügbarkeit und Skalierbarkeit, implementiert. Verschiedene Ausführungsformen des SDN 2006 der IPU können Dienstverwaltung, wie etwa Dienst-Mesh-Lastausgleichsrichtlinien, Sicherungsschalter und Authentifizierung, implementieren. Wie hierin beschrieben, kann die IPU Sicherheitsdienste implementieren, wie etwa Authentifizierung, Schlüsselverwaltung, Attestierung und andere Funktionen, wie etwa hohe Verfügbarkeit und Fehlerbehandlung. Die IPU kann auch lokale Ressourcenzuweisungen, Datenplatzierung, wie etwa lokales Caching oder Vorabrufen von Daten oder Funktionen, schnelle Reaktion auf Ausfälle, Migration von Anwendungen verwalten. Als eine lokale Steuerebene für einen oder mehrere Knoten, die als Teil der Hierarchie der globalen Datenzentrum-Steuerebenen arbeiten, kann die IPU eine schnellere Reaktionszeit und eine begrenztere Größe des zu verarbeitenden Zustands bereitstellen.
  • 21 stellt ein Beispiel für Komponenten eines sicheren Ressourcenmanagers dar. Ein Softwaredienst kann in einer IPU gehostet werden und die IPU kann eine CPU oder Charakteristiken einer CPU beinhalten, um Anwendungen zur Ausführung auf der IPU zu portieren. Mikrodienste können von anderen Mikrodiensten mit Isolation von Speicher, Netzwerk, Speicherung unter Verwendung von VMs oder eines Containers unter Verwendung eines Hypervisors, eines Virtuelle-Maschine-Managers (VMM) oder eines Container-Managers isoliert werden. Die IPU kann eine Mikrodienst-API-Authentifizierung durchführen.
  • Eine IPU kann einen Dienstendpunkt repräsentieren und den sicheren Ressourcenmanager 2100 als einen Dienstendpunkt nutzen. Der sichere Ressourcenmanager 2100 kann einen Plattformmanager bereitstellen, um Plattformressourcendurchführungsabstimmung (z. B. Leistung, Frequenz, Schlaf, Spannung) zu steuern. Eine IPU kann als eine xPU zum Ausführen einer Vielfalt von Infrastrukturdiensten jenseits von Orchestrierung, Verwaltung, Steuerflussüberbrückung oder Datenflussüberbrückung arbeiten. Eine IPU kann Merkmale eines Dienstprozessors (z. B. BMC (Baseboard Management Controller - Basisplatinenverwaltungssteuerung), einer Innovation Engine (IE), einer Verwaltungsentität (ME)) beinhalten und Dienste bereitstellen, die ausgeführt werden, um Leistung, Wärme usw. zu verwalten. Eine IPU kann mit einigen oder jeder xPU in einem Server verknüpft sein, vollständigen Zugriff auf den Speicher haben und kann zusätzlich zur Überbrückung zwischen xPUs andere xPUs auf anderen Servern über ein Fabric oder ein Netzwerk aufrufen. Die IPU kann auch Plattform-Multi-Mandanten-Virtualisierungsdienste bereitstellen, um zumindest einigen Kunden individuelle Steuerung von Diensten, wie etwa Leistungsabstimmungsoptionen, Vorrichtungsverwaltung und Dienst-Offloads, bereitzustellen. Die IPU kann Pro-Mandanten-Dienstziele verwalten und aufrechterhalten, einschließlich Ressourcenzuweisungen, Sicherheitsrichtlinien und Widerstandsfähigkeit oder hoher Verfügbarkeit.
  • Der sichere Ressourcenmanager 2100 kann als ein Sicherheitshub zumindest für Mikrodienste fungieren, die durch eine IPU eingesetzt werden sollen. Eine IPU kann eine Anzahl von Diensten zum Onboarding oder Offboarding von Vorrichtungen und Software (z. B. Hardware auf System-on-Chip(SoC)-Ebene und Software, die zur Offboarding-Zeit einzugliedern oder sicher zu deaktivieren ist) ausführen, um zu steuern, auf welche Ressourcen (einschließlich benutzerdefinierter Vorrichtungen oder Software) ein Dienst zugreifen kann. Der sichere Ressourcenmanager 2100 kann Folgendes durchführen:
    1. 1. Richtliniengesteuerte komponentenübergreifende Mikrosegmentierung, um softwaredefinierte virtuelle Netzwerke über Kompositionen von XPUs und Speicher-Speicherung-Partitionen zu überlagern und zu verwalten,
    2. 2. Verwalten von Lizenzen, Abrechnungen, Gebühren und anderen sicherheitskritischen Diensten,
    3. 3. Verwalten von Reboot-losen Upgrades für Hardware, Software oder Firmware,
    4. 4. Hosten von Bitstromverzeichnissen/-katalogen für FPGA-, Container- oder Funktionsabbilder, die als Soft-Hotplug-Fähigkeiten gestartet werden sollen, usw.
    5. 5. Verwalten von Dienstgüte- oder Dienstniveauzielen, dies kann sich basierend auf Telemetriemessungen (z. B. Latenz, Jitter, Durchsatz, Leistung, Kosten) statisch oder dynamisch ändern, und/oder
    6. 6. Verwalten und Einrichten von Sicherheitsressourcen, wie etwa Schlüssel, und Verwendungsrichtlinie für Speicher, Speicherung und Medien.
  • Der sichere Ressourcenmanager 2100 kann einen Lastausgleich 2102 beinhalten, um einen Lastausgleich von Diensten durchzuführen, die auf xPUs, CPUs, ASICs, FPGAs, eingebetteter kundenspezifischer Siliziumlogik oder -schaltungsanordnung ausgeführt werden und als eine lokale Orchestrierungsebene fungieren, die Dienstniveauziele, Sicherheitsisolation, Telemetrie/Überwachung/Protokollierung gewährleistet.
  • Der sichere Ressourcenmanager 2100 kann Ereignisprotokollierung 2104 beinhalten, um Protokollierung von Ereignissen niedriger Ebene von Plattformhardware, System-on-Chip(SoC)-Komponenten, VMMs oder höheren Systemereignissen durchzuführen, wie etwa unter anderem RPC-Aufrufe, QoS-Verletzungen, Benutzeranmeldung und Richtlinienänderungen. Das Ereignisprotokollieren 2104 kann das Überwachen und Protokollieren von Änderungen an einer Anzahl von Netzwerkendpunkten, RPC (Remote Procedure Calls), gRPC, APIs, Speicherorten, Speicherungsorten oder mehreren benannten Maschinenzuständen auf Vorrichtungen, Tageszeit, Bandbreite, Benutzerzugriff und Authentifizierung, Ressourcenanforderungen und Zugriff auf andere gehostete oder proxidierte Dienste durchführen. Protokollieren von Sicherheitsereignissen in einer sicheren signierten Datenbank mit Hardware-Zeitstempeln und hörbaren Signaturen.
  • Die Implementierung 2106 für Dienstqualitätsziele (SQO) kann eine Implementierung von SQOs, wie in Infrastrukturdienstsoftware, Konfigurationsbibliotheken und sicheren Schlüsselwertspeichern codiert, durchführen. Während die Codifizierung (Deklaration) von SQOs in Software implementiert werden kann, kann die Implementierung in einer Kombination von Hardware und Software implementiert werden, da manche Ereignisse sehr reaktive Hardwaremechanismen erfordern, zum Beispiel Routing zu weniger belasteten Endpunkten, Scheduling-Prioritäten für Latenz, Jitter, Transaktionsraten, Ändern von Eingabe-Ausgabe (E/A) und Speicherbandbreiten, Caching-Prioritäten in CPUs und xPUs, während andere eine langsamere, aber mehr historisch gesteuerte intelligente Anpassung erfordern können, Prozesskennungs(PID)-Steuerung, Entscheiden, ob Turboleistungszustände aktiviert werden sollen, ob verteilte Speicherungsobjekte lokal in RW(Lesen/Schreiben)- oder RO(Nurlese)-Zuständen gecacht werden sollen oder nicht, usw. Das Aggregat-SQO setzt sich häufig aus einer Kette von mehreren Einzeldiensten zusammen. Das Fehlen eines einzelnen individuellen Dienst-SQO kann durch Bereitstellen eines besseren SQO bei nachfolgenden Diensten abgeschwächt werden. Für dynamische Anpassungen kann ein übergeordneter Aggregatzustand in der gesamten Kette bereitgestellt werden.
  • Telemetriedienste 2108 können telemetrieassoziierte Dienste durchführen, die sich auf eines oder mehrere von Folgendem beziehen: Inter-Komponenten-Fluss, Nachrichten-RPC oder API-Telemetrie, Tagging, Sammlung und Parsing, Intra-Komponenten-Telemetrieextraktion und -Parsing, Ende-zu-Ende-Dienst über mehrere Komponenten, Funktionen, Dienste oder Mikrodienste oder Telemetrie und Ereignis-ID und Zeitkorrelation. Telemetrie und Ereignis-ID und Zeitkorrelation können exakt oder statistisch und Isolation zwischen verschiedenen Mandantendomänen und Instanzen (z. B. virtuelle Maschine, Container, Funktionen, PODs), Benutzerzugriff und Dienst (z. B. RPC, API, URL) beinhalten.
  • Telemetriedienste 2108 können eine Detektion einer Telemetrieschwellenüberschreitung (z. B. Latenz, Ressourcenausnutzung) und eine Initiierung von skriptierten Antworten (z. B. Ressourcenzuweisung, Lastausgleich) durchführen. Die Telemetriedienste 2108 können Telemetrieregistrierung durchführen und Veröffentlichen/Subskribieren von APIs sind zusätzliche Fähigkeiten.
  • Die Telemetriedienste 2108 können das Verhalten eines Dienstes entweder auf der Netzwerkschicht verfolgen (z. B. unter Verwendung von 5-Tupel aus ip_Quelle, ip_Ziel, Protokoll, ip_Quelle_Port, ip_Ziel_Port) oder bei Anwendungsschicht-Tracing findet das Verhalten eines Dienstes entweder auf der Netzwerkschicht (unter Verwendung von 5-Tupel aus ip_Quelle, ip_Ziel, Protokoll, ip_Quelle_Port, ip_Ziel_Port) oder auf der Anwendungsschicht (z. B. API/RPC) statt und kann durch Injizieren einer Kennung, die mit den Nutzdaten geführt wird, durchgeführt werden. Um eine Ende-zu-Ende-Tracing-Architektur zu erreichen, kann ein Ansatz beinhalten, dass 1 oder mehr Kennungen verwendet werden, die zu einem Zeitpunkt aneinander gebunden werden können und dann kollektiv verwendet werden können, um das Dienst-/Codeverhalten zu überwachen. Zum Beispiel könnte die IPU einem Agenten, der auf dem Host ausgeführt wird, einen Satz von Kennungen (z. B. UUID für die Anwendungsschicht, eine Ressourcenüberwachungs-ID (RMID) für die Verarbeitungseinheit und eine Prozessadressraum-ID (PASID) für die Speicherverwaltungseinheit (MMU), die IOMMU und die SR-IOV-Vorrichtung) bereitstellen. Diese zusammen mit der Plattform-ID können dann verwendet werden, um eine UUID (z. B. gehashte Kennung) zu erstellen und durch die IPU unter Verwendung von z. B. P4-INT (In-Band-Netzwerktelemetrie) in den Paketfluss eingebettet werden, um den Ende-zu-Ende-Fluss zu überwachen. Auf jeder Stufe der Architektur können eine oder mehrere der Kennungen mit der assoziierten Telemetrie zu dem Telemetriedienst gepusht werden.
  • Es wird angemerkt, dass QoS auf ähnliche Weise basierend auf den SLO-, SQO- und Telemetriemessungen bereitgestellt werden kann. Falls ein SQO, wie etwa Latenz, nicht erreicht wird, dann können zusätzliche Ressourcen (z. B. Cachezuweisung, Speicherbandbreite, Medienbandbreite, Priorität, Replikationsdatenstrukturen, Umleiten von Anforderungen, Replikation von Diensten zum Reduzieren von Lasten usw.) durch den sicheren Ressourcenmanager 2100 zugewiesen werden. Anpassungen können auf historischem Verhalten, Vorlagen oder dynamischen Maschinenalgorithmen basieren.
  • Der Ereignisbezieher 2110 kann Rohprotokolle und Telemetrieinformationen verarbeiten, um komponentenübergreifende (heterogene) Hardware- und/oder Softwareereignisdienste, wie etwa Sourcing (Beziehung), Überwachung, Handhabung, Priorisierung, Filterung und Lieferung von Ereignissen, zu erzeugen. Der Ereignisbezieher 2110 kann die Ausführung von Diensten zwischen Software, die durch eine oder mehrere IPUs ausgeführt wird, und Hardware in IPUs aufteilen, einschließlich ereignisgesteuerter Aktivierung von Empfangskomponenten und/oder Software-Threads.
  • Der Datenübertragungsmanager 2112 kann eine transparente Unterstützung für synchrone und asynchrone Aufrufe und synchrone zuverlässige Datentransfers über asynchrone und Best-Effort-Kanäle niedriger Ebene durchführen. Der Datenübertragungsmanager 2112 kann versuchen, konsistente Schnittstellen zu Anwendungen bereitzustellen, während er abstrahiert, ob der Dienst lokal oder entfernt über das Netzwerk ist (z. B. heterogene gepoolte Beschleuniger).
  • Der Künstliche-Intelligenz(KI)-Beschleuniger 2114 kann für verteilte KI-Hardware und -Software verwendet werden, um eine Brücke zwischen lokalen und entfernten gemeinsam genutzten Speicherdomänen (z. B. CXL) über das Datenzentrumsnetzwerk (z. B. Ethernet oder andere Protokolle) bereitzustellen. Für ein verteiltes KI-Training im Großmaßstab kann der KI-Beschleuniger 2114 Gradienten kombinieren und kombinierte Gradienten über relevante xPUs (sowohl Intra- als auch Inter-Knoten) für jeden Mikrobatch über Knoten und für jede Iteration in jedem Mikrobatch-Intra-Knoten verteilen.
  • Manche Beispiele für eine IPU können eine parallele Datenoperation für KI-Inferenzierung und andere parallele Datenfunktionen, Inferenzoperationen an Daten im lokalen Speicher oder beim Streamen von Daten aus dem Netzwerk, Decodieren und Vorverarbeiten von Daten für KI-Inferenzierung, Bereitstellen und Teilen von KI-Inferenzdiensten für lokale Berechnung/Anwendungen, Mediendecodieren, 5G-/ parallele Netzwerkverkehrsverarbeitung verwalten oder durchführen.
  • Manche Beispiele für eine IPU können MPI(Message-Passing-Interface - Nachrichtenweiterleitungsschnittstelle)-Tag-Abgleich, Offloads für KI-Messaging oder KI-Trainings-Summationsschicht-Offload verwalten oder durchführen.
  • Als eine verteilte programmierbare Entität mit hoher Bandbreite, die von und für jede xPU und für den Systemspeicher und das Systemnetzwerk zugänglich ist, können IPUs leicht Gradienten- oder Gewichtungsaktualisierungen unter Verwendung des KI-Beschleunigers 2114 durchführen und eine cache-kohärente Schnittstelle (wie CXL) automatisch die neuen Gradienten zu jeder XPU propagieren lassen, die ihre eigenen Gewichtungsaktualisierungen anwenden kann. IPUs können XPUs in ein Tumstile einchecken, aktualisierte Gradienten oder Gewichtungen empfangen und mit versionierten Aktualisierungen der Werte fortfahren lassen. Gleichermaßen kann eine zufällig gewählte XPU zu Beginn jedes Mikrobatches alle ihrer aktualisierten Gewichtungen senden, um die gewünschte Synchronität zu erreichen.
  • In manchen Beispielen kann diese Gradientenberechnung (Kombinieren oder Reduzieren) in einer CPU oder in einem Parameterserver (der ineffizient und engpassanfällig sein kann) durchgeführt werden oder erfordert ein spezielles Netzwerk-Fabric, das in der Lage ist, verschiedene netzwerkinterne ALU-Operationen zu unterstützen. Das Durchführen von Gewichtungsaktualisierungen durch einen Parameterserver kann asynchron durchgeführt werden (für Performanz und Gleichzeitigkeit); dies kann aber Stabilitätsprobleme erzeugen, insbesondere beim probabilistischen Deep Learning (tiefen Lernen). Eine IPU kann ein Offloading dieser Funktion bereitstellen, indem Streaming mit hoher Bandbreite und Datentransformationen direkt zu einem Speicherpool mit dem KI-Beschleuniger 2114 bereitgestellt werden, der die Puffer verwaltet und sich mit XPUs teilt.
  • IPU-basierte Gradientenmischung kann in dem Sinne agnostisch zu XPUs sein, dass eine XPU eine CPU, eine GPU, ein FPGA, eine Tensorverarbeitungseinheit (TPU), ein Habana-Prozessor usw. sein kann. Auf diese Weise kann mit IPUs ein quasi-synchroner großmaßstäbiger Deep-Training-Vorteil erreicht werden. (Siehe z. B. Distributed TensorFlow Dev Summit 2018 (z. B. Trainieren von Modellen auf einer Maschine und mehreren GPUs und Einführen einer API, die zum Unterstützen anderer Konfigurationen in Zukunft zugrunde liegt)).
  • Der Intrusionsdetektor 2118 kann Intra-Server-Fehlerisolationsgrenzen für vorrichtungsübergreifende RPC- oder gRPC-Aufrufe und gehärtete Partitionierung über gemeinsam genutzten Speicher verwalten, sodass Speicherzugriffe zwischen Partitionen durch die IPU durchlaufen werden, wobei eine IPU als ein Hardware-Proxy zum Reflektieren von in einer Partition gehostetem Speicher auf Zugriffe von einer anderen Partition agiert. Tatsächlich können Zeigerüberläufe oder wilde, flache Zugriffe durch IPU-basierte Indirektionsreflexionsrichtlinien abgeschnitten werden. Diese Richtlinien können auch verwendet werden, um Sicherheitszugriffsrichtlinien und Intrusionsdetektion von Zugriffen auf beschränkte Bereiche, übermäßige Ressourcen(Bandbreite, Speicherung)-Nutzung, Zugriff auf unautorisierte Dienste/Daten, Authentifizierungsfehlschläge, Aktivität während ungewöhnlicher Zeiten, geographischer Standort, Zugriffsmuster (z. B. Sondieren, Scannen) durchzusetzen.
  • Der Kommunikationsbroker 2120 kann Fähigkeiten für Multiprotokollverkehr und Kommunikationsbrokering nicht nur an der Netzwerkgrenze, sondern auch innerhalb eines Systems an XPU-Grenzen implementieren. Ein Beispiel ist wie folgt. IPU(s)-Hostcode/-bibliothek können Thunking zwischen einer vorherigen Version mancher XPU und einer neuen Version der XPU, die neue Fähigkeiten aufweist, oder umgekehrt, durchführen. Zum Beispiel kann sie dies tun, weil eine veraltete Anweisungssatzarchitektur (ISA) von einer XPU in Version A vorhanden sein kann und in Version B nicht vorhanden sein kann. Ein Thunk kann Anweisungsübersetzung, Protokoll oder Datenübersetzung beinhalten, um Kompatibilität bereitzustellen. Ein System kann eine XPU bei Version A in Knoten X und eine XPU bei Version B in Knoten Y aufweisen. Bei Aufrufen von APIs mit Version A oder B kann, wenn möglich, Thunking angewendet werden. Wenn kein Thunking möglich ist, kann die IPU Aufrufe zu den richtigen Instanzen (z. B. auf Knoten X oder Knoten Y) derselben Anwendung gemäß den Versionen (A oder B) von XPUs, auf denen die Instanzen ausgeführt werden, routen. Eine softe (z. B. emulierte) Version der XPU kann auch eine Lebensdauerende-Version Z unterstützen; und Aufrufe zu Version Z können zu der soften XPU geroutet werden.
  • Der Proxymanager 2122 kann Proxy-Mikrodienstcontainer (z. B. Dienst-Mesh-Sidecars, API-Gateways oder Nachrichtenbusse) für Applets implementieren. Die Applets können Fern-Proxying und -Caching von Diensten bereitstellen, sodass schnelle Pfade oder gemeinsame Aufrufe in den Applets im Auftrag eines Zieldienstes (aufgerufener Dienst) behandelt werden können. In manchen Fällen können, anstatt dass Aufrufe Mikrodienst-zu-Mikrodienst sind, manche Aufrufe zu den IPU-basierten Dienst-Mesh-Sidecars selbst geroutet werden. Dies kann für Weiterleitungs-Proxys und/oder Fern-Proxys gelten. Solche Applets können verwendet werden, um Datenreduktion, Filterung, Caching usw. im Auftrag der aufgerufenen Mikrodienste durchzuführen, sodass (a) weniger als alle Aufrufe tatsächlich Ende-zu-Ende getätigt werden müssen und (b) weniger als alle Daten vom Aufrufer zum Aufgerufenen verschoben oder kopiert werden.
  • IPUs können eng mit XPUs gekoppelt sein, sodass die Applets effizient und mit besserer Gemeinsamnutzung gecachter Daten mit dem Aufrufer und im Kontext des Aufrufers (aber vielleicht mit höherem Privileg) ausgeführt werden können. Auf einer Dienstzu-Dienst-Basis können die Applets eine Attestierung und Validation, da die IPU weder unter der Steuerung des Aufrufers noch unter der Steuerung des Aufgerufenen steht, Verkehrs-Batching und -konsolidierung und Ausführen administrativ gespeicherter Prozeduren durchführen (und somit Smart-Verträge durchsetzen kann). Im Fern-Proxy-Betrieb können die Applets die Belastung des aufgerufenen Mikrodienstes reduzieren und können Latenz reduzieren, indem sie gegebenenfalls gecachten Inhalt zurückgeben.
  • Applets können auch eine Datenerweiterungs- und Transformationsfunktion durchführen, wie etwa einen in der IPU abgeladenen PubSub-Nachrichten-Busdienst. Die IPU kann die Speicherung, Datentransformation und zuverlässige Multicast-Übertragung zu subskribierten Endpunkten verwalten. Dies kann Host-CPU, Speicherkopien und EA-Busvoraussetzungen reduzieren. Abgeladene Container-Sidecar-Agenten in die IPU können in manchen Beispielen Gesundheitsüberwachung (z. B. schnellere lokale Steuerung der Wiederherstellung bereitstellen) oder etcd (z. B. unter Verwendung stark konsistenter, verteilter Schlüsselwertspeicher für stärkere Datensicherheit für gemeinsam genutzte Geheimnisse) durchführen.
  • Der Ausführungsmanager 2124 kann eine zuverlässige Ausführung von Ende-zu-Ende-Streaming-Datenanwendungen mit und ohne SmartNICs zwischen einem Mikrodienst M1 auf einer XPU X1 in einem Knoten N1 und einem Mikrodienst M2 auf einer XPU X2 in einem anderen Knoten N2 implementieren. Eine SmartNIC, die Speicherungssteuerungsbetrieb bereitstellt, kann Protokollverarbeitung in der SmartNIC und Beschleunigung verschiedener Speicherungs-Networking-Protokolle, Kryptographie, TCP-Offload-Engine, in den Kernen der SmartNIC bereitstellen, und die SmartNIC kann ein Verkehrsendpunkt werden.
  • Eine SmartNIC weist möglicherweise keine Fähigkeit auf, auf Software- oder XPU-Ausfälle zu reagieren, und kann daher die Steuerung zu einer Entität umleiten, die ein Failover von etwa M1 zu M3 oder von X1 zu X3 oder von M2 zu M4 oder X2 zu X4 durchführen kann, um einen (Ende-zu-Ende-) Dienst höherer Ebene zur Dienstzuverlässigkeit zu erreichen. Anstelle oder zusätzlich zu der Verantwortung für die Behandlung der Zuverlässigkeit für Ende-zu-Ende-Streaming-Datenanwendungen auf Peer-zu-Peer-Ebene kann in einem IPU-basierten System eine IPU als eine Para-Virtualisierung einer XPU fungieren und daher die XPU und Mikrodienste auf dieser XPU überwachen (z. B. Überwachen ihrer Heartbeats oder anderer Indikationen) und eine Abhilfemaßnahme initiieren, wie etwa Erzeugen einer neuen Instanz (z. B. für Softwarefehler) und Routen zu einer registrierten Failover-XPU (für Hardwarefehler) an der XPU.
  • Wie hierin beschrieben, kann eine IPU als eine Steuerebene ausgeführt werden und entscheiden, ob ein Backup-Dienst ausgeführt werden soll oder zusätzliche Ressourcen angefordert werden sollen. Die IPU kann eine Kind-SDN-Steuerung oder einen Hypervisor ausführen. IPU-zugewiesene Ressourcen oder Backup-Ressourcen.
  • Die IPU kann Kryptographie nutzen, um eine Verschlüsselung und Entschlüsselung von Inhalt bereitzustellen, der zwischen Vorrichtungen in einer IPU oder von einer IPU zu einer anderen IPU oder von einer IPU zu einer anderen Vorrichtung übertragen wird. Eine IPU kann als ein Vertrauensagent und eine Brücke zwischen vertrauenswürdigen Kommunikationen und Diensten fungieren. TME (Total Memory Encryption - Gesamtspeicherverschlüsselung), MKTME (Multi-Key Total Memory Encryption - Mehrfachschlüssel-Gesamtspeicherverschlüsselung), TDX (Trusted Domain Extensions - vertrauenswürdige Domänenerweiterungen), DDR-Verschlüsselung, Function-as-Service(FaaS)-Container-Verschlüsselung oder eine Enklave/TD (Trust Domain - Vertrauensdomäne) können verwendet werden. Metadaten können eines oder mehrere von Folgendem beinhalten: zu erfüllende Service-Level-Agreement(SLA)-Parameter (z. B. TCO), erwartete Speicherbandbreitennutzung, erwartete Paketempfangsrate, Latenzempfindlichkeitsniveau oder Jitter-Empfindlichkeitsniveau.
  • Mehrere Arten des Bereitstellens von Verschlüsselung können verwendet werden, einschließlich Virtualisierung, physische Partitionierung, Vertrauensdomänen, sichere Enklaven, Intel® SGX, Intel® TDX, AMD-Speicherverschlüsselungstechnik, AMD SME (Secure Memory Encrayption - sichere Speicherverschlüsselung) und SEV (Secure Encrypted Virtualization - sichere verschlüsselte Virtualisierung), ARM® TrustZone®, Apple sicherer Enklavenprozessor oder Qualcomm® vertrauenswürdige Ausführungsumgebung. Eine sichere Enklave/Vertrauensdomäne kann ein Speichergebiet oder ein Prozessor oder beides sein, auf die Prozesse außer designierten und beschränkten Prozessen, virtuellen Maschinen oder Containern nicht zugreifen können.
  • Verschlüsselung oder Entschlüsselung kann zum Beispiel TME (Total Memory Encryption) und MKTME (Multi-Key Total Memory Encryption) verwenden, die im Handel von Intel Corporation erhältlich sind (wie in der Intel Architecture Memory Encryption Technologies Specification (Spezifikation für Speicherverschlüsselungstechnologien der Intel-Architektur) Version 1.1 vom 17. Dezember 2017 und späteren Revisionen beschrieben ist), Komponenten, die TME und MKTME bilden, wie TME und MKTME arbeiten, und so weiter. Diese Technologien können verwendet werden, um eine leicht verständliche Perspektive zum Verständnis der verschiedenen offenbarten Ausführungsformen bereitzustellen, und sollen Implementierungen nicht auf das Einsetzen von nur TME und MKTME beschränken. TME stellt ein Schema zum Verschlüsseln von Daten durch Speicherschnittstellen bereit, wobei eine Speichersteuerung die Daten verschlüsselt, die zu dem Speicher fließen, oder Daten entschlüsselt, die von dem Speicher fließen, und Klartext zum internen Verbrauch durch den Prozessor bereitstellt.
  • Bei manchen Beispielen ist TME eine Technologie, die den gesamten Speicher oder einen Teil eines Speichers einer Vorrichtung mit einem Schlüssel verschlüsselt. Wenn es über eine Konfiguration eines BIOS (Basic I/O System) (oder UEFI (Universal Extensible Firmware Interface) oder eine Bootloader-Konfiguration) ermöglicht wird, kann TME liefern, dass ein Speicher, auf den ein Prozessor auf einem externen Speicherbus zugreift, verschlüsselt wird, einschließlich Kundenzugangsdaten, Verschlüsselungsschlüssel und andere geistige Eigentumsinformationen (IP-Informationen) oder persönliche Informationen. TME unterstützt eine Vielzahl von Verschlüsselungsalgorithmen und kann in einer Ausführungsform einen NIST(National Institute of Standards and Technology)-Verschlüsselungsstandard zur Speicherung verwenden, wie etwa den AES(Advanced Encryption System)-XTS-Algorithmus mit 128-Bit-Schlüsseln. Der zur Speicherverschlüsselung verwendete Verschlüsselungsschlüssel wird mit einem gehärteten Zufallszahlengenerator im Prozessor erzeugt und nie für Software offengelegt. Daten im Speicher und auf den externen Speicherbussen können verschlüsselt sein und befinden sich im Klartext innerhalb der Prozessorschaltungsanordnung. Dies ermöglicht es, dass bestehende Software unverändert läuft, während Speicher unter Verwendung von TME geschützt wird. Es kann Szenarien geben, bei denen es vorteilhaft wäre, einen Teil des Speichers nicht zu verschlüsseln, sodass TME dem BIOS (oder UEFI oder Bootloader) ermöglicht, einen physischen Adressbereich des Speichers zu spezifizieren, der unverschlüsselt bleibt. Die Software, die auf einem TME-fähigen System abläuft, hat volle Sichtbarkeit in alle Speicherabschnitte, die konfiguriert sind, nicht durch TME verschlüsselt zu werden. Dies kann durch Lesen eines Konfigurationsregisters im Prozessor erfolgen.
  • Bei manchen Ausführungsformen kann TME mehrere Verschlüsselungsschlüssel (Multi-Key TME (MKTME)) unterstützen und stellt die Fähigkeit bereit, die Verwendung eines spezifischen Schlüssels für eine Speicherseite zu spezifizieren. Diese Architektur ermöglicht entweder prozessorgenerierte Schlüssel oder mandantenbereitgestellte Schlüssel, wodurch Kunden volle Flexibilität verliehen wird. VMs und Container können im Speicher mit separaten Verschlüsselungsschlüsseln kryptographisch voneinander isoliert werden, die in Multi-Mandanten-Cloud-Umgebungen verwendet werden können. VMs und Container können auch gepoolt werden, um einen individuellen Schlüssel zu teilen, wodurch Skalierbarkeit und Flexibilität zusätzlich erweitert werden.
  • Eine beispielhafte Enklave/Vertrauensdomäne kann eine vertrauenswürdige Ausführungsumgebung (TEE: Trusted Execution Environment) sein, die eine isolierte Ausführungsumgebung ist, die Sicherheitsmerkmale bereitstellt, wie etwa isolierte Ausführung (Vertraulichkeit), Integrität von Anwendungen (und Gastbetriebssystemen), die mit der TEE ausgeführt werden, zusammen mit Vertraulichkeit ihrer Assets. TEEs helfen, Angriffe, die auf zugrundeliegende Schichten des Stapels abzielen, einschließlich des Host-Betriebssystems, Host-Hypervisors, Vorrichtungen, Treibern und Firmware, durch Bereitstellen spezialisierter Ausführungsumgebungen, die als „Enklaven/Vertrauensdomänen“ bekannt sind, abzuwehren. TEE kann eine Steuerebene für eine IPU sein, kann aber eine Hardwaredurchsetzungslogik beinhalten. Jede Vertrauensdomäne kann ihren eigenen ephemeren Schlüssel aufweisen, der eine zusätzliche kryptographische Isolation ermöglicht. Hardware- oder Softwarelink-Verschlüsselungsverfahren können verwendet werden, um zwei Vertrauensdomänen zu verbinden, wobei jede Vertrauensdomäne über eine IPU auf separaten XPUs betrieben werden kann.
  • Eine beispielhafte Enklave kann eine logische Sammlung von Entitäten sein, die zu derselben „vertrauenswürdigen“ Domäne mit sicherer Kommunikation zwischen Entitäten gehören. Es können mehrere Enklaven innerhalb eines Pods vorhanden sein. Eine Enklave kann sich über mehrere Pods erstrecken. Eine Enklave kann eine oder mehrere gemeinsam genutzte Speicherdomänen beinhalten. Entitäten innerhalb einer Enklave können nicht gemeinsam genutzte Speichergebiete enthalten. Es kann eine Vertrauensbeziehung zwischen Enklaven bestehen. Eine Enklave kann Teile des Speichers anderen Enklaven offenlegen.
  • 22 stellt ein beispielhaftes Sicherheit-und-Root-of-Trust-System dar. Mit vertraulicher Berechnung ist es kritisch, in der Lage zu sein, für einen gegebenen Dienst (falls herausgefordert) zu attestieren, dass alle Elemente in dem verteilten System die Dienstsicherheitsziele erfüllen. Mittels einer Technologie wie etwa Blockchain kann die Vertrauenskette erstellt werden, die dann von einem Dienst sicher gelesen werden kann. Um die Vertrauensfolge aufzubauen, erfordert jedoch eine Koordination über die verteilten Vorrichtungen hinweg und eine Gewährleistung, dass Vertrauenskontext angemessen kommuniziert wird (siehe Messaging oben). Die IPU kann dieses verteilte Vertrauensmodell unterstützen und stellt eine sichere Brücke zwischen Domänen bereit.
  • Eine sichere Überbrückung 2202 kann sichere Überbrückung von Sicherheitsperimetern zwischen mehreren unabhängigen Hardware-Roots-of-Trust und attestierter Firmware oder Software (um vertrauenswürdige Cliques zu bilden) und sicheres richtliniengeführtes Propagieren/Delegieren von Vertrauen innerhalb von Servern und zwischen Peer-Servern bereitstellen. Die sichere Überbrückung 2202 kann ferner Kernel- und Benutzerraum-zu-Benutzerraum-Steuerung und Datentransfers und -migration bereitstellen, ohne durch Überwachungssoftwareschichten zu gehen.
  • Beispielsweise können sichere Überbrückung und Attestierung in Links in einer Funktionskette angewendet werden, um eine sichere Übertragung von Daten und eine sichere Berechnung bereitzustellen. Eine Neuverhandlung von Vertrauen für Dienste, Mikrodienste, Elemente oder Vorrichtungen in einem Datenpfad mit richtigen Schlüsseln kann vermieden, aber genutzt werden. Eine IPU kann Sicherheit mit einer Vorrichtung in einer Kette oder einem Pfad von Vorrichtungen verhandeln. Nachdem die Sicherheit durch einen Pfad von Vorrichtungen erreicht ist, kann einem Datenpfad zu Vorrichtungen in dem Pfad vertraut werden. Die Verschlüsselung und Entschlüsselung kann an jedem Verbindungspunkt zwischen Vorrichtungen erfolgen. Von jedem sicheren Element in der Kette können Daten weitergeleitet werden. Daten können Code oder einen Schlüssel beinhalten, der dahingehend als zulässig verifiziert wird, auf einer Vorrichtung verarbeitet zu werden, zusätzlich dazu, dass jede Vorrichtung als vertrauenswürdig verifiziert wird.
  • Falls eine Vorrichtung Software- oder Vorrichtungseigenschaften ändert (z. B. Aktualisierungen oder Änderungen an Anwendungen, Diensten oder Mikrodiensten, Änderungen an Netzwerkrouting (z. B. über unverschlüsselte Links), Änderungen in Dienstorten (z. B. Einsatz außerhalb des regulatorischen Gebiets), Firmware-Änderung, Mikrocode-Änderung, geänderte Speichermenge, geänderte Speicherungsmenge, Hot-Added-Vorrichtung oder Hot-Removed-Vorrichtung), dann kann eine IPU aktive Sitzungen anhalten und die Vorrichtung mit geänderten Eigenschaften erneut attestieren oder erneut authentifizieren, bevor sie die Verwendung der Vorrichtung erlaubt.
  • Eine Vorrichtung kann einer IPU angeben oder veröffentlichen, falls sich die Vorrichtung in Debug-Modus, Funktionsrücksetzung oder Firmware-Aktualisierung befindet, und kann eine Nachricht an die IPU senden, um eine Änderung der Eigenschaften anzugeben. In manchen Fällen kann eine IPU eine Firmware-Aktualisierung erlauben und die Vorrichtung für bestimmte Firmware-Aktualisierungen für bestimmte Vorrichtungen als vertrauenswürdig halten. Die IPU kann manche Vorrichtungsrechte von vertrauenswürdiger Verwendung widerrufen, falls sich die Vorrichtungseigenschaft ändert. Die IPU kann Vorrichtungen periodisch auf jegliche Änderungen überprüfen und die Vorrichtung validieren. Die Vorrichtung kann mit einem Zertifikat für bestimmte Software- oder Firmware- oder Vorrichtungseigenschaften validiert werden.
  • Als eine lokale Ressource, die sich Mandantenereignissen bewusst ist, kann die Sicherheits-Engine 2204 der IPU auch Sicherheitsaktionen (z. B. Neuattestierung oder Neuauthentifizierung von Vorrichtungen oder Software) basierend auf Mandantenaktionen/Ereignistypen und der Sicherheitsrichtlinie oder des Sicherheitsrisikos auslösen, bevor sicherheitsbezogene Aktionen, wie etwa Zugreifen auf Schlüssel, Speicherung, RPCs, APIs, gemeinsam genutzte Speichergebiete oder Ändern der Benutzeridentität, Ressourcennutzung usw., ermöglicht werden.
  • Ein Satz von Vertrauensausdrücken kann angewendet werden, wie etwa ein Mandant X kann gemeinsam als Co-Mandant mit einem Mandanten Y verwaltet werden, unter der Bedingung, dass der Mandant Y durch Z attestiert wurde oder dass eine Messung von Y mit einer von drei neueren Versionen übereinstimmt, die für Y genehmigt sind usw. Diese Ausdrücke können verschiedene Pfade mit verschiedenen Kombinationen von Sicherheit und Vertrauen und datenschutzgarantierenden Attributen verschiedener Dienste und die Infrastruktur-XPUs und Plattform, auf denen sie versendet werden, codifizieren. Diese deklarativen Verfahren zum Ausdrücken von Vertrauen können zu einer Laufzeit-Komposition bzw. -Kompilation der notwendigen Bestandteile für Dienste führen.
  • In manchen Beispielen können zu der Zeit, zu der Plattformressourcen einem Mikrodienst zugewiesen werden, das Vertrauen, das der Mikrodienst der Plattformressourcen erfordert, und das Vertrauen, das von der Plattform dieses Mikrodienstes benötigt wird, aus Ausdrücken berechnet werden. Dann kann das erforderliche Vertrauen durch Durchführen unterschiedlicher Messungen, Verifizierungen, Attestierungen und anderer Operationen erreicht werden. Das Vertrauen kann ferner durch Richtlinien gesteuert werden, die vorschreiben oder durchsetzen, dass verschiedene Operationen in vorgeschriebener Reihenfolge durchgeführt werden. Ein potenzieller Vorteil besteht darin, dass anstelle der monolithischen Handhabung von Orchestrierung und Sicherheit formale Vertrauensspezifikationen flexibel durchgeführt werden können, je nachdem welche Optionen zur Verfügung stehen. Dies führt zu einem „software- oder richtliniendefinierten Sicherheits“-Ansatz, bei dem die IPUs, die unabhängig als Hardware-Roots-of-Trust vertraut und verifiziert werden, der Ankermechanismus zum Zusammenstellen des Vertrauens gemäß formalen Spezifikationen werden, während sie eng mit Ressourcenbereitstellungs- und Zusammenfügungsfunktionen von Orchestratoren arbeiten. Sie ermöglicht auch eine nicht virtualisierte (z. B. Bare-Metal-) Partitionierung von Ressourcen durch IPUs, die als die Fabrik zur Schichtbildung in den benötigten Vertrauens- und Isolationsgrenzen fungieren, ohne VEEs zu erzwingen, bei denen es Performanz-, Agilitäts- oder andere Gründe für Bare-Metal-Ausführung gibt.
  • Die Orchestrierung von Vertrauen kann auch mit benachbarten Mechanismen assoziiert werden, wie Protokollieren der erforderlichen Operationen und deren Ergebnisse, sodass die Erstellung des Vertrauens neben den Gründen, die Erstellung zu ermöglichen, aufgezeichnet wird.
  • Die IPU kann ein Koordinator mit anderen Vorrichtungen sein, wobei die Vertrauens- und Kompositions-APIs Vertrauensinseln erzeugen, modifizieren und überbrücken, die Hardwarekomponenten, Softwarekomponenten und Speichergebiete in jeder Insel beinhalten. Dies kann eine flexible agentenlose Mikrosegmentierung ermöglichen, bei der es, wenn sich die Rechenbeziehungen ändern oder entwickeln, nicht notwendig ist, Anwendungssoftware, Bibliothekssoftware und so weiter zu ändern, um die Vertrauensgrenzen erneut zu schaffen. Die IPU kann als eine agentenlose Mikrosegmentierung ohne Softwarehindernisse fungieren.
  • Die sichere Überbrückung 2202 kann eine sichere vertrauenswürdige Rechenbrücke zwischen vertrauenswürdigen Ausführungsumgebungen (TEEs) an verschiedenen XPUs bereitstellen. Außerdem kann eine IPU als eine sichere Brücke zwischen der TEE an einer XPU und einer TEE an einer SmartNIC fungieren. Dies kann eine dynamische Rekonstitution einer TEE ermöglichen, die mehrere XPUs, Speicher, Speicherung und SmartNICs überspannt. Dies kann es der IPU auch ermöglichen, Live-Migration (z. B. Virtuelle-Maschine-, Container-, Daten- oder Schlüsselmigration) für Einsätze über virtualisiert, containerisiert und Bare-Metal zu koordinieren und zu verwalten.
  • Code kann in vertrauenswürdigen Umgebungen ausgeführt werden. Eine Blockchain kann abgefragt werden, um Attestierungsprofile verfügbarer Ressourcen zu bestimmen und zu bestimmen, ob die Ressourcen vertrauenswürdig sind. Die IPU kann Vertrauen vor der Ausführung des Dienstes oder während der Ausführung des Dienstes feststellen. Die IPU kann die Vertrauenskette bestimmen, bevor Ergebnisse bereitgestellt werden. Lokale Attestierung und Attestierung können innerhalb einer Blockchain aufgezeichnet werden und nach Rückgabe eines Ergebnisses kann eine IPU überprüfen, ob eine gesamte Vertrauenskette erfüllt ist. Attestierung kann eine vertrauenswürdige virtuelle Umgebung, vertrauenswürdige Firmware-Versionen, Netzwerksteuerung, Firmware in der IPU beinhalten. Attestierung kann in manchen Beispielen Verifizieren eines Hash von Zertifikaten beinhalten.
  • Der Namensraum 2206 kann jede Bestandteilentität mit einer unveränderlichen UID registrieren, ihre Eigenschaften codieren, die verschiedenen codierten Eigenschaften und ihre vom Menschen lesbaren symbolischen Namen in einem IPU-privaten nichtflüchtigen Speicherbereich speichern usw. Der Namensraum 2206 kann als Hardwareschaltungsanordnung implementiert sein, die es IPUs ermöglichen kann, autonom zu sein, ohne dass CPU-basierte Software- oder Firmware-Agenten einen sicheren Boot-Prozess, einen sicheren Onboarding-Prozess usw. durchführen müssen. Stattdessen kann diese Verantwortung mit einer Datenbank abgeschlossen werden, die durch eine Namensraum-Schaltungsanordnung (z. B. IPU-basierte Software-Agenten) erstellt und verwaltet wird.
  • Der Namensraum 2206 kann von Cloud-basierten Diensten anstelle von Host-CPUbasierten Initialisierungs- oder Abschaltmechanismen angesteuert werden und kann in Bare-Metal-Einsätzen oder Multi-Mandanten Umgebungen verwendet werden. Sicherheitsmaterialien und Krypto-Schlüssel können alle durch sichere Registrierungs- und Schlüsselinjektionsfähigkeiten eingegliedert werden, sodass IPU-Einheiten die grundlegenden Mechanismen sind, um die herum der Rest von Sicherheits- und Verwaltungssteuerungen automatisiert werden kann.
  • Die Dienstverwaltung 2208 kann einen kopflosen Betrieb von XPUs, FPGAs oder anderen Vorrichtungen bereitstellen, einschließlich der Verwaltung ihrer Bitströme, FPGA-Slice-Zuordnungen usw. zur Verwendung durch unterschiedliche FPGA-beschleunigte Dienste. Die FPGAs (oder andere Vorrichtungen) können Teil eines FPGA-Pools oder einer FPGA-Rechenpartition sein, die durch eine IPU als Frontend angeführt wird und durch eine Legacy-NIC verbunden ist.
  • Während solche Operationen an einem FPGA implementiert werden können, indem das FPGA einen „Soft-IPU“-Bitstrom implementiert, das heißt potenziell (a) viel Overhead und Gate-Zählung an der FPGA-Steuerung für eine komplexe Operation, die idealerweise und effizienterweise einer IPU überlassen wird, und (b) während sich theoretisch eine Soft-IPU durch Aktualisieren des Bitstroms entwickeln kann, ist sie nicht so flexibel oder effizient oder einfach wie die Aktualisierung der Software auf einer IPU. Derartige Operationen können jedoch in beliebigen Ausführungsformen an einem FPGA implementiert werden. Die Dienstverwaltung 2208 kann eine aktive Verwaltung von Bitstrom-Abbildung und Scheduling von Slices, Sicherheitsattestierung, Richtliniendurchsetzung usw. bereitstellen.
  • Die Dienstverwaltung 2208 kann Objekte nach Bedarf starten, Daten-on-Pull durch Aufrufen eines Generators erzeugen und so weiter. Eine IPU kann Wrapper-Mikrodienste orchestrieren und hosten, deren Aufgabe es ist, das tatsächliche Spawning der realen Mikrodienste durchzuführen, die sie wrappen. Obwohl Vorrichtungen (z. B. XPUs, Speicher, Speicherung, andere Plattformkomponenten) attestiert und gemessen und zu Kompositionen von virtuellen Maschinen, Containern usw. zusammengebracht werden, sind manche Vorrichtungen leichter als andere in einem gegebenen festgelegten Vertrauensniveau anzubinden und manche Softwarekomponenten sind aus verschiedenen Gründen vertrauenswürdiger als andere.
  • Die asymmetrische Vertrauensschaltungsanordnung 2210 kann die Fähigkeit implementieren, asymmetrisches Vertrauen innerhalb einer Komposition durchzusetzen, sodass zum Beispiel Daten, die von der Quelle A zu dem Ziel B fließen, einem Satz von Bedingungen unterliegen, aber dass Daten, die von B zu A fließen, einem anderen Satz von Bedingungen unterliegen, der ein strikterer Satz von Bedingungen ist. Um solche Regeln zu implementieren, könnten IPUs mehrere Gruppen von Seitentabellen implementieren, durch die Zugriffe auf physische Seiten gehandhabt werden, und unterschiedliche Module logisch so behandeln, als wären sie unterschiedliche Prozesse („Subprozesse“), obwohl Daten in demselben Satz physischer Seiten sind und auf dieselben virtuellen Adressen abgebildet werden, wobei unterschiedliche Seitentabellen einen Dereferenzierungspunkt bereitstellen, um zu prüfen, ob zu einem aktuellen Zeitpunkt ein bestimmter Subprozess eine bestimmte Adressraumadresse übersetzen darf. Obwohl die Durchsetzung in XPUs selbst vorgenommen werden kann, können IPUs als Helfereinheiten zum flexiblen Zusammensetzen solcher Multi-Subprozess-Räume fungieren, in denen die Seitentabellenseiten in eine Hierarchie von Äquivalenzsätzen und -teilsätzen organisiert werden können.
  • Unterschiedliche Privilegierungsebenen können mit einem VMM, einem Host-OS, einem Gast-OS, einem Host-OS-Prozess, einem Gast-OS-Prozess, einer Host-/Gast-OS-Bibliothek usw. assoziiert sein. Anstelle von streng geschichtetem Vertrauen können die Vertrauensbeziehungen jedoch durch einen gerichteten Graphen modelliert werden, sodass ein Vertex A in dem Graphen einem Vertex B vertrauen kann, falls B von A erreichbar ist (aber damit B A vertraut, muss A von B erreichbar sein).
  • Der Vertrauensbroker 2212 kann auch logische Strukturen, wie etwa ML-Modelle, -Datensätze und -Ergebnisse schützen, diese als unterschiedliche logische Vorrichtungen schützen und unabhängig zugriffsgesteuert werden. IPUs sind in die Plattform integriert; Drittpartei-IPUs können hineingestaltet werden, z. B. können einige ihrer Grundelemente „eingebrannt“ oder „sicher eingegliedert“ werden. Sobald dies geschehen ist, können die IPUs verwendet werden, um die Sichtbarkeit von Operationen und den Zustand einer SoC-Komponente, die von dem Anbieter A hergestellt wird, und einer anderen SoC-Komponente, die von dem Anbieter B hergestellt wird, einzuschränken, gemäß Eingriffsregeln zwischen den SoC-Komponenten, die von verschiedenen Anbietern A und B hergestellt werden. Somit wird verhindert, dass B in der Lage ist, A zu „testen“, und es wird verhindert, dass A in der Lage ist, B zu „testen“, mit Ausnahme von vorherigen Eingriffsregeln. Somit können A und B während eines Silizium-Debugging-Flusses in der Lage sein, einen Satz von Speicherorten gemeinsam zu nutzen, jedoch können, sobald das Debugging abgeschlossen ist und die Plattform produziert ist, A und B durch Randomisierung, die durch IPUs eingeführt wird, teilweise voneinander verdeckt werden. Dies soll sowohl eine Informationsextraktion durch Sondieren (Senden von Eingaben, die niemals in einer bestimmten Kombination auftreten können) als auch durch physisches Scraping oder Tracing von ICs verhindern.
  • Durch Erkennen, dass es gelegentlich notwendig sein kann, die Sichtbarkeit auf A von B oder auf B von A wieder zu öffnen oder zu erweitern, können IPUs Mechanismen implementieren, um temporäre Änderungen in den Eingriffsregeln zu ermöglichen. Allgemein kann dies der Fall sein, wenn die Partei, die Drittpartei-SoCs von A und B integriert hat, A und B zusammen in ein geleitetes Testregime bringt, sodass nur die vorgeschriebenen Tests durchgeführt werden, nur das vorgeschriebene Tracing durchgeführt wird und, sobald die Daten gesammelt wurden, die Eingriffsregeln auf Original zurückgesetzt werden.
  • 23A stellt ein Beispiel für ein Ressourcenkompositionssystem dar. Für eine IPU kann ein Ressourcenkompositionssystem 2300 einen kopflosen Betrieb durch eine IPU bereitstellen (z. B. keine CPU benötigen), um Operationen für Speicherung, für Beschleuniger (z. B. Intel® QuickAssist Technology (QAT) oder äquivalent), für GPUs, für XPUs, für Speicherpools (die Datenzentrum-Peers über entweder eine Legacy-NIC oder eine SmartNIC versorgen) oder andere Vorrichtungen zu initiieren. Eine IPU kann Befehle an andere Vorrichtungen im Namen eines Mandanten oder einer Arbeitslast unter Verwendung lokaler oder entfernter Vorrichtungen ausgeben. Die Funktionen der IPU wie etwa Beschleunigung, Sicherheit, Telemetrie usw. ermöglichen die dynamische Komposition von Systemen, die aus CPU-, XPU-, Speicher-, Speicherungsressourcen aufgebaut sind, die entweder lokal oder nahe dem Knoten oder entfernt oder fern in verteilten Knoten angeordnet sind.
  • Ein Speicherpoolknoten kann eine oder mehrere Speicherstufen beinhalten. Zum Beispiel können mehrere Speicher- oder Speicherungsstufen eines oder mehrere von Folgendem beinhalten: einen Cache (z. B. L1-, L2-, L3-, Low-Level-Cache (LLC)), Speicher (z. B. JEDEC-DDR-kompatibler Speicher oder JEDEC-HBM-kompatibler Speicher), persistenter Speicher (z. B. Intel® Optane ® oder Samsung Z-NAND), Speicherung (z. B. NAND oder 3D-NAND), Festplattenlaufwerke oder 2-Level-Speicher (2LM). Verschiedene Ausführungsformen können mindestens zwei Speicherebenen verwenden (hier alternativ als „2LM“ bezeichnet), die gecachte Teilsätze von Systemplattenebenenspeicherung (zusätzlich zu zum Beispiel Laufzeitdaten) beinhalten. Der Host 1606 kann einen Hauptspeicher beinhalten, der eine erste Ebene beinhaltet (hierin alternativ als „Nahspeicher“ bezeichnet), die kleineren schnelleren Speicher beinhaltet, der zum Beispiel aus DRAM oder einem anderen flüchtigen Speicher besteht; und eine zweite Ebene (hierin alternativ als „Fernspeicher“ bezeichnet), die größeren und langsameren (in Bezug auf den Nahspeicher) flüchtigen Speicher (z. B. DRAM) oder nichtflüchtigen Speicher (z. B. Flash-Speicher oder byteadressierbaren nichtflüchtigen Speicher (z. B. Intel® Optane® oder Samsung Z-NAND)) beinhaltet. Der Fernspeicher kann dem Host-Betriebssystem (Host-OS) als „Hauptspeicher“ präsentiert werden, während der Nahspeicher ein Cache für den Fernspeicher ist, der für das OS transparent ist, wodurch die unten beschriebenen Ausführungsformen als dieselben erscheinen wie Hauptspeicherlösungen des Stands der Technik. Die Verwaltung des Zweiebenenspeichers kann durch eine Kombination von Logik und Modulen erfolgen, die über die Host-Zentralverarbeitungseinheit (Host-CPU) ausgeführt werden. Der Nahspeicher kann über Mittel mit hoher Bandbreite und niedriger Latenz zur effizienten Verarbeitung mit der Hostsystem-CPU gekoppelt sein. Der Fernspeicher kann über Mittel mit niedriger Bandbreite und hoher Latenz (im Vergleich zu jenem des Nahspeichers) mit der CPU gekoppelt sein.
  • Das Ressourcenkompositionssystem 2300 kann Arbeit von der xPU, CPU oder GPU auf die IPU abladen. Spezialisierte Plattformen (z. B. Beschleuniger oder Speicherung), die keine CPU- oder GPU- oder unzureichende CPU- oder GPU-Ressourcen zum Verbessern der Kapazität des Datenzentrums aufweisen, können Arbeit an eine IPU abladen. Eine CPUausgeführte Anwendung kann Konfigurationen spezifizieren und den Rest des Systems (z. B. IPU und ihre Beauftragten) Aufgaben bearbeiten lassen.
  • Das Ressourcenkompositionssystem 2300 kann einen kopflosen Betrieb bereitstellen. Zum Beispiel kann eine IPU Anforderungen behandeln (z. B. basierend auf einem Abhängigkeitsgraphen (A, geschrieben vor B, und B, geschrieben vor C, so wenn A als Erstes empfangen wird, A schreiben oder atomares Festschreiben von A, B und C anwenden (alles oder nichts)), Ordnen der Ausführung von Speichertransaktionen (Lesen, Lesen, Schreiben» und auch Speichern von Daten. Eine IPU kann die Operationsreihenfolge verwalten, anstatt dass Initiatorsoftware Anforderungen der Reihe nach ausgibt.
  • Das Ressourcenkompositionssystem 2300 kann mit einem NVMe-Laufwerk oder persistenten Speicher kommunizieren. Das Ressourcenkompositionssystem 2300 kann zum Beispiel eine Blockspeicherung als Überlauf für persistenten Speicher behandeln. Das Ressourcenkompositionssystem 2300 kann NVMe-oF-konsistente Kommunikationen unterstützen. Das Ressourcenkompositionssystem 2300 kann Daten in einer NVMkonsistenten Vorrichtung speichern und eine ACK (Bestätigung) zurückgeben und dann schließlich in einen persistenten Speicher schreiben. Das Ressourcenkompositionssystem 2300 kann eine NVM-konsistente Vorrichtung aufweisen, die als ein Cache für Leseoperationen fungiert. Eine NVM-konsistente Vorrichtung, die mit einer IPU verbunden ist, kann Lesetransaktionen unterstützen. Persistenter Speicher-über-Fabric (z. B. SNIA-PMoF (Storage Networking Industry Association; Persistent Memory over Fabrics - persistenter Speicher über Fabric) oder NVMoF (NVMoF: Nichtflüchtiger Speicher über Fabrics)) kann sich mit einem entfernten Speicher über ein Netzwerk oder Fabric verbinden, als ob es lokal angehängt wäre.
  • Das Ressourcenkompositionssystem 2300 kann einen Verbundspeicherungsknoten erzeugen. Zum Beispiel kann Ressourcenkomposition Kapazität an einen Anforderer liefern, aber für ephemere Speicherung und Ressourcenkomposition kann die Festschreibung der Speicherung an einen Anforderer verwalten. Das Ressourcenkompositionssystem 2300 kann Disaggregation und Nanokomposition, Lastausgleich, Skalierung, Aktivitätsmigration und Leistungsverwaltung durchführen. Das Ressourcenkompositionssystem 2300 kann Operationen auf Orchestrierungs- und Verwaltungsebene innerhalb des Servers durchführen. Das Ressourcenkompositionssystem 2300 kann eine Komposition von Slices von XPUs und eine Dienstverkettung zwischen XPUs durchführen.
  • Das Ressourcenkompositionssystem 2300 kann eine Orchestrierung durchführen, um Slices von Ressourcen zu nehmen, die in der Maschine verfügbar sind (z. B. Slices von Kernen, Shader-Einheiten, Speicherung und Speicher). Das Ressourcenkompositionssystem 2300 kann Orchestrierung und Verwaltung von Ressourcenkompositionen zwischen dem Server, z. B. über Servergrenzen hinweg (z. B. zwischen den Vorrichtungen A und B mit mindestens einer NIC in dem Pfad zwischen A und B) durchführen. Eine IPU kann eine Maschine zur Verwendung durch einen bestimmten Mikrodienst partitionieren. Eine IPU kann Ressourcen zerlegen, nachdem ein Mikrodienst abgeschlossen ist. Das Ressourcenkompositionssystem 2300 kann Speicher-, Speicherungs- und Netzwerkressourcen partitionieren, die zu einem Arbeitslastcontainer/einer Arbeitslastinstanz assembliert (zusammengesetzt) werden, und sicher und gesichert Slices oder Partitionen deinitialisieren, die von einer Arbeitslast zurückgewonnen werden, bevor sie für eine nächste Komposition bereitgestellt werden, wobei eine solche Orchestrierung hierarchisch unter einem Orchestrator höherer Ebene geschichtet werden soll, für z. B. Kubernetes (K8s), Docker-Swarm, Openstack usw. und unterstützt durch Umleiten der Bereitstellungsflüsse durch ein Ressourcenverwaltungssubsystem, das dynamisch zuweist, initialisiert, verbindet, deinitialisiert und eine Zuweisung aufhebt.
  • Zum Beispiel kann eine IPU einen Orchestrator ausführen und eine andere IPU kann Ressourcen zuweisen. Eine IPU kann einen Hypervisor ausführen und der Hypervisor gestaltet passive Plattformteile in Ressourcen. Eine IPU kann Peers mit anderen IPUs sein. Das Ressourcenkompositionssystem 2300 kann ermöglichen, dass Fernressourcen lokal für einen Dienstinitiator oder eine IPU erscheinen, und IPUs können Fernressourcen verbinden, indem sie Fernressourcen als einen Dienst offenlegen, um eine Verbindung zu überbrücken und QoS und Operationen mit niedriger Latenz zu unterstützen.
  • In-Band- und Out-of-Band-Verwaltungsschnittstellen 2302 können In-Band- und Out-of-Band-Verwaltungsschnittstellen für XPUs und Dienste, die auf diesen XPUs ausgeführt werden, durch IPU-basierte Übersetzung bereitstellen. In-Band- und Out-of-Band-Verwaltungsschnittstellen einer IPU können ein Shim für jede XPU von einer Außen-nach-Innen-Perspektive bereitstellen und fungieren als ein Plattform-Shim zwischen der XPU und der tatsächlichen Plattform, in der die XPU von der Innen-nach-Außen-Perspektive jeder XPU sitzt. Somit kann eine IPU eine Out-of-Band-Verwaltung der Plattform oder einer XPU durch Standardverwaltungsschnittstellen durchführen, die häufig Out-of-Band sind, aber dem Aufrufer eine In-Band-Verwaltungsschnittstelle bereitstellen, als ob die Verwaltung In-Band stattfindet.
  • Umgekehrt können manche Operationen als In-Band implementiert werden, wenn sie durch etwas ausgelöst werden (z. B. Neustarten einer virtuellen Maschine, einer Vertrauensdomäne oder einer Enklave bei Detektion einer Sicherheitsverletzung), sie können nun aber stattdessen als eine Out-of-Band-Aktion spezifiziert werden, wobei die Sicherheitsverletzung die virtuelle Maschine, die Vertrauensdomäne oder die Enklave einfriert, die Steuerung an eine IPU weitergibt, wobei die IPU nun als ein Virtuelle-Maschine-, Vertrauensdomänen- oder Enklaven-Isolator agiert und sie untersucht und verschiedene Aktionen an ihr für Forensik und Verständnis des Ausmaßes einer Verletzung (und Verhindern irgendwelcher nachteiliger Seiteneffekte) simuliert, bevor sie schließlich die virtuelle Maschine, die Vertrauensdomäne oder die Enklave neu startet. Damit die IPU diese Dienste einer TEE, wie etwa einer Vertrauensdomäne oder einer Enklave, bereitstellt, müssen die IPU-Messungen von der TEE verifiziert werden, um die IPU (und ihre ausgewählten Dienste) in den TEE-TCB zu akzeptieren. Sobald die IPU in den TCB akzeptiert wird, kann sie In-Band-Dienste für die TEE bereitstellen.
  • Wenn durch den Kunden aktiviert, können IPUs Telemetrie für Bare-Metal-Hosts bereitstellen, indem auf den Zustand zugegriffen wird, ohne laufende Anwendungen zu stören.
  • Wenn eine neue Vorrichtung eingegliedert wird (Hot-Plugin), kann die Hot-Swapping- und Hot-Plugging-Unterstützung 2304 die Attestierungs- und Konfigurationsschritte für sie abschließen und sie in die Plattform integrieren, indem Peer-zu-Peer-Protokolle mit anderen IPU-Agenten und -Diensten ausgeführt werden, die für den Rest der Plattform transparent sind. Die Plattform muss im Allgemeinen nicht neu gestartet werden, damit Online-Onboarding funktioniert. Zum Offboarding oder Offlining einer bestehenden Vorrichtung können die Ressourcen der Vorrichtung durch Software freigegeben werden, und solange dies geschehen kann, kann der Rest des Offboarding-Prozesses, einschließlich sicherer und gesicherter Deinitialisierung von Geheimnissen, Schlüsseln, sensiblen Daten, alle an einer IPU durchgeführt werden. Die Hot-Swapping- und Hot-Plugging-Unterstützung 2304 kann als eine Vorrichtungsverwaltungsentität für die Plattform fungieren, um eine Sicherheitsisolation durch Verschieben der Verwaltungssoftware von der weniger sicheren Multi-Mandanten-Host-CPU bereitzustellen. Diese Architektur funktioniert auch für kopflose Plattformen.
  • Der Ressourcenaggregator 2306 kann SNMP (Simple Network Management Protocol), IPMI (Intelligent Platform Management Interface), RedFish, SwordFish und neuere deklarative RESTful-Mechanismen (von DMTF (Distributed Management Task Force), Open Compute Project (OCP), anderen Gemeinschaften) durch das IPU-Fabric für agile Nano-Kompositionen von Ressourcen, die aus verschiedenen XPUs, Speicher- und Speicherungspartitionen und NICs mit zügiger Zuweisung und Aufhebung der Zuweisung zusammengesetzt sind. Eine Emulation einer virtuellen Bare-Metal-Plattformverwaltung für Multi-Mandanten kann durchgeführt werden. Eine IPU kann Slices von Ressourcen an jeder XPU zusammensetzen, und zwar mit kleinen Einheiten und im Laufe der Zeit mit feiner Granularität. Ein Verbund von Zuständigkeiten zwischen den IPU-Elementen, die XPUs zu anderen XPUs überbrücken, kann gebildet werden, um Ressourcen zuzuweisen.
  • Der Leistungszuweiser 2308 kann feingranulierte Plattformleistungszuweisungsmandanten oder -dienste koordinieren, um Leistung basierend auf zumindest einer Priorität des Mandanten oder Dienstes zuzuweisen. Beispielsweise empfängt ein auf XPU1 und XPU2 ausgeführter Prioritätsmikrodienst koordinierte Frequenzerhöhungen bei XPU1 und XPU2, während einem auf XPU1 oder XPU2 ausgeführten Best-Effort-Mikrodienst (niedrigerer Priorität) weniger Leistung zugewiesen werden kann. Eine solche Koordination kann einen simultanen Eingriff einer Richtlinie an mehreren XPUs nutzen und kann möglicherweise nicht nur durch Koordinieren zwischen Softwarelaufzeiten auf den verschiedenen XPUs durchgeführt werden, außer auf einer sehr groben Zeitskala (und erfordert eine Gruppenplanungsunterstützung in Schedulem). Verschiedene Ausführungsformen des Leistungszuweisers an einer IPU stellen eine Leistungszuweisung mit feiner Zeitskala bereit.
  • Der Dienstgütezuweiser (QoS-Zuweiser) 2310 kann QoS-/SLA(Service Level Agreement)-Steuerungen mit geschlossener und offener Schleife, die mehrere Ressourcen überspannen, durch die Verwendung eines Satzes von Zufriedenheitsfunktionen zuweisen, die (codiert) in IPUs bereitgestellt werden. Als ein lokaler Steuerpunkt kann der QoS-Zuweiser 2310 schnellere Reaktionszeiten zum Überwachen und Anpassen von QoS- oder SLA-Parametern bereitstellen, was Oszillationen vermeidet, die zu einem instabilen System führen können. Anstelle einer festen Art und Weise, um eine QoS-Steuerung mit geschlossener Schleife zu erreichen, können die Richtlinien, Iterationen, Versuch-und-Irrtum-Mechanismen in den QoS-Zuweiser 2310 codifiziert werden und dementsprechend können IPUs kollaborieren, um stabile Gleichgewichte beim Zuweisen verschiedener XPU-Ressourcen unter verschiedenen Mikrodiensten zu erreichen.
  • Zufriedenheitsfunktionen (-gleichungen) können zum Beispiel unterschiedliche mögliche Zuweisungen von Ressourcen definieren, durch die jeder Mikrodienst einen gewünschten Ausgleich zwischen einer Kostenfunktion und einer Belohnungsfunktion erreichen kann (z. B. kann Dienst A 4 Xeon-Kerne und 12 EUs auf einer GPU verwenden, oder er kann 2 Xeon-Kerne und 18 EUs verwenden, oder er kann nur 1 Xeon-Kern und 28 EUs für einen guten Kompromiss zwischen Kosten (Latenz) und Performanz verwenden. Dienst B kann 6 Xeon-Kerne und 13 EUs oder 8 Xeon-Kerne und 21 Ausführungseinheiten (EUs) usw. zugewiesen werden. Der QoS-Zuweiser 2310 kann eine Erfüllbarkeitsfunktion über verschiedene mögliche Konfigurationen hinweg iterieren, um den Kompromiss mit bester Übereinstimmung für jeden Dienst und über Dienste hinweg zu finden, indem ihre normierten Gütezahlen gewichtet werden. Dazu gehen auch die Nutzungs- und Performanzstatistiken und Latenzproben aus Anwendungen und XPUs ein.
  • Der Ressourcenskalierer 2312 kann eine Autoskalierung von Hardwarekomponenten und Infrastrukturfähigkeiten durchführen, wie etwa das Online-Bringen von reservierter Berechnungs- oder Speicherungskapazität von lokalen oder entfernten Partitionen oder das Platzieren von ungenutzter Fähigkeit in Reservierung und somit das Verfügbarmachen für den Fernverbrauch. Bei manchen Ausführungsformen können eine oder mehrere dieser Operationen basierend auf KI-Modellen implementiert werden, die unter Verwendung von maschinellem Lernen abgeleitet werden. IPUs können KI-Modelle für solche Operationen implementieren und trainieren.
  • Der Ressourcenskalierer 2312 kann der IPU ermöglichen, schnelle lokale Entscheidungen über die Zuweisung und Verwendung von vordefinierten Ressourcen (z. B. CPU, Speicherung, Speicher, XPU) zu treffen, um eine schnellere Reaktion auf Handhabungsfehler oder dynamische Änderungen der Ressourcenvoraussetzungen bereitzustellen. Lokales Entscheidungstreffen kann auch eine höhere Überlebensfähigkeit in einem Fall katastrophaler Ausfälle an der Hauptsteuerebene ermöglichen, wie etwa, dass die Steuerebene ausfällt oder die Konnektivität mit der Datenebene verloren geht. In solchen Fällen kann die lokale Steuerebene auf der IPU den Betrieb bis zur Behebung des Fehlers verwalten und fortsetzen.
  • Als Teil der Komposition des Systems zwischen verschiedenen XPUs, CPUs, Speicher, Speicherung und Diensten kann die IPU die Koordination zwischen diesen Ressourcen erleichtern. Bei manchen Beispielen kann eine IPU (z. B. Ausführungsmanager 2124) das Tracing eines Aufrufflusses, Ereigniskorrelation zum Detektieren von Sicherheitsereignissen usw. verwalten. Die IPU kann auch als ein aktiver Teil des Datenflusses verwendet werden, um Datenabhängigkeiten und Debugging zu verwalten. Beispiele für IPU-Intervention können Fencing oder Barrieren zum Debuggen oder dynamischen Modifizieren von Daten für die Verarbeitungssequenz, eine zentralisierte Funktion, wie etwa Führungswahl, Replikation von Anforderungen oder Daten zum Debuggen oder Konformitätsprotokollierung, die als Teil des Datenflusses eingefügt werden können, ohne Endanwendungen zu beeinflussen, beinhalten.
  • 23B stellt eine beispielhafte Weise dar, durch die eine IPU die Verwendung verschiedener Ressourcen koordinieren kann. Bei 2350 kann eine IPU verschiedene sicherheits- und widerstandsfähigkeitsbezogene Ereignisse oder Performanzextremaereignisse von einer beliebigen XPU erfassen. Zum Beispiel können sicherheits- und widerstandsfähigkeitsbezogene Ereignisse Spannungsabfälle, eine zu hohe Speicherfehlerkorrekturrate (z. B. Rate über einer Schwelle), thermische Ereignisse (z. B. Temperatur einer Vorrichtung oder Komponente, die eine Schwelle überschreitet), Detektion einer physischen SoC-Intrusion (z. B. an einem Sensor), Vibrationserfassung usw. beinhalten. Performanzextremaereignisse können Verlust von Heartbeat-Signalen von einigen XPUs, Timeouts, die von Hardware gemeldet werden (z. B. aufgrund von Überlastung oder Verlust eines Aufweckereignisses nach einer blockierenden E/A-Operation) usw. beinhalten. In manchen Fällen kann Performanzverwaltungseinheit(PMU)-Telemetrie durch Software gesammelt werden, wie etwa perf, emon, vtune usw., und beim Filtern der PMU-Telemetrie kann Software eine anormale Anzahl unerwarteter Ereignisse detektieren (z. B. Größenordnung nimmt für Maschinenprüffehler, Gleitkomma-Unterlaufereignisse usw. zu). In anderen Fällen können Sensoren thermische Auslöser, Spannungsabfälle, übermäßige Speicherfehler, übermäßige Plattenfehler, Netzwerkdatenintegrität, die akzeptierte Schwellengrenzen überschreitet, Heartbeat-Timer-Abläufe (z. B. kein Heartbeat-Signal, das vor einem Timer-Ablauf empfangen wird) usw. detektieren. Solche Ereignisse können an einer beliebigen Systemkomponente in einem Verbundknoten auftreten und können auftreten, ohne durch einen spezifischen Mikrodienst verursacht zu werden, können aber andere Mikrodienste beeinflussen, die auf verschiedenen Verbundknoten ausgeführt werden können, die eine solche Komponente teilen. Es ist jedoch auch möglich, dass eine bestimmte XPU, wie etwa ein FPGA, anomale Signale melden kann, während dieses FPGA eine Funktion im Kontext eines Mikrodienstes ausführt, und der Fehler oder die Anomalie kann nur bewirken, dass dieser Mikrodienst stoppt, abbricht oder anderweitig eine Fehlfunktion hat. Aufgrund einer Kettenreaktion können jedoch andere Mikrodienste, mit denen der betroffene Mikrodienst interagiert, beginnen, Performanzverlust, falsche Antworten von dem betroffenen Mikrodienst usw. zu erfahren.
  • Bei 2352 kann die IPU basierend auf einer durchzuführenden Konfiguration als Reaktion auf Fehler oder Anomalien eines bestimmten Typs bestimmen, ob ein systemweiter Barrierebefehl ausgegeben werden soll. Zum Beispiel können eine Konfiguration und die durchzuführenden Aktionen durch die Ausführung eines Steuerprogramms an einer IPU bestimmt werden. Das Steuerprogramm kann zur Systemstartzeit in die IPU hochgeladen und danach in Übereinstimmung mit einem Cloud-basierten IPU-Zuverlässigkeitsmanagerdienst oder durch eine Konsolendienstleistung in einem Spezialmodus überarbeitet oder aktualisiert werden. Das Steuerprogramm, das die IPU ausführt, kann dahingehend konstruiert sein, zu entscheiden, eine systemweite Barriere unter einer oder mehreren Bedingungen auszugeben, wie etwa der Detektion von Korruption in einem kritischen Bereich des Speichers des Supervisors oder anderen Performanzextremaereignissen. Das Steuerprogramm kann bestimmen, keine systemweite Barriere für eine oder mehrere Bedingungen auszugeben, die nicht als ernsthaft angesehen werden, wie etwa ein entdecktes (und fallengelassenes) fehlerhaftes Netzwerkpaket, ein Wiederholungssignal von einer Speicherungsvorrichtung, weniger als eine Schwellenanzahl von detektierten Fehlern oder Performanzextremaereignissen usw. Falls die IPU bestimmt, eine systemweite Barriere auszugeben, kann der Prozess zu 2360 übergehen. Falls die IPU nicht bestimmt, eine systemweite Barriere auszugeben, kann der Prozess zu 2370 übergehen.
  • Bei 2360 kann die IPU ein Barriereprotokoll auf XPUs oder IPUs ausführen, die Ressourcen als einen Verbundknoten bereitstellen. Ein Verbundknoten kann mindestens eine Ressource von mindestens einer XPU beinhalten, die von einer detektierten Anomalie betroffen ist. Falls zum Beispiel eine Speicherkorruption an einer physischen Adresse P im Speicher detektiert wird und falls dieser Speicherbereich gegenwärtig in einem Verbundknoten C platziert ist und der Verbundknoten C verschiedene Slices (z. B. eine Anzahl von CPU- oder GPU-Kernen, einige Partitionen in einem FPGA usw.) verschiedener XPUs X1, X2 und X3 aufweist, dann können alle solchen XPUs in eine Barriere übergehen. Für jede solche XPU kann die IPU eine Barrierebenachrichtigung ausgeben.
  • Eine XPU kann die Barrierenbenachrichtigung beobachten und darauf antworten, indem sie in einen Suspendiermodus eintritt, aber in einem Modus, der als Standby-Modus bezeichnet wird, aktiv bleibt, um in einen Modus mit niedrigerer Leistung einzutreten und Operationen für den Verbundknoten zu suspendieren. Die XPU kann eine Bestätigung an die IPU ausgeben, dass in den Standby-Modus eingetreten wurde. Die Barriere kann implementiert werden, wenn alle XPUs auf die IPU mit einer Bestätigung des Eintritts in den aktiven Standby-Modus geantwortet haben.
  • Wenn diese Bedingung erreicht ist (z. B. alle XPUs eines Verbundknotens in Barriere sind und in Aktiv-Standby warten), tritt das IPU-Steuerprogramm bei 2362 in einen Modus ein, der als gerichteter Modus bezeichnet wird. Bei 2362 arbeitet das IPU-Steuerprogramm unter Anweisung einer Konsolendienstleistung oder eines Cloud-Manager-Dienstes. In dem gerichteten Modus arbeiten die IPU und alle XPUs, die die IPU in den Aktiv-Standby-Modus versetzt hat, unter der Anweisung einer Konsolendienstleistung oder eines Cloud-Management-Plattform(CMP)-Dienstes. Zu einem späteren Zeitpunkt kann die Konsolendienstleistung oder der CMP-Dienst eine Freigabe ausgeben, und diese Freigabe kann der IPU und den XPUs ermöglichen, den Aktiv-Standby-Modus zu verlassen und jeden nicht migrierten Mikrodienst auszuführen, der nicht abgeschlossen ist, sondern vor dem Barriereeintritt empfangen wird.
  • Unter manchen Umständen, bei denen der CMP-Dienst oder eine Konsolendienstleistung nicht antwortet (oder eine Kommunikation mit ihnen als nicht antwortend festgestellt wird), kann das Steuerprogramm der IPU auslaufen, und einen Systemneustart und Neutest ausgeben, sodass die IPU und die XPUs jegliche Reparaturaktionen durchführen können, die sie unter der Steuerung ihrer Überwachungssoftware (wie etwa eines in einer Wiederherstellungspartition des gespeicherten Betriebssystems) durchführen können. Unter manchen Umständen stellt die IPU eine Kommunikation mit einer Konsolendienstleistung oder einem CMP-Dienst her und führt dann verschiedene Operationen durch, wie durch die Konsolendienstleistung oder den CMP-Dienst angewiesen. Die XPUs des Verbundknotens, die zu Beginn der gerichteten Modusausführung der IPU in den Aktiv-Standby-Modus versetzt wurden, können Befehle von der IPU empfangen, wie etwa in Form verschiedener Hardwaresignale, Netzwerkpakete oder speicherbasierter Kommunikation. Wenn XPUs die Befehle empfangen, können die XPUs diese Befehle durchführen und dann wieder in den Aktiv-Standby-Modus eintreten. Dementsprechend führen die IPU und die XPUs, mit denen sie kommunikativ gekoppelt sind, in einer Lock-Step-Progression aus, um Aktionen durchzuführen, die durch die Konsolendienstleistung und/oder den CMP-Dienst zur Durchführung angeleitet werden.
  • Falls die IPU bestimmt, keine systemweite Barriere auszugeben, geht der Prozess zu 2370 über. Bei 2370 erfasst die IPU Ereignisdaten, versieht die Ereignisdaten mit einem Zeitstempel und leitet die Ereignisdaten an einen designierten Cloud-Manager-Dienst weiter. Bei manchen Beispielen protokolliert die IPU die Informationen bei einer designierten Protokollvorrichtung/einem designierten Protokolldienst. Bei 2372 kann der CMP-Dienst die Ereignisdaten verarbeiten und bestimmen, ob die IPU aufgefordert werden soll, ein Barriereprotokoll auszuführen. Der CMP-Dienst kann bestimmen, ein Barriereprotokoll auszuführen, falls er aus der Analyse der Ereignisdaten von 2370 bestimmt, dass der Verbundknoten, der in den Ereignissen angegeben ist, eine Bedingung mit hohem Schweregrad angetroffen hat. In einem solchen Fall kann der CMP-Dienst programmiert sein, die IPU unter gerichtete Ausführung zu bringen, sodass der CMP-Dienst den Verbundknoten reparieren, die Ausführung des Verbundknotens stoppen oder eine gesteuerte Evakuierung (Migration) verschiedener Mikrodienste und Daten von dem betroffenen Verbundknoten zu einem anderen adäquat arbeitenden Knoten oder Verbundknoten initiieren kann.
  • In anderen Fällen kann der CMP-Dienst aus einer Untersuchung der Ereignisdaten von 2370 bestimmen, dass die Daten ein Auftreten angeben, das nicht schwerwiegend ist, aber sehr selten ist und wertvoll ist, um ausführlich untersucht zu werden. In diesem Fall kann der CMP-Dienst bewirken, dass die IPU eine Barriere bewirkt, sodass zusätzliche Daten von forensischem Interesse von dem Verbundknoten gesammelt werden können, bevor solche Daten durch die fortgesetzte Ausführung des Verbundknotens verdeckt werden.
  • Alternativ dazu kann der CMP-Dienst entscheiden, kein Barriereprotokoll auszuführen, falls die Ereignisdaten von 2370 bei Analyse die Verzögerung und den Performanzverlust beim Auferlegen einer Barriere auf Vorrichtungen in dem Verbundknoten nicht rechtfertigen. Zum Beispiel kann eine Analyse der Protokolle von 2370 einen nicht bösartigen Versuch angeben, eine verbotene Operation durchzuführen, wie etwa ein Sicherheits-Canary-Programm, das versucht, Sicherheitsanfälligkeiten zu überprüfen. Wenn der CMP-Dienst bestimmt, kein Barriereprotokoll auszuführen, fährt die normale Ausführung fort, wodurch weder die IPU noch der CMP-Dienst eine Barriere erzwingt, sodass die gesammelten Ereignisse in 2370 gemäß ihrer statistischen Signifikanz, wie durch den CMP-Dienst bestimmt, gespeichert oder verworfen werden können.
  • VERBINDUNG ZWISCHEN IPU-IPU- oder IPU-NETZWERK-SCHNITTSTELLE
  • Verschiedene Ausführungsformen stellen bereit, dass ein Agent auf einer CPU, XPU oder SmartNIC in einer Knotenfähigkeit unter Verwendung einer IPU einen beliebigen Agenten auf einer CPU, XPU oder SmartNIC in einem anderen Knoten Peer-to-Peer aufruft oder eine Nachricht an diesen sendet. Verschiedene Ausführungsformen von IPUs stellen konsistenten Zugriff über lokale CPU, XPU, Speicherung, Speicher und entfernte CPU, XPU, Speicherung, Speicher bereit. Die Beschleunigung der Fernkonnektivität kann Latenz oder Jitter minimieren und die Zuverlässigkeit verbessern, um eine nahezu lokale Erfahrung bereitzustellen. Sichere Warteschlangen und sichere Tunnel können verwendet werden, um Kommunikation bereitzustellen, die mit einer IPU verbunden ist.
  • Verschiedene Ausführungsformen stellen eine asynchrone Messaging-Architektur zwischen Vorrichtungen bereit, die eine Ende-zu-Ende-Steuerebene erzeugt. Eine IPU kann Messaging koordinieren, um Ende-zu-Ende-Diensten zu ermöglichen, Dienstgüte (QoS) auszuhandeln, Ressourcennutzungsinformationen zu liefern usw. Eine IPU kann QoS und Sicherheit zur Unterstützung mehrerer Mandanten unter Verwendung gemeinsam genutzter Ressourcen bereitstellen. Eine IPU kann anderen Elementen (z. B. Lastausgleicher) ermöglichen, die Arbeitsverteilung besser zu optimieren.
  • Zum Beispiel in einer Dienstkette, die die Videoerfassung durch eine Videokamera, Videokomprimierung und Videospeicherung beinhaltet. Eine IPU kann direkten Zugriff auf Berechnung, Speicher, Speicherung, XPUs durch eine andere Vorrichtung über eine andere IPU ermöglichen. Die IPU kann einen Hardwarewarteschlangenmanager (HQM) beinhalten und spezielle Anweisungen (z. B. Anweisungen, die auf die Warteschlangen abzielen) können solche Flüsse Ende-zu-Ende bereitstellen.
  • IPUs können auch eine intelligente Schicht über Legacy-NICs implementieren, wie etwa vSwitch-Offload und Paketverarbeitung. Datenpfadüberbrückung und Vorrichtungsvirtualisierung können zwischen XPUs bereitgestellt werden (z. B. können XPUs CPUs beinhalten), die eine IPU verwenden, um mit SmartNICs oder Legacy-NICs zu kommunizieren. Eine Datenpfadüberbrückung kann zwischen Speicher/Speicherung bereitgestellt sein, die eine IPU verwenden, um mit einer anderen NIC zu kommunizieren. XPUs können über die Speicherdomäne auf Daten zugreifen und die IPU überbrückt die Speicherdomäne in der entfernten Speicherdomäne. Wenn die XPU auf eine Speicherdomäne zugreift, kann die XPU auf Speicher auch entfernt zugreifen, als ob sie lokaler Speicher wären.
  • 24 stellt ein Beispiel für Ressourcenzuweisung durch eine IPU unter Verwendung von Ressourcen an einer IPU und Ressourcen in anderen IPUs und Knoten dar. In diesem Beispiel werden Arbeitslast0 Ressourcen in IPU 0, KNOTEN 0, IPU 1, KNOTEN 1, IPU 3 und KNOTEN 3, aber nicht in IPU 2 oder KNOTEN 2 zugewiesen. In diesem Beispiel werden Arbeitslast1 Ressourcen in IPU 0, KNOTEN 0, IPU 1, KNOTEN 1, IPU 2, KNOTEN 2, IPU 3 und KNOTEN 3 zugewiesen. In diesem Beispiel werden Ressourcen, die zur Verwendung durch Arbeitslast0 zugewiesen sind, partitioniert, um Speicher- oder Cacheraum nicht mit irgendeiner anderen Arbeitslast zu teilen. Zur Verwendung zugewiesene Ressourcen können beispielsweise durch die IPU 0 attestiert werden, sodass in einer Dienstkettenoperation, nachdem eine Vorrichtung die Verarbeitung von Daten abgeschlossen hat, die Vorrichtung die Daten zur Übertragung über eine IPU an eine nächste Vorrichtung bereitstellen kann, die die Daten verarbeiten soll.
  • In dem Beispiel von 24 gibt bei (1) eine Arbeitslast0, die auf einer CPU des KNOTENS 0 ausgeführt wird, einen API-Aufruf an einen Ressourcenmanager (Beschleuniger) der IPU 0 aus, um eine Operation einer Dienstfunktionskette von Mikrodiensten aufzurufen. Bei (2) kann ein Beschleuniger der IPU 0 einen Mikrodienst zur Attestierung von Ressourcen und anderen IPUs durchführen, wie hierin für den Mikrodienst0 beschrieben. Bei (3) kann die Netzwerkschnittstelle der IPU 0 eine Anforderung an die IPU 1 ausgeben, einen Mikrodienst zum Zugreifen auf einen Beschleuniger durchzuführen, auf den in der IPU 1 zugegriffen werden kann. Bei (4) kann der Beschleuniger einen Mikrodienst zum Verarbeiten der Daten (z. B. Krypto- oder Paketverarbeitung) durchführen und bei (5) einen Mikrodienst zum Speichern der Daten in einer Speicherungsvorrichtung des KNOTENS 1 durchführen. Mikrodienste können auf Daten zugreifen, ohne dass ein Vermittler eine Erlaubnis oder Attestierung der CPU anfordert.
  • Bei (1) gibt eine Arbeitslast1, die auf einer CPU des KNOTENS 0 ausgeführt wird, einen API-Aufruf an einen Ressourcenmanager (Beschleuniger) der IPU 0 aus, um eine Operation einer Dienstfunktionskette von Mikrodiensten aufzurufen. Bei (2) kann eine Netzwerkschnittstelle der IPU 0 eine Anforderung an die IPU 2 ausgeben, einen Mikrodienst zum Zugreifen auf einen Beschleuniger durchzuführen, auf den in der IPU 2 zugegriffen werden kann. Bei (3) empfängt die Netzwerkschnittstelle der IPU 2 die Mikrodienstanforderung und bei (4) gibt die IPU eine Anforderung an den Beschleuniger aus, die mit dem Mikrodienst assoziierte Verarbeitung durchzuführen (z. B. Komprimierung oder Videoverarbeitung). Bei (5) und (6) kann die Netzwerkschnittstelle der IPU 2 die Daten an die Netzwerkschnittstelle der IPU 3 senden. Bei (7) kann die IPU 3 einen Mikrodienst zum Speichern der Daten (z. B. Ergebnisprotokollierung oder Quellvideo zur Erfüllung) in eine Speichervorrichtung des KNOTENS 3 durchführen. Sichere Mikrodienste können auf Daten zugreifen, ohne dass ein Vermittler eine Erlaubnis erteilt.
  • Wieder unter Bezugnahme auf 19 können Beschleuniger 1916 einen oder mehrere von Bereich, RegEX und HALO (siehe z. B. Y. Yuan, Y. Wang, R. Wang und J. Huang, „HALO: Accelerating flow classification for scalable packet processing in NFV“ in Proceedings of the 46th IEEE/ACM International Symposium on Computer Architecture (ISCA'19), Phoenix, AZ, USA, Juni 2019) bei der IPU durchführen, um eine flexible Substitution innerhalb von RegEx bereitzustellen - Substitution von Variablen, Zeigern usw., sodass IPUs zustandsabhängige und dynamische Routing-/Umschalt- und Verkehrsfilterelemente sein können. Die regex-Fähigkeit kann für Deep Packet Inspection (DPI), Metadaten-Objektsuche, HTTP-Richtlinie verwendet werden und kann mit HALO, Allzweckbedingungsevaluierung durch den Umleitungsmechanismus von HALO kombiniert werden. HALO kann zumindest für Schlüsselwert-Lookup (z. B. Bereich, m-Trie) und verkettete Suche/Lookup verwendet werden. Obwohl all dies in prozessorausgeführter Software an einer IPU durchgeführt werden könnte, kann das Verwenden einer Hardwarebeschleunigung innerhalb einer IPU eine komplexe Zustandsevaluierung bei hohem Durchsatz in dem Datenfluss zwischen XPUs und zwischen XPUs und Legacy-NICs/SmartNICs durchführen. Beschleuniger können strukturierte Daten, wie etwa Speicherungsobjekte, Metadaten, RPC-/API-Parameterwerte, Schlüsselwertspeicher, parsen, durchsuchen und transformieren.
  • ZEITSTEMPELMANAGER
  • Unter Bezugnahme auf 19 kann ein Zeitstempelmanager 1910 verschiedene hierin beschriebene Merkmale durchführen. Mikrodienste können durch RPC-, API- oder Google-Remote-Procedure-Call(gRPC)-Aufrufe/-Nachrichten miteinander interagieren, sodass, wenn die Nachrichten von jedem Aufgerufenen in virtueller Zeitreihenfolge behandelt werden, die Aktualisierungen verteilt in logisch zeitgeordneter, serialisierbarer Weise protokolliert werden. Überwachen, Tracing, Debugging können integriertes TSN (Time-Sensitive Networking- zeitempfindliches Networking) / TCC (Time Coordinated Computing - zeitlich koordiniertes Computing) mit koordinierten Zeitstempeln hoher Auflösung für Nachrichten zwischen Mikrodiensten bereitstellen, unabhängig davon, ob diese Mikrodienste in derselben XPU, in unterschiedlichen XPUs in demselben Knoten oder zwischen Knoten ausgeführt werden. Die Zeitstempel können automatisch gegen gRPC-Nachrichten-IDs in einen Zeitstempel-Stash gehasht und durch IPU-Signaturen signiert werden, um eine sichere und feingranulare Ordnung zwischen gRPC-basierten Aufrufen und Datentransfers zu ermöglichen. Somit kann sperrfreie verteilte Transaktionsatomizität durch serialisierte, koordinierte Zeitstempelaktualisierung des Zustands an transaktionalen Grenzen erreicht werden. Genaues Ereignisprotokollieren kann eine Korrelation verteilter Ereignisse ermöglichen, die zur Intrusionsdetektion, Fehlschläge im Anwendungsverhalten, Systemlast usw. verwendet werden können.
  • Der Zeitstempelmanager 1910 kann zeit- und ereigniskorrelierte Statistiken über harte und softe Ausfälle und Fehler erhalten und eine Feldverarbeitung für verteilte statistische Modelle zum Vorhersagen von Fehlern, Ausfällen und Performanzereignissen hoher Schwere, wie etwa zunehmenden Anzahlen von Wiederholungsversuchen, ermöglichen. Verschiedene Ausführungsformen stellen kontinuierliche Integration und kontinuierliche Lieferung (CI/CD) im Maßstab bereit, wobei sowohl Hardware als auch Software abgedeckt werden. Richtlinien, die in IPUs eingebettet sind, können prädiktive Reparaturen oder proaktive anmutige Abschaltungen und Neustarts ermöglichen und auch prädiktives Drosseln der Geschwindigkeit ermöglichen, um die mittlere Zeit zwischen Ausfällen (MTBF) zu verlängern; auch proaktive Migration essentieller Dienste zu Peer-Einheiten ermöglichen.
  • SPEICHER UND SPEICHERUNG
  • Unter Bezugnahme auf 19 kann die IPU eine Speicher- und Speicherungssteuerung 1912 bereitstellen. Die Speicher- und Speicherungssteuerung 1912 kann eine hybride Speicherungsvorrichtung emulieren, wie etwa das Erzeugen von Kommunikationen, die mit NVMe-oF- und NVM-oF(Non-Volatile Memory over Fabrics)-Caching konsistent sind. Ferner kann die Speicher- und Speicherungssteuerung 1912 die Emulation einer logischen NVM-oF-Stufe mit hoher Kapazität unterstützen und dies zusätzlich zu einer begrenzten Menge an lokalem NVM (oder einer kleinen Menge an lokalem Bedarfs-NVDIMM) unterstützen, um Daten beim Transport zu der Speicherung oder dem entfernten Speicher zu puffern. Lokaler flüchtiger DDR-Speicher kann verwendet werden, um NVM mit hoher Kapazität zu emulieren, indem ein lokales Nurlese-Caching mit Durchschreiben zu entferntem Speicher durch RDMA oder virtuellem RDMA durchgeführt wird. Diese hybride Emulation mit lokalem Caching kann auch für entfernte DDR/Speicher-Emulation gelten.
  • Die Speicher- und Speicherungssteuerung 1912 kann eine Mehrversions-Gleichzeitsteuerung aus Datenbanken bereitstellen, um Anforderungen einer versionierten Kopie von Daten nicht nur einer neuesten Version zu verwalten. Die Speicher- und Speicherungssteuerung 1912 kann als die Speicherungssteuerung fungieren und unterstützt eine Mehrversions-Gleichzeitsteuerung oder relaxierte Konsistenz. Die Speicher- und Speicherungssteuerung 1912 kann RDMA oder virtuelles RDMA unterstützen, wobei eine IPU als eine lokale Speicher- oder Speicherungsvorrichtung erscheinen kann oder eine Ferntransaktion zu einer entfernten Speicher- oder Speicherungsvorrichtung erzeugt. Die IPU kann zum Beispiel als 2 PBytes von Speicher erscheinen und einen Verbundknoten und Zugriffe unter Verwendung von RDMA erzeugen.
  • Die Speicher- und Speicherungssteuerung 1912 kann ein Hintergrundsenden von Vorausschreibprotokollen (WAL) und ein Hintergrund-WAL-Rendering an entfernten Peers durch eine IPU-basierte Zustandsmaschine durchführen, was kostengünstige Aktiv-Aktiv-Hot-Standbys und autonomen Neustart und autonome Wiederherstellung durch transparente Wiedergabe des Endes des WAL-Protokolls ermöglicht. Das WAL kann mit sehr geringe Änderung der Software an einer IPU gesammelt werden. Software könnte unter Verwendung einer Wrapper-Bibliothek für Lade- und Speichervorgänge schreiben, die von einer Bibliothek abgefangen werden, um die sich Software nicht kümmert, und diese Bibliothek könnte das WAL konstruieren und es durch eine IPU an einen Aktiv-Aktiv-Peer-Knoten versenden. Die IPU kann Protokollsegmente zwischen Knoten packen und versenden, idealerweise durch einen reservierten virtuellen Kanal mit hoher Priorität. Bei einem Ausfall oder Neustart wird eine neueste WAL-Aktualisierung von einem Aktiv-Standby-Peer erhalten und transparent angewendet, um eine schnelle Wiederherstellung und einen schnellen Neustart zu erreichen. Anwendungssoftware kann Transaktionsende-Markierungen oder eine Multi-Transaktionsende-Markierung bereitstellen, sodass die IPU effektiv atomar bis zu der letzten Markierung rendern kann.
  • Die Speicher- und Speicherungssteuerung 1912 kann PMoF (Persistent Memory over Fabric)/ NVMe-oF mit transaktionalem Abschluss durch Durchschreiben zu System-NVM-Partitionen bereitstellen, mit oder ohne Intel® DDIO (Data Direct I/O - Datendirekt-E/A), das Kopieren von einer NIC zu einem Cache bereitstellt, ohne Daten zuerst in den Speicher und dann in einen Cache zu kopieren. Die Speicher- und Speicherungssteuerung 1912 kann angeschlossene Vorrichtungen verwalten, wie etwa durch Durchführen von Partitionierung, Virtualisierung, Verschlüsselung, Komprimierung und Diensten, wie etwa Zugriffsauthentifizierung, Schlüsselverwaltung und Rechenverarbeitung (Software oder Hardware).
  • 25 zeigt verschiedene Ausführungsformen eines Systems. Zum Beispiel kann ein Rechenserver mit CPUs und einer NIC kommunikativ mit (A) einem Speicherungsserver mit einer CPU und einem oder mehreren Solid-State-Laufwerken (SSDs) über eine NIC und (B) einem Maschinenlernknoten mit einer CPU und einer oder mehreren GPUs über eine NIC gekoppelt sein. Bei der Ausführungsform 2504 können Infrastrukturverarbeitungseinheiten (IPUs) Interkonnektivität zwischen einem Rechenserver, einer Rechenspeicherung, einem Maschinenlernknoten, einem Inferenzserver, einem flexiblen Prozessorserver oder einem Mehrbeschleunigerknoten bereitstellen.
  • 26 stellt ein beispielhaftes System dar, das ein Neuausgleichen von Sicherheitssteuerpunkten zu IPUs von CPUs darstellt, um eine Arbeitslastausführung durch Cloud-Dienstanbieter (CSPs) zu handhaben. Verschiedene Elemente der in 19 gezeigten IPU können verwendet werden, um Sicherheitssteuerpunkte, wie etwa einen sicheren Ressourcenmanager und Sicherheits-Root-of-Trust, bereitzustellen.
  • 27 stellt ein beispielhaftes System dar. Verschiedene Ausführungsformen einer IPU können Dienst-Mesh, TCP, QUIC, zuverlässigen Transportstapel und einen virtuellen Switch (z. B. Open vSwitch) anstelle einer CPU eines Hostsystems durchführen. Die IPU kann Datenflüsse verwalten, um Datenkopieroperationen zu reduzieren.
  • 28A stellt ein beispielhaftes System mit Ende-zu-Ende-Telemetrie dar. Für einen Mikrodienst kann eine eindeutige Kennung bereitgestellt werden. Die Verwendung der Kennung (z. B. UUID) durch IPUs kann in manchen Beispielen das Verfolgen des Timings der Ausführung und des Abschlusses über verschiedene Komponenten, Plattformen, Mikrodienste usw. ermöglichen, um Performanzüberwachung und Attestierung bereitzustellen. Performanzverfolgung kann verwendet werden, um die Ressourcenzuweisung für einen Dienst zu modifizieren, wie etwa durch Bereitstellen zusätzlicher oder anderer Ressourcen zur Ausführung eines Dienstes, falls der Dienst zu einem beliebigen Verbindungspunkt zu langsam läuft.
  • 28B stellt eine beispielhafte Systemverwendung zur Arbeitslastausführung auf mehreren Systemen dar. UUID kann zur Identifizierung von Mikrodiensten verwendet werden.
  • 28C stellt ein Beispiel für die Verwendung von Telemetrie zum Verwalten einer Arbeitslastausführung dar. Bei (1) kann der Orchestrierungsagent 2800, der auf einer IPU ausgeführt wird, ein Arbeitslastpaket empfangen, das einen oder mehrere Mikrodienste (uDienste) mit einem Satz von QoS-Voraussetzungen und Hardwarevoraussetzungen identifiziert. Bei (2) kann der Orchestratoragent 2800 die Anforderung analysieren und bestimmen, welche Ressourcen benötigt werden, um die Dienste und seine assoziierten uDienste auszuführen. Der Orchestratoragent 2800 kann eine universell eindeutige Kennung (UUID), eine Ressourcenmanagerkennung (RMID), eine Dienstgütekennung (QoSID) und eine Prozessadressraum-ID (PASID) zum Tracing jedes Mikrodienstes zuweisen.
  • Bei (3) wird die Arbeitslast partitioniert und bei (4) an Orchestrierungsagenten 2802-0 bis 2802-2 gesendet, die den uDienst und die assoziierten Kennungen empfangen. Bei (4) liefern die Orchestrierungsagenten 2802-0 bis 2802-2 die Kennungen an die Entitäten, die an der Durchführung des Dienstes teilnehmen, bevor oder während der uDienst ausgeführt wird. Zum Beispiel kann eine PASID in einer Speicherverwaltungseinheit (MMU) und einer Eingabe-Ausgabe-Speicherverwaltungseinheit (IOMMU) und einem Beschleuniger konfiguriert sein, eine RMID in einer angeschlossenen CPU konfiguriert sein und die UUID in einem Dienst-Mesh konfiguriert sein, als ein Beispiel. Die UUID kann auch lokal zugeordnet sein und auf einem gemeinsamen Protokoll oder Schema basieren, das unter Entitäten im Datenfluss verstanden wird.
  • Innerhalb eines gegebenen Systems kann es einen oder mehrere Agenten geben, die interagieren, um sicherzustellen, dass der Dienst ausgeführt werden kann. Die IPU kann den primären Orchestrierungsagenten mit lokalen Satellitenagenten sprechen lassen und die auszuführende Arbeitslast und die geeigneten Kennungen bereitstellen.
  • 28D stellt ein Beispiel für die Verwendung einer IPU dar, die eine Arbeitslastausführung durch eine CPU anfordert. Bei (1) kann ein Orchestrierungsagent, der auf einer IPU ausgeführt wird, ein Arbeitslastpaket decodieren. Bei (2) kann der Orchestrierungsagent die Anforderung zerlegen und bei (3) lokale Ressourcen mit Kennungen konfigurieren (z. B. virtuelles Netzwerk). Außerdem kann der Orchestrierungsagent bei (4) UUID, PASID, QoSID und RMID sowie den Mikrodienst(uDienst)-Code (oder Zeiger auf den Code) zur Verarbeitung an den CPU-Orchestrierungsagenten bei (5) senden. Bei (6) kann der CPU-Orchestrierungsagent die MMU und IOMMU mit PASID konfigurieren und bei (7) die containerzuweisende UUID einrichten. Bei (8) kann der CPU-Orchestrierungsagent die Handhabung mit ContainerID, RMID und QoSID an den Scheduler weitergeben. Bei (9) kann ein uDienst durch die CPU mit Scheduler-Einstellungen RMID und QoSID als Teil des Kontextwechsels zum Ausführen von Code ausgeführt werden.
  • Unter Bezugnahme auf 28E können bei (10) Telemetrieagenten (in jeder Ausführungseinheit) Performanzdaten sammeln, während der Code ausgeführt wird und durch die CPU und beliebige angeschlossene Vorrichtungen (z. B. IPU) fließt. Bei (11) kann Telemetrie an den zentralen Telemetrieserver gemeldet werden. Bei (12) können der Orchestrator und bei (13) andere Vorrichtungen Telemetrie nutzen, um sicherzustellen, dass das SLA erfüllt wird, und meldet jegliche Abweichungen. Der Orchestratoragent der IPU kann Daten verwenden, um sicherzustellen, dass Dienste korrekt lastausgeglichen in dem System sind, und Anpassungen an den Ressourcen vornehmen, die verwendet werden, um Dienste auszuführen, falls SLAs nicht erfüllt werden.
  • 29 stellt ein beispielhaftes System dar, das unter Verwendung eines konfigurierbaren Switches 2900 verbunden ist. IPUs können zum Beispiel unter Verwendung eines programmierbaren Barefoot-Networks-Tofino-Switches kommunikativ gekoppelt werden. Der Tofino-Switch kann zusätzliche Telemetrieinformationen an die IPU zurückliefern. Dies kann Informationen über Netzwerk-/Mediennutzung, Überlastung, Paketabfälle und Latenz beinhalten. Diese Informationen können von der IPU verwendet werden, um Lastausgleich, Dienstanhängung und Anforderungen für zusätzliche Ressourcen anzupassen. Diese Fähigkeit kann dem Netzbetreiber auch ermöglichen, detaillierte Informationen darüber zu haben, welche Dienste und Anwendungen während Dienstausfällen, wie etwa einem Linkausfall, beeinträchtigt werden.
  • Eine Betriebskonfiguration einer beliebigen IPU oder eines beliebigen Switches 2900, einschließlich ihrer/seiner Datenebene, kann unter Verwendung von P4, C, Python, Broadcom Network Programming Language (NPL) oder x86-kompatiblen ausführbaren Binärcodes oder anderen ausführbaren Binärcodes programmiert werden. Die Programmierung des Hash-Lookup kann erfolgen, um die Paketweiterleitung durch eine Datenebene des Switches 2900 zu programmieren. Zum Beispiel können Abgleich-Aktion-Tabellen oder -Schaltungsanordnungen verwendet werden, wodurch ein Hash eines Teils eines Pakets als ein Index verwendet wird, um einen Eintrag zu finden. Zusätzlich dazu kann der Switch 2900 oder eine IPU eine Paketreplikation zum Weiterleiten eines Pakets oder Frames an mehrere Ports und zum Einreihen von Paketen oder Frames in eine Warteschlange vor der Übertragung an einen Ausgangsport durchführen. Die Betriebskonfiguration des Switches 2900 oder einer IPU, einschließlich seiner/ihrer Datenebene, kann unter Verwendung von P4, C, Python, Broadcom Network Programming Language (NPL) oder x86-kompatiblen ausführbaren Binärcodes oder anderen ausführbaren Binärcodes programmiert werden. Eine Programmierung des Hash-Lookup kann erfolgen, um eine Paketweiterleitung durch eine Datenebene zu programmieren.
  • 30 stellt ein Beispiel für eine Mikrodienstkommunikationsbeschleunigung dar. Bei manchen Ausführungsformen kann eine Ressourcenkomposition oder ein anderes Element der IPU die Ausführung eines Mikrodienstes an einen Beschleuniger in der IPU oder Beschleuniger in einem anderen Knoten versenden. Die IPU-Offloads (z. B. zuverlässiger Transport, TCP, QUIC, Verschlüsselung, Dienst-Mesh) ermöglichen eine niedrigere Latenz und Tail-Latenz. Die Offloads ermöglichen auch das Umgehen des Kernels für diese Funktionen, was der IPU ermöglicht, direkt an die Benutzerraumanwendung zu senden.
  • 31A stellt einen beispielhaften Prozess zur Attestierung von Ressourcen dar. Bei 3102 kann eine IPU eine oder mehrere Ressourcen zur Ausführung von Mikrodiensten attestieren. Die Attestierung kann eine Verifikation von Zertifikaten der Vorrichtungen oder Vorrichtungskonfigurationen umfassen. Eine vertrauenswürdige Ressourcendomäne kann durch die IPU zur Ausführung eines oder mehrerer Mikrodienste gebildet werden. Bei 3104 kann die IPU einen API-Aufruf empfangen, um einen oder mehrere Mikrodienste für eine Arbeitslast durchzuführen. Die Verwendung eines API-Aufrufs zum Anfordern einer Arbeitslastdurchführung kann eine Angriffsoberfläche reduzieren, um das Potential für einen bösartigen Angriff auf die IPU zu reduzieren.
  • Bei 3106 kann die IPU für eine gültige Arbeitslast, der erlaubt ist, Rechenressourcen zu nutzen, die durch die IPU verwaltet werden, einen oder mehrere Mikrodienste zur Ausführung versenden. Bei 3108 können während der Ausführung des einen oder der mehreren Mikrodienste die resultierenden Daten aus der Durchführung jedes Mikrodienstes für den Zugriff durch einen anderen Mikrodienst bereitgestellt werden.
  • 31B stellt ein Beispiel für die Verwendung eines sicheren Datenpfads durch attestierte Ressourcen dar. Bei (1) wird eine Datenanforderung durch eine XPU (z. B. Rechenkerne) einer IPU ausgegeben. Bei (2) kann eine geschützte Speichertransaktion (z. B. eine verschlüsselte Speichertransaktion (unter Verwendung einer virtuellen Gastadresse)) von der IPU 3150 über die Link-Verschlüsselungs-Engine (LEE) an einen Codierer (Cod.) gesendet werden, um durch die zweite Vorrichtung 3160 entschlüsselt (Dec.) zu werden. Der Empfänger kann eine XPU oder eine andere IPU sein. Bei (3) kann die LEE eine entschlüsselte Anforderung an eine IOMMU bereitstellen, die virtuelle Gast-Adresse in eine physische Host-Adresse zu übersetzen. Bei (4) kann die IOMMU einen Adressübersetzungslauf zu integritätsgeschützten Seitentabellen (die mit der TEE auf der XPU assoziiert sind) bereitstellen. Bei (5) kann die virtuelle Gast-Adresse (GVA) unter Verwendung der Seitentabellen in eine physische Host-Adresse (HPA) und assoziierte SchlüsselID übersetzt werden. Bei (6) kann die IOMMU dem SchlüsselID-Filter eine SchlüsselID und HPA bereitstellen. Das SchlüsselID-Filter kann prüfen, dass die verwendete Schlüssel-ID zulässig ist (z. B. zu einer Vertrauensdomäne/TEE gehört), und kann, falls zulässig, bei (7) eine Physische-Adresse(PA)-Leseanforderung an Confidential- (C, vertraulich), Integrity- (I, Integrität), Replay- (Wiedergabe) geschützte Mandantendaten im Speicher oder in der Speicherung ausgeben. Mandantendaten, die in einem Speicher oder einer Speicherung gespeichert sind, können verschlüsselt, integritäts- und wiedergabegeschützt werden (z. B. wiedergabegeschützter Speicherblock (RPMB)).
  • Bei (8) können verschlüsselte Daten aus dem Speicher oder der Speicherung einer Speicherverschlüsselungs-Engine (Memory Encryption Engine, MEE) der Vorrichtung 3160 bereitgestellt werden. Bei (9) kann die MEE die Daten entschlüsseln und entschlüsselte Klartextdaten für das IPU/XPU-Fabric zur Übertragung an die LEE-Verschlüsselungseinheit der Vorrichtung 3160 bereitstellen. Die LEE der Vorrichtung 3160 kann die Daten verschlüsseln und die Daten bei (11) einem Decodierer (Dec.) der Anforderer-IPU-Vorrichtung 3150 bereitstellen. Bei (12) kann die IPU-Vorrichtung 3150 die Daten entschlüsseln und Klartextdaten einem Cache (z. B. LLC) zum Zugriff durch eine XPU bereitstellen. Bei manchen Beispielen sind Daten außerhalb des IPU/XPU-Pakets verschlüsselt und nur innerhalb des Pakets können Daten in entschlüsseltem Format vorliegen.
  • 32A stellt eine beispielhafte Systemressourcenkomposition für eine IPU dar, die reservierte Berechnung von einer entfernten Partition online bringt, gemäß manchen Ausführungsformen.
  • 32B bildet ein Beispiel für IPU-Steuerebenen-Konfigurationsoperationen ab, die gemäß manchen Ausführungsformen durchgeführt werden können. Bei (1) tritt ein Ereignis zum Einsetzen eines Dienstes oder von Ressourcen auf, wie etwa eine neue Arbeitslast, Ressourcenauf- oder -abskalierung (oder Ein- oder Ausskalierung) oder Änderungen der Arbeitslast oder des Ressourcenparameters. Zum Beispiel kann eine Benutzeranforderung für einen neuen Dienst oder eine Änderung des Dienstes unter Verwendung einer Befehlszeilenschnittstelle (CLI: Command Line Interface) oder einer grafischen Benutzerschnittstelle (GUI) oder einer anderen API ausgegeben werden. Zusätzlich kann dies dynamisch durch Ereignisse von Telemetrie und lokaler IPU-Steuerebene ausgelöst werden, wie etwa Überwachungsereignisse, die angeben, dass ein SLO, Softwarequalitätsvoraussetzungen (SQR) usw. nicht erreicht werden.
  • Bei (2) kann eine globale hierarchische Dienststeuerebene Dienstparameter für eine oder mehrere lokale IPU-Steuerebenen spezifizieren. Parameter können SLO oder SQO beinhalten und auf einem oder mehreren der folgenden Parameter basieren: Mandantenkennung, Kostengrenze, Leistungsgrenze (obere oder untere), Latenzgrenze (obere oder untere), Jitter-Grenze (obere oder untere), Performanzvoraussetzungen (obere oder untere), Sicherheit, Standort, Regelungsvoraussetzungen, Ressourcen oder Zuverlässigkeit. Die globale Steuerebene kann die Konfiguration über mehrere Knoten oder Ressourcenpools segmentieren. Dies kann auch beim Verbinden von Änderungen/Aktualisierungen bestehender Dienste, wie etwa beim Verbinden eines neuen Dienstes mit bestehender Speicherung, verwendet werden. Diese Koordination kann zum Verwalten vom verteiltem Vertrauen und ressourcenübergreifenden SLA, SQRs, verwendet werden.
  • Bei (3) können eine oder mehrere lokale IPU-Steuerebenen dazu konfiguriert sein, Vorrichtungsverwaltung, Ressourcenzuweisung, Dienstaufbau, Sicherheitsdetektion und -durchsetzung, Konnektivität, Überwachung, hohes Verfügbarkeitsniveau durchzuführen. Mandanten-, Richtlinien-, Ressourcenvoraussetzungen können auf Richtlinien-Engines angewendet werden, um eine Dienstzerlegung über lokale und entfernte Ressourcen zu bestimmen. Manche der Informationen, die zum Treffen von Entscheidungen verwendet werden, können auf den Pro-Mandanten-Richtlinien und verfügbaren Ressourcen basieren. IPU-Steuerebenen können unterschiedliche Entscheidungsprozesse verwenden, um das endgültige Rezept zur Bereitstellung zu erzeugen.
  • Bei (4) kann die lokale IPU-Steuerebene Sicherheitsparameter (z. B. Richtlinie, Ressource, Aktionen) für eine oder mehrere durch die IPU gesteuerte Ressourcen festlegen. Sicherheitsparameter können eines oder mehrere von Datenverschlüsselungsrichtlinien in Ruhe, In-Flight-, In-Use-Attestierungsvoraussetzungen für Dienste und Plattformen, Schlüsselverwaltung und Benutzeridentität, Zugriffsrichtlinien, Isolation, regulatorische Einschränkungen beinhalten. Sicherheitsaktionen können eines oder mehrere von Folgendem beinhalten: Datenverschlüsselung und -schlüssel, Zertifikatverhandlung, Voraussetzungen einer virtuellen Vorrichtung oder Dienstvoraussetzungen. Eine Sicherheitsrichtlinie kann spezifizieren, was notwendig ist, um die Sicherheitsvoraussetzungen zu handhaben, und kann Mandantenisolation, Attestierung von Plattformen oder Diensten, Schlüsselverhandlung und -verwaltung, Speicherverschlüsselungsrichtlinien, rechtmäßiges Abfangen usw. beinhalten. Die lokale IPU-Steuerebene kann Voraussetzungen an andere Richtlinienmodule, wie etwa Netzwerkverschlüsselung (IPsec, Transportschichtsicherheit (TLS), gegenseitige TLS (mTLS), Datagramm-TLS (dTLS)) und Firewall (ACL, Verbindungsverfolgung), an das Konnektivitätsmodul weiterleiten.
  • Bei (5) kann die lokale IPU-Steuerebene Dienstniveauzielparameter (z. B. Richtlinie, Ressource, Aktionen) für eine oder mehrere durch die IPU gesteuerte Ressourcen festlegen. Dienstniveauzielparameter können Kosten und/oder Zuverlässigkeit und/oder Performanz und/oder Transaktionen pro Sekunde und/oder Rechenkerne und/oder Speichergröße und/oder Speicherungsgröße und/oder Netzwerkbandbreite beinhalten. SLO-Aktionen können Ressourcenzuweisungen und/oder Kapazität beinhalten. Dienstniveauziel(SLO)-Richtlinien können Voraussetzungen für Kosten, Zuverlässigkeit, Performanz, Transaktionen pro Sekunde, Anzahl von Rechenkernen, Speicher-/Cache-/Speicherungsgröße usw. beinhalten. Dies kann statische oder dynamische Konfigurationen für Ressourcen festlegen.
  • Bei (6) kann die lokale IPU-Steuerebene Dienstqualitätszielparameter (z. B. Richtlinie, Ressource, Aktionen) für eine oder mehrere durch die IPU gesteuerte Ressourcen festlegen. Dienstqualitätszielparameter können Telemetrie und/oder Latenz und/oder Jitter und/oder Protokollierung und/oder Überwachung und/oder Priorität beinhalten. SQO-Aktionen können eines oder mehrere von Folgendem beinhalten: Ressourcenzuweisungen, Bandbreite, QoS, Scheduling, Überwachungs- und Protokollierungsaktionen. Dienstqualitätsziele (SQO) können Elemente, wie etwa Telemetrie, Protokollierung, Überwachung, Antworten und Ende-zu-Ende-Latenz/-Jitter usw., beinhalten. Dies kann statische Attribute, wie etwa Gewichtungen, Raten, Beschleuniger usw. konfigurieren sowie Telemetrieereignisse und Filter für eine kontinuierliche Laufzeitüberwachung einrichten.
  • Bei (7) kann die lokale IPU-Steuerebene Konnektivitätsparameter (z. B. Richtlinie, Ressource, Aktionen) für eine oder mehrere durch die IPU gesteuerte Ressourcen festlegen. Konnektivitätsparameter können eines oder mehrere von Folgendem beinhalten: Routing, Firewall, NAT, Lastausgleich, Richtlinie, QoS, Komprimierung, Verschlüsselung, Dienst-Proxy-Applets und Speicherung, Speicheradressenabbildung: Lokal-Lokal und Lokal-Entfernt, Tiering-Hierarchie; kann eines oder mehrere von Folgendem beinhalten: Ressourcenzuweisungen, Routingtabellen, Adressabbildung, NVMe-über-Fabric, Speicherpoolzuweisung. Konnektivitätsrichtlinie kann beide Netzwerkrichtlinien abdecken, wie etwa Routing, Firewall, Netzwerkadressenübersetzung (NAT), Verbindungsverfolgung, Zugriffssteuerungslisten, Portbereiche, Spiegelung, Abtastung usw. Diese Funktionen können auf Overlay-Networking, Underlay-Networking und Mandanten-Offloads angewendet werden, wie etwa Dienst-Mesh, API-Gateways und Nachrichtenbusse. Zusätzliche Funktionen beinhalten das Handhaben von Speicherschnittstellenabbildung, wie etwa Adressabbildung auf lokal oder entfernt angeschlossenen Speicher und Speicherungs-Offloads. Ähnlich zu anderen Richtlinien-Engines können dies statische Konfigurationen oder dynamisch aktualisierte Verwendung von Ressourcen, Beschleunigern oder Diensten/Mikrodiensten sein.
  • Bei (8) kann die lokale IPU-Steuerebene Hochverfügbarkeits- und Fehlerbehandlungsparameter (z. B. Richtlinie, Ressource, Aktionen) für eine oder mehrere durch die IPU gesteuerte Ressourcen festlegen. Hochverfügbarkeits(HA)- und Fehlbehandlungsparameter können eines oder mehrere von Folgendem beinhalten: Verfügbarkeitszone, Gebiete, Fehler, Dienstmigration. HA- und Fehleraktionen können eines oder mehrere von Folgendem beinhalten: Überwachen von Ereignissen, Datenmigration, schnelles Failover, aktive Überwachung. Hochverfügbarkeits-, Fehlbehandlungs- und Zuverlässigkeitsrichtlinien können aktive Verwaltung, wie etwa Migration, Neustart, Konfigurations-/Aktualisierungs-Rollback, schnelles Failover, Dienstüberwachung usw. beinhalten. Sie kann auch Telemetrieereignisse zum Auslösen von Aktionen festlegen.
  • Bei (9) kann die lokale IPU-Steuerebene sichere Ressourcenverwaltungsparameter (z. B. Ressourcenpartitionen, Profil, Beschleuniger, QoS und Konfiguration) für eine oder mehrere durch die IPU gesteuerte Ressourcen festlegen. Sichere Ressourcenverwaltung kann Aktionsvoraussetzungen von jeder der Richtliniendomänen verarbeiten und sie auf verwaltete Ressourcen (lokal oder entfernt) basierend auf verfügbaren Ressourcen für den Dienstanforderungstyp abbilden. Sichere Ressourcenverwaltung kann Funktionen beinhalten, wie etwa BMCs, IPU-Verwaltung, Ressourcen (Tabellen, Beschleuniger, Speicher, Schlüssel, Protokollierung usw.) und versuchen, Ressourcen pro Mandant bereitzustellen, und dass Richtlinien und Konfigurationen keine Seiteneffekte aufweisen oder Daten offenlegen.
  • Bei (10) können die sicheren Ressourcenverwaltungsparameter verwendet werden, um Parameter in einer oder mehreren Ressourcendatenebenen für unterschiedliche IPUs und unterschiedliche Knoten (z. B. eine CPU, IPU, XPU, Speicherung/Speicher unter Verwendung von z. B. Konfiguration, Status, Register) festzulegen. Die Konfiguration individueller Ressourcen und der Verarbeitungsfluss können für Dienstkomposition, Beschleunigungs-Offload, Telemetrie angewendet werden. Sichere Ressourcenverwaltung kann Konfigurations- und Verwaltungsaktualisierungen für die angeschlossenen Ressourcen, wie etwa XPUs, Speicherung, Speicher, CPUs usw. sowie die IPU bereitstellen.
  • Bei (11) können die sicheren Ressourcenverwaltungsparameter verwendet werden, um Telemetrie-, Tracing-, Überwachungs-, Protokollierungsparameter (z. B. Mandant, Zeitstempel, Ereigniserzeugung, dynamische Aktualisierungen, Aktionen) für die IPU zu konfigurieren. Sichere Ressourcenverwaltung kann eine Konfiguration für Telemetrie bereitstellen, wie etwa Protokollierungsrichtlinien, Abtastzeiten, Ereignisfilterung und -erzeugung.
  • Bei (12) können die Datenebenen laufzeitdynamische Telemetrieüberwachung und Protokollierung bereitstellen. Telemetrie stellt Verwaltung und Beibehaltung für Telemetrie bereit, wie etwa Protokollierungsrichtlinien, Abtastzeiten, Ereignisfilterung und -erzeugung. Dies kann ein aktiver Prozess sein, der Ressourcenereignisse verwaltet oder Status und Ereignisse periodisch überprüft und erfasst. Auslöser können an den IPU-Hauptsteuerebenenprozess zurückgesendet werden, um weitere Aktionen zu ergreifen.
  • Bei (13) können Telemetrie, Tracing, Überwachung und Protokollierung und sichere Ressourcenverwaltung ihrer lokalen IPU-Steuerebene Abschluss, Status, Protokolle und Ereignisse bereitstellen. Bei (14) können lokale Ereignisse, Protokolle, Statusänderungen eine Rückkopplungsschleife für dynamische Anpassungen veranlassen, um Richtlinien beizubehalten. Diese können auch für breitere Aktionen in die globale hierarchische Dienststeuerebene zurückgeführt werden. Die lokale IPU-Steuerebene nimmt Anforderungen von der externen globalen hierarchischen Steuerebene, Telemetrieereignissen auf lokaler Knotenebene oder wird periodisch ausgeführt, um schnelle lokale Entscheidungen und Aktionen zu erzeugen. Dies kann eine skalierbare Architektur mit schnellerer Rückkopplung bereitstellen.
  • Bei (15) kann die lokale IPU-Steuerebene Abschlussereignisse und Statusänderungen an die globale hierarchische Dienststeuerebene liefern, um Meldung über einen Anforderungsabschlussstatus, genutzte Ressourcen und Telemetrieereignisse zu liefern. Anforderungsabschlussstatus, genutzte Ressourcen und Telemetrieereignisse werden an die lokale und globale hierarchische Steuerebene zum Protokollieren bereitgestellt und können nachfolgende Aktionen auslösen, wie etwa das Aufskalieren neuer Ressourcen oder das Migrieren von Diensten.
  • Bei (16) können Abschlussereignisse und Statusänderungen an einen Administrator oder Benutzer zurückgemeldet werden. Ein neues Ereignis kann basierend auf dem empfangenen Status ausgegeben werden.
  • 32C-1 und 32C-2 stellen ein Beispiel für einen Steuerebenenbetrieb unter Verwendung verschiedener Sicherheitsmerkmale dar. Die IPU-Steuerebenen-Sicherheitseigenschaften können beinhalten:
    1. A. IPU stellt eine Steuerebene bereit, um Sicherheitseigenschaften Vertraulichkeit, Integrität, Wiedergabeschutz und Verfügbarkeit (C,I,R,A) für disaggregierte Berechnung, Speicher/NVM/Speicherung, Netzwerk zu verhandeln (z. B. Punkte 1 und 2).
    2. B. Messung, Meldung, Attestierung/Quote-Verifikations-Bausteine auf IPU mit flexibler Rekonfigurierbarkeit (hierarchische Attestierung von Cloud-Plattformen) (z. B. Punkt 4).
    3. C. Abbilden der Arbeitslast „Sicherheits-SLA“ über Orchestrierung (über verteiltes System hinweg) auf einen Satz von IPUs, Ausgleichen von Performanzvoraussetzungen gegenüber feingranularen Multi-Mandanten-Programmiermodellen - z. B. virtuelle Funktion, VMs, Containern, Fächer (z. B. Punkte 5 und 10).
    4. D. Teilen der Rolle von Hypervisor-Verwaltung und Sicherheitsrollen über XPU und IPU (CSP verwaltet die gesamte verteilte Plattform) (z. B. Punkte 3 und 11).
    5. E. Verwalten von Sicherheitsdiensten in der IPU und Datenzugriffssteuerabbildung (z. B. Punkte 5 und 6).
    6. F. Mit verteilten Systemen, separate Krypto-Domänen, bei denen Plattformfähigkeiten unterschiedliche Krypto-Domänen über CPU/IPU/XPU binden (z. B. Punkte 8 und 9).
    7. G. Lokale Rückkopplung von der sicheren Steuerebene, um durchzusetzen, dass eine Schnittstelle, die an einen vertrauenswürdigen Ausführungskontext gebunden ist, nicht bösartig rekonfiguriert wird, und ein Ereignis hervorrufen kann, das die Schnittstelle rekonfigurieren kann oder Geheimnisse löschen kann, und kann über eine Vorrichtungsschnittstellen-Sicherheitszustandsmaschine auf einer Schnittstellenebene durchgesetzt werden. Beispielhafte Aktionen aufgrund von Sicherheitsverletzungen beinhalten Protokollieren, Entfernen von Diensten, Widerrufen von Schlüsseln oder Zertifikaten, Umleiten und Isolation von Diensten oder Eingrenzung von Diensten für aktives Debugging von Anfälligkeit und Intrusionstiefe.
  • Eine beispielhafte Sequenz für den Steuerebenenbetrieb unter Verwendung verschiedener Sicherheitsmerkmale kann wie folgt sein. Unter Bezugnahme auf 32C-1 tritt bei (1) ein Ereignis zum Einsetzen eines Dienstes oder von Ressourcen auf, wie etwa eine neue Arbeitslast, Ressourcenauf- oder -abskalierung oder Änderungen der Arbeitslast oder Ressourcenparameter. Bei (2) kann die globale Steuerebene eine Konfiguration über mehrere Knoten oder Ressourcenpools basierend auf Sicherheitsvoraussetzungen durchsetzen. Zum Beispiel kann für TDX (Trusted Data Exchange) Speicher verschlüsselt, Integrität und Wiedergabe geschützt werden, und externe Vorrichtungslinks sind ähnlich zu schützen und zertifikatgesicherte Vorrichtungsmessungen sollten zur Evaluierung verfügbar sein.
  • Eine globale Orchestrierung/Dienststeuerebene kann eine Partitionierung hoher Ebene von Diensten über eine einzelne oder mehrere Plattformen durchführen. Die globale Orchestrierung/Dienststeuerebene kann VMM-, Dienst-OS- und/oder Verwaltungssteuerebenenfunktionen auf einer IPU beinhalten. Die globale Orchestrierung/Dienststeuerebene kann eine Dienstaktivierung/-änderung zur vertrauenswürdigen Ausführung anfordern. Von der globalen Orchestrierung/Dienststeuerebene isolierte TCB-Elemente können Sicherheitsparameter und Zustandsmaschinen durchsetzen. Bei (2) kann die globale Orchestrierung/Dienststeuerebene eine Dienstaktivierung/-änderung an einer lokalen IPU-Steuerebene unter Verwendung von Legacy-Schnittstellen anfordern. Bei (2) können von der globalen Orchestrierung/Dienststeuerebene isolierte TCB-Elemente mit einer lokalen IPU-Steuerebene über eine CPU-Switch-Abstraktionsschnittstellen(SAI)-Prüfung oder über ein geschütztes Busprotokoll kommunizieren.
  • Es ist zu beachten, dass bei (1) und (2) die IPU-Steuerebene Sicherheitseigenschaften bereitstellen kann, wodurch die IPU eine Steuerebene bereitstellt, um Sicherheitseigenschaften (C,I,R,A) für ein Netzwerk mit disaggregierter Berechnung, Speicher/NVM/Speicherung, auszuhandeln.
  • Bei (3) kann die lokale IPU-Steuerebene eine Verwaltungsfunktion auf der IPU/Vorrichtung durchführen, um Verwaltungs-APIs bereitzustellen, um Vorrichtungsmessungen und -fähigkeiten zu zählen, Nachrichten an die lokale IPU-Steuerebene - Vorrichtungssicherheits-Engine - weiterzuleiten, lokalen Speicher, wie Legacy-Software zugewiesen, oder anfängliche virtuelle Funktionssicherheitsassoziationen für Downstream-Vorrichtungen zu initialisieren. Bei (3) kann die lokale IPU-Steuerebene - Vorrichtungssicherheits-Engine eine Sicherheitsfunktion auf der IPU bereitstellen, um Steuer-APIs bereitzustellen, Vorrichtungsmessungen und -fähigkeiten zu zählen, Schlüssel für Linkprotokolle zu konfigurieren, lokalen Speicher zu initialisieren, wie vertrauenswürdigen Domänen zugewiesen, oder virtuelle Funktionssicherheitsassoziationen für Downstream-Vorrichtungen zu verifizieren, die vertrauenswürdigen Ausführungsumgebungen (vertrauenswürdigen Domänen oder Enklaven) zugewiesen sind.
  • Bei (3) kann eine andere lokale IPU-Steuerebene eine Sicherheitsfunktion auf der IPU/Vorrichtung (Vorrichtungssicherheits-Engine/DSE genannt) bereitstellen, stellt Steuer-APIs bereit, um Vorrichtungsmessungen und -fähigkeiten zu zählen, Schlüssel für Linkprotokolle zu konfigurieren, lokalen Speicher zu initialisieren, wie vertrauenswürdigen Domänen zugewiesen, oder virtuelle Funktionssicherheitsassoziationen für Downstream-Vorrichtungen zu verifizieren, die vertrauenswürdigen Ausführungsumgebungen (z. B. vertrauenswürdigen Domänen oder Enklaven) zugewiesen sind. Zwischen lokalen IPU-Steuerebenen kann eine sichere Sitzung aufgebaut werden.
  • Unter Bezugnahme auf 32C-2 kann bei (4) eine Attestierungs- und Messkonfiguration Datenverschlüsselungsrichtlinie in Ruhe, in-Flight, in-Use beinhalten, Attestierungsvoraussetzungen für Dienste und Plattformen bereitstellen, Schlüsselverwaltung und Benutzeridentität konfigurieren, Zugriffsrichtlinien, Isolation, regulatorische Einschränkungen konfigurieren. Sicherheitsaktionen können Folgendes beinhalten: Speicherung und Zugriff auf Datenverschlüsselung und Schlüssel, Zertifikatsverhandlung, Anwendung von virtuellen Vorrichtungsvoraussetzungen und Anwendung von 'vice-Voraussetzungen.
  • Bei (5) kann die Konfiguration vertrauenswürdiger Schnittstellen lokale Sicherheitsrichtlinien für die Vertrauensdomäne abbilden, um Sicherheitsassoziationen pro TEE-Kontext beizubehalten, die für MMU, Schnittstellen und andere Link-Schnittstellen (z. B. Netzwerk, PCIe und so weiter) gelten können. Aktionen können Programmieren von ephemeren/persistenten Schlüsseln oder Protokollsicherheitsassoziationen für die Verbindungsschicht beinhalten.
  • Bei (6) können Verfügbarkeits- und vertrauenswürdige Migrationskonfiguration Richtlinie, Ressource, Aktionen und Verfügbarkeitszone, Gebiete, Fehler, Dienstmigration bereitstellen. Hochverfügbarkeits(HA)- und Fehleraktionen können Überwachungsereignisse, Datenmigration, Schnelles Failover, eine aktive Überwachung beinhalten.
  • Bei (7) kann sichere Ressourcenverwaltung Aktionsvoraussetzungen von jeder der Richtliniendomänen verarbeiten und sie auf die Konfiguration individueller Sicherheitssteuerungen basierend auf (C,I,R,A)-Voraussetzungen abbilden. Bei (8) können IPU-Speichersteuerung, Netzwerkschnittstellen, Vorrichtungsschnittstellen (z. B. CXL oder PCIe oder N bis M Vorrichtungsschnittstellen (wobei N und M mehr als 1 sind)), andere Ressourcendatenebenen oder angeschlossene Speicherung, Speicher oder Beschleuniger durch sichere Ressourcenverwaltung konfiguriert werden. Bei (9) können Downstream-IPUs, -XPUs oder lokale Steuerebenen und Vorrichtungssicherheits-Engines durch einen sicheren Ressourcenmanager konfiguriert werden. Bei (10) kann sichere Telemetrie, Tracing, Überwachung, Protokollierung Telemetrieinformationen empfangen, die mit Integrität (und Vertraulichkeit) geschützt sind, die dem Arbeitslast-Mandanten bereitgestellt werden sollen. Unter Bezugnahme auf 32C-1 können bei (11) vertrauenswürdige Abschlussereignisse, Statusänderungen, Interrupt-Fehler an von der globalen Orchestrierung/Dienststeuerebene isolierte TCB(Trusted Computing Base)-Elemente bereitgestellt werden, um Sicherheitsparameter und Zustandsmaschinen durchzusetzen.
  • Unter Bezugnahme auf 32C-2 kann die Sicherheitssteuerebene bei (12) zur Sicherheitsisolation ein separater Prozess sein. Aktualisierungen und Aktionen von der Sicherheitssteuerebene können Aktualisierungen für die IPU-Steuerebene bereitstellen, um Ereignisse für die globale hierarchische Steuerebene zusammenzufassen. Die IPU-Steuerebene kann in einen Fehlerzustand zur potentiellen Rekonfiguration versetzt werden oder in einem Fehlerzustand verbleiben und als ein Kandidat zum Durchführen eines Dienstes entfernt werden.
  • Unter Bezugnahme auf 32C-1 können bei (13) Abschlussereignisse, Statusänderungen und Interrupt-Fehler durch die lokale IPU-Steuerebene an die globale Orchestrierung/Dienststeuerebene bereitgestellt werden. Beispielhafte Aktionen aufgrund von Sicherheitsverletzungen sind Protokollieren, Entfernen von Diensten, Widerrufen von Schlüsseln oder Zertifikaten, Umleiten und Isolation von Diensten oder Eingrenzung von Diensten für aktives Debugging von Anfälligkeit und Intrusionstiefe. Es ist zu beachten, dass sich die globale Orchestrierung und jede IPU in unterschiedlichen kryptographischen Domänen befinden können.
  • 33A stellt ein Beispiel für eine IPU-Datenebene und einen Betrieb dar. Bei (1) werden Verarbeitungsanforderungen eingereiht, wie etwa LAN, RDMA, NVMe oder Dienstanforderungen für RPC oder Nachrichtenverarbeitung. Zur Telemetrie können diese Anforderungen zeitgestempelt werden. Ein Beispiel ist für RPC-Offload, die IPU kann jede einzelne RPC-Sitzung für Latenz/Jitter zeitstempeln und Fehler und assoziierte Ereignisse assoziieren. Diese können für dynamische Anpassungen in die IPU-Steuerebene rückgekoppelt werden.
  • Bei (2) werden Anforderungen basierend auf verschiedenen Parametern geplant, wie etwa Mandanten-QoS, Min/Max/Gewichtungs-SLAs, Priorität, früheste/späteste Verarbeitungszeitvoraussetzungen. Bei (3) kann die Protokollverarbeitung die notwendige Teilbefehlsverarbeitung erzeugen, die zum Abschließen der Anforderung erforderlich ist.
  • Bei (4) sammelt ein DMA (Direct Memory Access - Direktspeicherzugriff) die notwendigen Daten zur Verarbeitung. Bei (5) können Klassifikation und Datenverarbeitung basierend auf der Steuerebenenkomposition von disaggregierten Funktionen stattfinden. Basierend auf der Konfiguration kann dies einen beliebigen Satz oder eine beliebige Sequenz von Beschleunigern, Berechnung, Speicherung, Speicher, Sicherheit, Telemetrie und Timing-Verarbeitung verwenden. Manche Anwendungsfälle können mehrere rezirkulierte Durchläufe erfordern, um unterschiedliche Schichten des Protokollstapels zu bearbeiten. Die IPU kann auch Telemetrieinformationen, wie etwa UUIDs, einfügen, um ein Tracing von RPCs zwischen Diensten zu ermöglichen.
  • Bei (6) kann eine abgeschlossene Verarbeitung zur Übertragung über das Medien-Fabric geplant werden. Für Dienste, die lokal gehostet werden, kann das Paket dann lokal in die Empfangsverarbeitung zurückgeschleift werden. Bei (7) kann eine Empfangspufferung basierend auf Verkehrspriorität, Mandant, Typ stattfinden. Es kann zu einer Zeitstempelung für Telemetrie kommen.
  • Bei (8) kann ein Empfangsverkehr-Scheduling basierend auf variierenden Parametern auftreten. Bei (9) können Klassifikation und Datenverarbeitung basierend auf der Steuerebenenkomposition von disaggregierten Funktionen stattfinden. Basierend auf der Konfiguration kann dies einen beliebigen Satz oder eine beliebige Sequenz von Beschleunigern, Berechnung, Speicherung, Speicher, Sicherheit, Telemetrie und Timing-Verarbeitung verwenden. Manche Anwendungsfälle können mehrere rezirkulierte Durchläufe erfordern, um unterschiedliche Schichten des Protokollstapels zu bearbeiten. Die Klassifizierung kann auch die Platzierung von Arbeitslasten bestimmen, wie etwa Speicher-/Cache-Ort und Hierarchie, Kernaffinität, NUMA-Bewusstsein, weniger genutzte XPUs usw.
  • Bei (10) können Direktspeicherzugriff(DMA)-Kopien von Daten zum Zielspeicher in Berechnung, XPU, Speicherung, Speicher auftreten. Bei (11) kann die Protokollverarbeitung die notwendige Teilbefehlsverarbeitung erzeugen, die zum Abschließen der Anforderung erforderlich ist.
  • Bei (12) können Anforderungen basierend auf verschiedenen Parametern geplant werden, wie etwa Mandanten-QoS, Min/Max/Gewichtungs-SLAs, Priorität, Jitter, Latenz, früheste/späteste Verarbeitungszeitvoraussetzungen. Bei (13) können abgeschlossene Anforderungen eingereiht werden, wie etwa traditionelles LAN, RDMA, NVMe oder Dienstanforderungen für RPC oder Nachrichtenverarbeitung. Zur Telemetrie können diese Anforderungen zeitgestempelt werden. Anforderungen können auch auf den Sendepfad umgeleitet werden. Dies kann erforderlich sein, falls die IPU die Verarbeitungsanforderung unabhängig abschließen kann oder falls sich die Ressource zu einer entfernten Vorrichtung bewegt hat.
  • Bei (14) kann die IPU EA-, Speicher- und Cache-Befehle über das Rechen-Fabric verwalten, um zu lokalen Ressourcenpools umzuschalten oder die Anforderung zu einem entfernten Ressourcenpool zu überbrücken/weiterzuleiten. Bei (15) können MMU und Adressübersetzung zur Cache-Verfolgung und Klassifizierung von Speicheradressen verwendet werden, um die erforderliche Verarbeitung und anzuwendenden Richtlinien zu bestimmen. Ein Speicherzugriff auf einen entfernten Speicherpool kann Verkapseln des Zugriffs in eine Nachrichtenanforderung erfordern, die in dem Sendepfad verarbeitet werden soll.
  • 33B stellt ein Beispiel für eine IPU-Datenebene und einen Betrieb mit Sicherheitsmerkmalen dar. Die IPU kann eine Datenebene für Schutz verwendeter Daten für verbesserte Isolation sowie vertrauliches Computing für verteilte Mandanten-uDienste bereitstellen. Ein Rechen-Fabric kann Vorrichtungsvirtualisierung und Mandantenisolation für Datenebenennachrichtentransfer bereitstellen. Ein Sicherheitsprozessor kann Quote-Verifikation zur Laufzeitattestierung von Arbeitslasten für Protokollverarbeitung, DMA und Schlüsselkonfiguration bereitstellen. Dienst-Offload-Sicherheits-Engines können z. B. Migrationsagent, Dienst-Mesh bereitstellen. Dienst-Offload-Sicherheits-Engines können Schlüssel für programmierbare Klassifizierung, Prozesssequenzierung, Dienst-Proxy und Applet konfigurieren. Beschleuniger- und Rechenfunktionen mit Pro-Mandanten-Isolation können durch programmierbare Klassifizierung, Prozesssequenzierung, Dienst-Proxy und Applet angewendet werden.
  • Inline-Sicherheits-Engine (z. B. Speicherverschlüsselung) kann durch programmierbare Klassifizierung, Prozesssequenzierung, Dienst-Proxy und Applet angewendet werden. Lokale MMU, Adressübersetzung kann verwendet werden, um Pro-Mandanten-Zugriffssteuerung und kryptographische Isolation aufrechtzuerhalten.
  • Für Datenebenenoperationen können folgende Sicherheitsmerkmale verwendet werden, die mit eingekreisten Nummern gekennzeichnet sind.
  • Sicherheitsmerkmal (1): TEE-Eigenschaften können über eine Steuerebene über nicht einheitliche heterogene Vorrichtungen (z. B. CPU, FPGA, GPU, XPU, Beschleuniger, Speicherpool, Speicherungsvorrichtungen) konfiguriert werden, können in dem Datenpfad durchgesetzt werden, sodass jegliche Mandantendaten, die außerhalb des SOC offengelegt werden, C, I, R-geschützt sind.
  • Sicherheitsmerkmal (2): die IPU kann eine virtuelle Vorrichtungsschnittstelle für Beschleuniger auf dem SOC (nicht auf der IPU) bereitstellen.
  • Sicherheitsmerkmal (3): Eine nahtlose Migration von Arbeitslasten (z. B. VMs, Container, uDienste, Funktionen) über disaggregierte Plattformen kann über die IPU erfolgen. Zum Beispiel kann die IPU bei der VM-Live-Migration assistieren.
  • Sicherheitsmerkmal (4): im Rahmen von verteilter TEE können die vertraulichen EA-Vorrichtungs-/-Fabric-Sicherheitsassoziationen für die gesamte Cloud-Plattform, z. B. IPSEC, TLS (logisch), CXL, PCIe (Link), RDMA über Ethernet usw. verwendet werden.
  • Sicherheitsmerkmal (5): Eine geteilte Rolle von Hypervisor-Verwaltung und Sicherheitsrollen über XPU und IPU und ein CSP können die gesamte verteilte Plattform verwalten.
  • Sicherheitsmerkmal (6): Kommunikation/RPC/Sidecar-Sicherheit kann für native Cloud-Arbeitslasten wie WASM/Mikrodienste/FaaS - Subprozess und sicherer/gemeinsam genutzter Speicher verwendet werden.
  • Sicherheitsmerkmal (7): Effiziente (ISA/Hardware-basierte) sichere Inter-uDienst-Kommunikation über Beschleuniger-zu-Beschleuniger-Nachrichten.
  • Sicherheitsmerkmal (8): On-the-Fly-Attestierung von Mikrodiensten (uDienst) über IPU.
  • 33C-1 bis 33C-3 veranschaulichen Systemansichten von Sicherheitsmerkmalen aus 33B. 33C-1 stellt ein Beispiel dar, bei dem eine IPU TEE-Eigenschaften über eine Steuerebene über verschiedene Schnittstellen, die (1) aus 33B entsprechen, konfiguriert.
  • 33C-2 stellt ein Beispiel dar, bei dem eine IPU eine virtuelle Vorrichtungsschnittstelle und Arbeitslastmigration konfiguriert. Zum Beispiel sind Sicherheitsmerkmale (2) und (3) aus 33B veranschaulicht.
  • 33C-3 stellt ein Beispiel dar, bei dem eine IPU eine Arbeitslastisolation bereitstellt. Zum Beispiel sind Sicherheitsmerkmale (1), (4), (6), (7) und (8) aus 33B veranschaulicht.
  • Die 34A und 34B stellen ein Anwendungsbeispiel einer IPU-Datenebene-RPC mit Dienst-Mesh dar. Es kann Variationen bei dem Einsatz geben, bei denen sich Dienstkomponenten auf der Berechnung oder XPU befinden können. Die genaue Sequenz der Dienstausführung kann auch je nach Einsatz variieren. Bei manchen Beispielen kann eine Quellen-IPU (2) - (5) durchführen, wohingegen eine Ziel-IPU (6)-(10) durchführen kann.
  • Unter Bezugnahme auf 34A, bei (1) eine RPC-Anforderung für einen Mikrodienst/Dienst. Die Anwendung kann in einer Vielzahl von Umgebungen gehostet werden, wie etwa serverlos, Containern, VMs, Container-in-VM, Bare-Metal usw. Ein RPC ist ein Beispiel für einen Diensttyp oder Funktionsaufruf und kann andere Verfahren beinhalten, wie etwa SOAP (Simple Object Access Protocol), REST (Representational State Transfer), gRPC, GraphQL, Thrift, JSON-RPC, HTTP, OpenAPI usw.
  • Bei (2) können Anforderungen, die über eine Socket-artige Speicherschnittstelle gesendet werden, speicher- und cache-kohärente Rechen-Fabrics nutzen.
  • Bei (3) kann eine Mandanten-RPC-Dienst-Mesh-Verarbeitung durchgeführt werden, wie etwa DNS, RPC-Klassifizierung, Sicherheitsrichtlinie, Lastausgleich, Weiterleitungsrichtlinie, Datentransformation, Komprimierung, Verschlüsselung, Telemetrie und Protokollierung.
  • Bei (3) kann IPU-Offload der RPC- und Dienst-Mesh-Verarbeitung auftreten. Dies kann eine Mischung aus festen/zustandsbehafteten/programmierbaren Beschleunigern oder Berechnung sein. Dies gibt Host-Berechnung frei und reduziert Leistung, Latenz usw.
  • Bei (4) kann IPU-Offload einer Mandanten-Overlay-Verarbeitung auftreten, wie etwa Zeitstempelung, QoS-Scheduling, Klassifizierung, Sicherheitsrichtlinie, Weiterleitungsrichtlinie, Netzwerkadressenübersetzung (NAT), Firewall oder vSwitch-Verarbeitung.
  • Bei (5) kann IPU-Offload der Mandantenausgabeverarbeitung auftreten, wie etwa LAG/ECMP, Paketmodifikationen, Segmentierung, zuverlässiger Transport, Überlastungssteuerung, Medien-QoS-Scheduling oder Protokollierung. IPU-Offload von TCP/zuverlässigem Transport und dynamische Überlastungssteuerung entfernt Host-Kopien zwischen Benutzerraum und Kernel und reduziert Latenzen, Jitter und Tail-Latenzen. Dies kann ermöglichen, dass sich der Zugriff auf gemeinsam genutzte Fernressourcen ähnlich zu lokalen dedizierten Ressourcen verhält.
  • Unter Bezugnahme auf 34B kann bei (6) eine Ziel-IPU (Knoten 2) ein Offload einer Mandantenausgabeverarbeitung durchführen, wie etwa Zeitstempelung, Klassifizierung, Pufferung, QoS-Scheduling, Überlastungssteuerung, zuverlässiger Transport oder Protokollierung. IPU-Offload von TCP/zuverlässigem Transport und dynamische Überlastungssteuerung entfernt Host-Kopien zwischen Benutzerraum und Kernel und reduziert Latenzen, Jitter und Tail-Latenzen. Dies kann ermöglichen, dass sich der Zugriff auf gemeinsam genutzte Fernressourcen ähnlich zu lokalen dedizierten Ressourcen verhält.
  • In (5) und (6) entfernt IPU-Offload von TCP/zuverlässigem Transport und dynamische Überlastungssteuerung Host-Kopien zwischen Benutzerraum und Kernel. Es reduziert Latenzen, Jitter und Tail-Latenzen. Dies ermöglicht, dass sich der Zugriff auf gemeinsam genutzte Fernressourcen ähnlich zu lokalen dedizierten Ressourcen verhält.
  • Bei (7) kann eine Ziel-IPU ein Offload einer Mandanten-Overlay-Verarbeitung durchführen, wie etwa Klassifizierung, Sicherheitsrichtlinie, Firewall, NAT, Entkapselung oder vSwitch-Verarbeitung.
  • Bei (8) kann eine Ziel-IPU ein Offload einer Mandanten-RPC-Dienst-Mesh-Verarbeitung durchführen, wie etwa RPC-Klassifizierung, Sicherheitsrichtlinie, Neuzusammensetzung, Entschlüsselung, Dekomprimierung, Datentransformation, Telemetrie, Protokollierung, Prozesskernaffinität und Dienst-QoS. IPU-Offload von Dienst-Mesh und API-Gateway-Funktionen. Dies kann Sicherheitsfunktionen beinhalten, wie etwa Benutzerauthentifikation für Zugriffskontrolle, Feldvalidierung, Ratenbegrenzung, Priorisierung und Eingabedienst-Scheduling während Überlastung.
  • Bei (9), (9a) und (9b) kann eine Ziel-IPU bestimmen, ob der Dienst lokal in der IPU gehostet wird oder nicht. Die Ziel-IPU kann Dienste/Mikrodienste/Applets hosten, die auf Kernen oder Beschleunigern mit dem Dienst ausgeführt werden können, wobei sich die Funktion vollständig lokal auf der IPU befindet oder auf die IPU und angehängte XPUs/Speicherung/Speicher aufgeteilt wird, um die Dienstfunktion abzuschließen. Die IPU kann auch die Anforderung zum Berechnen von Mandantenanwendungen zurückgeben oder ob eine größere Berechnung erforderlich ist. Es ist auch möglich, dass der Dienst auf dem anfordernden Knoten mit der IPU gehostet wird. Die IPU stellt dem Anforderer eine Abstraktion bereit und routet (z. B. unter Verwendung eines Dienst-Mesh) zu dem korrekten Dienstendpunkt. RPCs zwischen Hosts können verwendet werden, um Mikrodienste aufzubauen, und können bessere Skalierbarkeit, Fehlerisolation und schnellere unabhängige Entwicklung bereitstellen.
  • Bei (10) kann eine Ziel-IPU die Ausführung oder das Senden einer Anforderung zur Verarbeitung innerhalb der IPU-Ressourcen oder der angeschlossenen Ressourcen planen. Basierend auf Klassifizierung und Telemetrie kann das IPU-Scheduling SLO-, SQR-Voraussetzungen sowie Überlastung und Ressourcenausnutzung berücksichtigen. Empfangspriorisierung und Scheduling können Latenz minimieren und Mandanten-SLAs verwalten.
  • 35A und 35B stellen ein Beispiel für eine Dienstdekomposition über lokale und entfernte Ressourcen dar. Unter Bezugnahme auf 35A kann bei (1) eine Anwendung einen Dienst / Mikrodienst über gRPC anfordern. Bei (2) verbleibt der Protobuf-Teil von gRPC auf der CPU und erzeugt eine serialisierte Nachricht. Bei (3) kann die IPU eine Nachricht planen und streamen und führt eine gRPC-Beschleunigung durch, wie etwa Komprimierung und Verschlüsselung, die normalerweise auf der CPU ausgeführt werden würden. Bei (4) kann die IPU Offload-Funktionen von Dienst-Mesh, zuverlässiger Transport, vSwitch durchführen. Diese stellen eine höhere Performanz und eine niedrigere Latenz bereit und können veranlassen, dass sich disaggregierte Femdienste und XPU-Zugriff wie eine lokal angehängte Anforderung verhalten.
  • Eine Steuerebene kann das Dienst-Mesh konfigurieren, um eine Anforderung an einen Femdienst zur Fernausführung (5) durch eine Medienschnittstelle zu senden und eine andere IPU oder ein lokales Applet (5a) durchzuschalten. Eine Fernausführung kann sich auf eine Durchführung eines Dienstes an einer Vorrichtung beziehen, die durch eine Netzwerk- oder Fabric-Schnittstelle zugänglich ist. Bei manchen Beispielen kann ein Dienst eines oder mehrere von Folgendem beinhalten: Software, die durch einen Prozessor ausgeführt wird, eine Funktion, feste oder programmierbare Hardware, Software, die durch eine CPU ausgeführt wird, einen Prozess, der durch eine GPU oder GPGPU durchgeführt wird, die Verwendung eines Beschleunigers oder einen RPC.
  • Bei (5a) kann die Steuerebene optional ein lokales IPU-gehostetes Applet für XPU-Dienst-API einsetzen. Lokal versorgt kann eine niedrigere Latenz als eine Verwendung einer anderen IPU mit möglichen Kompromissen, wie etwa Performanz, bereitstellen.
  • Intelligente Switches 100 wie Barefoot Networks Tofino können Paket- und Nachrichten-/RPC-Telemetrieinformationen basierend auf UUID exportieren. Dies kann Auswirkungen von Ausfällen, Fehler- und Latenzquellen und Verkehrsarten, die geführt werden, bestimmen.
  • 35B stellt Aktivitäten einer zweiten IPU dar. Für eine empfangene Nachricht kann die zweite IPU (4) - (7) durchführen. Bei (5) hostet die IPU eine Dienst-API, um XPU-Fähigkeiten offenzulegen und jede notwendige Vorverarbeitung einer Anforderung zu bearbeiten. Rx-Priorisierung und -Scheduling zur Minimierung der Latenz und Verwaltung von Mandanten-SLAs. Bei (6) sendet die IPU Anforderungen an die XPU zur notwendigen Verarbeitung. Bei (7) kann eine XPU-Verarbeitung stattfinden. Bei (8) kann die IPU einen XPU-Abschluss verwenden, um eine Rückkehr-RPC-Antwort zur Anwendung zu erzeugen. Dies überbrückt das Verhalten von XPUs und Mikrodienst-RPC.
  • 36A und 36B stellen ein beispielhaftes System und einen beispielhaften Betrieb einer IPU-Dienstzerlegung für Speicher- und Speicherungsszenarien dar. Unter Bezugnahme auf 36A kann bei (1) eine Anwendung eine Anforderung einer Speicherungsanforderung mit einer Dienstanforderung für Datenbankzugriff und Speicherladen/Speicherung/Cache-Invalidierung usw. ausgeben. Bei (2) kann die CPU-MMU für Speichertransaktionen die Anforderung über das Rechen-Fabric an die IPU senden. Andere Arten können als Dienste oder NVMe-Anforderungen offengelegt werden. Bei (3) können MMU und Adressübersetzung zur Cache-Verfolgung und Klassifizierung von Speicheradressen verwendet werden, um die erforderliche Verarbeitung und anzuwendenden Richtlinien zu bestimmen. Ein Speicherzugriff auf einen entfernten Speicherpool kann das Verkapseln des Zugriffs in eine Nachrichtenanforderung erfordern, die in dem Übertragungspfad verarbeitet werden soll.
  • Bei (4) können Benutzerauthentifikation und -identität Namensräume und Richtlinien definieren, wie etwa Zugriff, QoS, Konnektivität usw. Bei (5) können EA-, Speicher- und Caching-Befehle über das Rechen-Fabric von der IPU verwaltet werden, um zu lokalen Ressourcenpools umzuschalten oder die Anforderung zu einem lokalen oder entfernten Ressourcenpool zu überbrücken/weiterzuleiten. Bei (6) kann es zu Protokollverkapselung und -umwandlung kommen. Bei (7) kann eine IPU ein Offload von Funktionen von Dienst-Mesh, zuverlässiger Transport, vSwitch durchführen. Diese Verarbeitung kann auch den lokalen oder entfernten Ort des Dienstes bestimmen.
  • In diesem Beispiel soll der Dienst als Nächstes auf einer zweiten IPU durchgeführt werden. Über eine Medienschnittstelle wird eine Nachricht bzw. ein RPC an eine zweite IPU übertragen. Wie in 36B gezeigt, kann die IPU unter Verwendung des Switches 100 mit einer zweiten IPU kommunizieren. Der Switch 100 kann einen Switch beinhalten, der Paket- und Nachrichten- oder RPC-Telemetrieinformationen basierend auf UUID exportieren kann. Dies kann Auswirkungen von Ausfällen, Fehler- und Latenzquellen und Verkehrsarten, die geführt werden, bestimmen.
  • Unter Bezugnahme auf 36B kann auf eine zweite IPU zugegriffen werden. Die zweite IPU kann eine SmartNIC mit Speicherungsbeschleunigung für lokale und entfernte NVMe- oder NVMe-über-Fabric-Transaktionen beinhalten. Bei (20) kann die zweite IPU IPU-Offload-Funktionen von Dienst-Mesh, zuverlässiger Transport, vSwitch durchführen. CPU-Kerne abladen und Latenz verringern. Speicher- und Speicherungsanforderungen werden als von den IPU-Diensten proximiert identifiziert.
  • Bei (21) kann die zweite IPU IPU-Offload-Funktionen von Dienst-Mesh und Dienstoffenlegung von Speicher- und Speicherungsanforderungen durchführen. Diese werden von den IPU-Diensten als proximiert identifiziert.
  • Bei (22) kann die zweite IPU eine Benutzerauthentifizierung und -identität durchführen, Namensräume und Richtlinien definieren, wie etwa Zugriffssteuerung, gültige Adressbereiche, QoS, Sicherheitsrichtlinie usw. Zugriff auf Benutzerbasis gewährleistet, dass Verschlüsselungsschlüssel niemals offengelegt werden. Richtlinie und Entscheidungen über Datenplatzierung, wie etwa Speicher- oder Cache-Hierarchie, und Invalidierung.
  • Bei (23) kann die zweite IPU eine Arbeitslastplatzierung durchführen, um Daten am nächsten an der Stelle platzieren zu können, wo eine anschließende Verarbeitung stattfinden wird. Bei (24) kann die zweite IPU Protokoll-Engines für Speicher- und Speicherungsschnittstelle durchführen. Bei (25) kann die zweite IPU eine Verarbeitung für Dateisysteme, Objektspeicher, assoziierte Metadaten, Schlüsselwert durchführen. Dies beinhaltet Parsen von Strukturen, Suche und Filter (REGEX/HALO) und Richtliniendurchsetzung. Richtlinienaktionen können Datenreplikation, Multicast zur Protokollierung usw. beinhalten. Ex: Zugangskontrolle basierend auf Benutzerauthentifikation zur Feldzugangskontrolle.
  • Bei (26) kann die zweite IPU Transaktions- und Befehlsverarbeitung durchführen, wie etwa programmierbare und atomare Befehle reduzieren die Latenz durch lokales Ausführen und Entfernen der Latenz für nachfolgende Aktionen, wie etwa Trie-Walks und Datenbanksuche, ohne Daten an den Anforderer zurückgeben zu müssen. Befehlsordnung minimiert Blockieren zwischen nicht assoziierten Befehlen, Sicherstellen atomarer Ordnung und Befehlsabschluss für persistente Speicherung. Datentransformations- und Streaming-Verarbeitung ermöglicht Formattyp-Umwandlungen, Blending, Teilung, Löschcodierung usw.
  • Bei (27) kann die zweite IPU Caching durchführen, reduziert Latenz und optimiert die Verwendung von Rechen-Fabric und Ressourcen. Caching kann Lese-/Schreib-Caching, Write-Through-Caching, verteiltes Caching beinhalten.
  • Bei (28) kann die zweite IPU Komprimierung und Verschlüsselung für Daten-in-Flight, in-Use, in-Rest durchführen. QoS-Scheduling zur Reduzierung der Latenz für Anforderungen mit hoher Priorität und Durchsetzung von SLAs. Telemetrie für Transaktionsprotokollierung, Überwachung, Latenzmessungen usw.
  • Bei (29) kann die zweite IPU Unterstützung für eine Vielzahl von Speichertypen einschließlich DDDR, Optan, Persistent, NVMe durchführen. Adressenübersetzungsdienste zur Ermöglichung eines entfernten Ladens/Speicherns.
  • Verschiedene Ausführungsformen können die Ausführung eines Dienstes in einer verteilten Rechenumgebung beinhalten. Ein oder mehrere Server und/oder ein oder mehrere Client-Systeme können Anweisungen ausführen. Verschiedene Aufgaben können auf einem entfernten System, einem lokalen System und/oder einem anderen System durchgeführt werden. Anweisungen können über verschiedene Systeme zur Ausführung über mehrere Systeme hinweg gespeichert und ausgeführt werden.
  • Es wird angemerkt, dass ein Ziel unter Verwendung einer SmartNIC zugänglich sein kann. Die SmartNIC, anstelle der zweiten IPU, kann (20) durchführen.
  • Ein Ergebnis kann von der zweiten IPU oder SmartNIC an die IPU geliefert werden. Bei (10) werden Dienste, die lokal gehostet werden, durch die IPU für Pipeline-Verarbeitung, Dienstrichtlinie, Befehlsbeschleunigung, Transaktionen usw. zurückgeschleift. Dies sind die gleichen Verarbeitungsmöglichkeiten wie sie auf der entfernten Seite bereitgestellt werden.
  • 37 stellt eine beispielhafte Netzwerkschnittstelle dar, die Ausführungsformen verwenden kann oder durch Ausführungsformen verwendet werden kann. Bei manchen Ausführungsformen wird die Netzwerkschnittstelle in einer IPU, einer DPU oder als Teil einer SmartNIC verwendet. Bei manchen Beispielen kann die Netzwerkschnittstelle 3700 als eine Netzwerkschnittstellensteuerung, eine Netzwerkschnittstellenkarte, eine Host-Fabric-Schnittstelle (HFI) oder ein Host-Bus-Adapter (HBA) implementiert sein, und solche Beispiele können austauschbar sein. Die Netzwerkschnittstelle 3700 kann unter Verwendung eines Busses, PCIe, CXL oder DDR mit einem oder mehreren Servern gekoppelt sein. Die Netzwerkschnittstelle 3700 kann als Teil eines System-on-Chip (SoC) umgesetzt sein, das einen oder mehrere Prozessoren beinhaltet, oder auf einem Mehrchip-Package enthalten sein, das auch einen oder mehrere Prozessoren beinhaltet.
  • Die Netzwerkschnittstelle 3700 kann einen Sendeempfänger 3702, Prozessoren 3704, eine Sendewarteschlange 3706, eine Empfangswarteschlange 3708, einen Speicher 3710 und eine Busschnittstelle 3712 und eine DMA-Engine 3752 beinhalten. Der Sendeempfänger 3702 kann in der Lage sein, Pakete in Übereinstimmung mit den geltenden Protokollen, wie etwa Ethernet, wie in IEEE 802.3 beschrieben, zu empfangen und zu übertragen, obwohl andere Protokolle verwendet werden können. Der Sendeempfänger 3702 kann Pakete von und zu einem Netzwerk über ein Netzwerkmedium (nicht abgebildet) empfangen und übertragen. Der Sendeempfänger 3702 kann eine PHY-Schaltungsanordnung 3714 und eine Medienzugriffssteuerung(MAC)-Schaltungsanordnung 3716 beinhalten. Die PHY-Schaltungsanordnung 3714 kann eine (nicht gezeigte) Codierungs- und Decodierungsschaltungsanordnung zum Codieren und Decodieren von Datenpaketen gemäß gültigen Bitübertragungsschichtspezifikationen oder -standards beinhalten. Die MAC-Schaltungsanordnung 3716 kann dazu konfiguriert sein, MAC-Adressfilterung an empfangenen Paketen durchzuführen, MAC-Header empfangener Pakete durch Verifizieren von Datenintegrität zu verarbeiten, Präambeln und Auffüllung zu entfernen und Paketinhalt zur Verarbeitung durch höhere Schichten bereitzustellen. Die MAC-Schaltungsanordnung 3716 kann dazu konfiguriert sein, zu übertragende Daten zu Paketen zu assemblieren, die Ziel- und Quelladressen zusammen mit Netzwerksteuerinformationen und Fehlerdetektions-Hash-Werten beinhalten.
  • Die Prozessoren 3704 können eine beliebige Kombination von Folgendem sein: Prozessor, Kern, Grafikverarbeitungseinheit (GPU), feldprogrammierbares Gate-Array (FPGA), anwendungsspezifische integrierte Schaltung (ASIC) oder eine andere programmierbare Hardwarevorrichtung, die Programmieren der Netzwerkschnittstelle 3700 ermöglichen. Zum Beispiel kann eine „Smart-Netzwerkschnittstelle“ oder SmartNIC Paketverarbeitungsfähigkeiten in der Netzwerkschnittstelle unter Verwendung von Prozessoren 3704 bereitstellen. Bei manchen Beispielen können die Prozessoren 3704 als eine Prozessorkomponente für eine SmartNIC implementiert werden.
  • Ein Paketzuweiser 3724 kann eine Verteilung empfangener Pakete zur Verarbeitung durch mehrere CPUs oder Kerne unter Verwendung von hierin beschriebener Zeitschlitzzuweisung oder RSS bereitstellen. Wenn der Paketzuweiser 3724 RSS verwendet, kann der Paketzuweiser 3724 einen Hash berechnen oder eine andere Bestimmung basierend auf Inhalten eines empfangenen Pakets vornehmen, um zu bestimmen, welche CPU oder welcher Kern ein Paket verarbeiten soll.
  • Eine Interrupt-Koaleszenz 3722 kann eine Interrupt-Moderation durchführen, wobei die Netzwerkschnittstellen-Interrupt-Koaleszenz 3722 darauf wartet, dass mehrere Pakete eintreffen oder dass ein Timeout abläuft, bevor sie ein Interrupt für das Hostsystem erzeugt, um ein oder mehrere empfangene Pakete zu verarbeiten. Empfangssegmentkoaleszenz (Receive Segment Coalescing - RSC) kann von der Netzwerkschnittstelle 3700 ausgeführt werden, wodurch Teile eingehender Pakete zu Segmenten eines Pakets kombiniert werden. Die Netzwerkschnittstelle 3700 stellt dieses koaleszierte Paket zu einer Anwendung bereit.
  • Die Direktspeicherzugriff(DMA)-Engine 3752 kann einen Paket-Header, Paketnutzdaten und/oder einen Deskriptor direkt vom Host-Speicher zur Netzwerkschnittstelle kopieren oder umgekehrt, anstatt das Paket in einen Zwischenpuffer am Host zu kopieren und dann eine andere Kopieroperation vom Zwischenpuffer zum Zielpuffer zu verwenden. Bei manchen Ausführungsformen stehen mehrere DMA-Engines zur Übertragung von Inhalten von Paketen zu einem Zielspeicher, der mit einer Host-Vorrichtung assoziiert ist, oder einem Zielspeicher, der mit einer Beschleunigervorrichtung assoziiert ist, zur Verfügung.
  • Der Speicher 3710 kann eine beliebige Art von flüchtiger oder nichtflüchtiger Speichervorrichtung sein und kann eine beliebige Warteschlange oder Anweisungen speichern, die zum Programmieren der Netzwerkschnittstelle 3700 verwendet werden. Die Sendewarteschlange 3706 kann Daten oder Referenzen zu Daten zur Übertragung durch die Netzwerkschnittstelle beinhalten. Die Empfangswarteschlange 3708 kann Daten oder Referenzen zu Daten beinhalten, die von der Netzwerkschnittstelle von einem Netzwerk empfangen wurden. Die Deskriptorwarteschlangen 3720 können Deskriptoren beinhalten, die Daten oder Pakete in der Sendewarteschlange 3706 oder Empfangswarteschlange 3708 und entsprechenden Zielspeichergebieten referenzieren. Die Busschnittstelle 3712 kann eine Schnittstelle mit der Host-Vorrichtung (nicht abgebildet) bereitstellen. Zum Beispiel kann die Busschnittstelle 3712 mit der PCI-, PCI-Express-, PCI-x-, Serial-ATA- und/oder USBkompatiblen Schnittstelle kompatibel sein (obwohl andere Verbindungsstandards verwendet werden können).
  • Bei manchen Beispielen kann die Netzwerkschnittstelle 3700 ein feldprogrammierbares Gate-Array (FPGA) beinhalten, das dazu konfiguriert ist, Befehle von einer CPU oder XPU zu empfangen und Befehle durchzuführen.
  • 38 stellt ein beispielhaftes System dar. Das System kann hierin beschriebene Ausführungsformen zum Versenden von Mikrodiensten verwenden, um eine Anwendung an einer NIC, IPU, DPU oder SmartNIC durchzuführen. Das System 3800 beinhaltet einen Prozessor 3810, der eine Verarbeitung, Betriebsverwaltung und Ausführung von Anweisungen für das System 3800 bereitstellt. Der Prozessor 3810 kann eine beliebige Art von Mikroprozessor, Zentralverarbeitungseinheit (CPU), Grafikverarbeitungseinheit (GPU), Verarbeitungskern oder andere Verarbeitungshardware zum Bereitstellen von Verarbeitung für das System 3800 oder eine Kombination von Prozessoren beinhalten. Der Prozessor 3810 steuert den Gesamtbetrieb des Systems 3800 und kann ein(e) oder mehrere programmierbare Allzweck- oder Spezialmikroprozessoren, Digitalsignalprozessoren (DSPs), programmierbare Steuerungen, anwendungsspezifische integrierte Schaltungen (ASICs), programmierbare Logikvorrichtungen (PLDs) oder dergleichen oder eine Kombination solcher Vorrichtungen sein oder beinhalten.
  • Die CPU 3802 oder beliebige ihrer Kerne kann eine virtualisierte Ausführungsumgebung ausführen. Eine virtualisierte Ausführungsumgebung (VEE) kann mindestens eine virtuelle Maschine oder einen Container beinhalten. VEs können in Bare-Metal-Umgebungen (z. B. Einzelmandant) oder gehosteten Umgebungen (z. B. mehrere Mandanten) ausgeführt werden. Eine virtuelle Maschine (VM) kann Software sein, die ein Betriebssystem und eine oder mehrere Anwendungen ausführt. Eine VM kann durch Spezifikation, Konfigurationsdateien, virtuelle Plattendatei, NVRAM-Einstelldatei (NVRAM: Volatile Random Access Memory - flüchtiger Direktzugriffsspeicher) und die Protokolldatei definiert werden und wird durch die physischen Ressourcen einer Host-Rechenplattform gesichert. Eine VM kann ein OS oder eine Anwendungsumgebung sein, die auf Software installiert ist, die dedizierte Hardware imitiert. Der Endbenutzer hat auf einer virtuellen Maschine die gleiche Erfahrung, wie er auf dedizierter Hardware hätte. Spezialisierte Software, ein Hypervisor genannt, emuliert die CPU, den Speicher, die Festplatte, das Netzwerk und andere Hardwareressourcen des PC-Clients oder -Servers vollständig, wodurch ermöglicht wird, dass virtuelle Maschinen die Ressourcen gemeinsam nutzen. Der Hypervisor kann mehrere virtuelle Hardwareplattformen emulieren, die voneinander isoliert sind, was es virtuellen Maschinen ermöglicht, Linux ®-, FreeBSD-, VMWare- oder Windows ® Server-Betriebssysteme auf demselben zugrundeliegenden physischen Host auszuführen.
  • Ein Container kann ein Softwarepaket von Anwendungen, Konfigurationen und Abhängigkeiten sein, sodass die Anwendungen zuverlässig auf einer Rechenumgebung zu einer anderen laufen. Container können sich ein auf der Serverplattform installiertes Betriebssystem teilen und als isolierte Prozesse ablaufen. Ein Container kann ein Softwarepaket sein, das alles enthält, das die Software ausführen muss, wie etwa Systemwerkzeuge, Bibliotheken und Einstellungen. Container werden nicht wie herkömmliche Softwareprogramme installiert, wodurch sie von der anderen Software und dem Betriebssystem selbst isoliert werden können. Die Isolation kann einen erlaubten Zugriff auf ein Gebiet eines adressierbaren Speichers oder einer adressierbaren Speicherung durch einen bestimmten Container, aber keinen anderen Container, beinhalten. Die isolierte Natur von Containern bietet mehrere Vorteile. Zuerst wird die Software in einem Container in unterschiedlichen Umgebungen gleich ausgeführt. Zum Beispiel kann ein Container, der PHP und MySQL beinhaltet, sowohl auf einem Linux-Computer als auch auf einer Windows®-Maschine identisch laufen. Zweitens stellen Container zusätzliche Sicherheit bereit, da die Software das Host-Betriebssystem nicht beeinflusst. Obwohl eine installierte Anwendung Systemeinstellungen ändern und Ressourcen modifizieren kann, wie etwa das Windows ®-Register, kann ein Container nur Einstellungen innerhalb des Containers modifizieren.
  • Einige Beispiele für eine VEE können CRI-O und Kata-Container beinhalten.
  • Anwendungen können zum Beispiel Dienst, Mikrodienst, nativer Cloud-Mikrodienst, Arbeitslast oder Software beinhalten. Eine beliebige der Anwendungen kann eine Paketverarbeitung basierend auf DPDK (Data Plane Development Kit) und/oder SPDK (Storage Performance Development Kit) und/oder OpenDataPlane und/oder NFV (Network Function Virtualisierung) und/oder SDN (Software-defined Networking) und/oder EPC (Evolved Packet Core) und/oder 5G-Netzwerk-Slicing durchführen. Einige beispielhafte Implementierungen von NFV sind in ETSI-Spezifikationen (ETSI: European Telecommunications Standards Institute) oder Open-Source-NFV-MANO (MANO: Management and Orchestration) der Open-Source-Mano(OSM)-Gruppe von ETSI beschrieben. Eine virtuelle Netzwerkfunktion (VNF) kann eine Dienstkette oder Sequenz virtualisierter Aufgaben beinhalten, die auf generischer konfigurierbarer Hardware ausgeführt werden, wie Firewalls, Domänennamensystem (DNS), Caching oder Netzwerkadressenübersetzung (NAT), und kann in VEEs ausgeführt werden. VNFs können als eine Dienstkette miteinander verknüpft sein. Bei einigen Beispielen ist das EPC eine 3GPP-spezifizierte Kernarchitektur zumindest für Long-Term-Evolution(LTE)-Zugriff. 5G-Netzwerk-Slicing kann ein Multiplexen virtualisierter und unabhängiger logischer Netzwerke auf derselben physischen Netzwerkinfrastruktur bereitstellen. Einige Anwendungen können Videoverarbeitung oder Medientranscodierung ausführen (z. B. Ändern des Codierens von Audio-, Bild- oder Videodateien).
  • In einem Beispiel beinhaltet das System 3800 eine Schnittstelle 3812, die mit dem Prozessor 3810 gekoppelt ist, die eine Schnittstelle mit höherer Geschwindigkeit oder eine Schnittstelle mit hohem Durchsatz für Systemkomponenten repräsentieren kann, die Verbindungen mit höherer Bandbreite benötigen, wie etwa das Speichersubsystem 3820, die Grafikschnittstellenkomponenten 3840 oder die Beschleuniger 3842. Die Schnittstelle 3812 repräsentiert eine Schnittstellenschaltung, die eine eigenständige Komponente sein kann oder auf einem Prozessor-Die integriert sein kann. Wo vorhanden, ist die Grafikschnittstelle 3840 mit Grafikkomponenten verknüpft, um einem Benutzer des Systems 3800 eine visuelle Anzeige bereitzustellen. In einem Beispiel kann die Grafikschnittstelle 3840 eine HD(High Definition)-Anzeige ansteuern, die einem Benutzer eine Ausgabe liefert. High-Definition kann sich auf eine Anzeige mit einer Pixeldichte von ungefähr 100 PPI (Pixel pro Zoll) oder mehr beziehen und kann Formate wie etwa Full-HD (z. B. 1080p), Retina-Displays, 4K (Ultra-High-Definition oder UHD) oder andere beinhalten. In einem Beispiel kann die Anzeige eine Touchscreen-Anzeige enthalten. In einem Beispiel erzeugt die Grafikschnittstelle 3840 eine Anzeige basierend auf Daten, die in dem Speicher 3830 gespeichert sind, oder basierend auf Operationen, die durch den Prozessor 3810 ausgeführt werden, oder beides. In einem Beispiel erzeugt die Grafikschnittstelle 3840 eine Anzeige basierend auf Daten, die in dem Speicher 3830 gespeichert sind, oder basierend auf Operationen, die durch den Prozessor 3810 ausgeführt werden, oder beides.
  • Die Beschleuniger 3842 können eine programmierbare oder Festfunktions-Offload-Engine sein, auf die ein Prozessor 3810 zugreifen kann oder die durch diesen verwendet werden kann. Ein Beschleuniger unter den Beschleunigern 3842 kann zum Beispiel Komprimierungsfähigkeit (DC-Fähigkeit), Kryptographiedienste, wie etwa Public-Key-Verschlüsselung (PKE), Chiffrierung, Hash-/Authentifizierungsfähigkeiten, Entschlüsselung oder andere Fähigkeiten oder Dienste bereitstellen. Bei einigen Ausführungsformen stellt zusätzlich oder alternativ ein Beschleuniger unter den Beschleunigern 3842 Feldauswahlsteuerungsfähigkeiten, wie hierin beschrieben, bereit. In einigen Fällen können Beschleuniger 3842 in einen CPU-Socket (zum Beispiel einen Verbinder zu einer Hauptplatine oder Leiterplatte, die eine CPU beinhaltet und eine elektrische Schnittstelle mit der CPU bereitstellt) integriert sein. Die Beschleuniger 3842 können zum Beispiel einen Einzel- oder Mehrkernprozessor, eine Grafikverarbeitungseinheit, einen Einzel- oder Mehrebenen-Cache einer logischen Ausführungseinheit, Funktionseinheiten, die zum unabhängigen Ausführen von Programmen oder Threads verwendet werden können, anwendungsspezifische integrierte Schaltungen (ASICs), Neuronalnetzwerkprozessoren (NNPs), programmierbare Steuerlogik und programmierbare Verarbeitungselemente, wie etwa feldprogrammierbare Gate-Arrays (FPGAs) beinhalten. Die Beschleuniger 3842 können mehrere neuronale Netzwerke, Prozessorkerne oder Grafikverarbeitungseinheiten bereitstellen, die zur Verwendung durch Künstliche-Intelligenz(KI)- oder Maschinenlernmodelle (ML-Modelle) bereitgestellt werden können. Das KI-Modell kann zum Beispiel eines oder eine Kombination von Folgendem verwenden oder beinhalten: ein bestärkendes Lernschema, Q-Lernschema, Deep-Q-Learning oder Asynchronous Advantage Actor-Critic (A3C), kombinatorisches neuronales Netzwerk, rekurrentes kombinatorisches neuronales Netzwerk oder ein anderes KI- oder ML-Modell. Mehrere neuronale Netzwerke, Prozessorkerne oder Grafikverarbeitungseinheiten können zur Verwendung durch KI- oder ML-Modelle bereitgestellt werden.
  • Das Speichersubsystem 3820 repräsentiert den Hauptspeicher des Systems 3800 und stellt eine Speicherung für Code bereit, der durch den Prozessor 3810 ausgeführt werden soll, oder Datenwerte, die beim Ausführen einer Routine verwendet werden sollen. Das Speichersubsystem 3820 kann eine oder mehrere Speichervorrichtungen 3830, wie etwa Nurlesespeicher (ROM), Flash-Speicher, eine oder mehrere Vielfalten von Direktzugriffsspeicher (RAM), wie etwa DRAM, oder andere Speichervorrichtungen oder eine Kombination solcher Vorrichtungen beinhalten. Der Speicher 3830 speichert und hostet unter anderem das Betriebssystem (OS) 3832, um eine Softwareplattform zur Ausführung von Anweisungen in dem System 3800 bereitzustellen. Zusätzlich dazu können die Anwendungen 3834 auf der Softwareplattform des OS 3832 aus dem Speicher 3830 ausgeführt werden. Die Anwendungen 3834 repräsentieren Programme, die ihre eigene Betriebslogik zum Durchführen der Ausführung einer oder mehrerer Funktionen aufweisen. Die Prozesse 3836 repräsentieren Agenten oder Routinen, die dem OS 3832 oder einer oder mehreren Anwendungen 3834 oder einer Kombination Hilfsfunktionen bereitstellen. Das OS 3832, die Anwendungen 3834 und die Prozesse 3836 stellen Softwarelogik bereit, um Funktionen für das System 3800 bereitzustellen. In einem Beispiel enthält das Speicheruntersystem 3820 eine Speichersteuerung 3822, die eine Speichersteuerung zum Erzeugen und Ausgeben von Befehlen an den Speicher 3830 ist. Es versteht sich, dass die Speichersteuerung 3822 ein physischer Teil des Prozessors 3810 oder ein physischer Teil der Schnittstelle 3812 sein könnte. Beispielsweise kann die Speichersteuerung 3822 eine integrierte Speichersteuerung sein, die in eine Schaltung mit dem Prozessor 3810 integriert ist.
  • Bei manchen Beispielen kann das OS 3832 eine Fähigkeit einer Vorrichtung bestimmen, die mit einem Vorrichtungstreiber assoziiert ist. Zum Beispiel kann das OS 3832 eine Indikation einer Fähigkeit einer Vorrichtung (z. B. IPU) empfangen, eine beliebige hierin beschriebene Ausführungsform durchzuführen. Das OS 3832 kann einen Treiber auffordern, die NIC 3850 oder eine IPU zu aktivieren oder zu deaktivieren, um beliebige der hierin beschriebenen Fähigkeiten durchzuführen. Bei manchen Beispielen kann das OS 3832 selbst die NIC 3850 oder eine IPU aktivieren oder deaktivieren, um beliebige der hierin beschriebenen Fähigkeiten durchzuführen. Das OS 3832 kann Anforderungen (z. B. von einer Anwendung oder VM) an die NIC 3850 oder eine IPU bereitstellen, eine oder mehrere Fähigkeiten der NIC 3850 oder einer IPU zu nutzen. Zum Beispiel kann eine beliebige Anwendung die Verwendung oder Nichtverwendung beliebiger der hierin beschriebenen Fähigkeiten durch die NIC 3850 anfordern.
  • Obwohl nicht speziell veranschaulicht, versteht es sich, dass das System 3800 ein(en) oder mehrere Busse oder Bussysteme zwischen Vorrichtungen beinhalten kann, wie etwa einen Speicherbus, einen Grafikbus, Schnittstellenbusse oder andere. Busse oder andere Signalleitungen können Komponenten kommunikativ oder elektrisch miteinander koppeln oder die Komponenten sowohl kommunikativ als auch elektrisch koppeln. Busse können physische Kommunikationsleitungen, Punkt-zu-Punkt-Verbindungen, Brücken, Adapter, Steuerungen oder eine andere Schaltungsanordnung oder eine Kombination beinhalten. Busse können zum Beispiel einen Systembus und/oder einen PCI-Bus (PCI: Peripheral Component Interconnect) und/oder einen HyperTransport- oder ISA-Bus (ISA: Industriestandard Architecture) und/oder einen SCSI-Bus (SCSI: Small Computer System Interface) und/oder einen USB (USB: Universal Serial Bus) und/oder einen IEEE-Standard-1394-Bus (IEEE: Institute of Electrical and Electronics Engineers) beinhalten.
  • In einem Beispiel beinhaltet das System 3800 eine Schnittstelle 3814, die mit der Schnittstelle 3812 gekoppelt sein kann. Bei einem Beispiel repräsentiert die Schnittstelle 3814 eine Schnittstellenschaltung, die eigenständige Komponenten und integrierte Schaltungsanordnungen beinhalten kann. In einem Beispiel sind mehrere Benutzerschnittstellenkomponenten oder Peripheriekomponenten oder beide mit der Schnittstelle 3814 gekoppelt. Die Netzwerkschnittstelle 3850 bietet dem System 3800 die Möglichkeit, mit entfernten Vorrichtungen (z. B. Servern oder anderen Rechenvorrichtungen) über ein oder mehrere Netzwerke zu kommunizieren. Die Netzwerkschnittstelle 3850 kann einen Ethernet-Adapter, drahtlose Verbindungskomponenten, Zellularnetzwerkverbindungskomponenten, USB (Universal Serial Bus) oder andere auf drahtgebundenen oder drahtlosen Standards basierende oder proprietäre Schnittstellen beinhalten. Die Netzwerkschnittstelle 3850 kann Daten an eine entfernte Vorrichtung übertragen, was das Senden von im Speicher gespeicherten Daten beinhalten kann. Die Netzwerkschnittstelle 3850 kann Daten von einer entfernten Vorrichtung empfangen, was das Speichern empfangener Daten in einem Speicher beinhalten kann. Verschiedene Ausführungsformen können in Verbindung mit der Netzwerkschnittstelle 3850, dem Prozessor 3810 und dem Speichersubsystem 3820 verwendet werden.
  • In einem Beispiel beinhaltet das System 3800 eine oder mehrere Eingabe/Ausgabe(E/A)-Schnittstellen 3860. Die E/A-Schnittstelle 3860 kann eine oder mehrere Schnittstellenkomponenten beinhalten, durch die ein Benutzer mit dem System 3800 interagiert (z. B. Audio, alphanumerisch, taktil/berührend oder andere Schnittstellen). Die Peripherieschnittstelle 3870 kann eine beliebige Hardwareschnittstelle enthalten, die oben nicht speziell erwähnt wurde. Peripheriegeräte beziehen sich im Allgemeinen auf Vorrichtungen, die eine abhängige Verbindung zum System 3800 herstellen. Eine abhängige Verbindung ist eine Verbindung, bei der das System 3800 die Softwareplattform oder Hardwareplattform oder beide bereitstellt, auf der die Operation ausgeführt wird und mit der ein Benutzer interagiert.
  • Bei einem Beispiel beinhaltet das System 3800 ein Speicherungssubsystem 3880 zum Speichern von Daten auf eine nichtflüchtige Weise. Bei einem Beispiel können bei gewissen Systemimplementierungen zumindest gewisse Komponenten der Speicherung 3880 mit Komponenten des Speichersubsystem 3820 überlappen. Das Speicherungssubsystem 3880 beinhaltet eine oder mehrere Speicherungsvorrichtungen 3884, die ein beliebiges herkömmliches Medium zum Speichern großer Datenmengen auf beständige Weise sein können oder beinhalten können, wie etwa eine oder mehrere magnetische, Solid-State- oder optische Platten oder eine Kombination. Die Speicherung 3884 hält Code oder Anweisungen und Daten 3886 in einem persistenten Zustand (zum Beispiel wird der Wert trotz Unterbrechung der Stromversorgung des Systems 3800 beibehalten). Die Speicherung 3884 kann allgemein als ein „Speicher“ angesehen werden, obwohl der Speicher 3830 typischerweise der Ausführungs- oder Betriebsspeicher ist, um dem Prozessor 3810 Anweisungen bereitzustellen. Wohingegen die Speicherung 3884 nichtflüchtig ist, kann der Speicher 3830 flüchtigen Speicher beinhalten (zum Beispiel ist der Wert oder Zustand der Daten unbestimmt, falls die Stromversorgung zu dem System 3800 unterbrochen wird). Bei einem Beispiel beinhaltet das Speicherungssubsystem 3880 eine Steuerung 3882 zum Bilden einer Schnittstelle mit der Speicherung 3884. Bei einem Beispiel ist die Steuerung 3882 ein physisches Teil der Schnittstelle 3814 oder des Prozessors 3810 oder kann Schaltungen oder Logik sowohl im Prozessor 3810 als auch in der Schnittstelle 3814 beinhalten.
  • Ein flüchtiger Speicher ist ein Speicher, dessen Zustand (und damit die in ihm gespeicherten Daten) unbestimmt ist, wenn die Stromversorgung der Vorrichtung unterbrochen wird. Dynamischer flüchtiger Speicher erfordert ein Auffrischen der in der Vorrichtung gespeicherten Daten, um einen Zustand beizubehalten. Ein Beispiel für dynamischen flüchtigen Speicher beinhaltet DRAM (Dynamic Random Access Memory) oder irgendeine Variante, wie etwa synchronen DRAM (SDRAM). Ein anderes Beispiel für flüchtigen Speicher beinhaltet Cache oder statischen Direktzugriffsspeicher (SRAM). Ein Speichersubsystem, wie hierin beschrieben, kann mit einer Anzahl von Speichertechnologien kompatibel sein, wie etwa mit DDR3 (Double Data Rate Version 3, Originalversion von JEDEC (Joint Electronic Device Engineering Council) am 27. Juni 2007). DDR4 (DDR Version 4, anfängliche Spezifikation veröffentlicht im September 2012 von JEDEC), DDR4E (DDR Version 4), LPDDR3 (Low Power DDR Version 3, JESD209-3B, August 2013 von JEDEC), LPDDR4) LPDDR Version 4, JESD209-4, ursprünglich veröffentlicht von JEDEC im August 2014), WI02 (Wide Input/Output Version 2, JESD229-2, ursprünglich veröffentlicht von JEDEC im August 2014, HBM (High Bandwidth Memory, JESD325, ursprünglich veröffentlicht von JEDEC im Oktober 2013, LPDDR5 (gegenwärtig diskutiert von JEDEC), HBM2 (HBM Version 2), gegenwärtig diskutiert von JEDEC, oder andere oder Kombinationen von Speichertechnologien und Technologien basierend auf Ableitungen oder Erweiterungen derartiger Spezifikationen. Die JEDEC-Standards sind bei www.jedec.org verfügbar.
  • Eine Nichtflüchtiger-Speicher(NVM)-Vorrichtung ist ein Speicher, dessen Zustand bestimmt ist, selbst wenn die Stromversorgung zu der Vorrichtung unterbrochen wird. Bei einer Ausführungsform kann die NVM-Vorrichtung eine blockadressierbare Speichervorrichtung wie etwa NAND-Technologien oder insbesondere einen NAND-Flash-Speicher mit mehreren Schwellenpegeln (z. B. eine Zelle mit einem Niveau („SLC“), eine Zelle mit mehreren Niveaus („MLC“), eine Zelle mit vier Niveaus („QLC“), eine Zelle mit drei Niveaus („TLC“) oder eine andere NAND) umfassen. Eine NVM-Vorrichtung kann auch eine byteadressierbare dreidimensionale Kreuzungspunktspeichervorrichtung oder eine andere byteadressierbare NVM-Vorrichtung (auch als persistenter Speicher bezeichnet) umfassen, wie etwa ein- oder mehrstufige Phasenwechselspeicher (PCM) oder Phasenwechselspeicher mit Switch (PCMS), Intel® Optane™-Speicher, NVM-Vorrichtungen, die Chalkogenid-Phasenwechselmaterial verwenden (zum Beispiel Chalkogenidglas), resistiven Speicher einschließlich Metalloxid-Basis, Sauerstoffleerstellen-Basis und Conductive Bridge Random Access Memory-RAM (CB-RAM), Nanodrahtspeicher, ferroelektrischen Direktzugriffsspeicher (FeRAM, FRAM), magnetoresistiven Direktzugriffsspeicher (MRAM), der Memristortechnologie beinhaltet, Spintransferdrehmoment(STT)-MRAM, eine Spintronic-Magnetic-Junction-Memory-basierte Vorrichtung, eine Magnetic Tunneling Junction-basierte Vorrichtung (MTJ-basierte Vorrichtung), eine DW- (Domain Wall) und SOT(Spin Orbit Transfer)-basierte Vorrichtung, eine Thyristor-basierte Speichervorrichtung oder eine Kombination beliebiger der obigen oder anderer Speicher.
  • Eine (nicht dargestellte) Leistungsquelle stellt Leistung an die Komponenten des Systems 2000 bereit. Genauer gesagt, verbindet sich die Leistungsquelle typischerweise mit einer oder mehreren Leistungsversorgungen in dem System 2000, um den Komponenten des Systems 2000 Leistung bereitzustellen. Bei einem Beispiel beinhaltet die Leistungsversorgung einen AC/DC(Wechselstrom zu Gleichstrom)-Adapter zum Einstecken in eine Wandsteckdose. Eine solche AC-Leistungsquelle kann eine erneuerbare Energiequelle (z. B. Solarstrom) sein. In einem Beispiel beinhaltet die Leistungsquelle eine DC-Leistungsquelle, wie etwa einen externen AC/DC-Wandler. In einem Beispiel beinhaltet eine Leistungsquelle oder Leistungsversorgung Drahtlosladehardware zum Laden über die Nähe zu einem Ladefeld. In einem Beispiel kann die Leistungsquelle eine interne Batterie, eine Wechselstromversorgung, eine bewegungsbasierte Leistungsversorgung, eine Solarstromversorgung oder eine Brennstoffzellenquelle beinhalten.
  • In einem Beispiel kann das System 3800 unter Verwendung miteinander verbundener Rechen-Sleds von Prozessoren, Speichern, Speicherungen, Netzwerkschnittstellen und anderen Komponenten implementiert werden. Hochgeschwindigkeitsverbindungen können verwendet werden, wie beispielsweise: Ethernet (IEEE 802.3), RDMA (Remote Direct Memory Access - Fern-Direktzugriffsspeicher), InfiniBand, iWARP (Internet Wide Area RDMA Protocol), TCP (Transmission Control Protocol), UDP (User Datagram Protocol), QUIC (Quick UDP Internet Connections), RoCE (RDMA over Converged Ethernet), PCIe (Peripheral Component Interconnect Express), Intel® QPI (QuickPath Interconnect), Intel® UPI (Ultra Path Interconnect), IOSF (Intel® On-Chip System Fabric), Omnipath, CXL (Compute Express Link), HyperTransport, IF (Infinity Fabric), NVLink, AMBA(Advanced Microcontroller Bus Architecture)-Interconnect, OpenCAPI, Gen-Z, CCIX (Cache Coherent Interconnect for Accelerators), 3GPP-LTE (Long Term Evolution) (4G), 3GPP-5G, DisplayPort, eingebettetes DisplayPort, MIPI, HDMI, IF (Infinity Fabric) und Nachfolger oder Variationen davon.
  • Ausführungsformen hierin können in verschiedenen Arten von Rechen- und Networking-Geräten implementiert werden, wie etwa Switches, Router, Racks und Blade-Server, wie etwa jenen, die in einem Datenzentrum und/oder einer Serverfarmumgebung eingesetzt werden. Die in Datenzentren und Serverfarmen verwendeten Server umfassen gereihte Serverkonfigurationen, wie rackbasierte Server oder Blade-Server. Diese Server stehen über verschiedene Netzwerkbereitstellungen miteinander in Kommunikation, wie etwa Partitionssätze von Servern in Local Area Networks (LANs) mit geeigneten Schalt- und Routingeinrichtungen zwischen den LANs, um ein privates Intranet zu bilden. Cloud-Hosting-Einrichtungen können zum Beispiel typischerweise große Datenzentren mit einer Vielzahl von Servern einsetzen. Ein Blade umfasst eine separate Rechenplattform, die dazu konfiguriert ist, Servertyp-Funktionen durchzuführen, das heißt einen „Server-on-a-Card“. Dementsprechend beinhaltet jedes Blade Komponenten, die bei herkömmlichen Servern üblich sind, einschließlich einer gedruckten Hauptleiterplatte (Hauptplatine), die interne Verdrahtungen (zum Beispiel Busse) zum Koppeln geeigneter integrierter Schaltungen (ICs) bereitstellt, und anderer Bauelemente, die auf der Platine befestigt sind.
  • Bei manchen Beispielen können die Netzwerkschnittstelle und andere hierin beschriebene Ausführungsformen in Verbindung mit einer Basisstation (z. B. 3G, 4G, 5G und so weiter), einer Makrobasisstation (z. B. 5G-Netze), einer Pikostation (z. B. einem IEEE 802.11-kompatiblen Zugangspunkt), einer Nanostation (z. B. für Punkt-zu-MultiPunkt(PtMP)-Anwendungen), Vor-Ort-Datenzentren, externe Datenzentren, Edge-Netzwerkelemente, Fog-Netzwerkelemente und/oder hybride Datenzentren (z. B. Datenzentren, die Virtualisierungs-, Cloud- und Software-definiertes Networking verwenden, um Anwendungsarbeitslasten über physische Datenzentren und verteilte Multi-Cloud-Umgebungen zu liefern) verwendet werden.
  • Verschiedene Beispiele können unter Verwendung von Hardwareelementen, Softwareelementen oder einer Kombination von beiden implementiert werden. Bei manchen Beispielen können Hardwareelemente Vorrichtungen, Komponenten, Prozessoren, Mikroprozessoren, Schaltungen, Schaltungselemente (z. B. Transistoren, Widerstände, Kondensatoren, Induktivitäten und so weiter), integrierte Schaltungen, ASICs, PLDs, DSPs, FPGAs, Speichereinheiten, Logikgatter, Register, Halbleitervorrichtung, Chips, Mikrochips, Chipsätze und so weiter beinhalten. Bei manchen Beispielen können Softwareelemente Softwarekomponenten, Programme, Anwendungen, Computerprogramme, Anwendungsprogramme, Systemprogramme, Maschinenprogramme, Betriebssystemsoftware, Middleware, Firmware, Softwaremodule, Routinen, Subroutinen, Funktionen, Verfahren, Prozeduren, Softwareschnittstellen, APIs, Befehlssätze, Rechencode, Computercode, Codesegmente, Computercodesegmente, Worte, Werte, Symbole oder eine beliebige Kombination davon beinhalten. Das Bestimmen, ob ein Beispiel unter Verwendung von Hardwareelementen und/oder Softwareelementen implementiert wird, kann gemäß einer beliebigen Anzahl von Faktoren variieren, wie etwa einer gewünschten Rechenrate, Leistungspegeln, Wärmetoleranzen, Verarbeitungszyklusbudget, Eingangsdatenraten, Ausgangsdatenraten, Speicherressourcen, Datenbusgeschwindigkeiten und anderen Design- oder Performanzbeschränkungen, wie für eine gegebene Implementierung gewünscht. Es wird angemerkt, dass Hardware-, Firmware- und/oder Softwareelemente hierin kollektiv oder einzeln als „Modul“ oder „Logik“ bezeichnet werden können. Ein Prozessor kann eine oder mehrere Kombinationen aus einer Hardwarezustandsmaschine, digitaler Steuerlogik, Zentralverarbeitungseinheit oder beliebigen Hardware-, Firmware- und/oder Softwareelementen sein.
  • Manche Beispiele können unter Verwendung von einem oder als ein Herstellungsartikel oder mindestens ein computerlesbares Medium implementiert werden. Ein computerlesbares Medium kann ein nichttransitorisches Speicherungsmedium zum Speichern von Logik beinhalten. Bei einigen Beispielen kann das nichttransitorische Speicherungsmedium einen oder mehrere Typen computerlesbarer Speicherungsmedien beinhalten, die elektronische Daten speichern können, einschließlich flüchtigen Speichers oder nichtflüchtigen Speichers, entfernbaren oder nicht entfernbaren Speichers, löschbaren oder nicht löschbaren Speichers, beschreibbaren oder wiederbeschreibbaren Speichers und so weiter. Bei einigen Beispielen kann die Logik verschiedene Softwareelemente, wie etwa Softwarekomponenten, Programme, Anwendungen, Computerprogramme, Anwendungsprogramme, Systemprogramme, Maschinenprogramme, Betriebssystemsoftware, Middleware, Firmware, Softwaremodule, Routinen, Subroutinen, Funktionen, Verfahren, Prozeduren, Softwareschnittstellen, API, Anweisungssätze, Rechencode, Computercode, Codesegmente, Computercodesegmente, Wörter, Werte, Symbole oder eine beliebige Kombination davon beinhalten.
  • Gemäß manchen Beispielen kann ein computerlesbares Medium ein nichttransitorisches Speicherungsmedium zum Speichern oder Halten von Anweisungen beinhalten, die beim Ausführen durch eine Maschine, eine Rechenvorrichtung oder ein System bewirken, dass die Maschine, die Rechenvorrichtung oder das System Verfahren und/oder Operationen gemäß den beschriebenen Beispielen durchführt. Die Anweisungen können einen beliebigen geeigneten Typ von Code beinhalten, wie etwa Quellcode, kompilierten Code, interpretierten Code, ausführbaren Code, statischen Code, dynamischen Code und dergleichen. Die Anweisungen können entsprechend einer vorbestimmten Computersprache, Art oder Syntax implementiert werden, um eine Maschine, eine Rechenvorrichtung oder ein System zum Durchführen einer gewissen Funktion anzuweisen. Die Anweisungen können unter Verwenden einer beliebigen geeigneten höheren, niedrigeren, objektorientierten, visuellen, kompilierten und/oder interpretierten Programmiersprache implementiert werden.
  • Ein oder mehrere Aspekte mindestens eines Beispiels können durch repräsentative Anweisungen implementiert werden, die auf mindestens einem maschinenlesbaren Medium gespeichert sind, das verschiedene Logik innerhalb des Prozessors repräsentiert, die, wenn sie durch eine Maschine, eine Rechenvorrichtung oder ein System gelesen werden, die Maschine, die Rechenvorrichtung oder das System veranlassen, Logik herzustellen, um die hierin beschriebenen Techniken durchzuführen. Solche Repräsentationen, die als „IP-Kerne“ bekannt sind, können auf einem greifbaren, maschinenlesbaren Medium gespeichert werden und verschiedenen Kunden oder Herstellungsanlagen zugeführt werden, um in die Herstellungsmaschinen zu laden, die tatsächlich die Logik oder den Prozessor herstellen.
  • Das Auftreten an mehreren Stellen der Phrase „ein Beispiel“ beziehen sich nicht notwendigerweise alle auf dasselbe Beispiel oder dieselbe Ausführungsform. Jeder hierin beschriebene Aspekt kann mit jedem anderen hierin beschriebenen Aspekt oder ähnlichen Aspekt kombiniert werden, unabhängig davon, ob die Aspekte in Bezug auf dieselbe Figur oder dasselbe Element beschrieben sind. Eine Unterteilung, Auslassung oder Einschließung von in den begleitenden Figuren gezeigten Blockfunktionen bedeutet nicht, dass die Hardwarekomponenten, Schaltungen, Software und/oder Elemente zum Implementieren dieser Funktionen notwendigerweise in Ausführungsformen unterteilt, ausgelassen oder eingeschlossen sein müssen.
  • Manche Beispiele können unter Verwendung des Ausdrucks „gekoppelt“ und „verbunden“ zusammen mit ihren Ableitungen beschrieben werden. Diese Ausdrücke sind nicht notwendigerweise als synonym zueinander zu betrachten. Beschreibungen, die die Ausdrücke „verbunden“ und/oder „gekoppelt“ verwenden, können z. B. angeben, dass sich zwei oder mehr Elemente in direktem physischen oder elektrischen Kontakt miteinander befinden. Der Ausdruck „gekoppelt“ kann jedoch auch bedeuten, dass zwei oder mehrere Elemente nicht in direktem Kontakt miteinander stehen, jedoch immer noch miteinander zusammenwirken oder interagieren.
  • Die Ausdrücke „erster“, „zweiter“ und dergleichen bezeichnen hierin keine Reihenfolge, Menge oder Wichtigkeit, sondern werden vielmehr verwendet, um ein Element von einem anderen zu unterscheiden. Die Ausdrücke „ein“ und „eine“ bezeichnen hierin keine Mengenbeschränkung, sondern das Vorhandensein mindestens eines der genannten Elemente. Der Ausdruck „aktivgesetzt“, der hierin in Bezug auf ein Signal verwendet wird, bezeichnet einen Zustand des Signals, in dem das Signal aktiv ist und der erreicht werden kann, indem ein beliebiger Logikpegel entweder logisch 0 oder logisch 1 an das Signal angelegt wird. Die Ausdrücke „folgend“ oder „nach“ können sich auf unmittelbar folgend oder nach einem anderen Ereignis oder Ereignissen folgend beziehen. Andere Sequenzen von Schritten können auch gemäß alternativen Ausführungsformen durchgeführt werden. Darüber hinaus können abhängig von den jeweiligen Anwendungen zusätzliche Schritte hinzugefügt oder entfernt werden. Jede Kombination von Änderungen kann verwendet werden, und ein Durchschnittsfachmann mit dem Vorteil dieser Offenbarung würde die vielen Variationen, Modifikationen und alternativen Ausführungsformen davon verstehen.
  • Disjunktive Sprache, wie etwa die Phrase „mindestens eines von X, Y oder Z“, wird, sofern nicht speziell anders angegeben, in dem Kontext verstanden, wie er allgemein verwendet wird, um darzustellen, dass ein Element, ein Ausdruck usw. entweder X, Y oder Z oder eine beliebige Kombination davon (z. B. X, Y und/oder Z) sein kann. Somit soll und sollte eine solche disjunktive Sprache im Allgemeinen nicht bedeuten, dass gewisse Ausführungsformen erfordern, dass jeweils mindestens eines von X, mindestens eines von Y oder mindestens eines von Z vorhanden ist. Zusätzlich sollte konjunktive Sprache wie etwa die Phrase „mindestens eines von X, Y und Z“, sofern nicht ausdrücklich anders angegeben, auch als X, Y, Z oder eine beliebige Kombination davon verstanden werden, einschließlich „X, Y und/oder Z“.
  • Veranschaulichende Beispiele der hierin offenbarten Vorrichtungen, Systeme und Verfahren sind nachstehend bereitgestellt. Eine Ausführungsform der Vorrichtungen, Systeme und Verfahren kann eines oder mehrere beliebige und eine beliebige Kombination der unten beschriebenen Beispiele beinhalten.
  • Flussdiagramme, wie hierin veranschaulicht, stellen Beispiele für Sequenzen verschiedener Prozesshandlungen bereit. Die Flussdiagramme können Operationen, die durch eine Software- oder Firmware-Routine auszuführen sind, sowie physische Operationen angeben. Bei einigen Ausführungsformen kann ein Flussdiagramm den Zustand eines endlichen Zustandsautomaten (Finite State Machine - FSM) veranschaulichen, der in Hardware und/oder Software implementiert sein kann. Obgleich sie in einer bestimmten Sequenz oder Reihenfolge gezeigt sind, kann die Reihenfolge der Handlungen modifiziert werden, sofern nichts anderes angegeben ist. Dementsprechend sollten die veranschaulichten Ausführungsformen nur als ein Beispiel verstanden werden und kann der Prozess in einer anderen Reihenfolge durchgeführt werden und manche Handlungen können parallel durchgeführt werden. Außerdem können eine oder mehrere Handlungen bei verschiedenen Ausführungsformen ausgelassen werden; es sind also nicht alle Handlungen in jeder Ausführungsform notwendig. Andere Prozessflüsse sind möglich.
  • Verschiedene hierin beschriebene Komponenten können ein Mittel zum Durchführen der beschriebenen Operationen oder Funktionen sein. Jede hierin beschriebene Komponente beinhaltet Software, Hardware oder eine Kombination von diesen. Die Komponenten können als Softwaremodule, Hardwaremodule, Spezialhardware (z. B. anwendungsspezifische Hardware, anwendungsspezifische integrierte Schaltungen (ASICs), Digitalsignalprozessoren (DSPs) usw.), eingebettete Steuerungen, festverdrahtete Schaltungsanordnung und so weiter implementiert werden.
  • Beispiel 1 beinhaltet ein System, das Folgendes umfasst: eine Infrastrukturverarbeitungseinheit (IPU), die Folgendes umfasst: eine Schnittstellenschaltungsanordnung zum Bereitstellen einer kommunikativen Kopplung mit einer Plattform; eine Netzwerkschnittstellenschaltungsanordnung zum Bereitstellen einer kommunikativen Kopplung mit einem Netzwerkmedium; und eine Schaltungsanordnung zum Offenlegen von Infrastrukturdiensten, auf die durch Mikrodienste zugegriffen werden soll, zur Funktionskomposition.
  • Beispiel 2 beinhaltet ein beliebiges Beispiel, wobei die Infrastrukturdienste Fähigkeiten eines Routers, Lastausgleichers, Firewall, TCP, zuverlässigen Transports, Dienst-Mesh, Datentransformation, Authentifizierung, Dienstgüte (QoS), Sicherheit, Telemetriemessung, Ereignisprotokollierung, Initiierung und Verwaltung von Datenflüssen, Datenplatzierung oder Arbeitsauftragsplanung von Ressourcen auf einer XPU, einer Speicherung, einem Speicher oder einer CPU beinhalten.
  • Beispiel 3 beinhaltet ein beliebiges Beispiel, wobei die IPU kommunikativ mit dem einen oder den mehreren Verbundknoten gekoppelt ist und wobei die IPU einen Funktionsaufruf von einer beliebigen Software oder Vorrichtung auf dem einen oder den mehreren Verbundknoten empfangen soll.
  • Beispiel 4 beinhaltet ein beliebiges Beispiel, wobei die IPU kommunikativ mit dem einen oder den mehreren Verbundknoten auf demselben Die über eine oder mehrere Vorrichtungsschnittstellen oder über ein Netzwerk oder ein Fabric gekoppelt ist.
  • Beispiel 5 beinhaltet ein beliebiges Beispiel, wobei die Netzwerkschnittstellenschaltungsanordnung eine SmartNIC mit einem oder mehreren programmierbaren oder Festfunktionsprozessoren beinhaltet, um ein Offload von Operationen durchzuführen, die durch eine Zentralverarbeitungseinheit (CPU) durchgeführt werden könnten.
  • Beispiel 6 beinhaltet ein beliebiges Beispiel, wobei die Operationen eines oder mehrere von Folgendem beinhalten: Datenparallelisierungsaufgaben, Plattform- und Vorrichtungsverwaltung, verteilte Telemetriesammlung, Tracing, Protokollierung und Überwachung, Dienstgüte(QoS)-Durchsetzung, Dienst-Mesh, Serialisierung und Deserialisierung, Datengrößen- und -formatumwandlung, Bereichsvalidierung, Zugriffsrichtliniendurchsetzung oder Inter-Knoten- und Intra-Knoten-Sicherheit.
  • Beispiel 7 beinhaltet ein beliebiges Beispiel, wobei der eine oder die mehreren programmierbaren oder Festfunktionsprozessoren Beschleunigungs-Engines beinhalten, die eine flexible und programmierbare Beschleunigung bereitstellen, um Gleitkommaoperationen, Tensoroperationen oder intensive künstliche Intelligenz (KI) und Maschinenlemtraining oder -inferenz durchzuführen.
  • Beispiel 8 beinhaltet ein beliebiges Beispiel, wobei die IPU mit einer Zentralverarbeitungseinheit (CPU) und/oder XPU in einem System-on-Chip integriert ist.
  • Beispiel 9 beinhaltet ein beliebiges Beispiel, wobei die IPU physisch von einer CPU und/oder XPU getrennt ist und über eine Vorrichtungsschnittstelle verbindbar ist.
  • Beispiel 10 beinhaltet ein beliebiges Beispiel, wobei die Schaltungsanordnung, die Infrastrukturdienste offenlegen soll, auf die durch Mikrodienste zugegriffen werden soll, zur Funktionskomposition, Sicherheitsinfrastrukturdienste durchführen soll, wobei Sicherheitsinfrastrukturdienste eines oder mehrere von Folgendem beinhalten: RoT (RoT: Root of Trust), Attestierungsdienste, sichere Enklaven, Speicherung von Verschlüsselungsschlüsseln, Protokollverschlüsselungsendpunkte für Linkschnittstellen und Netzwerkschnittstellen, die die IPU mit anderen Verbundknoten verbinden, eine Steuerebenenschnittstelle, Zustandsmaschine an Vorrichtungsschnittstellen, die individuell konfiguriert und von anderen Vorrichtungsschnittstellen isoliert werden können, Attestierung, Autorisierung, Zugriffssteuerung, Protokollierung, Protokollfilterung, unveränderliches Protokollieren, Sicherheitshubfunktionen für Inter-XPU-Vertraulichkeit und Identitäts- und Informationsisolation, Brokering von Datensichtbarkeit zwischen mehreren Clients zur kooperativen Verarbeitung, Durchsetzen von Sicherheitsrichtlinien und Diensten einschließlich Zugriffssteuerungslisten, Ratenbegrenzung, Intrusionsdetektion oder verteilte Denial-of-Service-Angriffe.
  • Beispiel 11 beinhaltet ein beliebiges Beispiel, wobei die IPU Teil eines System-on-Chip (SoC) ist und wobei die Sicherheitsinfrastrukturdienste sichere und verschlüsselte Schnittstellen für externe Schnittstellen von dem IPU-SOC einschließlich Speicher beinhalten.
  • Beispiel 12 beinhaltet ein beliebiges Beispiel, wobei die IPU XPU-Cache- und Bandbreitenkontamination reduzieren soll, während die Verwendung von Allzweck-Rechenkernen freigegeben wird.
  • Beispiel 13 beinhaltet ein beliebiges Beispiel, wobei die Schaltungsanordnung, die Infrastrukturdienste offenlegen soll, Datenplatzierung durch Staging und Speichern von Daten in einer Speicher- oder Speicherungsvorrichtung, die physisch nahe dem Ort ist, wo sie verarbeitet werden, durchführen soll.
  • Beispiel 14 beinhaltet ein beliebiges Beispiel, wobei die Infrastrukturdienste E/A-Datenpfadoperationen beinhalten, einschließlich Verschlüsselung, Authentifizierung, Komprimierung, Routing, Richtliniendurchsetzung, Deep Packet Inspection, RDMA(Remote Direct Memory Access)-Beschleunigung, Netzwerkprotokoll-Offload, zuverlässiger Transport, Überlastungssteuerung, Dienstgüte (QoS), Abtastung, Replikation/Multicast, Multipath, Netzwerkadressenübersetzung (NAT) oder Firewall.
  • Beispiel 15 beinhaltet ein beliebiges Beispiel, wobei die Schaltungsanordnung, die Infrastrukturdienste offenlegen soll, Datenflüsse initiieren und verwalten soll, einschließlich Vereinheitlichen von Speicherzugriffen auf lokalen oder entfernten gemeinsam genutzten Speicher, wobei die Vereinheitlichung von Speicherzugriffen Verschlüsselung, Zugriffssteuerung, Adressenneuabbildung, Cache-Verwaltung, zuverlässiger Zugriff, atomare Befehle oder persistente Speicherverwaltung beinhaltet.
  • Beispiel 16 beinhaltet ein beliebiges Beispiel und beinhaltet einen verwalteten Knoten, der einen oder mehrere Verbundknoten beinhaltet, wobei ein Verbundknoten Rechenressourcen beinhaltet, die logisch gekoppelt sind, wobei die Rechenressourcen Speichervorrichtungen, Datenspeicherungsvorrichtungen, Beschleunigervorrichtungen oder Allzweckprozessoren beinhalten, wobei Ressourcen von dem einen oder den mehreren Verbundknoten kollektiv bei der Ausführung einer Arbeitslast genutzt werden und wobei die Arbeitlastausführung durch eine Gruppe von Mikrodiensten implementiert wird.
  • Beispiel 17 beinhaltet ein beliebiges Beispiel und beinhaltet eine Einrichtung, die Folgendes umfasst: eine Infrastrukturverarbeitungseinheit (IPU), die Folgendes umfasst: eine Schnittstellenschaltungsanordnung zum Bereitstellen einer kommunikativen Kopplung mit einer Plattform; eine Netzwerkschnittstellenschaltungsanordnung zum Bereitstellen einer kommunikativen Kopplung mit einem Netzwerkmedium; und eine Schaltung, die ein Gateway zu einer oder mehreren Ressourcen umfasst, wobei das Gateway eine Anforderung zum Durchführen einer Arbeitslast empfangen soll, um zu bewirken, dass das Gateway die Ausführung der Arbeitslast durch Zuweisung von Mikrodiensten zur Durchführung auf der einen oder den mehreren Ressourcen verwaltet.
  • Beispiel 18 beinhaltet ein beliebiges Beispiel, wobei das Gateway Folgendes umfasst: eine Zugriffssteuerungsschaltungsanordnung zum Bestimmen, ob Zugriff zu einem beliebigen Dienst oder Mikrodienst von der Arbeitslast, die die API bereitstellt, gewährt oder verweigert werden soll, und wobei die Zugriffssteuerungsschaltungsanordnung einen Steuerebenenprozessor umfasst.
  • Beispiel 19 beinhaltet ein beliebiges Beispiel, wobei das Gateway Folgendes umfasst: eine Schaltungsanordnung zum Authentifizieren der Arbeitslast, um zu bestimmen, ob Zugriff zu einem beliebigen Dienst oder Mikrodienst von der Arbeitslast, die die API bereitstellt, gewährt oder verweigert werden soll.
  • Beispiel 20 beinhaltet ein beliebiges Beispiel, wobei das Gateway Folgendes umfasst: eine Schaltungsanordnung zum Zuweisen von Rechenressourcen zum Durchführen eines oder mehrerer Dienste oder Mikrodienste für die Arbeitslast, wobei die Rechenressourcen eines oder mehrere von Folgendem umfassen: eine XPU, eine Zentralverarbeitungseinheit, eine Grafikverarbeitungseinheit, eine Allzweck-Grafikverarbeitungseinheit, Beschleuniger, Caches, Speicherung, Speicher, persistenten Speicher oder nichtflüchtigen Speicher.
  • Beispiel 21 beinhaltet ein beliebiges Beispiel, wobei Beschleuniger eines oder mehrere von Folgendem durchführen: Paketverarbeitung, Maschinenlerninferenz, Kryptographie, Sicherheit, Komprimierung oder Blockchain-basierte Verifikation.
  • Beispiel 22 beinhaltet ein beliebiges Beispiel, wobei sich ein Teil der Rechenressourcen innerhalb der IPU befindet und wobei der Teil der Rechenressourcen für die IPU durch die Netzwerkschnittstellenschaltungsanordnung oder die Schnittstellenschaltungsanordnung zugänglich ist.
  • Beispiel 23 beinhaltet ein beliebiges Beispiel, wobei das Gateway Folgendes umfasst: eine Schaltungsanordnung zum Partitionieren von Rechenressourcen in mehrere Zonen, um eine Isolation zwischen Rechenressourcen, die einen oder mehrere Mikrodienste oder Dienste für die Arbeitslast ausführen, von einem oder mehreren Mikrodiensten oder Diensten, die für eine zweite Arbeitslast ausgeführt werden, bereitzustellen, wobei die zweite Arbeitslast mit einem anderen Mandanten als jenem der Arbeitslast assoziiert ist.
  • Beispiel 24 beinhaltet ein beliebiges Beispiel, wobei das Gateway Folgendes umfasst: eine Schaltungsanordnung zum Bereitstellen eines oder mehrerer Mikrodienste oder Dienste für die Arbeitslast mit Zugriff auf ein physisches Netzwerk oder ein physisches Rechen-Fabric und mindestens eine der mehreren Zonen.
  • Beispiel 25 beinhaltet ein beliebiges Beispiel, wobei das Gateway Folgendes umfasst: eine Schaltungsanordnung zum Neuzuweisen von Rechenressourcen, die Dienste oder Mikrodienste ausführen, für die Arbeitslast, um zu versuchen, ein gültiges Service Level Agreement (SLA), Dienstebenenziele (SLO), Dienstgüteziele (SQO), Dienstgüte (QoS), Sicherheit, hohe Verfügbarkeit, Fehlerbehandlung oder effiziente Zuweisung von Rechenressourcen zu erreichen.
  • Beispiel 26 beinhaltet ein beliebiges Beispiel, wobei das Gateway Folgendes umfasst: eine Schaltungsanordnung zum Durchführen von Telemetrie, Protokollierung, Überwachung, Tracing für Performanzüberwachung, Debugging und Abrechnung von ausgeführten Diensten und Mikrodiensten für die Arbeitslast.
  • Beispiel 27 beinhaltet ein beliebiges Beispiel, wobei das Gateway Folgendes umfasst: eine Schaltungsanordnung zum Durchführen einer Formatumwandlung von Daten, die mit der Arbeitslast assoziiert sind, vor dem Bereitstellen der Daten zur Verarbeitung durch einen Dienst oder Mikrodienst, der mit der Arbeitslast assoziiert ist.
  • Beispiel 28 beinhaltet ein beliebiges Beispiel, wobei das Gateway Folgendes umfasst: eine Schaltungsanordnung zum Durchführen einer Übersetzung einer Anweisung der Arbeitslast vor dem Bereitstellen der Anweisung zur Ausführung durch einen Dienst oder Mikrodienst, der mit der Arbeitslast assoziiert ist.
  • Beispiel 29 beinhaltet ein beliebiges Beispiel, wobei das Gateway Folgendes umfasst: eine Schaltungsanordnung zum Durchführen einer Protokollübersetzung für ein Paket, das mit der Arbeitslast assoziiert ist, vor dem Bereitstellen des Pakets zur Verarbeitung durch einen Dienst oder Mikrodienst, der mit der Arbeitslast assoziiert ist.
  • Beispiel 30 beinhaltet ein beliebiges Beispiel und beinhaltet eine Schaltungsanordnung zum Zuweisen von Rechenressourcen, um einen oder mehrere Dienste oder Mikrodienste für die Arbeitslast durchzuführen, wobei die Rechenressourcen eines oder mehrere von Folgendem umfassen: eine XPU, eine Zentralverarbeitungseinheit, eine Grafikverarbeitungseinheit, eine Allzweck-Grafikverarbeitungseinheit, Beschleunigern, Caches, Speicherung, Speicher, persistenten Speicher oder nichtflüchtigen Speicher und eine Schaltungsanordnung zum Verwalten einer Ausführungssequenz von Diensten oder Mikrodiensten durch die zugewiesenen Rechenressourcen.
  • Beispiel 31 beinhaltet ein beliebiges Beispiel und beinhaltet eine Schaltungsanordnung zum Zuweisen von Rechenressourcen, um einen oder mehrere Dienste oder Mikrodienste für die Arbeitslast durchzuführen, und einen Server- oder Rack-Switch, der mit der Schnittstellenschaltungsanordnung gekoppelt ist, wobei der Server- oder Rack-Switch einen Teil der Rechenressourcen umfasst.
  • Beispiel 32 beinhaltet ein beliebiges Beispiel, wobei das Gateway Schnittstellen über virtuelle Schnittstellen, die auf verschiedene virtuelle Instanzen auf Ressourcen abgebildet werden können, unter Verwendung verschlüsselter Kommunikationen multiplexen soll.
  • Beispiel 33 beinhaltet ein beliebiges Beispiel und beinhaltet eine zweite IPU, die Folgendes umfasst: eine Rechen-Fabric-Schaltungsanordnung zum Bereitstellen einer kommunikativen Kopplung mit einer Plattform; eine Speicherungs-Fabric-Schaltungsanordnung zum Bereitstellen einer Speicherungskopplung mit einer Plattform; eine Netzwerkschnittstellenschaltungsanordnung zum Bereitstellen einer kommunikativen Kopplung mit einem Netzwerkmedium; und eine Schaltungsanordnung zum Bereitstellen eines Gateways für eine Arbeitslast zum Zugreifen auf Dienste oder Mikrodienste unter Verwendung einer Anwendungsprogrammschnittstelle (API), wobei die Netzwerkschnittstellenschaltungsanordnung der zweiten IPU kommunikativ mit der IPU gekoppelt ist.
  • Beispiel 34 beinhaltet ein beliebiges Beispiel, wobei sich die IPU und die zweite IPU eine Speicherdomäne und Arbeits- und Datenwarteschlangen teilen.
  • Beispiel 35 beinhaltet ein beliebiges Beispiel, wobei die IPU die Verwendung von Rechenressourcen einer zweiten IPU oder Rechenressourcen, die mit der zweiten IPU gekoppelt sind, anleiten soll.
  • Beispiel 36 beinhaltet ein beliebiges Beispiel, wobei Kommunikationen zwischen der IPU und der zweiten IPU unter Verwendung gemeinsam genutzter Warteschlangen stattfinden.
  • Beispiel 37 beinhaltet ein beliebiges Beispiel, wobei die IPU und die zweite IPU kryptographische und Zugriffssteuerungsisolation für Dienste auf verschiedenen Knoten für verschiedene Arbeitslasten bereitstellen.
  • Beispiel 38 beinhaltet ein beliebiges Beispiel, wobei die IPU und die zweite IPU eine Sicherheitsisolation über verschiedene Zonen für verschiedene Arbeitslasten bereitstellen.
  • Beispiel 39 beinhaltet ein beliebiges Beispiel und beinhaltet eine Infrastrukturverarbeitungseinheit(IPU)-Einrichtung, die Folgendes umfasst: eine Verarbeitungseinheit zum separaten Bereitstellen einer Sicherheitsdomäne für einen Mandanten, die Daten und Prozesse des Mandanten von einem anderen Mandanten isoliert, und zum Bereitstellen einer Sicherheitsdomäne für einen Infrastrukturdienst, die von einer Sicherheitsdomäne für einen Mandanten getrennt ist.
  • Beispiel 40 beinhaltet ein beliebiges Beispiel, wobei ein Mandant eines oder mehrere von Folgendem umfasst: einen eindeutig identifizierten Kunden, eine Bare-Metal-Umgebung, eine virtuelle Maschine, einen Container, einen Mikrodienst, eine Anwendungsprogrammschnittstelle (API), einen Fernprozeduraufruf (RPC) oder einen Block von Ausführungscode.
  • Beispiel 41 beinhaltet ein beliebiges Beispiel, wobei die Infrastrukturdienste Ressourcen innerhalb der IPU und disaggregierte Ressourcen einer Plattform umfassen, die zur Verwendung vertrauenswürdig sind.
  • Beispiel 42 beinhaltet ein beliebiges Beispiel und beinhaltet eine Hardware-Root-of-Trust, die einer Arbeitslast Zugriff auf einen Verarbeitungspfad oder eine Infrastruktur bereitstellt und Zugriff zu vertraulichen Rechendomänen ermöglicht.
  • Beispiel 43 beinhaltet ein beliebiges Beispiel und beinhaltet eine Hardware-Root-of-Trust, um ein Proxy für eine Arbeitslast bereitzustellen, um auf sichere Ressourcen zuzugreifen.
  • Beispiel 44 beinhaltet ein beliebiges Beispiel, wobei die Verarbeitungseinheit eine begrenzte Schnittstelle über eine Anwendungsprogrammierungsschnittstelle (API) bereitstellen soll.
  • Beispiel 45 beinhaltet ein computerlesbares Medium, das eine oder mehrere Anweisungen umfasst, die, wenn sie durch einen oder mehrere Prozessoren ausgeführt werden, den einen oder die mehreren Prozessoren zu Folgendem veranlassen: Ausführen eines Treibers, der die Verfügbarkeit von Fähigkeiten einer Infrastrukturverarbeitungseinheit (IPU) angeben soll, um Infrastrukturdienste und Vorrichtungen offenzulegen, auf die durch Mikrodienste zugegriffen werden soll, zur Funktionskomposition, in Verbindung mit der Durchführung einer Arbeitslast von einer Anwendung, virtualisierten Ausführungsumgebung oder Vorrichtung.
  • ZITATE ENTHALTEN IN DER BESCHREIBUNG
  • Diese Liste der vom Anmelder aufgeführten Dokumente wurde automatisiert erzeugt und ist ausschließlich zur besseren Information des Lesers aufgenommen. Die Liste ist nicht Bestandteil der deutschen Patent- bzw. Gebrauchsmusteranmeldung. Das DPMA übernimmt keinerlei Haftung für etwaige Fehler oder Auslassungen.
  • Zitierte Patentliteratur
    • US 63/087218 [0001]

Claims (28)

  1. System, das Folgendes umfasst: einen verwalteten Knoten, der einen oder mehrere Verbundknoten umfasst, wobei ein Verbundknoten Rechenressourcen umfasst, die logisch gekoppelt sind, wobei die Rechenressourcen Speichervorrichtungen, Datenspeicherungsvorrichtungen, Beschleunigervorrichtungen oder Allzweckprozessoren beinhalten, wobei Ressourcen von dem einen oder den mehreren Verbundknoten kollektiv bei der Ausführung einer Arbeitslast genutzt werden und wobei die Arbeitslastausführung durch eine Gruppe von Mikrodiensten implementiert wird; und eine Infrastrukturverarbeitungseinheit (IPU), die Infrastrukturdienste, auf die durch die Mikrodienste zugegriffen werden soll, zur Funktionskomposition offenlegt.
  2. System nach Anspruch 1, wobei die Infrastrukturdienste Fähigkeiten eines Routers, eines Lastausgleichers, einer Firewall, eines TCP/zuverlässigen Transports, eines Dienst-Mesh, einer Datentransformation, einer Authentifizierung, Dienstgüte (QoS), Sicherheitsinfrastrukturdienste, Telemetriemessung, Ereignisprotokollierung, Initiierung und Verwaltung von Datenflüssen, Datenplatzierung oder Arbeitsauftragsplanung von Ressourcen auf einer XPU, einer Speicherung, einem Speicher oder einer Zentralverarbeitungseinheit (CPU) beinhalten.
  3. System nach Anspruch 1, wobei die IPU eine Netzwerkschnittstellensteuerung und/oder SmartNIC mit einem oder mehreren programmierbaren oder Festfunktionsprozessoren zum Durchführen eines Offload von Operationen beinhaltet, die durch eine Zentralverarbeitungseinheit (CPU) durchgeführt werden könnten.
  4. System nach Anspruch 3, wobei die Operationen Datenparallelisierungsaufgaben, Plattform- und Vorrichtungsverwaltung, verteilte Inter-Knoten- und Intra-Knoten-Telemetrie, Tracing, Protokollierung und Überwachung, Dienstgüte(QoS)-Durchsetzung, Service-Mesh, Datenverarbeitung einschließlich Serialisierung und Deserialisierung, Transformation einschließlich Größen- und Formatumwandlung, Bereichsvalidierung, Zugriffsrichtliniendurchsetzung oder verteilte Inter-Knoten- und Intra-Knoten-Sicherheit.
  5. System nach Anspruch 3, wobei die Operationen integrierte Beschleunigungs-Engines umfassen, die eine flexible und programmierbare Beschleunigung zum Offloading bereitstellen und die Performanz für Gleitkommaoperationen pro Sekunde (FLOPS)/ Tensoroperationen pro Sekunde (TOPS) oder intensive künstliche Intelligenz (KI) und maschinelles Lernen verbessern.
  6. System nach Anspruch 2, wobei die Sicherheitsinfrastrukturdienste Root of Trust (RoT), Attestierungsdienste, sichere Enklaven, Speichern von Verschlüsselungsschlüsseln und vollständigen Schlüsselverwaltungsaufgaben, Protokollverschlüsselungsendpunkte für Linkschnittstellen und Netzwerkschnittstellen, die die IPU mit anderen Verbundknoten in dem System verbinden, eine separate Steuerebenenschnittstelle, Zustandsmaschinen an Vorrichtungsschnittstellen, die individuell konfiguriert und von anderen Vorrichtungsschnittstellen isoliert sind, Attestierung, Autorisierung, Protokollierung, Protokollfilterung, unveränderliche Protokollierung, Sicherheitshubfunktionen für Inter-XPU-Vertraulichkeit und Identitäts- und Informationsisolation, Brokering von Datensichtbarkeit zwischen mehreren Clients für kooperative Verarbeitung, Netzwerk- und Eingabe-Ausgabe(EA)-Fabrics, oder passive oder aktive Durchsetzung von Sicherheitsrichtlinien und Diensten, wobei die Durchsetzung von Sicherheitsrichtlinien und Diensten Zugriffssteuerungslisten, Ratenbegrenzung, Zugriffssteuerung, Intrusionsdetektion oder verteilte Denial-of-Service-Angriffe beinhaltet.
  7. System nach Anspruch 6, wobei die IPU ein System-on-Chip (SoC) ist, wobei das SoC Speicher enthält und wobei die Sicherheitsdienste sichere und verschlüsselte Schnittstellen für externe Schnittstellen von dem IPU-SOC enthalten.
  8. System nach Anspruch 1, wobei die IPU in der Lage ist, XPU-Cache- und Bandbreitenkontamination zu reduzieren, während die Verwendung von Allzweck-Rechenkernen freigegeben wird, und wobei die IPU in der Lage ist, die Verwendung von Beschleunigungsvorrichtungen übergreifend zu integrieren.
  9. System nach Anspruch 2, wobei die Datenplatzierung das Staging und Speichern von Daten in einer Speicher- oder Speicherungsvorrichtung auf einer Vorrichtung beinhaltet, die weniger Sprünge von einem Knoten entfernt ist, auf dem die Daten verarbeitet werden.
  10. System nach Anspruch 1, wobei die Infrastrukturdienste E/A-Datenpfadoperationen beinhalten, einschließlich Verschlüsselung, Authentifizierung, Komprimierung, Routing, Richtliniendurchsetzung, Deep Packet oder Message Inspection, RDMA(Remote Direct Memory Access)-Beschleunigung einschließlich RoCE oder iWARP, Netzwerkprotokoll-Offload, zuverlässiger Transport, Überlastungssteuerung, Dienstgüte (QoS), Abtastung, Paketreplikation oder Multicast, Multipath, Netzwerkadressenübersetzung (NAT) oder Firewall.
  11. System nach Anspruch 2, wobei das Initiieren und Verwalten von Datenflüssen Vereinheitlichen von Speicherzugriffen auf lokalen oder entfernten gemeinsam genutzten Speicher beinhaltet, wobei das Vereinheitlichen von Speicherzugriffen Verschlüsselung, Zugriffssteuerung, Adressenneuabbildung, Cache-Verwaltung, zuverlässigen Zugriff, atomare Befehle oder persistente Speicherverwaltung beinhaltet.
  12. System nach einem der Ansprüche 1-11, wobei die IPU kommunikativ mit dem einen oder den mehreren Verbundknoten gekoppelt ist und wobei die IPU in der Lage ist, einen Funktionsaufruf von einer beliebigen Software oder Vorrichtung auf dem einen oder den mehreren Verbundknoten zu empfangen, wobei die IPU kommunikativ mit dem einen oder den mehreren Verbundknoten auf demselben Die, über eine oder mehrere Vorrichtungsschnittstellen oder über ein Netzwerk oder ein Fabric gekoppelt ist.
  13. System nach einem der Ansprüche 1-12, wobei die IPU mit einer Zentralverarbeitungseinheit (CPU) und/oder XPU integriert ist.
  14. System nach einem der Ansprüche 1-12, wobei die IPU physisch von einer Zentralverarbeitungseinheit (CPU) und/oder XPU getrennt ist.
  15. Infrastrukturverarbeitungseinheit(IPU)-Einrichtung, die Folgendes umfasst: mindestens eine Netzwerkschnittstelle; mindestens eine Host-Schnittstelle; und mindestens einen Prozessor, wobei mindestens ein Prozessor des mindestens einen Prozessors dazu konfiguriert ist, Anweisungen auszuführen, um Infrastrukturdienste, auf die durch Mikrodienste zugegriffen werden soll, zur Funktionskomposition offenzulegen, und wobei die Mikrodienste eine Arbeitslastausführung auf einem oder mehreren Verbundknoten implementieren, wobei ein Verbundknoten Rechenressourcen umfasst, die logisch gekoppelt sind, wobei die Rechenressourcen Speichervorrichtungen, Datenspeicherungsvorrichtungen, Beschleunigervorrichtungen oder Allzweckprozessoren beinhalten.
  16. Einrichtung nach Anspruch 15, wobei die Infrastrukturdienste Fähigkeiten eines Routers, eines Lastausgleichers, einer Firewall, eines TCP/zuverlässigen Transports, eines Dienst-Mesh, einer Datentransformation, einer Authentifizierung, einer Dienstgüte (QoS), Sicherheitsinfrastrukturdienste, Telemetriemessung, Ereignisprotokollierung, Initiierung und Verwaltung von Datenflüssen, Datenplatzierung oder Arbeitsauftragsplanung von Ressourcen auf einer XPU, einer Speicherung, einem Speicher oder einer Zentralverarbeitungseinheit (CPU) beinhalten.
  17. Einrichtung nach Anspruch 15, wobei die IPU kommunikativ mit dem einen oder den mehreren Verbundknoten gekoppelt ist und wobei die IPU in der Lage ist, einen Funktionsaufruf von einer beliebigen Software oder Vorrichtung auf dem einen oder den mehreren Verbundknoten zu empfangen.
  18. Einrichtung nach Anspruch 17, wobei die IPU kommunikativ mit dem einen oder den mehreren Verbundknoten auf demselben Die über eine oder mehrere Vorrichtungsschnittstellen oder über ein Netzwerk oder ein Fabric gekoppelt ist.
  19. Einrichtung nach Anspruch 15, wobei die IPU eine Netzwerkschnittstellensteuerung und/oder eine SmartNIC mit einem oder mehreren programmierbaren oder Festfunktionsprozessoren zum Durchführen eines Offload von Operationen beinhaltet, die durch eine Zentralverarbeitungseinheit (CPU) durchgeführt werden könnten.
  20. Einrichtung nach Anspruch 19, wobei die Operationen Datenparallelisierungsaufgaben, Plattform- und Vorrichtungsverwaltung, verteilte Inter-Knoten- und Intra-Knoten-Telemetrie, Tracing, Protokollierung und Überwachung, Dienstgüte(QoS)-Durchsetzung, Dienst-Mesh, Datenverarbeitung einschließlich Serialisierung und Deserialisierung, Transformation einschließlich Größen- und Formatumwandlung, Bereichsvalidierung, Zugriffsrichtliniendurchsetzung oder verteilte Inter-Knoten- und Intra-Knoten-Sicherheit beinhalten.
  21. Einrichtung nach Anspruch 19, wobei die Operationen integrierte Beschleunigungs-Engines beinhalten, die eine flexible und programmierbare Beschleunigung zum Offloading bereitstellen und die Performanz für Gleitkommaoperationen pro Sekunde (FLOPS) oder Tensoroperationen pro Sekunde (TOPS) oder intensive künstliche Intelligenz (KI) und maschinelles Lernen verbessern.
  22. Einrichtung nach Anspruch 16, wobei die Sicherheitsinfrastrukturdienste Root of Trust (RoT), Attestierungsdienste, sichere Enklaven, Speichern von Verschlüsselungsschlüsseln und vollständigen Schlüsselverwaltungsaufgaben, Protokollverschlüsselungsendpunkte für Linkschnittstellen und Netzwerkschnittstellen, die die IPU mit anderen Verbundknoten in dem System verbinden, eine separate Steuerebenenschnittstelle, Zustandsmaschinen an Vorrichtungsschnittstellen, die individuell konfiguriert und von anderen Vorrichtungsschnittstellen isoliert sind, Attestierung, Autorisierung, Protokollierung, Protokollfilterung, unveränderliches Protokollieren, Sicherheitshubfunktionen für Inter-XPU-Vertraulichkeit und Identitäts- und Informationsisolation, Brokering von Datensichtbarkeit zwischen mehreren Clients für kooperative Verarbeitung, Netzwerk- und Eingabe-Ausgabe(EA)-Fabrics, oder passive oder aktive Durchsetzung von Sicherheitsrichtlinien und Diensten beinhalten, wobei die Durchsetzung von Sicherheitsrichtlinien und Diensten Zugriffssteuerungslisten, Ratenbegrenzung, Zugriffssteuerung, Intrusionsdetektion oder verteilte Denial-of-Service-Angriffe beinhaltet.
  23. Einrichtung nach Anspruch 22, wobei die IPU ein System-on-Chip (SoC) ist und das SoC Speicher beinhaltet und wobei die Sicherheitsdienste sichere und verschlüsselte Schnittstellen für externe Schnittstellen von dem IPU-SOC beinhalten.
  24. Einrichtung nach Anspruch 15, wobei die IPU in der Lage ist, XPU-Cache- und Bandbreitenkontamination zu reduzieren, während die Verwendung von Allzweck-Rechenkernen freigegeben wird, und wobei die IPU in der Lage ist, die Verwendung von Beschleunigungsvorrichtungen übergreifend zu integrieren.
  25. Einrichtung nach Anspruch 16, wobei die Datenplatzierung Staging und Speichern von Daten in einer Speicher- oder Speicherungsvorrichtung auf einer Vorrichtung beinhaltet, die weniger Sprünge von einem Knoten entfernt ist, auf dem die Daten verarbeitet werden.
  26. Einrichtung nach Anspruch 16, wobei die Infrastrukturdienste E/A-Datenpfadoperationen beinhalten, einschließlich Verschlüsselung, Authentifizierung, Komprimierung, Routing, Richtliniendurchsetzung, Deep Packet oder Message Inspection, RDMA(Remote Direct Memory Access)-Beschleunigung einschließlich RoCE oder iWARP, Netzwerkprotokoll-Offload, zuverlässiger Transport, Überlastungssteuerung, Dienstgüte (QoS), Abtastung, Paketreplikation oder Multicast, Multipath, Netzwerkadressenübersetzung (NAT) oder Firewall.
  27. Einrichtung nach Anspruch 16, wobei das Initiieren und Verwalten von Datenflüssen Vereinheitlichen von Speicherzugriffen auf lokalen oder entfernten gemeinsam genutzten Speicher beinhaltet, wobei das Vereinheitlichen von Speicherzugriffen Verschlüsselung, Zugriffssteuerung, Adressenneuabbildung, Cache-Verwaltung, zuverlässigen Zugriff, atomare Befehle oder persistente Speicherverwaltung beinhaltet.
  28. Einrichtung nach einem der Ansprüche 15-27, wobei die IPU mit einer Zentralverarbeitungseinheit (CPU) und/oder XPU integriert ist oder die IPU physisch von einer CPU und/oder XPU getrennt ist.
DE102021122880.8A 2020-10-03 2021-09-03 Infrastrukturverarbeitungseinheit Pending DE102021122880A1 (de)

Applications Claiming Priority (6)

Application Number Priority Date Filing Date Title
US202063087218P 2020-10-03 2020-10-03
US63/087,218 2020-10-03
US17/134,321 2020-12-26
US17/134,324 2020-12-26
US17/134,321 US20210117242A1 (en) 2020-10-03 2020-12-26 Infrastructure processing unit
US17/134,324 US20210117249A1 (en) 2020-10-03 2020-12-26 Infrastructure processing unit

Publications (1)

Publication Number Publication Date
DE102021122880A1 true DE102021122880A1 (de) 2022-04-07

Family

ID=75490726

Family Applications (1)

Application Number Title Priority Date Filing Date
DE102021122880.8A Pending DE102021122880A1 (de) 2020-10-03 2021-09-03 Infrastrukturverarbeitungseinheit

Country Status (6)

Country Link
US (2) US20210117242A1 (de)
CN (1) CN116018795A (de)
DE (1) DE102021122880A1 (de)
FR (1) FR3117641A1 (de)
NL (1) NL2029116B1 (de)
WO (1) WO2022072096A1 (de)

Families Citing this family (100)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9264304B2 (en) 2012-06-20 2016-02-16 Reliance Jio Infocomm Usa, Inc. Method and procedure for dynamic services orchestration that runs within an on device software container
US11455190B2 (en) 2016-02-05 2022-09-27 Sas Institute Inc. Implicit status in many task computing
US10425491B2 (en) 2017-01-30 2019-09-24 Centurylink Intellectual Property Llc Method and system for implementing application programming interface (API) to provide network metrics and network resource control to users
CN110731070A (zh) 2017-03-29 2020-01-24 芬基波尔有限责任公司 通过多个交替数据路径进行分组喷射的无阻塞的任意到任意数据中心网络
WO2019014237A1 (en) 2017-07-10 2019-01-17 Fungible, Inc. ACCESS NODE FOR DATA CENTERS
WO2019014268A1 (en) * 2017-07-10 2019-01-17 Fungible, Inc. DATA PROCESSING UNIT FOR FLOW PROCESSING
US11316923B2 (en) * 2017-07-21 2022-04-26 Telefonaktiebolaget Lm Ericsson (Publ) Unstructured data storage function (UDSF) services
US10540288B2 (en) 2018-02-02 2020-01-21 Fungible, Inc. Efficient work unit processing in a multicore system
WO2019200142A1 (en) * 2018-04-12 2019-10-17 Micron Technology, Inc. Replay protected memory block command queue
US11144488B2 (en) * 2019-02-04 2021-10-12 American Megatrends International, Llc Techniques of sending alerts from storage services running on server san target
CN113614722A (zh) * 2019-04-19 2021-11-05 英特尔公司 网络功能虚拟化基础设施中的进程到进程安全数据移动
CN113190167A (zh) * 2020-01-14 2021-07-30 伊姆西Ip控股有限责任公司 用于管理计算设备的方法、电子设备和计算机存储介质
TWD213404S (zh) * 2020-03-05 2021-08-21 香港商希瑞科技股份有限公司 電腦程式產品之圖形化使用者介面
US11853330B1 (en) * 2020-04-30 2023-12-26 Splunk Inc. Data structure navigator
JP2021189462A (ja) * 2020-05-25 2021-12-13 株式会社日立製作所 ストレージ装置
US11620254B2 (en) * 2020-06-03 2023-04-04 International Business Machines Corporation Remote direct memory access for container-enabled networks
US11770377B1 (en) * 2020-06-29 2023-09-26 Cyral Inc. Non-in line data monitoring and security services
US11838384B2 (en) * 2020-07-03 2023-12-05 Electronics And Telecommunications Research Institute Intelligent scheduling apparatus and method
CN113438219B (zh) 2020-07-08 2023-06-02 支付宝(杭州)信息技术有限公司 一种基于区块链一体机的重放交易识别方法及装置
CN111541783B (zh) 2020-07-08 2020-10-20 支付宝(杭州)信息技术有限公司 一种基于区块链一体机的交易转发方法及装置
CN111541789A (zh) * 2020-07-08 2020-08-14 支付宝(杭州)信息技术有限公司 一种基于区块链一体机的数据同步方法及装置
CN111541784B (zh) 2020-07-08 2021-07-20 支付宝(杭州)信息技术有限公司 一种基于区块链一体机的交易处理方法及装置
CN111539829B (zh) 2020-07-08 2020-12-29 支付宝(杭州)信息技术有限公司 一种基于区块链一体机的待过滤交易识别方法及装置
US20210117242A1 (en) * 2020-10-03 2021-04-22 Intel Corporation Infrastructure processing unit
US11809256B2 (en) 2020-11-09 2023-11-07 Apple Inc. Quality of service tier thermal control
US11709699B2 (en) * 2020-11-24 2023-07-25 International Business Machines Corporation Virtualized fabric name server for storage area network
US11683372B2 (en) 2020-11-24 2023-06-20 International Business Machines Corporation Virtualized fabric management server for storage area network
US20220164303A1 (en) * 2020-11-25 2022-05-26 Intel Corporation Optimizations of buffer invalidations to reduce memory management performance overhead
US20220239598A1 (en) * 2021-01-27 2022-07-28 Google Llc Admission Control for Latency-Critical Remote Procedure Calls in Datacenters
US11496419B2 (en) 2021-02-03 2022-11-08 Intel Corporation Reliable transport offloaded to network devices
US11991077B2 (en) * 2021-03-01 2024-05-21 Juniper Networks, Inc. Data interfaces with isolation for containers deployed to compute nodes
US11805171B2 (en) * 2021-03-04 2023-10-31 Dell Products L.P. Automated ethernet layer 3 (L3) connectivity between non-volatile memory express over fabric (NVMe-oF) hosts and NVM-oF subsystems using bind
US11818031B2 (en) 2021-03-04 2023-11-14 Dell Products L.P. Automated internet protocol (IP) route update service for ethernet layer 3 (L3) IP storage area networks (SANs)
US11675578B2 (en) * 2021-03-10 2023-06-13 Red Hat, Inc. Meta-operators for managing operator groups
US20220300608A1 (en) * 2021-03-16 2022-09-22 Intel Corporation Apparatus and method to detect power supply security attack and risk mitigation
US11924112B2 (en) * 2021-03-30 2024-03-05 Cisco Technology, Inc. Real-time data transaction configuration of network devices
CN117203615A (zh) 2021-04-09 2023-12-08 微软技术许可有限责任公司 经由分发扩展主机策略
US11799785B2 (en) 2021-04-09 2023-10-24 Microsoft Technology Licensing, Llc Hardware-based packet flow processing
US11652749B2 (en) 2021-04-09 2023-05-16 Microsoft Technology Licensing, Llc High availability for hardware-based packet flow processing
US20210243247A1 (en) * 2021-04-23 2021-08-05 Intel Corporation Service mesh offload to network devices
CN115270100A (zh) * 2021-04-29 2022-11-01 华为技术有限公司 一种安全保护方法、装置及系统
US20220358042A1 (en) * 2021-05-07 2022-11-10 Samsung Electronics Co., Ltd. Coherent memory system
US11914725B2 (en) * 2021-05-28 2024-02-27 Dell Products L.P. Operating system agnostic and secure bi-directional data handling
US20220391348A1 (en) * 2021-06-04 2022-12-08 Microsoft Technology Licensing, Llc Userspace networking with remote direct memory access
CN118056191A (zh) * 2021-06-09 2024-05-17 安法布里卡公司 具有可配置传输的多平面、多协议存储器交换机构造
US20220397891A1 (en) * 2021-06-11 2022-12-15 Honeywell International Inc. Coordinating a single program running on multiple host controllers
US11509600B1 (en) * 2021-06-28 2022-11-22 Dell Products L.P. Hybrid cloud orchestration system
US12003903B2 (en) * 2021-07-07 2024-06-04 Verizon Patent And Licensing Inc. Drone telemetry system
CN114968612B (zh) * 2021-07-14 2023-04-11 华为技术有限公司 一种数据处理方法、系统及相关设备
US11968231B2 (en) * 2021-08-04 2024-04-23 International Business Machines Corporation Intelligent request routing within service mesh
AU2022329901A1 (en) * 2021-08-19 2024-01-25 Carnegie Mellon University System and method for formal modelling of trusted edge lot security gateways
DE102021123358B3 (de) 2021-09-09 2022-10-20 Volkswagen Aktiengesellschaft Steuervorrichtung, Steuerverfahren und Computerprogramm für eine Verteilung von Rechen-Funktionsblöcken auf Recheneinheiten eines Fahrzeugs
US20230081147A1 (en) * 2021-09-10 2023-03-16 Dell Products L.P. System and method for a system control processor-controlled partitioning of bare-metal system resources
WO2023043456A1 (en) * 2021-09-17 2023-03-23 Intel Corporation Ipu based operators
US20230093868A1 (en) * 2021-09-22 2023-03-30 Ridgeline, Inc. Mechanism for real-time identity resolution in a distributed system
US20230096451A1 (en) * 2021-09-24 2023-03-30 Intel Corporation Remote disaggregated infrastructure processing units (ipus)
CN113923030B (zh) * 2021-10-11 2023-06-23 中国联合网络通信集团有限公司 基于零信任的远程访问方法、终端设备及计算机存储介质
US11921605B2 (en) 2021-10-21 2024-03-05 Hewlett Packard Enterprise Development Lp Managing applications in a cluster
US11755721B2 (en) 2021-10-25 2023-09-12 International Business Machines Corporation Trusted workload execution
US11645092B1 (en) 2021-10-25 2023-05-09 International Business Machines Corporation Building and deploying an application
US20230161398A1 (en) * 2021-11-22 2023-05-25 Rakuten Mobile, Inc. Data storage system with power consumption efficiency and methods of operating the same
US12003489B2 (en) * 2021-12-07 2024-06-04 Intel Corporation Mechanisms to reduce exposure of sensitive telemetry data in computing networks
US11989142B2 (en) 2021-12-10 2024-05-21 Samsung Electronics Co., Ltd. Efficient and concurrent model execution
US20230195528A1 (en) * 2021-12-20 2023-06-22 Intel Corporation Method and apparatus to perform workload management in a disaggregated computing system
US20230195597A1 (en) * 2021-12-20 2023-06-22 Intel Corporation Matchmaking-based enhanced debugging for microservices architectures
US11558265B1 (en) * 2021-12-21 2023-01-17 Intel Corporation Telemetry targeted query injection for enhanced debugging in microservices architectures
US11570264B1 (en) 2021-12-21 2023-01-31 Intel Corporation Provenance audit trails for microservices architectures
US11561868B1 (en) * 2021-12-23 2023-01-24 Intel Corporation Management of microservices failover
US20220121556A1 (en) * 2021-12-23 2022-04-21 Intel Corporation Systems, methods, articles of manufacture, and apparatus for end-to-end hardware tracing in an edge network
WO2023129981A1 (en) * 2021-12-29 2023-07-06 Pentair, Inc. Smart edge hypervisor system and method of use
US11973644B2 (en) 2021-12-30 2024-04-30 King Fahd University Of Petroleum And Minerals Distributed software-defined networking (SDN) control plane framework
US20230217343A1 (en) * 2022-01-05 2023-07-06 International Business Machines Corporation Intelligent service mesh data compression
US11876691B2 (en) 2022-01-28 2024-01-16 Nokia Solutions And Networks Oy End-to-end RDMA telemetry system
US11729057B1 (en) * 2022-02-07 2023-08-15 The Bank Of New York Mellon Application architecture drift detection system
US20230267089A1 (en) * 2022-02-22 2023-08-24 Google Llc Compute Platform Architecture For Secure And Efficient Deployment Of Cloud Native Communication Network Functions
US20230289204A1 (en) * 2022-03-10 2023-09-14 BedRock Systems. Inc. Zero Trust Endpoint Device
US20230289169A1 (en) * 2022-03-14 2023-09-14 Dell Products L.P. Cross-organization continuous update of edge-side event detection models in warehouse environments via federated learning
US20220206849A1 (en) * 2022-03-21 2022-06-30 Intel Corporation Hardware support for low latency microservice deployments in switch
WO2023195983A1 (en) * 2022-04-06 2023-10-12 Safelishare, Inc. Transforming dataflows into secure dataflows using trusted and isolated computing environments
CN114826982B (zh) * 2022-04-08 2023-08-18 浙江大学 一种微服务场景下的自适应心跳包调节方法
US20230328045A1 (en) * 2022-04-08 2023-10-12 Xilinx, Inc. Secure shell and role isolation for multi-tenant compute
WO2023230831A1 (en) * 2022-05-31 2023-12-07 Intel Corporation Transparent transportation in cloud-to-pc extension framework
CN115033477B (zh) * 2022-06-08 2023-06-27 山东省计算中心(国家超级计算济南中心) 一种面向大规模微服务的性能异常主动检测和处理方法及系统
US20230418775A1 (en) * 2022-06-27 2023-12-28 Google Llc Heterogeneous Compute Platform Architecture For Efficient Hosting Of Network Functions
WO2024005897A1 (en) * 2022-06-30 2024-01-04 Mastercard International Incorporated Microservice platform message management system
US20240039981A1 (en) * 2022-07-28 2024-02-01 Adp, Inc. Distributed transactions over broadcast communication channel within microservices environment
CN115408108A (zh) * 2022-08-30 2022-11-29 阿里巴巴(中国)有限公司 一种云环境下的i/o卸载方法、设备、系统及存储介质
WO2024049429A1 (en) * 2022-08-31 2024-03-07 Rakuten Mobile, Inc. System and method for design of a network slice
EP4332747A1 (de) * 2022-09-02 2024-03-06 Samsung Electronics Co., Ltd. Systeme und verfahren zur integration einer rechenressource mit einer speichervorrichtung
TW202411867A (zh) * 2022-09-02 2024-03-16 南韓商三星電子股份有限公司 用於整合全同態加密(fhe)與儲存裝置的多功能裝置及方法
WO2024072380A1 (en) * 2022-09-28 2024-04-04 Rakuten Symphony Singapore Pte. Ltd. Method and system for enrolling service providers and onboarding virtualized network services
US20240143468A1 (en) * 2022-11-02 2024-05-02 Skyramp Inc. System and methods for testing microservices
WO2024096960A1 (en) * 2022-11-06 2024-05-10 Vmware, Inc. Multi-tenant network management service
WO2024102133A1 (en) * 2022-11-10 2024-05-16 Robin Systems, Inc Ephemeral storage volumes for application bundles
EP4380105A1 (de) * 2022-11-30 2024-06-05 Juniper Networks, Inc. Selbstlernender firewall-richtlinien-umsetzer
WO2024120609A1 (en) * 2022-12-06 2024-06-13 Huawei Cloud Computing Technologies Co., Ltd. A remote procedure call network interface card for forwarding remote procedure call traffic
CN116011041B (zh) * 2022-12-07 2024-06-18 成都海光集成电路设计有限公司 密钥管理方法、数据保护方法、系统、芯片及计算机设备
CN116668191B (zh) * 2023-07-25 2023-10-20 北京发祥地科技发展有限责任公司 具有数据加密汇聚功能的物联网应用虚拟网关
CN117130870B (zh) * 2023-10-26 2024-01-26 成都乐超人科技有限公司 面向Java架构微服务系统的透明请求追踪及采样方法和装置
CN118114620A (zh) * 2024-04-23 2024-05-31 上海合见工业软件集团有限公司 一种电路板钻孔标志的数据交换方法、装置、设备及介质

Family Cites Families (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4608688A (en) * 1983-12-27 1986-08-26 At&T Bell Laboratories Processing system tolerant of loss of access to secondary storage
US6181677B1 (en) * 1998-02-18 2001-01-30 Milgo Solutions, Inc. Method and apparatus for detection and protection against data loss in a fractional T1/E1 communications environment
US10069749B1 (en) * 2014-09-23 2018-09-04 EMC IP Holding Company LLC Method and apparatus for disaggregated overlays via application services profiles
EP3268905A4 (de) * 2015-07-10 2018-08-15 Hewlett-Packard Enterprise Development LP Hybridcloud-verwaltung
US20180150256A1 (en) * 2016-11-29 2018-05-31 Intel Corporation Technologies for data deduplication in disaggregated architectures
US10721275B2 (en) * 2017-01-23 2020-07-21 Fireeye, Inc. Automated enforcement of security policies in cloud and hybrid infrastructure environments
US10860390B2 (en) * 2017-06-28 2020-12-08 Intel Corporation Microservices architecture
US11321337B2 (en) * 2018-06-04 2022-05-03 Cisco Technology, Inc. Crowdsourcing data into a data lake
US10666497B2 (en) * 2018-06-22 2020-05-26 Intel Corporation Localized service resiliency
US20220050897A1 (en) * 2018-09-18 2022-02-17 Visa International Service Association Microservice adaptive security hardening
US20190253518A1 (en) * 2019-04-26 2019-08-15 Intel Corporation Technologies for providing resource health based node composition and management
US20210117242A1 (en) * 2020-10-03 2021-04-22 Intel Corporation Infrastructure processing unit

Also Published As

Publication number Publication date
CN116018795A (zh) 2023-04-25
FR3117641A1 (fr) 2022-06-17
US20210117242A1 (en) 2021-04-22
WO2022072096A1 (en) 2022-04-07
NL2029116A (en) 2022-06-02
US20210117249A1 (en) 2021-04-22
NL2029116B1 (en) 2022-06-14

Similar Documents

Publication Publication Date Title
NL2029116B1 (en) Infrastructure processing unit
US20220191648A1 (en) Digital twin framework for next generation networks
US11283635B2 (en) Dynamic sharing in secure memory environments using edge service sidecars
US20220116455A1 (en) Computational storage in a function-as-a-service architecture
DE102021207514A1 (de) Disaggregiertes berechnen für distribuierte vertrauliche rechenumgebung
DE102022104207A1 (de) Pooling von Netzwerkverarbeitungsressourcen
US20220121556A1 (en) Systems, methods, articles of manufacture, and apparatus for end-to-end hardware tracing in an edge network
DE102021207160A1 (de) Verfahren und einrichtung zur verwaltung der dienstgüte in bezug auf service-level-agreements in einer rechenvorrichtung
US20210011823A1 (en) Continuous testing, integration, and deployment management for edge computing
DE102021210882A1 (de) Erweitertes peer-to-peer (p2p) mit edge-vernetzung
DE102021133641A1 (de) Verteilung des flüssigkeitsstroms mit hilfe eines oder mehrerer neuronaler netzwerke
DE112021003869T5 (de) Verfahren und einrichtung zur performanzskalierung mit paralleler verarbeitung der gleitfensterverwaltung auf einer mehrkernarchitektur
DE112020007229T5 (de) Föderiertes mec-framework für kraftfahrzeugdienste
DE102022212395A1 (de) Ende-zu-ende-netzwerk-slicing (ens) vom ran- zum kernnetz für kommunikationen der nächsten generation (ng)
DE102021121267A1 (de) Verfahren, Systeme, Vorrichtungen und Erzeugnisse zur Verwaltung des Zugriffs auf dezentrale Data Lakes
CN116305136A (zh) 用于微服务体系结构的来源审核跟踪
US20230106581A1 (en) Confidential computing environment including devices connected to a network interface device
DE102021212974A1 (de) Automatische eskalation von vertrauensnachweisen
DE102022126611A1 (de) Service-mesh-auslagerung an netzwerkvorrichtungen
DE102022101324A1 (de) Statischer rechenzentrum-leistungsausgleich und konfiguration
DE102022128300A1 (de) Verfahren und einrichtungen zum implementieren einer edge-skalierbaren adaptiv granulierten überwachung und telemetrieverarbeitung für multi-qos-dienste
DE102023202297A1 (de) Wahrung der vertraulichkeit von mandanten in einer cloud-umgebung beim einsatz von sicherheitsdiensten
US20220114055A1 (en) Transparent dynamic reassembly of computing resource compositions
DE102023103633A1 (de) Zustandsüberwachung in sicheren rechenzentren
US20230342496A1 (en) Trust brokering and secure information container migration