DE102022107800A1 - Booten und verwenden eines einzelnen cpu-sockels als partitionierte multi-cpu-plattform - Google Patents

Booten und verwenden eines einzelnen cpu-sockels als partitionierte multi-cpu-plattform Download PDF

Info

Publication number
DE102022107800A1
DE102022107800A1 DE102022107800.0A DE102022107800A DE102022107800A1 DE 102022107800 A1 DE102022107800 A1 DE 102022107800A1 DE 102022107800 A DE102022107800 A DE 102022107800A DE 102022107800 A1 DE102022107800 A1 DE 102022107800A1
Authority
DE
Germany
Prior art keywords
cpu
socket
boot
firmware
cluster
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
DE102022107800.0A
Other languages
English (en)
Inventor
Bharat S. Pillilli
Johan Van De Groenendaal
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 DE102022107800A1 publication Critical patent/DE102022107800A1/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/44Arrangements for executing specific programs
    • G06F9/4401Bootstrapping
    • G06F9/4403Processor initialisation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/4401Bootstrapping
    • G06F9/4405Initialisation of multiprocessor systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/20Handling requests for interconnection or transfer for access to input/output bus
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/38Information transfer, e.g. on bus
    • G06F13/42Bus transfer protocol, e.g. handshake; Synchronisation
    • G06F13/4282Bus transfer protocol, e.g. handshake; Synchronisation on a serial bus, e.g. I2C bus, SPI bus

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Security & Cryptography (AREA)
  • Stored Programmes (AREA)

Abstract

Vorrichtung und Verfahren zum Booten und Verwenden eines einzelnen CPU-Sockels als partitionierte Multi-CPU-Plattform. Der einzelne CPU-Sockel umfasst eine Mehrzahl von Kernkacheln, die in eine Mehrzahl von virtuellen Clustern umfassend CPU-Sub-Sockel partitioniert sind. Jeder der CPU-Sub-Sockel ist mit einer Eingangs-Ausgangs- (IO-) Kachel gekoppelt, die einen integrierten Boot-Unterstützungsblock aufweist und eine Mehrzahl von IO-Schnittstellen umfasst, umfassend zumindest eine IO-Schnittstelle, die ausgebildet ist, Boot-Signale zum Booten der Sub-Sockel zu empfangen, und eine IO-Schnittstelle zum Zugreifen auf Boot-Firmware, die in einer mit der IO-Schnittstelle gekoppelten Firmware-Speicherungsvorrichtung gespeichert ist. Der integrierte Boot-Unterstützungsblock ist ausgebildet, das Booten jedes der mehreren CPU-Sub-Sockel unter Verwendung eines gemeinschaftlich verwendeten Satzes von Boot-Ressourcen, die mit der Mehrzahl von IO-Schnittstellen gekoppelt sind, zu ermöglichen.

