DE102020133809A1 - Schnittstelle und warm-rücksetzpfad für speichervorrichtungsfirmware-upgrades - Google Patents

Schnittstelle und warm-rücksetzpfad für speichervorrichtungsfirmware-upgrades Download PDF

Info

Publication number
DE102020133809A1
DE102020133809A1 DE102020133809.0A DE102020133809A DE102020133809A1 DE 102020133809 A1 DE102020133809 A1 DE 102020133809A1 DE 102020133809 A DE102020133809 A DE 102020133809A DE 102020133809 A1 DE102020133809 A1 DE 102020133809A1
Authority
DE
Germany
Prior art keywords
firmware
activation
information
indicate
memory
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
DE102020133809.0A
Other languages
English (en)
Inventor
Murugasamy K. Nachimuthu
Deepak Gandiga Shivakumar
Dan Williams
Tiffany Kasanicky
Krysztof Rusocki
Nicholas Moulin
Mohan J. Kumar
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 DE102020133809A1 publication Critical patent/DE102020133809A1/de
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/60Software deployment
    • G06F8/65Updates
    • G06F8/654Updates using techniques specially adapted for alterable solid state memories, e.g. for EEPROM or flash memories
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/60Software deployment
    • G06F8/65Updates
    • 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/142Reconfiguring to eliminate the error
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/60Software deployment
    • G06F8/65Updates
    • G06F8/656Updates while running
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/4401Bootstrapping
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/48Program initiating; Program switching, e.g. by interrupt
    • G06F9/4806Task transfer initiation or dispatching
    • G06F9/4843Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
    • G06F9/4881Scheduling strategies for dispatcher, e.g. round robin, multi-level priority queues

Landscapes

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

Abstract

Systeme, Vorrichtungen und Verfahren können Technologie bereitstellen, die Aktivierungsinformationen zwischen System-Firmware und einem OS (Betriebssystem) austauscht, wobei die Aktivierungsinformationen eine oder mehrere von Statusinformationen, Aktivierungszustandsinformationen, Fähigkeitsinformationen, Aktivierungszeitinformationen oder Ruhigstellungs-Zeitinformationen umfassen. Die Technologie führt außerdem ein Laufzeit-Upgrade der Vorrichtungs-Firmware auf der Basis der Aktivierungsinformationen durch, wobei das Laufzeit-Upgrade ein Rebooten des Datenverarbeitungssystems umgeht.

