DE102020134018A1 - Technologie zum ermöglichen sicherer und belastbarer wiederherstellung von firmware-daten - Google Patents

Technologie zum ermöglichen sicherer und belastbarer wiederherstellung von firmware-daten Download PDF

Info

Publication number
DE102020134018A1
DE102020134018A1 DE102020134018.4A DE102020134018A DE102020134018A1 DE 102020134018 A1 DE102020134018 A1 DE 102020134018A1 DE 102020134018 A DE102020134018 A DE 102020134018A DE 102020134018 A1 DE102020134018 A1 DE 102020134018A1
Authority
DE
Germany
Prior art keywords
partition
address range
firmware data
integrity check
copy
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
DE102020134018.4A
Other languages
English (en)
Inventor
Karunakara Kotary
Sean Dardis
Michael Kubacki
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 DE102020134018A1 publication Critical patent/DE102020134018A1/de
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/16Error detection or correction of the data by redundancy in hardware
    • G06F11/20Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements
    • G06F11/2053Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where persistent mass storage functionality or persistent mass storage control functionality is redundant
    • G06F11/2056Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where persistent mass storage functionality or persistent mass storage control functionality is redundant by mirroring
    • G06F11/2084Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where persistent mass storage functionality or persistent mass storage control functionality is redundant by mirroring on the same storage unit
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/14Error detection or correction of the data by redundancy in operation
    • G06F11/1402Saving, restoring, recovering or retrying
    • G06F11/1415Saving, restoring, recovering or retrying at system level
    • G06F11/1433Saving, restoring, recovering or retrying at system level during software upgrading
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/0614Improving the reliability of storage systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/14Error detection or correction of the data by redundancy in operation
    • G06F11/1402Saving, restoring, recovering or retrying
    • G06F11/1446Point-in-time backing up or restoration of persistent data
    • G06F11/1458Management of the backup or restore process
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/06Addressing a physical block of locations, e.g. base addressing, module addressing, memory dedication
    • G06F12/0646Configuration or reconfiguration
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0638Organizing or formatting or addressing of data
    • G06F3/0644Management of space entities, e.g. partitions, extents, pools
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0673Single storage device
    • G06F3/0679Non-volatile semiconductor memory device, e.g. flash memory, one time programmable memory [OTP]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/14Error detection or correction of the data by redundancy in operation
    • G06F11/1402Saving, restoring, recovering or retrying
    • G06F11/1415Saving, restoring, recovering or retrying at system level
    • G06F11/1417Boot up procedures
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2201/00Indexing scheme relating to error detection, to error correction, and to monitoring
    • G06F2201/82Solving problems relating to consistency
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2201/00Indexing scheme relating to error detection, to error correction, and to monitoring
    • G06F2201/84Using snapshots, i.e. a logical point-in-time copy of the data
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/10Providing a specific technical effect
    • G06F2212/1008Correctness of operation, e.g. memory ordering

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Quality & Reliability (AREA)
  • Human Computer Interaction (AREA)
  • Stored Programmes (AREA)

Abstract

Systeme, Vorrichtungen und Verfahren (70) können Technologie vorsehen, die ein erstes Kopieren von Firmware-Daten aus einer ersten Partition in einem Speichergerät in eine zweite Partition in dem Speichergerät durchführt (72), eine Wiederherstellungsbedingung bezüglich der Firmware-Daten in der ersten Partition erkennt (74) und in Reaktion auf die Wiederherstellungsbedingung automatisch ein zweites Kopieren der Firmware-Daten aus der zweiten Partition in die erste Partition durchführt (76). In einem Beispiel definieren die Firmware-Daten eine oder mehrere Einstellungen für Firmware-Code.