Description

  • HINTERGRUNDINFORMATIONEN
  • Einige Rechenplattformen in Rechenzentrum-, Hochperformancerechen- (HPC-; High-Performance-Computing-) und anderen Umgebungen sind Multisockel-Plattformen, die zwei oder mehr zentrale Verarbeitungseinheiten (CPUs; central processing units) umfassen. Bei den meisten Multisockel-Plattformen sind die Sockel über Sockel-zu-Sockel-Links miteinander verbunden, und es kann Vorkehrungen für die gemeinschaftliche Verwendung von Plattformressourcen über Sockel hinweg geben, wie beispielsweise eine Netzwerkschnittstellensteuerung (NIC; network interface controller) und Speicher als Teil einer Non-Uniform Memory Access- (NUMA-) Architektur.
  • Ein Problem bei Multisockel-Plattformen ist, dass ein Ausfall und/oder eine Datenkorruption auf einer CPU die übrigen CPUs auf derselben Plattform korrumpiert und/oder zum Absturz bringen kann. Dieses Problem wird als „Explosionsradius“ (blast radius) bezeichnet, wobei das Ziel darin besteht, den Explosionsradius zu minimieren, wenn eine CPU ausfällt und/oder auf Datenkorruptionsprobleme trifft. In einigen Fällen wird dieses Problem durch Partitionieren der Plattform in mehrere separate Sätze voller Hardware-Ressourcen (einen für jeden Sockel) gelöst, wobei jeder Sockel isoliert von den anderen Sockeln arbeitet. Dies ist jedoch mit höheren Kosten verbunden und schränkt auch die Nutzung mehrerer CPUs auf derselben Plattform ein. Außerdem erfordert dieser Ansatz separate Hardware-Ressourcen für das Booten jeder CPU.
  • Figurenliste
  • Die vorangehenden Aspekte und viele der dazugehörigen Vorteile dieser Erfindung werden leichter verständlich, wenn diese durch Bezugnahme auf die folgende detaillierte Beschreibung besser verstanden wird, wenn sie in Verbindung mit den beigefügten Zeichnungen genommen wird, wobei gleiche Bezugszeichen sich durch die verschiedenen Ansichten hindurch auf gleiche Teile beziehen, sofern nicht anderweitig angegeben:
    • 1 ist ein schematisches Diagramm eines vereinfachten Beispiels einer partitionierbare Multi-Dielet-CPU;
    • 2 ist ein schematisches Diagramm einer ersten Zwei-Sockel-Plattform umfassend ein Paar von Plattformsteuerungshubs (PCHs; Platform Controller Hubs), die mit entsprechenden CPUs gekoppelt sind;
    • 2a ist ein schematisches Diagramm einer zweiten Zwei-Sockel-Plattform, bei der die CPUs integrierte Boot-Unterstützungsblöcke umfassen;
    • 3 ist ein schematisches Diagramm einer Einzelsockel-Plattformarchitektur, bei der die Kernkacheln in einem CPU-Sockel in mehrere Cluster, die Sub-Sockel umfassen, partitioniert sind;
    • 4 ist gemäß einem Ausführungsbeispiel ein schematisches Diagramm, das ferner Details eines integrierten Boot-Unterstützungsblocks zeigt;
    • 5 ist ein Flussdiagramm, das Operationen zum Booten von Sub-Sockeln in der Einzelsockel-Plattform von 3 zeigt; und
    • 6 ist ein schematisches Diagramm, das eine abstrahierte Ansicht einer Zwei-Sockel-Plattform darstellt, die eine Replikation der Einzelsockel-Plattform von 3 einsetzt.
  • DETAILLIERTE BESCHREIBUNG
  • Ausführungsbeispiele von Vorrichtung und Verfahren zum Booten und Verwenden eines einzelnen CPU-Sockels als partitionierte Multi-CPU-Plattform sind hier beschrieben. In der folgenden Beschreibung werden zahlreiche spezifische Details ausgeführt, um ein tiefgreifendes Verständnis von Ausführungsbeispielen der Erfindung bereitzustellen. Der Fachmann wird jedoch erkennen, dass die Erfindung auch ohne eines oder mehrere der spezifischen Details oder mit anderen Verfahren, Komponenten, Materialien etc. in der Praxis ausgeführt werden kann. In anderen Fällen werden bekannte Strukturen, Materialien oder Operationen nicht im Detail gezeigt oder beschrieben, um Aspekte der Erfindung nicht zu verunklaren.
  • In dieser gesamten Beschreibung bedeutet ein Bezug auf „das eine Ausführungsbeispiel“ oder „ein Ausführungsbeispiel“, dass ein bestimmtes Merkmal, eine bestimmte Struktur oder Charakteristik, das/die in Verbindung mit dem Ausführungsbeispiel beschrieben wird, bei zumindest einem Ausführungsbeispiel der vorliegenden Erfindung umfasst ist. Somit bezieht sich das Auftreten der Phrasen „bei einem einzelnen Ausführungsbeispiel“ oder „bei einem Ausführungsbeispiel“ an verschiedenen Stellen durchgehend in dieser Beschreibung nicht bei allen notwendigerweise auf das gleiche Ausführungsbeispiel. Ferner können die bestimmten Merkmale, Strukturen, oder Charakteristika in irgendeiner geeigneten Weise bei einem oder mehreren Ausführungsbeispielen kombiniert werden.
  • Der Klarheit halber kann auf einzelne Komponenten in den Figuren auch durch ihre Bezeichnungen in den Figuren Bezug genommen werden, anstatt durch ein bestimmtes Bezugszeichen. Zusätzlich können Bezugszeichen, die sich auf einen bestimmten Typ von Komponente (im Gegensatz zu einer bestimmten Komponente) beziehen, mit einem Bezugszeichen gefolgt von „(typ)“, was „typisch“ bedeutet, gezeigt sein. Es versteht sich, dass die Konfiguration dieser Komponenten typisch für ähnliche Komponenten sein wird, die möglicherweise existieren, aber der Einfachheit und Klarheit halber nicht in den zeichnerischen Figuren gezeigt sind, oder für ansonsten ähnliche Komponenten, die nicht mit separaten Bezugszeichen gekennzeichnet sind. Umgekehrt soll „(typ)“ nicht so ausgelegt werden, dass es bedeutet, dass die Komponente, das Element usw. typischerweise für seine offenbarte Funktion, Implementierung, seinen Zweck usw. verwendet wird.
  • 1 zeigt ein vereinfachtes Beispiel einer partitionierbaren Multi-Dielet-CPU 100 (auch als CPU-Sockel bezeichnet), die für Server-CPUs verwendet wird, wobei Blöcke einer Schaltungsanordnung, die Abschnitte eines CPU-Dies darstellen, hier als „Dielets“ und „Kacheln“ bezeichnet werden. Der CPU-Sockel 100 umfasst eine Eingangs-Ausgangs- (IO-; Input-Output) Kachel 102 und vier Kern-„Dielets“ (Kacheln) 104, die durch Kernkacheln 0, 1, 2 und 3 dargestellt sind. Die IO-Kachel 102 umfasst einen integrierten Boot-Unterstützungsblock 106. Während des CPU-Sockel-Bootens werden die Kernkacheln 0 und 1 einem ersten virtuellen Cluster 108 („virtuelles“ Cluster 0) zugewiesen, während die Kernkacheln 2 und 3 einem zweiten virtuellen Cluster 110 („virtuelles“ Cluster 1) zum Plattform-Hochfahren-Zeitpunkt unter Verwendung von GPIO- (General-Purpose IO-; Allzweck-IO-) Bändern zugewiesen werden. Die virtuellen Cluster 0 und 1 umfassen die „Sub-Sockel“ 0 und 1.
  • Die IO-Kachel 102 hostet alle erforderlichen Funktionen zur unabhängigen Unterstützung der vom BIOS und Betriebssystem geforderten Funktionalität zusätzlich zu den Hochgeschwindigkeits-IOs. Der integrierte Boot-Unterstützungsblock ist ein gemeinschaftlich verwendeter Hardwareblock, der gemeinschaftlich zwischen den beiden virtuellen Clustern ohne Duplizierung verwendet wird und auf den dieselben zugreifen.
  • Bei einem Ausführungsbeispiel kann sich jedes virtuelle Cluster wie ein unabhängiger „Legacy“-Sockel verhalten, bei dem BIOS und OS eine volle „Legacy“-Zyklus-Funktionsfähigkeit erhalten. Die Definition von „Legacy“ von Plattform/BIOS/OS umfasst speicherabgebildete IO (MMIO; Memory-Mapped IO), die auf Flash und Vertrauenswürdige-Plattform-Management (TPM; Trusted Platform Management) abzielen; IO-Zyklen, die auf einen oder mehrere zugreifen von: LPC (Low Pin Count), HPET, RTC, 8254, 8259, IOxAPIC; CFG-Zyklen, die auf die plattform-sichtbaren Vorrichtungen abzielen; und LT/TXT-Zyklen.
  • Die gestrichelte Linienverlängerung zeigt, dass die Virtuelles- Cluster-Domäne physisch Teil der IO-Kachel 102 sein kann (oder anderweitig mit der IO-Kachel gekoppelt ist), aber die Isolierung entspricht weiterhin „2“ CPUs. Der Isolationsaspekt ermöglicht es einem bestimmten virtuellen Cluster, einen Hardwarefehler und/oder eine Datenkorruption zu erleiden, ohne andere Cluster auf einem CPU-Sockel zu beeinträchtigen.
  • Bei einem Ausführungsbeispiel trägt jedes virtuelle Cluster, das als Legacy-Sockel fungiert, die erforderliche Information (in aktuellen Systemen als „Sockel-ID“ bezeichnet, was der „Cluster-ID“ entspricht) bereits als Teil seiner TLP- (Transaction Layer Protocol-) Pakete. Wenn jedes der virtuellen Cluster als „legacy“ eingestuft (strapped) ist, hält der integrierte Boot-Unterstützungsblock 106 die strikte Partitionierung zwischen den Transaktionen aufrecht, indem er die Cluster-ID-Angabe in dem TLP verwendet. Diese neuartige Funktionalität ermöglicht die Unterstützung mehrerer virtueller Legacy-Sockel/Cluster innerhalb der CPU, um das BIOS und das OS zu booten und ihnen ein sicheres Laufen zu ermöglichen.
  • 2 zeigt eine Zwei-Sockel-Plattform 200 umfassen die CPUs 202-0 und 202-1. Jede CPU ist mit ihrem eigenen Satz von Hardware-Ressourcen gekoppelt, umfassend einen Plattformsteuerungshub (PCH) 204, ein CPLD (Complex Programmable Logic Device; komplexes programmierbares Logikbauelement) 206-0 oder 206-1, ein Vertrauenswürdige-Plattform-Modul (TPM) 208, einen Baseboard-Management-Controller (BMC) 210 und eine Flash-Speicherungsvorrichtung 212. Die CPUs 202-0 und 202-1 sind über eine Sockel-zu-Sockel-Verbindung 214 miteinander verbunden, bei der es sich bei dem dargestellten Beispiel um eine Ultra Path Interconnect (UPI) handelt. Jede der CPUs 202-0 und 202-1 ist über eine direkte Medienschnittstelle (DMI; Direct Media Interface) 216 mit ihrem jeweiligen PCH 204 verbunden.
  • Die Leistungs-CPLDs 206-0 und 206-1 stellen verschiedene Eingänge an den jeweiligen PCH 204 bereit, z. B. Wake- (Aufwachen-) Signale, Leistungszustandssteuerungs- (Sx-) Signale, Power-Button- (Einschaltschaltfläche-) Signale usw. Das TPM 208 ist mit dem PCH 204 über einen Serial Peripheral Interface- (SPI-) TMP-Link 220 verbunden. Der BMC 210 ist mit dem PCH 204 über einen enhanced Serial Peripheral Interface- (eSPI-) Link 222 und über einen seriellen Managementbus (SMB) 224 verbunden. Zusätzlich zu den gezeigten Links können auch andere Arten von Low-Pin-Count- (LPC-) Bussen verwendet werden.
  • Die Plattform-Firmware (auch BIOS genannt) ist in einer Flash-Speicherungsvorrichtung 212 gespeichert, die über einen SPI- oder eSPI-Link 226 mit dem PCH 204 gekoppelt ist und über einen SPI-Link 228 mit dem BMC 210 gekoppelt ist. Bei dem gezeigten Beispiel ist jede der CPUs 202-0 und 202-1 einer jeweiligen Domäne (0 und 1) zugeordnet. Die Schaltungsanordnung in jeder Domäne arbeitet unabhängig von der Schaltungsanordnung in der anderen Domäne (mit Ausnahme der Kommunikation über die Sockel-zu-Sockel-Verbindung 214). Bei dem dargestellten Beispiel weist jede Domäne ihre eigene BIOS-Speicherungsvorrichtung (Flash-Speicherungsvorrichtung 212) auf. Bei einer alternativen Konfiguration (nicht gezeigt) gibt es eine einzige BIOS-Speicherungsvorrichtung für die Zwei-Sockel-Plattform. Bei einigen Ausführungsbeispielen umfasst die Plattform-Firmware die Unified Extensible Firmware Interface- (UEFI-) Firmware.
  • 2a zeigt eine Zwei-Sockel-Plattform 200a, die eine weitere Zwei-Sockel-Plattform-Konfiguration unter Einsatz integrierter Boot-Unterstützungsblöcke 230 in jeder der CPUs 202a-0 und 202a-1 umfasst. Wie weiter gezeigt, wurden die PCHs 204 entfernt, wobei jedes von TPM 208, BMC 210 und Flash-Speicherungsvorrichtung 212 direkt mit der CPU 202a in ihrer Domäne verbunden ist. Somit ist in Domäne 1 das TPM 208 über einen SPI-TPM-Link 221 mit der CPU 202a-0 verbunden, das BMC 210 ist über einen eSPI-Link 223 und über SMB 225 mit der CPU 202a-0 verbunden, und die Flash-Speicherungsvorrichtung 212 ist über einen SPI- oder eSPI-Link 227 mit der CPU 202a-0 verbunden.
  • Bei der Zwei-Sockel-Plattform 200a sendet jede der Leistungs-CPLDs 206a-0 und 206a-1 verschiedene Signale 219 direkt jeweils an die CPU 202a-0 und 202a-1. Es wird darauf hingewiesen, dass sich die Logik in CPLD 206a-0 und CPLD 206a-1 von CPLD 206-0 und CPLD 206-1 unterscheiden kann, da es bei Plattform 200 in 2 die PCHs sind, die Steuersignale und andere Kommunikation mit den CPUs 202-0 und 202-1 bereitstellen, während bei Plattform 200a CPLDs 206a-0 und 206a-1 in direkter Kommunikation mit den CPUs 202a-0 und 202a-1 sind. Fachleute auf dem Gebiet werden verstehen, dass ausgewählte Plattformkomponenten in 2 und 2a dargestellt sind, während eine tatsächliche Plattform zusätzliche Komponenten umfassend Speichersteuerungen und Systemspeicher umfassen würde. Die in 2 und 2a gezeigten Komponenten und Links/Schnittstellen konzentrieren sich vielmehr auf die, die zum Booten der CPUs und zum Vorbereiten ihrer jeweiligen Domänen für das anschließende Booten eines OS und den Laufzeitbetrieb eingesetzt werden.
  • 3 zeigt eine Plattformarchitektur 300 für einen einzelnen CPU-Sockel 301, der mit einem Satz von Plattformressourcen gekoppelt ist und den Virtuelles-Cluster-Partitionierungs-Aspekt der CPU 100 in 1 mit Aspekten der Zwei-Sockel-Plattform 200a implementiert. Wie bei CPU-Sockel 100 umfasst CPU-Sockel 301 Kern-Dielets (Kacheln) 304 (Kernkachel 0, 1, 2 und 3), die beim Plattform-Booten den jeweiligen virtuellen Clustern 308-0 und 308-1 zugewiesen werden. Eine der Kernkacheln für jedes virtuelle Cluster wird als Bootstrap-Kernkachel für den Sub-Sockel zugewiesen, wie durch Kernkachel 0 und Kernkachel 2 dargestellt. Der CPU-Sockel 301 umfasst auch eine IO-Kachel 302 umfassend eine IO-Schaltungsanordnung, die zwischen der Schaltungsanordnung in virtuellen Clustern 308-0 und 308-1 gemeinschaftlich verwendet wird und umfassend einen integrierten Boot-Unterstützungsblock 306.
  • Die Plattformressourcen umfassen Boot-Ressourcen umfassend einem BMC 310, eine Flash-Speicherungsvorrichtung 314. Bei dem darstellenden Ausführungsbeispiel umfasst der BMC 310 ein oder mehrere TPMs 316. Alternativ können das/die TPM(s) auch als diskrete Komponenten implementiert werden. Der BMC 310 ist über einen SPI-TPM-Link 321, einen eSPI-Link 323 und einen SMB 325 mit dem CPU-Sockel 301 gekoppelt. Die Flash-Speicherungsvorrichtung 314 ist über einen SPI- oder eSPI-Link 327 mit dem CPU-Sockel 301 verbunden und über einen SPI-Link 328 mit dem BMC 310.
  • Ein Leistungs-CPLD 315 stellt an den CPU-Sockel 301 verschiedene Eingänge 318 bereit, wie z. B. Aufwachen-Signale, Sx-Signale, Power-Button-Signale usw. Der CPU-Sockel 301 umfasst auch Eingänge 330 und 332, um festzustellen, ob ein virtuelles Cluster als Legacy-Cluster betrieben wird oder nicht.
  • Der CPU-Sockel 301 umfasst außerdem eine Speichersteuerung 334, die mit einer kohärenten Verbindung 336 gekoppelt ist, mit der jedes der virtuellen Cluster 308 und 310 wirksam gekoppelt ist. Die kohärente Verbindung 336 ist eine Abstraktion, die eine kohärente Speicherdomäne darstellt, die eine Cache-Hierarchie (z. B. Level 1 (L1), Level 2 (L2) und einen Last-Level-Cache (LLC; Letzte-Ebene-Zwischenspeicher)) sowie zugeordnete Cache-Agenten und Verbindungsschaltungsanordnung umfasst. Die Speichersteuerung 334 ist mit dem Speicher 338 gekoppelt und stellt Lese- und Schreib-Zugriff auf denselben bereit, der zum Speichern verschiedener Firmware- und Software-Komponenten verwendet wird, umfassend die jeweiligen Instanzen eines Betriebssystems (OS 0 und OS 1; operating system) und des Boot- und Laufzeit-BIOS/Firmware (FW), wie durch die Boot/FW-Domäne 0 (340) und die Boot/FW-Domäne 1 (342) dargestellt.
  • Die Plattformarchitektur 300 umfasst außerdem eine Speicherungsvorrichtung 344 und eine Netzwerkschnittstelle 346, die ausgebildet ist, mit einem Netzwerk 348 gekoppelt zu werden. Jede Speicherungsvorrichtung 344 und Netzwerkschnittstelle 346 ist mit einem PCIe-(Peripheral Component Interconnect Express-) Root Port (RP) auf der IO-Kachel 302 über jeweilige PCIe-Links 352 und 354 verbunden. Bei einem Ausführungsbeispiel wird die gesamte oder ein Abschnitt der Plattformsoftware, wie z. B. ein Betriebssystem, in der Speicherungsvorrichtung 334 gespeichert und in den Speicher 336 geladen.
  • Um mehrere unabhängige Legacy-Cluster/virtuelle Sockel zu unterstützen und die Gesamtkosten zu reduzieren, wird in einem Aspekt vorgeschlagen, Flash, SPI/eSPI in einen einzigen BMC für beide Cluster zu integrieren (flash) (BMCs sind bereits für die Handhabung eines Flashs, SPI/eSPI usw. ausgelegt) und den integrierten Boot-Unterstützungsblock in der CPU für das Aufzählen der Cluster-ID pro Transaktion zu verwenden.
  • Diese Aufzählung kann auch so einfach sein wie die Ausgabe eines Cluster-ID-Zyklus, gefolgt von einem relevanten Zyklus (Flash, SPI, eSPI usw.) oder das Aktivieren (assert) eines sich gegenseitig ausschließenden plattformprogrammierbaren GPIO (Ausgänge), der den Transaktionsclustertyp anzeigt, der den BMC erreicht. Bei einem Ausführungsbeispiel kann, wenn das/die TPM(s) auf den BMC integriert ist/sind, auch ein spezielles Protokoll auf den BMC integriert werden, das die obige Aufzählungsmethodologie verwendet, um bestimmte Cluster zu detektieren.
  • 4 zeigt gemäß einem Ausführungsbeispiel ferner Details eines integrierten Boot-Unterstützungsblocks 306. Bei diesem nicht einschränkenden Beispiel umfasst der integrierte Boot-Unterstützungsblock 306 eine Mehrzahl von IO-Steuerungen mit integrierten IO-Schnittstellen. Diese umfassen eine SPI-Steuerung 400 mit SPI-Schnittstelle 402, eine eSPI-Steuerung 404 mit eSPI-Schnittstelle 406, eine SMB-Steuerung 408 mit SMB-Schnittstelle 410 und eine eSPI- oder SPI-Steuerung 412 mit einer eSPI- oder SPI-Schnittstelle 414. Bei einer alternativen Konfiguration (nicht gezeigt) sind die IO-Steuerungen und IO-Schnittstellen getrennt. Wie weiter gezeigt, ist die BIOS/UEFI-Firmware 416 in der Flash-Speicherungsvorrichtung 314 gespeichert.
  • Cluster/Sub-Sockel-Booten
  • Unter Bezugnahme auf das Flussdiagramm 500 in 5 und die Plattformarchitektur 300 in 3 läuft das Booten eines CPU-Sockels mit Kernkacheln, die für zwei oder mehr Sub-Sockel partitioniert sind, wie folgt ab. Der Boot-Prozess beginnt im Rahmen eines Kaltstarts (cold boot) oder eines System-Zurücksetzens, wie in einem Startblock 502 gezeigt wird. In einem Block 504 detektiert der integrierte Boot-Unterstützungsblock (und/oder andere Logik auf der Plattform) die virtuellen Cluster, zählt sie auf und weist jedem virtuellen Cluster eine Cluster-ID zu. Bei einem Ausführungsbeispiel läuft dieser Entdeckungs- und Aufzählungsprozess wie oben erörtert ab. Die Cluster-ID wird für die Weiterleitung von Daten (die in TLPs umfasst sind) während der Booten-Operationen verwendet.
  • Wie durch die Start- und Endschleifenblöcke 506 und 514 dargestellt, werden die Operationen in den Blöcken 508, 510 und 512 für jedes Cluster durchgeführt, der in Block 504 detektiert und aufgezählt wird. In Block 508 wird die Bootstrap-Kernkachel für das Cluster zum Booten der Sub-Sockel-Firmware verwendet, indem BIOS- und/oder UEFI-Firmware, die in der Flash-Speicherungsvorrichtung 314 gespeichert ist, geladen und ausgeführt wird. Das Booten eines einzelnen Sub-Sockels ähnelt in gewisser Weise dem konventionellen Booten einer Einzelsockel-Plattform, mit dem zusätzlichen Zusatz der Nachrichtenweiterleitung über den integrierten Boot-Unterstützungsblock 306.
  • Betrachtet man das Booten von Sub-Sockel 0 unter Verwendung der Kernkachel 0 als die Bootstrap-Kernkachel. Der Befehlszeiger der Kernkachel 0 identifiziert eine Adresse in der Flash-Speicherungsvorrichtung 314, von der aus das Laden und Ausführen der BIOS/LTEFI-Firmware für die Plattform zu beginnen hat. Ein Abschnitt der BIOS/UEFI-Firmware wird direkt aus der Flash-Speicherung ausgeführt, während andere Abschnitte in den Speicher der Boot/FW-Domäne 0 geladen werden. Dadurch wird der Sub-Sockel 0 für das Booten einer OS-Instanz vorbereitet und die Firmware-Unterstützung für Plattform-Laufzeitoperationen bereitgestellt. Dies umfasst das Laden von Erweiterte-UEFI-Firmware-Komponenten in den Speicher, wie in einem optionalen Block 510 dargestellt (dieser Block würde bei Plattformen, die keine UEFI-Firmware verwenden, übersprungen werden). Nachdem das BIOS/FW gebootet wurde, wird die Betriebssysteminstanz für den Sub-Sockel gebootet. Wenn das OS beispielsweise auf der Speicherungsvorrichtung 344 gespeichert ist, wird auf das OS von der Speicherungsvorrichtung 344 unter Verwendung von PCIe-TLPs zugegriffen, wobei die OS-Instanz in den Speicher 338 geladen wird, wie durch OS 0 dargestellt.
  • Ein ähnlicher Boot-Prozess wird unter Verwendung der Kernkachel 2 durchgeführt, um den Sub-Sockel 1 zu booten. Bei Plattformen mit CPU-Sockeln, die in mehr als zwei Sub-Sockel partitioniert sind, wird ein ähnlicher Prozess für jeden Sub-Sockel verwendet. Bei einem Ausführungsbeispiel geht die Ausführung nach dem Booten jedes der Sub-Sockel von einer Boot-Phase in eine OS-Laufzeitphase über, um Laufzeitoperationen unter Verwendung der BIOS/UEFI-Laufzeitunterstützung zu unterstützen, die während der vorangehenden Boot-Phase eingerichtet wurde, wie in Block 516 gezeigt. Optional kann der Übergang zur OS-Laufzeitphase unabhängig für jeden Sub-Sockel durchgeführt werden.
  • Die Einzelsockel-Plattform-Architektur von 3 kann zwei- oder mehrmals in einer Multisockel-Plattform repliziert werden. 6 zeigt zum Beispiel eine abstrahierte Ansicht einer Zwei-Sockel-Plattform umfassend die CPU-Sockel 0 und 1, die über einen Sockel-zu-Sockel-UPI-Link 602 miteinander verbunden sind. Jeder der Sockel umfasst eine ähnliche Architektur wie die in der oben erörterten 3 gezeigte Plattformarchitektur 300, die durch die Schaltungsblöcke 300-0 und 300-1 dargestellt wird. Ein ähnlicher Ansatz kann bei einer Vier-Sockel-Plattform verwendet werden, wobei der Schaltungsblock 300 viermal repliziert werden und die CPU-Sockel durch Paare von Sockel-zu-Sockel-Verbindungen verbunden werden würden. Bei einer Vier-Sockel-Plattform können die Sockel-zu-Sockel-Verbindungen im Allgemeinen eine Schleifenkonfiguration umfassen, bei der jeder Sockel mit zwei anderen Sockeln verbunden ist.
  • Ein Aspekt einer Multisockel-Plattform, die die obigen Prinzipien und Lehren einsetzt, ist, dass jeder Sockel seinen eigenen Satz von Boot-Ressourcen aufweist, wie beispielsweise einen BMC und eine Flash-Speicherungsvorrichtung bei einem nicht-einschränkenden Beispiel. Ebenso hätte jeder Sockel seinen eigenen Speicher und die CPU-Sub-Sockel für jeden Sockel würden unabhängig von den CPU-Sub-Sockeln in anderen Sockeln gebootet werden. Gleichzeitig können andere Komponenten über Sockel hinweg gemeinschaftlich verwendet werden. So kann beispielsweise eine Speicherungsvorrichtung wie beispielsweise eine Solid State Disk (SSD) oder eine ähnliche Massenspeicherungsvorrichtung über mehreren Sockeln hinweg gemeinschaftlich verwendet werden. Bei einer anderen Beispielkonfiguration wird eine einzelne Multi-Port-Netzwerkschnittstelle über mehreren Sockeln hinweg gemeinschaftlich verwendet, wie beispielsweise eine Netzwerkschnittstellensteuerung (NIC; network interface controller), die eine SmartNIC mit Logik zur Verwendung in einer Multisockel-Plattform umfasst.
  • Obwohl einige Ausführungsbeispiele in Bezug auf bestimmte Implementierungen beschrieben wurden, sind andere Implementierungen gemäß einigen Ausführungsbeispielen möglich. Zusätzlich ist es nicht erforderlich, dass die Anordnung und/oder Reihenfolge von Elementen oder anderen Merkmalen, die in den Zeichnungen dargestellt und/oder hierin beschrieben sind, auf die bestimmte Weise angeordnet werden, die dargestellt und beschrieben ist. Viele andere Anordnungen sind gemäß einigen Ausführungsbeispielen möglich.
  • Bei jedem System, das in einer Figur gezeigt ist, können die Elemente in einigen Fällen jeweils ein gleiches Bezugszeichen oder ein unterschiedliches Bezugszeichen aufweisen, um vorzuschlagen, dass die repräsentierten Elemente unterschiedlich und/oder ähnlich sein könnten. Ein Element kann jedoch flexibel genug sein, um unterschiedliche Implementierungen aufzuweisen und mit einigen oder allen der hierin gezeigten oder beschriebenen Systeme zu arbeiten. Die verschiedenen Elemente, die in den Figuren gezeigt sind, können die gleichen oder unterschiedliche sein. Welches als ein erstes Element bezeichnet wird und welches ein zweites Element genannt wird, ist beliebig.
  • In der Beschreibung und in den Ansprüchen können die Begriffe „gekoppelt“ und „verbunden“ zusammen mit ihren Ableitungen verwendet werden. Es versteht sich, dass diese Ausdrücke nicht als Synonyme füreinander vorgesehen sind. Vielmehr kann bei bestimmten Ausführungsbeispielen „verbunden“ verwendet werden, um anzuzeigen, dass zwei oder mehr Elemente in direktem physischen oder elektrischen Kontakt miteinander sind. „Gekoppelt“ kann bedeuten, dass zwei oder mehr Elemente in direktem physischen oder elektrischen Kontakt sind. Der Begriff „gekoppelt“ kann jedoch auch bedeuten, dass zwei oder mehr Elemente nicht in direktem Kontakt miteinander sind, jedoch weiter miteinander zusammenarbeiten oder interagieren. Zusätzlich bedeutet „kommunikativ gekoppelt“, dass zwei oder mehr Elemente, die in direktem Kontakt zueinander sein können oder möglicherweise nicht, befähigt werden, miteinander zu kommunizieren. Zum Beispiel, falls eine Komponente A mit einer Komponente B verbunden ist, die wiederum mit einer Komponente C verbunden ist, kann die Komponente A mit der Komponente C kommunikativ gekoppelt sein, unter Verwendung der Komponente B als eine Zwischenkomponente.
  • Ein Ausführungsbeispiel ist eine Implementierung oder ein Beispiel der Erfindungen. Ein Bezug in der Beschreibung auf „ein Ausführungsbeispiel“, „ein einziges Ausführungsbeispiel“, „einige Ausführungsbeispiele“, oder „andere Ausführungsbeispiele“ bedeutet, dass ein bestimmtes Merkmal, eine bestimmte Struktur oder Charakteristik, das oder die in Verbindung mit den Ausführungsbeispielen beschrieben ist, in zumindest manchen Ausführungsbeispielen umfasst ist, aber nicht notwendigerweise in allen Ausführungsbeispielen, der Erfindungen. Die verschiedenen Erscheinungsbilder „ein Ausführungsbeispiel“, „ein einziges Ausführungsbeispiel“ oder „einige Ausführungsbeispielen“ beziehen sich nicht alle notwendigerweise auf dieselben Ausführungsbeispiele.
  • Nicht für alle Komponenten, Merkmale, Strukturen, Charakteristika etc., die hierin beschriebenen und dargestellt sind, ist es erforderlich, dass sie in einem bestimmten Ausführungsbeispiel oder Ausführungsbeispielen umfasst sind. Wenn die Beschreibung zum Beispiel beschreibt, dass eine Komponente, ein Merkmal, eine Struktur oder Charakteristik umfasst sein „kann“, „könnte“ oder „möglicherweise“ umfasst ist, ist es nicht erforderlich, dass diese bestimmte Komponente, dieses bestimmte Merkmal, diese bestimmte Struktur oder Charakteristik unbedingt umfasst ist. Wenn die Beschreibung oder der Anspruch sich auf „ein“, „eine“ oder „eines“ von Elementen bezieht, bedeutet das nicht, dass nur eines dieser Elemente vorhanden ist. Wenn die Beschreibung oder die Ansprüche sich auf „ein zusätzliches“ Element beziehen, schließt das nicht aus, dass mehr als eines des zusätzlichen Elements vorhanden ist.
  • Ein Algorithmus wird hier, und allgemein als eine selbstkonsistente Sequenz von Handlungen oder Operationen verstanden, die zu einem gewünschten Ergebnis führen. Diese umfassen physische Manipulationen von physischen Mengen. In der Regel, wenn auch nicht unbedingt, werden diese Größen in Form von elektrischen oder magnetischen Signalen dargestellt, die in der Lage sind, gespeichert, übertragen, kombiniert, verglichen und anderweitig manipuliert werden zu können. Es hat sich bisweilen als praktisch erwiesen, hauptsächlich aus Gründen der allgemeinen Verwendung, diese Signale als Bits, Werte, Elemente, Symbole, Zeichen, Begriffe, Zahlen oder Ähnliches zu bezeichnen. Es sollte jedoch verstanden werden, dass alle diese und ähnliche Ausdrücke den geeigneten physikalischen Größen zugeordnet werden sollen und nur praktische Etiketten sind, die auf diese Größen angewandt werden.
  • Wie vorangehend erörtert, können verschiedene Aspekte der hierin beschriebenen Ausführungsbeispiele durch entsprechende Software- und/oder Firmware-Komponenten und - Anwendungen ermöglicht werden, z. B. durch Software und/oder Firmware, die von einem eingebetteten Prozessor oder Ähnlichem ausgeführt wird. Somit können Ausführungsbeispiele dieser Erfindung als ein Softwareprogramm, Softwaremodule, Firmware und/oder verteilte Software oder zur Unterstützung derselben verwendet werden, die auf einer Form von Prozessor, Verarbeitungskern oder eingebetteter Logik ausgeführt werden, eine virtuelle Maschine, die auf einem Prozessor oder Kern läuft, oder anderweitig auf einem oder innerhalb eines nichtflüchtigen computerlesbaren oder maschinenlesbaren Speicherungsmediums implementiert (implemented, realized) ist. Ein nichtflüchtiges computerlesbares oder maschinenlesbares Speicherungsmedium umfasst irgendeinen Mechanismus zum Speichern oder Übertragen von Information in einer durch eine Maschine (z. B. einen Computer) lesbaren Form. Zum Beispiel umfasst ein nichtflüchtiges computerlesbares oder maschinenlesbares Speicherungsmedium irgendeinen Mechanismus, der Information in einer Form bereitstellt (d. h. speichert und/oder sendet), auf die durch einen Computer oder eine Rechenmaschine (z. B. Rechenvorrichtung, elektronisches System etc.) zugegriffen werden kann, wie beispielsweise beschreibbare/nicht beschreibbare Medien (z. B. Nur-Lese-Speicher (ROM; read only memory), Direktzugriffsspeicher (RAM; random acccess memory), Magnetplattenspeicherungsmedien, optische Speicherungsmedien, Flash-Speichervorrichtungen etc.) Der Inhalt kann direkt ausführbar („Objekt“ oder „ausführbare“ Form), ein Quellcode oder ein Differenzcode („Delta“- oder „Patch“- Code) sein. Ein nichtflüchtiges computerlesbares oder maschinenlesbares Speicherungsmedium kann auch eine Speicherung oder Datenbank umfassen, aus der Inhalt heruntergeladen werden kann. Das nichtflüchtige computerlesbare oder maschinenlesbare Speicherungsmedium kann auch eine Vorrichtung oder ein Produkt umfassen, das zur Zeit des Verkaufs oder der Lieferung darauf gespeicherten Inhalt aufweist. Somit kann ein Liefern einer Vorrichtung mit gespeichertem Inhalt oder ein Anbieten von Inhalt zum Herunterladen über ein Kommunikationsmedium als Bereitstellen eines Herstellungsgegenstands, der ein nichtflüchtiges computerlesbares oder maschinenlesbares Speicherungsmedium mit solchem hierin beschriebenen Inhalt umfasst, verstanden werden.
  • Verschiedene Komponenten, die vorangehend als hierin beschriebene Prozesse, Server oder Werkzeuge bezeichnet werden, können ein Mittel zum Ausführen der beschriebenen Funktionen sein. Die Operationen und Funktionen, die durch verschiedene hierin beschriebene Komponenten ausgeführt werden, können durch Software, die auf einem Verarbeitungselement läuft, implementiert werden, über eingebettete Hardware oder Ähnliches oder irgendeine Kombination von Hardware und Software. Solche Komponenten können als Software-Module, Hardware-Module, Spezialzweck-Hardware (z. B. anwendungsspezifische Hardware, ASICs, DSPs etc.), eingebettete Steuerungen, festverdrahtete Schaltungsanordnung, Hardware-Logik etc. implementiert sein. Softwareinhalte (z. B. Daten, Anweisungen, Konfigurationsinformation etc.) können über einen Herstellungsgegenstand bereitgestellt werden, umfassend ein nichtflüchtiges computerlesbares oder maschinenlesbares Speicherungsmedium, das Inhalt bereitstellt, der Anweisungen darstellt, die ausgeführt werden können. Der Inhalt kann dazu führen, dass ein Computer verschiedene hierin beschriebene Funktionen/Operationen ausführt.
  • Nach hiesigem Gebrauch kann eine Liste von Gegenständen, die durch den Begriff „zumindest eine/r/s von“ verbunden sind, irgendeine Kombination der aufgezählten Begriffe bedeuten. Zum Beispiel kann der Ausdruck „zumindest eine/r/s von A, B oder C“ A; B; C; A und B; A und C; B und C; oder A, B und C bedeuten.
  • Die vorangehende Beschreibung von dargestellten Ausführungsbeispielen der Erfindung, umfassend was in der Zusammenfassung beschrieben ist, soll nicht erschöpfend sein oder die Erfindung auf die offenbarten genauen Formen begrenzen. Während spezifische Ausführungsbeispiele von und Beispiele für die Erfindung hierin zu Veranschaulichungszwecken beschrieben werden, sind verschiedene äquivalente Modifikationen innerhalb des Schutzbereichs der Erfindung möglich, wie es Fachleute auf dem relevanten Gebiet erkennen werden.
  • Diese Modifikationen können an der Erfindung im Hinblick auf die obige, detaillierte Beschreibung vorgenommen werden. Die Ausdrücke, die in den folgenden Ansprüchen verwendet werden, sollten nicht derart betrachtet werden, dass sie die Erfindung auf die spezifischen Ausführungsbeispiele einschränken, die in der Beschreibung und den Zeichnungen offenbart sind. Stattdessen soll der Schutzbereich der Erfindung vollständig durch die nachfolgenden Ansprüche bestimmt sein, die gemäß etablierten Vorgaben der Anspruchsinterpretation ausgelegt werden sollen.

