-
HINTERGRUND
-
Bei den derzeitigen benutzerdefinierten Konfigurationstechniken wird in der Regel ausgewählt, welche Komponenten (z. B. Prozessor, Speicher, Eingabe-/Ausgabe-Schnittstellen, Speichergeräte) innerhalb eines physischen Gehäuses angeschlossen werden. Die Verbindung kann z. B. über einen PCI-konformen Bus (Peripheral Component Interconnect) erfolgen, an den die Komponenten angeschlossen werden können. PCI-Standards sind bei der PCI Special Interest Group (PCI-SIG) in Beaverton, Oregon, USA, erhältlich. Durch die Bereitstellung einer Standardschnittstelle können verschiedene Komponenten miteinander verbunden werden, um die gewünschte Systemkonfiguration zu erreichen. Diese Architekturen sind jedoch nicht optimal konfiguriert, was die effiziente Nutzung von Rechenfunktionen, die Ressourcennutzung und/oder die Fehlertoleranz angeht.
-
Figurenliste
-
Ausführungsformen der Erfindung sind beispielhaft und nicht einschränkend in den Figuren der beigefügten Zeichnungen dargestellt, in denen sich gleiche Bezugsziffern auf ähnliche Elemente beziehen.
- 1 ist ein Blockdiagramm einer Ausführungsform einer zusammensetzbaren Computerumgebung mit einer einzigen parallelen Verbindungsstruktur.
- 2 ist ein Blockdiagramm einer Ausführungsform einer zusammensetzbaren Computerumgebung mit gestapelten Verbindungsstrukturen.
- 3 ist eine logische Darstellung einer Ausführungsform einer Architektur, die flexible, konfigurierbare Systeme unter Verwendung paralleler Verbindungsstrukturen bereitstellen kann.
- 4 ist ein konzeptionelles Diagramm einer Ausführungsform eines Infrastruktur-Ressourcenpools, der zusammensetzbare Ressourcen bereitstellt, aus denen Ressourceninstanzen oder vollständige Geräte zusammengefügt und konfiguriert werden können, um logische Server zu erstellen, die wie herkömmliche Server arbeiten.
- 5 ist ein Blockdiagramm einer Ausführungsform einer vertrauenswürdigen zusammensetzbaren Computing-Architektur aus vertrauenswürdigen zusammensetzbaren Infrastrukturressourcen mit intelligenten Modulen, einfachen Modulen und parallelen Verbindungsgeweben, aus denen Servermodule ihre IO-Fähigkeiten erweitern oder logische Server erstellen können.
- 6 ist ein Blockdiagramm einer Ausführungsform eines Infrastruktur-Ressourcenpools, der zusammensetzbare Infrastrukturressourcen in einer gehärteten, sicheren Umgebung bereitstellt, in der logische Server-Ressourcenbindungen kryptografisch über die parallele Verbindungsstruktur verbunden sind.
- 7 ist ein Beispiel für einen Paketrahmen-Header einer parallelen Verbindungsstruktur, der mit der hier beschriebenen zusammensetzbaren Architektur für eine parallele PCIe-Verbindungsstruktur verwendet werden kann, die mit Standard-PCIe-Switches aufgebaut ist.
- 8 ist ein Flussdiagramm einer Ausführungsform einer Technik zum Konfigurieren einer Recheninfrastrukturressource in einer Umgebung, die zusammensetzbare Ressourcen bereitstellt.
- 9 ist ein Flussdiagramm einer Ausführungsform einer Technik zum Konfigurieren einer Rechenressource in einer Umgebung, die zusammensetzbare Ressourcen bereitstellt.
- 10 ist ein konzeptionelles Diagramm einer Ausführungsform eines Infrastruktur-Ressourcenpools, der zusammensetzbare Infrastrukturressourcen bereitstellt, die als eine Reihe logischer Server konfiguriert sind.
- 11 ist ein konzeptionelles Diagramm logischer Server, die so konfiguriert sind, dass sie Peer-to-Peer-Kommunikation über die parallelen Verbindungsnetze der zusammensetzbaren Architektur nutzen.
-
AUSFÜHRLICHE BESCHREIBUNG
-
In der folgenden Beschreibung sind zahlreiche spezifische Details aufgeführt. Ausführungsformen der Erfindung können jedoch auch ohne diese spezifischen Details ausgeführt werden. In anderen Fällen wurden bekannte Strukturen und Techniken nicht im Detail dargestellt, um das Verständnis dieser Beschreibung nicht zu beeinträchtigen.
-
Wie im Folgenden näher beschrieben, kann eine effiziente und konfigurierbare Computerumgebung, die als zusammensetzbare Infrastrukturarchitektur bezeichnet wird, bereitgestellt werden, die modular, erweiterbar und hoch verfügbar ist. Diese zusammensetzbare Infrastrukturarchitektur ist nicht durch Entfernungen eingeschränkt und nutzt parallele Verbindungsstrukturen, die sowohl parallele Verbindungen als auch eine erweiterte Fehlertoleranz bieten können.
-
In verschiedenen Ausführungsformen kann die hier beschriebene zusammensetzbare Architektur die Funktionalität bieten, einfache Komponenten logisch zu verbinden, z. B. ein Rechenmodul (z. B. Prozessor(en), Speicher), mit E/A-Modulen (z. B., Peripheral Component Interconnect Express oder „PCIe“, Grafikverarbeitungseinheiten oder „GPUs“, Netzwerkschnittstellenkarten oder „NICs“, Speichercontroller, Erweiterungsspeicher, Non-Volatile Memory Express oder „NVMe“) über eine Carrier-Switching-Fabric (z. B. PCIe, InfiniBand oder „IB“, Generation Z oder „GenZ“) zu verbinden, so dass die logisch gebundenen Komponenten (teilweise oder vollständig) als ein äquivalenter PC-Server (ein logischer Server) funktionieren.
-
Wie im Folgenden näher beschrieben, kann diese Funktionalität über eine einzige Schnittstelle bereitgestellt werden, z. B. eine Umgebungsanwendungsprogrammschnittstelle (API), die die Möglichkeit bietet, die Umgebungsfunktionalität (z. B. Zusammensetzung, Bindung, Durchsetzung von Softwarelizenzvereinbarungen (SLA)) über eine einzige Schnittstelle zu steuern und die Verwendung von Ressourcenadaptern (RAs) zu erleichtern, die Schnittstellen zu einzelnen Modulen innerhalb der Berechnungsumgebung bereitstellen. Somit kann die kompositionsfähige Umgebung funktionell als ein einziges konfigurierbares Gerät behandelt werden, das über eine einzige Schnittstelle zugänglich ist.
-
In einigen Ausführungsformen können mehrere parallele Verbindungsstrukturen verwendet werden, um eine einzige integrierte Struktur zu schaffen, die Ausfallsicherheit, Redundanz und/oder Parallelität über die der einzelnen parallelen Verbindungsstrukturen hinaus bieten kann. Die einzelnen physischen Verbindungen können von ihren eigenen Managern und Protokollen verwaltet werden und vollständig adressierbar sein, so dass jede RA von anderen RAs erreicht werden kann. Somit können die RAs als „multi-homed“ zu jeder der parallelen Interconnect Fabrics betrachtet werden, um eine Schnittstelle zu jeder Interconnect Fabric bereitzustellen. Auf diese Weise können die physischen Interconnect Fabrics von ihren eigenen Managern und Protokollen verwaltet werden, und die RAs können von jeder anderen RA in der Umgebung erreicht werden und bieten Hardware-Failover-Funktionalität. In einigen Ausführungsformen können einzelne physische Verbindungs-Manager zu Clustern zusammengefasst werden, um eine einzige Schnittstelle zur integrierten Struktur bereitzustellen.
-
Wie weiter unten näher beschrieben, können RAs miteinander kommunizieren und sich unter Verwendung des geeigneten Adressierungsschemas für die zugrunde liegende physische Struktur verbinden (z. B. kann Ethernet MAC-Adressen verwenden, PCIe kann Bus-Gerätefunktionen nutzen). Die einheitliche Verwaltungsstruktur (und die entsprechende Schnittstelle) kann verwendet werden, um mit verschiedenen RAs darüber zu kommunizieren, wie sie sich innerhalb der kompositionsfähigen Umgebung zusammenschließen sollen.
-
Diese Mechanismen und Strukturen ermöglichen es einem Systemadministrator (oder einer anderen Einheit), die gewünschte Funktionalität auf einer relativ hohen Ebene mithilfe der API zu beschreiben, und die zugrunde liegenden Verwaltungseinheiten und die unterstützende Hardware innerhalb der Umgebung können die gewünschte Funktionalität bereitstellen. Außerdem kann die Konfiguration der Umgebung über die API aktualisiert/geändert werden, wenn sich die Bedingungen oder Anforderungen ändern.
-
In verschiedenen Ausführungsformen kann die hier beschriebene zusammensetzbare Architektur die Funktionalität bieten, einfache Komponenten logisch zu verbinden, z. B. ein Rechenmodul (z. B. Prozessor(en), Speicher), mit IO-Modulen (z. B., Peripheral Component Interconnect Express oder „PCIe“, Grafikverarbeitungseinheiten oder „GPUs“, Netzwerkschnittstellenkarten oder „NICs“, Speichercontroller, Erweiterungsspeicher, Non-Volatile Memory Express oder „NVMe“) über eine Carrier-Switching-Fabric (z. B. PCIe, InfiniBand oder „IB“, Generation Z oder „GenZ“), so dass die logisch gebundenen Komponenten (teilweise oder vollständig) beispielsweise als gleichwertiger PC-Server (ein logischer Server) funktionieren.
-
In verschiedenen hier beschriebenen Ausführungsformen kann eine parallele Verbindungsstruktur, die auf Peripheral Component Interconnect (PCI)-kompatiblen Schnittstellen basiert, konfigurierbare, fehlertolerante Verbindungen zwischen mehreren Ressourcen und Rechnerknoten bereitstellen. Nachfolgende PCI-Standards können ebenfalls verwendet werden. So können zum Beispiel verwandte Standards wie Compute Express Link (CXL) mit den hier beschriebenen Techniken und Architekturen genutzt werden. CXL ist ein offener Standard für Hochgeschwindigkeitsverbindungen von Prozessor zu Gerät und Prozessor zu Speicher, der vom Compute Express Link Consortium in Beaverton, Oregon, bereitgestellt wird. In ähnlicher Weise können auch Gen-Z-Verbindungsstandards unterstützt werden. Die Gen-Z-Standards werden vom Gen-Z-Konsortium bereitgestellt.
-
In den beschriebenen Ausführungsformen kann die verbesserte Funktionalität durch den Einsatz eines oder mehrerer Ressourcenadapter (RAs - z. B. ein anwendungsspezifischer integrierter Schaltkreis oder ein „ASIC“-Modul) erreicht werden. In einem Ausführungsbeispiel können RAs in einem von drei Modi konfiguriert werden: 1) Compute-RA (C-RA); 2) Target-RA (T-RA); und 3) Stacking-RA (S-RA). Compute-RAs (z. B. Adapter für Rechenressourcen) oder Target-RAs (z. B. Target-I/O-Ressourcen-Adapter) können Hardware-Protokollverbindungen bereitstellen, die eine Brücke zwischen der lokalen Modulverbindung (z. B. PCIe, CXL) und der Carrier Switching Fabric (z. B. PCIe, IB, GenZ) bilden.
-
In den verschiedenen hier beschriebenen Ausführungsformen bietet jede RA eine einzige Steuerungsoberfläche (d. h. eine Programmierschnittstelle), die die Fähigkeit der Carrier-Switching-Fabric, z. B. unter Verwendung von PCIe-Switches, zu einer hardware-resistenten (z. B. Hardware-Failover, d. h. es wird keine Verwaltungssoftware auf höherer Ebene benötigt, um Failover zu orchestrieren) Fabric auf mehreren isolierten und unabhängigen Pfaden erweitert, um eine parallele Verbindungs-Fabric bereitzustellen. Darüber hinaus können RAs die Fähigkeit der Carrier-Switching-Fabric verbessern, indem sie eine durchgängige Dienstgüte (QoS) bereitstellen, z. B. durch kryptografische Isolierungen zwischen Bindungen und logisch gebundenen Ressourcen, z. B. logischen Servern, die mit einem externen kryptografischen Schlüsselverwaltungsdienst verbunden werden können.
-
In anderen Ausführungsformen können die Verbindungen auch auf standardmäßige intelligente Infrastrukturressourcen wie herkömmliche PC-Server oder Speicher-Arrays ausgedehnt werden, die eine flexible E/A-Erweiterung oder Peer-to-Peer-Kommunikation über diese parallele Verbindungsstruktur ermöglichen. So kann zum Beispiel jede isolierte Fabric unabhängig von ihren eigenen Fabric-Managern verwaltet werden, aber als Cluster zusammenarbeiten, um eine einheitliche Schnittstelle und Erfahrung zu bieten.
-
Infolge der Fabric-Unabhängigkeit müssen der Fabric-Typ oder die Fabric-Latenz nicht identisch sein. Folglich müssen bei parallelen Fabrics nur die Fabric-Knoten adressierbar sein (z. B. für die RAs), um auf der Fabric erreichbar zu sein. In einigen Ausführungsformen kann eine Stacking-RA (S-RA) als Brücke zwischen den beiden parallelen Fabric-Domänen verwendet werden, wenn parallele Interconnect-Fabrics wachsen oder erweitert werden, um Erweiterungsmöglichkeiten zu bieten. Das heißt, dass beispielsweise ein Fabric-Zweig der Parallel-Interconnect-Fabric-A-Domäne mit einem Fabric-Zweig in der Parallel-Interconnect-Fabric-B-Domäne unter Verwendung eines S-RA verbunden wird, um die Adressierungsauflösung und Überlegungen zur Dienstgüte (QoS) innerhalb der angestrebten Parallel-Fabric-Domäne zu lösen.
-
In einigen Konfigurationen können alle parallelen Fabric-Domänen mit der gleichen Fabric-Knoten-Adressierbarkeit für die RA-Domäne als Infrastruktur-Ressourcenpool bezeichnet werden, der von der Anzahl der parallelen Fabrics unabhängig sein kann. Durch die Verwendung programmatischer Bindungen können alle Ressourcen in Echtzeit und auf Abruf verwaltet werden, was moderne intelligente Anwendungen unterstützt, die die Bindung neuer Ressourcen (Rechenressourcen) oder die Erstellung neuer Rechenressourcen und logischer Serverknoten erfordern. Darüber hinaus können ungenutzte Ressourcen von intelligenten Anwendungen in den freien Pool zurückgegeben werden, um neu zugewiesen zu werden.
-
Die beschriebene Modularität kann z. B. dadurch erreicht werden, dass Ein-/Ausgabekomponenten nicht auf das von ihnen unterstützte physische Gerät beschränkt werden müssen, dass Rechenknoten, Ressourcen, Schalter und Router dynamisch zur Architektur hinzugefügt werden können und dass die verschiedenen Komponenten über beliebige Entfernungen miteinander verbunden werden können (z. B. von Chip zu Chip, von Platine zu Platine, über Kupferkabel, über Glasfaserkabel, über das Internet). In verschiedenen Ausführungsformen kann eine anwendungstransparente alternative Pfadpartitionierung für Unabhängigkeit und Fehlerisolierung sorgen. Außerdem kann ein einziger Management-Footprint bereitgestellt werden.
-
Konzeptionell kann die Architektur als PCI-basierte mittlere Verwaltung von E/A-Geräten betrachtet werden, einschließlich beispielsweise NVMe-Speichergeräten und/oder PCIe-Speichergeräten. Darüber hinaus kann die hier beschriebene Architektur Fehlertoleranz für nicht fehlertolerante Geräte bieten und Redundanz für PCIe-basierte Systeme (oder andere Verbindungsarchitekturen, die keine native Redundanz bieten) bereitstellen. Das heißt, die hier beschriebene Architektur bietet E/A-Resilienz in Systemen, die von Haus aus keine Fehlertoleranz und E/A-Resilienz unterstützen.
-
PCIe basiert beispielsweise auf einer Punkt-zu-Punkt-Topologie mit separaten seriellen Links, die jedes Gerät mit den Hosts verbinden. Die PCIe-Standards bieten jedoch keine native Unterstützung für Fehlertoleranz bei Ausfall einer Verbindung. Darüber hinaus führt die Bereitstellung von Fehlertoleranz durch die Bereitstellung redundanter Links zu einer ineffizienten Nutzung von Ressourcen. Mit den hier beschriebenen Techniken und Mechanismen können daher ausgereifte, weit verbreitete Technologien wie PCIe genutzt werden, um verbesserte, effizientere und fortschrittlichere Architekturen bereitzustellen.
-
In einigen Ausführungsformen leitet eine erste Switch-Fabric Pakete zwischen Rechenressourcen und E/A-Ressourcen weiter. Die Rechenressourcen verfügen jeweils über einen Rechenressourcenadapter (C-RA), um einen Header eines Pakets mit einem Zielbezeichner mit entsprechendem ersten Rahmenbezeichner und einem Quellenbezeichner mit entsprechendem zweiten Rahmenbezeichner zu konfigurieren. Die E/A-Ressourcen verfügen jeweils über einen Zielressourcenadapter (T-RA), um das Paket auf der Grundlage des Headers zu verwalten. Eine zweite Switch-Fabric leitet ebenfalls Pakete zwischen den Rechenressourcen und den E/A-Ressourcen weiter.
-
Ein oder mehrere Fabric-Manager können mit der ersten Switch-Fabric und der zweiten Switch-Fabric gekoppelt werden, um Pakete parallel über die erste Switch-Fabric und die zweite Switch-Fabric zu leiten, wenn die Fehler bei der Paketübertragung unter einer vorgewählten Fehlerrate liegen, und um die Weiterleitung von Paketen über die erste Switch-Fabric und die zweite Switch-Fabric dynamisch neu zu konfigurieren, wenn die Fehler bei der Paketübertragung die vorgewählte Fehlerrate überschreiten. Der/die Fabric-Manager kann/können auch verwendet werden, um eine ausgefeiltere Zuweisung verfügbarer Ressourcen durch die Unterstützung und Verwaltung einer Composable-Computing-Umgebung zu ermöglichen.
-
1 ist ein Blockdiagramm einer Ausführungsform einer zusammensetzbaren Computerumgebung mit einer einzigen parallelen Verbindungsstruktur. Das Beispiel in 1 konfiguriert einen oder mehrere logische Server aus Ressourcen der Composable-Computing-Umgebung; dies ist jedoch nur ein Beispiel für die Arten von Konfigurationen, die unterstützt werden können.
-
Im Beispiel von 1 kann der zusammensetzbare Ressourcenmanager 120 (bei dem es sich um einen Cluster von zusammensetzbaren Ressourcenmanagem handeln kann) eine Verwaltungskonnektivität für die Steuerung der parallelen Verbindungsstruktur(en) 110 sowie für das/die Rechenmodul(e) 150 und das/die Zielmodul(e) 160 bereitstellen. In einigen Implementierungen kann der zusammensetzbare Ressourcenmanager 120 auch über Verwaltungskonnektivität (z. B. 154, 164) zu den Ressourcenadaptern (RAs) in den Rechen- und Zielmodulen (z. B. 152, 162) verfügen, aber im Beispiel von 1 werden die RAs 152 und 162 über die parallele Verbindungsstruktur (PIF) 110 über APIs von Strukturverwaltungsmodulen (z. B. 130, 135, 138) gesteuert. Die Parallel Interconnect Fabric 110 kann eine beliebige Anzahl von Fabric-Strukturen (z. B. 112, 114, 116) mit Fabric-Management-Modulen (z. B. 130, 135, 138) umfassen.
-
Im Beispiel von 1 wird die Benutzerschnittstelle durch API/GUI/Script 125 zum Composable Resource Manager dargestellt. In einer Ausführungsform kann die Schnittstelle zwischen Composable Resource Manager und API/GUI/Skript den angeschlossenen Rechen- und Zielmodulen (z. B. 150, 160) Informationen, den Status und die Kontrolle über die gesamte Topologie der parallelen Verbindungsstruktur 110 liefern. In einer Ausführungsform enthält die Composable Resource Manager-API 125 Informationen, den Gesundheitszustand und die Steuerung des PIF 110 und kann Informationen, den Gesundheitszustand und die Steuerung jeder an das PIF 110 angeschlossenen RA enthalten, wie dies im Beispiel von 1 der Fall ist.
-
In einer Ausführungsform verwaltet der zusammensetzbare Ressourcenmanager 120 die RA-Module (z. B. 152, 162) direkt über eine oder mehrere APIs, die für die Informationen, den Gesundheitszustand und die Steuerung der verschiedenen RAs spezifisch sind. In einer Ausführungsform ist der Composable Resource Manager 120 auch in der Lage, jede RA entweder mit einem Rechenmodul (z. B. 150) oder einem Zielmodul (z. B. 160) zu verknüpfen. Im Beispiel von 1 verfügt der Composable Resource Manager 120 über eine Verwaltungsverbindung zum Rechenmodul 150 und zum Zielmodul 160, und die API dieser Verbindungen liefert Informationen über die Modulidentität, den Bestand des Moduls einschließlich der Identität der Fabric RA und andere Ressourcen innerhalb des Moduls.
-
Ein Beispiel für eine Verwaltungseinheit, die Informationen, Zustandsinformationen und Kontrolle im Rechenmodul 150 oder im Zielmodul 160 bereitstellen kann, ist ein Baseboard Management Controller (BMC). In einer Ausführungsform kann der Composable Resource Manager 120 die parallele(n) Verbindungsstruktur(en) 110 über Managementverbindungen (z. B. 122, 126, 128) zu den Fabric Managern (z. B. 130, 135, 138) ermitteln, die beispielsweise die vollständige Verbindungstopologie zu allen RAs enthalten.
-
Der Composable Resource Manager erkennt die Verbindung jedes Ressourcenadapters mit der Parallel Interconnect Fabric und dem hostenden Compute- oder Target-Modul entweder über den/die Fabric Manager oder über die Managementverbindung zu jeder Compute- oder Target-Modul-Management-API. In einer Ausführungsform kann der Composable Resource Manager 120 auch Ressourcen innerhalb jedes Rechen- oder Zielmoduls ermitteln, um ein vollständiges Inventar der Ressourcen und der parallelen Interconnect-Fabric-Topologie zu erstellen, und kann diese Informationen in der Datenbank 140, im Speicher oder einer Kombination davon speichern.
-
In einer Ausführungsform kann die Benutzerschnittstelle 125 des Managers für kompostierbare Ressourcen 120 Informationen und den Gesundheitszustand der gesamten Topologie abfragen oder eine Änderung der Ressource(n) für ein beliebiges Rechenmodul anfordern. Der Composable Resource Manager 120 kann auf eine angeforderte Hinzufügung oder Subtraktion von Ressourcen reagieren, indem er Ressourcen identifiziert, die auf der parallelen Verbindungsstruktur neu konfiguriert werden können, um die Anforderung zu erfüllen und die Neukonfiguration abzuschließen, oder indem er antwortet, dass die Anforderung nicht erfüllt werden kann oder dass während des Vorgangs ein Fehler aufgetreten ist.
-
In dem Beispiel von 1 können ein oder mehrere logische Server 170 wie oben beschrieben konfiguriert werden. Das Beispiel für die Konfiguration des logischen Servers in 1 ist eine PCIe-basierte Konfiguration; wie oben beschrieben, können jedoch auch verschiedene andere Protokolle unterstützt werden. Jeder logische Server kann eine oder mehrere Verarbeitungsressourcen 172 (von einem oder mehreren Prozessormodulen 150), einen logischen PCIe-Switch 175 (von der parallelen Verbindungsstruktur 110) und eine beliebige Anzahl von logischen PCIe-Geräten 180, 184, 188 (von einem oder mehreren Zielmodulen 160) enthalten.
-
2 ist ein Blockdiagramm einer Ausführungsform einer Composable-Computing-Umgebung mit gestapelten Interconnect-Fabrics. Das Beispiel in 2 konfiguriert einen oder mehrere logische Server aus Ressourcen der Composable-Computing-Umgebung; dies ist jedoch nur ein Beispiel für die Arten von Konfigurationen, die unterstützt werden können.
-
Die Composable-Computing-Architektur von 2 umfasst drei Arten von RAs (die im Folgenden ausführlicher beschrieben werden): Compute Resource Adapter (C-RA), Target Resource Adapter (T-RA), Stacking Resource Adapter (S-RA). Zusätzlich zu den verschiedenen Arten von Ressourcenadaptern können ein oder mehrere Fabric-Module und entsprechende Fabric-Manager für eine zusammensetzbare Zusammenschaltbarkeit sorgen.
-
Auf einer hohen Ebene kann die Architektur von 2 in einer Ausführungsform eine Ende-zu-Ende-Kredit-basierte Flusssteuerung verwenden (z. B. zwischen einer oder mehreren Rechenressourcen und einer oder mehreren Zielressourcen). Das Ausführungsbeispiel in 2 sieht drei Beispieltypen von parallelen Verbindungsstrukturen vor: 1) parallele Verbindungsstruktur 1 (260), die Verbindungen zwischen einer oder mehreren Rechenressourcen und einer anderen parallelen Verbindungsstruktur herstellt; 2) parallele Verbindungsstruktur 2 (262), die Verbindungen zwischen anderen parallelen Verbindungsstrukturen herstellt; und 3) parallele Verbindungsstruktur 3, die Verbindungen zwischen einer oder mehreren Zielressourcen und einer anderen parallelen Verbindungsstruktur herstellt. Es kann eine beliebige Anzahl dieser Arten von parallelen Verbindungsstrukturen verwendet werden. Die in 2 dargestellte gestapelte Architektur bietet mehr Funktionen und mehr Flexibilität als die nicht gestapelte Architektur von 1.
-
Verschiedene Entfernungen können durch die Bereitstellung von Verbindungen auf Chip-zu-Chip-Ebene, Board-zu-Board-Ebene, Kupfer- oder Glasfaserkabeln oder einer beliebigen Kombination davon unterstützt werden. So kann ein dynamisches Hinzufügen und Entfernen von Endknoten, Switches und/oder Routern unterstützt werden.
-
In verschiedenen Ausführungsformen können Stapelverbindungen (z. B. 202, 204, 206, 208) jede Art von Verbindungsleitung sein, z. B. Kupfer, Glasfaser, die zwischen S-RAs (z. B. 253, 254, 255, 256, 265, 266) verwendet werden kann. Das heißt, die Stacking-Verbindungen können eine andere Art von Verbindung sein als die Verbindungen der Verbindungsstruktur.
-
Im Beispiel von 2 kann der Manager für zusammensetzbare Ressourcen 215 ein Cluster von Managern für zusammensetzbare Ressourcen sein und über eine Verwaltungskonnektivität zur Steuerung der parallelen Verbindungsstrukturen 260, 262 und 264 sowie der dargestellten Rechenmodule 250 und intelligenten Zielmodule 260 (z. B. 280, 281, 282, 283, 284, 285, 288, 289) verfügen. In einigen Implementierungen kann der Composable Resource Manager 215 auch über eine Verwaltungskonnektivität zu den RAs in den Rechenmodulen 250 (z. B. 252) und den Zielmodulen 260 (z. B. 262) verfügen, aber in diesem Beispiel werden die RAs über parallele Interconnect Fabrics 260, 262, 264 über APIs von Fabric-Management-Modulen gesteuert.
-
In einer Ausführungsform kann die Benutzerschnittstelle 210 eine API/GUI/Skript-Schnittstelle zum Composable Resource Manager 215 sein. In einer Ausführungsform liefert die API/GUI/Skript-Schnittstelle des Managers für zusammensetzbare Ressourcen allen angeschlossenen Rechenmodulen 250 und Zielmodulen 260 Informationen, den Status und die Steuerung der Topologie einer beliebigen Anzahl von parallelen Verbindungsstrukturen (z. B. 260, 262, 264). In einer Ausführungsform kann die API des Managers für zusammensetzbare Ressourcen für den/die Manager der parallelen Verbindungsstruktur Informationen, den Gesundheitszustand und die Steuerung dieser Struktur sowie Informationen, den Gesundheitszustand und die Steuerung jeder mit dieser Struktur verbundenen RA enthalten.
-
In einer Ausführungsform kann der Composable Resource Manager 215 RA-Module (z. B. 250, 260) direkt verwalten, wobei eine für die Informationen, den Gesundheitszustand und die Steuerung der verschiedenen RAs spezifische API verwendet werden kann. In einer Ausführungsform kann der Composable Resource Manager 215 dazu dienen, jede RA entweder einem Rechenmodul oder einem Zielmodul zuzuordnen.
-
In diesem Beispiel kann der Composable Resource Manager 215 eine Verwaltungsverbindung zu den Rechenmodulen 250 und den Zielmodulen 260 haben, und die API dieser Verbindungen kann genutzt werden, um beispielsweise Informationen über die Modulidentität, den Bestand des Moduls einschließlich der Identität der Fabric RA und andere Ressourcen innerhalb des Moduls bereitzustellen. Ein Beispiel für eine Verwaltungseinheit, die Informationen, den Status und die Steuerung eines Rechenmoduls oder Zielmoduls bereitstellen kann, ist ein Baseboard Management Controller (BMC).
-
In einer Ausführungsform kann der Composable Resource Manager 215 so funktionieren, dass er die parallelen Interconnect Fabrics (z. B. 260, 262, 264) über Managementverbindungen (z. B. 280 bis 285) mit den Fabric Managern 290, 292, 294, 295, 297, 298 einschließlich der vollständigen Verbindungstopologie zu allen RAs ermittelt. In einer Ausführungsform erkennt der Composable Resource Manager 215 die Zuordnung jeder RA zu den parallelen Interconnect Fabrics 260, 262, 264 und den Host-Rechenmodulen oder Zielmodulen entweder über den/die Fabric Manager oder über die Verwaltungsverbindung zu jeder Compute Module oder Target Module Management API.
-
In einer Ausführungsform ermittelt der Composable Resource Manager 215 auch die Ressourcen in jedem Rechenmodul oder Zielmodul, um ein vollständiges Inventar der Ressourcen und der Topologie der parallelen Verbindungsstruktur zu erstellen, und kann diese Informationen in der Datenbank 220, im Speicher oder einer Kombination davon speichern. In einer Ausführungsform kann die Benutzerschnittstelle 210 zum Composable Resource Manager 215 beispielsweise Informationen und den Status der gesamten Topologie abfragen oder eine Änderung der Ressource(n) für ein beliebiges Compute-Modul anfordern. In einer Ausführungsform kann der Composable Resource Manager 215 auf eine angeforderte Hinzufügung oder Subtraktion von Ressourcen reagieren, indem er Ressourcen identifiziert, die auf den parallelen Verbindungsstrukturen 260, 262, 264 neu konfiguriert werden können, um die Anforderung zu erfüllen und die Neukonfiguration erfolgreich abzuschließen, oder indem er antwortet, dass die Anforderung nicht erfüllt werden kann oder dass während des Vorgangs ein Fehler aufgetreten ist.
-
In verschiedenen Ausführungsformen ist jede RA (d. h. C-RA oder T-RA) ihrer eigenen Adressdomäne der Verbindungsstruktur zugeordnet. Jede S-RA überbrückt Transaktionen zwischen den Adressbereichen der Verbindungsstruktur und ist daher Mitglied von zwei Adressbereichen der Verbindungsstruktur.
-
Mehrere Ressourcenmodule können über Verbindungsnetze miteinander verbunden werden. In verschiedenen Ausführungsformen können Ressourcenmodule mehrere RAs haben, die den Rechenmodulen verschiedene Arten von Ressourcen zur Verfügung stellen können. Das Beispiel in 2 kann beispielsweise intelligente E/A-Module mit Multifunktionsgeräten, intelligente E/A-Module mit Multi-Host-Geräten, E/A-Module mit Schnittstellen zur Aufnahme steckbarer Ressourcen oder Speichermodule umfassen. In anderen Ausführungsformen können auch andere Arten von Ressourcen und/oder eine andere Anzahl von Ressourcen unterstützt werden.
-
Die Beispielarchitektur aus 2 kann mehrere Vorteile gegenüber den derzeitigen Architekturstrategien bieten. Auf einer hohen Ebene nutzen die hier beschriebenen Architekturen eine zusammensetzbare Struktur, die eine Aufteilung der Plattform ermöglicht, um modulare Rechenressourcen und modulare E/A-Ressourcen zu erleichtern, die dynamisch konfiguriert werden können, um verschiedene Anforderungen zu erfüllen. Auf diese Weise kann eine E/A-Skalierung vorgenommen werden, um die sich ändernden Anforderungen an die Rechenressourcen zu erfüllen. Darüber hinaus kann die E/A-Nutzung effizienter sein, da die E/A-Ressourcen zwischen den Rechenressourcen sequentiell oder gleichzeitig geteilt werden können. In einigen Ausführungsformen sind Peer-to-Peer-Verbindungen zwischen Ressourcenmodulen möglich, die eine effizientere Nutzung von Rechenknotenressourcen ermöglichen.
-
In Beispielausführungen können E/A-Module ein oder mehrere Dual-Port-NVMe-Geräte enthalten, die mit zwei RAs gekoppelt werden können. So kann die Dual-Port-Funktionalität der NVMe-Geräte innerhalb der Composable-Computing-Architekturen genutzt werden. Verschiedene Ausführungsformen und Konfigurationen, die NVMe-Geräte verwenden, werden im Folgenden ausführlicher beschrieben.
-
In verschiedenen Ausführungsformen können die Fabric-Manager den Verkehrsfluss durch die Interconnection Fabrics so steuern, dass bei ausreichender Kapazität möglichst parallele Pfade genutzt werden, und den Verkehr mit geringerer Parallelität umleiten, wenn eine oder mehrere Verbindungen nicht verfügbar sind. In einigen Ausführungsformen wird die von den Fabric-Managern bereitgestellte Funktionalität durch die Verkapselung und zusätzliche Informationen unterstützt, die von den verschiedenen Ressourcenadaptern bereitgestellt werden. In dem Ausführungsbeispiel umfasst jeder Rahmentyp ein oder mehrere Verbindungs-Fabrics mit entsprechenden Fabric-Managern.
-
Die hier beschriebene Architektur kann ein Hardware-Failover für PCIe-Karten und NVMe-Laufwerke über die Verbindungsstruktur bieten. Außerdem kann die Architektur QoS-Steuerungen (Quality of Service) für die Fabric-Bandbreite und den Durchsatz bereitstellen. Die Beispielarchitektur definiert QoS als eine „Verbrauchseinheit“ für eine gemeinsam genutzte Ressource, die entweder gleichzeitig (simultan) oder sequentiell (einzeln) als Teil eines logischen Servers genutzt wird. Für die Verbindungsstruktur erfolgt die gemeinsame Nutzung gleichzeitig, wobei die Verbrauchseinheit auf der Verwendung von Guthaben für die Ende-zu-Ende-Flusskontrolle der Verbindungsstruktur basiert. In einer Ausführungsform wird durch die Verwendung von Ende-zu-Ende-Flusskontrollguthaben jede RA daran gehindert, neue Transaktionen oder Netzpakete in die Verbindungsstruktur einzuspeisen, bis verfügbare Guthaben für ausstehende Transaktionen oder Netzpakete, die zuvor in das Netz eingespeist wurden, angesammelt wurden (bestätigte Pakete).
-
In einer Ausführungsform umfasst die QoS-„Verbrauchseinheit“ für T-RAs auch das Ziel-IO-Ressourcengerät, entweder als sequentielle Figur eines vollständigen Ziel-IO-Geräts (z. B. PCIe-Gerät (alle PF-physikalischen Funktionen der PCIe-Geräte)), in einem PCIe-Adaptergerät, in einem PCIe-GPU-Gerät oder in einem PCIe-NVMe-Gerät. Zusätzlich zur sequentiellen Zuordnung des Zielgeräts kann der T-RA auch Ziel-E/A-Ressourcen gleichzeitig zuordnen, d. h. Fabric-Bindungen in einem Teil der E/A-Ressource/des Geräts (z. B. eine PCIe PF-physische Funktion in einem PCIe-Multifunktionsgerät oder eine PCIe PF-virtuelle Funktion in einem PCIe-Gerät, das viele VFs innerhalb seiner PF(s) unterstützt).
-
In einigen Ausführungsformen ist das E/A-Ziel für alle T-RAs entweder an eine C-RA gebunden, die einen logischen Server erstellt, oder an eine andere T-RA für Peer-to-Peer-Transaktionen, wenn dieselben Zielressourcen auch an denselben logischen C-RA-Server gebunden sind. In einer Ausführungsform kann ein logischer Server, der einen Hypervisor-Software-Stack beherbergt, einfach die Prozessor-E/A-Speicher-Verwaltungseinheit (IOMMU) dem C-RA zuordnen, um die T-RA-Bindungen des C-RA so zu gruppieren, dass sie zwischen den VM-Instanzen innerhalb desselben logischen Servers hardwareisoliert sind. Darüber hinaus kann jede RA-QoS auf der Grundlage des logischen Servertyps, der Klasse und der Unterstützung von IO-Zielressourcenbindungen für Peer-to-Peer-Transaktionen zugewiesen werden, einschließlich Transaktionen (Netzwerkpakete), die durch S-RA-Stapelknoten fließen. Außerdem kann die Architektur eine bescheinigungsfähige Infrastruktur für verbesserte Sicherheit bieten.
-
In verschiedenen Ausführungsformen bieten RAs eine physische Schnittstelle zwischen einer Ressource (z. B. Rechenleistung, Speichermodul, NVMe-Gerät) und einer PCIe-basierten Verbindungsstruktur. Neben der Bereitstellung von Verkapselungsdiensten (und möglicherweise anderen Datenformatierungsdiensten) können die RAs eine Zustandsmaschine enthalten, die Flusssteuerungsfunktionen und Failover-Funktionen durch weitere Verkapselung des PCI-basierten Datenverkehrs unterstützt. In ähnlicher Weise bieten Rechenressourcenadapter (C-RAs) RA-Funktionen für Rechenressourcen wie z. B. einen Prozessorkern.
-
In einigen Ausführungsformen können mehrere parallele Verbindungs-Fabrics bereitgestellt werden, die parallele Verbindungs-Fabrics bereitstellen können, wenn sie voll funktionsfähig sind, und die Ausfallsicherheit bieten, wenn ein Teil der Verbindungs-Fabrics nicht funktionsfähig ist. Das heißt, wenn sie voll funktionsfähig sind, können mehrere parallele Pfade zwischen Rechenmodulen und Ressourcen bereitgestellt werden, aber wenn ein Teil eines der Fabrics ausfällt, kann die Gesamtverbindungskonfiguration dynamisch neu angeordnet werden, um den Ausfall zu kompensieren, ohne eine primäre Backup-Funktionalität zu verwenden.
-
3 ist eine logische Darstellung einer Ausführungsform einer Architektur, die flexible, konfigurierbare Systeme unter Verwendung paralleler Verbindungsstrukturen bereitstellen kann. Das Beispiel in 3 umfasst eine geringe Anzahl von Komponenten; es können jedoch auch komplexere Systeme mit einer beliebigen Anzahl von Komponenten unterstützt werden. Das Beispiel in 3 kann ein PCI-basiertes System sein, in dem z. B. PCIe-Komponenten verwendet werden.
-
Im Beispiel von 3 umfasst der Knoten 312 Eingabe/Ausgabe (E/A)-Zielressourcengeräte (z. B. 320, 321) und Rechenressourcenknoten (z. B. 323, 324, 325), die mit dem Schalter 322 verbunden sind. E/A-Geräte können beispielsweise Speichergeräte, Speichersysteme oder Benutzerschnittstellen sein, und Rechenknoten können ein oder mehrere Prozessoren (oder Prozessorkerne) sein, die Verarbeitungsfunktionen bereitstellen. Der Schalter 322 dient zur Verbindung der E/A-Geräte 320 und 321 sowie der Rechengeräte 323, 324 und 325. In einigen Ausführungsformen können diese Komponenten gemeinsam als Knoten 312 angeordnet sein; in anderen Ausführungsformen können diese Komponenten jedoch auch geografisch verteilt sein.
-
Knoten 314 ist in ähnlicher Weise mit einem Schalter 335 konfiguriert, der E/A-Geräte (z. B. 330, 331, 332) und Rechengeräte (z. B. 333, 334) miteinander verbindet. Knoten 318 ist ein E/A-Knoten mit mehreren E/A-Geräten 360, 361, 362, 363, 364, die über einen Schalter 365 miteinander verbunden sind. Knoten 316 ist ein Steuerknoten, der einen Controller 352 und Speichermedien 353 umfasst, die zur Steuerung der Architektur von 3 dienen können. Die Schalter 322, 335 und 365 von verschiedenen Knoten können eine Verbindung herstellen und darüber hinaus durch mehrere parallele Verbindungsnetze (z. B. 342, 344) miteinander verbunden werden. In verschiedenen Ausführungsformen handelt es sich bei den Schaltern 322, 335 und 365 und den Verbindungsgeweben 342 und 344 um PCIe-basierte Verbindungen, wie nachstehend ausführlicher beschrieben. In alternativen Ausführungsformen können auch CXL- oder Gen-Z-basierte Verbindungen verwendet werden.
-
Im Normalbetrieb können die Verbindungsstrukturen 342 und 344 parallele Pfade zwischen den verschiedenen Knoten bereitstellen, um eine maximale verfügbare Bandbreite zu gewährleisten. Bei einem Ausfall einiger oder aller Verbindungsstrukturen kann die Gesamtverbindung zwischen den Knoten neu konfiguriert werden, um den Ausfall auszugleichen. Das heißt, die mehreren parallelen Verbindungs-Fabrics sind nicht als primäre Fabric und als Backup-/Standby-Fabric konfiguriert, sondern werden unter der Kontrolle eines oder mehrerer Fabric-Manager so gesteuert und konfiguriert, dass sie eine optimale Verbindungsbandbreite bieten. Diese Funktionalität wird im Folgenden ausführlicher beschrieben.
-
Die in 3 dargestellte modulare und zusammensetzbare Architektur kann insofern Modularität bieten, als E/A-Ressourcen nicht auf ein bestimmtes physisches System beschränkt sein müssen. Darüber hinaus kann eine Konsolidierung von z. B. Speicher, Clusterverkehr und/oder E/A-Geräten vorgesehen werden. Die beispielhafte modulare und zusammensetzbare Architektur bietet auch eine hohe Verfügbarkeit, da sie eine anwendungstransparente alternative Pfadführung, eine Partitionierung zur Unabhängigkeit, eine Fehlerisolierung und einen einzigen Verwaltungs-Footprint ermöglicht.
-
4 ist ein konzeptionelles Diagramm einer Ausführungsform eines Infrastruktur-Ressourcenpools, der zusammensetzbare Ressourcen bereitstellt, aus denen Ressourceninstanzen oder vollständige Geräte zusammengefügt und konfiguriert werden können, um logische Server zu erstellen, die wie herkömmliche Server arbeiten. 4 zeigt einen beispielhaften Anwendungsfall für die Zuordnung von physischen und virtuellen Funktionen, die von Rechenmodulen und Zielmodulen bereitgestellt werden, um eine logische Serverarchitektur zu erreichen. Diese Figur zeigt sowohl die physische Infrastruktur mit parallelen Fabrics als auch die logische Infrastruktur, bei der die parallelen Fabrics nicht sichtbar sind und nur die zugeordneten Ressourcen für einen Server sichtbar sind.
-
Der Infrastruktur-Ressourcenpool 400 umfasst die verschiedenen physischen Infrastrukturmodule, wie in 2 beschrieben. Im Ausführungsbeispiel von 4 gehören dazu Rechenmodule 410 mit jeweils einem oder mehreren Rechenkernen 412 und entsprechenden C-RAs 414. Die Rechenkerne 412 können z. B. über CXL- oder PCIe-Protokolle mit den C-RAs 414 verbunden werden. Bei den Rechenkernen 412 kann es sich um jede Art von Verarbeitungsressource handeln, z. B. eine zentrale Verarbeitungseinheit (CPU), eine Grafikverarbeitungseinheit (GPU) usw.
-
Der Infrastruktur-Ressourcenpool 400 umfasst außerdem Zielmodule 430, die jeweils eine oder mehrere Ziel/IO-Ressourcen 434 haben, die eine physikalische Funktion (PF) und entsprechende T-RAs 432 bereitstellen. Die Ressourcen 434 können z. B. über CXL- oder PCIe-Protokolle mit den T-RAs 414 verbunden werden. Bei den Rechenkernen 412 kann es sich um jede Art von Ressource handeln, die zur Unterstützung der Rechenkerne 412 verwendet werden kann, z. B. Speichermodule, intelligente E/A-Module usw.
-
Die Interconnection Fabrics 421 und 425 mit den zugehörigen Fabric Managern 420 bzw. 426 können konfigurierbare Verbindungen zwischen C-RAs 414 und T-RAs 432 bereitstellen, die Verbindungen zwischen den Rechenmodulen 410 und den Zielmodulen 430 ermöglichen. In einigen Ausführungsformen handelt es sich bei den Verbindungskomponenten um PCIe-basierte Verbindungskomponenten. In anderen Ausführungsformen sind die Verbindungsstrukturen CXL- oder Gen-Z-basierte Verbindungen.
-
In verschiedenen Ausführungsformen können unter Verwendung der Fabrics 421 und 425 mit den Fabric-Managern 420 und 426, den Modulen des Infrastruktur-Ressourcenpools 400, verschiedene Rechnerarchitekturen zusammengestellt werden. Das Beispiel in 4 zeigt eine Reihe von logischen Servern (z. B. 450, 452, 454). Die in 4 dargestellte Konfiguration entspricht zwar demselben logischen Gerätetyp (d. h. logischen Servern), die beschriebene Funktionalität ist jedoch nicht auf mehrere logische Geräte desselben Typs beschränkt. So können in alternativen Ausführungsformen viele verschiedene logische Gerätetypen gleichzeitig konfiguriert werden.
-
In der Beispielkonfiguration von 4 enthält jeder logische Server mindestens eine Prozessorressource 460, bei der es sich um einige oder alle Rechenmodule 410 (d. h. Prozessor 412 und entsprechende C-RA 414) aus dem Infrastrukturressourcenpool 400 handelt. Einige oder alle Interconnection Fabrics 421 und 425 können (über Fabric Manager 420 und 426) konfiguriert werden, um logische PCIe-Switches 465 bereitzustellen. In alternativen Ausführungsformen, z. B. basierend auf CXL oder Gen-Z, würde der logische Switch auf dem entsprechenden Protokoll basieren.
-
Außerdem enthält jeder logische Server mindestens eine logische Ressource 470, 474, 478, bei der es sich um einige oder alle Zielmodule 430 (d. h. Ressourcen 434 und entsprechende T-RA 432) aus dem Infrastruktur-Ressourcenpool 400 handelt. Sobald sie konfiguriert sind, können die logischen Server 452, 452 und 454 mit den zugewiesenen Ressourcen Serverfunktionen bereitstellen. Wenn sich die Bedingungen ändern, können einer oder mehrere der logischen Server 450, 452 und 454 als logische Server mit anderen Ressourcenzuweisungen oder als andere logische Gerätetypen neu konfiguriert oder dekonfiguriert werden, wobei die Ressourcen dem Infrastruktur-Ressourcenpool 400 neu zugewiesen werden.
-
5 ist ein Blockdiagramm einer Ausführungsform einer vertrauenswürdigen zusammensetzbaren Computing-Architektur aus vertrauenswürdigen zusammensetzbaren Infrastrukturressourcen mit intelligenten Modulen (z. B. einem Server, einem Speicher-Array), einfachen Modulen (z. B. einer CPU, einem PCIe-Adapter, einem NVMe-Laufwerk) und parallelen Verbindungsgeweben, von denen aus herkömmliche Servermodule (intelligente Module) ihre IO-Funktionen erweitern oder logische Server erstellen können. Die Architektur von 5 kann eine vollständig anzeigbare Infrastruktur sein und vollständige Verschlüsselungs- und Schlüsselverwaltungs-Isolationsdienste bereitstellen. Die in 5 dargestellte Architektur kann außerdem die Überwachung des Fabric-Zustands und die Erstellung von Berichten sowie Compliance- und Sicherheitsdienste und -modi bereitstellen.
-
Das Beispiel in 5 veranschaulicht, wie das System an jedem der Verwaltungsendpunkte, z. B. dem Composable Resource Manager, dem/den Fabric Manager(n), dem/den Resource Adapter(n) und dem/den Baseboard Management Controller(n), um Compliance und Sicherheit erweitert werden kann. Diese Konformität und Sicherheit wird durch ein „Fliege“-Symbol an jedem Endpunkt dargestellt. Diese „Fliege“ zeigt an, dass der Endpunkt Authentifizierungs-, Bescheinigungs- und Verschlüsselungsschlüsselverwaltungsdienste bereitstellt.
-
Die in 5 dargestellte Architektur verwendet die Erweiterungsfabrics 505 und 508, die wie oben beschrieben funktionieren. Die Expansion Fabrics 505 und 508 können PCIe-basiert oder alternativ CXL- oder Gen-Z-basierte Fabrics sein. Fabric-Manager 512 und 518 können Verbindungen innerhalb der Expansion Fabrics 505 bzw. 508 konfigurieren, um die hier beschriebene zusammensetzbare Funktionalität bereitzustellen. Die Ressourcenmanager 510 und 516 können Funktionen zur Verwaltung der Ressourcenkonfiguration für eine oder mehrere Rechenressourcen und/oder eine oder mehrere Zielressourcen bereitstellen. In alternativen Ausführungsformen kann eine beliebige Anzahl von Erweiterungs-Fabrics, Fabric-Managern und Ressourcen-Managern unterstützt werden. In einigen Ausführungsformen können die Fabric-Manager 512 und 518 Identitäts-, Enumeration- und Discovery- sowie Ressourcenpool-Authentifizierungsdienste bereitstellen. Die Konfiguration von 5 kann über die Ressourcenmanager ein Hochverfügbarkeitsmanagement bereitstellen.
-
Die in 5 dargestellte Architektur kann Rechenressourcen (z. B. 540) nutzen, die Prozessorressourcen 542 und C-RA(s) 546 umfassen. In einigen Ausführungsformen können C-RA(s) 546 Identitäts- und/oder Verbrauchseinheit-Authentifizierungsdienste bereitstellen. In einigen Ausführungsformen können eine oder mehrere intelligente Rechenressourcen 520 enthalten sein. Intelligente Rechenressourcen umfassen mindestens eine App 522, die im Vergleich zur Rechenressource 540 ein gewisses Maß an Intelligenz für die intelligente Rechenressource 520 bereitstellt. Zusätzlich zur App 522 kann die intelligente Rechenressource 520 eine oder mehrere Prozessorressourcen 524 und eine oder mehrere entsprechende C-RAs 526 umfassen. Die intelligente Rechenressource 520 kann auch einen Authentifizierungsagenten 528 enthalten, der die Authentifizierungsdienste für die Identität und/oder die Verbrauchseinheiten der intelligenten Rechenressource 520 bereitstellt.
-
Verschiedene Ausführungsformen einer zusammensetzbaren Rechenarchitektur, wie in 5 dargestellt, können einfache Erweiterungsressourcen 580 mit Erweiterungsressourcen 582 und T-RA 584 umfassen. Zu den Erweiterungsressourcen können zum Beispiel SmartIO-Module, NVMe-Module usw. gehören. In einigen Ausführungsformen können C-RA(s) 584 Identitäts- und/oder Verbrauchseinheit-Authentifizierungsdienste bereitstellen. In einigen Ausführungsformen können eine oder mehrere intelligente Erweiterungsressourcen 560 enthalten sein. Intelligente Erweiterungsressourcen umfassen mindestens ein Verarbeitungselement 568, das für die intelligente Erweiterungsressource 560 im Vergleich zur einfachen Erweiterungsressource 580 ein gewisses Maß an Intelligenz bereitstellt. Zusätzlich zum Verarbeitungselement 568 kann die intelligente Expansionsressource 560 eine oder mehrere Expansionsressourcen 564 und eine oder mehrere entsprechende T-RAs 562 umfassen. Die intelligente Expansionsressource 560 kann auch einen Authentifizierungsagenten 566 enthalten, um die Identitäts- und/oder Verbrauchseinheiten-Authentifizierungsdienste für die intelligente Expansionsressource 560 bereitzustellen.
-
Die Architektur in 5 veranschaulicht im Allgemeinen, wie Schichten von Sicherheits- und Bescheinigungsfunktionen für zusammensetzbare Architekturmodule bereitgestellt werden können. Diese zusätzlichen Funktionen können Aufzählungs- und Erkennungsfunktionen unterstützen, z. B. das Durchlaufen des Interconnects (z. B. Link-by-Link in einer PCIe-Variante). Darüber hinaus können Ressourcenbindungen, z. B. RA-Fabric-Bindungen (Host-zu-Ziel, Ziel-zu-Ziel) sowie E/A-Zielbindungen (z. B. logische Speicherbereiche, logische NVMe-Geräte, Dual-Path-NVMe-Geräte an einen einzelnen Host, physische PCIe-Adapter) unterstützt werden.
-
Die von der Architektur in 5 bereitgestellten Authentifizierungsfunktionen können zu einer sicheren Verwaltung und Steuerung mit gegenseitiger Authentifizierung und einem vollständig verschlüsselten Datenpfad führen, der eine kryptografische Isolierung zwischen Verbindungen/logischen Servern bietet. Darüber hinaus kann ein Hardware-Failover für ein Trigger-Ereignis oder eine Software-Steuerung (z. B. ein geplantes Ereignis) unterstützt werden. Die Ausfallsicherung des Controllers kann softwaregesteuert erfolgen, wobei der Pfad validiert und die Fehlerbedingungen gelöscht werden.
-
6 ist ein Blockdiagramm einer Ausführungsform eines Infrastruktur-Ressourcenpools, der zusammensetzbare Infrastrukturressourcen in einer gehärteten, sicheren Umgebung bereitstellt, in der logische Server-Ressourcenbindungen kryptografisch über die parallele Verbindungsstruktur verbunden sind. In dem Beispiel von 6 kann die Infrastrukturressource 600 eine beliebige Anzahl von Rechenmodulen 610, Verbindungsmodulen 640 und Zielmodulen 660 umfassen.
-
Wie bei den oben beschriebenen Konfigurationen kann/können das/die Rechenmodul(e) 610 einen oder mehrere Prozessoren 612 und entsprechende C-RAs 614 enthalten. Das Verbindungsmodul 640 kann ein, zwei oder mehr Verbindungsfabrics 642 und entsprechende Fabric-Manager 645 enthalten. Das (die) Beispiel-Zielmodul(e) 660 aus 6 kann (können) eine oder mehrere T-RAs 662 und entsprechende Switches 664 umfassen, um Zugang zu verschiedenen PCIs-Steckplätzen 666 zu ermöglichen. Andere Zielmodulkonfigurationen, die unterschiedliche Funktionen bieten, können ebenfalls unterstützt werden.
-
In der in 6 dargestellten Architektur sorgen C-RAs 614 und T-RAs 662 für die Konformität mit PCIe-Host-Paketen sowie für Verkapselungs-/Entkapselungsfunktionen. In verschiedenen Ausführungsformen empfangen die C-RAs 614 logische Server-PCIe-Pakete 620 in gekapselte Pakete 650. Die eingekapselten Pakete 650 werden über das Verbindungsmodul 640 an die T-RAs 662 übertragen, die ebenfalls Konformitäts- und Entkapselungsfunktionen bieten. Der Verkehr kann auch in umgekehrter Richtung fließen, wobei die gleichen Verfahren und Protokolle verwendet werden.
-
In einer Ausführungsform enthalten die eingekapselten Pakete 650 das Ende 652, die Nutzlast 654 (z. B. ein PCIe-Paket 620) und den Nachrichtenkopf 656. In einer Ausführungsform enthält der Nachrichtenkopf 656 eine Anbieter-ID, eine Anforderungs-ID (z. B. Rechen-RA-ID, Ziel-RA-ID), eine Ziel-ID, Flusssteuerungsguthaben und Transaktionsordnungsanforderungen. In alternativen Ausführungsformen können unterschiedliche Konfigurationen der Nachrichtenköpfe verwendet werden.
-
Die Kombination der verschiedenen Elemente, die in den 1-6 dargestellt sind, und die entsprechende Beschreibung bilden einen kompatiblen Computerrahmen mit verschiedenen Sicherheitsniveaus, Verschlüsselung, kryptografischer Isolierung logischer Serverbindungen, Bescheinigung usw.
-
7 ist ein Beispiel für einen Paketrahmen-Header einer parallelen Verbindungsstruktur, der mit der hier beschriebenen zusammensetzbaren Architektur für eine parallele PCIe-Verbindungsstruktur verwendet werden kann, die mit Standard-PCIe-Switches aufgebaut ist. Das Beispiel in 7 ist ein PCIe Transaction Layer Packet (TLP) Header, der die vom Hersteller reservierten Bytes verwendet, um die hier beschriebenen Composable Fabrics und Composable Computing-Architekturen zu unterstützen; andere Protokolle können jedoch auch andere Header-Formate verwenden.
-
Im Beispielformat von 7 können die Bytes 0 bis 11 des TLP-Headers (815) wie in den PCIe-Standards definiert sein. In verschiedenen Ausführungsformen können die Bytes 12 bis 15 des Headers (825) verwendet werden, um die hier beschriebene zusammensetzbare Architektur zu unterstützen, da die Bytes 12 bis 15 in den aktuellen Standards für die Verwendung durch den Hersteller reserviert sind. Wenn sich die Standards weiterentwickeln, kann sich die genaue Konfiguration der Header ändern, aber die Funktionalität kann beibehalten werden, indem die für die Verwendung durch den Hersteller reservierten Teile verwendet werden.
-
In verschiedenen Ausführungsformen können die Informationen in den Bytes 12 bis 15 des TLP-Headers von einer oder mehreren der RAs innerhalb der zusammensetzbaren Architektur verwendet werden. In einer Ausführungsform werden die Bytes 12 und 13 des Headers für einen Zielidentifikator (840) und einen Rahmenidentifikator (845) verwendet. In ähnlicher Weise werden die Bytes 14 und 15 des Headers für eine Quellenkennung (850) und eine Rahmenkennung (855) verwendet. Andere Header-Strukturen können verwendet werden, um eine ähnliche Funktionalität zu bieten.
-
In verschiedenen Ausführungsformen werden Transaktionen, die Adressbereiche der Verbindungsstruktur durchqueren, von der S-RA mit einer neuen S-RA-ID (Header-Byte 6 + 7...Anforderungs-ID) und einer neuen Ziel-ID (Header-Byte 10+11...Bus- und Gerätenummer) aktualisiert, so dass die Rahmen unabhängig voneinander zwischen verschiedenen Adressbereichen der Verbindungsstruktur fließen können. Wenn die Bus- und Gerätenummer (Byte 10+11) mit der Ziel-ID (Byte 14+15) übereinstimmt, hat das Paket sein endgültiges Ziel erreicht, einen C-RA oder einen T-RA, der an die Adressendomäne der Ziel-Verbindungsstruktur angeschlossen ist.
-
In verschiedenen Ausführungsformen kann jedes Netz ein entsprechendes Subnetz haben, und die Frame-ID (z. B. 745, 755) kann zur Identifizierung der Frames und damit der entsprechenden Adressbereiche verwendet werden. In einigen Ausführungsformen kann die Frame-ID für das Routing von Paketen mit wiederverwendbaren Geräte-IDs verwendet werden. In einigen Ausführungsformen können Routing-Tabellen und/oder Adressübersetzungstabellen für den Verkehr zwischen Rahmen verwendet werden.
-
8 ist ein Flussdiagramm einer Ausführungsform einer Technik zum Konfigurieren einer Recheninfrastrukturressource in einer Umgebung, die zusammensetzbare Ressourcen bereitstellt. Das Flussdiagramm in 8 beschreibt eine Ausführungsform, wie ein Manager für zusammensetzbare Ressourcen (z. B. 215 in 2) einen oder mehrere Fabric-Manager (z. B. 290, 292, 294, 295, 297, 298 in 2) beispielsweise auf der Grundlage einer API steuern kann, um eine auf die API-Anforderungen zugeschnittene Rechenleistung unter Verwendung der zusammensetzbaren Fabric bereitzustellen.
-
In einer Ausführungsform bietet (oder enthält) die Umgebung eine API, die die Erstellung neuer Rechenressourcen unterstützt, die beispielsweise Prozessor(en), Arbeitsspeicher, Speicher, Netz- und/oder Beschleunigerressourcen umfassen können. Dies kann als „Serverprofil“ betrachtet werden. In alternativen Ausführungsformen können zusätzliche und/oder andere Ressourcen unterstützt werden. In einer Ausführungsform werden in Block 800 über die API eine oder mehrere Rechenspezifikationen empfangen.
-
In einer Ausführungsform kann ein Systemmanager (oder eine andere Komponente, z. B. ein oder mehrere Fabric-Manager) die Umgebung bewerten und feststellen, ob eine Rechenressource verfügbar ist, die die angeforderten Anforderungen erfüllt (Block 810). Wenn die Rechenressource verfügbar ist, kann der Systemmanager (oder eine andere Komponente) in Block 810 die Rechenressource aus dem Ressourcenpool in Block 870 zuweisen. Wenn die Rechenressource in Block 870 zugewiesen wurde, kann in Block 880 eine Antwort über die System-API bereitgestellt werden. In einer Ausführungsform zeigt die Antwort an, dass die angeforderte Rechenressource erfolgreich zugewiesen wurde. In alternativen Ausführungsformen können auch zusätzliche Informationen bereitgestellt werden.
-
Wenn die Rechenressource nicht verfügbar ist, kann der Systemmanager (oder eine andere Komponente) in Block 810 feststellen, ob die angeforderten Anforderungen durch Konfiguration verfügbarer Ressourcen aus dem Ressourcenpool in Block 820 erfüllt werden können. Ist dies nicht der Fall, kann in Block 890 über die API eine Fehlermeldung ausgegeben werden. Wenn die angeforderten Anforderungen mit dem Ressourcenpool erfüllt werden können, können eine Fabric-API und/oder Fabric-Manager die gewünschten Ressourcen (z. B. Prozessor(en), Arbeitsspeicher, Speicher, Netzwerk) unter Verwendung der RAs und anderer Elemente, wie hier beschrieben, in Block 830 verbinden.
-
Wenn der/die Fabric-Manager bei der Verbindung der gewünschten Ressourcen erfolgreich ist/sind, kann in Block 840 eine Antwort über die Fabric-API bereitgestellt werden, die anzeigt, dass die Rechenressourcen in Block 850 zugewiesen wurden. Wenn der/die Fabric-Manager bei der Verbindung der gewünschten Ressourcen nicht erfolgreich ist/sind, kann in Block 840 eine Fehlerantwort über die Fabric-API bereitgestellt werden, die anzeigt, dass die Rechenressourcen in Block 855 nicht zugewiesen wurden.
-
Nach Erhalt einer Antwort über die Fabric-API kann der Systemmanager in Block 860 feststellen, ob die Ressourcenverbindung erfolgreich war. Ist dies nicht der Fall, kann in Block 890 über die API eine Fehlermeldung ausgegeben werden. Wenn die Ressourcenverbindung in Block 860 erfolgreich war, kann in Block 880 eine Antwort über die System-API bereitgestellt werden. In einer Ausführungsform zeigt die Antwort an, dass die angeforderte Rechenressource erfolgreich zugewiesen wurde. In alternativen Ausführungsformen können auch zusätzliche Informationen bereitgestellt werden.
-
9 ist ein Flussdiagramm einer Ausführungsform einer Technik zum Konfigurieren einer Rechenressource in einer Umgebung, die zusammensetzbare Ressourcen bereitstellt. Der Ablauf in 9 stellt eine beispielhafte Alternative zum Ablauf in 8 dar. Im Beispiel von 9 können ein oder mehrere Ressourcenmanager (z. B. 510 und 516 in 5) einen oder mehrere Fabric-Manager (z. B. 512 und 518 in 5) auf der Grundlage von z. B. einer API steuern, um eine auf die API-Anforderungen zugeschnittene Rechenleistung unter Verwendung der Composable Fabric bereitzustellen. In diesem Beispiel kommunizieren die Ressourcenmanager mit anderen Fabric Switches sowie mit C-RAs und T-RAs, um die gewünschten Konfigurationen bereitzustellen.
-
In einer Ausführungsform bietet (oder enthält) die Umgebung eine Ressourcen-API, die die Erstellung neuer Rechenressourcen unterstützt, zu denen beispielsweise Prozessor(en), Arbeitsspeicher, Speicher, Netz- und/oder Beschleunigerressourcen gehören können. In alternativen Ausführungsformen können zusätzliche und/oder andere Ressourcen unterstützt werden. In einer Ausführungsform werden in Block 900 über die Ressourcen-API eine oder mehrere Rechenspezifikationen empfangen.
-
In einer Ausführungsform kann ein Ressourcenmanager (oder eine andere Komponente, z. B. ein oder mehrere Fabric-Manager) die Umgebung bewerten und feststellen, ob eine Rechenressource verfügbar ist, die die angeforderten Anforderungen erfüllt (Block 910). Wenn die Rechenressource verfügbar ist, kann der Ressourcenmanager (oder eine andere Komponente) in Block 910 die Rechenressource aus dem Ressourcenpool in Block 950 zuweisen. Wenn die Rechenressource in Block 950 zugewiesen wurde, kann in Block 960 eine Antwort über die Ressourcen-API bereitgestellt werden. In einer Ausführungsform zeigt die Antwort an, dass die angeforderte Rechenressource erfolgreich zugewiesen wurde. In alternativen Ausführungsformen können auch zusätzliche Informationen bereitgestellt werden.
-
Wenn die Rechenressource nicht verfügbar ist, kann der Ressourcenmanager (oder eine andere Komponente) in Block 910 feststellen, ob die angeforderten Anforderungen erfüllt werden können, indem verfügbare Ressourcen aus dem Ressourcenpool in Block 920 konfiguriert werden. Ist dies nicht der Fall, kann in Block 970 über die Ressourcen-API eine Fehlermeldung ausgegeben werden. Wenn die angeforderten Anforderungen mit dem Ressourcenpool erfüllt werden können, kann der Ressourcenmanager die gewünschten Ressourcen (z. B. Prozessor(en), Arbeitsspeicher, Speicher, Netzwerk) unter Verwendung der RAs und anderer Elemente, wie hier beschrieben, in Block 930 verbinden.
-
10 ist ein konzeptionelles Diagramm einer Ausführungsform eines Infrastruktur-Ressourcenpools, der zusammensetzbare Infrastrukturressourcen bereitstellt, die als eine Reihe logischer Server konfiguriert sind. 10 zeigt einen beispielhaften Anwendungsfall für die Zuordnung physischer und virtueller Funktionen, die von Rechenmodulen und Zielmodulen bereitgestellt werden, um eine logische Serverarchitektur zu erreichen. Das Beispiel in 10 ist ein komplexeres und flexibleres Beispiel als das Beispiel in 3.
-
Der Infrastruktur-Ressourcenpool 1000 umfasst die verschiedenen physischen Infrastrukturmodule, z. B. die Rechenressourcenmodule 1010 und 1020 sowie die Zielressourcenmodule 1040, 1050 und 1060. Es kann eine beliebige Anzahl von Rechenmodulen und Zielmodulen unterstützt werden. Im Ausführungsbeispiel von 10 umfasst dies das Rechenressourcenmodul 1010 mit mindestens einem Verarbeitungskern 1011 und einem entsprechenden C-RA 1012 (mit RA-1 bezeichnet) und das Rechenressourcenmodul 1020 mit Verarbeitungskernen 1022 und 1024 und entsprechenden C-RAs 1026 und 1028 (mit RA-4 bzw. RA-5 bezeichnet). Die Rechenkerne können z. B. über CXL- oder PCIe-Protokolle mit den C-RAs verbunden werden.
-
Der Infrastruktur-Ressourcenpool 1000 umfasst außerdem ZielRessourcenmodule 1040, 1050 und 1060 mit jeweils einer oder mehreren Ressourcen 1045, 1055 und 1065. Die Ressourcen können z. B. über CXL- oder PCIe-Protokolle mit T-RAs verbunden werden. Im Beispiel von 10 umfasst das Zielressourcenmodul 1040 eine einzelne T-RA 1041 (mit RA-2 bezeichnet), einen PCIe-Switch 1042 und mehrere mit dem Switch 1042 verbundene PCle-Steckplätze 1045. In ähnlicher Weise umfasst das Zielmodul 1060 einen einzelnen T-RA 1061 (mit der Bezeichnung RA-7), ein PCIe-Multifunktionsgerät 1064, das als intelligente Ressource 1065 dargestellt ist. Das Zielmodul 1050 umfasst zwei T-RAs 1051 und 1052 (mit den Bezeichnungen RA-3 bzw. RA-6), die für den Zugriff auf Dual-Port-NVMe-Geräte 1055 über die Schalter 1053 und 1054 verwendet werden können.
-
Die Interconnection Fabrics 1031 und 1035 mit den zugehörigen Fabric Managern 1030 bzw. 1036 können konfigurierbare Verbindungen zwischen den verschiedenen RAs bereitstellen, die Verbindungen zwischen den Rechenressourcenmodulen 1010 und 1020 und den Zielressourcenmodulen 1040, 1050 und 1060 ermöglichen. In einigen Ausführungsformen handelt es sich bei den Verbindungskomponenten um PCIe-basierte Verbindungskomponenten. In alternativen Ausführungsformen handelt es sich bei den Verbindungsstrukturen um CXL- oder Gen-Z-basierte Verbindungen.
-
In verschiedenen Ausführungsformen können unter Verwendung der Fabric-Verbindungen 1031 und 1035 mit den Fabric-Managern 1030 und 1036, den Modulen des Infrastruktur-Ressourcenpools 1000, verschiedene Rechnerarchitekturen zusammengestellt werden. Das Beispiel in 10 zeigt ein Paar logischer Server (z. B. 1070, 1080). Es können auch andere Konfigurationen unterstützt werden.
-
In der in 10 dargestellten Beispielkonfiguration kann der logische Server 1070 Verarbeitungskern(e) 1011 und der logische Server 1080 Verarbeitungskerne 1022 und 1024 enthalten. C-RA 1012 (RA-1) ist so konfiguriert, dass er die Funktionalität des logischen PCIe-Switch 1072 bereitstellt.
-
Teile von T-RA 1041 (RA-2) können so konfiguriert werden, dass sie die Funktionalität des logischen PCIe-Switches 1073 bereitstellen, der als Schnittstelle zu einigen oder allen PCIe-Steckplätzen 1045 (bezeichnet als PCIe-Gerät 1076) fungieren kann. Teile der Verbindungsstruktur 1031 und Teile der Verbindungsstruktur 1035 und T-RA 1051 (RA-3) können so konfiguriert werden, dass sie die Funktionalität des logischen PCIe-Switches 1074 bereitstellen, der als Schnittstelle zu einigen oder allen NVMe-Geräten 1055 (als NVMe-Gerät 1077 bezeichnet) fungieren kann. Teile der Verbindungsstruktur 1031 und Teile der Verbindungsstruktur 1035 und der T-RA 1061 (RA-7) können so konfiguriert werden, dass sie die Funktionalität des logischen PCIe-Switches 1075 bereitstellen, der als Schnittstelle zu dem Multifunktions-PCIe-Gerät 1064 (als Multifunktionsgerät 1078 bezeichnet) fungieren kann.
-
In der in 10 dargestellten Beispielkonfiguration kann der logische Server 1080 die Prozessorkerne 1022 und 1024 umfassen. C-RA 1026 (RA-4), C-RA 1028 (RA-5), Teile der Verbindungsstruktur 1031 und Teile der Verbindungsstruktur 1035 können so konfiguriert werden, dass sie die Funktionalität des logischen PCIe-Switch 1083 und des logischen PCIe-Switch 1084 bieten.
-
Teile der Verbindungsstruktur 1031 und Teile der Verbindungsstruktur 1035 und T-RA 1041 (RA-2) können so konfiguriert werden, dass sie die Funktionalität des logischen PCIe-Switches 1085 bereitstellen, der als Schnittstelle zu einigen oder allen PCle-Steckplätzen 1045 (als PCIe-Gerät 1090 bezeichnet) fungieren kann. Teile der Verbindungsstruktur 1031 und Teile der Verbindungsstruktur 1035 und T-RA 1061 (RA-7) können so konfiguriert werden, dass sie die Funktionalität des logischen PCIe-Switches 1086 bereitstellen, der als Schnittstelle zu einigen oder allen Multifunktionsgeräten 1064 (bezeichnet als Multifunktionsgerät 1091) fungieren kann.
-
Teile der Verbindungsstruktur 1031 und Teile der Verbindungsstruktur 1035 und T-RA 1041 (RA-2) können so konfiguriert werden, dass sie die Funktionalität des logischen PCIe-Switches 1087 bereitstellen, der als Schnittstelle zu PCle-Steckplätzen 1045 (als PCIe-Gerät 1092 bezeichnet) fungieren kann. Teile der Verbindungsstruktur 1031 und Teile der Verbindungsstruktur 1035, T-RA 1051 (RA-3) und T-RA 1052 (RA-6) können so konfiguriert werden, dass sie die Funktionalität des logischen PCIe-Switches 1089 bereitstellen, der als Schnittstelle zu einigen oder allen NVMe-Geräten 1055 (bezeichnet als NVMe-Geräte 1093 und 1094) fungieren kann.
-
11 ist ein konzeptionelles Diagramm von logischen Servern, die so konfiguriert sind, dass sie Peer-to-Peer-Kommunikation über die parallelen Verbindungsstrukturen der zusammensetzbaren Architektur nutzen. 11 zeigt einen beispielhaften Anwendungsfall für die Zuordnung physischer und virtueller Funktionen, die von Rechenmodulen und Zielmodulen bereitgestellt werden, um eine logische Serverarchitektur mit einer internen Peer-to-Peer-Verbindung zu erreichen. Das Beispiel in 11 ist komplexer und flexibler als das Beispiel in 10.
-
Der Infrastruktur-Ressourcenpool 1100 umfasst die verschiedenen physischen Infrastrukturmodule, z. B. die Rechenressourcenmodule 1110 und 1120 sowie die Zielressourcenmodule 1140, 1150, 1160 und 1165. Es kann eine beliebige Anzahl von Rechenmodulen und Zielmodulen unterstützt werden. Im Ausführungsbeispiel von 11 umfasst dies das Rechenmodul 1110 mit einem Rechenkern 1111 und dem entsprechenden C-RA 1112 (mit RA-1 bezeichnet) und das Rechenmodul 1120 mit den Rechenkernen 1122 und 1124 und den entsprechenden C-RAs 1126 und 1128 (mit RA-4 bzw. RA-5 bezeichnet). Die Rechenkerne können z. B. über CXL- oder PCIe-Protokolle mit den C-RAs verbunden werden.
-
Der Infrastruktur-Ressourcenpool 1100 umfasst außerdem die Zielmodule 1140, 1150, 1160 und 1165 mit jeweils einer oder mehreren Ressourcen 1145, 1155, 1164 und 1168. Die Ressourcen können z. B. über CXL- oder PCIe-Protokolle mit den T-RAs verbunden werden. Im Beispiel von 11 umfasst das Zielmodul 1140 eine einzelne T-RA 1141 (mit RA-2 bezeichnet), einen PCIe-Switch 1142 und mehrere PCIe-Steckplätze 1145, die mit dem Switch 1142 verbunden sind. Das Zielmodul 1150 umfasst zwei T-RAs 1151 und 1152 (mit den Bezeichnungen RA-3 bzw. RA-6), die für den Zugriff auf Dual-Port-NVMe-Geräte 1155 über die Switches 1153 und 1154 verwendet werden können.
-
In ähnlicher Weise umfasst das Zielmodul 1160 einen einzelnen T-RA 1161 (mit der Bezeichnung RA-7), ein PCIe-Multifunktionsgerät 1162, das als intelligente Ressource 1164 dargestellt ist. Das Zielmodul 1165 umfasst einen T-RA 1166 (mit der Bezeichnung RA-8), einen CXL-Speicher-Controller 1167 und ein oder mehrere Speichermodule 1168.
-
Die Fabric-Manager 1130 bzw. 1136 können konfigurierbare Verbindungen zwischen den verschiedenen RAs bereitstellen, die Verbindungen zwischen den Rechenmodulen 1110 und 1120 sowie den Zielmodulen 1140, 1150, 1160 und 1165 ermöglichen. In einigen Ausführungsformen sind die Verbindungsstrukturen PCIe-basierte Verbindungsstrukturen. In alternativen Ausführungsformen handelt es sich bei den Verbindungsstrukturen um CXL- oder Gen-Z-basierte Verbindungen.
-
In verschiedenen Ausführungsformen können unter Verwendung der Fabrics 1131 und 1135 mit den Fabric-Managern 1130 und 1136, den Modulen des Infrastruktur-Ressourcenpools 1100, verschiedene Rechnerarchitekturen zusammengestellt werden. Das Beispiel in 11 zeigt den logischen Server 1170 mit interner Peer-to-Peer-Funktionalität 1169. Es können auch andere Konfigurationen unterstützt werden.
-
In der in 11 dargestellten Beispielkonfiguration kann der logische Server 1170 die Rechenkerne 1122 und 1124 enthalten. C-RA 1126 (RA-4), C-RA 1128 (RA-5), Teile der Verbindungsstruktur 1131 und Teile der Verbindungsstruktur 1135 können so konfiguriert werden, dass sie die Funktionalität des logischen PCIe-Switch 1183 und des logischen PCIe-Switch 1184 bieten.
-
Teile der Interconnection Fabric 1131 und Teile der Interconnection Fabric 1135 und T-RA 1141 (RA-2) können so konfiguriert werden, dass sie die Funktionalität des logischen PCIe-Switches 1185 bereitstellen, der als Schnittstelle zu einigen oder allen PCle-Steckplätzen 1145 (bezeichnet als PCIe-Gerät 1190) fungieren kann. Teile der Verbindungsstruktur 1131 und Teile der Verbindungsstruktur 1135 und T-RA 1161 (RA-7) können so konfiguriert werden, dass sie die Funktionalität des logischen PCIe-Switches 1186 bereitstellen, der als Schnittstelle zu einigen oder allen Multifunktionsgeräten 1164 (bezeichnet als Multifunktionsgerät 1191) fungieren kann.
-
Teile der Verbindungsstruktur 1131 und Teile der Verbindungsstruktur 1135 und T-RA 1141 (RA-2) können so konfiguriert werden, dass sie die Funktionalität des logischen PCIe-Switches 1187 bereitstellen, der als Schnittstelle zum PCIe-Gerät 1145 (als PCIe-Gerät 1192 bezeichnet) fungieren kann. Teile der Verbindungsstruktur 1131 und Teile der Verbindungsstruktur 1135, T-RA 1151 (RA-3) und T-RA 1152 (RA-6) können so konfiguriert werden, dass sie die Funktionalität des logischen PCIe-Switches 1189 bereitstellen, der als Schnittstelle zu einigen oder allen NVMe-Geräten 1155 (bezeichnet als NVMe-Geräte 1193 und 1194) fungieren kann.
-
Teile der Interconnection Fabric 1131 und Teile der Interconnection Fabric 1135 und T-RA 1141 (RA-2) können so konfiguriert werden, dass sie die Funktionalität des logischen PCIe-Switches 1185 bereitstellen, der als Schnittstelle zu einigen oder allen PCle-Steckplätzen 1145 (bezeichnet als PCIe-Gerät 1190) fungieren kann. Teile der Verbindungsstruktur 1131 und Teile der Verbindungsstruktur 1135 und T-RA 1161 (RA-7) können so konfiguriert werden, dass sie die Funktionalität des logischen PCIe-Switches 1186 bereitstellen, der als Schnittstelle zu einigen oder allen Multifunktionsgeräten 1164 (bezeichnet als Multifunktionsgerät 1191) fungieren kann.
-
Teile der Verbindungsstruktur 1131 und Teile der Verbindungsstruktur 1135 und T-RA 1141 (RA-2) können so konfiguriert werden, dass sie die Funktionalität des logischen PCIe-Switches 1187 bereitstellen, der als Schnittstelle zum PCIe-Gerät 1145 (als PCIe-Gerät 1192 bezeichnet) fungieren kann. Teile der Verbindungsstruktur 1131 und Teile der Verbindungsstruktur 1135, T-RA 1151 (RA-3) und T-RA 1152 (RA-6) können so konfiguriert werden, dass sie die Funktionalität des logischen PCIe-Switches 1189 bereitstellen, der als Schnittstelle zu einigen oder allen NVMe-Geräten 1155 (bezeichnet als NVMe-Geräte 1193 und 1194) fungieren kann.
-
In einigen Ausführungsformen können zusätzlich zu den konfigurierbaren Prozessor-Ressourcen-Verbindungen auch Peer-to-Peer-Verbindungen innerhalb des logischen Servers 1170 unterstützt werden. Beispielsweise kann der Ressourcenmanager 1136 einen Pfad durch die Verbindungsstruktur 1135 zwischen dem Multifunktionsgerät 1119 und dem Speichergerät 1198 über die logischen PCIe-Switches 1186 und 1183 sowie den Speicher-Controller 1167 bereitstellen. Diese Funktionalität kann den Prozessor 1122 unterstützen. Eine ähnliche Konfiguration (in 11 nicht explizit dargestellt) kann für den Prozessor 1124 (zum Speichergerät 1199) unter Verwendung der logischen PCIe-Switches 1186 und 1184 sowie des Speicher-Controllers 1167 bereitgestellt werden.
-
Wenn in der Beschreibung auf „eine Ausführungsform“ oder „eine Ausführungsform“ Bezug genommen wird, bedeutet dies, dass ein bestimmtes Merkmal, eine bestimmte Struktur oder eine bestimmte Eigenschaft, die im Zusammenhang mit der Ausführungsform beschrieben wird, in mindestens einer Ausführungsform der Erfindung enthalten ist. Die Formulierung „in einer Ausführungsform“, die an verschiedenen Stellen der Beschreibung auftaucht, bezieht sich nicht unbedingt auf dieselbe Ausführungsform.
-
Während die Erfindung anhand mehrerer Ausführungsformen beschrieben wurde, wird der Fachmann erkennen, dass die Erfindung nicht auf die beschriebenen Ausführungsformen beschränkt ist, sondern mit Modifikationen und Änderungen im Rahmen des Geistes und des Umfangs der beigefügten Ansprüche ausgeführt werden kann. Die Beschreibung ist daher als illustrativ und nicht als einschränkend zu betrachten.