DE102021121933A1 - Nahtlose codeinjektion im systemverwaltungsmodus - Google Patents

Nahtlose codeinjektion im systemverwaltungsmodus Download PDF

Info

Publication number
DE102021121933A1
DE102021121933A1 DE102021121933.7A DE102021121933A DE102021121933A1 DE 102021121933 A1 DE102021121933 A1 DE 102021121933A1 DE 102021121933 A DE102021121933 A DE 102021121933A DE 102021121933 A1 DE102021121933 A1 DE 102021121933A1
Authority
DE
Germany
Prior art keywords
code
processor
execution mode
bios
code injection
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
DE102021121933.7A
Other languages
English (en)
Inventor
Sarathy Jayakumar
Jiewen Yao
Murugasamy Nachimuthu
Ruixia Li
Siyuan Fu
Chuan Song
Wei Xu
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 DE102021121933A1 publication Critical patent/DE102021121933A1/de
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/57Certifying or maintaining trusted computer platforms, e.g. secure boots or power-downs, version controls, system software checks, secure updates or assessing vulnerabilities
    • G06F21/572Secure firmware programming, e.g. of basic input output system [BIOS]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/70Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer
    • G06F21/71Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure computing or processing of information
    • G06F21/74Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure computing or processing of information operating in dual or compartmented mode, i.e. at least one secure mode
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2221/00Indexing scheme relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/03Indexing scheme relating to G06F21/50, monitoring users, programs or devices to maintain the integrity of platforms
    • G06F2221/033Test or assess software

Landscapes

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

Abstract

Verfahren und Vorrichtung zur nahtlosen Codeinjektion im Systemverwaltungsmodus (SMM). Beim Booten des Computersystems oder der Plattform wird im BIOS ein Codeinjektionshörer installiert. Während des Laufzeitbetriebs des Betriebssystems (OS) wird ein Codeinjektionsabbild des sicheren Ausführungsmodus, das injizierten Code umfasst, empfangen und an das BIOS geliefert. Der Prozessorausführungsmodus wird in einen sicheren Ausführungsmodus wie etwa SMM umgeschaltet, und im sicheren Ausführungsmodus wird auf den injizierten Code zugegriffen und dieser wird auf dem Prozessor ausgeführt, um eine oder mehrere Änderungen, wie etwa Patching des Prozessormikrocodes, eine Profil- oder Richtlinienrekonfiguration und einen Sicherheitsfix zu bewirken. Die Lösung ermöglicht es, Plattformänderungen während der OS-Laufzeit vorzunehmen, ohne das System neu starten zu müssen.