Claims (20)

  1. Ein Zentrale-Verarbeitungseinheit- (CPU-) Sockel, umfassend: eine Mehrzahl von Kernkacheln; eine Eingangs-Ausgangs- (IO-) Kachel mit einem integrierten Boot-Unterstützungsblock und umfassend eine Mehrzahl von IO-Schnittstellen, umfassend zumindest eine IO-Schnittstelle, die ausgebildet ist, Boot-Signale und Boot-Firmware zu empfangen; und Logik zum Partitionieren der Mehrzahl von Kernkacheln in eine Mehrzahl von virtuellen Clustern, die CPU-Sub-Sockel umfassen, wobei jeder CPU-Sub-Sockel mit der IO-Kachel gekoppelt ist, wobei der integrierte Boot-Unterstützungsblock ausgebildet ist, das Booten von jedem der Mehrzahl von CPU-Sub-Sockeln zu ermöglichen.
  2. Der CPU-Sockel gemäß Anspruch 1, ferner umfassend einen Eingang für jeden CPU-Sub-Sockel, um ein Signal zu empfangen, das anzeigt, ob der CPU-Sub-Sockel als Legacy-Sockel zu betreiben ist.
  3. Der CPU-Sockel gemäß Anspruch 1 oder 2, wobei jeder der CPU-Sub-Sockel eine unabhängige Boot-Domäne umfasst.
  4. Der CPU-Sockel gemäß einem der vorhergehenden Ansprüche, wobei jeder der Mehrzahl von Sub-Sockeln eine Kernkachel umfasst, die als Bootstrap-Kernkachel verwendet wird.
  5. Der CPU-Sockel gemäß einem der vorhergehenden Ansprüche, wobei die Mehrzahl von IO-Schnittstellen eine IO-Schnittstelle umfasst, um die Kommunikation mit einem oder mehreren Vertrauenswürdige-Plattform-Modul (TPMs) oder einer Vorrichtung, in die ein oder mehrere TPMs eingebettet sind, zu unterstützen.
  6. Der CPU-Sockel gemäß einem der vorhergehenden Ansprüche, wobei die Mehrzahl von IO-Schnittstellen zumindest eine IO-Schnittstelle umfasst, um mit einem Baseband-Management-Controller (BMC) zu kommunizieren.
  7. Der CPU-Sockel gemäß Anspruch 6, wobei die zumindest eine IO-Schnittstelle zum Kommunizieren mit einem BMC einen Systemmanagementbus (SMB) und ein Serial Peripheral Interface (SPI) oder ein enhanced Serial Peripheral Interface (eSPI) umfasst.
  8. Der CPU-Sockel gemäß einem der vorhergehenden Ansprüche, wobei der integrierte Boot-Unterstützungsblock eine Mehrzahl von IO-Steuerungen umfasst.
  9. Der CPU-Sockel gemäß Anspruch 8, wobei die Mehrzahl von IO-Steuerungen zumindest eine enhanced Serial Peripheral Interface- (eSPI-) Steuerung und eine Systemmanagementbus- (SMB-) Steuerung umfassen.
  10. Der CPU-Sockel gemäß Anspruch 8 oder 9, wobei die Mehrzahl von IO-Schnittstellen in jeweilige IO-Steuerungen integriert oder mit denselben integriert sind.
  11. Eine Rechenplattform, umfassend: eine Firmware-Speicherungsvorrichtung, in der Plattform-Firmware umfassend Boot-Firmware gespeichert ist; eine Managementvorrichtung; und einen Zentrale-Verarbeitungseinheit- (CPU-) Sockel, umfassend eine Mehrzahl von Kernkacheln; eine Eingangs-Ausgangs- (IO-) Kachel mit einem integrierten Boot-Unterstützungsblock und mit einer Mehrzahl von IO-Schnittstellen, umfassend zumindest eine IO-Schnittstelle, die ausgebildet ist, Boot-Signale von der Managementvorrichtung zu empfangen und umfassend eine IO-Schnittstelle, die über einen IO-Link mit der Firmware-Speicherungsvorrichtung gekoppelt ist; und Logik zum Partitionieren der Mehrzahl von Kernkacheln in eine Mehrzahl von virtuellen Clustern, die CPU-Sub-Sockel umfassen, wobei jeder CPU-Sub-Sockel mit der IO-Kachel gekoppelt ist, wobei der CPU-Sockel ausgebildet ist, auf die Boot-Firmware von der Firmware-Speicherungsvorrichtung zuzugreifen, und der integrierte Boot-Unterstützungsblock ausgebildet ist, das Booten jedes der Mehrzahl von CPU-Sub-Sockeln zu ermöglichen.
  12. Die Rechenplattform gemäß Anspruch 11, wobei der integrierte Boot-Unterstützungsblock eine Mehrzahl von IO-Steuerungen umfasst und wobei jeweilige IO-Schnittstellen aus der Mehrzahl von IO-Schnittstellen in jeweilige IO-Steuerungen integriert oder mit denselben gekoppelt sind.
  13. Die Rechenplattform gemäß Anspruch 11 oder 12, wobei die Rechenplattform eine Multisockel-Rechenplattform ist, wobei der CPU-Sockel ein erster CPU-Sockel ist, ferner umfassend einen zweiten CPU-Sockel, der eine ähnliche Konfiguration wie der erste CPU-Sockel aufweist, umfassend eine Mehrzahl von Sub-Sockeln, und gekoppelt mit einer zweiten Firmware-Speicherungsvorrichtung, in der eine zweite Plattform-Firmware umfassend eine zweite Boot-Firmware gespeichert ist, und gekoppelt mit einer zweiten Managementvorrichtung, wobei der zweite CPU-Sockel ausgebildet ist, auf die zweite Boot-Firmware von der zweiten Firmware-Speicherungsvorrichtung zuzugreifen, und der integrierte Boot-Unterstützungsblock ausgebildet ist, das Booten jedes der Mehrzahl von CPU-Sub-Sockeln in dem zweiten CPU-Sockel zu ermöglichen.
  14. Die Rechenplattform gemäß einem der Ansprüche 11-13, wobei die Managementvorrichtung einen Baseboard-Management-Controller (BMC) umfasst.
  15. Die Rechenplattform gemäß Anspruch 14, wobei der BMC ein oder mehrere eingebettete Vertrauenswürdige-Plattform-Module (TPMs) umfasst.
  16. Ein Verfahren, das auf einer Rechenplattform implementiert ist, umfassend einen Zentrale-Verarbeitungseinheit- (CPU-) Sockel, der eine Mehrzahl von Kernkacheln umfasst, die in eine Mehrzahl von Clustern partitioniert sind, und wirksam mit einer Firmware-Speicherungsvorrichtung, in der Plattform-Firmware gespeichert ist, gekoppelt sind, umfassend: Aufzählen der Mehrzahl von Clustern; und für jedes Cluster, das aufgezählt wird, Booten des Clusters durch Laden und Ausführen, über eine Bootstrap-Kernkachel für das Cluster, eines Boot-Abschnitts der Plattform-Firmware, die in der Firmware-Speicherungsvorrichtung gespeichert ist, wobei jedes Cluster eine unabhängige Boot-Domäne umfasst.
  17. Das Verfahren gemäß Anspruch 16, wobei die CPU einen integrierten Boot-Unterstützungsblock umfasst, der eine Mehrzahl von Eingangs-Ausgangs- (IO-) Schnittstellen umfasst, umfassend eine IO-Schnittstelle, die mit der Firmware-Speicherungsvorrichtung gekoppelt ist, und eine oder mehrere IO-Schnittstellen, die mit einer Managementkomponente gekoppelt sind, ferner umfassend Empfangen von Boot-Signalen von der Managementkomponente an dem integrierten Boot-Unterstützungsblock.
  18. Das Verfahren gemäß Anspruch 17, wobei in Verbindung mit dem Aufzählen der Mehrzahl von Clustern jedem Cluster eine Cluster-ID zugewiesen wird, ferner umfassend: Verwenden einer Mehrzahl von Paketen, um Boot-Firmware an jede der Bootstrap-Kernkacheln zu übertragen, wobei die Pakete einen Header aufweisen, der eine Cluster-ID umfasst, die von dem integrierten Boot-Unterstützungsblock verwendet wird, um Pakete, die Boot-Firmware umfassen, an die Bootstrap-Kernkacheln weiterzuleiten, basierend auf der Cluster-ID, die jeder der Bootstrap-Kernkacheln zugeordnet ist.
  19. Das Verfahren gemäß einem der Ansprüche 16-18, wobei die Plattform-Firmware Unified Extensible Firmware Interface- (UEFI-) Firmware umfasst und wobei die Rechenplattform einen mit dem CPU-Sockel gekoppelten Speicher umfasst, ferner umfassend: für jedes Cluster, das aufgezählt wird, Laden von Erweiterte-UEFI-Firmware-Komponenten in einen Abschnitt des für das Cluster zugewiesenen Speichers und Einrichten der Erweiterte-UEFI-Firmware-Komponente für Laufzeitoperationen.
  20. Das Verfahren gemäß Anspruch 19, ferner umfassend: für jedes Cluster, das aufgezählt wird, Booten eines Betriebssystems (OS) durch Laden einer Instanz des OS von einer mit dem CPU-Sockel gekoppelten Speicherungsvorrichtung oder über eine Speicherungsvorrichtung, auf die über eine mit dem CPU-Sockel gekoppelte Netzwerkschnittstelle zugegriffen wird, wobei jeweilige Instanzen des OS für jedes Cluster gebootet werden und in einen jeweiligen Abschnitt des für jedes Cluster zugewiesenen Speichers geladen werden.