Description

  • Die vorliegende Anmeldung beansprucht die Priorität aus der vorläufigen US-Patentanmeldung Nr. 63/025,587 , eingereicht am 15.5.2020.
  • Ausführungsformen betreffen allgemein Firmware-Upgrades. Insbesondere betreffen Ausführungsformen eine Schnittstelle und einen Warm-Rücksetzpfad für Speichervorrichtungs-Firmware-Upgrades.
  • Speichervorrichtungen, wie etwa das INTEL OPTANE PMem (Persistent Memory Module), auch als persistenter Speicher bekannt und zuvor als Intel® Optane™ DCPMM-Technologie (Data Center Persistant Memory Module) bekannt, stellt persistenten Speicher und flüchtigen Speicher bereit, und in Verbindung mit Prozessortechnologien kann das System mehrere Speichermodi unterstützen, wie etwa ILM, 2LM (Memory Mode) und App-Direct. Wenn CSP (Cloud-Dienstanbieter) diese Speichertechnologie verwenden, kann die Möglichkeit, DCPMM-Firmware zu upgraden, um Fehlerbehebungen anzuwenden, Umgehungslösungen anzuwenden und Telemetrie-Debug/Ursachenausgaben hinzuzufügen, ohne das System neu zu booten, vorteilhaft sein (z. B. um Dienstunterbrechung zur Erfüllung von SLA (Dienstniveauvereinbarungen) mit ihren Endkunden zu verringern). Bei aktuellen Implementierungen erfordern Firmware-Updates an der Speichervorrichtung ein Reboot, damit neue Firmware wirksam wird
  • Die verschiedenen Vorteile der Ausführungsformen werden Fachleuten bei Durchsicht der folgenden Beschreibung und angefügten Ansprüche und durch Bezugnahme auf die folgenden Zeichnungen ersichtlich. Es zeigen:
    • 1 ein Zustandsdiagramm eines Beispiels für Firmware-Aktivierungszustandsübergänge gemäß einer Ausführungsform;
    • 2 ein Flussdiagramm eines Beispiels für ein Verfahren zum Betrieb eines OS (Betriebssystems) und von Plattform-FW (Firmware) gemäß einer Ausführungsform;
    • 3 und 4 Blockdarstellungen von Beispielen für Socket-Systeme mit verschiedenen Arten von Speichervorrichtungen, die Firmware enthalten, gemäß Ausführungsformen;
    • 5A-5B Darstellungen von Beispielen für Teile einer PCie-Spezifikation (Peripheral Component Interconnect Express), die Abschluss-Zeitgrenzenunterstützung definiert;
    • 6 eine Blockdarstellung eines Beispiels für eine Schnittstelle von BIOS-OS (Basic Input Output System zu OS) für Speichervorrichtungs-Firmware-Updates gemäß einer Ausführungsform;
    • 7A-7B ein Flussdiagramm eines Beispiels für ein Verfahren zum Durchführen eines Laufzeit-Upgrade von Speichervorrichtungs-Firmware über ein Warm-Rücksetzen gemäß einer Ausführungsform;
    • 8A ein Flussdiagramm eines Beispiels für ein Verfahren zum Betrieb eines leistungsfähigkeitserweiterten Datenverarbeitungssystems gemäß einer Ausführungsform;
    • 8B ein Flussdiagramm eines Beispiels für ein Verfahren zum Durchführen eines Warm-Rücksetzens gemäß einer Ausführungsform;
    • 9 eine Blockdarstellung eines Beispiels für ein Datenverarbeitungssystem gemäß einer Ausführungsform;
    • 10 eine Darstellung eines Beispiels für eine Halbleitervorrichtung gemäß einer Ausführungsform;
    • 11 eine Blockdarstellung eines Beispiels für einen Prozessor gemäß einer Ausführungsform; und
    • 12 eine Blockdarstellung eines Beispiels für ein Datenverarbeitungssystem auf Mehrprozessorbasis gemäß einer Ausführungsform.
  • Herkömmlichen Lösungen fehlt Technologie zum Upgraden von Speichervorrichtungs-Firmware während der Laufzeit. Die NVMe-Standards (Non-Volatile Memory Express) bieten einen Mechanismus zum Upgraden von NVMe-Vorrichtungsfirmware ohne PCie-Streckenrücksetzen und stellt den Host-Speicherverkehr von anderen Eingabe/Ausgabe- bzw. E/A-Vorrichtungen nicht ruhig (z. B. Pause). Deshalb kann der durch die NVMe-Standards definierte Mechanismus nicht für Speichervorrichtungen verwendet werden.
  • In zukünftigen Generationen von Speichervorrichtungen können Laufzeit-Firmware-Upgrades ohne Reboot eingeführt werden.
  • Das Speichervorrichtungs-Laufzeit-Firmware-Upgrade könnte Ruhigstellung von Speicherzugriffen (z. B. für bis zu 500 ms) erfordern, um neue Firmware zu aktivieren. E/A-Vorrichtungen wie PCie-Vorrichtungen implementieren den CTO-Mechanismus (Completion Timeout - Abschlusszeitgrenze) von PCie, bei dem, wenn eine Anforderung durch eine E/A-Vorrichtung zum Hostspeicher- oder Konfigurationszugriff erfolgt, wenn der Zugriff nicht innerhalb der spezifizierten Zeit, definiert durch die PCie-Spezifikation (Beispiel in 5) zurückgegeben wird, es einen PCie-CTO-Fehler verursacht. Der Fehler kann zu einem Systemrücksetzen führen. Im Allgemeinen konfiguriert das OS die PCie-Vorrichtungen zum Betrieb der Vorrichtungen im Vorgabe-PCie-Abschlusszeitgrenzenmodus, das heißt, in der Größenordnung von 50 µs bis 50ms. Ruhigstellung von Speicherzugriff für mehr als 10 ms bis 50 ms würde zu Eingabe/Ausgabe- bzw. E/A-Vorrichtungs-Zeitgrenzenüberschreitung, OS-Dienst-Zeitgrenzenüberschreitung und/oder System-Reboot führen. Um mit diesen Zeitgrenzenüberschreitungen während des Speichervorrichtungs-Firmware-Upgrade umzugehen, müssen Plattform-Firmware, OS und E/A-Vorrichtungen koordiniert werden. Ausführungsformen stellen eines Mechanismus zum Lösen des OS- und E/A-Zeitgrenzenproblems während des Firmware-Upgrade bereit.
  • Bei einer Ausführungsform publiziert Plattform-Firmware (z. B. BIOS und/oder UEFI (Unified Extensible Firmware Interface)) Speichervorrichtungs-Firmware-Upgrade-Fähigkeitsinformationen zusammen mit der geschätzten Firmware-Aktivierungszeit, einschließlich Ruhigstellungszeit von Prozessor und E/A, an das OS. Sobald die Speichervorrichtungs-Firmware(s) aufgestellt sind, bereitet sich das OS auf der Basis der dem OS bereitgestellten Informationen für eine geschätzte Prozessor- und E/A-Ruhigstellungszeitgrenze vor (das OS führt z. B. entweder die E/A-Vorrichtungsrückstellung durch oder die Plattform-Firmware führt die E/A-Vorrichtungsruhigstellung durch) und ruft die Plattform-Firmware auf, um Speichervorrichtungs-Firmware zu aktivieren. Nachdem die Plattform-Firmware die Aktivierung der Speichervorrichtungen abschließt, kann das OS die Dienste wiederherstellen (z. B. Neuevaluieren von Interrupts, Timern und Neustarten von E/A-Diensten usw.), um den Betrieb fortzusetzen.
  • Die vorgeschlagene Lösung ermöglicht es Speichertechnologiekunden/CSP, eine Laufzeit-Firmware-Upgrade-Lösung ohne Reboot einzusetzen (z. B. über eine Benutzeranforderung). Diese Lösung verbessert die Qualität von Plattformen mit Speichertechnologieprodukten, indem Speichertechnologie-Firmware-Fehlerbehebungen, Umgehungslösungen, RAS-Lösungen (Zuverlässigkeit, Verfügbarkeit und Wartbarkeit) bereitgestellt und bessere Debug-/Ursachenlösungen ermöglicht werden.
  • Operations-Theorie
  • NVDIMM-Vorrichtungen (Non-Volatile Dual Inline Memory Module) verwenden Firmware zum Ausführen verschiedener Initialisierungs- und Laufzeitoperation. Nach Produktqualifikation und -einsatz werden oft Sicherheit, Fehlerbehebungen, Umgehungslösungen, Telemetrie zum Debuggen/Ursachenausgaben mittels Firmware-Änderungen behandelt. Um NVDIMM-Firmware zu upgraden, kann ein System- oder NVDIMM-Rücksetzen erforderlich sein, was zu einer langen Dienstausfallzeit führen könnte. Um die Ausfallzeit zu verringern, wird Laufzeitaktivierung (z. B. ohne System-Reboot) von Firmware eingeführt.
  • Traditionell wurden zur Verwendung und Verwaltung des NVDIMM Schnittstellen in den Spezifikationen UEFI, ACPI (Advanced Configuration and Power Interface) und PMEM.io Schnittstellen definiert. Nämlich SMBIOS (System Management BIOS), ACPI E820, UEFI Get Memory Map, SRAT (System Resource Affinity Table), SLIT (System Locality Distance Information Table), NFIT (NVDIMM Firmware Interface Table), HMAT (Heterogeneous Memory Attribute Table) und die DSM-Schnittstelle (Device Specific Method). In einem Beispiel werden vier DSM zu der NVDIMM-DSM-Schnittstellenspezifikation hinzugefügt. Zwei DSM-Schnittstellen auf NVDIMM-Wurzelvorrichtungsebene rufen Folgendes auf:
    • - Erhalten von Laufzeit-FW-Aktivierungsinfo von Vorrichtungen
    • - Aktivieren von Firmware
  • Und zwei DSM-Schnittstellen auf NVDIMM-Child-Blattvorrichtungsebene haben Folgendes aufgerufen:
    • - Erhalten von Laufzeit-FW-Aktivierungsinfo von Vorrichtungen
    • - Laufzeit-FW-Aktivierungs-Wappnungszustand
  • Bei anderen Ausführungsformen können auch Schnittstellen mit ähnlichen Informationen und Aktionen verwendet werden. Zum Beispiel kann ein anderes Beispiel annehmen, dass alle Vorrichtungen immer gewappnet sind, statt die Vorrichtungen selektiv zu wappnen.
  • Die NVDIMM-Firmware kann entweder unter Verwendung eines existierenden DSM oder OOB (Außerband) oder mittels eine proprietären Treibermechanismus auf die NVDIMM-Vorrichtungen heruntergeladen werden. Wenn Aktivierung neuer Firmware zur Laufzeit das Anhalten von Hostspeicherzugriff erfordert, erkundigt sich das OS über die Timinginformationen und bereitet sich vor, bevor der Hostspeicherzugriff angehalten und die neue NVDIMM-Firmware aktiviert wird. Wenn die Plattform-Firmware nicht in der Lage ist, Speicherverkehr für die geschätzte Zeitdauer anzuhalten, kann sich das OS darauf vorbereiten, E/A-Speicherverkehr anzuhalten und der Plattform-Firmware die Kontrolle zu geben, um neue NVDIMM-Firmware zu aktivieren. Wenn NVDIMM-Firmware einzeln aktiviert wird, wäre die insgesamte geschätzte Zeit zum Aktivieren neuer Firmware auf dem System die Gesamtzahl von NVDIMM im System mal die geschätzte Aktivierungszeit pro NVDIMM. Dieses Ergebnis kann für einige OS-Dienste nicht tolerierbar sein. Parallel Aktivierung von NVDIMM-Firmware kann deshalb ein Klon sein, um die Dienstunterbrechungszeit zu verringern. Bei einer Ausführungsform helfen die NVDIMM-Wurzelebene_DSM wenn möglich beim parallelen Aktivieren der NVDIMM-Firmware.
  • Wenn E/A-Vorrichtungen während der Firmware-Aktivierung ruhiggestellt werden sollen, können die folgenden Möglichkeiten in Betracht gezogen werden:
    • - Live-Aktivierung, wenn Plattform-Firmware in der Lage ist, E/A und Prozessorzugriff auf Hostspeicher anzuhalten und neue NVDIMM-Firmware zu aktivieren.
    • - Live-Aktivierung, wenn das OS E/A-Vorrichtungszugriff auf Hostspeicher ruhigstellen kann, indem entweder Bus-Mastering gesperrt oder Hostspeicherzugriff von E/A-Vorrichtungen angehalten/in den Schlafzustand versetzt wird, um Vorrichtungs-Bus-Mastering-Fähigkeit am Hostspeicher zu sperren, und wenn Plattform-Firmware Prozessorzugriff auf Hostspeicher anhalten und neue NVDIMM-Firmware aktivieren kann.
    • - Aktivierung auf Warm-Rücksetz-Basis - Durchführen, wenn die Plattform NVDIMM-Firmware-Aktivierung während eines Warm-Rücksetzens unterstützen kann und das OS ein Warm-Rücksetzen tolerieren kann. In diesem Fall durchlaufen E/A-Vorrichtungen ein Rücksetzen, was zu einem natürlichen Stoppen des E/A-Vorrichtungszugriffs auf Hostspeicher führt.
    • - Aktivierung auf Systemrücksetz-Basis - Systemrücksetzen bewirkt Affilierung von NVDIMM-Firmware.
  • Die ersten drei Möglichkeiten umfassen Plattform-Firmware-Assistenz zusätzlich zu OS-Assistenz, und die NVDIMM werden gewappnet, um die Firmware zu aktivieren. Die Plattform-Firmware-Aktivierungsfähigkeit ist mittels eines Wurzel-DSM-Aufrufs „Laufzeit-FW-Aktivierungsinfo von Vorrichtungen erhalten“ verfügbar.
  • 2 zeigt einen Systemebenenablauf 30 für Speichervorrichtungs-Firmware-Aktivierung mit einer oder mehreren der Ausführungsformen. Die folgende Sequenz stellt beispielhafte Operationen zur Aktivierung einer neuen Firmware bereit:
    • - Prozessblock 32 lädt neue Firmware (z. B. unter Verwendung von DSM oder mittels eines proprietären Mechanismus) auf NVDIMM herunter.
    • - Bestimmen, ob die Plattform Laufzeit-Firmware-Aktivierung unterstützt, durch Aufrufen von „Laufzeit-FW-Aktivierungsinfo von Vorrichtungen erhalten“ und Prüfen des Felds FW-Aktivierungs-Fähigkeit. Wenn einzelne DIMM Laufzeit-FW-Aktivierung unterstützen oder zur Aktivierung Herunterfahren erforderlich ist, kann die Firmware mittels des FW-Aktualisierungs-Fähigkeitsfeldes „FW-Info erhalten“ abgerufen werden.
    • - Prozessblock 34 wappnet NVDIMM unter Verwendung der Child-Funktion „Vorrichtungs-Laufzeit-FW-Aktivierungs-Wappnungszustand setzen“ (wobei gegebenenfalls Wappnung und Erhalten der geschätzten Zeit vor dem Herunterladen der Firmware geschehen könnte).
    • - Prozessblock 36 erhält geschätzte Zeiten unter Verwendung der Wurzel „Laufzeit-FW-Aktivierungsinfo von Vorrichtungen erhalten“.
      • -- Die geschätzte Zeit kann abhängig davon, welche NVDIMM gewappnet sind, unterschiedlich sein.
      • -- Das geschätzte Timing stellt geschätzte Firmware-Aktivierungszeit, geschätzte Prozessor-Ruhigstellungszeit während der Firmware-Aktivierung und geschätzte E/A-Ruhigstellungszeit während Firmware-Aktivierung bereit. Bei einer Ausführungsform umfasst die geschätzte Aktivierungszeit die Prozessor- und E/A-Ruhigstellungszeit, und die Prozessor-Ruhigstellungszeit umfasst die E/A-Ruhigstellungszeit. Wenn ein DIMM E/A- oder Prozessor-Ruhigstellung während FW-Aktivierung erfordert, kann die Firmware mittels des FW-Aktualisierungs-Fähigkeitsfeldes „FW-Info erhalten“ abgerufen werden.
      • -- Wenn die geschätzte E/-A-Ruhigstellungszeit größer als eine von der Plattform unterstützte maximale E/A-Ruhigstellungszeit ist, einige DIMM entwappnen und neu evaluieren. Wenn keine unter der Plattform-Maximal-E/A-Ruhigstellungszeit liegen, kann Live-Aktivierung nicht möglich sein:
    • - Die FW-Aktivierungsfähigkeit unter Verwendung der Wurzel „Laufzeit-FW-Aktivierungsinfo von Vorrichtungen erhalten“.
    • - Prozessblock 38 bereitet das OS vor, um Plattform-Firmware zur Aktivierung neuer NVDIMM-Firmware aufzurufen.
      • -- Wenn in Block 40 die FW-Aktivierungsfähigkeit „Live-Aktivierung unterstützt mit Plattform-Firmwareverwalteter Prozessor- und E/A-Ruhigstellung" und wenn das OS geschätztes Timing tolerieren kann:
        • --- Das OS schließt etwaige anstehende PMem-Modul-Mailbox-Zugriffe ab.
        • --- Prozessblock 42 ruft die Wurzelblöcke 48 (48a-48i) „Firmware aktivieren“ auf, um Firmware auf den gewappneten NVDIMM zu aktivieren.
        • --- Warten, bis „FW-Aktivierungszustand“ in den Leerlauf geht, durch Abfragen der Wurzelmethode „Laufzeit-FW-Aktivierungsinfo von Vorrichtungen erhalten“.
        • --- Bestimmen von Firmware-Aktivierung durch Aufrufen von „Laufzeit-FW-Aktivierungsinfo von Vorrichtungen erhalten“ an jeder Gewappnetes-NVDIMM-Child-Methode und Prüfen von „Letzter FW-Aktivierungsstatus““
        • --- Prozessblock 44 reevaluiert den Timer, so dass die OS-Zeit mit der Wanduhr-Zeit (z. B. vergangenen Echtzeit) übereinstimmt, wenn das OS Software- bzw. SW-Interrupts zur Verwaltung der Zeit verwendet.
      • -- Wenn der Block 40 FW-Aktivierungsfähigkeit „Live-Aktivierung mit OS-verwalteter E/A-Ruhigstellung (Vorrichtungsleerlauf) und Plattformverwalteter Prozessorruhigstellung unterstützt“ angibt und das OS E/A-Vorrichtungen in den Leerlauf bringen kann:
        • --- Das OS schließt etwaige anstehende PMem-Modul-Mailbox-Zugriffe ab.
        • --- Prozessblock 46 versetzt E/A-Vorrichtungen in den Leerlaufzustand (Abschließen aller existierender Busmastering-/DMA-Zyklen (Direct Memory Access) und Anhalten des Initialisierens neuer Busmastering-/DMA-Zyklen durch E/A-Vorrichtungen) .
        • --- Aufrufen der Wurzelblöcke 48 „Firmware aktivieren“ zur Aktivierung von Firmware auf den gewappneten NVDIMM.
        • --- Warten, bis „FW-Aktivierungszustand“ in den Leerlauf geht, durch Abfragen der Wurzelmethode „Laufzeit-FW-Aktivierungsinfo von Vorrichtungen erhalten“.
        • --- Bestimmen der Firmware-Aktivierung durch Aufrufen von „Laufzeit-FW-Aktivierungsinfo von Vorrichtungen erhalten“ an jeder Gewappnetes-NVDIMM-Child-Methode und Prüfen von „Letzter FW-Aktivierungsstatus““
        • --- Nachdem die Firmware-Aktivierung abgeschlossen ist, bringt das OS E/A-Vorrichtungen wieder in den normalen Betriebszustand.
        • --- Prozessblock 44 reevaluiert den Timer, so dass die OS-Zeit mit der Wanduhr-Zeit übereinstimmt, wenn das OS FW-Interrupts zur Verwaltung der Zeit verwendet. Block 45 nimmt OS und Dienste wieder auf.
      • -- Wenn die FW-Aktivierungsfähigkeit „auf Warm-Rücksetzen basierende Aktivierung unterstützt“ angibt und das OS Warm-Rücksetzen tolerieren kann:
        • --- Das OS bereitet sich für Warm-Rücksetzen vor.
        • --- Prozessblock 50 ruft Warm-Rücksetzen auf, wenn Block 49 bestimmt, dass das OS E/A-Vorrichtungs-DMA nicht stoppen kann.
        • --- Die Plattform-Firmware aktiviert den NVDIMM während des Warm-Rücksetz-Ablaufs.
        • --- Wenn das OS neu geladen wird, ist die neue NVDIMM-Firmware in Gebrauch.
        • --- Wenn keine der obigen Bedingungen möglich sind, ist Systemrücksetzen erforderlich, um die Firmware zu aktivieren.
      • -- Bei System-Rücksetzen wird aufgestellte Firmware ungeachtet des Wappnungszustands aktiviert.
  • In einem Beispiel kehrt Block 48a zurück, wenn keine FW auf den gewappneten DIMM verfügbar ist, wobei Block 48b bestimmt, ob FW-verwaltete E/A-Zeitgrenze zu verwenden ist. Wenn nicht, kann Block 48c zurückkehren, wenn die PCie-Vorrichtungen geschätzte PCIE-Abschlusszeitgrenze (CTO) nicht unterstützen. Bei einer Ausführungsform sichert Block 48d die CTO von PCie-Vorrichtungen und stellt auf eine neue PCI-CTO ein. Block 48e kann darauf warten, dass die aktuelle CTO Transaktionen erschöpft, und die CTO so setzen, dass sie größer als die geschätzte Zeit ist. Bei einer Ausführungsform stellt Block 48f Speicherzugriff ruhig. Der dargestellte Block 48g aktiviert die Speichervorrichtungs-Firmware, wobei die PCie-Vorrichtungs-CTO in Block 48h wiederhergestellt wird. Block 48i kann den Status aktualisieren und aus SMI (System Management Interrupt) zurückkehren. Wenn in Block 48b bestimmt wird, dass FW-verwaltete E/A-Zeitgrenze nicht zu verwenden ist, können die Wurzelblöcke 48 „Firmware aktivieren“ die Blöcke 48c-48e umgehen und direkt zu Block 48f schreiten.
  • 1 zeigt einen Automaten 20 mit den Firmware-Aktivierungszustandsübergängen.
  • Nicht alle PCie-Vorrichtungen können E/A-Vorrichtungs-Abschlusszeitgrenzen von mehr als 10 ms (oder von Speichervorrichtung benötigte Speicherzugriffszeit) unterstützen. In diesen Fällen kann Plattform-Firmware nicht in der Lage sein, die E/A-Vorrichtungszeitgrenze dynamisch einzustellen und das System ruhig zu stellen. In diesen Situationen wird die geschätzte Zeitgrenze die Informationen mittels eines DSM-Aufrufs widerspiegeln, und entweder verhindert das OS, dass die E/A-Vorrichtungen irgendeinen DMA erzeugen, bevor die Firmwareaktivierung aufgerufen wird, oder das OS führt ein Warm-Rücksetzen oder Kalt-Rücksetzen aus, um die neue Firmware zu aktivieren.
  • Einige relevante Parameter in der DSM
  • NVDIMM-Wurzel-DSM:
    • - Laufzeit-FW-Aktivierungsinfo von Vorrichtungen erhalten (Ausgabe)
    • - Status
      • -- Firmware-Aktivierungsstatus
      • -- Leerlauf
        • --- Gewappnet
        • --- Beschäftigt
      • -- Firmware-Fähigkeit
        • --- Live-Aktivierung mit Plattform-Firmwareverwalteter Prozessor- und E/A-Ruhigstellung unterstützt
        • --- Live-Aktivierung mit OS-verwalteter E/A-Ruhigstellung (Vorrichtungsleerlauf) und Plattform-verwalteter Prozessor-Ruhigstellung unterstützt
        • --- Auf Warm-Rücksetzen basierende Aktivierung unterstützt
        • --- Kalt-Rücksetzen aktiviert neue Firmware
      • -- Geschätzte Firmware-Aktivierungszeit
      • -- Geschätzte Firmware-Ruhigstellungszeit für FW-Aktivierung
      • -- Geschätzte Ruhigstellungszeit von E/A-Zugriff auf Speicher für Firmware-Aktivierung
      • -- Maximale Plattform-Firmware-unterstützte Ruhigstellungszeit von E/A-Zugriff auf Speicher
    • - Firmware aktivieren
      • -- E/A-Vorrichtungszustand (Eingabe)
        • --- Plattform-verwaltete E/A- und Prozessorruhigstellung
        • --- OS-verwaltete E/A-Ruhigstellung und Plattform-Firmware-verwaltete Prozessorruhigstellung
      • -- Status (Ausgabe)
  • NVDIMM-Child-DSM
    • - Laufzeit-FW-Aktivierungsinfo von Vorrichtungen erhalten (Ausgabe)
    • - Status
      • -- Firmware-Aktivierungsstatus
        • --- Leerlauf
        • --- Gewappnet
        • --- Beschäftigt
    • - Vorrichtungs-Laufzeit-FW-Aktivierungs-Wappnungszustand setzen (Eingabe)
      • -- Wappnungszustand
        • --- Nicht gewappnet (ent-gewappnet)
        • --- Gewappnet
  • Obwohl die obigen DSM als Beispiel zur Beschreibung des Konzepts verwendet werden, kann die Technologie unter Verwendung verschiedener DSM-, ACPI- oder UEFI- oder proprietärer Treibermodelltechnologie implementiert werden und ähnliche Informationen zwischen OS und Plattform-Firmware übermitteln, um ähnliches Verhalten zu erreichen. Auf jeden Fall erfolgt ein Informationsaustausch zwischen Plattform-Firmware und dem OS, sowie Plattform-Firmware- und OS-Verhalten zur Aktualisierung von Speichervorrichtungs-Firmware ohne ein System-Reboot.
  • 3 zeigt ein Zwei-Socket-System 60 mit Firmware enthaltenden Speichervorrichtungen.
  • Warm-Rücksetzungen
  • Das Speichervorrichtungs-Laufzeit-Firmware-Upgrade kann umfassen, dass Speicherzugriffe für bis zu 500 ms ruhiggestellt werden, um neue Firmware zu aktivieren. Bei aktuellen Systemimplementierungen unterstützen die meisten der PCie-Vorrichtungen, die heutzutage verwendet werden, keine PCie-Vorrichtungs-Abschlusszeitgrenzen von mehr als 10 ms. Keines der existierenden vielfach eingesetzten OS (z. B. WINDOWS/LINUX) unterstützt das Anhalten aller E/A-Vorrichtungen bei der Durchführung von DMA (Direct Memory Access) während der Laufzeit zur Aktivierung neuer Firmware. Ausführungsformen stellen einen Mechanismus für Plattform-Firmware zur Aktivierung von Speichervorrichtungs-Firmware bereit, ohne OS-Speicherinhalte zu verlieren, und bei schneller Wiederaufnahme des OS-Betriebs.
  • Plattform-Firmware (BIOS/UEFI) publiziert Speichervorrichtungs-Firmware-Upgrade-Fähigkeitsinformationen an das OS zusammen mit der geschätzten Firmware-Aktivierungszeit, die Prozessor- und E/A-Ruhigstellungszeit umfasst.
  • Sobald die Speichervorrichtungs-Firmware(s) ausgestellt sind, kann das OS die Speichervorrichtungen für Firmware-Aktivierung wappnen und ein Warm-Rücksetzen oder OS-Speicher-Erhaltungs-Warm-Rücksetzen zur Aktivierung neuer Firmware aufrufen.
  • Bei einer Ausführungsform stellt die Plattform-Firmware (BIOS/BMC (Baseboard Management Controller)) den Speicherverkehr ruhig und aktiviert neue Firmware im Warm-Rücksetz-Pfad ohne OS-Speicherinhalte zu verlieren.
  • Die vorgeschlagene Lösung ermöglicht vielfältigen Einsatz von Speichertechnologie-Firmware-Upgrades, ohne System-Reboot zu erfordern, oder während das OS lebendig (z. B. aktiv) ist.
  • Speichertechnologiekunden und CSP können Speicher der Vorrichtungs-Firmware-Upgrade-Lösung ohne OS-Inhaltsverlust oder Reboot einsetzen. Diese Lösung führt zu verbesserter Qualität von Plattformen mit Speichertechnologieprodukten durch Bereitstellung von Speichertechnologie-Firmware-Fehlerbehebungen, Umgehungslösungen, RAS-Lösungen und Ermöglichung von besseren Debug-/Ursachenlösungen.
  • 4 zeigt ein 2-Socket-Computersystem 70 mit PMem-Speichervorrichtungen, die Firmware enthalten. Speichervorrichtungen können mit anderen Speichervorrichtungen verschachtelt werden. Einige Speichervorrichtungen können als Zwischenspeicher für andere Speichervorrichtungen wirken. Speichervorrichtungen wie PMem können einen Speichervorrichtungs-Controller mit Firmware führen, die Speicherverbindungsinitialisierung, Fehlerhandhabung, Handhabung von Stromausfall/-fehler, persistenten Speicher, Abnutzungsnivellierung, Lese-/Schreibstörung, Selbstüberwachung, SMART-Informationen (Self-Monitoring, Analysis and Reporting Technology), Sicherheitsverwaltung, Telemetrie, RAS-Handhabung usw. unterstützt.
  • Wenn die Firmware auf der Speichervorrichtung ohne Reboot zu upgraden ist, kann der Speicherverkehr zu dem Speichermodul ruhiggestellt werden, um Fälle wie nachfolgend zu erlauben:
    • - Neue Firmware-Sicherheitsauthentifizierung
    • - Abspeichern des aktuellen Zustands der Speichervorrichtung, damit die neue Firmware den Zustand sicher überführen kann
    • - Während des Übergangs von alter Firmware zu neuer Firmware gibt es keine laufende Firmware zum Umgang mit Laufzeitoperationen, wie etwa:
      • -- Fehler/Stromausfall-Fehler, Abnutzungsnivellierung, Lese-/Schreibstörung, SMART usw.
  • Diese Speichervorrichtungen kann durch den Prozessor oder E/A-Vorrichtungen zugegriffen werden, die möglicherweise die von der Speichervorrichtung zum Upgrade der Firmware benötigte lange Zeitgrenze nicht unterstützen. Zum Beispiel können, wie in den Spezifikationen 80, 82 von 5A-5B gezeigt, einige PCie-Vorrichtungen, einige PCie-Vorrichtungen PCie-Abschlusszeitgrenzen nicht unterstützen, was zu Betrieb nur im Vorgabebereich von 50 µs bis 50 ms führt, oder einige können nur Bereich A und B der PCie-Abschlusszeitgrenze unterstützen und einige können alle Bereiche unterstützen. Selbst wenn die Vorrichtungen den gesamten Bereich ABCD unterstützen, könnte das OS die Vorrichtungen dafür konfiguriert haben, in einem Vorgabebereich oder Bereich A zu arbeiten. In einem solchen Fall kann zum Beispiel, wenn der Speichervorrichtungsverkehr für den Bereich von 500 ms ruhigzustellen ist, ein zu einem Systemfehler führender Fehler auftreten. In einigen Fällen kann der Prozessor Speicherverkehr-Ruhigstellungsunterstützung während der Laufzeit nicht unterstützen.
  • In der vorgeschlagenen Lösung 90 stellt, wie in 6 gezeigt, das BIOS 92 eine einfache Schnittstelle zum OS 91 (91a-91f, z. B. ACPI-Tabellen, DSM, UEFI-Laufzeitdienste, UEFI-NVRAM-Variablen) und/oder VMM (Virtual Machine Monitor, z. B. Hypervisor) bereit, um auf Warm-Rücksetzen basierende Speichervorrichtungs-Firmware-Upgrade-Fähigkeiten und Wappnung von Speichervorrichtungen für Firmware-Upgrade zu präsentieren. Der Wappnungsmechanismus (z. B. ausgewählte Vorrichtungen oder alle oder keine) erlaubt Kompatibilität mit existierender Warm-Rücksetz-Fähigkeit (z. B. keine Firmware aktualisiert) oder um Firmware-Upgrade zu erlauben.
  • Im dargestellten Beispiel kommuniziert das BIOS 92 mit einem BMC 93, Speichervorrichtungen 94 und einem Prozessor 95 der mit den E/A-Vorrichtungen 96 gekoppelt ist. Das BIOS kann auch eine Nachricht der Plattforminitialisierung 97 (z. B. POST (Power on Self-Test)) an das OS 91 ausgeben. Bei einer Ausführungsform verwendet eine OS-Ladevorrichtung 91a die Plattforminitialisierungsnachricht 97 zum Auslösen einer Prozedur 91b, die einen Kernel 91c lädt und initialisiert. Der dargestellte Kernel 91c löst einen Block 91d aus, um eine BIOS-OS-Speichervorrichtungs-Firmware-Schnittstelle zu verarbeiten, die Firmware aufzustellen und die Speichervorrichtungen zu wappnen. Block 91c kann die Firmware aktivieren, wenn Laufzeit-Firmware-Aktivierung möglich ist, und zum Kernel 91c zurückkehren. Wenn Aktivierung auf Warm-Rücksetz-Basis durchzuführen ist, führt Block 91f das Warm-Rücksetzen durch. Wenn das OS 91 und das BIOS 92 MPR (Memory Preserving Reset) unterstützen, wird entweder ein MPR oder Warm-Rücksetzen in Block 91f durchgeführt. Bei einer Ausführungsform befindet sich der Kernel 91c auch in Kommunikation mit einer oder mehreren VM (virtuellen Maschinen) und/oder Anwendungen 92.
  • Sobald die Firmware auf den Speichervorrichtungen aufgestellt ist (mittels Inband- oder OOB-Schnittstelle), werden Speichervorrichtungen gewappnet, um Firmware zu upgraden, indem ein Warm-Rücksetzen (entweder OS-speichererhaltendes Rücksetzen durchgeführt wird). 7A-7B skizzieren die Abläufe 100, 101 von BIOS und BMC (Baseboard Management Controller) zur Aktivierung neuer Speichervorrichtungs-Firmware.
  • Sobald ein Warm-Rücksetzen durchgeführt ist, ruft der Prozessor den Rücksetz-BIOS-Code auf und führt Initialisierung von Interconnect von Speicher und Prozessor zu Prozessor, wie etwa UPI (Ultra Path Interconnect) von INTEL, aus. Es gibt einige Optionen zur Freigabe von Speichervorrichtungs-Firmware im Warm-Rücksetz-Ablauf, bevor E/A-Vorrichtungen dafür freigegeben werden, Speicherzugriff durchzuführen.
  • Option 1:
  • Wenn der Speicherinitialisierungscode, auch als MRC (Memory Reference Code) bekannt, in der Lage ist, Wappnungsdecodierung und Aktivierung neuer Speichervorrichtungs-Firmware (wenn Firmware bereits aufgestellt ist) durchzuführen, kann, sobald der Normalmodus in RMC erreicht ist, vor dem Schließen des NEM (Non-Eviction Mode), wobei MRC-Code Prozessor-Cache ausgeht), der MRC mit den Speichervorrichtungen kommunizieren, und der Verarbeitungsblock 102 aktiviert die Firmware. Hier besteht keine E/A-Vorrichtungsfreigabe zur Verwendung des Systemspeichers.
  • Somit ist Option 1 ein Beispiel für das Durchführen der Firmware-Aktivierung, bevor E/A-Vorrichtungs-DMA-Zugriff freigegeben wird. Tatsächlich könnte diese Aktivierung vor dem Starten der Initialisierung oder nach dem Durchführen der Speicherinitialisierung durchgeführt werden, aber bevor Speicher (aus dem z. B. ausgeführt wird) ausgeht. Die Verwendung des NEM-Modus oder von MRC zur Aktivierung der Firmware sind deshalb Techniken zur Aktivierung der Firmware, bevor Speicher ausgeht. Ein anderer Ansatz umfasst Ausführen aus Flash und bevor NEM analysiert ist, wobei mit dem DIMM kommuniziert wird, um die Firmware zu aktivieren.
  • Option 2:
  • Nachdem MRC/UPI-RC-Code ausgegangen ist, kann, normalerweise in der DXE (Driver Execution Environment) vor dem Initialisieren von E/A-Vorrichtungen ein DXE-Treiber in Block 104 einen Mikrocontroller aufrufen, wie zum Beispiel den BMC, Systemverwaltungscontroller, Sicherheitscontroller, Power-Management-Controller usw., um die neue Firmware zu aktivieren. In den dargestellten Blöcken 106 (106a-106j) führt der BMC-Code seinerseits Ruhigstellung durch und kommuniziert mit den Speichervorrichtungen, um die Firmware zu aktivieren. Der Grund für Ruhigstellung ist, dass aus Speicher heraus ausgeführtes BIOS zu Speicherzugriffen auf die Speichervorrichtungen führt, und wenn ME-SPS (Verwaltbarkeits-Engine-Serverplattformdienste) auf den Hostspeicher zugreifen können, können die ME-SPS Speicherzugriffe erzeugen. Sobald der BMC die Speichervorrichtungs-Firmware-Aktivierung abschließt, kann das BIOS zum Warm-Booten oder OS-speichererhaltenden Warm-Booten das System normal booten.
  • Obwohl hier beschriebene Ausführungsformen Einzelheiten für Speichervorrichtungs-Firmware-Updates (insbesondere PMem) umfassen, sind andere Firmware-Upgrades, wie etwa Mikrocode-Upgrade oder Teil des BIOS-Upgrade, unter Verwendung ähnlicher oben skizzierter Abläufe möglich. Die DRAM-Vorrichtung könnte Firmware im DIMM aufweisen, und es könnte ein ähnlicher Ansatz für Upgrade verwendet werden.
  • Spezieller detektiert der dargestellte OS-Block 103 eine Anforderung vom Benutzer (z. B. Kunden, Entwickler), Firmware herunterzuladen, und Block 105 wappnet die Firmware-Vorrichtungen. Bei einer Ausführungsform analysiert Block 107 geschätzte Timinginformationen, und Block 108 bereitet das OS für Speichervorrichtungs-Firmware-Aktivierung vor. In Block 109 kann eine Bestimmung erfolgen, ob FW ohne ein Warm-/Kalt-Rücksetzen aktiviert werden kann. Wenn dem so ist, führt Block 111 Laufzeit-FW-Aktivierung durch und Block 113 nimmt OS und Dienste wieder auf. Wenn in Block 109 bestimmt wird, dass FW nicht ohne ein Warm-/Kalt-Rücksetzen aktiviert werden kann, kann Block 115 ein Warm-Rücksetzen oder OS-speichererhaltendes Warm-Rücksetzen auslösen.
  • Der dargestellte BIOS-Block 117 führt ein Warm-Rücksetzen durch, wobei die Stromversorgung des Systems nicht verlorengeht und Speichervorrichtungsinhalte erhalten werden. Block 119 kann Speicher- und UPI-Verbindungen initialisieren (z. B. werden Speicher-Verschachtelungsmengen erhalten) und in den Normalmodus eintreten (z. B. PEI (vorerweiterbare Firmware-Schnittstelleninitialisierung)). Bei einer Ausführungsform bestimmt Block 121, ob der MRC auf Warm-Rücksetzen basierende FW-Aktivierung unterstützt. Wenn dem so ist, kann Block 102 die Speichervorrichtungs-Firmware aktivieren (z. B. während er sich immer noch im NEM-Modus befindet - CPU-Cache geht aus), wenn irgendwelche gewappnete Speichervorrichtungen vorliegen. Zusätzlich kann Block 123 eine Weiterreichung an DXE durchführen. Wenn in Block 121 bestimmt wird, dass der MRC auf Warm-Rücksetzen basierende FW-Aktivierung nicht unterstützt, umgeht die dargestellte BIOS-Prozedur Block 102 und schreitet direkt zu Block 123.
  • In einem Beispiel erfolgt in Block 125 eine Bestimmung, ob es irgendeine für FW-Aktivierung gewappnete Speichervorrichtung gibt. Wenn dem so ist, ruft der dargestellte Block 104 den BMC auf, um die FW zu aktivieren (z. B. bevor PCie-E/A-Vorrichtungen initialisiert werden, ohne E/A-DMA von Speicher). Bei einer Ausführungsform fragt Block 127 den BMC nach einer Antwort ab, und Block 131 setzt den Warm-Boot-Prozess (z. B. Initialisierung von E/A-Vorrichtungen) fort. Wenn in Block 125 bestimmt wird, dass es keine für Aktivierung gewappnete Speichervorrichtungen gibt, umgeht die BIOS-Prozedur die Blöcke 104 und 127 und schreitet direkt zu Block 131. Der BIOS-Block 133 führt eine Weiterreichung an das OS durch, und der OS-Block 135 nimmt OS und Dienste wieder auf.
  • Die BMC-Blöcke 106 nehmen die Kontrolle von Block 104 an, wobei Block 106a zurückkehrt, wenn kein DCPMM aufgefüllt ist oder keine DIMM gewappnet sind. Wenn die Mailbox- bzw. MB-Türklingel auf gewappneten DIMM nicht bereit ist, setzt Block 106b einen Fehler und einen nicht-gewappnet-Zustand (z. B. Gesamt-Rückgabe, wenn alle gewappneten fehlgeschlagen sind). In einem Beispiel startet Block 106c einen Ruhigstellungstimer (z. B. Maximal-Zeitgrenze), wobei Block 106d das System ruhigstellt. Bei einer Ausführungsform schreibaktiviert Block 106e FW an allen gewappneten DIMM. Wenn die Türklingel auf gewappneten DIMM nicht bereit ist, setzt Block 106f einen Fehler und eine nicht-gewappnet-Zustand. Außerdem kann, wenn für gewappnete DIMM die MB-Kompatibilität nicht gesetzt ist oder der MB-Status nicht erfolgreich ist, Block 106g einen Fehler und einen Nicht-Gewappnet-Zustand setzen. Bei einer Ausführungsform fragt Block 106h ein Boot-Statusregister ab, bis Aktivierung abgeschlossen ist. Block 106i kann das System ruhigstellen, wobei Block 106j den Aktivierungsstatus aktualisiert und die Kontrolle vom BMC an Block 127 zurückgibt. Wenn UMA-Zugriff (Unified Memory Architecture) auf Hostspeicher fehlschlägt, kann es der ME-SPS-Block 130 nach einer maximalen Ruhigstellungszeitgrenze neu versuchen, statt ein globales Rücksetzen durchzuführen oder einen UMA-Zugriffsfehlschlag zu deklarieren. Wenn eine Ruhigstellungszeitgrenze auftritt, stellt außerdem der E/A-Vorrichtungsblock 132 sicher, dass E/A-Vorrichtungen noch nicht initialisiert sind (z. B. kein Speicherverkehr von E/A-Vorrichtungen) .
  • 8A zeigt ein Verfahren 110 zum Betrieb eines Leistungsfähigkeits-erweiterten Datenverarbeitungssystems. Das Verfahren 110 kann in einem oder mehreren Modulen als eine Menge von Logikanweisungen implementiert werden, die in einem maschinen- oder computerlesbaren Speicherungsmedium gespeichert sind, wie etwa einem RAM (Direktzugriffsspeicher), einem ROM (Festwertspeicher), einem PROM (programmierbaren ROM), Firmware, Flash-Speicher usw., in konfigurierbarer Logik, wie zum Beispiel PLA (programmierbaren Logikarrays), FPGA (Field Programmable Gate Arrays), CPLD (Complex Programmable Logic Devices), in Logikhardware fester Funktionalität unter Verwendung von Schaltungstechnologie wie zum Beispiel Technologie des Typs ASIC (anwendungsspezifische integrierte Schaltung), CMOS (komplementär-Metalloxidhalbleiter) oder TTL (Transistor-Transistor-Logik) oder einer beliebigen Kombination davon.
  • Zum Beispiel kann Computerprogrammcode, um in dem Verfahren 500 gezeigte Betriebe auszuführen, in eine beliebige Kombination von einer oder mehreren Programmiersprachen geschrieben sein, aufweisend eine objektorientierte Programmiersprache wie JAVA, SMALLTALK, C++ oder dergleichen, und herkömmliche prozedurale Programmiersprachen, wie die „C“ Programmiersprache oder ähnliche Programmiersprachen. Zusätzlich können Logikanweisungen Assemblieranweisungen, Anweisungssatzarchitektur (ISA, Instruction Set Architecture) Anweisungen, Maschinenanweisungen, maschinenabhängige Anweisungen, Mikrocode, zustandssetzende Daten, Konfigurationsdaten für integrierte Schaltkreise, Zustandsinformationen, die Elektronikschaltkreise personalisieren, und/oder andere strukturelle Komponenten die nativ für Hardware sind (z. B. Hostprozessor, zentrale Verarbeitungseinheit/CPU, Mikrosteuerung usw.), aufweisen.
  • Der dargestellte Verarbeitungsblock 112 gewährleistet Austausch von Aktivierungsinformationen zwischen System-Firmware und einem OS in einem Datenverarbeitungssystem, wobei die Aktivierungsinformationen eine oder mehrere von Statusinformationen, Aktivierungszustandsinformationen, Fähigkeitsinformationen, Aktivierungszeitinformationen oder Ruhigstellungszeitinformationen umfassen. Bei einer Ausführungsform geben die Statusinformationen einen letzten Firmware-Aktivierungsstatus, die Aktivierungszustandsinformationen einen Firmware-Aktivierungs-Wappnungszustand und die Fähigkeitsinformationen eine Warm-Rücksetzfähigkeit an. Außerdem können die Aktivierungszeitinformationen eine geschätzte Firmware-Aktivierungszeit angeben, und die Ruhigstellungszeitinformationen können eine geschätzte Ruhigstellungszeit angeben. Block 114 führt ein Laufzeit-Upgrade von Speichervorrichtungs-Firmware auf der Basis der Aktivierungsinformationen durch, wobei das Laufzeit-Upgrade ein Reboot des Datenverarbeitungssystems umgeht. Bei einer Ausführungsform wird das Laufzeit-Upgrade über ein Warm-Rücksetzen durchgeführt.
  • 8B zeigt ein Verfahren 120 zum Durchführen einer Warm-Rücksetzens. Das Verfahren 120 kann in einem oder mehreren Modulen als ein Satz von Logikanweisungen implementiert sein, die in einem maschinen- oder computerlesbaren Datenspeichermedium gespeichert sind, wie RAM, ROM, PROM, Firmware, Flashspeicher usw., in konfigurierbarer Logik, wie zum Beispiel PLAs, FPGAs, CPLDs, in Logikhardware mit fixierter Funktionalität unter Verwendung von Schaltungstechnologie, wie zum Beispiel ASIC, CMOS oder TLL-Technologie oder eine beliebige Kombination davon.
  • Der dargestellte Verarbeitungsblock 122 gewährleistet Bestimmung, ob ein MRC (Speicherreferenzcode, z. B. Speicherinitialisierungscode), der einem Datenverarbeitungssystem zugeordnet ist, Warm-Rücksetzungen unterstützt. Wenn Block 124 angibt, dass Warm-Rücksetzungen unterstützt werden, kann Block 126 durch ein BIOS (Basic Input Output System) die Vorrichtungs-Firmware im NEM (Nicht-Ausräummodus) aktivieren. Bei einer Ausführungsform umfasst/involviert der NEM Ausführung des MRC aus einem Prozessor-Cache heraus. Wenn Block 124 angibt, dass Warm-Rücksetzungen nicht unterstützt werden, kann Block 128 einen Mikrocontroller aufrufen, wie etwa einen BMC (Baseboard Management Controller), einen System-Verwaltungscontroller, einen Sicherheitscontroller, einen Power-Management-Controller usw. oder eine beliebige Kombination davon, um die Vorrichtungs-Firmware zu aktivieren. In einem Beispiel stellt der Mikrocontroller das Datenverarbeitungssystem ruhig. Der dargestellte Block 129 führt die Vorrichtungs-Firmware aus der Speichervorrichtung heraus aus (z. B. nachdem die Vorrichtungs-Firmware aktiviert ist).
  • 9 zeigt ein Datenverarbeitungssystem 150, das ausführbare Programmanweisungen 170 umfasst, die, wenn sie durch einen oder mehrere eine Hostprozessors 152, eines Grafikprozessors 160, eines Mikrocontrollers 159 (z. B. BMC, Systemverwaltungs-Controller, Sicherheitscontroller, Power-Management-Controller usw.) oder ein Eingabe-/Ausgabemodul (E/A) 158 ausgeführt werden, bewirken, dass das Datenverarbeitungssystem 150 einen oder mehrere Aspekte der bereits besprochenen in 2, 7, 8A und /oder 8B dargestellten Verfahren ausführt. Bei einer Ausführungsform werden die Anweisungen 170 aus Systemspeicher 156 (z. B. DIMM (Dual Inline Memory Module)) abgerufen. Zusätzlich werden der Grafikprozessor 160, der Hostprozessor 152, der Mikrocontroller 159 und/oder das E/A-Modul 158 in ein SoC (System on Chip) 162 integriert, das auch mit einer Anzeige 164 und/oder einem Netzwerkcontroller 166 (drahtlos, verdrahtet) gekoppelt ist.
  • 10 zeigt eine Halbleiterkapselungsvorrichtung 172. Die dargestellte Vorrichtung 172 umfasst ein oder mehrere Substrate 174 (z. B. Silizium, Saphir, Galliumarsenid) und Logik 176 (z. B. ein Transistorarray oder andere integrierte Schaltungs- bzw. IC-Komponenten), gekoppelt mit dem Substrat bzw. den Substraten 174. Die Logik 176 kann mindestens teilweise in konfigurierbarer Logik oder Logikhardware fester Funktionalität implementiert werden. In einem Beispiel implementiert die Logik 176 einen oder mehrere Aspekte der in 2, 7, 8A und/oder 8B dargestellten Verfahren.
  • In einem Beispiel umfasst die Logik 176 Transistorkanalregionen, die in dem Substrat bzw. den Substraten 174 positioniert (z. B. eingebettet) sind. Somit muss die Schnittstelle zwischen der Logik 176 und dem Substrat bzw. den Substraten 174 kein abrupter Übergang sein. Die Logik 176 kann auch als eine Epitaxialschicht umfassend betrachtet werden, die auf einen Initialwafer des Substrats bzw. der Substrate 174 gewachsen wird.
  • 11 veranschaulicht einen Prozessorkern 200 gemäß einer Ausführungsform. Der Prozessorkern 200 kann der Kern für einen beliebigen Typ von Prozessor sein, wie einen Mikroprozessor, einen eingebetteten Prozessor, einen Digitalsignalprozessor (DSP, Digital Signal Processor), einen Netzwerkprozessor oder ein anderes Bauelement, um Code auszuführen. Obwohl nur ein Prozessorkern 200 in 11 veranschaulicht ist, kann ein Verarbeitungselement alternativ mehr als einen des in 11 veranschaulichten Prozessorkerns 200 aufweisen. Der Prozessorkern 200 kann ein Einzelthread-Kern sein oder für mindestens eine Ausführungsform kann der Prozessorkern 200 multigethreadet sein, indem er mehr als einen Hardware-Thread-Kontext (oder „logischen Prozessor“) pro Kern aufweist.
  • 11 veranschaulicht auch einen Speicher 270, der mit dem Prozessorkern 200 gekoppelt ist. Der Speicher 270 kann ein beliebiger einer breiten Vielfalt von Speichern (verschiedene Schichten von Speicherhierarchie aufweisen) sein, wie sie bekannt oder sonst für Fachkundige verfügbar sind. Der Speicher 270 kann eine oder mehrere Code- 213 Anweisung(en) aufweisen, die von dem Prozessorkern 200 auszuführen sind, wobei der Code 213 einen oder mehrere Aspekte des Verfahrens 500 (5) und/oder des Verfahrens 600 (6) implementieren kann, die bereits besprochen wurden. Der Prozessorkern 200 folgt einer Programmsequenz von Anweisungen, die von dem Code 213 angegeben sind. Jede Anweisung kann in einen Frontendabschnitt 210 eintreten und von einem oder mehreren Decodern 220 verarbeitet werden. Der Decoder 220 kann als seinen Ausgang einen Mikrobetrieb erzeugen, wie einen Mikrobetrieb mit fixierter Breite in einem vordefinierten Format, oder kann andere Anweisungen, Mikroanweisungen oder Steuersignale erzeugen, die die ursprüngliche Codeanweisung widerspiegeln. Der veranschaulichte Frontendabschnitt 210 weist auch Registerumbenennungslogik 225 und Planungslogik 230 auf, die im Allgemeinen Ressourcen zuweisen und den Betrieb entsprechend der umgewandelten Anweisung zur Ausführung reihen.
  • Der Prozessorkern 200 ist gezeigt, Ausführungslogik 250 aufzuweisen, die einen Satz von Ausführungseinheiten 255-1 bis 255-N aufweist. Manche Ausführungsformen können eine Zahl von Ausführungseinheiten aufweisen, die dediziert für spezifische Funktionen oder Sätze von Funktionen sind. Andere Ausführungsformen können nur eine Ausführungseinheit oder eine Ausführungseinheit, die eine bestimmte Funktion durchführen kann, aufweisen. Die veranschaulichte Ausführungslogik 250 führt die Betriebe durch, die von Codeanweisungen spezifiziert sind.
  • Nach Abschluss der Ausführung der Betriebe, die von den Codeanweisungen spezifiziert sind, setzt Backendlogik 260 die Anweisungen des Codes 213 zur Ruhe. In einer Ausführungsform erlaubt der Prozessorkern 200 Ausführung aus der Reihe, benötigt aber Ruhigstellung von Anweisungen in Reihenfolge. Ruhigstellungslogik 265 kann eine Vielfalt von Formen annehmen, wie sie Fachkundigen bekannt sind (z. B. Neuordnungspuffer oder dergleichen). Auf diese Weise wird der Prozessorkern 200 während Ausführung des Codes 213 transformiert, zumindest im Sinne des von dem Decoder erzeugten Ausgangs, der Hardwareregister und Tabellen, die von der Registerumbenennungslogik 225 genutzt werden, und beliebiger Register (nicht gezeigt), die von der Ausführungslogik 250 modifiziert werden.
  • Obwohl nicht in 11 veranschaulicht, kann ein Verarbeitungselement andere Elemente auf dem Chip mit dem Prozessorkern 200 aufweisen. Zum Beispiel kann ein Verarbeitungselement Speichersteuerlogik gemeinsam mit dem Prozessorkern 200 aufweisen. Das Verarbeitungselement kann E/A-Steuerlogik aufweisen und/oder kann E/A-Steuerlogik mit Speichersteuerlogik integriert aufweisen. Das Verarbeitungselement kann auch einen oder mehrere Zwischenspeicher aufweisen.
  • Nun in Bezug auf 12 ist ein Blockdiagramm einer Ausführungsform von Rechensystem 1000 gemäß einer Ausführungsform gezeigt. In 12 ist ein Multiprozessorsystem 1000 gezeigt, das ein erstes Verarbeitungselement 1070 und ein zweites Verarbeitungselement 1080 aufweist. Während zwei Verarbeitungselemente 1070 und 1080 gezeigt sind, ist zu verstehen, dass eine Ausführungsform des Systems 1000 auch nur ein solches Verarbeitungselement aufweisen kann.
  • Das System 1000 ist als ein Punkt-zu-Punkt Zwischenverbindungssystem veranschaulicht, wobei das erste Verarbeitungselement 1070 und das zweite Verarbeitungselement 1080 über eine Punkt-zu-Punkt-Zwischenverbindung 1050 gekoppelt sind. Es sollte verstanden werden, dass beliebige oder alle der in 10 veranschaulichten Zwischenverbindungen als ein Multidrop-Bus anstatt als Punkt-zu-Punkt-Zwischenverbindung implementiert werden können.
  • Wie in 12 gezeigt, können sowohl Verarbeitungselement 1070 als auch 1080 Multikernprozessoren sein, die erste und zweite Prozessorkerne (d.h. Prozessorkerne 1074a und 1074b und Prozessorkerne 1084a und 1084b) aufweisen. Solche Kerne 1074a, 1074b, 1084a, 1084b können konfiguriert sein, Anweisungscode auf eine Weise ähnlich der oben in Verbindung mit 11 beschriebenen auszuführen.
  • Jedes Verarbeitungselement 1070, 1080 kann mindestens einen geteilten Zwischenspeicher 1896a, 1896b aufweisen. Der geteilte Zwischenspeicher 1896a, 1896b kann Daten (z. B. Anweisungen) speichern, die von einer oder mehreren Komponenten des Prozessors genutzt werden, wie den Kernen 1074a, 1074b beziehungsweise 1084a, 1084b. Zum Beispiel kann der geteilte Zwischenspeicher 1896a, 1896b lokal Daten, die in einem Speicher 1032, 1034 gespeichert sind, für schnelleren Zugriff durch Komponenten des Prozessors zwischenspeichern. In einer oder mehreren Ausführungsformen kann der geteilte Zwischenspeicher 1896a, 1896b einen oder mehrere Mittellevel-Zwischenspeicher, wie Level 2 (L2), Level 3 (L3), Level 4 (L4) oder andere Level von Zwischenspeicher, einen Letztes-Level-Zwischenspeicher (LLC, Last Level Cache) und/oder Kombinationen davon aufweisen.
  • Während mit nur zwei Verarbeitungselementen 1070, 1080 gezeigt, ist zu verstehen, dass der Umfang der Ausführungsformen dahin nicht begrenzt ist. In anderen Ausführungsformen können ein oder mehrere zusätzliche Verarbeitungselemente in einem gegebenen Prozessor vorliegen. Alternativ können ein oder mehrere Verarbeitungselemente 1070, 1080 ein anderes Element als ein Prozessor sein, wie ein Beschleuniger oder ein feldprogrammierbares Gate-Array. Zum Beispiel kann (können) zusätzliche(s) Verarbeitungselement(e) zusätzliche(n) Prozessor(en), die dieselben wie ein erster Prozessor 1070 sind, zusätzliche(n) Prozessor(en), die heterogen oder asymmetrisch zum Prozessor eines ersten Prozessors 1070 sind, Beschleuniger (wie z. B. Grafikbeschleuniger oder Digitalsignalverarbeitungs- (DSP, Digital Signal Processing) Einheiten), feldprogrammierbare Gate-Arrays oder ein beliebiges anderes Verarbeitungselement aufweisen. Es kann eine Vielfalt von Unterschieden zwischen den Verarbeitungselementen 1070, 1080 im Sinne eines Spektrums von Gütemetrik geben, aufweisend architekturelle, mikroarchitektonische, thermische, Leistungsverbrauchseigenschaften und dergleichen. Diese Unterschiede können sich als Asymmetrie und Heterogenität unter den Verarbeitungselementen 1070, 1080 manifestieren. Für mindestens eine Ausführungsform können die verschiedenen Verarbeitungselemente 1070, 1080 in demselben Die-Paket liegen.
  • Das erste Verarbeitungselement 1070 kann weiter Speichersteuerlogik (MC, Memory Controller Logic) 1072 und Punkt-zu-Punkt- (P-P) Schnittstellen 1076 und 1078 aufweisen. Ähnlich kann das zweite Verarbeitungselement 1080 eine MC 1082 und P-P-Schnittstellen 1086 und 1088 aufweisen. Wie in 12 gezeigt, koppeln die MCs 1072 und 1082 die Prozessoren mit jeweiligen Speichern, nämlich einem Speicher 1032 und einem Speicher 1034, die Abschnitte von Hauptspeicher sein können, die lokal an den jeweiligen Prozessoren angebracht sind. Während die MC 1072 und 1082 veranschaulicht sind, in die Verarbeitungselemente 1070, 1080 integriert zu sein, kann für alternative Ausführungsformen die MC-Logik diskrete Logik außerhalb der Verarbeitungselemente 1070, 1080 sein, anstatt darin integriert zu sein.
  • Das erste Verarbeitungselement 1070 und das zweite Verarbeitungselement 1080 können mit einem E/A-Subsystem 1090 mittels P-P-Zwischenverbindungen 1076 beziehungsweise 1086 gekoppelt sein. Wie in 12 gezeigt, weist das E/A-Subsystem 1090 P-P-Schnittstellen 1094 und 1098 auf. Darüber hinaus weist E/A-Subsystem 1090 eine Schnittstelle 1092 auf, um E/A-Subsystem 1090 mit einer Hochleistungsgrafikengine 1038 zu koppeln. In einer Ausführungsform kann Bus 1049 verwendet werden, um die Grafikengine 1038 mit dem E/A-Subsystem 1090 zu koppeln. Alternativ kann eine Punkt-zu-Punkt-Zwischenverbindung diese Komponenten koppeln.
  • E/A-Subsystem 1090 kann wiederum mit einem ersten Bus 1016 mittels einer Schnittstelle 1096 gekoppelt sein. In einer Ausführungsform kann der erste Bus 1016 ein Peripheral Component Interconnect- (PCI) Bus oder ein Bus wie ein PCI Express-Bus oder ein anderer E/A-Zwischenverbindungsbus dritter Generation sein, obwohl der Umfang der Ausführungsformen dahin nicht begrenzt ist.
  • Wie in 12 gezeigt, können verschiedene E/A-Bauelemente 1014 (z. B. biometrische Scanner, Lautsprecher, Kameras, Sensoren) mit dem ersten Bus 1016 gemeinsam mit einer Busbrücke 1018, die den ersten Bus 1016 mit einem zweiten Bus 1020 koppeln kann, gekoppelt sein. In einer Ausführungsform kann der zweite Bus 1020 ein Low Pin Count- (LPC) Bus sein. Verschiedene Bauelemente können in einer Ausführungsform mit dem zweiten Bus 1020 gekoppelt sein, aufweisend zum Beispiel eine Tastatur/Maus 1012, Kommunikationsbauelement(e) 1026 und eine Datenspeichereinheit 1019, wie ein Datenträgerlaufwerk oder ein anderes Massendatenspeicherbauelement, das Code 1030 aufweisen kann. Der veranschaulichte Code 1030 kann einen oder mehrere Aspekte des Verfahrens 500 (5) und/oder des Verfahrens 600 (6) implementieren, die bereits besprochen wurden. Weiter kann ein Audio-E/A 1024 mit zweitem Bus 1020 gekoppelt sein und eine Batterie 1010 kann Strom an das Rechensystem 1000 versorgen.
  • Es ist zu beachten, dass andere Ausführungsformen berücksichtigt sind. Zum Beispiel kann anstelle der Punkt-zu-Punkt-Architektur von 12 ein System einen Multidrop-Bus oder eine andere solche Kommunikationstechnologie implementieren. Außerdem können die Elemente von 12 alternativ unter Verwendung mehr oder weniger integrierter Chips als in 12 gezeigt, unterteilt sein.
  • Zusätzliche Anmerkungen und Beispiele:
  • Beispiel 1 umfasst ein Leistungsfähigkeits-erweitertes Datenverarbeitungssystem, umfassend: eine Netzwerksteuerung; einen mit der Netzwerksteuerung gekoppelten Prozessor; eine mit dem Prozessor gekoppelte Speichervorrichtung, wobei die Speichervorrichtung Vorrichtungs-Firmware umfasst; und einen mit dem Prozessor gekoppelten Systemspeicher, wobei der Systemspeicher eine Menge von ausführbaren Programmanweisungen umfasst, die, wenn sie durch den Prozessor ausgeführt werden, den Prozessor veranlassen zum Austauschen von Aktivierungsinformationen zwischen System-Firmware und einem OS (Betriebssystem), wobei die Aktivierungsinformationen eine oder mehrere von Statusinformationen, Aktivierungszustandsinformationen, Fähigkeitsinformationen, Aktivierungszeitinformationen oder Ruhigstellungs-Zeitinformationen umfassen, und Durchführen eines Laufzeit-Upgrade der Vorrichtungs-Firmware auf der Basis der Aktivierungsinformationen, wobei das Laufzeit-Upgrade ein Rebooten des Datenverarbeitungssystems umgeht.
  • Beispiel 2 umfasst das Datenverarbeitungssystem nach Beispiel 1, wobei das Laufzeit-Upgrade über ein Warm-Rücksetzen durchzuführen ist, die Statusinformationen einen letzten Firmware-Aktivierungsstatus angeben sollen, die Aktivierungszustandsinformationen einen Firmware-Aktivierungs-Wappnungszustand angeben sollen, die Fähigkeitsinformationen eine Warm-Rücksetz-Fähigkeit angeben sollen, die Aktivierungszeitinformationen eine geschätzte Firmware-Aktivierungszeit angeben sollen und die Ruhigstellungs-Zeitinformationen eine geschätzte Ruhigstellungszeit angeben sollen.
  • Beispiel das umfasst das Datenverarbeitungssystem nach Beispiel 2, das ferner einen Mikrocontroller umfasst, wobei die Anweisungen, wenn sie ausgeführt werden, den Prozessor ferner veranlassen zum Bestimmen, ob dem Datenverarbeitungssystem zugeordneter Speicherinitialisierungscode Warm-Rücksetzungen unterstützt, Aktivieren der Vorrichtungs-Firmware durch ein BIOS (Basic Input Output System), wenn der Speicherinitialisierungscode Warm-Rücksetzungen unterstützt, und Aufrufen des Mikrocontrollers zur Aktivierung der Vorrichtungs-Firmware, wenn der Speicherinitialisierungscode Warm-Rücksetzungen nicht unterstützt, wobei die Vorrichtungs-Firmware zu aktivieren ist, bevor sie von der Speichervorrichtung ausgeführt wird.
  • Beispiel 4 umfasst das Datenverarbeitungssystem nach Beispiel 3, wobei die Vorrichtungs-Firmware zu aktivieren ist, bevor Eingabe/Ausgabe- bzw. E/A-Vorrichtungen zum Zugriff auf die Speichervorrichtung freigegeben werden.
  • Beispiel 5 umfasst das Datenverarbeitungssystem nach Anspruch 3, wobei der Mikrocontroller das Datenverarbeitungssystem ruhigstellen soll und wobei der Mikrocontroller einen oder mehrere eines Basisplatinen-Verwaltungscontrollers, eines System-Verwaltungscontrollers, eines Sicherheitscontrollers oder eines Power-Management-Controllers umfasst.
  • Beispiel 6 umfasst das Datenverarbeitungssystem nach Beispiel 1, wobei sich das OS darauf vorbereiten soll, die Vorrichtungs-Firmware mit Ruhigstellung zu aktivieren, und wobei, sobald die Aktivierung der Vorrichtungs-Firmware abgeschlossen ist, das OS einen Timer reevaluieren soll, damit eine OS-Zeit und eine Wanduhr-Zeit synchronisiert sind.
  • Beispiel 7 umfasst das Datenverarbeitungssystem nach einem der Beispiele 1 bis 6, wobei das OS Ruhigstellung von Eingabe/Ausgabe- bzw. E/A-Zugriff auf Hostspeicher durchführen soll durch eines oder mehrere einer Sperrung von DMA (Direct Memory Access), ein Anhalten von E/A-Vorrichtungen oder eine Hibernation von E/-A-Vorrichtungen zum Durchführen einer Laufzeit-Aktivierung der Vorrichtungs-Firmware.
  • Beispiel 8 umfasst eine Halbleitervorrichtung, umfassend ein oder mehrere Substrate; und mit dem einen oder den mehreren Substraten gekoppelte Logik, wobei die Logik mindestens teilweise in einer oder mehreren von konfigurierbarer Logik oder Hardwarelogik fester Funktionalität implementiert wird, wobei die mit dem einen oder den mehreren Substraten gekoppelte Logik Folgendes soll: Austauschen von Aktivierungsinformationen zwischen System-Firmware und einem OS (Betriebssystem), wobei die Aktivierungsinformationen eine oder mehrere von Statusinformationen, Aktivierungszustandsinformationen, Fähigkeitsinformationen, Aktivierungszeitinformationen oder Ruhigstellungs-Zeitinformationen umfassen, und Durchführen eines Laufzeit-Upgrade der Vorrichtungs-Firmware auf der Basis der Aktivierungsinformationen, wobei das Laufzeit-Upgrade ein Rebooten des Datenverarbeitungssystems umgeht.
  • Beispiel 9 umfasst die Vorrichtung nach Beispiel 8, wobei das Laufzeit-Upgrade über ein Warm-Rücksetzen durchzuführen ist, die Statusinformationen einen letzten Firmware-Aktivierungsstatus angeben sollen, die Aktivierungszustandsinformationen einen Firmware-Aktivierungs-Wappnungszustand angeben sollen, die Fähigkeitsinformationen eine Warm-Rücksetz-Fähigkeit angeben sollen, die Aktivierungszeitinformationen eine geschätzte Firmware-Aktivierungszeit angeben sollen und die Ruhigstellungs-Zeitinformationen eine geschätzte Ruhigstellungszeit angeben sollen.
  • Beispiel 10 umfasst die Vorrichtung nach Beispiel 9, wobei die mit dem einen oder den mehreren Substraten gekoppelte Logik Folgendes soll: Bestimmen, ob dem Datenverarbeitungssystem zugeordneter Speicherinitialisierungscode Warm-Rücksetzungen unterstützt, Aktivieren der Vorrichtungs-Firmware durch ein BIOS (Basic Input Output System), wenn der Speicherinitialisierungscode Warm-Rücksetzungen unterstützt, und Aufrufen des Mikrocontrollers zur Aktivierung der Vorrichtungs-Firmware, wenn der Speicherinitialisierungscode Warm-Rücksetzungen nicht unterstützt, wobei die Vorrichtungs-Firmware zu aktivieren ist, bevor sie von der Speichervorrichtung ausgeführt wird.
  • Beispiel 11 umfasst die Vorrichtung nach Beispiel 10, wobei die Vorrichtungs-Firmware zu aktivieren ist, bevor Eingabe/Ausgabe- bzw. E/A-Vorrichtungen zum Zugriff auf die Speichervorrichtung freigegeben werden.
  • Beispiel 12 umfasst die Vorrichtung nach Beispiel 10, wobei der Mikrocontroller das Datenverarbeitungssystem ruhigstellen soll und wobei der Mikrocontroller einen oder mehrere eines Basisplatinen-Verwaltungscontrollers, eines System-Verwaltungscontrollers, eines Sicherheitscontrollers oder eines Power-Management-Controllers umfasst.
  • Beispiel 13 umfasst die Vorrichtung nach Beispiel 8, wobei sich das OS darauf vorbereiten soll, die Vorrichtungs-Firmware mit Ruhigstellung zu aktivieren, und wobei, sobald die Aktivierung der Vorrichtungs-Firmware abgeschlossen ist, das OS einen Timer reevaluieren soll, damit eine OS-Zeit und eine Wanduhr-Zeit synchronisiert sind.
  • Beispiel 14 umfasst die Vorrichtung nach einem der Beispiele 8 bis 13, wobei das OS Ruhigstellung von Eingabe/Ausgabe- bzw. E/A-Zugriff auf Hostspeicher durchführen soll durch eines oder mehrere einer Sperrung von DMA (Direct Memory Access), ein Anhalten von E/A-Vorrichtungen oder eine Hibernation von E/-A-Vorrichtungen zum Durchführen einer Laufzeit-Aktivierung der Vorrichtungs-Firmware.
  • Beispiel 15 umfasst die Vorrichtung nach einem der Beispiele 8 bis 13, wobei die mit dem einen oder den mehreren Substraten gekoppelte Logik Transistorkanalregionen umfasst, die in dem einen oder den mehreren Substraten positioniert sind.
  • Beispiel 16 umfasst mindestens ein computerlesbares Speicherungsmedium, das eine Menge ausführbarer Programmanweisungen umfasst, die, wenn sie durch ein Datenverarbeitungssystem ausgeführt werden, das Datenverarbeitungssystem veranlassen zum Austauschen von Aktivierungsinformationen zwischen System-Firmware und einem OS (Betriebssystem), wobei die Aktivierungsinformationen eine oder mehrere von Statusinformationen, Aktivierungszustandsinformationen, Fähigkeitsinformationen, Aktivierungszeitinformationen oder Ruhigstellungs-Zeitinformationen umfassen, und Durchführen eines Laufzeit-Upgrade der Vorrichtungs-Firmware auf der Basis der Aktivierungsinformationen, wobei das Laufzeit-Upgrade ein Rebooten des Datenverarbeitungssystems umgeht.
  • Beispiel 17 umfasst das mindestens eine computerlesbare Speicherungsmedium nach Beispiel 16, wobei das Laufzeit-Upgrade über ein Warm-Rücksetzen durchzuführen ist, die Statusinformationen einen letzten Firmware-Aktivierungsstatus angeben sollen, die Aktivierungszustandsinformationen einen Firmware-Aktivierungs-Wappnungszustand angeben sollen, die Fähigkeitsinformationen eine Warm-Rücksetz-Fähigkeit angeben sollen, die Aktivierungszeitinformationen eine geschätzte Firmware-Aktivierungszeit angeben sollen und die Ruhigstellungs-Zeitinformationen eine geschätzte Ruhigstellungszeit angeben sollen.
  • Beispiel 18 umfasst das mindestens eine computerlesbare Speicherungsmedium nach Beispiel 17, wobei die Anweisungen, wenn sie ausgeführt werden, das Datenverarbeitungssystem ferner veranlassen zum Bestimmen, ob dem Datenverarbeitungssystem zugeordneter Speicherinitialisierungscode Warm-Rücksetzungen unterstützt, Aktivieren der Vorrichtungs-Firmware durch ein BIOS (Basic Input Output System), wenn der Speicherinitialisierungscode Warm-Rücksetzungen unterstützt, und Aufrufen des Mikrocontrollers zur Aktivierung der Vorrichtungs-Firmware, wenn der Speicherinitialisierungscode Warm-Rücksetzungen nicht unterstützt, wobei die Vorrichtungs-Firmware zu aktivieren ist, bevor sie von der Speichervorrichtung ausgeführt wird.
  • Beispiel 19 umfasst das mindestens eine computerlesbare Speicherungsmedium nach Beispiel 18, wobei die Vorrichtungs-Firmware zu aktivieren ist, bevor Eingabe/Ausgabe- bzw. E/A-Vorrichtungen zum Zugriff auf die Speichervorrichtung freigegeben werden.
  • Beispiel 20 umfasst das mindestens eine computerlesbare Speicherungsmedium nach Beispiel 19, wobei der Mikrocontroller das Datenverarbeitungssystem ruhigstellen soll und wobei der Mikrocontroller einen oder mehrere eines Basisplatinen-Verwaltungscontrollers, eines System-Verwaltungscontrollers, eines Sicherheitscontrollers oder eines Power-Management-Controllers umfasst.
  • Beispiel 21 umfasst das mindestens eine computerlesbare Speicherungsmedium nach Beispiel 20, wobei sich das OS darauf vorbereiten soll, die Vorrichtungs-Firmware mit Ruhigstellung zu aktivieren, und wobei, sobald die Aktivierung der Vorrichtungs-Firmware abgeschlossen ist, das OS einen Timer reevaluieren soll, damit eine OS-Zeit und eine Wanduhr-Zeit synchronisiert sind.
  • Beispiel 22 umfasst das mindestens eine computerlesbare Speicherungsmedium nach einem der Beispiele 17 bis 21, wobei das OS Ruhigstellung von Eingabe/Ausgabe- bzw. E/A-Zugriff auf Hostspeicher durchführen soll durch eines oder mehrere einer Sperrung von DMA (Direct Memory Access), ein Anhalten von E/A-Vorrichtungen oder eine Hibernation von E/-A-Vorrichtungen zum Durchführen einer Laufzeit-Aktivierung der Vorrichtungs-Firmware.
  • Beispiel 23 umfasst ein Verfahren zum Betrieb eines Leistungsfähigkeits-erweiterten Datenverarbeitungssystems, wobei das Verfahren Folgendes umfasst: Austauschen von Aktivierungsinformationen zwischen System-Firmware und einem OS (Betriebssystem), wobei die Aktivierungsinformationen eine oder mehrere von Statusinformationen, Aktivierungszustandsinformationen, Fähigkeitsinformationen, Aktivierungszeitinformationen oder Ruhigstellungs-Zeitinformationen umfassen, und Durchführen eines Laufzeit-Upgrade der Vorrichtungs-Firmware auf der Basis der Aktivierungsinformationen, wobei das Laufzeit-Upgrade ein Rebooten des Datenverarbeitungssystems umgeht.
  • Beispiel 24 umfasst das Verfahren nach Beispiel 23, wobei das Laufzeit-Upgrade über ein Warm-Rücksetzen durchzuführen ist, die Statusinformationen einen letzten Firmware-Aktivierungsstatus angeben sollen, die Aktivierungszustandsinformationen einen Firmware-Aktivierungs-Wappnungszustand angeben sollen, die Fähigkeitsinformationen eine Warm-Rücksetz-Fähigkeit angeben sollen, die Aktivierungszeitinformationen eine geschätzte Firmware-Aktivierungszeit angeben sollen und die Ruhigstellungs-Zeitinformationen eine geschätzte Ruhigstellungszeit angeben sollen.
  • Beispiel 25 umfasst das Verfahren nach Beispiel 24, ferner umfassend: Bestimmen, ob dem Datenverarbeitungssystem zugeordneter Speicherinitialisierungscode Warm-Rücksetzungen unterstützt, Aktivieren der Vorrichtungs-Firmware durch ein BIOS (Basic Input Output System), wenn der Speicherinitialisierungscode Warm-Rücksetzungen unterstützt, und Aufrufen des Mikrocontrollers zur Aktivierung der Vorrichtungs-Firmware, wenn der Speicherinitialisierungscode Warm-Rücksetzungen nicht unterstützt, wobei die Vorrichtungs-Firmware zu aktivieren ist, bevor sie von der Speichervorrichtung ausgeführt wird.
  • Beispiel 26 umfasst das Verfahren nach Beispiel 25, wobei die Vorrichtungs-Firmware zu aktivieren ist, bevor Eingabe/Ausgabe- bzw. E/A-Vorrichtungen zum Zugriff auf die Speichervorrichtung freigegeben werden.
  • Beispiel 27 umfasst das Verfahren nach Beispiel 25, wobei der Mikrocontroller das Datenverarbeitungssystem ruhigstellen soll und wobei der Mikrocontroller einen oder mehrere eines Basisplatinen-Verwaltungscontrollers, eines System-Verwaltungscontrollers, eines Sicherheitscontrollers oder eines Power-Management-Controllers umfasst.
  • Beispiel 28 umfasst das Verfahren nach Beispiel 24, wobei sich das OS darauf vorbereiten soll, die Vorrichtungs-Firmware mit Ruhigstellung zu aktivieren, und wobei, sobald die Aktivierung der Vorrichtungs-Firmware abgeschlossen ist, das OS einen Timer reevaluieren soll, damit eine OS-Zeit und eine Wanduhr-Zeit synchronisiert sind.
  • Beispiel 29 umfasst das Verfahren nach einem der Beispiele 23 bis 28, wobei das OS Ruhigstellung von Eingabe/Ausgabe- bzw. E/A-Zugriff auf Hostspeicher durchführen soll durch eines oder mehrere einer Sperrung von DMA (Direct Memory Access), ein Anhalten von E/A-Vorrichtungen oder eine Hibernation von E/-A-Vorrichtungen zum Durchführen einer Laufzeit-Aktivierung der Vorrichtungs-Firmware.
  • Beispiel 30 umfasst ein Datenverarbeitungssystem, umfassend: einen Mikrocontroller, einen Netzwerkcontroller, einen mit dem Netzwerkcontroller gekoppelten Prozessor und eine mit dem Prozessor gekoppelte Speichervorrichtung, wobei die Speichervorrichtung Vorrichtungs-Firmware und einen mit dem Prozessor gekoppelten Systemspeicher umfasst, wobei der Systemspeicher eine Menge von ausführbaren Programmanweisungen umfasst, die, wenn sie durch den Prozessor ausgeführt werden, den Prozessor veranlassen zum Bestimmen, ob dem Datenverarbeitungssystem zugeordneter Speicherinitialisierungscode Warm-Rücksetzungen unterstützt, Aktivieren der Vorrichtungs-Firmware durch ein BIOS (Basic Input Output System), wenn der Speicherinitialisierungscode Warm-Rücksetzungen unterstützt, und Aufrufen des Mikrocontrollers zur Aktivierung der Vorrichtungs-Firmware, wenn der Speicherinitialisierungscode Warm-Rücksetzungen nicht unterstützt, wobei die Vorrichtungs-Firmware zu aktivieren ist, bevor sie von der Speichervorrichtung ausgeführt wird.
  • Beispiel 31 umfasst das Datenverarbeitungssystem nach Beispiel 30, wobei die Vorrichtungs-Firmware zu aktivieren ist, bevor Eingabe/Ausgabe- bzw. E/A-Vorrichtungen zum Zugriff auf die Speichervorrichtung freigegeben werden.
  • Beispiel 32 umfasst das Datenverarbeitungssystem nach einem der Beispiele 30 bis 31, wobei der Mikrocontroller das Datenverarbeitungssystem ruhigstellen soll und wobei der Mikrocontroller einen oder mehrere eines Basisplatinen-Verwaltungscontrollers, eines System-Verwaltungscontrollers, eines Sicherheitscontrollers oder eines Power-Management-Controllers umfasst.
  • Beispiel 33 umfasst eine Halbleitervorrichtung, die ein oder mehrere Substrate und mit dem einen oder den mehreren Substraten gekoppelte Logik umfasst, wobei die Logik mindestens teilweise in einer oder mehreren von konfigurierbarer Logik oder Hardwarelogik fester Funktionalität implementiert wird, wobei die mit dem einen oder den mehreren Substraten gekoppelte Logik Folgendes soll: Bestimmen, ob dem Datenverarbeitungssystem zugeordneter Speicherinitialisierungscode Warm-Rücksetzungen unterstützt, Aktivieren der Vorrichtungs-Firmware durch ein BIOS (Basic Input Output System), wenn der Speicherinitialisierungscode Warm-Rücksetzungen unterstützt, und Aufrufen des Mikrocontrollers zur Aktivierung der Vorrichtungs-Firmware, wenn der Speicherinitialisierungscode Warm-Rücksetzungen nicht unterstützt, wobei die Vorrichtungs-Firmware zu aktivieren ist, bevor sie von der Speichervorrichtung ausgeführt wird.
  • Beispiel 34 umfasst die Vorrichtung nach Beispiel 33, wobei die Vorrichtungs-Firmware zu aktivieren ist, bevor Eingabe/Ausgabe- bzw. E/A-Vorrichtungen zum Zugriff auf die Speichervorrichtung freigegeben werden.
  • Beispiel 35 umfasst die Vorrichtung nach einem der Beispiele 33 bis 34, wobei der Mikrocontroller das Datenverarbeitungssystem ruhigstellen soll und wobei der Mikrocontroller einen oder mehrere eines Basisplatinen-Verwaltungscontrollers, eines System-Verwaltungscontrollers, eines Sicherheitscontrollers oder eines Power-Management-Controllers umfasst.
  • Beispiel 36 umfasst mindestens ein computerlesbares Speicherungsmedium, das eine Menge ausführbarer Programmanweisungen umfasst, die, wenn sie durch ein Datenverarbeitungssystem ausgeführt werden, das Datenverarbeitungssystem veranlassen zum Bestimmen, ob dem Datenverarbeitungssystem zugeordneter Speicherinitialisierungscode Warm-Rücksetzungen unterstützt, Aktivieren der Vorrichtungs-Firmware durch ein BIOS (Basic Input Output System), wenn der Speicherinitialisierungscode Warm-Rücksetzungen unterstützt, und Aufrufen des Mikrocontrollers zur Aktivierung der Vorrichtungs-Firmware, wenn der Speicherinitialisierungscode Warm-Rücksetzungen nicht unterstützt, wobei die Vorrichtungs-Firmware zu aktivieren ist, bevor sie von der Speichervorrichtung ausgeführt wird.
  • Beispiel 37 umfasst das mindestens eine computerlesbare Speicherungsmedium nach Beispiel 36, wobei die Vorrichtungs-Firmware zu aktivieren ist, bevor Eingabe/Ausgabe- bzw. E/A-Vorrichtungen zum Zugriff auf die Speichervorrichtung freigegeben werden.
  • Beispiel 38 umfasst das mindestens eine computerlesbare Speicherungsmedium nach einem der Beispiele 36 bis 37, wobei der Mikrocontroller das Datenverarbeitungssystem ruhigstellen soll und wobei der Mikrocontroller einen oder mehrere eines Basisplatinen-Verwaltungscontrollers, eines System-Verwaltungscontrollers, eines Sicherheitscontrollers oder eines Power-Management-Controllers umfasst.
  • Beispiel 39 umfasst ein Verfahren zum Durchführen von Warm-Rücksetzungen, wobei das Verfahren Folgendes umfasst: Bestimmen, ob dem Datenverarbeitungssystem zugeordneter Speicherinitialisierungscode Warm-Rücksetzungen unterstützt, Aktivieren der Vorrichtungs-Firmware durch ein BIOS (Basic Input Output System), wenn der Speicherinitialisierungscode Warm-Rücksetzungen unterstützt, und Aufrufen des Mikrocontrollers zur Aktivierung der Vorrichtungs-Firmware, wenn der Speicherinitialisierungscode Warm-Rücksetzungen nicht unterstützt, wobei die Vorrichtungs-Firmware zu aktivieren ist, bevor sie von der Speichervorrichtung ausgeführt wird.
  • Beispiel 40 umfasst das Verfahren nach Beispiel 39, wobei die Vorrichtungs-Firmware zu aktivieren ist, bevor Eingabe/Ausgabe- bzw. E/A-Vorrichtungen zum Zugriff auf die Speichervorrichtung freigegeben werden.
  • Beispiel 41 umfasst das Verfahren nach einem der Beispiele 39 bis 40, wobei der Mikrocontroller das Datenverarbeitungssystem ruhigstellen soll und wobei der Mikrocontroller einen oder mehrere eines Basisplatinen-Verwaltungscontrollers, eines System-Verwaltungscontrollers, eines Sicherheitscontrollers oder eines Power-Management-Controllers umfasst.
  • Beispiel 42 umfasst Mittel zum Ausführen des Verfahrens nach einem der Beispiele 23 bis 29.
  • Beispiel 43 umfasst Mittel zum Ausführen des Verfahrens nach einem der Beispiele 39 bis 41.
  • Ausführungsformen stellen eine klar sichtbare Schnittstelle von Plattform-Firmware zu OS mittels eines DSM-Mechanismus (Device Specific Module) von ACPI bereit. Zusätzlich dazu, dass die Speichervorrichtung die Baublöcke für die Schnittstelle implementiert, können die Plattform-Firmware und das OS diese Schnittstellen und Aktionen unterstützen. Plattform-Firmware (BIOS/UEFI) hat eine OS-Schnittstelle mit in der vorliegenden Offenbarung beschriebenen Konstrukten bereitgestellt. Einige Ausführungsformen verwenden den DSM-Mechanismus, die Verwendung von APCI-Tabellen und Treibermechanismen ist aber auch möglich. Diese Ausführungsformen können klar sichtbar sine, indem die ACPI-Tabellen/DSM oder proprietären Schreiberschnittstellen abgeworfen werden. Zusätzlich kann Produktmerkmal-Dokumentation die Verwendung von Laufzeit-Speichervorrichtungs-Firmware-Update-Technologie bereitstellen. Wenn die Produktliteratur Unterstützung für Laufzeit-Upgrade von Speichervorrichtungen aufruft, ist es möglich, dass eine oder mehrere Ausführungsformen verwendet werden. Zum Beispiel können Speichervorrichtungs-Firmware-Upgrade-Fähigkeit, Notwendigkeit von Rückstellung oder nicht, geschätzte Zeit für Firmware-Upgrade als Austausch usw. Verwendung der hier beschriebenen Technologie nahelegen.
  • Hinsichtlich Warm-Rücksetzungen ändern Ausführungsformen den BIOS-Warm-Boot-Ablauf, um Speichervorrichtungs-Firmware-Aktivierung aufzurufen. Typischerweise wird bei Warm-Boot keine neue Firmware aktiviert. Wenn das Produkt Firmware-Upgrade im Warm-Boot-Pfad, insbesondere für die Speichervorrichtungen, umfasst, kann es die hier beschriebene Technologie umfassen. Die Systemprodukt-Merkmalmengen können auch das Speichervorrichtungs-Firmware-Upgrade ohne System-Reboot (OS-Speicherverlust) umfassen. Der BWG (BIOS Writers Guide) kann einen Boot-Ablauf umfassen, um auf Baum-Rücksetzen basierende Speichervorrichtungs-Firmware-Aktivierung zu verstehen. Außerdem können BMC-Schnittstellendetails die Speichervorrichtungs-Firmware-Aktivierungsinformationen umfassen.
  • Ausführungsformen sind zur Verwendung mit allen Typen von Halbleiter-integrierten-Schaltungs- („IC“) Chips anwendbar. Beispiele diese IC-Chips weisen auf, sind aber nicht begrenzt auf, Prozessoren, Steuerungen, Chipsatzkomponenten, programmierbare Logikarrays (PLAs), Speicherchips, Netzwerkchips, Systeme-aufeinem-Chip (SoCs), SSD/NAND-Steuer-ASICs und dergleichen. Zusätzlich sind in manchen der Zeichnungen Signalleiterleitungen mit Linien dargestellt. Manche können sich unterscheiden, um grundlegendere Signalpfade anzugeben, ein Nummernetikett aufweisen, um eine Zahl von grundlegenden Signalpfaden anzugeben und/oder Pfeile an einem oder mehreren Enden aufweisen, um primäre Informationsflussrichtung anzugeben. Dies sollte jedoch nicht auf eine begrenzende Weise ausgelegt werden. Eher kann solch ein hinzugefügtes Detail in Verbindung mit einer oder mehreren beispielhaften Ausführungsformen verwendet werden, um einfacheres Verständnis einer Schaltung zu erleichtern. Beliebige dargestellte Signalleitungen, egal ob sie zusätzliche Informationen aufweisen oder nicht, können tatsächlich ein oder mehrere Signale aufweisen, die sich in mehreren Richtungen bewegen, und können mit einem beliebigen geeigneten Typ von Signalschema implementiert sein, z. B. digitale oder analoge Leitungen, die mit unterschiedlichen Paaren implementiert sind, optische Faserleitungen und/oder einzelendige Leitungen.
  • Beispielhafte Größen/Modelle/Werte/Spannen wurden vielleicht angegeben, obwohl Ausführungsformen nicht auf diese begrenzt sind. Da Fertigungstechniken (z. B. Fotolithografie) im Laufe der Zeit ausreifen, wird erwartet, dass Bauelemente kleinerer Größe gefertigt werden könnten. Zusätzlich können allgemein bekannte Strom/Masse-Verbindungen mit IC-Chips und anderen Komponenten innerhalb der Figuren zur Vereinfachung der Veranschaulichung und Besprechung und um gewisse Aspekte der Ausführungsformen nicht zu verschleiern, gezeigt sein oder auch nicht. Weiter können Anordnungen in Blockdiagrammform gezeigt sein, um zu vermeiden, Ausführungsformen zu verschleiern, und auch in Anbetracht der Tatsache, dass Einzelheiten in Bezug auf Implementierung solcher Blockdiagrammanordnungen stark von dem Rechensystem innerhalb dessen die Ausführungsform zu implementieren ist, abhängig sind, d.h. solche Einzelheiten sollten sehr wohl innerhalb des Wirkungsbereichs eines Fachkundigen sein. Wo spezifische Details (z. B. Schaltungen) vorgebracht sind, um Beispielausführungsformen zu beschreiben, sollte es für einen Fachkundigen ersichtlich sein, dass Ausführungsformen ohne diese spezifischen Details, oder mit Variation davon, ausgeübt werden können. Die Beschreibung ist daher als veranschaulichend, statt begrenzend anzusehen.
  • Der Ausdruck „gekoppelt“ kann hierin verwendet werden, um sich auf einen beliebigen Typ von Beziehung, direkt oder indirekt, zwischen den fraglichen Komponenten zu beziehen, und kann auf elektrische, mechanische, strömungstechnische, optische, elektromagnetische, elektromechanische oder andere Verbindungen zutreffen. Zusätzlich können die Ausdrücke „erstes“, „zweites“ usw. hierin verwendet werden, nur um die Besprechung zu erleichtern, und sie besitzen keine bestimmte zeitliche oder chronologische Signifikanz, außer es wird anderes angegeben.
  • Wie in dieser Anmeldung und in den Ansprüchen verwendet, kann eine Liste von Gegenständen, die mit dem Ausdruck „ein oder mehrere von“ verbunden sind, eine beliebige Kombination der aufgelisteten Ausdrücke meinen. Zum Beispiel können die Phrasen „ein oder mehrere von A, B oder C“ A; B; C; A und B; A und C; B und C; oder A, B und C meinen.
  • Fachkundige werden anhand der vorangehenden Beschreibung begrüßen, dass die breiten Techniken der Ausführungsformen in einer Vielfalt von Formen implementiert werden können. Deshalb, während die Ausführungsformen in Verbindung mit bestimmten Beispielen davon beschrieben wurden, sollte der wahre Umfang der Ausführungsformen nicht dahin begrenzt sein, da andere Modifikationen für den Fachkundigen bei einer Studie der Zeichnungen, Beschreibung und der folgenden Ansprüche ersichtlich werden.
  • 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/025587 [0001]