Description

  • PRIORITÄTSANSPRUCH
  • Diese Anmeldung beansprucht den Nutzen und die Priorität der vorläufigen US-Anmeldung Nr. 63/082,627 , eingereicht am 24. September 2020, deren gesamter Inhalt hiermit durch Bezugnahme in seiner Gesamtheit aufgenommen wird.
  • HINTERGRUNDINFORMATIONEN
  • Das Geschäftsmodell des großmaßstäblichen Einsatzes einer Serverflotte ergibt die Notwendigkeit, dass Systemrücksetzungen vermieden werden sollten und nur als eine Option des letzten Mittels behandelt werden sollten. Dies wird dadurch beeinflusst, dass bei Anbietern von Cloud-Diensten (CSP: Cloud Service Provider) erhebliche Kosten für eine Systemausfallzeit und Arbeitslaststörung anfallen würden, die durch Systemrücksetzungen oder Kernel-Neustarts verursacht werden. Gleichzeitig bestehen zunehmend CSP-Anforderungen an die Laufzeitrekonfiguration, Sicherheitsfixe usw.
  • Dies bringt einige Probleme mit sich. Ein Problem ergibt sich zum Beispiel aus dem Injizieren einer Plattformkonfiguration/Verhaltensänderung oder eines Sicherheitsfixes. Dies ist typischerweise eine einmalige Injektion eines Profils oder einer Richtlinienrekonfiguration oder eines Sicherheitsfixes zum Sperren eines Registers. Beispielsweise könnte es manche Leistungsknöpfe oder eine Fehlerschwerezuordnung geben, die rekonfiguriert werden müssen, oder eine Notwendigkeit, ein Register als Ergebnis eines Sicherheitsfixes zu sperren. Zusätzlich könnten diese Konfigurationsregister durch SMM (Systemverwaltungsmodus)-Privilegien geschützt werden (z. B. nur Code mit SMM-Privilegien wird in der Lage sein, sie zu modifizieren). Selbst wenn sie für Ring-0 zugänglich sind, würde es einen signifikanten Freigabeaufwand bzw. Kernel-Änderungen des Betriebssystems (OS) erfordern, die einen Kernel-Neustart erfordern, der störend ist.
  • Bei einem anderen Problem stellt ein Verkäufer Mikrocode (µCode)-Patches für Prozessorbug-/Sicherheitsfixe bereit. Häufig kann ein bestimmtes µCode-Patch ein neues maschinenspezifisches Register (MSR) für bestimmte Konfigurationen erzeugen, das programmiert werden müsste, um es wirksam zu machen. Heutzutage muss ein OS-Kernel-Patch vor der µCode-Aktualisierungsfreigabe bereitgestellt werden. Der Kunde muss seinen OS-Kernel vor der µCode-Patch-Aktualisierung patchen, und dies würde typischerweise ein Kernel-Patching und eine Plattform-/Kernel-Rücksetzung erfordern, was störend ist. Diese erfordern ein BIOS (z. B. Firmware)-Update und/oder ein Kernel-Update gefolgt von einem System-Rücksetzung/Kernel-Rücksetzung, damit es zur Wirkung kommt, was dem Ethos und der Forderung entgegensteht, stark störende Neustarts des Systems/Kernels zu vermeiden.
  • Figurenliste
  • Die vorstehenden Aspekte und viele der dazugehörigen Vorteile dieser Erfindung werden besser ersichtlich, wenn dieselben unter Bezugnahme auf die folgende ausführliche Beschreibung in Verbindung mit den zugehörigen Zeichnungen besser verstanden werden, wobei sich gleiche Bezugszeichen über alle verschiedenen Ansichten hinweg auf gleiche Teile beziehen, sofern nicht anders angegeben:
    • 1 ist ein Flussdiagramm, das den Boot-Fluss des System-BIOS veranschaulicht, gemäß einer Ausführungsform;
    • 2 ist ein schematisches Schaubild, das die Struktur einer UEFI-Kapsel veranschaulicht, gemäß einer Ausführungsform;
    • 3 ist ein Flussdiagramm, das mit einer Laufzeit-SMM-Codeinjektion assoziierte Operationen veranschaulicht, gemäß einer Ausführungsform, und
    • 4 ist ein Schaubild, das eine beispielhafte Verwendung einer nahtlosen SMM-Codeinjektion zum Laden eines neuen Mikrocode-Patches und Aktualisieren eines konfigurationsspezifischen MSR in einem einzigen SMM-Codeinjektionsprozess veranschaulicht, gemäß einer Ausführungsform;
    • 5 ist ein Schaubild, das ein alternatives Injektionsabbildkapselzufuhrschema veranschaulicht, das einen Außerbandkanal unter Verwendung einer Basisboardverwaltungssteuerung (BMC) einsetzt, gemäß einer Ausführungsform; und
    • 6 ist ein Schaubild einer Rechenplattform oder eines Rechensystems, das mit Aspekten der hierin beschriebenen und veranschaulichten Ausführungsformen implementiert werden kann.
  • AUSFÜHRLICHE BESCHREIBUNG
  • Ausführungsformen von Verfahren und Einrichtungen zur nahtlosen Codeinjektion im Systemverwaltungsmodus sind hierin beschrieben. In der folgenden Beschreibung werden zahlreiche Einzelheiten dargelegt, um ein umfassendes Verständnis von Ausführungsformen der Erfindung bereitzustellen. Ein Fachmann auf dem einschlägigen Gebiet wird jedoch erkennen, dass die Erfindung ohne eines oder mehrere der spezifischen Details oder mit anderen Verfahren, Komponenten, Materialien usw. ausgeführt werden kann. An anderen Stellen sind wohlbekannte Strukturen, Materialien oder Operationen nicht im Detail dargestellt oder beschrieben, um eine Verunklarung von Aspekten der Erfindung zu vermeiden.
  • Durchwegs bedeutet in dieser Spezifikation Bezugnahme auf „(genau) eine Ausführungsform“ oder „eine Ausführungsform“, dass ein in Verbindung mit der Ausführungsform beschriebenes bestimmtes Merkmal, eine bestimmte Struktur oder eine bestimmte Charakteristik in mindestens einer Ausführungsform der vorliegenden Erfindung enthalten ist. Dementsprechend beziehen sich die Erscheinungen der Formulierung „bei einer Ausführungsform“ an verschiedenen Stellen über die gesamte Patentschrift hinweg nicht alle notwendigerweise auf die gleiche Ausführungsform. Zudem können die speziellen Merkmale, Strukturen oder Charakteristiken bei einer oder mehreren Ausführungsformen auf eine beliebige geeignete Weise kombiniert werden.
  • Zur Klarheit können einzelne Komponenten in den Figuren hierin anstatt durch eine bestimmte Bezugszahl auch durch ihre Beschriftungen in den Figuren bezeichnet werden. Zusätzlich können Bezugszahlen, die sich auf einen bestimmten Komponententyp (im Gegensatz zu einer bestimmten Komponente) beziehen, mit einer Bezugszahl gezeigt werden, gefolgt von „(typ)“, was „typisch“ bedeutet. Es versteht sich, dass die Konfiguration dieser Komponenten für ähnliche Komponenten, die existieren können, in den Zeichnungsfiguren der Einfachheit und Klarheit halber aber nicht gezeigt sind, oder anderweitig ähnliche Komponenten, die nicht mit getrennten Referenznummern beschriftet sind, typisch ist. Umgekehrt ist „(typ)“ nicht dahin auszulegen, dass die Komponente, das Element usw. typischerweise für ihre/seine offenbarte Funktion, Implementierung, ihren/seinen Zweck usw. verwendet wird.
  • Bei hier offenbarten Ausführungsformen wird ein ,SMM-Codeinjektionshörer‘ als der SMM-Root-of-Trust for Update (RTU) eingeführt, um das SMM-Codeinjektionspaket zu verarbeiten. Um eine SMM-Codeinjektion zu unterstützen, beinhalten die Ausführungsformen Folgendes:
    1. 1. Einen Mechanismus zum Verkapseln des neuen SMM-Firmwarecodes und der Ressourcenzugriffsmetadaten als Codeinjektionsnutzlast. Eine der Ausführungsformen davon könnte eine UEFI-Kapsel sein, aber diese Offenbarung schreibt keine Implementierungsrichtung vor.
    2. 2. Einen Mechanismus zum Authentifizieren des eingehenden Bildes.
    3. 3. Einen Mechanismus zum Entsperren von Systemressourcen (E/A, MSR, Registerkontext usw.) zur Koexistenz mit Systemressourcenverteidigungstechnologie.
    4. 4. Einen Mechanismus zum Laden, Ausführen und Entladen des Codeinjektionsabbildes, wobei eine Ausführungsspur vorgesehen ist, die bei Bedarf ein Zurücksetzen auf einen vorherigen injizierten Code ermöglicht.
  • Für Systemressourcenverteidigungsplattformen ist dieser Codeinjektionshörer durch die SMM-Richtlinie dafür angepasst, in einer Ring0-Umgebung (im Gegensatz zu anderen deprivilegierten SMI-Handlern, die in Ring3 laufen) zu laufen.
  • Gemäß den Sicherheitsanforderungen einer solchen Codeinjektion verwendet der Hörer PKCS (Public Key Cryptography Standards) und RSA-Hashing und SHA-Verschlüsselungsalgorithmen. Eine Ausführungsform verwendet PKCS7 (Public Key Cryptography Standards Nr. 7 - Cryptographic Message Syntax) mit SHA-384-Hash und RSA-1024-Verschlüsselungsalgorithmus, obwohl diese Offenbarung die Implementierungsauswahl nicht vorschreibt und zukünftig zu SHA512/RSA1024 oder besser verschoben werden kann.
  • Die hier offenbarten Lösungen sind bahnbrechend im CSP-Ökosystem und liefern unmittelbaren Wert an Prozessorverkäufer und deren Kunden. Es ermöglicht den Prozessorverkäufern und Kunden, sofort auf Sicherheitsbedrohungen, Leistungsanpassung und Bug-Fixe zu reagieren, um einige zu nennen.
  • Reduzierung kostspieliger Systemausfallzeiten:
  • Das Geschäftsmodell des großmaßstäblichen Einsatzes einer Serverflotte ergibt die Notwendigkeit, dass Systemrücksetzungen vermieden werden sollten und nur als eine Option des letzten Mittels behandelt werden sollten, da bei CSPs erhebliche Kosten für eine Systemausfallzeit und Arbeitslaststörung anfallen würden, die durch Systemrücksetzungen verursacht werden. Gleichzeitig gibt es Bug-Fixe, Sicherheitsfixe und Leistungsanpassungen, die periodisch und häufig unmittelbar eingesetzt werden müssen. Hierin beschriebene Ausführungsformen lösen dieses Problem durch Bereitstellen eines Mechanismus zum Injizieren eines Einmalcodes im SMM auf eine sichere Weise. Dadurch wird die aufwendige Systemrücksetzung vermieden.
  • Schnelles Einsetzen von Sicherheitsfixen:
  • Sicherheitsfixe werden typischerweise als Teil eines Mikrocodepatch-Updates geliefert. Häufig fügen diese Patches neue MSRs hinzu, die durch das OS behandelt werden müssen. Daraus ergibt sich die Notwendigkeit, das OS-Ökosystem vorzubereiten (lange Vorlaufzeiten und Freigabeaufwand), bevor ein Sicherheitsfix mit einem µCode Patch geliefert werden kann. Die Ausführungsformen lösen dieses Problem durch Bereitstellen eines Mechanismus zum sicheren Injizieren einer Einmal-Nutzlast (µCode + der Code zum Behandeln des MSR) im SMM. Dies vermeidet lange und teure Freigaben des OS-Ökosystems sowie System- und Kernel-Rücksetzungen.
  • 1 zeigt ein Flussdiagramm 100, das den Boot-Fluss des System-BIOS veranschaulicht, gemäß einer Ausführungsform. Wie in einem Block 102 gezeigt, installiert das BIOS während eines Boot-Prozesses einen SMM-Codeinjektionshörer als Teil eines SMM-Infrastrukturcodes. In einem Block 104 füllt das BIOS optional zusätzlichen Speicherplatz in einem Systemmanagement-Direktzugriffsspeicher (SMRAM) für ein injiziertes Abbild, damit es später ausgeführt wird, wenn es injiziert ist. In einem Block 106 produziert das BIOS eine BIOS-OS-Schnittstelle zum Liefern des SMM-Codeinjektionsabbildes in der Laufzeit. Zum Beispiel könnten manche Ausführungsformen ein ACPI-Verfahren (ACPI: Advance Configuration and Power Interface), einen geschützten Laufzeitmechanismus oder einen UEFI-Laufzeitdienst (UEFI: Unified Extensible Firmware Interface) wählen. Das BIOS kann auch einen Außerbandkanal (OOB: Out-Of-Band) zum Liefern des Abbildes durch eine Verwaltungseinheit (wie eine Basisboardverwaltungssteuerung (BMC)) erzeugen; zum Beispiel eine OOB-Aktualisierung eines reservierten Flash-Gebiets, um das SMM-Codeinjektionsabbild einzusetzen.
  • In einem Block 108 erzeugt der BIOS-Aufbauprozess das SMM-Codeinjektionsabbild zusammen mit einer neuen SMM-Zugriffsrichtlinie für den injizierten Code und den assoziierten Authentifizierungssignaturen. Anschließend wird dieses Bild zur Laufzeit an das BIOS geliefert und verarbeitet, wie in einem Block 110 dargestellt.
  • 2 zeigt ein Schaubild 200, das den Aufbau einer UEFI-Kapsel veranschaulicht, gemäß einer Ausführungsform. Die Blöcke oberster Ebene im Schaubild 200 weisen eine UEFI-Kapsel 202, einen injizierten Code 204, ein SMM-Ressourcenzugriffsprofil 206, Ressourcen 208 und eine sichere Speicherung 210 auf. Die UEFI-Kapsel 202 weist injizierten Code 204, eine neue Ressourcenzugriffsrichtlinie 214 und Authentifizierungsdaten (Auth-Daten) 216 auf. Der injizierte Code 204 weist eine Eintrittspunktfunktion 218 und eine oder mehrere andere Funktionen 220 auf.
  • Das SMM-Ressourcenzugriffsprofil weist eine SMM-Informationstabelle 222, eine Seitentabelle 224, eine GDT, die eine E/A-Bitmap/IDT 226 umfasst, Richtlinienseiten 228, 230 und 232 und Authentifizierungsdaten 234 auf. Die Seitentabelle 224 weist Seitentabelleneinträge für den MMIO-Speicher (MMIO: Memory Mapped Input Output) 236 auf. Die GDT 226 weist eine E/A-Ressource 238 auf. Die Richtlinienseite 228 umfasst eine MSR-Bitmap, die mit einer MSR 240 assoziiert ist. Die Richtlinienseite 230 beinhaltet ein Speicherstufenregister 242 (z. B. GPR), während die Richtlinienseite 232 andere Register wie etwa FP und DR 244 beinhaltet. Die Authentifizierungsdaten 234 verwenden einen öffentlichen Schlüssel 246.
  • 3 zeigt ein Flussdiagramm 300, das Operationen veranschaulicht, die mit einer Laufzeit-SM-Codeinjektion assoziiert sind, gemäß einer Ausführungsform. Ein OS-Agent sendet ein neues SMM-ausführbares Abbild durch die BIOS-OS-Schnittstelle oder den OOB-Verwaltungskanal (OOB: Out of Band) an den SMM-Hörer. In diesem Beispiel befindet sich das ausführbare SMM-Bild in dem EFI-Treiber 204 der UEFI-Kapsel 202. Der SMI-Codeinjektionshörer bereitet die Umgebung vor und lädt das ausführbare SMM-Abbild in den SMRAM. In einem Block 302 führt der SMI-Codeinjektionshörer eine Authentifizierung und andere Vorprüfungen durch. Zum Beispiel verifiziert der SMI-Codeinjektionshörer das ausführbare SMM-Abbild (siehe oben unter ,Sicherheit‘). Falls die Verifikation fehlschlägt, wird der SMM-Hörer das neue ausführbare SMM-Abbild zurückweisen, die Umgebung bereinigen und direkt zurückkehren. Optional kann der Hörer Grenzprüfungen durchführen, um sicherzustellen, dass das injizierte Abbild erfolgreich ausgeführt werden kann. Zum Beispiel Vorverarbeiten der CSR/MSR-Zugriffsrechte des neuen SMM-Moduls.
  • In einem Block 304 wird der injizierte Code verschoben und in den SMRAM abgelegt. Der SMM-Hörer kann auch überprüfen, dass das neue Injektionsmodul einen zugewiesenen CODE-Injektions-SMRAM-Raum aufweist und andere SMRAM-Gebiete nicht überlappt.
  • Der Hörer bereitet vor, die neue Ressourcenzugriffsrichtlinie für den injizierten Code durchzusetzen und die SMM-Seitentabelle zur Ausführung zu entsperren. In einem Block 306 wird eine Ressourcenzugriffsrichtlinie durchgesetzt. Die SMM-Seitentabelle wird dann zur Ausführung in einem Block 308 entsperrt. Nach dieser Vorbereitung der Umgebung tritt das SYS in einem Block 310 zu Ring3 aus und führt dann den injizierten Code in Ring3 aus, um das System zu patchen, wie in einem Block 312 gezeigt. Der injizierte Code vervollständigt seine Funktionalität, wie etwa Schreiben in bestimmte privilegierte SMM-Register, und kehrt zurück.
  • Nach Block 312 kehrt in einem Block 314 zum Hörer-SYS-Eintrag zu Ring0 zurück. Der Zuhörer stellt dann in einem Block 316 die ursprüngliche Ressourcenzugriffsrichtlinie wieder her und reinigt die Umgebung. In einem Block 318 werden Ausführungsverfolgungsdaten aufgezeichnet. Der SMM-Hörer gibt dann die Ausführung zurück zum OS.
  • Der SMM-Codeinjektionshörer ermöglicht es, mehrere Laufzeit-SM-Codeinjektionen in einem Leistungszyklus ohne Systemrücksetzung zu planen. Es ist möglich, dass ein vorhergehendes injiziertes Abbild einen Defekt aufweist oder anderweitig fehlgeschlagen ist. In diesem Fall muss ein neuer ,Antidot-Code‘ angelegt und erneut injiziert werden, um das Roll-Back oder einen nachfolgenden Fix durchzuführen. In einem solchen Fall werden die Ausführungsverfolgeinformationen früherer injizierter SMM-Abbilder verwendet, um den Systemzustand zu reproduzieren, das Problem grundursächlich zu erzeugen und einen erfolgreichen Antidot-Code zu erstellen.
  • Der SMM-Codeinjektionshörer behält unter den Ausführungsverfolgeinformationen den Code-Injektionsfluss während der Laufzeit und stellt Benutzerinformationen bereit, wie etwa (und nicht beschränkt auf):
    • • Plattform-Firmware-ID
    • • SMM-Codeinjektionshörer-ID
    • • Informationen der Abbildauthentifizierungsstelle
    • • Historiendaten eines vorherigen injizierten Bildes, wie etwa Codeinjektionsabbild-ID, Ausführungszeit, Ergebnisdaten usw.
    • • Der durch das Codeinjektionsabbild bereitgestellte Fehlercode/Nachrichten gibt an, was geschehen ist.
    • • Andere notwendige Nachverfolgungsinformationen.
  • Verwenden einer SMM-Codeinjektion zum Lösen des Mikrocode- + MSR-Problems
  • 4 zeigt ein Schaubild 400, das eine beispielhafte Verwendung einer nahtlosen SMM-Codeinjektion zum Laden eines neuen Mikrocode-Patches und Aktualisieren einer konfigurationsspezifischen MSR in einem einzigen SMM-Codeinjektionsprozess ohne OS-Kernel-Patching, Plattformrücksetzung oder Kernel-Rücksetzung veranschaulicht. Allgemein stellt ein Prozessoranbieter Mikrocode-Patches für Prozessorbug-/Sicherheitsfixe bereit. Häufig kann ein gegebener Mikrocode-Patch ein neues MSR für gewisse Konfigurationen erzeugen, das programmiert werden müsste, um es verwendbar zu machen.
  • Durch Verwenden des hier beschriebenen SMM-Codeinjektionsverfahrens kann das Mikrocode-Aktualisierungspatch als Teil des Codeinjektionsabbildes zusammen mit dem Mikrocode-Ladecode und der MSR-Einstelloperation aufgebaut werden. Auf diese Weise können das Mikrocode-Aktualisierungsladen und die zugehörige MSR-Einstellung durch einen einzigen SMM-Codeinjektionsfluss abgeschlossen werden und eine Plattform-/Kernel-Rücksetzung kann vermieden werden.
  • Wie in 4 gezeigt, sendet ein OS-Agent wie zuvor eine UEFI-Kapsel 202 durch die BIOS-OS-Schnittstelle oder den OOB-Verwaltungskanal an den SMM-Codeinjektions-Handler. Der SMM-Codeinjektions-Handler authentifiziert das Kapselabbild in einem Block 402 und führt den EFI-Treiber in der UEFI-Kapsel in einem Block 404 aus. Wie durch die Blöcke 406 und 408 dargestellt, lokalisiert dies die Mikrocode-Aktualisierung in der Kapsel, lädt den Mikrocode in die CPU (oder den Kern in der CPU, die das Abbild ausführt). Das neue MSR, das spezifisch für den Mikrocode ist, wird dann geschrieben, um das System zu patchen, wie in einem Block 410 gezeigt ist. Die Verarbeitung kehrt dann zum OS zurück, wodurch der Zyklus abgeschlossen wird.
  • 5 zeigt ein Schaubild 500, das ein alternatives Injektionsabbildkapselzufuhrschema veranschaulicht, das einen OOB-Kanal unter Verwendung eines BMC einsetzt, gemäß einer Ausführungsform. Das Diagramm 500 beinhaltet einen BMC 502, der über eine PCIe- oder eSPI (Enhanced Serial Peripheral Interface)-Verbindung 506 mit einer Host-CPU 504 gekoppelt ist. Der BMC 502 weist eine BMC-Firmware 508, einen BMC-Puffer 510, einen MMIO-Bereich (MMIO: (Memory-Mapped Input Output) 512 und ein injiziertes Kapselabbild 514 auf. Die Host-CPU 504 beinhaltet eine OS/Virtuelle Maschinenüberwachungsvorrichtung (VMM) 516, einen ACPI/ASL (ACPI Source Language)-Block 518, einen reservierten BIOS-Speicher 520, eine SMM-Logik 522, einen MMIO-Bereich 524 und eine injizierte Abbildkapsel 514a.
  • Während der OS-Laufzeit wird eine injizierte Abbildkapsel 514 einschließlich Authentifizierungsinformationen 526 und ein SMM-Codeinjektionsmodul 528 bei BMC 502 empfangen. Zum Beispiel kann ein BMC auf einer Plattform mit einem Verwaltungsnetzwerk oder dergleichen gekoppelt sein oder anderweitig mit einem Netzwerk oder einer Faserschnittstelle (nicht gezeigt) verbunden sein, die zum Bereitstellen von Plattformverwaltungssteuersignalen und -daten verwendet wird. Beim Empfangen der injizierten Abbildkapsel 514 wird ein BMC-Agent, der in der BMC-Firmware 508 implementiert ist, ausgeführt, um die injizierte Abbildkapsel unter Verwendung von Authentifizierungsinformationen 526 zu validieren. Falls die Validierung erfolgreich ist, wird die injizierte Abbildkapsel 514 in einen Teil des BMC-Puffers 510 kopiert. Die MMIO-Bereiche 512 und 524 werden dann implementiert, um die injizierte Abbildkapsel unter Verwendung eines OOB-Hosts/BMC-Kommunikationskanals 530 in die Host-CPU 504 zu kopieren. Für eine PCIe-Verbindung können zum Beispiel eine oder mehrere PCIe-DMA-Transaktionen verwendet werden, um die Daten zu übertragen.
  • Bei einer Ausführungsform ist der MMIO-Bereich 512 als eine Mailbox implementiert, die Transportkonstrukte zum Senden und Empfangen von Daten über den OOB-Host/BMC-Kommunikationskanal 530 aufweist. Bei manchen Ausführungsformen weisen die MMIO-Bereiche 512 und 524 einen kleineren Bereich als die injizierte Abbildkapsel 514 auf. Wenn daher die injizierte Abbildkapsel 514 an den BMC 502 gesendet wird, geht sie zuerst zu dem BMC-Puffer 510 (entweder in den DRAM oder DRAM + Flash) und gelangt nach Authentifizierung über MMIO zu dem Host.
  • Beispielhafte Plattform/System
  • 6 stellt eine Rechenplattform 600 (auch allgemein als ein Rechensystem bezeichnet) dar, auf der Aspekte der oben offenbarten Ausführungsformen implementiert werden können. Die Rechenplattform 600 beinhaltet einen oder mehrere Prozessoren 610, die Verarbeitung, Betriebsverwaltung und Ausführung von Anweisungen für die Rechenplattform 600 bereitstellen. Der Prozessor 610 kann eine beliebige Art von Mikroprozessor, Zentralverarbeitungseinheit (CPU), Grafikverarbeitungseinheit (GPU), Verarbeitungskern, Mehrkernprozessor oder andere Verarbeitungshardware zum Bereitstellen einer Verarbeitung für die Rechenplattform 600 oder eine Kombination von Prozessoren beinhalten. Der Prozessor 610 steuert den Gesamtbetrieb der Rechenplattform 600 und kann ein oder mehrere programmierbare Universal- oder Spezialmikroprozessoren, Digitalsignalprozessoren (DSPs), programmierbare Steuerungen, anwendungsspezifische integrierte Schaltungen (ASICs), programmierbare Logikvorrichtungen (PLDs) oder dergleichen oder eine Kombination solcher Vorrichtungen sein oder beinhalten.
  • In einem Beispiel beinhaltet die Rechenplattform 600 eine Schnittstelle 612, die mit dem Prozessor 610 gekoppelt ist, die eine Schnittstelle mit höherer Geschwindigkeit oder eine Schnittstelle mit hohem Durchsatz für Systemkomponenten darstellen kann, die Verbindungen mit höherer Bandbreite benötigen, wie etwa das Speichersubsystem 620 oder optionale Grafikschnittstellenkomponenten 640 oder optionale Beschleuniger 642. Die Schnittstelle 612 repräsentiert eine Schnittstellenschaltung, die eine eigenständige Komponente sein oder in einen Prozessor-Die integriert sein kann. Falls vorhanden, verbindet sich die Grafikschnittstelle 640 mit Grafikkomponenten, um einem Benutzer der Rechenplattform 600 eine visuelle Anzeige bereitzustellen. In einem Beispiel kann die Grafikschnittstelle 640 eine HD-Anzeige (HD: High Definition - hohe Auflösung) ansteuern, die einem Benutzer eine Ausgabe bereitstellt. Eine hohe Auflösung kann sich auf eine Anzeige mit einer Pixeldichte von näherungsweise 100 PPI (Pixel pro Zoll) oder mehr beziehen und kann Formate wie etwa volle HD (z. B. 1080 p), Netzhautanzeigen, 4 K (Ultrahochauflösung oder UHD) oder andere beinhalten. In einem Beispiel kann die Anzeige eine Touchscreen-Anzeige enthalten. In einem Beispiel erzeugt die Grafikschnittstelle 640 eine Anzeige basierend auf Daten, die in dem Speicher 630 gespeichert sind, oder basierend auf Operationen, die durch den Prozessor 610 ausgeführt werden, oder beides. In einem Beispiel erzeugt die Grafikschnittstelle 640 eine Anzeige basierend auf Daten, die in dem Speicher 630 gespeichert sind, oder basierend auf Operationen, die durch den Prozessor 610 ausgeführt werden, oder beides.
  • Bei manchen Ausführungsformen können die Beschleuniger 642 eine Festfunktions-Offload-Engine sein, auf die von einem Prozessor 610 zugegriffen werden kann oder von diesem verwendet werden kann. Zum Beispiel kann ein Beschleuniger unter den Beschleunigern 642 Datenkompressionsfähigkeit, Kryptographiedienste, wie etwa Public Key Verschlüsselung (PKE), Chiffre, Hash-/Authentifizierungsfähigkeiten, Entschlüsselung oder andere Fähigkeiten oder Dienste bereitstellen. Bei manchen Ausführungsformen stellt zusätzlich oder alternativ ein Beschleuniger unter den Beschleunigern 642 Feldauswahlsteuerungsfähigkeiten bereit, wie hier beschrieben. In manchen Fällen können Beschleuniger 642 in einen CPU-Sockel (z. B. einen Verbinder zu einer Hauptplatine oder Leiterplatte, die eine CPU beinhaltet und eine elektrische Schnittstelle mit der CPU bereitstellt) integriert sein. Die Beschleuniger 642 können zum Beispiel einen Einzel- oder Mehrkernprozessor, eine Grafikverarbeitungseinheit, einen Einzel- oder Mehrstufen-Cache einer logischen Ausführungseinheit, Funktionseinheiten, die zum unabhängigen Ausführen von Programmen oder Threads verwendet werden können, anwendungsspezifische integrierte Schaltungen (ASICs), neuronale Netzwerkprozessoren (NNPs), programmierbare Steuerlogik und programmierbare Verarbeitungselemente, wie etwa feldprogrammierbare Gate-Arrays (FPGAs) beinhalten. Die Beschleuniger 642 können mehrere neuronale Netzwerke, CPUs, Prozessorkerne, Universal-Grafikverarbeitungseinheiten bereitstellen oder Grafikverarbeitungseinheiten können zur Verwendung durch AI- oder ML-Modelle verfügbar gemacht werden. Das AI-Modell kann zum Beispiel eines oder eine Kombination von Folgendem verwenden oder beinhalten: ein bestärkendes Lernschema, Q-Lernschema, Tiefen-Q-Lernen oder Asynchronous Advantage Actor-Critic (A3C), kombinatorisches neuronales Netzwerk, rekurrentes kombinatorisches neuronales Netzwerk oder ein anderes AI- oder ML-Modell. Mehrere neuronale Netze, Prozessorkerne oder Grafikverarbeitungseinheiten können zur Verwendung durch AI- oder ML-Modelle bereitgestellt werden.
  • Das Speichersubsystem 620 repräsentiert den Hauptspeicher der Rechenplattform 600 und stellt eine Speicherung für Code bereit, der durch den Prozessor 610 ausgeführt werden soll, oder Datenwerte, die beim Ausführen einer Routine verwendet werden sollen. Das Speichersubsystem 620 kann eine oder mehrere Speichervorrichtungen 630 wie etwa einen Nur-Lese-Speicher (ROM), einen Flash-Speicher, eine oder mehrere Arten von Direktzugriffsspeicher (RAM) wie etwa DRAM oder andere Speichervorrichtungen oder eine Kombination solcher Vorrichtungen enthalten. Der Speicher 630 speichert und hostet unter anderem das Betriebssystem (OS) 632, um eine Softwareplattform zur Ausführung von Anweisungen in der Rechenplattform 600 bereitzustellen. Zusätzlich dazu können Anwendungen 634 auf der Softwareplattform des OS 632 aus dem Speicher 630 ausgeführt werden. Die Anwendungen 634 stellen Programme dar, die ihre eigene Betriebslogik aufweisen, um die Ausführung einer oder mehrerer Funktionen durchzuführen. Die Prozesse 636 stellen Agenten oder Routinen dar, die dem OS 632 oder einer oder mehreren Anwendungen 634 oder einer Kombination Hilfsfunktionen bereitstellen. Das OS 632, die Anwendungen 634 und die Prozesse 636 stellen eine Softwarelogik bereit, um Funktionen für die Rechenplattform 600 bereitzustellen. In einem Beispiel enthält das Speichersubsystem 620 eine Speichersteuerung 622, die eine Speichersteuerung zum Erzeugen und Ausgeben von Befehlen an den Speicher 630 ist. Es versteht sich, dass die Speichersteuerung 622 ein physischer Teil des Prozessors 610 oder ein physischer Teil der Schnittstelle 612 sein könnte. Beispielsweise kann die Speichersteuerung 622 eine integrierte Speichersteuerung sein, die in eine Schaltung mit dem Prozessor 610 integriert ist.
  • Obwohl nicht speziell veranschaulicht, versteht es sich, dass die Rechenplattform 600 einen oder mehrere Busse oder Bussysteme zwischen Vorrichtungen beinhalten kann, wie etwa einen Speicherbus, einen Grafikbus, Schnittstellenbusse oder andere. Busse oder andere Signalleitungen können Komponenten kommunikativ oder elektrisch miteinander koppeln oder die Komponenten sowohl kommunikativ als auch elektrisch koppeln. Busse können physische Kommunikationsleitungen, Punkt-zu-Punkt-Verbindungen, Brücken, Adapter, Steuerungen oder eine andere Schaltungsanordnung oder eine Kombination beinhalten. Busse können zum Beispiel einen Systembus und/oder einen Peripheral Component Interconnect (PCI)-Bus und/oder einen Hyper Transport- oder Industriestandard-Architektur (ISA)-Bus und/oder einen Small Computer System Interface (SCSI)-Bus und/oder einen Universal Serial Bus (USB) oder einen Bus nach dem Standard 1394 des Institute of Electrical and Electronics Engineers (IEEE) (Firewire) beinhalten.
  • In einem Beispiel beinhaltet die Rechenplattform 600 eine Schnittstelle 614, die mit der Schnittstelle 612 gekoppelt sein kann. In einem Beispiel repräsentiert die Schnittstelle 614 eine Schnittstellenschaltung, die eigenständige Komponenten und eine integrierte Schaltungsanordnung enthalten kann. In einem Beispiel sind mehrere Benutzerschnittstellenkomponenten oder Peripheriekomponenten oder beide mit der Schnittstelle 614 gekoppelt. Die Netzwerkschnittstelle 650 stellt der Rechenplattform 600 die Fähigkeit bereit, mit entfernten Vorrichtungen (z. B. Servern oder anderen Rechenvorrichtungen) über ein oder mehrere Netzwerke zu kommunizieren. Die Netzwerkschnittstelle 650 kann einen Ethernet-Adapter, drahtlose Verbindungskomponenten, Zellularnetzwerkverbindungskomponenten, USB (Universal Serial Bus) oder andere auf drahtgebundenen oder drahtlosen Standards basierende oder proprietäre Schnittstellen beinhalten. Die Netzwerkschnittstelle 650 kann Daten zu einer Vorrichtung übertragen, die sich in demselben Datenzentrum oder Rack befindet, oder einer entfernten Vorrichtung, was das Senden von im Speicher gespeicherten Daten beinhalten kann. Die Netzwerkschnittstelle 650 kann Daten von einer entfernten Vorrichtung empfangen, was das Speichern von empfangenen Daten im Speicher beinhalten kann. Verschiedene Ausführungsformen können in Verbindung mit der Netzwerkschnittstelle 650, dem Prozessor 610 und dem Speichersubsystem 620 verwendet werden.
  • In einem Beispiel weist die Rechenplattform 600 eine oder mehrere E/A-Schnittstelle(n) 660 auf. Die E/A-Schnittstelle 660 kann eine oder mehrere Schnittstellenkomponenten beinhalten, durch die ein Benutzer mit der Rechenplattform 600 interagiert (z. B. Audio-, alphanumerische, taktile/berührende oder andere Schnittstellen). Die Peripherieschnittstelle 670 kann eine beliebige Hardwareschnittstelle enthalten, die oben nicht speziell erwähnt wurde. Peripheriegeräte beziehen sich allgemein auf Vorrichtungen, die sich in Abhängigkeit von der Rechenplattform 600 verbinden. Eine abhängige Verbindung ist eine, bei der die Rechenplattform 600 die Softwareplattform oder Hardwareplattform oder beides bereitstellt, auf der eine Operation ausgeführt wird und mit der ein Benutzer interagiert.
  • Bei einem Beispiel beinhaltet die Rechenplattform 600 ein Speichersubsystem 680 zum Speichern von Daten auf eine nichtflüchtige Weise. In einem Beispiel können sich in gewissen Systemimplementierungen zumindest gewisse Komponenten der Speicherung 680 mit Komponenten des Speichersubsystems 620 überlappen. Das Speichersubsystem 680 beinhaltet eine oder mehrere Speichervorrichtungen 684, die ein beliebiges herkömmliches Medium zum Speichern großer Datenmengen auf beständige Weise sein können oder beinhalten können, wie etwa eine oder mehrere magnetische, Festkörper- oder optische Platten oder eine Kombination. Die Speicherung 684 hält Code oder Anweisungen und Daten 686 in einem persistenten Zustand (d. h. der Wert wird trotz Unterbrechung der Stromversorgung der Rechenplattform 600 beibehalten). Die Speicherung 684 kann allgemein als ein „Speicher“ angesehen werden, obwohl der Speicher 630 typischerweise der Ausführungs- oder Betriebsspeicher ist, um dem Prozessor 610 Anweisungen bereitzustellen. Obwohl die Speicherung 684 nichtflüchtig ist, kann der Speicher 630 flüchtigen Speicher beinhalten (d. h. der Wert oder Zustand der Daten ist unbestimmt, falls die Leistung zur Rechenplattform 600 unterbrochen wird). In einem Beispiel enthält das Speichersubsystem 680 eine Steuerung 682 zum Verknüpfen mit der Speicherung 684. In einem Beispiel ist die Steuerung 682 ein physischer Teil der Schnittstelle 614 oder des Prozessors 610 oder kann Schaltungen oder Logik sowohl im Prozessor 610 als auch in der Schnittstelle 614 enthalten.
  • Ein flüchtiger Speicher ist ein Speicher, dessen Zustand (und damit die in ihm gespeicherten Daten) unbestimmt ist, wenn die Stromversorgung der Vorrichtung unterbrochen wird. Ein dynamischer flüchtiger Speicher erfordert ein Auffrischen der in der Vorrichtung gespeicherten Daten, um einen Zustand beizubehalten. Ein Beispiel für dynamischen flüchtigen Speicher ist unter anderem ein DRAM oder irgendeine Variante, wie etwa ein synchroner DRAM (SDRAM). Ein Speichersubsystem, wie hier beschrieben, kann mit einer Anzahl von Speichertechnologien kompatibel sein, wie etwa DDR3 (Double Data Rate Version 3, ursprüngliche Freigabe durch JEDEC (Joint Electronic Device Engineering Council) am 27. Juni 2007). DDR4 (DDR Version 4, anfängliche Spezifikation veröffentlicht im September 2012 von JEDEC), DDR4E (DDR Version 4), LPDDR3 (Low Power DDR Version 3, JESD209-3B, August 2013 von JEDEC), LPDDR4) LPDDR Version 4, JESD209-4, ursprünglich veröffentlicht von JEDEC im August 2014), WIO2 (Wide Input/Output Version 2, JESD229-2, ursprünglich veröffentlicht von JEDEC im August 2014), HBM (High Bandwidth Memory, JESD325, ursprünglich veröffentlicht durch JEDEC im Oktober 2013, LPDDR5 (gegenwärtig besprochen durch JEDEC), HBM2 (HBM Version 2), gegenwärtig besprochen durch JEDEC, oder andere oder Kombinationen von Speichertechnologien und Technologien basierend auf Ableitungen oder Erweiterungen solcher Spezifikationen. Die JEDEC-Standards sind unter www.jedec.org verfügbar.
  • Ein nichtflüchtige Speichervorrichtung (NVM: Non-Volatile Memory) ist ein Speicher, dessen Zustand selbst bei Unterbrechung einer Leistungszufuhr zur Vorrichtung festgelegt ist. Bei einer Ausführungsform kann die NVM-Vorrichtung eine blockadressierbare Speichervorrichtung wie etwa NAND-Technologien oder insbesondere einen NAND-Flash-Speicher mit mehreren Schwellenpegeln (z. B. eine einstufige Zelle („SLC“), eine mehrstufige Zelle („MLC“), eine vierstufige Zelle („QLC“), eine dreistufige Zelle („TLC“) oder einen anderen NAND-Typ) umfassen. Eine NVM-Vorrichtung kann auch eine byteadressierbare dreidimensionale Kreuzungspunktspeichervorrichtung zum Schreiben an Ort und Stelle oder eine andere byteadressierbare NVM-Vorrichtung zum Schreiben an Ort und Stelle (auch als persistenter Speicher bezeichnet) umfassen, wie etwa einen ein- oder mehrstufigen Phasenwechselspeicher (PCM) oder Phasenwechselspeicher mit einem Schalter (PCMS), NVM-Vorrichtungen, die Chalkogenid-Phasenwechselmaterial (zum Beispiel Chalkogenidglas) verwenden, einen resistiven Speicher einschließlich Metalloxidbasis, Sauerstoffleerstellenbasis und Direktzugriffsspeicher mit leitfähiger Brücke (CB-RAM), Nanodrahtspeicher, ferroelektrischen Direktzugriffsspeicher (FeRAM, FRAM), einen magneto-resistiven Direktzugriffsspeicher (MRAM), der Memristortechnologie beinhaltet, einen Spintransferdrehmoment (STT)-MRAM, eine spintronischen magnetübergangsspeicherbasierten Vorrichtung, eine MTJ-basierte Vorrichtung (MTJ: Magnetic Tunnel Junction), eine DW- (Domain Wall)- und SOT- (Spin Orbit Transfer)-basierte Vorrichtung, eine thyristorbasierte Speichervorrichtung oder eine Kombination von beliebigen der Obigen oder eines anderen Speichers.
  • Eine (nicht dargestellte) Stromquelle stellt Leistung an die Komponenten der Rechenplattform 600 bereit. Genauer gesagt, verbindet sich die Stromquelle typischerweise mit einer oder mehreren Stromversorgungen in der Rechenplattform 600, um den Komponenten der Rechenplattform 600 Strom zuzuführen. Bei einem Beispiel beinhaltet die Stromversorgung einen AC/DC (Wechselstrom zu Gleichstrom)-Adapter zum Einstecken in eine Wandsteckdose. Eine solche AC-Leistung kann eine Leistungsquelle erneuerbarer Energie (z. B. Solarleistung) sein. In einem Beispiel beinhaltet die Leistungsquelle eine DC-Leistungsquelle, wie etwa einen externen AC/DC-Wandler. In einem Beispiel beinhaltet eine Leistungsquelle oder eine Leistungsversorgung Drahtloseladehardware zum Laden über die Nähe zu einem Ladefeld. In einem Beispiel kann die Leistungsquelle unter anderem eine interne Batterie, eine Wechselstromversorgung, eine bewegungsbasierte Leistungsversorgung, eine Solarenergieversorgung oder eine Brennstoffzellenquelle sein.
  • Bei einem Beispiel kann die Rechenplattform 600 unter Verwendung von miteinander verbundenen Rechenschlitten von Prozessoren, Speichern, Speichern, Netzwerkschnittstellen und anderen Komponenten implementiert werden. Hochgeschwindigkeitsverbindungen können verwendet werden, wie etwa: Ethernet (IEEE 802.3), Remote Direct Memory Access (RDMA), InfiniBand, Internet Wide Area RDMA Protocol (iWARP), Quick UDP Internet Connections (QUIC), RDMA over Converged Ethernet (RoCE), Peripheral Component Interconnect Express (PCIe), Intel® QuickPath Interconnect (QPI), Intel® Ultra Path Interconnect (UPI), Intel® On-Chip System Fabric (IOSF), Omnipath, Compute Express Link (CXL), HyperTransport, High Speed Fabric, NVLink, Advanced Microcontroller Bus Architecture (AMBA)-Interconnect, OpenCAPI, Gen-Z, Cache Coherent Interconnect for Accelerators (CCIX), 3 GPP Long Term Evolution (LTE) (4G), 3 GPP 5G und Variationen davon. Daten können unter Verwendung eines Protokolls wie etwa NVMe over Fabrics (NVMe-oF) oder NVMe in virtualisierte Speicherungsknoten kopiert oder gespeichert werden.
  • Aus historischen Gründen wird der Begriff „BIOS“ durchgehend in dieser Offenbarung verwendet, einschließlich der Zeichnungen. Der Name selbst stammt von dem 1975 im CP/M-Betriebssystem verwendeten Basic Input/Output System. Fachleute werden erkennen, dass sich BIOS auf die Systemfirmware bezieht, wie etwa unter anderem UEFI-Firmware. Die Techniken können auch auf andere Formen eines BIOS und/oder einer Firmware zutreffen, wie etwa BIOS/Firmware, die in CPUs und Prozessoren verwendet werden, die ARM™-Architekturen einsetzen.
  • Bei den vorhergehenden Ausführungsformen sind Implementierungen als auf einen Nutzungsfall der SMM- und SMM-Treiber-Aktualisierung beschrieben und veranschaulicht. Dies ist jedoch lediglich beispielhaft und nicht einschränkend. Allgemeiner können die hierin offenbarten Prinzipien und Lehren verwendet werden, um Laufzeitaktualisierungen von Firmwarekomponenten mit sicherem Ausführungsmodus, einschließlich Infrastrukturkomponenten mit sicherem Ausführungsmodus, durchzuführen. Wie hierin verwendet, einschließlich der Ansprüche, ist der sichere Ausführungsmodus ein Ausführungsmodus des Prozessors, während dessen die Ausführung eines Betriebssystems angehalten wird und Zugriff auf Firmwarecode und Hardware bereitstellt, auf die ansonsten außerhalb des sicheren Ausführungsmodus nicht zugegriffen werden kann.
  • Zusätzlich zum Anwenden von Firmware im sicheren Ausführungsmodus zum Berechnen von Plattformen mit CPUs können die hier offenbarten Lehren und Prinzipien auf andere Verarbeitungseinheiten (kollektiv als XPUs bezeichnet) angewendet werden, einschließlich einer oder mehrerer Grafikprozessoreinheiten (GPUs) oder Universal-GPUs (GP-GPUs), Tensor Processing Unit (TPU)-Datenverarbeitungseinheiten (DPUs), Künstliche-Intelligenz (AI)-Prozessoren oder AI-Inferenzeinheiten und/oder andere Beschleuniger, FPGAs und/oder andere programmierbare Logik (die für Rechenzwecke verwendet wird) usw. Obwohl manche der Schaubilder hierin die Verwendung von CPUs zeigen, ist dies lediglich beispielhaft und nicht einschränkend. Allgemein kann bei den veranschaulichten Ausführungsformen eine beliebige Art von XPU anstelle einer CPU verwendet werden. Darüber hinaus wird, wie in den folgenden Ansprüchen verwendet, der Begriff „Prozessor“ verwendet, um CPUs und verschiedene Formen von XPUs generisch abzudecken.
  • Zusätzlich zu dem CPU/Prozessor-BIOS können Techniken ähnlich den hierin offenbarten für ein XPU-BIOS und/oder Firmware wie etwa GPU-VBIOS gelten.
  • Obwohl manche Ausführungsformen unter Bezugnahme auf bestimmte Implementierungen beschrieben wurden, sind andere Implementierungen gemäß manchen Ausführungsformen möglich. Außerdem müssen die Anordnung und/oder Reihenfolge von Elementen oder anderen Merkmalen, die in den Zeichnungen veranschaulicht und/oder hierin beschrieben sind, nicht auf die bestimmte veranschaulichte und beschriebene Weise angeordnet sein. Viele andere Anordnungen sind gemäß manchen Ausführungsformen möglich.
  • In jedem in einer Figur gezeigten System können die Elemente in manchen Fällen jeweils eine gleiche Bezugszahl oder eine unterschiedliche Bezugszahl aufweisen, um anzudeuten, dass die repräsentierten Elemente verschieden und/oder ähnlich sein könnten. Jedoch kann ein Element flexibel genug sein, um unterschiedliche Implementierungen aufzuweisen und mit manchen oder allen der hier gezeigten oder beschriebenen Systeme zu arbeiten. Die in den Figuren gezeigten verschiedenen Elemente können die gleichen oder verschiedene sein. Welches als ein erstes Element bezeichnet wird und welches ein zweites Element genannt wird, ist willkürlich.
  • 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 Begriffe nicht als Synonyme füreinander gedacht sind. Stattdessen kann bei bestimmten Ausführungsformen „verbunden“ verwendet werden, um anzugeben, dass sich zwei oder mehr Elemente in direktem physikalischem oder elektrischem Kontakt miteinander befinden. „Gekoppelt“ kann bedeuten, dass zwei oder mehr Elemente in direktem physischem oder elektrischem Kontakt stehen. Allerdings kann „gekoppelt“ auch bedeuten, dass sich zwei oder mehr Elemente nicht in direktem Kontakt miteinander befinden, aber dennoch kooperieren oder miteinander interagieren. Zusätzlich bedeutet „kommunikativ gekoppelt“, dass zwei oder mehr Elemente, die sich in direktem Kontakt miteinander befinden können oder nicht, in der Lage sind, miteinander zu kommunizieren. Ist beispielsweise die Komponente A mit der Komponente B verbunden, die wiederum mit der Komponente C verbunden ist, kann die Komponente A mit der Komponente C unter Verwendung der Komponente B als Zwischenkomponente kommunikativ gekoppelt sein.
  • Eine Ausführungsform ist eine Implementierung oder ein Beispiel der Erfindungen. Ein Verweis in der Beschreibung auf „eine Ausführungsform“, „(genau) eine Ausführungsform“ „manche Ausführungsformen“ oder „andere Ausführungsformen“ bedeutet, dass ein bestimmtes Merkmal, eine bestimmte Struktur oder eine bestimmte Charakteristik, das bzw. die in Verbindung mit den Ausführungsformen beschrieben wird, in wenigstens manchen Ausführungsformen, aber nicht notwendigerweise allen Ausführungsformen der Erfindungen enthalten ist. Die verschiedenen Vorkommen von „einer Ausführungsform“, „(genau) einer Ausführungsform“ oder „manchen Ausführungsformen“ beziehen sich nicht notwendigerweise alle auf die gleichen Ausführungsformen.
  • Nicht alle hier beschriebenen und veranschaulichten Komponenten, Merkmale, Strukturen, Charakteristiken usw. müssen in einer bestimmten Ausführungsform oder bestimmten Ausführungsformen enthalten sein. Falls die Beschreibung angibt, dass zum Beispiel eine Komponente, ein Merkmal, eine Struktur oder eine Charakteristik enthalten sein „kann“ oder „könnte“, muss diese bestimmte Komponente, dieses bestimmte Merkmal, diese bestimmte Struktur oder diese bestimmte Charakteristik nicht enthalten sein. Falls sich die Beschreibung oder der Anspruch auf „ein“ Element bezieht, bedeutet dies nicht, dass es nur eines von dem Element gibt. Falls sich die Beschreibung oder die Ansprüche auf „ein zusätzliches“ Element beziehen, schließt dies nicht aus, dass es mehr als eines des zusätzlichen Elements gibt.
  • Wie oben besprochen, können verschiedene Aspekte der Ausführungsformen hierin durch entsprechende Software- und/oder Firmwarekomponenten und -anwendungen wie etwa durch einen eingebetteten Prozessor oder dergleichen ausgeführte Software und/oder Firmware ermöglicht werden. Somit können Ausführungsformen dieser Erfindung als oder zur Unterstützung eines Softwareprogramms, von Softwaremodulen, Firmware und/oder verteilter Software verwendet werden, die in irgendeiner Form von Prozessor, Verarbeitungskern oder eingebetteter Logik, einer virtuellen Maschine, die auf einem Prozessorkern läuft, ausgeführt werden oder anderweitig auf oder innerhalb eines nichtflüchtigen computerlesbaren oder maschinenlesbaren Speichermediums implementiert oder realisiert werden. Ein nichtflüchtiges computerlesbares oder maschinenlesbares Speichermedium beinhaltet einen beliebigen Mechanismus zum Speichern oder Übertragen von Informationen in einer Form ein, die von einer Maschine (z. B. einem Computer) gelesen werden kann. Zum Beispiel schließt ein nichtflüchtiges computerlesbares oder maschinenlesbares Speichermedium einen Mechanismus ein, der Informationen in einer Form bereitstellt (d. h. speichert und/oder überträgt), auf die ein Computer oder eine Rechenmaschine zugreifen kann (z. B. Rechenvorrichtung, elektronisches System usw.), wie etwa beschreibbare/nicht beschreibbare Medien (z. B. Nur-Lese-Speicher (ROM), Direktzugriffsspeicher (RAM), Magnetplattenspeichermedien, optische Speichermedien, Flash-Speichervorrichtungen usw.). Der Inhalt kann direkt ausführbar („Objekt“- oder „ausfuhrbare“ Form), Quellcode oder Differenzcode („Delta“- oder „Patch“-Code) sein. Ein nichtflüchtiges computerlesbares oder maschinenlesbares Speichermedium kann auch einen Speicher oder eine Datenbank einschließen, von der ein Inhalt heruntergeladen werden kann. Das nichtflüchtige computerlesbare oder maschinenlesbare Speichermedium kann auch eine Vorrichtung oder ein Produkt einschließen, auf dem zum Zeitpunkt des Verkaufs oder der Lieferung Inhalte gespeichert sind. Somit kann das Liefern einer Vorrichtung mit gespeicherten Inhalten oder das Anbieten von Inhalten zum Herunterladen über ein Kommunikationsmedium so verstanden werden, dass ein Herstellungsartikel bereitgestellt wird, der ein nichtflüchtiges computerlesbares oder maschinenlesbares Speichermedium mit einem solchen hierin beschriebenen Inhalt umfasst.
  • Die von verschiedenen hier beschriebenen Komponenten ausgeführten Operationen und Funktionen können durch Software implementiert werden, die auf einem Verarbeitungselement, über eingebettete Hardware oder dergleichen, oder einer beliebigen Kombination von Hardware und Software läuft. Solche Komponenten können als Softwaremodule, Hardwaremodule, Spezialhardware (z. B. anwendungsspezifische Hardware, ASICs, DSPs usw.), eingebettete Steuerungen, fest verdrahtete Schaltungen, Hardwarelogik usw. implementiert sein. Softwareinhalte (z. B. Daten, Anweisungen, Konfigurationsinformationen usw.) können über einen Herstellungsartikel bereitgestellt werden, der ein nichtflüchtiges computerlesbares oder maschinenlesbares Speichermedium umfasst, das einen Inhalt bereitstellt, der Anweisungen darstellt, die ausgeführt werden können. Der Inhalt kann zur Folge haben, dass ein Computer verschiedene hier beschriebene Funktionen/Operationen durchführt.
  • Wie hierin verwendet, kann eine Auflistung von durch den Ausdruck „mindestens eines von“ verbundenen Objekten jegliche Kombination der aufgelisteten Begriffe bedeuten. Beispielsweise kann der Ausdruck „mindestens eines von A, B oder C“ A, B; C; A und B; A und C; B und C; oder A, B und C bedeuten.
  • Die obige Beschreibung veranschaulichter Ausführungsformen der Erfindung, einschließlich dessen, was in der Zusammenfassung beschrieben ist, soll nicht erschöpfend sein oder die Erfindung auf die offenbarten präzisen Formen beschränken. Obgleich spezielle Ausführungsformen und Beispiele für die Erfindung hier zu veranschaulichenden Zwecken beschrieben sind, sind verschiedene äquivalente Modifikationen innerhalb des Schutzumfangs der Erfindung möglich, wie Fachleute auf dem betreffenden Gebiet erkennen werden.
  • Diese Modifikationen können angesichts der obigen ausführlichen Beschreibung an der Erfindung vorgenommen werden. Die in den folgenden Ansprüchen verwendeten Begriffe sollten nicht so ausgelegt werden, dass sie die Erfindung auf die bestimmten in der Beschreibung und den Zeichnungen offenbarten Ausführungsformen beschränken. Vielmehr soll der Schutzumfang der Erfindung vollständig durch die folgenden Ansprüche bestimmt werden, die gemäß etablierten Lehren der Anspruchsdeutung aufzufassen sind.
  • ZITATE ENTHALTEN IN DER BESCHREIBUNG
  • Diese Liste der vom Anmelder aufgeführten Dokumente wurde automatisiert erzeugt und ist ausschließlich zur besseren Information des Lesers aufgenommen. Die Liste ist nicht Bestandteil der deutschen Patent- bzw. Gebrauchsmusteranmeldung. Das DPMA übernimmt keinerlei Haftung für etwaige Fehler oder Auslassungen.
  • Zitierte Patentliteratur
    • US 63/082627 [0001]

Claims (20)

  1. Verfahren, das auf einem Rechensystem implementiert wird, das einen Prozessor, BIOS und ein Betriebssystem (OS) beinhaltet, und das Folgendes umfasst: Installieren eines Codeinjektionshörers im BIOS beim Booten des Computersystems; während eines OS-Laufzeitbetriebs des Rechensystems Empfangen eines Codeinjektionsabbildes des sicheren Ausführungsmodus, Liefern des Codeinjektionsabbildes des sicheren Ausführungsmodus an das BIOS; Umschalten in einen sicheren Ausführungsmodus und im sicheren Ausführungsmodus Zugreifen auf den injizierten Code aus dem Codeinjektionsabbild des sicheren Ausführungsmodus; Ausführen des injiziertem Codes im Prozessor; und Verlassen des sicheren Ausführungsmodus und Zurückkehren zum OS-Laufzeitbetrieb.
  2. Verfahren nach Anspruch 1, wobei die Ausführung des injizierten Codes verwendet wird, um eine Profilrekonfiguration und/oder eine Richtlinienrekonfiguration und/oder einen Sicherheitsfix zu bewirken.
  3. Verfahren nach Anspruch 1 oder 2, das ferner Folgendes umfasst: während des Bootens des Rechensystems Erzeugen einer BIOS-OS-Schnittstelle zum Liefern eines Codeinjektionsabbildes des sicheren Ausführungsmodus während der OS-Laufzeit; während eines OS-Laufzeitbetriebs des Rechensystems Empfangen des Codeinjektionsabbildes des sicheren Ausführungsmodus über ein Netzwerk oder eine Struktur, mit dem/der das Computersystem gekoppelt ist; und Verwenden der BIOS-OS-Schnittstelle, um das Codeinjektionsabbild des sicheren Ausführungsmodus an das BIOS zu liefern.
  4. Verfahren nach einem der vorhergehenden Ansprüche, wobei das Rechensystem ferner eine Verwaltungseinheit beinhaltet, die ferner Folgendes umfasst: während des Bootens des Rechensystems Konfigurieren eines Außerbandkanals, um das Codeinjektionsabbild des sicheren Ausführungsmodus von der Verwaltungseinheit an das BIOS zu liefern; und während eines OS-Laufzeitbetriebs des Rechensystems Empfangen des Codeinjektionsabbildes des sicheren Ausführungsmodus an der Verwaltungseinheit; und Liefern des Codeinjektionsabbildes des sicheren Ausführungsmodus an das BIOS unter Verwendung des Außerbandkanals.
  5. Verfahren nach einem der vorhergehenden Ansprüche, wobei das BIOS eine Unified Extensible Firmware Interface (UEFI)-Firmware umfasst, ferner umfassend: Empfangen einer UEFI-Kapsel, die das Codeinjektionsabbild des sicheren Ausführungsmodus mit dem injiziertem Code enthält, der einen EFI-Treiber umfasst; Liefern der UEFI-Kapsel an die UEFI-Firmware; Ausführen einer UEFI-Firmware, um den EFI-Treiber zu extrahieren; und Ausführen des EFI-Treibers.
  6. Verfahren nach einem der vorhergehenden Ansprüche, wobei der Prozessor Mikrocode (µCode) beinhaltet, wobei der injizierte Code einen µCode-Patch beinhaltet und wobei die Ausführung des injizierten Codes den Prozessor-µCode patcht.
  7. Verfahren nach Anspruch 6, wobei die Ausführung des injizierten Codes ein neues maschinenspezifisches Register (MSR) erzeugt und programmiert.
  8. Verfahren nach einem der vorhergehenden Ansprüche, wobei der sichere Ausführungsmodus ein Systemverwaltungsmodus (SMM) ist.
  9. Verfahren nach Anspruch 8, wobei der Codeinjektionshörer ein SMM-Codeinjektionshörer ist, der als Teil des SMM-Infrastrukturcodes während des Bootens des Computersystems installiert wird.
  10. Verfahren nach Anspruch 9, wobei der Codeinjektionshörer ein SMM-Codeinjektionshörer ist, der ferner Folgendes umfasst: Ausführen des SMM-Codeinjektionshörers unter Verwendung einer ersten Prozessorprivilegierungsebene, um den injizierten Code aus dem Codeinjektionsabbild des sicheren Ausführungsmodus zu extrahieren; und Ausführen des injizierten Codes, der unter Verwendung einer zweiten Prozessorprivilegierungsebene extrahiert wird, die eine niedrigere Privilegierungsebene als die erste Prozessorebene aufweist.
  11. Rechenplattform, die Folgendes umfasst: einen Prozessor; Systemspeicher, der operativ mit dem Prozessor gekoppelt ist; eine Firmwarespeichervorrichtung, in der Firmwareanweisungen, die mehrere Firmwarekomponenten umfassen, gespeichert sind; und ein Betriebssystem (OS), wobei die Firmwareanweisungen dazu konfiguriert sind, auf dem Prozessor ausgeführt zu werden, um der Rechenplattform Folgendes zu ermöglichen: Installieren eines Codeinjektionshörers beim Booten des Computersystems; in einem Ausführungsmodus des Prozessors, der einen OS-Laufzeitmodus umfasst, unter dem das Betriebssystem auf dem Prozessor ausgeführt wird, und nachdem ein Codeinjektionsabbild, das den injizierten Code enthält, an eine Firmwarekomponente geliefert wurde, Umschalten in einen sicheren Ausführungsmodus und im sicheren Ausführungsmodus Extrahieren des injizierten Codes aus dem Codeinjektionsabbild; und Ausführen des injizierten Codes im Prozessor; und Verlassen des sicheren Ausführungsmodus und Rückkehr in den OS-Laufzeitmodus.
  12. Rechenplattform nach Anspruch 11, wobei der Prozessor Mikrocode (µCode) beinhaltet, wobei der injizierte Code einen µCode-Patch beinhaltet und wobei die Ausführung des injizierten Codes den Prozessor-µCode patcht.
  13. Rechenplattform nach Anspruch 11 oder 12, wobei die Ausführung des injizierten Codes verwendet wird, um eine Profil- und/oder Richtlinienrekonfiguration und/oder einen Sicherheitsfix zu bewirken.
  14. Rechenplattform nach einem der Ansprüche 11-13, wobei der sichere Ausführungsmodus ein Systemverwaltungsmodus (SMM) ist und wobei der Codeinjektionshörer ein SMM-Codeinjektionshörer ist, der als Teil des SMM-Infrastrukturcodes installiert ist.
  15. Rechenplattform nach einem der Ansprüche 11-14, wobei ein Teil der Firmwarekomponenten BIOS umfasst und wobei die Ausführung der Firmwareanweisungen der Rechenplattform ferner Folgendes ermöglicht: während des Bootens der Rechenplattform Erzeugen einer BIOS-OS-Schnittstelle zum Liefern eines Codeinjektionsabbildes während der OS-Laufzeit an BIOS, wobei das Betriebssystem konfiguriert ist, die BIOS-OS-Schnittstelle zu verwenden, um ein Codeinjektionsabbild an das BIOS zu liefern.
  16. Nichtflüchtiges maschinenlesbares Medium mit Firmwareanweisungen, die eine Vielzahl von Firmwarekomponenten umfassen, die darauf gespeichert sind und konfiguriert sind, um auf einem Prozessor auf einer Rechenplattform ausgeführt zu werden, die einen Systemspeicher und ein Betriebssystem aufweist, wobei die Ausführung der Firmwareanweisungen der Rechenplattform Folgendes ermöglicht: Installieren eines Codeinjektionshörers während des Bootens der Rechenplattform; in einem Ausführungsmodus des Prozessors, der einen Betriebssystem-Laufzeitmodus umfasst, unter dem ein Betriebssystem auf dem Prozessor ausgeführt wird, und nachdem ein Codeinjektionsabbild, das den injizierten Code enthält, an eine Firmware Komponente geliefert wurde, Umschalten in einen sicheren Ausführungsmodus und im sicheren Ausführungsmodus Zugreifen auf den injizierten Code aus dem Codeinjektionsabbild; und Ausführen des injizierten Codes im Prozessor; und Zurückschalten in den Betriebssystemlaufzeitmodus.
  17. Nichtflüchtiges maschinenlesbares Medium nach Anspruch 16, wobei der Prozessor Mikrocode (µCode) beinhaltet, wobei der injizierte Code einen µCode-Patch beinhaltet und wobei die Ausführung des injizierten Codes den Prozessor-µCode patcht.
  18. Nichtflüchtiges maschinenlesbares Medium nach Anspruch 16 oder 17, wobei die Ausführung des injizierten Codes dazu dient, um eine Profilrekonfiguration und/oder eine Richtlinienrekonfiguration und/oder einen Sicherheitsfix zu bewirken.
  19. Nichtflüchtiges maschinenlesbares Medium nach einem der Ansprüche 16-18, wobei der sichere Ausführungsmodus ein Systemverwaltungsmodus (SMM) ist und wobei der Codeinjektionshörer ein SMM-Codeinjektionshörer ist, der als Teil des SMM-Infrastrukturcodes über die Ausführung der Firmwareanweisungen installiert ist.
  20. Nichtflüchtiges maschinenlesbares Medium nach einem der Ansprüche 16-19, wobei ein Teil der Firmwarekomponenten BIOS umfasst und wobei die Ausführung der Firmwareanweisungen der Rechenplattform ferner Folgendes ermöglicht: während des Bootens der Rechenplattform Erzeugen einer BIOS-OS-Schnittstelle zum Liefern eines Codeinjektionsabbildes während der OS-Laufzeit an BIOS, wobei das Betriebssystem konfiguriert ist, die BIOS-OS-Schnittstelle zu verwenden, um ein Codeinjektionsabbild an das BIOS im Betriebssystem-Laufzeitmodus zu liefern.
DE102021121933.7A 2020-09-24 2021-08-24 Nahtlose codeinjektion im systemverwaltungsmodus Pending DE102021121933A1 (de)

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
US202063082627P 2020-09-24 2020-09-24
US63/082,627 2020-09-24
US17/392,012 US20210365559A1 (en) 2020-09-24 2021-08-02 Seamless system management mode code injection
US17/392,012 2021-08-02

Publications (1)

Publication Number Publication Date
DE102021121933A1 true DE102021121933A1 (de) 2022-03-24

Family

ID=78609069

Family Applications (1)

Application Number Title Priority Date Filing Date
DE102021121933.7A Pending DE102021121933A1 (de) 2020-09-24 2021-08-24 Nahtlose codeinjektion im systemverwaltungsmodus

Country Status (2)

Country Link
US (1) US20210365559A1 (de)
DE (1) DE102021121933A1 (de)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11900127B2 (en) * 2021-12-08 2024-02-13 Microsoft Technology Licensing, Llc Automated recovery of far edge computing infrastructure in a 5G network

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9342394B2 (en) * 2011-12-29 2016-05-17 Intel Corporation Secure error handling
US20160378570A1 (en) * 2015-06-25 2016-12-29 Igor Ljubuncic Techniques for Offloading Computational Tasks between Nodes
US10210333B2 (en) * 2016-06-30 2019-02-19 General Electric Company Secure industrial control platform
US10783541B2 (en) * 2017-08-30 2020-09-22 Dell Products L.P. Systems and methods of using indirect user input signal characteristics to control inventory and/or server operations
US10747526B2 (en) * 2018-06-21 2020-08-18 Dell Products, L.P. Apparatus and method to execute prerequisite code before delivering UEFI firmware capsule
US10936300B1 (en) * 2019-06-06 2021-03-02 Amazon Technologies, Inc. Live system updates

Also Published As

Publication number Publication date
US20210365559A1 (en) 2021-11-25

Similar Documents

Publication Publication Date Title
DE102020133738A1 (de) Firmware-update-techniken
DE112020006859T5 (de) Beibehaltung von speicher-namensraum-identifizierern für die migration von virtualisierten ausführungsumgebungen im laufenden betrieb
TWI436229B (zh) 用以提供安全開機架構之系統與方法
DE112018002031T5 (de) Sichern einer betriebssystemkonfiguration unter verwendung von hardware
DE102007060324B4 (de) Vorrichtung, Verfahren und Programmspeichervorrichtung für einen Computerbetrieb im Mehrfachmodus
DE112011103880T5 (de) Direktes Migrieren von Software-Abbildern mit Streaming-Technik
DE102018125236A1 (de) System, Vorrichtung und Verfahren zum Selbsstest vor Ort in einem Diagnose-Ruhezustand
DE102018004786A1 (de) Verfahren und Vorrichtung zum sicheren Binden eines ersten Prozessors an einen zweiten Prozessor
DE102013108394A1 (de) Verfahren zum Verwalten eines Schlüssels für sicheres Speichern von Daten und Vorrichtung dafür
DE102007012448A1 (de) Ein chipsatz-unabhängiges Verfahren für lokale Aktualisierung und Konfigurierung und Fernkonfigurierung eines System-BIOS
DE112015006934T5 (de) Verschachtelte Virtualisierung für virtuelle Maschinenexits
DE10393662T5 (de) Bereitstellen eines sicheren Ausführungsmodus in einer Preboot-Umgebung
DE102020133273A1 (de) Leistungsüberwachung und Ressorcenverwaltung
US9208030B1 (en) Systems and methods of processing data associated with rapid snapshot and restore of guest operating system states
DE102014003690A1 (de) Prozessoren, Verfahren und Systeme zur Befehlsemulation
DE102014003798A1 (de) Verfahren zum Booten eines heterogenen Systems und Präsentieren einer symmetrischen Kernansicht
DE102010054614A1 (de) Eindringen in eine gesicherte EDV-Umgebung unter Verwendung mehrerer authentifizierter Codemodule
DE112021000648T5 (de) Speichervorrichtung, die gegen cyber-angriffe und fehlfunktionen widerstandsfähig ist
DE202017007430U1 (de) Erkennen von Bussperrbedingungen und Vermeiden von Bussperren
DE102020127800A1 (de) Ein-chip-system und verfahren zu dessen betrieb
US20210357202A1 (en) Firmware updating
US11768691B2 (en) Boot process for early display initialization and visualization
DE112015007220T5 (de) Techniken zum Koordinieren von Vorrichtungshochfahrsicherheit
DE102021108582A1 (de) Emulation physikalischer sicherheitseinrichtungen
DE112017001012T5 (de) Prozessoren, verfahren und systeme zum einstellen maximaler taktfrequenzen basierend auf dem befehlstyp