DE102022107800.0A 2021-07-23 2022-04-01 Booten und verwenden eines einzelnen cpu-sockels als partitionierte multi-cpu-plattform Pending DE102022107800A1 (de)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US17/384,447 2021-07-23
US17/384,447 US20210349731A1 (en) 2021-07-23 2021-07-23 Booting and using a single cpu socket as a multi-cpu partitioned platform

Publications (1)

Publication Number Publication Date
DE102022107800A1 true DE102022107800A1 (de) 2023-01-26

Family

ID=78412644

Family Applications (1)

Application Number Title Priority Date Filing Date
DE102022107800.0A Pending DE102022107800A1 (de) 2021-07-23 2022-04-01 Booten und verwenden eines einzelnen cpu-sockels als partitionierte multi-cpu-plattform

Country Status (2)

Country Link
US (1) US20210349731A1 (de)
DE (1) DE102022107800A1 (de)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11847226B1 (en) * 2020-11-25 2023-12-19 American Megatrends International, Llc Baseboard Management Controller (BMC)-based security processor
US20220244966A1 (en) * 2021-02-03 2022-08-04 Ampere Computing Llc Multi-socket computing system employing a parallelized boot architecture with partially concurrent processor boot-up operations, and related methods

Also Published As

Publication number Publication date
US20210349731A1 (en) 2021-11-11