Claims (10)

  1. Leistungsfähigkeits-erweitertes Datenverarbeitungssystem, umfassend: eine Netzwerksteuerung; einen mit der Netzwerksteuerung gekoppelten Prozessor; eine mit dem Prozessor gekoppelte Speichervorrichtung, wobei die Speichervorrichtung Vorrichtungs-Firmware umfasst; und einen mit dem Prozessor gekoppelten Systemspeicher, wobei der Systemspeicher eine Menge von ausführbaren Programmanweisungen umfasst, die, wenn sie durch den Prozessor ausgeführt werden, den Prozessor veranlassen zum Austauschen von Aktivierungsinformationen zwischen System-Firmware und einem OS (Betriebssystem), wobei die Aktivierungsinformationen eine oder mehrere von Statusinformationen, Aktivierungszustandsinformationen, Fähigkeitsinformationen, Aktivierungszeitinformationen oder Ruhigstellungs-Zeitinformationen umfassen, und Durchführen eines Laufzeit-Upgrade der Vorrichtungs-Firmware auf der Basis der Aktivierungsinformationen, wobei das Laufzeit-Upgrade ein Rebooten des Datenverarbeitungssystems umgeht.
  2. Datenverarbeitungssystem nach Anspruch 1, wobei das Laufzeit-Upgrade über ein Warm-Rücksetzen durchzuführen ist, die Statusinformationen einen letzten Firmware-Aktivierungsstatus angeben sollen, die Aktivierungszustandsinformationen einen Firmware-Aktivierungs-Wappnungszustand angeben sollen, die Fähigkeitsinformationen eine Warm-Rücksetz-Fähigkeit angeben sollen, die Aktivierungszeitinformationen eine geschätzte Firmware-Aktivierungszeit angeben sollen und die Ruhigstellungs-Zeitinformationen eine geschätzte Ruhigstellungszeit angeben sollen; wobei das Datenverarbeitungssystem vorzugsweise ferner einen Mikrocontroller umfasst, wobei die Anweisungen, wenn sie ausgeführt werden, den Prozessor ferner veranlassen zum Bestimmen, ob dem Datenverarbeitungssystem zugeordneter Speicherinitialisierungscode Warm-Rücksetzungen unterstützt, Aktivieren der Vorrichtungs-Firmware durch ein BIOS (Basic Input Output System), wenn der Speicherinitialisierungscode Warm-Rücksetzungen unterstützt, und Aufrufen des Mikrocontrollers zur Aktivierung der Vorrichtungs-Firmware, wenn der Speicherinitialisierungscode Warm-Rücksetzungen nicht unterstützt, wobei die Vorrichtungs-Firmware zu aktivieren ist, bevor sie von der Speichervorrichtung ausgeführt wird; wobei ferner vorzugsweise die Vorrichtungs-Firmware zu aktivieren ist, bevor Eingabe/Ausgabe- bzw. E/A-Vorrichtungen zum Zugriff auf die Speichervorrichtung freigegeben werden; oder wobei ferner vorzugsweise der Mikrocontroller das Datenverarbeitungssystem ruhigstellen soll und wobei der Mikrocontroller einen oder mehrere eines Basisplatinen-Verwaltungscontrollers, eines System-Verwaltungscontrollers, eines Sicherheitscontrollers oder eines Power-Management-Controllers umfasst.
  3. Datenverarbeitungssystem nach einem der Ansprüche 1 oder 2, wobei sich das OS darauf vorbereiten soll, die Vorrichtungs-Firmware mit Ruhigstellung zu aktivieren, und wobei, sobald die Aktivierung der Vorrichtungs-Firmware abgeschlossen ist, das OS einen Timer reevaluieren soll, damit eine OS-Zeit und eine Wanduhr-Zeit synchronisiert sind; und/oder wobei das OS Ruhigstellung von Eingabe/Ausgabe- bzw. E/A-Zugriff auf Hostspeicher durchführen soll durch eines oder mehrere einer Sperrung von DMA (Direct Memory Access), ein Anhalten von E/A-Vorrichtungen oder eine Hibernation von E/-A-Vorrichtungen zum Durchführen einer Laufzeit-Aktivierung der Vorrichtungs-Firmware.
  4. Halbleitervorrichtung, umfassend: ein oder mehrere Substrate; und mit dem einen oder den mehreren Substraten gekoppelte Logik, wobei die Logik mindestens teilweise in einer oder mehreren von konfigurierbarer Logik oder Hardwarelogik fester Funktionalität implementiert wird, wobei die mit dem einen oder den mehreren Substraten gekoppelte Logik Folgendes soll: Austauschen von Aktivierungsinformationen zwischen System-Firmware und einem OS (Betriebssystem), wobei die Aktivierungsinformationen eine oder mehrere von Statusinformationen, Aktivierungszustandsinformationen, Fähigkeitsinformationen, Aktivierungszeitinformationen oder Ruhigstellungs-Zeitinformationen umfassen, und Durchführen eines Laufzeit-Upgrade der Vorrichtungs-Firmware auf der Basis der Aktivierungsinformationen, wobei das Laufzeit-Upgrade ein Rebooten des Datenverarbeitungssystems umgeht; wobei das Laufzeit-Upgrade über ein Warm-Rücksetzen durchzuführen ist, die Statusinformationen einen letzten Firmware-Aktivierungsstatus angeben sollen, die Aktivierungszustandsinformationen einen Firmware-Aktivierungs-Wappnungszustand angeben sollen, die Fähigkeitsinformationen eine Warm-Rücksetz-Fähigkeit angeben sollen, die Aktivierungszeitinformationen eine geschätzte Firmware-Aktivierungszeit angeben sollen und die Ruhigstellungs-Zeitinformationen eine geschätzte Ruhigstellungszeit angeben sollen.
  5. Vorrichtung nach Anspruch 4, wobei die mit dem einen oder den mehreren Substraten gekoppelte Logik Folgendes soll: Bestimmen, ob dem Datenverarbeitungssystem zugeordneter Speicherinitialisierungscode Warm-Rücksetzungen unterstützt, Aktivieren der Vorrichtungs-Firmware durch ein BIOS (Basic Input Output System), wenn der Speicherinitialisierungscode Warm-Rücksetzungen unterstützt, und Aufrufen des Mikrocontrollers zur Aktivierung der Vorrichtungs-Firmware, wenn der Speicherinitialisierungscode Warm-Rücksetzungen nicht unterstützt, wobei die Vorrichtungs-Firmware zu aktivieren ist, bevor sie von der Speichervorrichtung ausgeführt wird; wobei vorzugsweise die Vorrichtungs-Firmware zu aktivieren ist, bevor Eingabe/Ausgabe- bzw. E/A-Vorrichtungen zum Zugriff auf die Speichervorrichtung freigegeben werden; oder wobei vorzugsweise der Mikrocontroller das Datenverarbeitungssystem ruhigstellen soll und wobei der Mikrocontroller einen oder mehrere eines Basisplatinen-Verwaltungscontrollers, eines System-Verwaltungscontrollers, eines Sicherheitscontrollers oder eines Power-Management-Controllers umfasst.
  6. Vorrichtung nach einem der Ansprüche 4 oder 5, wobei sich das OS darauf vorbereiten soll, die Vorrichtungs-Firmware mit Ruhigstellung zu aktivieren, und wobei, sobald die Aktivierung der Vorrichtungs-Firmware abgeschlossen ist, das OS einen Timer reevaluieren soll, damit eine OS-Zeit und eine Wanduhr-Zeit synchronisiert sind; und/oder wobei das OS Ruhigstellung von Eingabe/Ausgabe- bzw. E/A-Zugriff auf Hostspeicher durchführen soll durch eines oder mehrere einer Sperrung von DMA (Direct Memory Access), ein Anhalten von E/A-Vorrichtungen oder eine Hibernation von E/-A-Vorrichtungen zum Durchführen einer Laufzeit-Aktivierung der Vorrichtungs-Firmware; und/oder wobei die mit dem einen oder den mehreren Substraten gekoppelte Logik Transistorkanalregionen umfasst, die in dem einen oder den mehreren Substraten positioniert sind.
  7. Mindestens ein computerlesbares Speicherungsmedium, das eine Menge ausführbarer Programmanweisungen umfasst, die, wenn sie durch ein Datenverarbeitungssystem ausgeführt werden, das Datenverarbeitungssystem veranlassen zum Austauschen von Aktivierungsinformationen zwischen System-Firmware und einem OS (Betriebssystem), wobei die Aktivierungsinformationen eine oder mehrere von Statusinformationen, Aktivierungszustandsinformationen, Fähigkeitsinformationen, Aktivierungszeitinformationen oder Ruhigstellungs-Zeitinformationen umfassen, und Durchführen eines Laufzeit-Upgrade der Vorrichtungs-Firmware auf der Basis der Aktivierungsinformationen, wobei das Laufzeit-Upgrade ein Rebooten des Datenverarbeitungssystems umgeht; wobei das Laufzeit-Upgrade über ein Warm-Rücksetzen durchzuführen ist, die Statusinformationen einen letzten Firmware-Aktivierungsstatus angeben sollen, die Aktivierungszustandsinformationen einen Firmware-Aktivierungs-Wappnungszustand angeben sollen, die Fähigkeitsinformationen eine Warm-Rücksetz-Fähigkeit angeben sollen, die Aktivierungszeitinformationen eine geschätzte Firmware-Aktivierungszeit angeben sollen und die Ruhigstellungs-Zeitinformationen eine geschätzte Ruhigstellungszeit angeben sollen.
  8. Mindestens ein computerlesbares Speicherungsmedium nach Anspruch 7, wobei die Anweisungen, wenn sie ausgeführt werden, das Datenverarbeitungssystem ferner veranlassen zum Bestimmen, ob dem Datenverarbeitungssystem zugeordneter Speicherinitialisierungscode Warm-Rücksetzungen unterstützt, Aktivieren der Vorrichtungs-Firmware durch ein BIOS (Basic Input Output System), wenn der Speicherinitialisierungscode Warm-Rücksetzungen unterstützt, und Aufrufen des Mikrocontrollers zur Aktivierung der Vorrichtungs-Firmware, wenn der Speicherinitialisierungscode Warm-Rücksetzungen nicht unterstützt, wobei die Vorrichtungs-Firmware zu aktivieren ist, bevor sie von der Speichervorrichtung ausgeführt wird; wobei vorzugsweise die Vorrichtungs-Firmware zu aktivieren ist, bevor Eingabe/Ausgabe- bzw. E/A-Vorrichtungen zum Zugriff auf die Speichervorrichtung freigegeben werden; oder wobei vorzugsweise der Mikrocontroller das Datenverarbeitungssystem ruhigstellen soll und wobei der Mikrocontroller einen oder mehrere eines Basisplatinen-Verwaltungscontrollers, eines System-Verwaltungscontrollers, eines Sicherheitscontrollers oder eines Power-Management-Controllers umfasst.
  9. Mindestens ein computerlesbares Speicherungsmedium nach einem der Ansprüche 7 oder 8, wobei sich das OS darauf vorbereiten soll, die Vorrichtungs-Firmware mit Ruhigstellung zu aktivieren, und wobei, sobald die Aktivierung der Vorrichtungs-Firmware abgeschlossen ist, das OS einen Timer reevaluieren soll, damit eine OS-Zeit und eine Wanduhr-Zeit synchronisiert sind; und/oder wobei das OS Ruhigstellung von Eingabe/Ausgabe- bzw. E/A-Zugriff auf Hostspeicher durchführen soll durch eines oder mehrere einer Sperrung von DMA (Direct Memory Access), ein Anhalten von E/A-Vorrichtungen oder eine Hibernation von E/-A-Vorrichtungen zum Durchführen einer Laufzeit-Aktivierung der Vorrichtungs-Firmware.
  10. Verfahren zum Betrieb eines Leistungsfähigkeits-erweiterten Datenverarbeitungssystems, wobei das Verfahren Folgendes umfasst: Austauschen von Aktivierungsinformationen zwischen System-Firmware und einem OS (Betriebssystem), wobei die Aktivierungsinformationen eine oder mehrere von Statusinformationen, Aktivierungszustandsinformationen, Fähigkeitsinformationen, Aktivierungszeitinformationen oder Ruhigstellungs-Zeitinformationen umfassen, und Durchführen eines Laufzeit-Upgrade der Vorrichtungs-Firmware auf der Basis der Aktivierungsinformationen, wobei das Laufzeit-Upgrade ein Rebooten des Datenverarbeitungssystems umgeht; wobei das Laufzeit-Upgrade über ein Warm-Rücksetzen durchzuführen ist, die Statusinformationen einen letzten Firmware-Aktivierungsstatus angeben sollen, die Aktivierungszustandsinformationen einen Firmware-Aktivierungs-Wappnungszustand angeben sollen, die Fähigkeitsinformationen eine Warm-Rücksetz-Fähigkeit angeben sollen, die Aktivierungszeitinformationen eine geschätzte Firmware-Aktivierungszeit angeben sollen und die Ruhigstellungs-Zeitinformationen eine geschätzte Ruhigstellungszeit angeben sollen; wobei das Verfahren ferner vorzugsweise Folgendes umfasst: Bestimmen, ob dem Datenverarbeitungssystem zugeordneter Speicherinitialisierungscode Warm-Rücksetzungen unterstützt, Aktivieren der Vorrichtungs-Firmware durch ein BIOS (Basic Input Output System), wenn der Speicherinitialisierungscode Warm-Rücksetzungen unterstützt, und Aufrufen des Mikrocontrollers zur Aktivierung der Vorrichtungs-Firmware, wenn der Speicherinitialisierungscode Warm-Rücksetzungen nicht unterstützt, wobei die Vorrichtungs-Firmware zu aktivieren ist, bevor sie von der Speichervorrichtung ausgeführt wird.