Description

  • Ausführungsformen betreffen im Allgemeinen die Datenwiederherstellung. Insbesondere betreffen Ausführungsformen eine Technologie, die eine sichere und belastbare Wiederherstellung von Firmware-Daten ermöglicht.
  • Firmware-Code (z. B. Befehle niederer Ebene, welche die Steuerung von Gerätehardware erleichtern) kann verwendet werden, um eine Vielzahl von Operationen durchzuführen, wie beispielsweise BIOS-(Basic Input/Output System)-, Verwaltungs-, Embedded-Controller- (EC) und/oder andere Operationen in einem Rechensystem. Firmware-Code weist typischerweise zugehörige Daten auf (z. B. Firmware-Daten), die programmierbare Aspekte des Firmware-Codes definieren. Während des Betriebes können sich die Firmware-Daten mit der Zeit gegenüber dem „Fabrikzustand“ verändern, um eine personalisierte Ausführung des Firmware-Codes zu reflektieren. Fehler und/oder absichtliche Angriffe auf das Rechensystem können die Wiederherstellung einer vertrauenswürdigen Version des Firmware-Codes erforderlich machen. In einem derartigen Fall kann eine Fachkraft der Informationstechnologie (IT) oder des Herstellers der Originalausrüstung (OEM) die Firmware-Daten manuell zurück in den Fabrikzustand versetzen, was zu erhöhten Kosten, verminderter Leistung und/oder negativem Benutzererlebnis führt.
  • Die verschiedenen Vorteile der Ausführungsformen werden sich Fachleuten aus der Lektüre der folgenden Beschreibung und angehängten Ansprüche und durch Bezugnahme auf die folgenden Zeichnungen erschließen. Es zeigen:
    • 1 ein Blockdiagramm eines Beispiels für eine Wiederherstellungsarchitektur gemäß einer Ausführungsform;
    • 2 ein Blockdiagramm eines Beispiels für einen Spiegelbereich-Deskriptorabschnitt gemäß einer Ausführungsform;
    • 3 ein Ablaufdiagramm eines Beispiels für ein Verfahren zur Synchronisation von Firmware-Daten zwischen Partitionen gemäß einer Ausführungsform;
    • 4 ein Ablaufdiagramm eines Beispiels für ein detaillierteres Verfahren zur Synchronisation von Firmware-Daten zwischen Partitionen gemäß einer Ausführungsform;
    • 5 ein Ablaufdiagramm eines Beispiels für ein Verfahren zur Wiederherstellung von Firmware-Daten gemäß einer Ausführungsform;
    • 6 ein Blockdiagramm eines Beispiels für ein leistungsverstärktes Rechensystem gemäß einer Ausführungsform;
    • 7 eine Darstellung eines Beispiels für eine Halbleitervorrichtung gemäß einer Ausführungsform;
    • 8 ein Blockdiagramm eines Beispiels für einen Prozessor gemäß einer Ausführungsform und
    • 9 ein Blockdiagramm eines Beispiels für ein Rechensystem auf Basis mehrerer Prozessoren gemäß einer Ausführungsform.
  • Bezugnehmend auf 1 ist nun eine Wiederherstellungsarchitektur 10 gezeigt, in der ein nicht-flüchtiges Speichergerät 12 (z. B. ein Flash-Speicher, ein NOR/SPINOR-Speicher einer seriellen Peripherie-Schnittstelle, ein NAND-Speicher) eine aktive Partition 14 (z. B. einen zusammenhängenden Speicherzellbereich) und eine Spiegelpartition 16 (z. B. einen zusammenhängenden Speicherzellbereich) enthält. Im Allgemeinen wird die aktive Partition 14 verwendet, um Arbeitskopien von Firmware-Code und Firmware-Daten zu speichern. Der Firmware-Code könnte zum Beispiel BIOS-Firmware (z. B. UEFI-/Unified Extensible Firmware Interface-Befehle) beinhalten, die in einer BIOS-Region 18 gespeichert sind, Verwaltungs-Firmware, die in einer Verwaltungsregion 20 (z. B. ME/Manageability Engine) gespeichert ist, EC-Firmware, die in einer EC-Region 22 gespeichert ist, usw. In einer Ausführungsform definieren die Firmware-Daten eine oder mehrere Einstellungen für den Firmware-Code. In dem dargestellten Beispiel definieren BIOS-Daten 28 Einstellungen (z. B. Boot-Präferenzen) für den Firmware-Code in der BIOS-Region 18, definieren Veraltungsdaten 30 Einstellungen (z. B. Fernzugriffspräferenzen) für den Firmware-Code in der Verwaltungsregion 20, definieren EC-Daten 32 Einstellungen (z. B. Einstellungen zu geringem Energieverbrauch des Mikrocontrollers) für den Firmware-Code in der EC-Region 22 usw. Die aktive Partition 14 kann außerdem eine Netzwerkregion 17 beinhalten (z. B. Gigabit-Ethernet/GBE) .
  • Wie ausführlicher erläutert werden wird, kann die Spiegelpartition 16 verwendet werden, um Wiederherstellungskopien der Firmware-Daten in der aktiven Partition 14 zu speichern. Zum Beispiel kann ein erster Spiegelbereich 38 eine Wiederherstellungskopie (z. B. eine redundante Kopie) der BIOS-Daten 28 speichern, ein zweiter Spiegelbereich 40 kann eine Wiederherstellungskopie der Verwaltungsdaten 30 speichern, ein dritter Spiegelbereich 42 kann eine Wiederherstellungskopie der EC-Daten 32 speichern usw. Wiederherstellungskopien von weiteren Firmware-Daten, wie beispielsweise Daten von Rechensicherheitsmaschine (Compute Security Engine (CSE)), Vertrauenswürdige-Plattform-Modul (Trusted Platform Module (TMP)) und/oder Aktive-Verwaltung-Technologie (Active Management Technology (AMT)) können ebenfalls in der Spiegelpartition 16 gespeichert sein. Das Speichern der Wiederherstellungskopien von Firmware-Daten in der Spiegelpartition 16 wie gezeigt bietet eine Reihe von Vorteilen. Wenn zum Beispiel ein Fehler und/oder ein absichtlicher Angriff auf die Architektur 10 erkannt wird, können die Firmware-Daten zusammen mit einer vertrauenswürdigen Version des Firmware-Codes wiederhergestellt werden. Im Ergebnis kann das Zurückversetzen der Firmware-Daten in den Fabrikzustand vermieden werden, was zu geringeren Kosten, verbesserter Leistung und/oder positiverem Benutzererlebnis führt. Des Weiteren wird die Sicherheit verbessert, da Arbeits- und Wiederherstellungscode sowie -daten voneinander isoliert sind. Darüber hinaus können weitere Kosteneinsparungen erzielt werden, indem die aktive Partition 14 und die Spiegelpartition 16 in das gleiche Speichergerät 12 aufgenommen werden (statt z. B. in getrennte SPINOR-Geräte).
  • In dem veranschaulichten Beispiel beinhaltet ein Rechenchip 24 mehrere Rechenprozessoren 26 (26a-26n) und einen Sicherheitsprozessor 34. Die Rechenprozessoren 26 können die BIOS-Daten verwenden, um den in der BIOS-Region 18 gespeicherten Firmware-Code auszuführen und Systemhochfahr-, Plattformgerät- und/oder Sicherheitsoperationen durchzuführen. In einer Ausführungsform verwendet der Sicherheitsprozessor 34 die Verwaltungsdaten 30, um den in der Verwaltungsregion 20 gespeicherten Firmware-Code auszuführen. In einem Beispiel verwendet der Sicherheitsprozessor 34 außerdem die EC-Daten 32, um den in der EC-Region 22 gespeicherten Firmware-Code auszuführen. Tatsächlich kann der Sicherheitsprozessor 34 CSE-, TPM-, AMT- und/oder anderen Firmware-Code ausführen, um die allgemeine Sicherheit zu gewährleisten.
  • Die veranschaulichte Architektur 10 beinhaltet außerdem einen Plattform-Controller-Chip 36 (z. B. Plattform-Controller-Hub/PCH, Eingabe-AusgabeModul/IOM), der eine Peripherieschnittstelle 44 (z. B. serielle Peripherieschnittstelle/SPI, verbesserte SPE/eSPI) und einen Sicherheitsprozessor 35, der ebenfalls die Verwaltungsdaten 30 verwenden kann, um den in der Verwaltungsregion 20 gespeicherten Firmware-Code auszuführen und die EC-Daten 32 nutzen kann, um den in der EC-Region 22 gespeicherten Firmware-Code auszuführen Tatsächlich kann der Sicherheitsprozessor 35 CSE-, TPM-, AMT- und/oder anderen Firmware-Code ausführen, um die allgemeine Sicherheit zu gewährleisten. Die Peripherieschnittstelle 44 kann eine Spiegelmaschine 46, eine Registerschnittstelle 48 und einen Spiegelbereich-Deskriptorabschnitt 50 beinhalten. Die Spiegelbereiche 38, 40, 42 können in einer Deskriptorliste variabler Länge als eine Erweiterung zu einer traditionellen, bereits bestehenden SPI-Flash-Deskriptorregion (z. B. Flash-Deskriptorregion 0 - die ersten 4kb des SPI-Flash) identifiziert sein. Der Spiegelbereich-Deskriptorabschnitt 50 kann zum Beispiel an einem Ende einer Datenstruktur sitzen, wie beispielsweise nachstehende Tabelle I. Tabelle 1
    Abschnittsname Startadresse Deskriptorposition
    Signatur 0x10
    Komponente 0x30 FLMAP0.FCBA = 0x3 (Flash-Komponenten-Basisadresse)
    Regionen 0x40 FLMAPO.FRBA = 0x4 (Flash-Region-Basisadresse)
    Master 0x80 FLMAP1.FMBA = 0x8 (Flash-Master-Basisadresse)
    PCH-Straps 0x80 FLMAP1.FPSBA = 0x10 (Flash-PCH-Strap-Basisadresse)
    CPU-Straps FLMAP1.FPSBA + FLMAP1.PSL FLMAP2.FCPUSBA = 0x30 (Flash-CPU-Straps-Basisadresse)
    Register-Init FLMAP1.FCPUSBA + FLMAP1.CPUSL FLMAP2.RIBA = 0x34 (Register-Init-Basisadresse)
    Spiegelbereichdeskriptoren FLMAP2.RIBA + FLMAP2.RIL FLMAP3.MRBA = 0xXX (Spiegelbereich-Basisadresse
  • Mit fortgesetztem Bezug auf 1 und 2 kann eine globale SPI-Flash-Dekriptorabbildung 52 einen Eintrag in dem Spiegelbereich-Deskriptorabschnitt 50 beinhalten, der eine Liste variabler Längen von Spiegelbereichsdeskriptoren enthält (z. B. ist die Listenlänge plattformabhängig). In einer Ausführungsform beschreibt jeder Spiegelbereichsdeskriptor eine FLA (Flash Linear Address) des aktiven Bereichs, die Grenze des aktiven Bereichs, die Spiegelbereichs-FLA und die Spiegelbereichsgrenze. In weiteren Ausführungsformen sind die Spiegelbereichs-FLA und -grenze aus den Spiegelbereichsdeskriptoren ausgelassen.
  • Alle Flash-Zugriffe auf die aktiven Bereiche und die Spiegelbereiche 38, 40, 42 können bereits bestehenden unterstützungsdefinierenden Flash-Master-Zugriffsgenehmigungen folgen. Des Weiteren kann das direkte Schreiben in die Spiegelbereiche 38, 40, 42 durch Software unterbunden sein. In einer Ausführungsform sind die Spiegelbereiche 38, 40, 42 nur durch SPI-Flash-Controller-Hardware beschreibbar, wenn die aktive Region, die auf den Spiegelbereich 38, 40, 42 abgebildet ist, eine Schreibung erhält.
  • Eine Umsetzung kann es vorziehen zu gestatten, dass dem Spiegelbereich 38, 40, 42 Hardware zugewiesen wird, oder das Spezifizieren der Spiegelbereiche 38, 40, 42 in dem Deskriptorabschnitt 50 zu fordern. In jedem Fall wird der aktive Bereich spezifiziert und der abgedeckte Bereich kreuzt keine Regionen (z. B. BIOS und konvergierte Sicherheits- und Verwaltungsmaschine/Converged Security and Management Engine/CSME) .
  • In einem Beispiel ist der Spiegelbereich-Deskriptorabschnitt 50 bei Laufzeit nicht modifizierbar und wird durch die Peripherieschnittstelle 44 auf Initialisierung hin verbraucht. Somit kann die Spiegelmaschine 46 Daten, die in die Regionen 18, 20, 22 in der aktiven Partition 14 geschrieben werden, automatisch in eine entsprechende Spiegelregion in der Spiegelpartition 16 kopieren. Des Weiteren kann die Registerschnittstelle 48 in Software-Steuerabläufen verwendet werden, um basierend auf dem Spiegelbereich-Deskriptorabschnitt 50 mit der Spiegelmaschine 46 zu interagieren. In einer Ausführungsform beinhaltet der Plattform-Controller-Chip 36 außerdem mehrere Register 56 in einem Echtzeittakt (Real Time Clock (RTC)) - Well, wobei mindestens eines der Register 56 ein Partitions-Schaltregister 58 ist (z. B. ein Statusregister) . Dementsprechend kann das Partitions-Schaltregister 58 verwendet werden, um die Wiederherstellung von Firmware-Daten in der Spiegelpartition 16 auszulösen (z. B. in Reaktion auf eine Wiederherstellungsbedingung, wie beispielsweise einen Fehler oder einen bösartigen Software-Angriff) . Die Firmware-Daten-Wiederherstellung kann auch über einen Partitions-Schaltstift 60 (z. B. einen Benutzerschnittstellenstift) auf dem Plattform-Controller-Chip 36 ausgelöst werden.
  • In einer Ausführungsform beinhaltet die Architektur 10 außerdem ein oder mehrere Plattformgeräte 62, wie beispielsweise einen Embedded Controller 64, einen Baseboard Management Controller (BMC, nicht gezeigt) oder einen anderen externen Agent. Der dargestellte Embedded Controller 64 beinhaltet eine Laufzeitüberwachung (WatchDog Timer (WDT)) 66, der ebenfalls die Firmware-Datenwiederherstellung auslösen kann. In einem derartigen Fall kann der Embedded Controller 64 über eine externe Peripherieschnittstelle 68 und den Partitions-Schaltstift 60 mit dem Plattform-Controller-Chip 36 kommunizieren.
  • 3 zeigt ein Verfahren 70 zum Synchronisieren von Firmware-Daten zwischen Partitionen. Das Verfahren 70 kann im Allgemeinen in einer Spiegelmaschine umgesetzt werden, wie beispielsweise der bereits erläuterten Spiegelmaschine 46 (1). Insbesondere kann das Verfahren 70 in einem oder mehreren Modulen als ein Satz logischer Befehle umgesetzt sein, die in einem maschinen- oder computerlesbaren Speichermedium gespeichert sind, wie beispielsweise einem Speicher mit wahlfreiem Zugriff (RAM), einem Nur-Lese-Speicher (ROM), einem programmierbaren ROM (PROM), Firmware, Flash-Speicher usw., in konfigurierbarer Logik, wie beispielsweise programmierbare Logikanordnungen (PLA), FPGAs (Field Programmable Gate Arrays), CPLDs (Complex Programmable Logic Devices), in Logik-Hardware mit fester Funktionalität, die Schalttechnologie verwendet, wie beispielsweise anwendungsspezifische integrierte Schaltung (ASIC), CMOS (Complementary Metal Oxide Semiconductor) oder Transistor-Transistor-Logik(TTL)-Technologie oder eine Kombination daraus.
  • Zum Beispiel kann Computerprogrammcode zum Ausführen von Operationen, die in dem Verfahren 70 gezeigt sind, in einer beliebigen Kombination aus einer oder mehreren Programmiersprachen geschrieben sein, einschließlich einer objektorientierten Programmiersprache, wie beispielsweise JAVA, SMALLTALK, C++ oder dergleichen, und herkömmlichen prozeduralen Programmiersprachen, wie die Programmiersprache „C“ oder ähnliche Programmiersprachen. Des Weiteren können Logikbefehle Assemblerbefehle, ISA(Instruction Set Architecture)-Befehle, Maschinenbefehle, maschinenabhängige Befehle, Mikrocode, zustandseinstellende Daten, Konfigurationsdaten für integrierte Schaltungen, Zustandsinformationen, die elektronische Schaltungen und/oder andere strukturelle Komponenten personalisieren, die hardware-eigen sind (z. B. dem Host-Prozessor, der zentralen Verarbeitungseinheit/CPU, dem Mikrocontroller usw.).
  • Der veranschaulichte Verarbeitungsblock 72 sieht das Durchführen eines ersten Kopierens von Firmware-Daten aus einer ersten (z. B. aktiven) Partition in einem Speichergerät in eine zweite (z. B. Spiegel-) Partition in dem Speichergerät vor. Wie bereits angemerkt, können die Firmware-Daten eine oder mehrere Einstellungen, wie beispielsweise BIOS-Einstellungen, Verwaltungseinstellungen, EC-Einstellungen, Sicherheitseinstellungen usw. für ausführbaren Firmware-Code definieren. Darüber hinaus kann Block 72 in Reaktion auf ein Schreiben der Firmware-Daten in die erste Partition durchgeführt werden. In einer Ausführungsform beinhaltet Block 72 das Bestimmen eines Adressbereichs für die Firmware-Daten in der zweiten Partition basierend auf einem Bereichsdeskriptor, wobei die Firmware-Daten während des ersten Kopierens in den Adressbereich in der zweiten Partition kopiert werden.
  • Block 74 erkennt eine Wiederherstellungsbedingung in Bezug auf die Firmware-Daten in der ersten Partition. Wie bereits angemerkt, kann die Wiederherstellungsbedingung einem Fehler (z. B. einem alpha-partikel-induzierten Flash-Speicherausfall), einer bösartigen Firmware-Aktualisierung usw. oder einer Kombination daraus entsprechen. In einer Ausführungsform wird die Wiederherstellungsbedingung über eines oder mehreres von einem Benutzerschnittstellenstift oder einem Statusregister erkannt. Der veranschaulichte Block 76 sieht das Durchführen eines zweiten Kopierens der Firmware-Daten aus der zweiten Partition in die erste Partition in Reaktion auf die Wiederherstellungsbedingung vor.
  • Das Speichern einer Wiederherstellungskopie der Firmware-Daten in der zweiten Partition wie gezeigt bietet eine Anzahl von Vorteilen. Wenn zum Beispiel ein Fehler und/oder ein absichtlicher Angriff auf den Firmware-Code erkannt wird, können die Firmware-Daten zusammen mit einer vertrauenswürdigen Version des Firmware-Codes wiederhergestellt werden. Im Ergebnis kann ein Zurückversetzen der Firmware-Daten in den Fabrikzustand vermieden werden, was zu verminderten Kosten, verstärkter Leistung und/oder einem positiveren Benutzererlebnis führt.
  • 4 zeigt ein detaillierteres Verfahren 80 zum Synchronisieren von Firmware-Daten zwischen Partitionen. Das Verfahren 80 kann im Allgemeinen in einer Spiegelmaschine umgesetzt werden, wie beispielsweise der bereits beschriebenen Spiegelmaschine 46 (1). Insbesondere kann das Verfahren 80 in einem oder mehreren Modulen als ein Satz logischer Befehle umgesetzt sein, die in einem maschinen- oder computerlesbaren Speichermedium gespeichert sind, wie beispielsweise RAM, ROM, PROM, Firmware, Flash-Speicher usw., in konfigurierbarer Logik, wie beispielsweise PLAs, FPGAs, CPLDs, in Logik-Hardware mit fester Funktionalität, die Schaltungstechnologie verwendet wie beispielsweise ASIC, CMOS oder TTL-Technologie oder eine Kombination daraus.
  • Der veranschaulichte Verarbeitungsblock 82 erkennt ein Schreiben von Firmware-Daten, wobei Block 84 die Firmware-Daten in einem aktiven Bereich in einer aktiven Partition aktualisiert. Bei Block 86 kann eine Bestimmung vorgenommen werden, ob ein Spiegelbereich mit dem aktiven Bereich in Verbindung steht. Ist dies der Fall, dupliziert Block 88 die Firmware-Daten in die Spiegelpartition. Anderenfalls umgeht das Verfahren 80 Block 88 und das Schreiben endet bei Block 90.
  • 5 zeigt ein Verfahren 100 zum Wiederherstellen von Firmware-Daten. Das Verfahren 100 kann im Allgemeinen in einer Spiegelmaschine umgesetzt werden, wie beispielsweise der bereits erläuterten Spiegelmaschine 46 (1). Insbesondere kann das Verfahren 100 in einem oder mehreren Modulen als ein Satz logischer Befehle umgesetzt sein, die in einem maschinen- oder computerlesbaren Speichermedium gespeichert sind, wie beispielsweise RAM, ROM, PROM, Firmware, Flash-Speicher usw., in konfigurierbarer Logik, wie beispielsweise PLAs, FPGAs, CPLDs, in Logik-Hardware mit fester Funktionalität, die Schaltungstechnologie verwendet wie beispielsweise ASIC, CMOS oder TTL-Technologie oder eine Kombination daraus.
  • Der veranschaulichte Verarbeitungsblock 102 führt vor dem zweiten Kopieren eine Integritätsprüfung durch. Die Integritätsprüfung kann das Abrufen der Firmware-Daten von einem ersten Adressbereich in der ersten Partition, das Abrufen der Firmware-Daten von einem zweiten Adressbereich in der zweiten Partition und das Vergleichen der Firmware-Daten in der ersten Partition mit den Firmware-Daten in der zweiten Partition beinhalten. Wenn zwischen den zwei Kopien der Firmware-Daten eine Unstimmigkeit besteht (z. B. keine Übereinstimmung), kann eine weitere Analyse durchgeführt werden, um automatisch zu bestimmen, ob die Unstimmigkeit aufgrund eines Fehlers (z. B. Medientransistorausfall) in dem ersten Adressbereich, eines Fehlers in dem zweiten Adressbereich oder einer anderen Quelle besteht. Die Integritätsprüfung kann deshalb auch weitere Operationen beinhalten, wie beispielsweise Prüfsummenoperationen usw.
  • Wenn bei Block 104 bestimmt wird, dass in dem zweiten Adressbereich ein Fehler vorliegt, umgeht der veranschaulichte Block 106 das zweite Kopieren und das veranschaulichte Verfahren 100 endet. In einem solchen Fall kann die Wiederherstellung von Firmware-Code zu dem Fabrikzustand der verwendeten Firmware-Daten führen. Wenn bei Block 104 bestimmt wird, dass im zweiten Adressbereich kein Fehler vorliegt, kann Block 108 bestimmen, ob in dem ersten Adressbereich ein Fehler vorhanden ist. Ist dies der Fall, sieht Block 110 das Umgehen des zweiten Kopierens vor, wobei bei Block 112 der erste Adressbereich auf den zweiten Adressbereich abgebildet wird. Dementsprechend wird in dem veranschaulichten Beispiel das zweite Kopieren umgangen, wenn die Integritätsprüfung einen Fehler in einem oder mehreren von dem ersten Adressbereich oder dem zweiten Adressbereich erkennt. In einer Ausführungsform verwendet Block 112 eine Neuabbildungstabelle, um den Zugriff auf eine SPI-Flash-Zelle automatisch auf eine andere SPI-Flash-Zelle abzubilden. Somit ermöglicht Block 112 das Ersetzen defekter und/oder fehlerhafter Hardware in der aktiven Partition durch die Hardware in der Spiegelpartition. Bei Block 114 kann eine Warnbenachrichtigung erzeugt werden (z. B. um IT-Personal über den Ausfall aktiver Medien zu unterrichten).
  • Wenn bei Block 108 bestimmt wird, dass in dem ersten Adressbereich kein Fehler vorliegt, führt der veranschaulichte Block 116 in Reaktion auf die Wiederherstellungsbedingung das zweite Kopieren der Firmware-Daten aus der zweiten Partition in die erste Partition durch. Das Verfahren 100 verstärkt somit die Leistung weiter, indem es gewährleistet, dass die wiederhergestellten Firmware-Daten gültig sind und der aktive Speicherbereich funktionsbereit ist.
  • In 6 ist nun ein leistungsverstärktes Rechensystem 151 gezeigt. Das System 151 kann im Allgemeinen Teil eines elektronischen Geräts / einer elektronischen Plattform sein, das/die Rechenfunktionalität (z. B. PDA/Personal Digital Assistant, Notebook, Tablet, Convertible Tablet, Server), Kommunikationsfunktionalität (z. B. Smartphone), Bildgebungsfunktionalität (z. B. Kamera, Camcorder), Medienabspielfunktionalität (z. B. smartes Fernsehgerät/TV), Tragbarkeitsfunktionalität (z. B. Uhr, Brille, Kopfbedeckung, Fußbekleidung, Schmuck), Fahrzeugfunktionalität (z. B. Pkw, Lkw, Motorrad, Roboterfunktionalität (z. B. autonomer Roboter), Internet-der-Dinge(IoT)-Funktionalität usw. oder eine Kombination daraus aufweist. In dem veranschaulichten Beispiel beinhaltet das System 151 einen Host-Prozessor 153 (z. B. zentrale Verarbeitungseinheit/CPU), der einen integrierten Speichercontroller (IMC) 155 aufweist, welcher mit einem Systemspeicher 157 gekoppelt ist.
  • Das veranschaulichte System 151 beinhaltet außerdem ein Eingangs-Ausgangs(IO)-Modul 159, das zusammen mit dem Host-Prozessor 153 und einem Grafikprozessor 161 (z. B. Grafikverarbeitungseinheit/GPU) auf einem Halbleiterchip 163 als ein System auf einem Chip (SoC) umgesetzt ist. Das veranschaulichte IO-Modul 159 kommuniziert zum Beispiel mit einer Anzeige 165 (z. B. Touchscreen, Flüssigkristallanzeige/LCD, Leuchtdioden-/LED-Anzeige), einem Netzwerkcontroller 167 (z. B. drahtgebunden und/oder drahtlos) und einem Massenspeicher 169 (z. B. Festplattenlaufwerk/HDD, optische Platte, Solid-State-Drive/SSD, Flash-Speicher, Einkopf-NAND-Speicher, Mehrkopf-SPINOR oder ein anderes nicht-flüchtiges Speichergerät). In einem Beispiel beinhaltet der Massenspeicher 169 eine erste Partition 150 und eine zweite Partition 152.
  • In einer Ausführungsform führen der Host-Prozessor 153, der Grafikprozessor 161 und/oder das IO-Modul 159 Befehle 171 aus, die von dem Systemspeicher 157 und/oder dem Massenspeicher 169 abgerufen werden, um einen oder mehrere Aspekte des Verfahrens 70 (3), des Verfahrens 80 (4) und/oder des Verfahrens 100 (5), die bereits erläutert wurden, durchzuführen. So kann die Ausführung der veranschaulichten Befehle 171 das Rechensystem 151 veranlassen, ein erstes Kopieren von Firmware-Daten aus der ersten Partition 150 in die zweite Partition 152 durchzuführen, eine Wiederherstellungsbedingung bezüglich Firmware-Daten in der ersten Partition 150 zu erkennen und in Reaktion auf die Wiederherstellungsbedingung ein zweites Kopieren der Firmware-Daten von der zweiten Partition 152 in die erste Partition 150 durchzuführen. Das Rechensystem 151 wird deshalb zumindest insoweit als leistungsverstärkt betrachtet, als Firmware-Daten belastbar sind und sicher aus der zweiten Partition 152 wiederhergestellt werden, ohne die Firmware-Daten zurück in den Fabrikzustand zu versetzen. Das Rechensystem 151 vermeidet außerdem jeglichen Bedarf an einem zweiten SPINOR, um die Wiederherstellungskopie der Firmware-Daten zu speichern.
  • 7 zeigt eine Halbleitergehäuse-Vorrichtung 173. Die veranschaulichte Vorrichtung 173 zeigt ein oder mehrere Substrate 175 (z. B. Silizium, Saphir, Galliumarsenid) und Logik 177 (z. B. Transistoranordnung und andere Komponenten integrierter Schaltungen/IC), die mit dem/den Substrat(en) 175 gekoppelt sind. Die Logik 177 kann zumindest teilweise als konfigurierbare Logik oder Logik-Hardware mit fester Funktionalität umgesetzt sein. In einem Beispiel setzt die Logik 177 einen oder mehrere Aspekte des Verfahrens 70 (3), des Verfahrens 80 (4) und/oder des Verfahrens 100 (5), die bereits erläutert wurden, um. So kann die Logik 177 ein erstes Kopieren von Firmware-Daten aus einer ersten Partition in einem Speichergerät in eine zweite Partition des Speichergeräts durchführen, eine Wiederherstellungsbedingung bezüglich der Firmware-Daten in der ersten Partition erkennen und in Reaktion auf die Wiederherstellungsbedingung ein zweites Kopieren der Firmware-Daten aus der zweiten Partition in die erste Partition durchführen. Die Vorrichtung 173 wird deshalb zumindest insoweit als leistungsverstärkt betrachtet, als die Firmware-Daten belastbar sind und sicher aus der zweiten Partition wiederhergestellt werden, ohne die Firmware-Daten zurück in den Fabrikzustand zu versetzen.
  • In einem Beispiel beinhaltet die Logik 177 Transistorkanalregionen, die in dem/den Substrat(en) 175 positioniert (z. B. eingebettet) sind. Somit ist die Schnittstelle zwischen der Logik 177 und den Substraten 175 möglicherweise kein abrupter Übergang. Die Logik 177 kann außerdem als eine epitaktische Schicht beinhaltend betrachtet werden, die auf einem anfänglichen Wafer des Substrats / der Substrate 175 aufgewachsen ist.
  • 8 veranschaulicht einen Prozessorkern 200 gemäß einer Ausführungsform. Der Prozessorkern 200 kann der Kern für jede Art Prozessor sein, wie beispielsweise ein Mikroprozessor, ein eingebetteter Prozessor, ein Digitalsignalprozessor (DSP), ein Netzwerkprozessor oder ein anderes Gerät zum Ausführen von Code. Obwohl in 8 nur ein Prozessorkern 200 veranschaulicht ist, kann ein Verarbeitungselement alternativ mehr als einen in 8 veranschaulichten Prozessorkern 200 beinhalten. Der Prozessorkern 200 kann ein Single-Threaded-Core („einfädiger Kern“) sein oder in mindestens einer Ausführungsform kann der Prozessorkern 200 insofern mehrfädig (multithreaded) sein, als er mehr als einen Hardware-Thread-Kontext (oder „logischen Prozessor“) pro Kern beinhalten kann.
  • 8 veranschaulicht außerdem einen Speicher 270, der mit dem Prozessorkern 200 gekoppelt ist. Der Speicher 270 kann ein beliebiger von einer breiten Vielfalt von Speichern sein (einschließlich verschiedener Schichten von Speicherhierarchie), wie sie Fachleuten bekannt sind oder auf andere Weise zur Verfügung stehen. Der Speicher 270 kann einen oder mehrere Codebefehle 213 beinhaltet, die durch den Prozessorkern 200 auszuführen sind, wobei der Code 213 einen oder mehrere Aspekte des Verfahrens 70 (3), des Verfahrens 80 (4) und/oder des Verfahrens 100 (5), die bereits erläutert wurden, umsetzen kann. Der Prozessorkern 200 folgt einer Programmsequenz von Befehlen, die durch den Code 213 angegeben werden. Jeder Befehl kann an einem Frontend-Abschnitt 210 eintreten und durch einen oder mehrere Decoder 220 verarbeitet werden. Der Decoder 220 kann als seine Ausgabe eine Mikrooperation erzeugen, wie beispielsweise eine Mikrooperation mit fester Breite in einem vordefinierten Format, oder er kann andere Befehle, Mikrobefehle oder Steuersignale erzeugen, die den ursprünglichen Codebefehl reflektieren. Der veranschaulichte Frontend-Abschnitt 210 beinhaltet außerdem Registerumbenennungslogik 225 und Zeitplanungslogik 230, die im Allgemeinen Ressourcen zuweisen und die Operation entsprechend dem Umwandlungsbefehl zur Ausführung in eine Warteschlange einreihen.
  • Der Prozessorkern 200 ist mit einer Ausführungslogik 250 gezeigt, die einen Satz von Ausführungseinheiten 255-1 bis 255-N aufweist. Einige Ausführungsformen können eine Anzahl von Ausführungseinheiten beinhalten, die speziellen Funktionen oder Funktionssätzen fest zugewiesen sind. Weitere Ausführungsformen können nur eine Ausführungseinheit beinhalten oder eine Ausführungseinheit, die eine bestimmte Funktion ausführen kann. Die veranschaulichte Ausführungslogik 250 führt die Operationen durch, die durch Codebefehle spezifiziert sind.
  • Nach Abschluss der Ausführung von Operationen, die durch die Codebefehle spezifiziert sind, schließt eine Backend-Logik 260 die Befehle des Codes 213 ab. In einer Ausführungsform ermöglicht der Prozessorkern 200 eine Ausführung außerhalb der Reihenfolge (Our-of-Order Execution), erfordert aber einen Abschluss von Befehlen in Reihenfolge (In-Order Retirement). Die Abschlusslogik 265 kann eine Vielzahl von Formen annehmen, wie sie Fachleuten bekannt sind (z. B. Nachordnungspuffer (Re-order Buffer oder dergleichen). Auf diese Weise wird der Prozessorkern 200 während der Ausführung des Codes 213 transformiert, zumindest hinsichtlich der Ausgabe, die von dem Decoder, den Hardware-Registern und Tabellen, die von der Registerumbenennungslogik 225 verwendet werden, und Registern (nicht gezeigt), die durch die Ausführungslogik 250 modifiziert werden, erzeugt wird.
  • Obwohl in 8 nicht veranschaulicht, kann ein Verarbeitungselement weitere Elemente auf einem Chip mit dem Prozessorkern 200 beinhalten. Zum Beispiel kann ein Verarbeitungselement zusammen mit dem Prozessorkern 200 Speichersteuerlogik beinhalten. Das Verarbeitungselement kann I/O-Steuerlogik beinhalten und/oder kann I/O-Steuerlogik beinhalten, die in Speichersteuerlogik integriert ist. Das Verarbeitungselement kann außerdem einen oder mehrere Cache-Speicher beinhalten.
  • In 9 ist nun ein Blockdiagramm einer Ausführungsform eines Rechensystems 1000 gemäß einer Ausführungsform gezeigt. In 9 ist ein Mehrprozessorsystem 1000 gezeigt, das ein erstes Verarbeitungselement 1070 und ein zweites Verarbeitungselement 1080 beinhaltet. Zwar sind zwei Verarbeitungselemente 1070 und 1080 gezeigt, doch versteht es sich, dass eine Ausführungsform des Systems 1000 auch nur ein derartiges Verarbeitungselement beinhalten kann.
  • Das System 1000 ist als ein Punkt-zu-Punkt-Verbindungssystem dargestellt, bei dem das erste Verarbeitungselement 1070 und das zweite Verarbeitungselement 1080 über eine Punkt-zu-Punkt-Verbindung 1050 gekoppelt sind. Es versteht sich, dass einige oder alle der in 9 veranschaulichten Verbindungen als ein Multi-Drop-Bus statt als eine Punkt-zu-Punkt-Verbindung umgesetzt sein können.
  • Wie in 9 gezeigt, kann jedes der Verarbeitungselemente 1070 und 1080 ein Mehrkernprozessor sein, der einen ersten und einen zweiten Prozessorkern beinhaltet (d. h. die Prozessorkerne 1074a und 1074b und die Prozessorkerne 1084a und 1084b. Diese Kerne 1074a, 1074b, 1084a, 1084b können dafür konfiguriert sein, Befehlscode in einer Weise ähnlich derjenigen auszuführen, die vorstehend in Verbindung mit 8 erläutert wurde.
  • Jedes Verarbeitungselement 1070, 1080 kann mindestens einen gemeinsam genutzten Cache-Speicher 1896a, 1896b beinhalten. Der gemeinsam genutzte Cache-Speicher 1896a, 1896b kann Daten (z. B. Befehle) speichern, die von einer oder mehreren Komponenten des Prozessors verwendet werden, wie beispielsweise den Kernen 1074a, 1074b beziehungsweise 1084a, 1084b. Der gemeinsam genutzte Cache-Speicher 1896a, 1896b kann zum Beispiel Daten, die in einem Speicher 1032, 1034 gespeichert sind, für einen schnelleren Zugriff durch Komponenten des Prozessors lokal in einem Cache-Speicher zwischenspeichern. In einer oder mehreren Ausführungsformen kann der gemeinsam genutzte Cache-Speicher 1896a, 1896b einen oder mehrere Mittelebenen-Cache-Speicher, wie beispielsweise der Ebene 2 (L2), der Ebene 3 (L3), der Ebene 4 (L4) oder anderer Ebenen des Cache-Speichers, einen Last-Level-Cache (LLC) und/oder Kombinationen daraus beinhalten.
  • Obwohl mit nur zwei Verarbeitungselementen 1070, 1080 gezeigt, versteht es sich, dass der Schutzumfang der Ausführungsformen nicht darauf beschränkt ist. In weiteren Ausführungsformen können in einem gegebenen Prozessor ein oder mehrere zusätzliche Verarbeitungselemente vorhanden sein. Alternativ können ein oder mehrere Verarbeitungselemente 1070, 1080 ein anderes Element als ein Prozessor sein, wie beispielsweise ein Beschleuniger oder eine FPGA. Zum Beispiel können zusätzliche Verarbeitungselemente zusätzliche Prozessoren beinhalten, die die gleichen wie ein erster Prozessor 1070 sind, zusätzliche Prozessoren, die heterogen mit oder asymmetrisch zu Prozessor einem ersten Prozessor 1070, Beschleunigern (wie beispielsweise Grafikbeschleuniger oder Digitalsignal-Verarbeitungs(DSP)-Einheiten), FPGAs oder ein anderes Verarbeitungselement. Hinsichtlich eines Spektrums von Leistungsmerkmalen, einschließlich architektonischer, mikroarchitektonischer, und thermischer Eigenschaften sowie Energieverbrauchseigenschaften und dergleichen kann eine Vielzahl von Unterschieden zwischen den Verarbeitungselementen 1070, 1080 bestehen. Diese Unterschiede können sich effektiv als Asymmetrie und Heterogenität unter den Verarbeitungselementen 1070, 1080 offenbaren. In mindestens einer Ausführungsform können sich die verschiedenen Verarbeitungselemente 1070, 1080 in demselben Chipgehäuse befinden.
  • Das erste Verarbeitungselement 1070 kann ferner Speichercontrollerlogik (MC) 1072 und Punkt-zu-Punkt(P-P)-Schnittstellen 1076 und 1078 beinhalten. In ähnlicher Weise kann das zweite Verarbeitungselement 1080 einen MC 1082 und P-P-Schnittstellen 1086 und 1088 beinhalten. Wie in 9 gezeigt, koppeln die MCs 1072 und 1082 die Prozessoren mit entsprechenden Speichern, und zwar einem Speicher 1032 und einem Speicher 1034, die Abschnitte eines Hauptspeichers sein können, der lokal an den entsprechenden Prozessoren angebracht ist. Während die MCs 1072 und 1082 als in die Verarbeitungselemente 1070 und 1080 integriert dargestellt sind, kann die MC-Logik in alternativen Ausführungsformen eigenständige Logik außerhalb der Verarbeitungselemente 1070, 1080 sein, statt in diese integriert zu sein.
  • Das erste Verarbeitungselement 1070 und das zweite Verarbeitungselement 1080 können über P-P-Verbindungen 1076 beziehungsweise 1086 mit einem I/0-Teilsystem 1090 gekoppelt sein. Wie in 9 gezeigt, beinhaltet das I/O-Teilsystem 1090 P-P-Schnittstellen 1094 und 1098. Darüber hinaus beinhaltet das I/O-Teilsystem 1090 eine Schnittstelle 1092, um das I/O-Teilsystem 1090 mit einer Hochleistungs-Grafikmaschine 1038 zu koppeln. In einer Ausführungsform kann ein Bus 1049 verwendet werden, um die Grafikmaschine 1038 mit dem I/O-Teilsystem 1090 zu koppeln. Alternativ kann eine Punkt-zu-Punkt-Verbindung diese Komponenten miteinander koppeln.
  • Das I/O-Teilsystem 1090 kann wiederum über eine Schnittstelle 1096 mit einem ersten Bus 1016 gekoppelt sein. In einer Ausführungsform kann der erste Bus 1016 ein PCI(Peripheral Component Interconnect)-Bus oder ein Bus wie ein PCI-Express-Bus oder ein anderer I/O-Verbindungsbus der dritten Generation sein, obwohl der Schutzumfang der Ausführungsformen nicht darauf beschränkt ist.
  • Wie in 9 gezeigt, können verschiedene I/0-Geräte 1014 (z. B. biometrische Scanner, Lautsprecher, Kameras, Sensoren) mit dem ersten Bus 1016 gekoppelt sein, zusammen mit einer Bus-Bridge 1018, die den ersten Bus 1016 mit einem zweiten Bus 1020 koppeln kann. In einer Ausführungsform kann der zweite Bus 1020 ein LPC(Low Pin Count)-Bus sein. In einer Ausführungsform können verschiedene Geräte mit dem zweiten Bus 1020 gekoppelt sein, einschließlich zum Beispiel einer Tastatur/Maus 1012, Kommunikationsgeräten 1026 und einer Datenspeichereinheit 1019, wie beispielsweise eines Plattenlaufwerks oder eines anderen Massenspeichergeräts, das Code 1030 beinhalten kann. Der veranschaulichte Code 1030 kann einen oder mehrere Aspekte des Verfahrens 70 (3), des Verfahrens 80 (4) und/oder des Verfahrens 100 (5), die bereits erläutert wurden, umsetzen. Des Weiteren kann ein Audio-I/O 1024 mit dem zweiten Bus 1020 gekoppelt sein und eine Batterie 1010 kann das Rechensystem 1000 mit Energie versorgen.
  • Es sei angemerkt, dass weitere Ausführungsformen vorgesehen sind. Zum Beispiel kann ein System statt der Punkt-zu-Punkt-Architektur von 9 einen Multi-Drop-Bus oder eine andere derartige Kommunikationstopologie verwenden. Außerdem können die Elemente von 9 mit Hilfe einer größeren oder kleineren Zahl von integrierten Chips unterteilt sein als in 9 gezeigt.
  • Weitere Anmerkungen und Beispiele
  • Beispiel 1 beinhaltet ein leistungsverstärktes Rechensystem, das ein nicht-flüchtiges Speichergerät, das eine erste Partition und eine zweite Partition beinhaltet, einen Prozessor und einen Speicher umfasst, welcher einen Satz ausführbarer Programmbefehle beinhaltet, die bei Ausführung durch den Prozessor den Prozessor veranlassen, ein erstes Kopieren von Firmware-Daten aus der ersten Partition in die zweite Partition durchzuführen, eine Wiederherstellungsbedingung bezüglich der Firmware-Daten in der ersten Partition zu erkennen und in Reaktion auf die Wiederherstellungsbedingung automatisch ein zweites Kopieren der Firmware-Daten aus der zweiten Partition in die erste Partition durchzuführen.
  • Beispiel 2 beinhaltet das Rechensystem von Beispiel 1, wobei die Firmware-Daten dafür vorgesehen sind, eine oder mehrere Einstellungen für Firmware-Code zu definieren, und wobei das erste Kopieren in Reaktion auf ein Schreiben der Firmware-Daten in die erste Partition durchgeführt wird.
  • Beispiel 3 beinhaltet das Rechensystem von Beispiel 1, wobei die Befehle bei Ausführung den Prozessor ferner veranlassen, basierend auf einem Bereichsdeskriptor einen Adressbereich für die Firmware-Daten in der zweiten Partition zu bestimmen, und wobei die Firmware-Daten während des ersten Kopierens in den Adressbereich in der zweiten Partition kopiert werden.
  • Beispiel 4 beinhaltet das Rechensystem von Beispiel 1, wobei die Wiederherstellungsbedingung über eines oder mehreres von einem Benutzerschnittstellenstift oder einem Statusregister erkannt wird.
  • Beispiel 5 beinhaltet das Rechensystem von einem der Beispiele 1 bis 4, wobei die Befehle bei Ausführung den Prozessor ferner veranlassen, vor dem zweiten Kopieren eine Integritätsprüfung durchzuführen, wobei das zweite Kopieren durchgeführt wird, wenn die Integritätsprüfung keinen Fehler in einem ersten Adressbereich, der die Firmware-Daten enthält, in der ersten Partition oder in einem zweiten Adressbereich, der die Firmware-Daten enthält, in der zweiten Partition erkennt, und das zweite Kopieren zu umgehen, wenn die Integritätsprüfung einen Fehler in einem oder mehreren von dem ersten Adressbereich oder dem zweiten Adressbereich erkennt.
  • Beispiel 6 beinhaltet das Rechensystem von Beispiel 5, wobei die Befehle bei Ausführung den Prozessor ferner veranlassen, den ersten Adressbereich auf den zweiten Adressbereich abzubilden, wenn die Integritätsprüfung einen Fehler in dem ersten Adressbereich erkennt, und eine Warnbenachrichtigung zu erzeugen, wenn die Integritätsprüfung einen Fehler in dem ersten Adressbereich erkennt.
  • Beispiel 7 beinhaltet eine Halbleitervorrichtung, die ein oder mehrere Substrate und Logik umfasst, die mit dem einen oder den mehreren Substraten gekoppelt ist, wobei die Logik zumindest teilweise als eines oder mehreres von konfigurierbarer Logik oder Logik-Hardware mit fester Funktionalität umgesetzt ist, wobei die Logik, die mit dem einen oder den mehreren Substraten gekoppelt ist, dafür vorgesehen ist, ein erstes Kopieren von Firmware-Daten aus einer ersten Partition in einem Speichergerät in eine zweite Partition in dem Speichergerät durchzuführen, eine Wiederherstellungsbedingung bezüglich der Firmware-Daten in der ersten Partition zu erkennen und in Reaktion auf die Wiederherstellungsbedingung automatisch ein zweites Kopieren der Firmware-Daten aus der zweiten Partition in die ersten Partition durchführt.
  • Beispiel 8 beinhaltet die Halbleitervorrichtung von Beispiel 7, wobei die Firmware-Daten dafür vorgesehen sind, eine oder mehrere Einstellungen für Firmware-Code zu definieren, und wobei das erste Kopieren in Reaktion auf ein Schreiben der Firmware-Daten in die erste Partition durchgeführt wird.
  • Beispiel 9 beinhaltet die Halbleitervorrichtung von Beispiel 7, wobei die mit dem einen oder den mehreren Substraten gekoppelte Logik dafür vorgesehen ist, basierend auf einem Bereichsdeskriptor einen Adressbereich für die Firmware-Daten in der zweiten Partition zu bestimmen, und wobei die Firmware-Daten während des ersten Kopierens in den Adressbereich in der zweiten Partition kopiert werden.
  • Beispiel 10 beinhaltet die Halbleitervorrichtung von Beispiel 7, wobei die Wiederherstellungsbedingung über eines oder mehreres von einem Benutzerschnittstellenstift oder einem Statusregister erkannt wird.
  • Beispiel 11 beinhaltet die Halbleitervorrichtung von einem der Beispiele 7 bis 10, wobei die mit dem einen oder den mehreren Substraten gekoppelte Logik dafür vorgesehen ist, vor dem zweiten Kopieren eine Integritätsprüfung durchzuführen, wobei das zweite Kopieren durchgeführt wird, wenn die Integritätsprüfung keinen Fehler in einem ersten Adressbereich, der die Firmware-Daten enthält, in der ersten Partition oder in einem zweiten Adressbereich, der die Firmware-Daten enthält, in der zweiten Partition erkennt, und das zweite Kopieren zu umgehen, wenn die Integritätsprüfung einen Fehler in einem oder mehreren von dem ersten Adressbereich oder dem zweiten Adressbereich erkennt.
  • Beispiel 12 beinhaltet die Halbleitervorrichtung von Beispiel 11, wobei die mit dem einen oder den mehreren Substraten gekoppelte Logik dafür vorgesehen ist, den ersten Adressbereich auf den zweiten Adressbereich abzubilden, wenn die Integritätsprüfung einen Fehler in dem ersten Adressbereich erkennt, und eine Warnbenachrichtigung zu erzeugen, wenn die Integritätsprüfung einen Fehler in dem ersten Adressbereich erkennt.
  • Beispiel 13 beinhaltet die Halbleitervorrichtung von einem der Beispiele 7 bis 12, wobei die mit dem einen oder den mehreren Substraten gekoppelte Logik Transistorkanalregionen beinhaltet, die in dem einen oder den mehreren Substraten positioniert sind.
  • Beispiel 14 beinhaltet mindestens ein computerlesbares Speichermedium, das einen Satz ausführbarer Programmbefehle umfasst, die bei Ausführung durch ein Rechensystem, das Rechensystem veranlassen, ein erstes Kopieren von Firmware-Daten aus einer ersten Partition in einem Speichergerät in eine zweite Partition in dem Speichergerät durchzuführen, eine Wiederherstellungsbedingung bezüglich der Firmware-Daten in der ersten Partition zu erkennen und in Reaktion auf die Wiederherstellungsbedingung automatisch ein zweites Kopieren der Firmware-Daten aus der zweiten Partition in die erste Partition durchzuführen.
  • Beispiel 15 beinhaltet das mindestens eine computerlesbare Speichermedium von Beispiel 14, wobei die Firmware-Daten dafür vorgesehen sind, eine oder mehrere Einstellungen für Firmware-Code zu definieren, und wobei das erste Kopieren in Reaktion auf ein Schreiben der Firmware-Daten in die erste Partition durchgeführt wird.
  • Beispiel 16 beinhaltet das mindestens eine computerlesbare Speichermedium von Beispiel 14, wobei die Befehle bei Ausführung das Rechensystem ferner veranlassen, basierend auf einem Bereichsdeskriptor einen Adressbereich für die Firmware-Daten in der zweiten Partition zu bestimmen, und wobei die Firmware-Daten während des ersten Kopierens in den Adressbereich in der zweiten Partition kopiert werden.
  • Beispiel 17 beinhaltet das mindestens eine computerlesbare Speichermedium von Beispiel 14, wobei die Wiederherstellungsbedingung über eines oder mehreres von einem Benutzerschnittstellenstift oder einem Statusregister erkannt wird.
  • Beispiel 18 beinhaltet das mindestens eine computerlesbare Speichermedium von einem der Beispiele 14 bis 17, wobei die Befehle bei Ausführung das Rechensystem ferner veranlassen, vor dem zweiten Kopieren eine Integritätsprüfung durchzuführen, wobei das zweite Kopieren durchgeführt wird, wenn die Integritätsprüfung keinen Fehler in einem ersten Adressbereich, der die Firmware-Daten enthält, in der ersten Partition oder in einem zweiten Adressbereich, der die Firmware-Daten enthält, in der zweiten Partition erkennt, und das zweite Kopieren zu umgehen, wenn die Integritätsprüfung einen Fehler in einem oder mehreren von dem ersten Adressbereich oder dem zweiten Adressbereich erkennt.
  • Beispiel 19 beinhaltet das mindestens eine computerlesbare Speichermedium von Beispiel 18, wobei die Befehle bei Ausführung das Rechensystem ferner veranlassen, den ersten Adressbereich auf den zweiten Adressbereich abzubilden, wenn die Integritätsprüfung einen Fehler in dem ersten Adressbereich erkennt, und eine Warnbenachrichtigung zu erzeugen, wenn die Integritätsprüfung einen Fehler in dem ersten Adressbereich erkennt.
  • Beispiel 20 beinhaltet ein Verfahren zum Betreiben eines leistungsverstärkten Rechensystems, wobei das Verfahren das Durchführen eines ersten Kopierens von Firmware-Daten aus einer ersten Partition in einem Speichergerät in eine zweite Partition in dem Speichergerät, das Erkennen einer Wiederherstellungsbedingung bezüglich der Firmware-Daten in der ersten Partition und das automatische Durchführen eines zweiten Kopierens der Firmware-Daten aus der zweiten Partition in dir erste Partition in Reaktion auf die Wiederherstellungsbedingung umfasst.
  • Beispiel 21 beinhaltet das Verfahren von Beispiel 20, wobei Firmware-Daten eine oder mehrere Einstellungen für Firmware-Code definieren und wobei das erste Kopieren in Reaktion auf ein Schreiben der Firmware-Daten in die erste Partition durchgeführt wird.
  • Beispiel 22 beinhaltet das Verfahren von Beispiel 20, ferner das Bestimmen eines Adressbereichs für die Firmware-Daten in der zweiten Partition basierend auf einem Bereichsdeskriptor beinhaltend, wobei die Firmware-Daten während des ersten Kopierens in den Adressbereich der zweiten Partition kopiert werden.
  • Beispiel 23 beinhaltet das Verfahren von Beispiel 20, wobei die Wiederherstellungsbedingung über eines oder mehreres von einem Benutzerschnittstellenstift oder einem Statusregister erkannt wird.
  • Beispiel 24 beinhaltet das Verfahren von einem der Beispiels 20 bis 23, ferner das Durchführen einer Integritätsprüfung vor dem zweiten Kopieren beinhaltend, wobei das zweite Kopieren durchgeführt wird, wenn die Integritätsprüfung keinen Fehler in einem ersten Adressbereich, der die Firmware-Daten enthält, in der ersten Partition oder in einem zweiten Adressbereich, der die Firmware-Daten enthält, in der zweiten Partition erkennt, und Umgehen des zweiten Kopierens, wenn die Integritätsprüfung einen Fehler in einem oder mehreren von dem ersten Adressbereich oder dem zweiten Adressbereich erkennt.
  • Beispiel 25 beinhaltet das Verfahren von Beispiel 24, ferner das Abbilden des ersten Adressbereichs auf den zweiten Adressbereich, wenn die Integritätsprüfung einen Fehler in dem ersten Adressbereich erkennt, und das Erzeugen einer Warnbenachrichtigung, wenn die Integritätsprüfung einen Fehler in dem ersten Adressbereich erkennt, beinhaltend.
  • Beispiel 26 beinhaltet Mittel zum Durchführen des Verfahrens nach einem der Beispiele 20 bis 24.
  • Somit kann die im Vorliegenden beschriebene Technologie ein wiederhergestelltes System vorsehen, das nicht neu aufgesetzt werden muss. Dementsprechend können IT(Informationstechnologie)-Administratoren nach einer Wiederherstellungsoperation eine ununterbrochene Fernunterstützung fortsetzen. Weitere Beispiele für Daten, die bei Verlust oder Beschädigung bewahrt werden können, beinhalten CSE-Dateisysteme, UEFI-Variablen (z. B. sicherer Hochfahrstatus und -schlüssel), Soft-Straps, Sensorkalibrierungsdaten, Datenzentrumseinstellungen usw. Darüber hinaus können Firmware-Daten, die in der aktiven Partition gespeichert sind, bei Laufzeit verwendet werden. Im Fall der Verwendung in Datenzentren kann die Steuerlogik, wenn Daten beschädigt sind, einen Partitions-Schaltstift auslösen und die Spiegelbereichsdaten während der Laufzeit in der aktiven Partition wiederherstellen.
  • Ausführungsformen sind für die Verwendung mit allen Arten von integrierten Halbleiter(„IC“)-Chips verwendbar. Beispiele für diese Chips sind insbesondere Prozessoren, Controller, Chipsatz-Komponenten, programmierbare Logikanordnungen (PLA), Speicher-Chips, Netzwerk-Chips, Systeme auf einem Chip (SoC), SSD/NAND-Controller-ASICs und dergleichen. Außerdem sind in einigen der Zeichnungen Signalleiterleitungen mit Linien dargestellt. Einige können verschieden sein, um mehr dazugehörige Signalwege anzuzeigen, können ein Nummernetikett aufweisen, um eine Anzahl dazugehöriger Signalwege anzuzeigen, und/oder können Pfeile an einem oder mehreren Enden aufweisen, um die primäre Richtung des Informationsflusses anzuzeigen. Dies sollte jedoch nicht in einer einschränkenden Weise ausgelegt werden. Stattdessen kann dieses zusätzliche Detail in Verbindung mit einer oder mehreren Ausführungsbeispielen verwendet werden, um ein leichteres Verstehen einer Schaltung zu unterstützen. Alle dargestellten Signalleitungen, ob mit oder ohne zusätzliche Informationen, können tatsächlich ein oder mehrere Signale umfassen, die in mehrere Richtungen gehen können, und können mit jeder geeigneten Art von Signalschema umgesetzt sein, z. B. digitale oder analoge Leitungen, die mit unterschiedlichen Paaren, Glasfaserleitungen und/oder ein-endigen Leitungen umgesetzt sind.
  • Es können beispielhafte Größen/Modelle/Werte/Bereiche angegeben worden sein, obwohl Ausführungsformen nicht auf selbige beschränkt sind. Da sich Fertigungstechniken (z. B. Fotolithografie) mit der Zeit weiterentwickeln, wird erwartet, dass Geräte mit geringerer Größe gefertigt werden könnten. Des Weiteren können allgemein bekannte Energie-Masse-Verbindungen zu IC-Chips und anderen Komponenten in den Figuren zwecks Vereinfachung der Veranschaulichung und Erläuterung gezeigt sein oder nicht, und so, dass bestimmte Aspekte der Ausführungsformen nicht verundeutlicht werden. Ferner können Anordnungen in Blockdiagrammform gezeigt sein, um das Verundeutlichen von Ausführungsformen zu vermeiden, und auch angesichts der Tatsache, dass Einzelheiten in Hinsicht auf die Umsetzung derartiger Blockdiagrammanordnungen stark von dem Rechensystem abhängen, in dem die Ausführungsform umzusetzen ist, d. hderartige Einzelheiten sollten problemlos im Kompetenzbereich von Fachleuten liegen. Wo spezifische Details (z. B. Schaltungen) aufgezeigt sind, um Ausführungsbeispiele zu beschreiben, sollten Fachleute erkennen, dass Ausführungsformen ohne oder mit Varianten dieser spezifischen Details umgesetzt werden können. Diese Beschreibung ist somit als veranschaulichend statt als einschränkend zu verstehen.
  • Der Begriff „gekoppelt“ kann im Vorliegenden verwendet sein, um eine beliebige Art von Verhältnis, ob direkt oder indirekt, zwischen den fraglichen Komponenten zu bezeichnen, und kann auf elektrische, mechanische, fluidische, optische, elektromagnetische, elektromechanische oder andere Verbindungen angewandt sein. Des Weiteren können die Begriffe „erstes“, „zweites“ usw. im Vorliegenden lediglich zur Erleichterung der Erläuterung verwendet sein und besitzen keine bestimmte temporale oder chronologische Bedeutung, sofern nichts anderes angegeben ist.
  • Wenn in dieser Anmeldung und in den Ansprüchen verwenden, kann eine Liste von Punkten, die durch den Ausdruck „eines oder mehrere von“ verbunden sind, eine beliebige Kombination der aufgelisteten Punkte meinen. Zum Beispiel kann die Formulierung „eines oder mehreres von A, B oder C“ A; B; C; A und B; A und C; B und C oder A, B und C meinen.
  • Fachleute werden aus der vorstehenden Beschreibung erkennen, dass die allgemeinen Techniken der Ausführungsformen in einer Vielzahl von Formen umgesetzt sein können. Deshalb sollte, obwohl die Ausführungsformen in Verbindung mit bestimmten Beispielen dafür beschrieben wurden, der wahre Schutzumfang der Ausführungsformen nicht darauf beschränkt werden, da sich praktizierenden Fachleuten aus dem Studium der Zeichnungen, der Beschreibung und der folgenden Ansprüche andere Modifizierungen erschließen werden.

Claims (10)

  1. Rechensystem, Folgendes umfassend: ein nicht-flüchtiges Speichergerät, das eine erste Partition und eine zweite Partition beinhaltet, einen Prozessor und einen Speicher, welcher einen Satz ausführbarer Programmbefehle beinhaltet, die bei Ausführung durch den Prozessor den Prozessor zu Folgendem veranlassen (70): Ausführen eines ersten Kopierens von Firmware-Daten aus der ersten Partition in die zweite Partition (72), Erkennen einer Wiederherstellungsbedingung bezüglich der Firmware-Daten in der ersten Partition (74) und automatisches Durchführen eines zweiten Kopierens der Firmware-Daten aus der zweiten Partition in die erste Partition in Reaktion auf die Wiederherstellungsbedingung (76), wobei die Firmware-Daten optional dafür vorgesehen sind, eine oder mehrere Einstellungen für Firmware-Code zu definieren, und wobei das erste Kopieren in Reaktion auf ein Schreiben der Firmware-Daten in die erste Partition durchgeführt wird.
  2. Rechensystem nach Anspruch 1, wobei die Befehle bei Ausführung den Prozessor ferner veranlassen, basierend auf einem Bereichsdeskriptor einen Adressbereich für die Firmware-Daten in der zweiten Partition zu bestimmen, und wobei die Firmware-Daten während des ersten Kopierens in den Adressbereich in der zweiten Partition kopiert werden und/oder wobei die Wiederherstellungsbedingung über eines oder mehrere von einem Benutzerschnittstellenstift oder einem Statusregister erkannt wird.
  3. Rechensystem nach Anspruch 1 oder 2, wobei die Befehle bei Ausführung den Prozessor ferner zu Folgendem veranlassen: Durchführen einer Integritätsprüfung vor dem zweiten Kopieren, wobei das zweite Kopieren durchgeführt wird, wenn die Integritätsprüfung keinen Fehler in einem ersten Adressbereich, der die Firmware-Daten enthält, in der ersten Partition oder in einem zweiten Adressbereich, der die Firmware-Daten enthält, in der zweiten Partition erkennt, und Umgehen des zweiten Kopierens, wenn die Integritätsprüfung einen Fehler in einem oder mehreren von dem ersten Adressbereich oder dem zweiten Adressbereich erkennt, wobei die Befehle bei Ausführung den Prozessor ferner optional zu Folgendem veranlassen: Abbilden des ersten Adressbereichs auf den zweiten Adressbereich, wenn die Integritätsprüfung einen Fehler in dem ersten Adressbereich erkennt, und Erzeugen einer Warnbenachrichtigung, wenn die Integritätsprüfung einen Fehler in dem ersten Adressbereich erkennt.
  4. Halbleitervorrichtung, Folgendes umfassend: ein oder mehrere Substrate und Logik, die mit dem einen oder den mehreren Substraten gekoppelt ist, wobei die Logik zumindest teilweise als eines oder mehreres von konfigurierbarer Logik oder Logik-Hardware mit fester Funktionalität umgesetzt ist, wobei die Logik für Folgendes mit dem einen oder den mehreren Substraten gekoppelt ist (70): Durchführen eines ersten Kopierens von Firmware-Daten aus einer ersten Partition in einem Speichergerät in eine zweite Partition in dem Speichergerät (72), Erkennen einer Wiederherstellungsbedingung bezüglich der Firmware-Daten in der ersten Partition (74) und automatisches Durchführen eines zweiten Kopierens der Firmware-Daten aus der zweiten Partition in die erste Partition in Reaktion auf die Wiederherstellungsbedingung (76), wobei die Firmware-Daten optional dafür vorgesehen sind, eine oder mehrere Einstellungen für Firmware-Code zu definieren, und wobei das erste Kopieren in Reaktion auf ein Schreiben der Firmware-Daten in die erste Partition durchgeführt wird.
  5. Halbleitervorrichtung nach Anspruch 4, wobei die mit dem einen oder den mehreren Substraten gekoppelte Logik dafür vorgesehen ist, basierend auf einem Bereichsdeskriptor einen Adressbereich für die Firmware-Daten in der zweiten Partition zu bestimmen, und wobei die Firmware-Daten während des ersten Kopierens in den Adressbereich in der zweiten Partition kopiert werden, und/oder wobei die Wiederherstellungsbedingung über eines oder mehrere von einem Benutzerschnittstellenstift oder einem Statusregister erkannt wird.
  6. Halbleitervorrichtung nach Anspruch 4 oder 5, wobei die mit dem einen oder den mehreren Substraten gekoppelte Logik für Folgendes vorgesehen ist: Durchführen einer Integritätsprüfung vor dem zweiten Kopieren, wobei das zweite Kopieren durchgeführt wird, wenn die Integritätsprüfung keinen Fehler in einem ersten Adressbereich, der die Firmware-Daten enthält, in der ersten Partition oder in einem zweiten Adressbereich, der die Firmware-Daten enthält, in der zweiten Partition erkennt, und Umgehen des zweiten Kopierens, wenn die Integritätsprüfung einen Fehler in einem oder mehreren von dem ersten Adressbereich oder dem zweiten Adressbereich erkennt, wobei die mit dem einen oder den mehreren Substraten gekoppelte Logik optional für Folgendes vorgesehen ist: Abbilden des ersten Adressbereichs auf den zweiten Adressbereich, wenn die Integritätsprüfung einen Fehler in dem ersten Adressbereich erkennt, und Erzeugen einer Warnbenachrichtigung, wenn die Integritätsprüfung einen Fehler in dem ersten Adressbereich erkennt, wobei die mit dem einen oder den mehreren Substraten gekoppelte Logik optional Transistorkanalregionen beinhaltet, die in dem einen oder den mehreren Substraten positioniert sind.
  7. Mindestens ein computerlesbares Speichermedium, das einen Satz ausführbarer Programmbefehle umfasst, die bei Ausführung durch ein Rechensystem das Rechensystem zu Folgendem veranlassen (70): Durchführen eines ersten Kopierens von Firmware-Daten aus einer ersten Partition in einem Speichergerät in eine zweite Partition in dem Speichergerät (72), Erkennen einer Wiederherstellungsbedingung bezüglich der Firmware-Daten in der ersten Partition (74) und automatisches Durchführen eines zweiten Kopierens der Firmware-Daten aus der zweiten Partition in die erste Partition in Reaktion auf die Wiederherstellungsbedingung (76), wobei die Firmware-Daten optional dafür vorgesehen sind, eine oder mehrere Einstellungen für Firmware-Code zu definieren, und wobei das erste Kopieren in Reaktion auf ein Schreiben der Firmware-Daten in die erste Partition durchgeführt wird.
  8. Mindestens ein computerlesbares Speichermedium nach Anspruch 7, wobei die Befehle bei Ausführung das Rechensystem ferner veranlassen, basierend auf einem Bereichsdeskriptor einen Adressbereich für die Firmware-Daten in der zweiten Partition zu bestimmen, und wobei die Firmware-Daten während des ersten Kopierens in den Adressbereich in der zweiten Partition kopiert werden und/oder wobei die Wiederherstellungsbedingung über eines oder mehreres von einem Benutzerschnittstellenstift oder einem Statusregister erkannt wird.
  9. Mindestens ein computerlesbares Speichermedium nach Anspruch 7 oder 8, wobei die Befehle bei Ausführung das Rechensystem ferner zu Folgendem veranlassen: Durchführen einer Integritätsprüfung vor dem zweiten Kopieren, wobei das zweite Kopieren durchgeführt wird, wenn die Integritätsprüfung keinen Fehler in einem ersten Adressbereich, der die Firmware-Daten enthält, in der ersten Partition oder in einem zweiten Adressbereich, der die Firmware-Daten enthält, in der zweiten Partition erkennt, und Umgehen des zweiten Kopierens, wenn die Integritätsprüfung einen Fehler in einem oder mehreren von dem ersten Adressbereich oder dem zweiten Adressbereich erkennt, wobei die Befehle bei Ausführung das Rechensystem ferner zu Folgendem veranlassen: Abbilden des ersten Adressbereichs auf den zweiten Adressbereich, wenn die Integritätsprüfung einen Fehler in dem ersten Adressbereich erkennt, und Erzeugen einer Warnbenachrichtigung, wenn die Integritätsprüfung einen Fehler in dem ersten Adressbereich erkennt.
  10. Verfahren (70), Folgendes umfassend: Durchführen eines ersten Kopierens von Firmware-Daten aus einer ersten Partition in einem Speichergerät in eine zweite Partition in dem Speichergerät (72), Erkennen einer Wiederherstellungsbedingung bezüglich der Firmware-Daten in der ersten Partition (74) und automatisches Durchführen eines zweiten Kopierens der Firmware-Daten aus der zweiten Partition in die erste Partition in Reaktion auf die Wiederherstellungsbedingung (76), wobei die Firmware-Daten optional eine oder mehrere Einstellungen für Firmware-Code definieren und das erste Kopieren in Reaktion auf ein Schreiben der Firmware-Daten in die erste Partition durchgeführt wird, wobei das Verfahren optional ferner das Bestimmen eines Adressbereichs für die Firmware-Daten in der zweiten Partition basierend auf einem Bereichsdeskriptor beinhaltet, wobei die Firmware-Daten während des ersten Kopierens in den Adressbereich der zweiten Partition kopiert werden, wobei die Wiederherstellungsbedingung optional über eines oder mehreres von einem Benutzerschnittstellenstift oder einem Statusregister erkannt wird, wobei das Verfahren optional ferner Folgendes beinhaltet: Durchführen einer Integritätsprüfung vor dem zweiten Kopieren, wobei das zweite Kopieren durchgeführt wird, wenn die Integritätsprüfung keinen Fehler in einem ersten Adressbereich, der die Firmware-Daten enthält, in der ersten Partition oder in einem zweiten Adressbereich, der die Firmware-Daten enthält, in der zweiten Partition erkennt, und Umgehen des zweiten Kopierens, wenn die Integritätsprüfung einen Fehler in einem oder mehreren von dem ersten Adressbereich oder dem zweiten Adressbereich erkennt, wobei das Verfahren optional ferner Folgendes beinhaltet: Abbilden des ersten Adressbereichs auf den zweiten Adressbereich, wenn die Integritätsprüfung einen Fehler in dem ersten Adressbereich erkennt, und Erzeugen einer Warnbenachrichtigung, wenn die Integritätsprüfung einen Fehler in dem ersten Adressbereich erkennt.
DE102020134018.4A 2020-03-27 2020-12-17 Technologie zum ermöglichen sicherer und belastbarer wiederherstellung von firmware-daten Pending DE102020134018A1 (de)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US16/833,166 2020-03-27
US16/833,166 US11422896B2 (en) 2020-03-27 2020-03-27 Technology to enable secure and resilient recovery of firmware data

Publications (1)

Publication Number Publication Date
DE102020134018A1 true DE102020134018A1 (de) 2021-09-30

Family

ID=71517610

Family Applications (1)

Application Number Title Priority Date Filing Date
DE102020134018.4A Pending DE102020134018A1 (de) 2020-03-27 2020-12-17 Technologie zum ermöglichen sicherer und belastbarer wiederherstellung von firmware-daten

Country Status (3)

Country Link
US (1) US11422896B2 (de)
CN (1) CN113448505A (de)
DE (1) DE102020134018A1 (de)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111950014A (zh) * 2020-08-27 2020-11-17 英业达科技有限公司 服务器系统启动的安全度量方法、安全度量装置及服务器
US11847226B1 (en) * 2020-11-25 2023-12-19 American Megatrends International, Llc Baseboard Management Controller (BMC)-based security processor
US20220398320A1 (en) * 2021-06-14 2022-12-15 Dell Products, L.P. Data sharing system and method for a multi-boot baseboard management controller (bmc)
US11829248B2 (en) * 2021-09-23 2023-11-28 Dell Products L.P. Firmware recovery by image transfusion

Family Cites Families (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6182187B1 (en) * 1993-04-07 2001-01-30 Compaq Computer Corporation System ROM including a flash EPROM and a ROM for storing primary boot code replacing a block flash EPROM
US5793943A (en) * 1996-07-29 1998-08-11 Micron Electronics, Inc. System for a primary BIOS ROM recovery in a dual BIOS ROM computer system
JP2000173289A (ja) * 1998-12-10 2000-06-23 Toshiba Corp エラー訂正可能なフラッシュメモリシステム
US6757838B1 (en) * 2000-10-13 2004-06-29 Hewlett-Packard Development Company, L.P. Hardware independent implementation of computer system BIOS recovery
US7594135B2 (en) * 2003-12-31 2009-09-22 Sandisk Corporation Flash memory system startup operation
TW200532556A (en) * 2004-03-19 2005-10-01 Hon Hai Prec Ind Co Ltd A system and method for updating programs in the BIOS
GB2472051B (en) * 2009-07-22 2012-10-10 Wolfson Microelectronics Plc Power management apparatus and methods
CN102298545B (zh) * 2011-08-23 2014-03-19 晨星软件研发(深圳)有限公司 一种系统启动引导处理方法及装置
US10621351B2 (en) * 2016-11-01 2020-04-14 Raptor Engineering, LLC. Systems and methods for tamper-resistant verification of firmware with a trusted platform module
US10740084B2 (en) 2018-08-16 2020-08-11 Intel Corporation Soc-assisted resilient boot
US10922071B2 (en) * 2019-03-13 2021-02-16 Quanta Computer Inc. Centralized off-board flash memory for server devices
US11144328B2 (en) * 2020-02-03 2021-10-12 Dell Products L.P. System method to update failover process by running basic input/output (BIOS) system boot code from non-volatile memory express device (NVME)
US20210240831A1 (en) * 2020-02-03 2021-08-05 Dell Products L.P. Systems and methods for integrity verification of secondary firmware while minimizing boot time

Also Published As

Publication number Publication date
US20200226028A1 (en) 2020-07-16
CN113448505A (zh) 2021-09-28
US11422896B2 (en) 2022-08-23

Similar Documents

Publication Publication Date Title
DE102020134018A1 (de) Technologie zum ermöglichen sicherer und belastbarer wiederherstellung von firmware-daten
US11556327B2 (en) SOC-assisted resilient boot
US11875147B2 (en) Firmware component with self-descriptive dependency information
DE112016006003T5 (de) Vertrauenswürdiger Start sicherer Enklaven in virtuellen Umgebungen
DE112017000677T5 (de) Prozessorerweiterungen zum Schutz von Stapeln während Ringübergängen
DE102020132716A1 (de) System zum analysieren und verbessern von software auf der basis von graph attention netzen
DE102020129195A1 (de) Vereinheitlichtes programmiermodul für eine funktion-als-ein-dienst-berechnung
US20210089411A1 (en) Restoring persistent application data from non-volatile memory after a system crash or system reboot
DE112011106079T5 (de) Frühe Weiterleitung von Gewebefehlern
DE202017007430U1 (de) Erkennen von Bussperrbedingungen und Vermeiden von Bussperren
DE112017001704T5 (de) Arbiterbasierte Serialisierung von Prozessor-System-Management-Interrupt-Ereignissen
DE112017003350T5 (de) Speicherauslesebefehle, prozessoren, verfahren und systeme, die bei defekten daten keine ausnahme annehmen
CN113254086A (zh) Bios到操作系统的数据交换的部署
DE102021117226A1 (de) Konfigurierbarer reduzierter speicherstart
DE102020108612A1 (de) Ausserband-verwaltungsschnittstelle von nichtflüchtigem speicher für alle hostprozessor-power-zustände
CN107924418B (zh) 在非易失性存储器中使易失性隔离事务具有失败原子性
US11544129B2 (en) Cross-component health monitoring and improved repair for self-healing platforms
DE102021129703A1 (de) Anwendungsorientierter angemessener überstromschutz für multi-buchsen-plattformen
DE102021124729A1 (de) Vorrichtung, system und verfahren zur bestimmung einer struktur einer crashprotokollaufzeichnung
CN115004155A (zh) 在运行时实现外部存储器训练
DE102019100218A1 (de) Latenzarmer Systemstart aus Nullenergiezustand
WO2022099531A1 (en) Offloading reliability, availability and serviceability runtime system management interrupt error handling to cpu on-die modules
DE102021117300A1 (de) Mehrere virtuelle numa-domänen innerhalb einer einzelnen numa-domäne über betriebssystem-schnittstellentabellen
JP7517772B2 (ja) 性能強化コンピューティングシステム、半導体基板、コンピュータプログラム、及び、性能強化コンピューティングシステムを操作するための方法
DE112019002226T5 (de) Nullsetzen eines Speichers bei Zugriff