Similar Documents

Publication Publication Date Title
DE102007012448B4 (de) Ein chipsatz-unabhängiges Verfahren für lokale Aktualisierung und Konfigurierung eines System-BIOS
DE112011105298B4 (de) Reduzieren des Energieverbrauchs von Uncore-Schaltkreisen eines Prozessors
DE60018807T2 (de) Verfahren und vorrichtung zur wiederherstellung der konfiguration eines rechners
DE19580606C2 (de) Plattenlaufwerksverbinderschnittstelle zur Verwendung an einem PCI-Bus
DE60319125T2 (de) Integrierte schaltung mit mehreren betriebsarten
DE102022107800A1 (de) Booten und verwenden eines einzelnen cpu-sockels als partitionierte multi-cpu-plattform
DE112006003598T5 (de) Fehlertolerantes Booten in Multiprozessorsystemen
DE102009061252B3 (de) Vorrichtung, Verfahren und System zur Verarbeitung einer Transaktion auf einem PCI-Bus mittels eines Root-Komplexes
DE102020133738A1 (de) Firmware-update-techniken
DE112010002425B4 (de) Delegieren einer Anfrageoperation an eine ander Einrichtung
DE112004001887B4 (de) Optimierung der SMI-Behandlung und -Initialisierung
DE4417068A1 (de) Verfahren und Einrichtung zum Betreiben eines Einzel-Prozessor-Computersystems als Mehr-Prozessor-System
DE10393727T5 (de) Prozessor-Cache-Speicher als RAM zur Ausführung von Boot-Code
DE10234991A1 (de) Hostcontrollerdiagnose für einen seriellen Bus
DE112010004963T5 (de) Synchronisieren von SIMD Vektoren
DE10393969T5 (de) Mechanismus zur Verteilung von Unterbrechungen niedrigster Priorität unter Berücksichtigung des Prozessorleistungszustands
DE102007009300B4 (de) Rechnersystem und Verfahren zum Betreiben eines Rechnersystems
DE112005002420T5 (de) Verfahren und Vorrichtung zum Pushen von Daten in den Cache eines Prozessors
DE102014003798A1 (de) Verfahren zum Booten eines heterogenen Systems und Präsentieren einer symmetrischen Kernansicht
DE60100848T2 (de) Virtuelles rom für geräte-aufzählung
DE102010034555A1 (de) Bereitstellen von Zustandsspeicher in einem Prozessor für Systemmanagement-Modus
DE112012005209T5 (de) Brückenfunktion zwischen Virtual Machine Monitor und Bare-Metal-Bootvorgang
DE60304455T2 (de) Usb host controller
DE69724884T2 (de) Gerät und Verfahren zur positiven und subtraktiven Adressdekodierung auf einem Bus
DE112020006716T5 (de) Plattformsteuerungshub(PCH)-Chipsätze in Plattformen als erweiterte(r) EA-Expander(s)