DE102020133809.0A 2020-05-15 2020-12-16 Schnittstelle und warm-rücksetzpfad für speichervorrichtungsfirmware-upgrades Pending DE102020133809A1 (de)

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
US202063025587P 2020-05-15 2020-05-15
US63/025,587 2020-05-15
US16/995,934 US11893379B2 (en) 2020-05-15 2020-08-18 Interface and warm reset path for memory device firmware upgrades
US16/995,934 2020-08-18

Publications (1)

Publication Number Publication Date
DE102020133809A1 true DE102020133809A1 (de) 2021-11-18

Family

ID=73854700

Family Applications (1)

Application Number Title Priority Date Filing Date
DE102020133809.0A Pending DE102020133809A1 (de) 2020-05-15 2020-12-16 Schnittstelle und warm-rücksetzpfad für speichervorrichtungsfirmware-upgrades

Country Status (4)

Country Link
US (1) US11893379B2 (de)
EP (1) EP3910469A1 (de)
CN (1) CN113672250A (de)
DE (1) DE102020133809A1 (de)

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2022204911A1 (en) * 2021-03-30 2022-10-06 Yangtze Memory Technologies Co., Ltd. Memory device with embedded firmware repairing mechanism
US11733909B2 (en) 2021-06-21 2023-08-22 Western Digital Technologies, Inc. Secure-erase prediction for data storage devices
US11900102B2 (en) * 2021-06-21 2024-02-13 Western Digital Technologies, Inc. Data storage device firmware updates in composable infrastructure
US20240111622A1 (en) * 2022-09-30 2024-04-04 Advanced Micro Devices, Inc Apparatus, system, and method for detecting physical infrastructure constraint violations
CN115794173B (zh) * 2023-01-09 2023-05-05 苏州浪潮智能科技有限公司 固态硬盘的在线升级方法、装置、电子设备及存储介质

Family Cites Families (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8555273B1 (en) * 2003-09-17 2013-10-08 Palm. Inc. Network for updating electronic devices
US20050223291A1 (en) * 2004-03-24 2005-10-06 Zimmer Vincent J Methods and apparatus to provide an execution mode transition
US8707290B2 (en) * 2006-02-22 2014-04-22 Dell Products L.P. Firmware update in an information handling system employing redundant management modules
US7500095B2 (en) * 2006-03-15 2009-03-03 Dell Products L.P. Chipset-independent method for locally and remotely updating and configuring system BIOS
US10430263B2 (en) * 2016-02-01 2019-10-01 Electro Industries/Gauge Tech Devices, systems and methods for validating and upgrading firmware in intelligent electronic devices
US10146527B2 (en) * 2016-10-12 2018-12-04 Samsung Electronics Co., Ltd. Method and apparatus for using BMC as proxy for NVME over fabrics device firmware upgrade
US10346321B2 (en) 2017-05-04 2019-07-09 Dell Products L.P. Method to trigger NVDIMM save from remote management interface
US11379214B2 (en) * 2019-03-29 2022-07-05 Intel Corporation Runtime firmware activation for memory devices

Also Published As

Publication number Publication date
CN113672250A (zh) 2021-11-19
EP3910469A1 (de) 2021-11-17
US20210357204A1 (en) 2021-11-18
US11893379B2 (en) 2024-02-06

Similar Documents

Publication Publication Date Title
DE102020133809A1 (de) Schnittstelle und warm-rücksetzpfad für speichervorrichtungsfirmware-upgrades
US9798556B2 (en) Method, system, and apparatus for dynamic reconfiguration of resources
DE112011105298B4 (de) Reduzieren des Energieverbrauchs von Uncore-Schaltkreisen eines Prozessors
DE102020133738A1 (de) Firmware-update-techniken
DE60217394T2 (de) Methode und system zur parallelen ausführung von interrupt-routinen in einer smi- und pmi-basierten verteilungs- und ausführungsumgebung
KR101365370B1 (ko) 동적 시스템 재구성
DE102007012448B4 (de) Ein chipsatz-unabhängiges Verfahren für lokale Aktualisierung und Konfigurierung eines System-BIOS
DE102014003798B4 (de) Verfahren zum Booten eines heterogenen Systems und Präsentieren einer symmetrischen Kernansicht
DE112012005209T5 (de) Brückenfunktion zwischen Virtual Machine Monitor und Bare-Metal-Bootvorgang
DE102007039156A1 (de) EFI-basierter Mechanismus zum Exportieren von Plattform-Verwaltungsfähigkeiten in das Betriebssystem
DE112016007566T5 (de) Systeme, Verfahren und Vorrichtungen zur heterogenen Berechnung
DE69817170T2 (de) Emulation von unterbrechungsmechanismus in einem multiprozessorsystem
DE112015006934T5 (de) Verschachtelte Virtualisierung für virtuelle Maschinenexits
DE102010034555A1 (de) Bereitstellen von Zustandsspeicher in einem Prozessor für Systemmanagement-Modus
US9208030B1 (en) Systems and methods of processing data associated with rapid snapshot and restore of guest operating system states
DE112007001714T5 (de) Virtualisieren von Leistungszählern
DE112016004297T5 (de) Technologien für mehrstufige virtualisierung
DE202017007430U1 (de) Erkennen von Bussperrbedingungen und Vermeiden von Bussperren
DE102018004726A1 (de) Dynamisches Ausschalten und Einschalten von Prozessorkernen
DE112011106079T5 (de) Frühe Weiterleitung von Gewebefehlern
US20060005003A1 (en) Method for guest operating system integrity validation
DE112007003206T5 (de) Neukonfigurieren eines sicheren Systems
DE102021106796A1 (de) Techniken zur speicherfehlerisolierung
DE112015001502T5 (de) Ausstieg aus mehreren Threads in einem Computer
DE102018129330A1 (de) System, Vorrichtung und Verfahren zur prozessorexternen Überschreibung der Hardwareleistungszustandssteuerung eines Prozessors