DE112018003165T5 - System und verfahren zum umschalten von firmware - Google Patents

System und verfahren zum umschalten von firmware Download PDF

Info

Publication number
DE112018003165T5
DE112018003165T5 DE112018003165.9T DE112018003165T DE112018003165T5 DE 112018003165 T5 DE112018003165 T5 DE 112018003165T5 DE 112018003165 T DE112018003165 T DE 112018003165T DE 112018003165 T5 DE112018003165 T5 DE 112018003165T5
Authority
DE
Germany
Prior art keywords
firmware
switch
switch module
debug
host device
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
DE112018003165.9T
Other languages
English (en)
Inventor
Beniamin Kantor
Judah Gamliel Hahn
Ilya Gusev
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.)
Western Digital Technologies Inc
Original Assignee
Western Digital Technologies Inc
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 Western Digital Technologies Inc filed Critical Western Digital Technologies Inc
Publication of DE112018003165T5 publication Critical patent/DE112018003165T5/de
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0653Monitoring storage devices or systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/14Error detection or correction of the data by redundancy in operation
    • G06F11/1402Saving, restoring, recovering or retrying
    • G06F11/1415Saving, restoring, recovering or retrying at system level
    • G06F11/142Reconfiguring to eliminate the error
    • 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/0703Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
    • G06F11/0706Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation the processing taking place on a specific hardware platform or in a specific software environment
    • G06F11/0727Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation the processing taking place on a specific hardware platform or in a specific software environment in a storage system, e.g. in a DASD or network based storage system
    • 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/0703Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
    • G06F11/0751Error or fault detection not based on redundancy
    • G06F11/0754Error or fault detection not based on redundancy by exceeding limits
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/14Error detection or correction of the data by redundancy in operation
    • G06F11/1402Saving, restoring, recovering or retrying
    • G06F11/1415Saving, restoring, recovering or retrying at system level
    • G06F11/1433Saving, restoring, recovering or retrying at system level during software upgrading
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/3003Monitoring arrangements specially adapted to the computing system or computing system component being monitored
    • G06F11/3034Monitoring arrangements specially adapted to the computing system or computing system component being monitored where the computing system component is a storage system, e.g. DASD based or network based
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Preventing errors by testing or debugging software
    • G06F11/362Software debugging
    • G06F11/3636Software debugging by tracing the execution of the program
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Preventing errors by testing or debugging software
    • G06F11/362Software debugging
    • G06F11/3644Software debugging by instrumenting at runtime
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2201/00Indexing scheme relating to error detection, to error correction, and to monitoring
    • G06F2201/805Real-time

Abstract

Die vorliegende Offenbarung stellt ein System und ein Verfahren zum autonomen Umschalten von Firmware durch eine Speichersteuerung bereit. Das System und Verfahren schließen das Bestimmen, durch ein Umschalter-Modul der Speichersteuerung, der Erfüllung einer Debug-Bedingung basierend auf Werten von Parametern der Debug-Bedingung ein. Die Debug-Bedingung weist auf ein Problem innerhalb eines Speichersystems hin, das die Speichersteuerung einschließt, welche die Kommunikation zwischen einer Hostvorrichtung und einem nichtflüchtigen Speicher des Speichersystems erleichtert. Das System und Verfahren schließen ferner das Umschalten des Betriebs des Speichersystems von einer primären Firmware auf eine sekundäre Firmware durch das Umschalter-Modul basierend auf der Bestimmung des Umschalter-Moduls, dass die Debug-Bedingung erfüllt wurde, ein. Das Umschalten von der primären Firmware auf die sekundäre Firmware erfolgt automatisch ohne eine Umschaltanforderung von der Hostvorrichtung.

Description

  • QUERVERWEIS AUF VERWANDTE ANMELDUNG
  • Diese Anmeldung beansprucht die Priorität der US-Anmeldung 15/696,913 , eingereicht am 6. September 2017, die durch Verweis in ihrer Gesamtheit aufgenommen ist.
  • HINTERGRUND
  • Die folgende Beschreibung wird bereitgestellt, um das Verständnis des Lesers zu unterstützen. Keine der bereitgestellten Informationen oder zitierten Referenzen gelten als Stand der Technik.
  • Nichtflüchtige Speichervorrichtungen werden in einer Vielfalt von Anwendungen verwendet, die von einfacher Unterhaltungselektronik bis hin zu komplexen unternehmensbasierten Rechensystemen reichen. Mindestens einige nichtflüchtige Speichervorrichtungen sind zur Kommunikation mit einer Hostvorrichtung über eine Speichersteuerung eingerichtet. Die Speichersteuerung führt einen Firmware-Level-Code aus, um die nichtflüchtige Speichervorrichtung zu betreiben, zu verwalten und anderweitig zu steuern, um die Kommunikation zwischen der Hostvorrichtung und der nichtflüchtigen Speichervorrichtung zu erleichtern. Der Nichtflüchtiger-Speicher-Express-Standard (NVMe-Standard) ist ein Beispiel für eine Schnittstelle, die ein Kommunikationsprotokoll zwischen der Hostvorrichtung und der nichtflüchtigen Speichervorrichtung über die Speichersteuerung gliedert. Eines der Merkmale des NVMe-Standards erlaubt es, mehrere Firmware-Revisionen gleichzeitig auf der nichtflüchtigen Speichervorrichtung zu installieren. Jedoch ist die Speichersteuerung in der Weise begrenzt, in der sie die mehreren Firmware-Revisionen verwaltet und betreibt.
  • KURZDARSTELLUNG
  • Gemäß einigen Gesichtspunkten der vorliegenden Offenbarung wird ein Verfahren offenbart. Das Verfahren schließt das Bestimmen der Erfüllung einer Debug-Bedingung durch ein Umschalter-Modul einer Speichersteuerung ein, basierend auf Werten von Parametern der Debug-Bedingung. Die Debug-Bedingung ist ein Hinweis auf ein Problem innerhalb eines Speichersystems einschließlich der Speichersteuerung, welche die Kommunikation zwischen einer Hostvorrichtung und einem nichtflüchtigen Speicher des Speichersystems erleichtert. Das Verfahren schließt ferner das Umschalten des Betriebs des Speichersystems von einer primären Firmware auf eine sekundäre Firmware durch das Umschalter-Modul ein, basierend auf der Bestimmung des Umschalter-Moduls, dass die Debug-Bedingung erfüllt worden ist. Das Umschalten von der primären Firmware auf die sekundäre Firmware erfolgt automatisch ohne eine Umschaltanforderung von der Hostvorrichtung.
  • Gemäß einigen anderen Gesichtspunkten der vorliegenden Offenbarung wird eine Speichersteuerung offenbart. Die Speichersteuerung schließt eine Vielzahl von Firmware-Slots ein, wobei ein erster Slot der Vielzahl von Firmware-Slots eine darin installierte primäre Firmware aufweist und ein zweiter Slot der Vielzahl von Firmware-Slots eine darin installierte sekundäre Firmware aufweist. Die Speichersteuerung schließt auch ein Umschalter-Modul ein, das eingerichtet ist, um basierend auf der Erfüllung einer oder mehrerer Bedingungen automatisch zwischen der primären Firmware und der sekundären Firmware umzuschalten. Das Umschalter-Modul schaltet zwischen der primären Firmware und der sekundären Firmware ohne eine Umschaltanforderung von einer Hostvorrichtung um, die mit der Speichersteuerung in Verbindung steht.
  • Gemäß noch anderen Gesichtspunkten der vorliegenden Offenbarung wird ein Speichersystem offenbart. Das Speichersystem schließt eine Hostvorrichtung, einen nichtflüchtigen Speicher und eine Speichersteuerung ein. Die Speichersteuerung ist eingerichtet, um eine Kommunikation zwischen der Hostvorrichtung und dem nichtflüchtigen Speicher zu ermöglichen. Ferner schließt die Speichersteuerung ein Umschalter-Modul ein, das eingerichtet ist, um basierend auf der Erfüllung einer oder mehrerer Bedingungen automatisch zwischen einer primären Firmware und einer sekundären Firmware umzuschalten. Das Umschalter-Modul schaltet zwischen der primären Firmware und der sekundären Firmware ohne eine Umschaltanforderung aus der Hostvorrichtung um.
  • Die vorhergehende Zusammenfassung ist nur veranschaulichend und soll in keiner Weise einschränkend sein. Zusätzlich zu den oben beschriebenen veranschaulichenden Gesichtspunkten, Ausführungsformen und Merkmalen werden weitere Gesichtspunkte, Ausführungsformen und Merkmale unter Bezugnahme auf die folgenden Zeichnungen und die ausführliche Beschreibung deutlich.
  • Figurenliste
    • 1 ist ein beispielhaftes Blockdiagramm eines Speichersystems gemäß einigen Ausführungsformen der vorliegenden Offenbarung.
    • 2 ist ein beispielhaftes Blockdiagramm eines innerhalb des Speichersystems verwendeten Speichervorrichtung-Infrastrukturmoduls gemäß einigen Ausführungsformen der vorliegenden Offenbarung.
    • 3 ist ein beispielhaftes Flussdiagramm, das die Operationen für das Umschalten von einer primären Firmware auf eine sekundäre Firmware gemäß einigen Ausführungsformen der vorliegenden Offenbarung darstellt.
    • 4 ist ein beispielhaftes Flussdiagramm, das die Operationen für das Umschalten von der primären Firmware auf die sekundäre Firmware gemäß einigen anderen Ausführungsformen der vorliegenden Offenbarung darstellt.
    • 5 ist ein beispielhaftes Flussdiagramm, das die Operationen für das Umschalten von der sekundären Firmware auf die primäre Firmware gemäß einigen anderen Ausführungsformen der vorliegenden Offenbarung darstellt.
  • Die vorstehenden und andere Merkmale der vorliegenden Offenbarung werden aus der folgenden Beschreibung und den beigefügten Ansprüchen in Verbindung mit den beigefügten Zeichnungen ersichtlich. Angesichts dessen, dass diese Zeichnungen nur einige Ausführungsformen gemäß der Offenbarung darstellen und deshalb nicht als ihren Umfang einschränkend betrachtet werden sollen, wird die Offenbarung mit zusätzlicher Spezifität und Detail durch die Verwendung der beigefügten Zeichnungen beschrieben.
  • DETAILLIERTE BESCHREIBUNG
  • In der folgenden detaillierten Beschreibung wird auf die beigefügten Zeichnungen Bezug genommen, die einen Teil davon bilden. In den Zeichnungen kennzeichnen ähnliche Symbole üblicherweise ähnliche Komponenten, sofern der Kontext nichts anderes vorschreibt. Die in der detaillierten Beschreibung, den Zeichnungen und den Ansprüchen beschriebenen veranschaulichenden Ausführungsformen sind nicht als Einschränkung gedacht. Andere Ausführungsformen können verwendet werden und andere Änderungen können vorgenommen werden, ohne vom Geist oder Umfang des hier präsentierten Gegenstandes abzuweichen. Es versteht sich von selbst, dass die Gesichtspunkte der vorliegenden Offenbarung, wie hierin allgemein beschrieben und in den Figuren veranschaulicht, in einer Vielfalt von verschiedenen Konfigurationen angeordnet, ersetzt, kombiniert und gestaltet werden können, die alle ausdrücklich in Betracht gezogen werden und Teil dieser Offenbarung sind.
  • Die vorliegende Offenbarung richtet sich auf ein Speichersystem mit einer Speichersteuerung zum Erleichtern einer Kommunikation zwischen einer Hostvorrichtung und einem nichtflüchtigen Speicher. Die Speichersteuerung ist mit einer Vielzahl von Firmware-Slots eingerichtet, die eingerichtet sind, um eine oder mehrere unterschiedliche Typen von Firmware auszuführen. Zum Beispiel können in einigen Ausführungsformen einer aus der Vielzahl von Firmware-Slots für eine primäre Firmware und ein anderer aus der Vielzahl von Firmware-Slots für eine sekundäre Firmware eingerichtet sein. Die vorliegende Offenbarung stellt Systeme und Verfahren bereit, in denen die Speichersteuerung autonom zwischen der primären Firmware und der sekundären Firmware ohne eine Umschaltanforderung aus der Hostvorrichtung umschaltet.
  • Die primäre Firmware ist eine allgemeine Firmware, die auf Leistung und Energie optimiert ist und in der Regel während normaler Operationen des Speichersystems ausgeführt werden soll. Die primäre Firmware ist nicht mit einer Debug-Funktionalität eingerichtet und daher nicht geeignet, Fehlfunktionen innerhalb des Speichersystems zu identifizieren. Die sekundäre Firmware ist eine Debug-Firmware, die eingerichtet ist, um alle oder mehrere der Operationen auszuführen, für welche die primäre Firmware eingerichtet ist. Zusätzlich ist die sekundäre Firmware mit Debug-Funktionalität eingerichtet, um detaillierte Informationen zu sammeln und die Diagnose eines Problems, eines Fehlers oder einer Fehlfunktion innerhalb des Speichersystems zu erleichtern. Die Debug-Firmware kann auch eingerichtet sein, um das Problem, den Fehler oder die Fehlfunktion nach der Diagnose zu beheben. Die Debug-Firmware ist nicht auf Leistung und Energie optimiert und daher weniger bevorzugt als die primäre Firmware.
  • Während es also wünschenswert ist, die primäre Firmware für ein ordnungsgemäß funktionierendes Speichersystem zu verwenden, wird in Fällen, in denen eine Debug-Funktionalität zur Fehlerdiagnose innerhalb des Speichersystems gewünscht wird, die sekundäre Firmware verwendet. Allgemein gesagt wird zur Verwendung der sekundären Firmware innerhalb des Speichersystems ein Firmware-Umschalten von der primären Firmware auf die sekundäre Firmware vorgenommen. Herkömmlicherweise erfolgt das Umschalten von der primären Firmware auf die sekundäre Firmware manuell. Bei herkömmlichen Ansätzen stellt beispielsweise ein Speichermedienhersteller die sekundäre Firmware einem Kunden des Speichersystems zur Verfügung und der Kunde installiert die sekundäre Firmware manuell auf dem nichtflüchtigen Speicher. Die manuelle Installation erfordert auch zusätzliche Änderungen innerhalb des Speichersystems, wie z. B. Änderungen an der ausführbaren Firmware-Abbildung, Requalifizierung für die primären Firmware-Abbildungen usw. Nach der Installation der sekundären Firmware verlangt der herkömmliche Mechanismus ferner, dass der Kunde eine Umschaltanforderung über die Hostvorrichtung an die Speichersteuerung sendet, um zwischen der primären Firmware und der sekundären Firmware umzuschalten. Wenn keine Debug-Funktionalität benötigt wird, erfordert der herkömmliche Ansatz ferner, dass der Kunde eine weitere Umschaltanforderung über die Hostvorrichtung sendet, um das Zurückschalten auf die primäre Firmware zu erleichtern. Daher erfordert der herkömmliche Ansatz zum Aktualisieren oder Umschalten zwischen regulärer und Debug-Funktionalität eine direkte Kundenbeteiligung, ist zeitaufwändig, ineffizient und erfordert manuelle Aktualisierungen der Firmware.
  • Im Gegensatz dazu stellt die vorliegende Offenbarung ein System und Verfahren bereit, bei dem die primäre und sekundäre Firmware gleichzeitig auf dem nichtflüchtigen Speicher installiert werden und die Speichersteuerung autonom zwischen der primären und der sekundären Firmware ohne jegliche Kundenbeteiligung und ohne jegliche Umschaltanforderungen aus der Hostvorrichtung umschaltet. Insbesondere schließt die Speichersteuerung ein Umschalter-Modul ein, das basierend auf der Erfüllung bestimmter Bedingungen automatisch zwischen der primären Firmware und der sekundären Firmware umschaltet, wie im Folgenden näher beschrieben wird.
  • Unter Bezugnahme nun auf 1 wird ein beispielhaftes Blockdiagramm eines Speichersystems 100 gemäß einigen Ausführungsformen der vorliegenden Offenbarung gezeigt. Das Speichersystem 100 schließt eine Speichervorrichtung 105 in Verbindung mit einer Hostvorrichtung 110 über eine physische Schnittstelle 113 ein. Die Speichervorrichtung 105 kann ein Festkörperlaufwerk (Solid State Drive, „SSD“) einschließlich eines nichtflüchtigen Speichers 115 und einer Speichersteuerung 120 sein. Andere Typen von Speichervorrichtungen können in anderen Ausführungsformen verwendet werden. Die Hostvorrichtung 110 kann eine Rechenvorrichtung sein, die eingerichtet ist, um mit der Speichervorrichtung 105 und anderen Komponenten, die hier nicht gezeigt sind, zu kommunizieren. Ferner sind in 1 nur einige Komponenten des Speichersystems 100 gezeigt. In anderen Ausführungsformen werden Komponenten wie flüchtiger Speicher, verschiedene Schnittstellen und Komponenten, die allgemein in einem Speichersystem zu finden sind, in Betracht gezogen und als innerhalb des Schutzumfangs der vorliegenden Offenbarung betrachtet.
  • Die Hostvorrichtung 110 kommuniziert und interagiert mit dem nichtflüchtigen Speicher 115 über die Speichersteuerung 120. Zum Beispiel kann die Hostvorrichtung 110 Daten senden, die in dem nichtflüchtigen Speicher 115 gespeichert oder in diesen geschrieben werden sollen. Die Hostvorrichtung 110 kann auch Daten aus dem nichtflüchtigen Speicher 115 abrufen oder lesen. Um mit dem nichtflüchtigen Speicher 115 zu kommunizieren, kann die Hostvorrichtung 110 Befehle an die Speichersteuerung 120 senden, die dann diese Befehle von dem nichtflüchtigen Speicher bedient. Zum Beispiel kann die Hostvorrichtung 110 für eine Leseoperation einen Lesebefehl an die Speichersteuerung 120 senden, und die Speichersteuerung kann diesen Lesebefehl durch Lesen der Daten aus dem nichtflüchtigen Speicher 115 und Zurücksenden der Daten an die Hostvorrichtung 110 senden. In ähnlicher Weise kann die Hostvorrichtung 110 für eine Schreiboperation einen Schreibbefehl und die zu schreibenden Daten an die Speichersteuerung 120 senden. Die Speichersteuerung 120 kann die Daten in den nichtflüchtigen Speicher 115 schreiben und dann die Hostvorrichtung benachrichtigen, dass die Daten geschrieben worden sind. In ähnlicher Weise kann die Hostvorrichtung 110 andere Befehle an die Speichersteuerung 120 senden, um verschiedene Operationen auf dem nichtflüchtigen Speicher 115 durchzuführen.
  • Der nichtflüchtige Speicher 115 schließt eines oder mehrere Speicherarrays mit einer oder mehreren Speicherzellen ein, die eingerichtet sind, um eines oder mehrere Datenbits zu speichern. Der nichtflüchtige Speicher 115 kann auf verschiedene Arten eingerichtet sein. Zum Beispiel kann der nichtflüchtige Speicher 115 in einigen Ausführungsformen als Flash-Speicher oder als ein anderer Typ von Festkörperlaufwerk-Speicher („SSD“-Speicher) eingerichtet sein. In anderen Ausführungsformen kann der nichtflüchtige Speicher 115 auch andere Typen von Datenspeichervorrichtungen sein. Außerdem kann der nichtflüchtige Speicher 115, wenn er als Flash-Speicher eingerichtet ist, ein NAND-, NOR- oder ein anderer Typ von Flash-Speicher sein. Zusätzlich kann jede der Speicherzellen innerhalb des nichtflüchtigen Speichers 115 als Multi-Level-Zelle („MLC“) zum Speichern mehrerer Datenbits, als Single-Level-Zelle („SLC“) zum Speichern eines einzelnen Datenbits oder als Kombination davon eingerichtet sein. Andere Merkmale und/oder Konfigurationen des nichtflüchtigen Speichers 115, die allgemein erforderlich und/oder wünschenswert sind, um die hierin beschriebenen Funktionen auszuführen, werden innerhalb des Schutzumfangs der vorliegenden Offenbarung in Betracht gezogen und berücksichtigt.
  • Der nichtflüchtige Speicher 115 kann ein internes Dateisystem 125 einschließen, das als eine Datenbank von Konfigurationsdaten und Firmware-Ressourcen eingerichtet sein kann. In einigen Ausführungsformen kann das interne Dateisystem 125 ein Flash-Dateisystem sein. In anderen Ausführungsformen können andere Typen von Dateisystemen innerhalb des internen Dateisystems verwendet werden 125. Darüber hinaus kann der nichtflüchtige Speicher 115, obwohl nicht dargestellt, andere Komponenten wie Zeilen- und Spaltendecoder, Lesemodule, Daten-Latches, I/O-Schaltungen, Batterien, Cache-Speicher, andere On-Chip-Schaltungen usw. einschließen, um verschiedene Operationen des nichtflüchtigen Speichers durchzuführen und zu steuern. In einigen Ausführungsformen können eine oder mehrere dieser Komponenten Teil der Speichersteuerung 120 sein. Obwohl der nichtflüchtige Speicher 115 getrennt von der Speichersteuerung 120 gezeigt wurde, können zusätzlich in einigen Ausführungsformen der nichtflüchtige Speicher und die Speichersteuerung zusammen in eine einzige Vorrichtung integriert werden (z. B. einen einzelnen Chip oder Die, ein Gehäuse mit mehreren Dies usw.).
  • Wie oben erwähnt, verwaltet die Speichersteuerung 120 die Operation des nichtflüchtigen Speichers 115 und erleichtert die Kommunikation zwischen der Hostvorrichtung 110 und dem nichtflüchtigen Speicher. Somit schließt die Speichersteuerung 120 eine Host-Schnittstelle 130, einen Datenpfad 135, eine Flash-Übersetzungsschicht 140 und eine nichtflüchtige Speicherschnittstelle 145 ein. Die Host-Schnittstelle 130 kann eine Schnittstelle oder Komponente sein, welche die Kommunikation der Hostvorrichtung 110 mit der Speichersteuerung 120 über den Datenpfad 135 erleichtert. Die Host-Schnittstelle kann auf einer Vielzahl von Host-Speicherschnittstellen basieren, wie fortgeschrittene Host-Steuerungsschnittstelle, universelle Host-Steuerungsschnittstelle, offene Host-Steuerungsschnittstelle, Nichtflüchtiger-Speicher-Express-Steuerungsschnittstelle (NVMe-Steuerungsschnittstelle) usw. Der Datenpfad 135 der Speichersteuerung 120 kann eine Vielzahl von Bussen, Verarbeitungseinheiten und anderen Schaltungen einschließen, um Informationen von der/an die Hostvorrichtung 110 zu empfangen/senden, die Informationen zu verarbeiten und die Informationen an den/von dem nichtflüchtigen Speicher 115 zu senden/empfangen.
  • Die Flash-Übersetzungsschicht 140 der Speichersteuerung 120 ist eingerichtet, um logische Adressen, die von der Hostvorrichtung 110 empfangen werden, in physische Adressen des nichtflüchtigen Speichers 115 abzubilden. Die nichtflüchtige Speicherschnittstelle 145 ist eingerichtet, um die Kommunikation der Speichersteuerung 120 mit dem nichtflüchtigen Speicher 115 zu erleichtern. Wie die Host-Schnittstelle 130 kann auch die nichtflüchtige Speicherschnittstelle 145 auf verschiedene Arten eingerichtet werden, je nach Wunsch oder Bedarf, um die hierin beschriebenen Funktionen durchzuführen.
  • Die Speichersteuerung 120 schließt auch ein Speichervorrichtungsinfrastruktur-Modul 150 ein, das verschiedene Funktionen der Speichersteuerung implementiert. Das Speichervorrichtungsinfrastruktur-Modul 150 kann eingerichtet sein, um den Betrieb der Speichersteuerung 120 zu steuern, indem Firmware-Level-Code oder Anweisungen ausgeführt werden. Wie unten erörtert, kann das Speichervorrichtungsinfrastruktur-Modul 150 auch eingerichtet sein, um autonom zwischen einer primären Firmware und einer sekundären Firmware ohne eine Umschaltanforderung aus der Hostvorrichtung 110 umzuschalten. Das Speichervorrichtungsinfrastruktur-Modul 150 wird nachstehend in 2 detaillierter beschrieben.
  • Es versteht sich, dass hier nur bestimmte Komponenten der Speichersteuerung 120 gezeigt sind. Nichtsdestotrotz können in anderen Ausführungsformen zusätzliche, weniger oder andere Komponenten innerhalb der Speichersteuerung bereitgestellt sein, wenn dies als notwendig oder wünschenswert erachtet wird, um die verschiedenen hierin beschriebenen Funktionen durchzuführen.
  • Nun bezugnehmend auf 2 wird ein beispielhaftes Blockdiagramm eines Speichervorrichtungsinfrastruktur-Moduls 200 gemäß einigen Ausführungsformen der vorliegenden Offenbarung dargestellt. Das Speichervorrichtungsinfrastruktur-Modul 200 schließt eine Vielzahl von Firmware-Slots 205, ein Umschalter-Modul 210, ein Zeitgeber-Modul 215, aktuelle Zustandsprotokolle 220, Debug-Protokolle 225 und Zähler 230 ein. Es versteht sich, dass hier nur bestimmte Komponenten des Speichervorrichtungsinfrastruktur-Moduls 200 dargestellt sind. Andere Komponenten, die benötigt oder erwünscht sein können, um die hierin beschriebenen Funktionen auszuführen, können in anderen Ausführungsformen bereitgestellt sein.
  • Die Vielzahl von Firmware-Slots 205 ist eingerichtet, um verschiedene Typen von Firmware aufzunehmen, die den Betrieb der Speichersteuerung 120, des nichtflüchtigen Speichers 115, steuern, überwachen, manipulieren und/oder anderweitig verwalten sowie die Kommunikation zwischen der Hostvorrichtung 110 und dem nichtflüchtigen Speicher erleichtern. In einigen Ausführungsformen und wie gezeigt, kann die Vielzahl von Firmware-Slots 205 sieben Slots einschließen. In anderen Ausführungsformen können mehr oder weniger als sieben aus der Vielzahl von Firmware-Slots 205 verwendet werden. Zusätzlich kann in einigen Ausführungsformen jeder aus der Vielzahl von Firmware-Slots 205 als eine logische Partition auf der Speichersteuerung 120 eingerichtet sein, obwohl in anderen Ausführungsformen einer oder mehrere aus der Vielzahl der Firmware-Slots auf andere Weise eingerichtet sein können.
  • Kraft der Vielzahl von Firmware-Slots 205 können mehrere Typen und/oder Versionen der Firmware gleichzeitig auf dem nichtflüchtigen Speicher 115 installiert werden. In einigen Ausführungsformen kann jeder aus der Vielzahl von Firmware-Slots 205 eingerichtet sein, um eine Instanz von Firmware zu halten. Allgemein ist Firmware definiert als ein Softwareprogramm oder ein Satz von Anweisungen, die auf einem nichtflüchtigen Speicher installiert (z. B. dem nichtflüchtigen Speicher 115 oder einem dedizierten nichtflüchtigen Firmware-Speicher innerhalb der Speichersteuerung oder mit dieser assoziiert) sind und durch die Speichersteuerung ausgeführt werden.
  • Ferner ist jeder aus der Vielzahl von Firmware-Slots 205 eingerichtet, um einen spezifischen Typ von Firmware zu halten. Die Firmware, die in jedem aus der Vielzahl von Firmware-Slots 205 gespeichert ist, kann eine Basis-Firmware des Ein-/Ausgabesystems, eine Diagnose-Firmware, eine Debug-Firmware oder ein beliebiger anderer Firmware-Typ sein, der für den Betrieb des Speichersystems 100 benötigt oder gewünscht wird. In einigen Ausführungsformen kann einer aus der Vielzahl von Firmware-Slots 205 eine primäre Firmware halten, und ein anderer aus der Vielzahl von Firmware-Slots kann eine sekundäre Firmware halten. Die sekundäre Firmware kann Debug-Firmware mit Debug-Funktionalität sein und die primäre Firmware kann jede andere Firmware als die Debug-Firmware sein. Ferner kann jeder aus der Vielzahl von Firmware-Slots 205 speziell dafür vorgesehen sein, den spezifischen Firmware-Typ zu halten. Somit kann die primäre Firmware nur in Slots gehalten werden, die zum Halten von primärer Firmware vorgesehen sind. In ähnlicher Weise darf die sekundäre Firmware nur in den Slots gehalten werden, die zum Halten der sekundären Firmware vorgesehen sind.
  • Zusätzlich kann jedem der Vielzahl von Firmware-Slots 205 eine Identifikationsnummer zugeordnet sein, die eine Nummer mit diesem bestimmten Slot assoziiert, und ein Identifikationstyp, der einen Firmware-Typ mit diesem bestimmten Slot assoziiert. Somit kann aus der Identifikationsnummer und dem Identifikationstyp jeder aus der Vielzahl von Firmware-Slots 205 eindeutig identifiziert und von anderen Slots unterschieden werden, und der mit diesem Slot assoziierte Firmware-Typ kann als solcher erkannt werden. Die Identifikationsnummer und der Identifikationstyp können der Hostvorrichtung 110 bekannt sein.
  • Ferner wird jeweils nur ein Typ von Firmware gleichzeitig verwendet. Durch die gleichzeitige Installation einer mehrfachen Firmware auf dem nichtflüchtigen Speicher 115 und die Möglichkeit, zwischen unterschiedlichen Typen von Firmware umzuschalten, kann jedoch eine für einen bestimmte Operationstyp geeignete Firmware ausgewählt werden. Herkömmlicherweise wird der Debug-Typ der Firmware nicht zu jedem Zeitpunkt innerhalb eines beliebigen aus der Vielzahl von Firmware-Slots 205 gespeichert. Wenn eine Debug-Funktionalität gewünscht wird (z. B. um Fehlfunktionen im Speichersystem 100 zu identifizieren), wird vielmehr die Debug-Firmware manuell in einen aus der Vielzahl von Firmware-Slots 205 installiert, der zum Halten der Debug-Firmware vorgesehen ist, und dann deinstalliert, wenn die Debug-Funktion nicht mehr erforderlich ist. Im Gegensatz dazu stellt die vorliegende Offenbarung einen Mechanismus bereit, durch den die Debug-Firmware jederzeit innerhalb eines aus der Vielzahl von Firmware-Slots 205 gehalten werden kann, und die Speichersteuerung 120 kann automatisch zwischen der primären Firmware (z. B. der Nicht-Debug-Firmware) und der sekundären Firmware (z. B. der Debug-Firmware) umschalten. Zum Beispiel kann in einigen Ausführungsformen die primäre Firmware innerhalb eines Slots 235 und die sekundäre Firmware innerhalb des Slots 240 aus der Vielzahl von Firmware-Slots 205 jederzeit gehalten werden.
  • Immer noch bezugnehmend auf 2, erleichtert das Umschalter-Modul 210 basierend auf der Erfüllung einer oder mehrerer Bedingungen das Umschalten zwischen der primären Firmware und der sekundären Firmware. Zum Beispiel kann das Umschalter-Modul 210 eingerichtet sein, um basierend auf der Erfüllung einer oder mehrerer Debug-Bedingungen von der primären Firmware zur sekundären Firmware umzuschalten. Das Umschalter-Modul 210 kann auch eingerichtet sein, um basierend auf der Erfüllung einer oder mehrerer Switch-Back-Bedingungen von der sekundären Firmware auf die primäre Firmware umzuschalten. Beide Typen von Umschaltbedingungen werden im Folgenden detaillierter erläutert.
  • Ferner kann das Umschalter-Modul 210 als Softwarekomponente, Hardwarekomponente oder als Kombination von Soft- und Hardwarekomponenten eingerichtet sein. Zusätzlich kann in einigen Ausführungsformen und wie gezeigt eine einzelne Instanz des Umschalter-Moduls 210 verwendet werden, um eine Umschaltung zwischen der primären Firmware und der sekundären Firmware zu erleichtern. In anderen Ausführungsformen können mehrere Instanzen des Umschalter-Moduls 210 verwendet werden, wobei jedes Umschalter-Modul dem Umschalten zwischen Firmware einer Teilmenge aus der Vielzahl von Firmware-Slots 205 zugeordnet ist.
  • Das Umschalter-Modul 210 kann ein Bedingungserfassungsmodul 245 einschließen, das eingerichtet ist, um die Debug-Bedingungen und die Switch-Back-Bedingungen zu erfassen. In einigen Ausführungsformen kann das Bedingungserfassungsmodul 245 eines oder mehrere Bedingungsmodule 250 einschließen, wobei jedes Bedingungsmodul eingerichtet ist, um einen oder mehrere Debug-Bedingungen und/oder einen oder mehrere Switch-Back-Bedingungen zu erfassen und auszuwerten. Somit kann in einigen Ausführungsformen eine Instanz des Umschalter-Moduls 210 eingerichtet sein, um eine Vielzahl von Debug-Bedingungen und eine Vielzahl von Switch-Back-Bedingungen zu überwachen. In anderen Ausführungsformen kann jede Instanz des Umschalter-Moduls 210 eingerichtet sein, um eine einzelne oder eine kleine Gruppe von Debug-Bedingungen und/oder eine einzelne oder eine kleine Gruppe von Switch-Back-Bedingungen zu überwachen.
  • Ferner können die Debug-Bedingungen und die Switch-Back-Bedingungen von einer Ausführungsform zur anderen variieren. In einigen Ausführungsformen kann zum Beispiel eine Debug-Bedingung eine Verbindungsfehler-Debug-Bedingung sein. Wie hierin verwendet, bezieht sich „Verbindung“ auf die physische Schnittstelle 113 zwischen der Hostvorrichtung 110 und der Speichervorrichtung 105. „Verbindungsfehler“ können durch eine schlechte Signalverbindung in der physischen Schnittstelle 113 (z. B. fehlgeschlagene Verbindung) zwischen der Hostvorrichtung 110 und der Speichervorrichtung 105 auftreten. Die Zähler 230 können alle Verbindungsfehler verfolgen, die innerhalb des Speichersystems 100 auftreten. Das Umschalter-Modul 210 kann eingerichtet sein, um die Verbindungsfehler durch Überwachen der Zähler 230 zu überwachen. Die Verbindungsfehler-Debug-Bedingung kann mit einer Verbindungsfehlerschwelle assoziiert werden, so dass, wenn die Zähler 230 anzeigen, dass die Verbindungsfehlerschwelle erreicht worden ist (z. B. aufgrund der Anzahl der von den Zählern, welche die Verbindungsfehlerschwelle erreichen oder überschreiten, aufgezeichneten Verbindungsfehlern), das Umschalter-Modul 210 bestimmen kann, dass die Verbindungsfehler-Debug-Bedingung erfüllt worden ist. Ferner kann die Verbindungsfehler-Debug-Bedingung von einem Bedingungsmodul 255 überwacht werden, das eingerichtet sein kann, um die Zähler 230 zu überwachen. Nach dem Erreichen oder Überschreiten der Verbindungsfehlerschwelle, die mit der Verbindungsfehler-Debug-Bedingung assoziiert ist, kann das Bedingungsmodul 255 ein Flag auslösen oder einen anderen Mechanismus verwenden, um dem Bedingungsmodul 245 und/oder dem Umschalter-Modul 210 anzugeben, dass die Verbindungsfehler-Debug-Bedingung erfüllt worden ist.
  • Eine weitere Debug-Bedingung, für die das Umschalter-Modul 210 zur Überwachung eingerichtet sein kann, kann eine Temperatur-Debug-Bedingung einschließen. Zum Beispiel kann das Bedingungsmodul 260 des Bedingungserfassungsmoduls 245 für die Temperatur-Debug-Bedingung eingerichtet sein. Insbesondere kann das Bedingungsmodul 260 einen oder mehrere Temperatursensoren einschließen oder mit diesen assoziiert sein, die eingerichtet sind, um die Temperatur einer oder mehrerer Komponenten innerhalb des Speichersystems 100 zu messen. Wenn der eine oder die mehreren Temperatursensoren einen ungewöhnlichen Temperaturanstieg bestimmen, der nicht mit der Umgebungstemperatur, signifikanten Temperaturschwankungen usw. assoziiert ist, basierend auf der gemessenen Temperatur, die einen Temperaturschwellenwert überschreitet, der mit der Temperatur-Debug-Bedingung assoziiert ist, kann das Bedingungsmodul 260 bestimmen, dass die Temperatur-Debug-Bedingung erfüllt worden ist. Ähnlich wie das Bedingungsmodul 255 kann das Bedingungsmodul 260 eingerichtet sein, um ein Flag zu erstellen oder über einen anderen Mechanismus anzugeben, dass die Temperatur-Debug-Bedingung erfasst worden ist.
  • Einige Debug-Bedingungen, für die das Bedingungserfassungsmodul 245 eingerichtet werden kann, können leistungsbezogen sein. Zum Beispiel kann das Bedingungserfassungsmodul 245 eingerichtet sein, um Latenz- und/oder Durchsatzprobleme zu erfassen. Wenn die Latenz, der Durchsatz oder ein anderer leistungsbezogener Parameter einen Leistungsschwellenwert überschreitet, kann das Bedingungserfassungsmodul 245 bestimmen, dass eine Debug-Bedingung erfüllt worden ist. Eines oder mehrere Bedingungsmodule 250 können zur Überwachung solcher leistungsbezogenen Debug-Bedingungen vorgesehen sein. Als Beispiel kann die Speichersteuerung 120 eine sequentielle Lese-Arbeitslast ausführen (z. B. Ausführen von Lesebefehlen aus der Hostvorrichtung 110 zum Lesen von Daten aus dem nichtflüchtigen Speicher 115). Die vorgesehene(n) Instanz(en) der Bedingungsmodule 250 können erfassen, dass bei einer ähnlichen Rate von Lesebefehlen, die aus der Hostvorrichtung 110 eingehen, die Leserate aus dem nichtflüchtigen Speicher 115 um mehr als die in der Leistungsschwelle festgelegte gesunken ist. In solchen Fällen können das/die vorgesehene(n) Bedingungsmodul(e) bestimmen, dass die Leistungs-Debug-Bedingung erfüllt worden ist, und können die Debug-Bedingung kennzeichnen.
  • In einigen Ausführungsformen können sich die Debug-Bedingungen auf Fehlerkorrektur, Fehler vorkommen und jede andere Bedingung beziehen, die ein Problem oder einen Fehler innerhalb der Hostvorrichtung 110, des nichtflüchtigen Speichers 115, der Speichersteuerung 120 und aller damit assoziierten Komponenten anzeigen oder voraussagen kann. Es versteht sich, dass die oben erörterten Debug-Bedingungen lediglich ein Beispiel sind. In anderen Ausführungsformen können zusätzliche, weniger oder andere Debug-Bedingungen durch das Umschalter-Modul 210 überwacht werden.
  • Die Debug-Bedingungen bewirken, dass das Umschalter-Modul 210 von der primären Firmware auf die sekundäre Firmware umschaltet, wie nachfolgend erörtert wird. Im Gegensatz dazu sind die Switch-Back-Bedingungen diejenigen, die bewirken, dass das Umschalter-Modul 210 von der sekundären Firmware auf die primäre Firmware zurückschaltet. Die Switch-Back-Bedingungen können auch von einer Ausführungsform zur anderen variieren. In einigen Ausführungsformen können die Switch-Back-Bedingungen den Debug-Bedingungen entsprechen. Wenn die Debug-Bedingung zum Beispiel eine Verbindungsfehler-Debug-Bedingung ist, die basierend auf der Erfüllung oder Überschreitung der Verbindungsfehlerschwelle erfüllt ist, kann die entsprechende Switch-Back-Bedingung eine Verbindungsfehler-Switch-Back-Bedingung sein. Die Verbindungsfehler-Switch-Back-Bedingung kann mit einer anderen Verbindungsfehlerschwelle assoziiert sein, die gleich oder unterschiedlich von der Verbindungsfehlerschwelle der Debug-Bedingung sein kann, und kann identifizieren, wann von der sekundären Firmware auf die primäre Firmware zurückgeschaltet werden soll.
  • In einigen Ausführungsformen können die Switch-Back-Bedingungen nicht mit den Debug-Bedingungen assoziiert sein. Zum Beispiel können in einigen Ausführungsformen, unabhängig von den Debug-Bedingungen, die Switch-Back-Bedingungen zeitbasiert sein, so dass das Umschalter-Modul 210 von der sekundären Firmware auf die primäre Firmware zurückschaltet, nachdem eine bestimmte Zeitperiode verstrichen ist. In noch weiteren Ausführungsformen kann eine Kombination aus assoziierten und nicht assoziierten Switch-Back-Bedingungen verwendet werden.
  • Zur Überwachung der Debug- und Switch-Back-Bedingungen kann das Bedingungserfassungsmodul 245 eingerichtet sein, um die aktuellen Zustandsprotokolle 220 und die Zähler 230 abzufragen. Insbesondere kann jede der Debug-Bedingungen und der Switch-Back-Bedingungen einen oder mehrere Parameter aufweisen, die damit assoziiert sind. Zum Beispiel kann die Verbindungsfehler-Debug-Bedingung einen Verbindungsfehlerparameter aufweisen, der damit assoziiert ist. Die Temperatur-Debug-Bedingung kann einen damit assoziierten Temperaturparameter aufweisen, usw. Diese Parameter können den aktuellen Betriebszustand des Speichersystems 100 anzeigen und können zur Identifizierung von Problemen oder Fehlern innerhalb des Speichersystems verwendet werden. Ferner werden Daten, die sich auf solche Parameter beziehen, in der Regel von der Speichersteuerung 120 in den aktuellen Zustandsprotokollen 220 und den Zählern 230 gesammelt. Die aktuellen Zustandsprotokolle 220 und die Zähler 230 stellen somit einen aktuellen Zustand des Speichersystems 100 bereit. Basierend auf den Werten der Parameter in den aktuellen Zustandsprotokollen 220 und den Zählern 230 kann das Umschalter-Modul 210 bestimmen, ob die Debug-Bedingungen und die Switch-Back-Bedingungen erfüllt sind.
  • Zum Beispiel können die aktuellen Zustandsprotokolle 220 in einigen Ausführungsformen Temperaturprotokolle einschließen, die verschiedene temperaturbezogene Informationen über eine oder mehrere Komponenten des Speichersystems 100 bereitstellen. Somit kann das Umschalter-Modul 210 für eine Temperatur-Debug-Bedingung mit einem Temperaturparameter auf die Temperaturprotokolle innerhalb der aktuellen Zustandsprotokolle 220 zugreifen und diese abfragen, um festzustellen, ob die Temperatur-Debug-Bedingung erfüllt worden ist. In ähnlicher Weise können die aktuellen Zustandsprotokolle 220 Informationen über Leistungsparameter (z. B. Latenz, Durchsatz usw.) und/oder mehrere andere Parameter innerhalb des Speichersystems 100 einschließen, die vom Umschalter-Modul 210 überwacht werden können.
  • In ähnlicher Weise können die Zähler 230 vom Umschalter-Modul 210 zur Identifizierung der Debug-Bedingungen und der Switch-Back-Bedingungen verwendet werden. Zum Beispiel kann, wie oben erörtert, in einigen Ausführungsformen das Umschalter-Modul 210 die Zähler 230 verwenden, um Verbindungsfehler-Debug-Bedingungen zu identifizieren. In anderen Ausführungsformen kann das Umschalter-Modul 210 die Zähler 230 verwenden, um auch andere Typen von Debug-Bedingungen zu identifizieren. Die Zähler 230 können zum Beispiel die Gesamtzahl der aus der Hostvorrichtung 110 eingehenden Befehle, die Anzahl der Hostbefehle, die von der Speichersteuerung bedient werden, die Anzahl der Bytes, die aus dem nichtflüchtigen Speicher 115 gelesen oder in diesen geschrieben wurden, usw. überwachen. Somit können die Zähler 230 eingerichtet sein, um eine Vielfalt von Parametern zu verfolgen, und das Umschalter-Modul 210 kann eingerichtet sein, um die Informationen aus den Zählern zur Identifizierung der Debug-Bedingungen und der Switch-Back-Bedingungen, die erfüllt worden sind, zu nutzen.
  • Es versteht sich, dass die aktuellen Zustandsprotokolle 220 und die Zähler 230 nur ein Beispiel für Informationsquellen sind, die das Umschalter-Modul 210 verwenden kann, um die verschiedenen Debug-Bedingungen und die Switch-Back-Bedingungen zu überwachen. In anderen Ausführungsformen kann das Umschalter-Modul 210 zusätzliche oder andere Informationen aus der Hostvorrichtung 110, dem nichtflüchtigen Speicher 115 und der Speichersteuerung 120 verwenden, um die Debug-Bedingungen und die Switch-Back-Bedingungen zu identifizieren. In einigen Ausführungsformen kann das Umschalter-Modul 210 eingerichtet sein, um bestimmte Komponenten der Hostvorrichtung 110, des nichtflüchtigen Speichers 115 und der Speichersteuerung 120 direkt zu überwachen. Somit können die Debug-Bedingungen und die Switch-Back-Bedingungen, für die das Umschalter-Modul 210 eingerichtet sein kann, variieren und die Quellen, die das Umschalter-Modul zur Überwachung dieser Bedingungen verwenden kann, können auch von einer Ausführungsform zur anderen variieren.
  • Außerdem kann, wie oben erwähnt, das Umschalter-Modul 210 in Software, Hardware oder einer Kombination aus Hardware und Software eingerichtet sein. In einigen Ausführungsformen kann die Konfiguration des Umschalter-Moduls 210 von den Debug-Bedingungen und den Switch-Back-Bedingungen abhängen, die überwacht werden sollen. Einige Bedingungen können für eine Softwarekonfiguration geeignet sein, während andere Bedingungen für eine Hardwarekonfiguration besser geeignet sein können. Zum Beispiel können temperaturbezogene Bedingungen sowohl für Hardware- als auch für Softwarekonfigurationen geeignet sein. In einer Hardwarekonfiguration können Temperatursensoren verwendet werden. In einer Softwarekonfiguration können Temperaturinformationen aus den aktuellen Zustandsprotokollen 220 verwendet werden. Leistungsbezogene Bedingungen wie Latenz und Durchsatz können für eine softwarebasierte Konfiguration besser geeignet sein. Somit kann das Umschalter-Modul 210 basierend auf den Debug-Bedingungen und den zu überwachenden Switch-Back-Bedingungen in Software, Hardware oder einer Kombination aus beiden eingerichtet sein.
  • Zusätzlich kann das Umschalter-Modul 210 eingerichtet sein, um die verschiedenen Debug-Bedingungen und die Switch-Back-Bedingungen kontinuierlich oder periodisch zu überwachen. In einigen Ausführungsformen kann das Umschalter-Modul 210 eingerichtet sein, um einige Debug-Bedingungen und einige Switch-Back-Bedingungen kontinuierlich zu überwachen, während andere Debug-Bedingungen und Switch-Back-Bedingungen periodisch überwacht werden können. Für die periodische Überwachung kann das Umschalter-Modul 210 das Zeitgeber-Modul 215 verwenden. Das Zeitgeber-Modul 215 kann mit einem vorbestimmten Zeitschwellenwert eingerichtet sein, so dass bei Erreichen des Zeitschwellenwerts (z. B. wenn die in dem Zeitschwellenwert eingestellte Zeit abgelaufen ist) das Umschalter-Modul 210 eine Überprüfung anhand der Parameter der Debug-Bedingungen und der Switch-Back-Bedingungen durchführt, die periodisch überwacht werden sollen. Das Zeitgebermodul wird dann zurückgesetzt und läuft wieder für den Zeitschwellenwert. Ferner kann für die Debug-Bedingungen und die Switch-Back-Bedingungen, die periodisch überwacht werden, das Umschalter-Modul 210 eingerichtet sein, um jede Bedingung oder eine Teilmenge von Bedingungen bei variierenden Zeitschwellen zu überwachen. Somit können basierend auf den Debug-Bedingungen und den Switch-Back-Bedingungen, die überwacht werden sollen, und der Häufigkeit der Überwachung das Umschalter-Modul 210 und das Zeitgeber-Modul 215 eingerichtet sein. Während das Zeitgeber-Modul 215 getrennt von dem Umschalter-Modul 210 gezeigt wurde, kann das Zeitgeber-Modul in einigen Ausführungsformen ein Teil des Umschalter-Moduls sein und/oder mit diesem integriert sein.
  • Unter Bezugnahme auf 2 kann das Umschalter-Modul 210, wenn das Umschalter-Modul bestimmt, dass ein oder mehrere Debug-Bedingungen, die auf ein Problem oder einen Ausfall hinweisen, erfüllt sind, ein Umschalten der Firmware veranlassen. Falls das Umschalter-Modul 210 bestimmt, dass die Switch-Back-Bedingungen erfüllt sind, kann das Umschalter-Modul gleichermaßen wieder umschalten. In beiden Situationen kann das Umschalter-Modul 210 das Umschalten auf eine von zwei Arten erleichtern. Zum Beispiel kann das Umschalter-Modul in einigen Ausführungsformen ein Steuerung-Ausfallzustand-Bit („CFS“-Bit) 265 verwenden, um ein Host-Ereignis (z. B. ein Flag- oder Interrupt-Bit) auszulösen, um der Hostvorrichtung 110 anzuzeigen, dass das Umschalter-Modul die Firmware umschaltet. Das Aktivieren des CFS-Bits 265 bewirkt grundsätzlich, dass die Hostvorrichtung 110 die Speichervorrichtung 105 und insbesondere die Speichersteuerung 120 zurücksetzt. Nach dem Zurücksetzen der Speichersteuerung 120 kann die Speichersteuerung die Ausführung der aktuell ausgeführten Firmware stoppen und die Ausführung einer anderen Firmware starten.
  • Ein weiterer Mechanismus zur Erleichterung des Umschaltens der Firmware ist die Verwendung eines verarbeitungspausierten Bits („PP-Bit“) 270. Ähnlich wie das CFS-Bit 265 löst das PP-Bit 270 ein Host-Ereignis (z. B. ein Flag- oder Interrupt-Bit) aus, um der Hostvorrichtung 110 anzugeben, dass das Umschalter-Modul die Firmware umschaltet. Das PP-Bit 270 bewirkt nicht, dass die Hostvorrichtung 110 die Speichervorrichtung 105 zurücksetzt. Vielmehr bewirkt das PP-Bit 270, dass die Speichervorrichtung 105 und insbesondere die Speichersteuerung 120 für eine kurze Zeit offline gehen, während der das Umschalter-Modul 210 die Ausführung der aktuell laufenden Firmware stoppt und die Ausführung einer anderen Firmware startet. Zusätzliche Details zum CFS-Bit 265 und PP-Bit 270 werden in Bezug auf die nachfolgenden 3 und 4 erläutert.
  • Somit überwacht das Umschalter-Modul 210 eine Vielfalt von Bedingungen, die auf ein Problem oder einen Ausfall innerhalb des Speichersystems 100 hinweisen, und schaltet autonom zwischen der primären Firmware und der sekundären Firmware um, ohne dass eine Eingabe aus der Hostvorrichtung 110 erforderlich ist.
  • In Bezug auf 3 wird ein beispielhaftes Flussdiagramm für einen Prozess 300 gezeigt, das Operationen zum Umschalten von einer primären Firmware auf eine sekundäre Firmware unter Verwendung des CFS-Bits 265 gemäß einigen Ausführungsformen der vorliegenden Offenbarung darstellt. Der Prozess 300 kann in Abhängigkeit von der jeweiligen Ausführungsform zusätzliche, weniger oder unterschiedliche Operationen einschließen. Nach dem Starten in Operation 305 überwacht das Umschalter-Modul 210 eine oder mehrere Debug-Bedingungen, die auf ein Problem oder einen Ausfall im Speichersystem 100 hinweisen können. Wie oben angegeben, kann das Umschalter-Modul 210 in einigen Ausführungsformen die Debug-Bedingungen periodisch überwachen. Somit bestimmt das Umschalter-Modul 210 in Operation 310, ob die Zeitschwelle innerhalb des Zeitgeber-Moduls 215 erreicht worden ist. Wenn die Zeitschwelle beispielsweise eine Minute beträgt und wenn das Zeitgeber-Modul 215 anzeigt, dass eine Minute vergangen ist, überprüft das Umschalter-Modul 210 die Werte der Parameter, die mit den zu überwachenden Debug-Bedingungen assoziiert sind, auf Aktualisierungen. Nach Erreichen der Zeitschwelle setzt das Zeitgeber-Modul 215 zurück und die Zeitschwelle startet neu.
  • Ferner kann in einigen Ausführungsformen für jede Debug-Bedingung eine andere Zeitschwelle verwendet werden. Zum Beispiel kann das Umschalter-Modul 210 eingerichtet sein, um alle X Sekunden (oder Bruchteile von Sekunden) auf die Debug-Bedingung A und alle Y Sekunden (oder Bruchteile von Sekunden) auf die Debug-Bedingung B zu prüfen. Somit kann in einigen Ausführungsformen die Operation 310 für jede Debug-Bedingung durchgeführt werden, die das Umschalter-Modul 210 überwacht. In einigen Ausführungsformen können in der Operation 310 andere Auslöser als Zeit verwendet werden (z. B. ein kritisches Warnereignis innerhalb des Speichersystems 100). In Ausführungsformen, in denen das Umschalter-Modul 210 die Debug-Bedingungen kontinuierlich überwacht, kann die Operation 310 für die kontinuierlich überwachten Debug-Bedingungen übersprungen werden. Wenn somit in der Operation 310 der Auslöser erreicht ist (z. B. wenn die Zeitgeberschwelle erreicht wurde), geht das Umschalter-Modul 210 zu Operation 315 über. Wird hingegen der Auslöser in der Operation 310 nicht erreicht, bleibt der Prozess 300 in der Operation 310 stehen, bis der Auslöser erreicht ist.
  • In der Operation 315 wertet das Umschalter-Modul 210 die Parameter aus, die mit den zu überwachenden Debug-Bedingungen assoziiert sind. Insbesondere überprüft das Umschalter-Modul 210 auf Aktualisierungen oder Änderungen seit der letzten Überprüfung der Werte der Parameter, die mit den zu überwachenden Debug-Bedingungen assoziiert sind. Wie oben erläutert, kann das Umschalter-Modul 210 die aktuellen Zustandsprotokolle 220, die Zähler 230 und jede andere Quelle innerhalb des Speichersystems 100 abfragen, um die Aktualisierungen oder Änderungen der Parameter zu identifizieren. Somit prüft das Umschalter-Modul 310 für jede Debug-Bedingung, für die der Auslöser in der Operation 210 erfüllt ist, Aktualisierungen in den Parametern.
  • Basierend auf den Informationen, die in der Operation 315 gesammelt werden, entscheidet das Umschalter-Modul 210 in Operation 320, ob von der primären Firmware auf die sekundäre Firmware umgeschaltet werden soll. Wie oben erläutert, hat jede Debug-Bedingung, die das Umschalter-Modul 210 überwacht, einen Schwellenwert, der mit ihr assoziiert ist. Das Umschalter-Modul 210 kann den Wert des in der Operation 315 erhaltenen Parameters mit dem Schwellenwert in der Operation 320 vergleichen. Wenn der Vergleich anzeigt, dass der Wert des Parameters gleich oder größer als die Temperaturschwelle (oder in einigen Fällen niedriger als die Schwelle) ist, kann das Umschalter-Modul bestimmen, dass die Debug-Bedingung erfüllt worden ist, und dass ein auftretendes oder bevorstehendes Problem innerhalb des Speichersystems 100 vorliegt.
  • In einigen Ausführungsformen kann das Umschalter-Modul 210 so eingerichtet sein, dass jeder Fall der Erfüllung der Debug-Bedingung kein Umschalten der Firmware verursacht. Zum Beispiel kann das Umschalter-Modul 210 für eine Temperatur-Debug-Bedingung so programmiert werden, dass es ein Firmware-Umschalten nur dann erleichtert, wenn der in der Operation 315 erhaltene Temperaturwert für eine bestimmte Zeitspanne die Temperaturschwelle überschreitet. Insbesondere, wenn beispielsweise das Umschalter-Modul 210 eingerichtet wurde, um die temperaturbezogene Bedingung jede Minute zu überwachen, und ferner eingerichtet wurde, um die Firmware zu umschalten, wenn der Temperaturwert die Temperaturschwelle fünf Minuten lang kontinuierlich überschreitet, schaltet das Umschalter-Modul die Firmware erst um, nachdem der Temperaturwert die Temperaturschwelle für fünf kontinuierliche Zyklen überschritten hat.
  • Somit kann das Umschalter-Modul 210 mit einer Vielfalt von Kriterien zur Überwachung der Debug-Bedingungen eingerichtet sein. Wenn das Umschalter-Modul 210 feststellt, dass die Kriterien zum Umschalten der Firmware in der Operation 320 nicht erfüllt wurden, fährt das Umschalter-Modul mit dem Betrieb der primären Firmware fort, wie in Operation 325 angegeben. Der Prozess 300 endet bei Operation 330, wobei das Umschalter-Modul 210 die Debug-Bedingung weiter überwacht, wie in den Operationen 310-320 angegeben. Wenn hingegen das Umschalter-Modul 210 in der Operation 320 bestimmt, dass die Kriterien zum Umschalten der Firmware erfüllt worden sind, startet das Umschalter-Modul den Prozess des Umschaltens von der primären Firmware auf die sekundäre Firmware in Operation 335.
  • Zum Umschalten der Firmware löst das Umschalter-Modul 210 ein Host-Ereignis mit dem CFS-Bit 265 in der Operation 335 aus. Das Auslösen des Host-Ereignisses kann das Auslösen oder Setzen eines Flag-Bits oder eines Interrupt-Bits beinhalten. Das Auslösen des Host-Ereignisses fordert die Hostvorrichtung 110 auf, die Speichersteuerung 120 zurückzusetzen. Nach dem Empfangen des Host-Ereignisses setzt die Hostvorrichtung 110 die Speichersteuerung 120 zurück. In einigen Ausführungsformen kann „Zurücksetzen“ bedeuten, dass der Betrieb der Speichersteuerung 120 für eine kurze Zeit angehalten und die Speichersteuerung nach Ablauf der kurzen Zeitspanne neu gestartet wird.
  • Durch das Zurücksetzen der Speichersteuerung 120 werden alle Inflight-Befehle, die gerade von der Hostvorrichtung 110 an die Speichersteuerung übertragen werden, verworfen oder verloren, so dass die Hostvorrichtung diese Befehle nach dem Zurücksetzen erneut senden muss. Alle Befehle, die bereits an die Speichersteuerung 120 übertragen wurden, können bedient und abgeschlossen werden, bevor das Zurücksetzen erfolgt. In einigen Ausführungsformen kann die Speichersteuerung 120 eingerichtet sein, um die Inflight-Befehle auch vor dem Zurücksetzen zu verarbeiten, um den Verlust dieser Befehle zu vermeiden. Wenn die Hostvorrichtung 110 beispielsweise einen oder mehrere Lesebefehle an die Speichersteuerung 120 gesendet hat, um Daten aus dem nichtflüchtigen Speicher 115 zu lesen, gehen all die Lesebefehle verloren oder werden verworfen, welche die Speichersteuerung 120 noch nicht erreicht haben, wenn die Speichersteuerung zurückgesetzt wird, so dass die Hostvorrichtung diese verlorenen Befehle nach dem Firmware-Umschalten erneut senden muss. Wenn diese Lesebefehle die Speichersteuerung 120 bereits erreicht haben, kann die Speichersteuerung diese Lesebefehle vor dem Zurücksetzen bedienen und deren Bearbeitung abschließen. Ferner kann, wenn die Speichersteuerung 120 zurückgesetzt wird, verhindert werden, dass die Hostvorrichtung 110 beliebige neue Befehle an die Speichersteuerung sendet. Nachdem das Host-Ereignis ausgelöst wurde und die Hostvorrichtung 110 veranlasst wurde, die Speichersteuerung 120 zurückzusetzen, erleichtert das Umschalter-Modul 210 das Firmware-Umschalten in Operation 340.
  • Um insbesondere das Umschalten von der primären Firmware auf die sekundäre Firmware in der Operation 340 zu erleichtern, stoppt das Umschalter-Modul die Ausführung der primären Firmware und startet die Ausführung der sekundären Firmware. Da die sekundäre Firmware bereits in die Vielzahl von Firmware-Slots 205 der Speichersteuerung 120 installiert ist, schaltet das Umschalter-Modul ohne manuelles Eingreifen eines Benutzers und ohne ein Umschaltanforderung aus der Hostvorrichtung 110 autonom von der primären Firmware auf die sekundäre Firmware um. Nach Abschluss des Umschaltens ist der Reset-Vorgang, der die Speichersteuerung in der Operation 335 zurücksetzt, abgeschlossen und die Speichersteuerung 120 wird in Operation 345 neu gestartet. Durch den Neustart der Speichersteuerung 120 in der Operation 345 kann die Hostvorrichtung 110 die Befehle, die beim Zurücksetzen des nichtflüchtigen Speichers in der Operation 335 verloren gegangen sind, erneut senden und neue Befehle senden. Ferner wird das in der Operation 320 gesetzte Flag- oder Interrupt-Bit deaktiviert.
  • Ferner stellt die sekundäre Firmware zusätzlich zu der Bereitstellung der normalen Funktionalitäten der primären Firmware eine Debug-Funktionalität bereit, die detaillierte Informationen über die Debug-Bedingung sammelt, die das Umschalten verursacht hat, und speichert diese Informationen in den Debug-Protokollen 225 (siehe 2). Die Hostvorrichtung 110, die Speichersteuerung 120 und der nichtflüchtige Speicher 115 setzen ihren Betrieb unter Verwendung der sekundären Firmware fort, wie in Operation 350 angegeben, und der Prozess 300 endet bei Operation 330, wobei das Umschalter-Modul 210 mit der Überwachung der Debug-Bedingung, die das Umschalten erleichtert hat, fortfährt.
  • Nun bezugnehmend auf 4 wird ein beispielhaftes Flussdiagramm gezeigt, das die Operationen für einen Prozess 400 gemäß einigen Ausführungsformen der vorliegenden Offenbarung darstellt. Der Prozess 400 stellt die Operationen zum Umschalten von einer primären Firmware auf eine sekundäre Firmware unter Verwendung des PP-Bit 270 dar. Der Prozess 400 kann in Abhängigkeit von der jeweiligen Ausführungsform zusätzliche, weniger oder unterschiedliche Operationen einschließen. Der Prozess 400 gleicht dem oben beschriebenen Prozess 300 in etwa. Somit bestimmt das Umschalter-Modul 405 nach dem Starten in Operation 210, ob die Zeitschwelle in Operation 410 erreicht worden ist. Die Operation 410 entspricht der oben beschriebenen Operation 310. Wenn daher das Zeitgeber-Modul 215 angibt, dass die Zeitschwelle erreicht worden ist, wertet das Umschalter-Modul die Parameter aus, die mit den Debug-Bedingungen assoziiert sind, die in Operation 415 überwacht werden. Wenn das Zeitgeber-Modul 215 angibt, dass die Zeitschwelle nicht erreicht worden ist, bleibt der Prozess 400 in Operation 410, bis die Zeitschwelle erreicht worden ist.
  • In der Operation 415 prüft das Umschalter-Modul 210 auf Aktualisierungen der Parameter der Debug-Bedingungen, die das Umschalter-Modul überwacht. Operation 415 entspricht Operation 315. In Operation 420 bestimmt das Umschalter-Modul 210, ob ein Firmware-Umschalten erforderlich ist. Wiederum kann das Umschalter-Modul 210 die Werte der in der Operation 415 erhaltenen Parameter mit einem oder mehreren Schwellenwerten und anderen innerhalb der Debug-Bedingung programmierten Kriterien vergleichen. Wenn das Umschalter-Modul 210 bestimmt, dass die Bedingungen für ein Firmware-Umschalten nicht erfüllt sind, wird in Operation 425 die primäre Firmware weiter verwendet und der Prozess 400 endet bei Operation 430.
  • Wenn das Umschalter-Modul 210 in Operation 420 entscheidet, dass die Bedingungen für die Durchführung des Firmware-Umschaltens erfüllt sind, startet das Umschalter-Modul in Operation 435 den Umschaltprozess. In Operation 435 löst das Umschalter-Modul ein Host-Ereignis aus. Insbesondere verwendet das Umschalter-Modul 210 das PP-Bit 270, um ein Flag- oder Interrupt-Bit zu setzen oder anzuheben, das die Verarbeitung neuer Befehle aus der Hostvorrichtung 110 für einen kurzen Zeitraum anhält. Die Speichersteuerung 120 kann mit der Verarbeitung beliebiger vorhandener Befehle aus der Hostvorrichtung 110 fortfahren, wenn das PP-Bit 270 verwendet wird, um das Umschalten zu erleichtern. Das PP-Bit 270 benachrichtigt auch (z. B. durch ein asynchrones Ereignis) die Hostvorrichtung 110, dass die Verarbeitung des nichtflüchtigen Speichers 115 für kurze Zeit pausiert oder angehalten wurde. Im Gegensatz zum vorstehend beschriebenen CFS-Umschaltmechanismus in Bezug auf Operation 335, bei der die Inflight-Befehle aus der Hostvorrichtung 110 verloren gehen, bewirkt der PP-Umschaltmechanismus aber nicht, dass die Inflight-Befehle aus der Hostvorrichtung verloren gehen.
  • Vielmehr können die Inflight-Befehle innerhalb der Speichersteuerung 120 in die Warteschlange gestellt werden, bis das Firmware-Umschalten abgeschlossen ist. Die Hostvorrichtung 110 kann mit dem Senden neuer Befehle an die Speichersteuerung fortfahren, um auf den nichtflüchtigen Speicher 115 zuzugreifen. Die neuen Befehle können zusammen mit den anderen Befehlen aus der Hostvorrichtung 110 in die Warteschlange gestellt werden. Somit verursacht der PP-Umschaltmechanismus keine Unterbrechung des Betriebs der Hostvorrichtung 110, außer vielleicht einer verzögerten Reaktionszeit für den Zeitraum, in dem das Firmware-Umschalten stattfindet. Die Entscheidung, den CFS-Mechanismus oder den PP-Mechanismus zu verwenden, kann durch das Umschalter-Modul 210 basierend auf der spezifischen Debug-Bedingung, die zu dem Firmware-Umschalten führte, und/oder der Schwere des durch die Bedingung verursachten Problems oder Fehlers, die das Umschalten verursacht, getroffen werden.
  • In Operation 440 stoppt das Umschalter-Modul 210 beim Auslösen des PP-Flag- oder Interrupt-Bits über das PP-Bit 270 die Ausführung der primären Firmware und startet die Ausführung der sekundären Firmware. Auch hier ermöglicht das Umschalter-Modul 210 das Umschalten von der primären Firmware zur sekundären Firmware ohne Umschaltanforderung aus der Hostvorrichtung 110 oder einen kundenseitigen Eingriff. Somit schaltet das Umschalter-Modul 210 autonom die Firmware um. Nach Abschluss des Umschaltens benachrichtigt das Umschalter-Modul 210 die Hostvorrichtung 110 (z. B. durch ein asynchrones Ereignis), dass die Firmware in Operation 445 umgeschaltet worden ist. Das PP-Flag- oder Interrupt-Bit, das in der Operation 435 ausgelöst wurde, kann deaktiviert werden und die sekundäre Firmware setzt dort an, wo die primäre Firmware aufgehört hat. Somit bedient die sekundäre Firmware in Operation 450 alle ausstehenden Befehle aus der Hostvorrichtung 110, die in Operation 435 in die Warteschlange gestellt wurden. Die sekundäre Firmware stellt zusätzlich zu der Bereitstellung der normalen Funktionalitäten der primären Firmware eine Debug-Funktionalität bereit, die detaillierte Informationen über die Bedingung sammelt, die das Umschalten verursacht hat, und speichert diese Informationen in den Debug-Protokollen 225 (siehe 2). In einigen Ausführungsformen kann die sekundäre Firmware möglicherweise die in der Debug-Bedingung angegebenen Probleme, die das Umschalten verursachen, vorschlagen und/oder beheben. Der Prozess 400 endet bei Operation 430.
  • Nun bezugnehmend auf 5 wird ein beispielhaftes Flussdiagramm gezeigt, das einen Prozess 500 zum Umschalten von der sekundären Firmware zurück zur primären Firmware gemäß einigen Ausführungsformen der vorliegenden Offenbarung darstellt. Der Prozess 500 kann in Abhängigkeit von der jeweiligen Ausführungsform zusätzliche, weniger oder unterschiedliche Operationen einschließen. Der Prozess 500 beginnt bei Operation 505 mit der sekundären Firmware in der Ausführung. Da die sekundäre Firmware nicht für Leistung und Energie optimiert ist, kann es wünschenswert sein, die Firmware wieder auf die primäre Firmware umzuschalten, sobald die Debug-Daten in den Debug-Protokollen 225 gesammelt wurden und/oder das Problem, welches das Umschalten verursacht hat, behoben ist. Wie oben erläutert, ist die primäre Firmware für Energie und Leistung optimiert und daher wünschenswerter als die sekundäre Firmware. Es versteht sich, dass die primäre Firmware, auf welche die sekundäre Firmware umgeschaltet wird, die gleiche Firmware sein kann, von der aus das Umschalten auf die sekundäre Firmware in den Prozessen 300 oder 400 vorgenommen wurde, oder dass die primäre Firmware eine andere primäre Firmware sein kann.
  • In Operation 510 bestimmt das Umschalter-Modul 210, ob die Switch-Back-Bedingungen für das Umschalten von der sekundären Firmware auf die primäre Firmware erfüllt sind. Beispielsweise kann das Umschalter-Modul 210 eingerichtet sein, um auf die primäre Firmware zurückzuschalten, nachdem eine vorbestimmte Zeitspanne verstrichen ist. Die vorbestimmte Zeitspanne kann basierend darauf programmiert sein, wie lange es normalerweise dauern würde, bis die sekundäre Firmware die Debug-Daten gesammelt und/oder das Problem behoben hat. In anderen Ausführungsformen kann das Umschalter-Modul 210 eingerichtet sein, um auf die primäre Firmware zurückzuschalten, nachdem die sekundäre Firmware die gesammelten Debug-Daten an einen Lieferanten oder eine andere Einheit zur Lösung des Problems gesendet hat. In noch anderen Ausführungsformen können zusätzliche oder andere Switch-Back-Bedingungen verwendet werden.
  • Wenn das Umschalter-Modul 210 bestimmt, dass das Umschalten von sekundärer zur primärer Firmware noch nicht erfolgt ist, geht der Prozess 500 zu der Operation 515 über, in der die Ausführung mit der sekundären Firmware fortgesetzt wird, und der Prozess endet bei Operation 520, wobei das Umschalter-Modul mit der Überwachung der Switch-Back-Bedingungen fortfährt. Wenn hingegen das Umschalter-Modul 210 in der Operation 510 bestimmt, dass die Switch-Back-Bedingungen für das Zurückschalten auf die primäre Firmware erfüllt sind, löst das Umschalter-Modul in Operation 525 ein Host-Ereignis in Operation 525 aus. Das Host-Ereignis kann ein Interrupt-Bit, ein Flag-Bit oder ein anderes Benachrichtigungsbit sein. Ferner kann das Host-Ereignis entweder über das CFS-Bit 265 oder das PP-Bit 270 ausgelöst werden. Wenn das CFS-Bit 265 verwendet wird, bewirkt das Umschalter-Modul 210 wiederum, dass die Hostvorrichtung 110 die Speichersteuerung 120 zurücksetzt und einige der Befehle aus der Hostvorrichtung verloren gehen können. Wenn das PP-Bit 270 verwendet wird, kann das Umschalter-Modul 210 die Verarbeitung der Befehle von der Hostvorrichtung 110 für einen kurzen Zeitraum pausieren und alle Befehle aus der Hostvorrichtung 110, die nicht sofort bedient werden, werden in die Warteschlange gestellt (aber sie gehen nicht verloren).
  • In einigen Ausführungsformen kann das Umschalter-Modul 210 den gleichen Umschaltmechanismus (z. B. CFS oder PP) verwenden, den das Umschalter-Modul beim Umschalten von der primären Firmware auf die sekundäre Firmware verwendet. In anderen Ausführungsformen kann das Umschalter-Modul 210 den anderen Mechanismus verwenden, als denjenigen, der für das Umschalten von der primären Firmware auf die sekundäre Firmware verwendet wird. Nach Auslösen des Host-Ereignisses in der Operation 530 stoppt das Umschalter-Modul 210 die Ausführung der sekundären Firmware und startet die Ausführung der primären Firmware. Nach Abschluss des Umschaltens benachrichtigt das Umschalter-Modul 210 die Hostvorrichtung 110 über das Umschalten in Operation 535, und in Operation 540 setzt die primäre Firmware dort an, wo die sekundäre Firmware aufgehört hat. Der Prozess 500 endet bei Operation 520. Somit ermöglicht das Umschalter-Modul auch das Umschalten von der sekundären auf die primäre Firmware ohne Umschaltanforderung aus der Hostvorrichtung 110 oder einen kundenseitigen Eingriff.
  • Daher stellt die vorliegende Offenbarung ein System und Verfahren zum Umschalten von einer Firmware auf eine andere Firmware ohne Benutzereingriff und ohne spezifische Anforderung aus der Hostvorrichtung 110 bereit. Das Umschalter-Modul 210 überwacht eine oder mehrere Bedingungen, die auf ein Problem oder einen Ausfall innerhalb des Speichersystems 100 hinweisen, und löst das Firmware-Umschalten automatisch aus, wenn mindestens eine der einen oder mehreren Bedingungen erfüllt ist. Vorteilhafterweise ist das autonome Umschalten der Firmware durch das Umschalter-Modul, ohne dass die Hostvorrichtung eine Anforderung zum Umschalten der Firmware sendet, schnell, automatisch, ermöglicht die Installation der Debug-Funktionalität auf der Speichersteuerung 120 gleichzeitig mit der regulären Firmware und führt zu einer effizienten und komfortablen Diagnose von Problemen oder Fehlern innerhalb des Speichersystems. Somit kann das Umschalter-Modul 210 dazu führen, dass Probleme im Speichersystem 100 identifiziert werden, bevor das Problem tatsächlich auftritt und den Betrieb des Speichersystems erheblich beeinträchtigt.
  • Die folgende Beschreibung richtet sich auf bestimmte Implementierungen zum Zwecke der Beschreibung der innovativen Gesichtspunkte dieser Offenbarung. Ein Durchschnittsfachmann wird jedoch leicht erkennen, dass die hierin enthaltene Lehre auf vielfältige Weise angewendet werden können.
  • Der hier beschriebene Gegenstand der Erfindung veranschaulicht manchmal unterschiedliche Komponenten, die in unterschiedlichen anderen Komponenten enthalten oder mit ihnen verbunden sind. Es versteht sich, dass solche dargestellten Architekturen nur beispielhaft sind, und dass tatsächlich viele andere Architekturen implementiert werden können, die dieselbe Funktionalität erzielen. In einem konzeptionellen Sinn ist jede Anordnung von Komponenten zum Erzielen derselben Funktionalität tatsächlich „assoziiert“, so dass die gewünschte Funktionalität erzielt wird. Somit können zwei beliebige Komponenten, die hier kombiniert sind, um eine bestimmte Funktionalität zu erzielen, als „miteinander assoziiert“ betrachtet werden, so dass die gewünschte Funktionalität erzielt wird, unabhängig von Architekturen oder medienübergreifenden Komponenten. Gleichermaßen können zwei beliebige so miteinander assoziierte Komponenten auch als „betriebsfähig miteinander verbunden“ oder „betriebsfähig miteinander gekoppelt“ betrachtet werden, um die gewünschte Funktionalität zu erzielen, und zwei beliebige Komponenten, die so miteinander assoziiert werden können, können auch als „betriebsfähig miteinander koppelbar“ betrachtet werden, um die gewünschte Funktionalität zu erzielen. Spezielle Beispiele für betriebsfähig miteinander koppelbar schließen physisch steckbare und/oder physikalisch interagierende Komponenten und/oder drahtlos interagierbare und/oder drahtlos interagierende Komponenten und/oder logisch interagierende und/oder logisch interagierbare Komponenten ein, sind aber nicht darauf beschränkt.
  • Bezüglich der Verwendung von im Wesentlichen jeglicher Ausdrücke im Plural und/oder Singular hierin kann ein Fachmann vom Plural in den Singular und/oder vom Singular in den Plural umwandeln, wie es für den Kontext und/oder die Anwendung geeignet ist. Aus Gründen der Klarheit können die verschiedenen Singular-/Plural-Vertauschungen hier ausdrücklich dargelegt werden.
  • Ein Fachmann wird verstehen, dass die hier verwendeten Ausdrücke im Allgemeinen und insbesondere in den beiliegenden Ansprüchen (z. B. Hauptteile der beigefügten Ansprüche) generell als „offene“ Ausdrücke beabsichtigt sind (d. h. der Begriff „einschließlich“ muss als „einschließlich, aber nicht darauf beschränkt“ ausgelegt werden, der Begriff „weist auf“ muss als „weist mindestens auf“ ausgelegt werden, der Begriff „schließt ein“ muss als „schließt ein, ist aber nicht darauf beschränkt“ usw. ausgelegt werden). Ein Fachmann wird ferner verstehen, dass, falls eine spezielle Anzahl in einer eingeleiteten Anspruchs-Rezitation beabsichtigt ist, eine solche Absicht in dem Anspruch explizit angegeben ist, und wenn eine solche Rezitation fehlt, keine solche Absicht vorhanden ist. Als Hilfe zum Verständnis können zum Beispiel in den folgenden beiliegenden Ansprüchen die einleitenden Formulierungen „mindestens ein/e“ und „ein/e oder mehrere“ verwendet werden, um Anspruchs-Rezitationen einzuleiten. Die Verwendung solcher Formulierungen darf jedoch nicht so ausgelegt werden, dass die Einleitung einer Anspruchs-Rezitation durch die unbestimmten Artikel „ein“ oder „eine“ bedeutet, dass jeder spezielle Anspruch, der eine solche eingeleitete Anspruchs-Rezitation enthält, auf Erfindungen eingeschränkt ist, die nur eine solche Rezitation enthalten, sogar wenn der selbe Anspruch die einleitenden Formulierungen „ein/e oder mehrere“ und „mindestens ein/e“ und unbestimmte Artikel, wie „ein“ oder „eine“ enthält (z. B. muss „ein“ und/oder „eine“ in der Regel so ausgelegt werden, dass es „mindestens ein/e“ oder „ein/e oder mehrere“ bedeutet); Dasselbe gilt auch für die Verwendung von bestimmten Artikeln, die dazu benutzt werden, Anspruchs-Rezitationen einzuleiten. Zusätzlich dazu wird, sogar wenn eine spezielle Anzahl einer eingeleiteten Anspruchs-Rezitation explizit angegeben wird, ein Fachmann erkennen, dass eine solche Rezitation in der Regel so interpretiert werden muss, dass mindestens die angegebene Anzahl gemeint ist (z. B. bedeutet die bloße Rezitation von „zwei Rezitationen“ ohne weitere Modifizierer in der Regel mindestens zwei Rezitationen oder zwei oder mehr Rezitationen). Ferner ist in den Fällen, in denen eine Konvention verwendet wird, die „mindestens ein/e/s von A, B und C, usw.“ entspricht, eine solche Konstruktion im Allgemeinen in dem Sinn beabsichtigt, in dem ein Fachmann die Konvention verstehen würde (z. B. wird „ein System, das mindestens eines von A, B und C aufweist“ Systeme einschließen, die A alleine, B alleine, C alleine, A und B zusammen, A und C zusammen, B und C zusammen und/oder A, B und C zusammen usw. aufweisen, ist aber nicht darauf beschränkt). In diesen Fällen, in denen eine Konvention verwendet wird, die „mindestens einem/einer von A, B oder C, usw.“ entspricht, ist eine solche Konstruktion im Allgemeinen in dem Sinn beabsichtigt, in dem ein Fachmann die Konvention verstehen würde (z. B. wird „ein System, das mindestens eines von A, B oder C aufweist“ Systeme einschließen, die A alleine, B alleine, C alleine, A und B zusammen, A und C zusammen, B und C zusammen und/oder A, B und C zusammen usw. aufweisen, ist aber nicht darauf beschränkt). Ein Fachmann wird ferner verstehen, dass praktisch jedes disjunktive Wort und/oder praktisch jede Formulierung, die zwei oder mehr alternative Begriffe darlegt, in der Beschreibung, den Ansprüchen oder Zeichnungen so verstanden werden sollte, dass die Möglichkeit besteht, dass es einen der Begriffe, einen von beiden Begriffen oder beide Begriffe einschließt. Zum Beispiel wird die Formulierung „A oder B“ so verstanden, dass die Möglichkeiten „A“ oder „B“ oder „A und B“ eingeschlossen sind. Ferner bedeutet die Verwendung der Wörter „ungefähr“, „etwa“, „rund“, „im Wesentlichen“ usw., sofern nicht anders angegeben, ein Plus oder Minus von zehn Prozent.
  • Die vorhergehende Beschreibung der veranschaulichenden Ausführungsformen wurde zu Zwecken der Veranschaulichung und Beschreibung vorgelegt. Sie soll nicht erschöpfend oder beschränkend in Bezug auf die genaue offenbarte Form sein, und Modifikationen und Variationen sind im Lichte der obigen Lehren möglich oder können aus der Praxis der offenbarten Ausführungsformen erlangt werden. Es ist beabsichtigt, dass der Schutzumfang der Erfindung durch die hieran angehängten Ansprüche definiert wird.
  • 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 15696913 [0001]

Claims (20)

  1. Verfahren, aufweisend: Bestimmen, durch ein Umschalter-Modul einer Speichersteuerung, der Erfüllung einer Debug-Bedingung basierend auf Werten von Parametern der Debug-Bedingung, wobei die Debug-Bedingung auf ein Problem innerhalb eines Speichersystems hinweist, das die Speichersteuerung aufweist, welche die Kommunikation zwischen einer Hostvorrichtung und einem nichtflüchtigen Speicher des Speichersystems erleichtert; und Umschalten, durch das Umschalter-Modul, des Betriebs des Speichersystems von einer primären Firmware auf eine sekundäre Firmware, basierend auf der Bestimmung des Umschalter-Moduls, dass die Debug-Bedingung erfüllt worden ist, wobei das Umschalten von der primären Firmware auf die sekundäre Firmware automatisch ohne Umschaltanforderung aus der Hostvorrichtung erfolgt.
  2. Verfahren gemäß Anspruch 1, ferner aufweisend: Auslösen eines Host-Ereignisses durch das Umschalter-Modul nach dem Bestimmen, dass die Debug-Bedingung erfüllt worden ist, wobei das Host-Ereignis unter Verwendung eines Steuerungsausfallstatus-Bits ausgelöst wird, in dem die Hostvorrichtung die Speichersteuerung zurücksetzt.
  3. Verfahren gemäß Anspruch 1, ferner aufweisend: Auslösen eines Host-Ereignisses durch das Umschalter-Modul nach dem Bestimmen, dass die Debug-Bedingung erfüllt worden ist, wobei das Host-Ereignis unter Verwendung eines verarbeitungspausierten Bits ausgelöst wird, in dem das Umschalter-Modul die Verarbeitung von Hostbefehlen für einen vorbestimmten Zeitraum pausiert.
  4. Verfahren nach Anspruch 1, wobei das Umschalten von der primären Firmware auf die sekundäre Firmware das Stoppen der Ausführung der primären Firmware und das Starten der Ausführung der sekundären Firmware aufweist.
  5. Verfahren gemäß Anspruch 1, ferner aufweisend: Auswerten, durch das Umschalter-Modul, einer oder mehrerer Switch-Back-Bedingungen zum Zurückschalten von der sekundären Firmware auf die primäre Firmware; Auslösen, durch das Umschalter-Modul, eines Host-Ereignisses zum Umschalten von der sekundären Firmware auf die primäre Firmware basierend auf der Erfüllung mindestens einer der einen oder mehreren Switch-Back-Bedingungen; Stoppen der Ausführung, durch das Umschalter-Modul, der sekundären Firmware; und Starten der Ausführung, durch das Umschalter-Modul, der primären Firmware.
  6. Verfahren nach Anspruch 5, wobei das Host-Ereignis durch Setzen entweder eines Steuerungsausfallzustand-Bits oder eines verarbeitungspausierten Bits durch das Umschalter-Modul ausgelöst wird.
  7. Verfahren nach Anspruch 5, ferner aufweisend das Benachrichtigen der Hostvorrichtung über das Umschalten von der sekundären Firmware auf die primäre Firmware.
  8. Verfahren nach Anspruch 5, wobei das Umschalten von der sekundären Firmware auf die primäre Firmware automatisch erfolgt, ohne dass die Speichersteuerung die Umschaltanforderung aus der Hostvorrichtung erhält.
  9. Verfahren gemäß Anspruch 1, ferner aufweisend: Vergleichen, durch das Umschalter-Modul, der Werte der Parameter mit einem oder mehreren vorbestimmten Schwellen, die mit der Debug-Bedingung assoziiert sind; und Bestimmen, durch das Umschalter-Modul, dass die Debug-Bedingung basierend auf den Werten, die eine oder mehrere vorgegebene Schwellen erreichen oder überschreiten, erfüllt worden ist.
  10. Verfahren nach Anspruch 1, ferner aufweisend das periodische Überprüfen auf Aktualisierungen der Parameter der Debug-Bedingung basierend auf einer vorbestimmten Zeitschwelle.
  11. Verfahren nach Anspruch 10, ferner aufweisend den Zugriff durch das Umschalter-Modul auf mindestens eines von einem aktuellen Zustandsprotokoll und einem Zähler innerhalb des Speichersystems zum Überprüfen auf Aktualisierungen in den Parametern der Debug-Bedingung.
  12. Speichersteuerung, aufweisend: eine Vielzahl von Firmware-Slots, wobei ein erster Slot der Vielzahl von Firmware-Slots eine darin installierte primäre Firmware aufweist und ein zweiter Slot der Vielzahl von Firmware-Slots eine darin installierte sekundäre Firmware aufweist; und ein Umschalter-Modul zum automatischen Umschalten zwischen der primären Firmware und der sekundären Firmware basierend auf der Erfüllung einer oder mehrerer Bedingungen, wobei das Umschalter-Modul zwischen der primären Firmware und der sekundären Firmware ohne eine Umschaltanforderung von einer Hostvorrichtung, die mit der Speichersteuerung in Verbindung steht, umschaltet.
  13. Speichersteuerung nach Anspruch 12, wobei die sekundäre Firmware eine Debug-Firmware ist, die eingerichtet ist, um eines oder mehrere Probleme innerhalb eines Speichersystems zu diagnostizieren, das die Speichersteuerung, die Hostvorrichtung und einen nichtflüchtigen Speicher aufweist.
  14. Speichersteuerung nach Anspruch 12, ferner aufweisend ein Zeitgeber-Modul in betrieblicher Verbindung mit dem Umschalter-Modul, wobei das Zeitgeber-Modul mit einer Zeitschwelle eingerichtet ist, und wobei das Umschalter-Modul eingerichtet ist, um die Erfüllung einer oder mehrerer Bedingungen basierend auf dem Erreichen oder Überschreiten der Zeitschwelle auszuwerten.
  15. Speichersteuerung nach Anspruch 12, wobei die eine oder mehreren Bedingungen Debug-Bedingungen sind, die auf ein oder mehrere Probleme innerhalb mindestens einer der Speichersteuerung, der Hostvorrichtung und eines nichtflüchtigen Speichers in Verbindung mit der Hostvorrichtung über die Speichersteuerung hinweisen, wobei das Umschalter-Modul eingerichtet ist, um Parameter, die mit den Debug-Bedingungen assoziiert sind, mit einer oder mehreren Schwellen zu vergleichen, um die Erfüllung der Debug-Bedingungen zu identifizieren; und wobei das Umschalter-Modul eingerichtet ist, um basierend auf der Erfüllung der Debug-Bedingungen von der primären Firmware auf die sekundäre Firmware umzuschalten.
  16. Speichersteuerung nach Anspruch 12, wobei die eine oder mehreren Bedingungen Switch-Back-Bedingungen sind, die auf eine Diagnose eines oder mehrerer Probleme innerhalb mindestens einer der Speichersteuerung, der Hostvorrichtung und eines nichtflüchtigen Speichers in Verbindung mit der Hostvorrichtung über die Speichersteuerung hinweisen, wobei das Umschalter-Modul eingerichtet ist, um basierend auf der Erfüllung der Switch-Back-Bedingungen von der sekundären Firmware auf die primäre Firmware umzuschalten.
  17. Speichersteuerung nach Anspruch 12, wobei das Umschalter-Modul eingerichtet ist, um zwischen der primären Firmware und der sekundären Firmware durch Auslösen eines Steuerungsausfallstatus-Bits umzuschalten, was bewirkt, dass die Hostvorrichtung die Speichersteuerung zurücksetzt.
  18. Speichersteuerung nach Anspruch 12, wobei das Umschalter-Modul eingerichtet ist, um zwischen der primären Firmware und der sekundären Firmware durch Auslösen eines verarbeitungspausierten Bits umzuschalten, was bewirkt, dass das Umschalter-Modul die Verarbeitung von Hostbefehlen für eine vorbestimmte Zeitspanne pausiert.
  19. Speichersystem, aufweisend: eine Hostvorrichtung; einen nichtflüchtigen Speicher; und eine Speichersteuerung, die eingerichtet ist, um die Kommunikation zwischen der Hostvorrichtung und dem nichtflüchtigen Speicher zu erleichtern, wobei die Speichersteuerung ein Umschalter-Modul aufweist, das eingerichtet ist, um basierend auf der Erfüllung einer oder mehrerer Bedingungen automatisch zwischen einer primären Firmware und einer sekundären Firmware umzuschalten, und wobei das Umschalter-Modul zwischen der primären Firmware und der sekundären Firmware ohne eine Umschaltanforderung aus der Hostvorrichtung umschaltet.
  20. Speichersystem nach Anspruch 19, wobei das Umschalter-Modul eingerichtet ist, um basierend auf der Erfüllung einer oder mehrerer Debug-Bedingungen automatisch von der primären Firmware auf die sekundäre Firmware umzuschalten; und wobei das Umschalter-Modul ferner eingerichtet ist, um basierend auf der Erfüllung einer oder mehrerer Switch-Back-Bedingungen automatisch von der sekundären Firmware auf die primäre Firmware zurückzuschalten.
DE112018003165.9T 2017-09-06 2018-06-05 System und verfahren zum umschalten von firmware Pending DE112018003165T5 (de)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US15/696,913 US10642693B2 (en) 2017-09-06 2017-09-06 System and method for switching firmware
US15/696,913 2017-09-06
PCT/US2018/035975 WO2019050581A1 (en) 2017-09-06 2018-06-05 SYSTEM AND METHOD FOR SWITCHING A MICROLOGICIAL

Publications (1)

Publication Number Publication Date
DE112018003165T5 true DE112018003165T5 (de) 2020-02-27

Family

ID=62846233

Family Applications (1)

Application Number Title Priority Date Filing Date
DE112018003165.9T Pending DE112018003165T5 (de) 2017-09-06 2018-06-05 System und verfahren zum umschalten von firmware

Country Status (4)

Country Link
US (1) US10642693B2 (de)
CN (1) CN110770690B (de)
DE (1) DE112018003165T5 (de)
WO (1) WO2019050581A1 (de)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11182232B2 (en) * 2019-11-18 2021-11-23 Microsoft Technology Licensing, Llc Detecting and recovering from fatal storage errors
TWI722852B (zh) * 2020-03-30 2021-03-21 技嘉科技股份有限公司 固態硬碟以及啟動方法
CN113467796A (zh) * 2020-03-30 2021-10-01 技嘉科技股份有限公司 固态硬盘以及启动方法
US11836502B2 (en) * 2021-06-14 2023-12-05 Dell Products L.P. Multi-boot system and method for a baseboard management controller (BMC)

Family Cites Families (53)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0437927A (ja) * 1990-06-01 1992-02-07 Sony Corp プロセッサの処理方法
US5399919A (en) * 1993-02-25 1995-03-21 Texas Instruments Incorporated Apparatus for detecting switch actuation
US5832492A (en) * 1995-09-05 1998-11-03 Compaq Computer Corporation Method of scheduling interrupts to the linked lists of transfer descriptors scheduled at intervals on a serial bus
JP4444397B2 (ja) * 1999-06-25 2010-03-31 富士通マイクロエレクトロニクス株式会社 トポロジの構築方法
US6675258B1 (en) * 2000-06-30 2004-01-06 Lsi Logic Corporation Methods and apparatus for seamless firmware update and propagation in a dual raid controller system
JP2002244874A (ja) * 2001-02-15 2002-08-30 Toshiba Corp 情報処理装置およびファームウェア更新方法
US6754895B1 (en) * 2001-04-26 2004-06-22 Palm Source, Inc. Method and system for automatic firmware updates in a portable hand-held device
US6711520B2 (en) * 2001-07-12 2004-03-23 Seagate Technology Llc Remote execution of diagnostic firmware in a block data storage device
US6694281B2 (en) * 2001-07-12 2004-02-17 Seagate Technology Llc Real time signal analysis of a remote block data storage device
US6789048B2 (en) * 2002-04-04 2004-09-07 International Business Machines Corporation Method, apparatus, and computer program product for deconfiguring a processor
US7080245B2 (en) * 2002-05-23 2006-07-18 Hewlett-Packard Development Company, L.P. Method and system of switching between two or more images of firmware on a host device
TWI221959B (en) * 2002-10-25 2004-10-11 Via Tech Inc Method and computer system using a debug system to boot up
US7076631B2 (en) * 2003-04-14 2006-07-11 Adtran, Inc. Mechanism for on-the-fly handling of unaligned memory accesses
US20040216003A1 (en) * 2003-04-28 2004-10-28 International Business Machines Corporation Mechanism for FRU fault isolation in distributed nodal environment
US7171653B2 (en) * 2003-06-03 2007-01-30 Hewlett-Packard Development Company, L.P. Systems and methods for providing communication between a debugger and a hardware simulator
US7302690B2 (en) * 2003-07-31 2007-11-27 International Business Machines Corporation Method and apparatus for transparently sharing an exception vector between firmware and an operating system
US20050132351A1 (en) * 2003-12-12 2005-06-16 Randall Roderick K. Updating electronic device software employing rollback
JP2005242555A (ja) * 2004-02-25 2005-09-08 Hitachi Ltd 記憶制御システム及び記憶制御システムが有するディスク型記憶装置にファームウェアを搭載する方法
US7809836B2 (en) * 2004-04-07 2010-10-05 Intel Corporation System and method for automating bios firmware image recovery using a non-host processor and platform policy to select a donor system
CA2487096A1 (en) * 2004-10-18 2006-04-18 Veris Industries, Llc Prioritized interrupt for waveform measurement
JP2006127252A (ja) * 2004-10-29 2006-05-18 Fujitsu Component Ltd 切替機、切替方法及びプログラム
US20060184840A1 (en) * 2005-02-11 2006-08-17 International Business Machines Corporation Using timebase register for system checkstop in clock running environment in a distributed nodal environment
JP2006227681A (ja) * 2005-02-15 2006-08-31 Matsushita Electric Ind Co Ltd デバッグ装置、デバッグ方法およびプログラム
US7426633B2 (en) * 2005-05-12 2008-09-16 Hewlett-Packard Development Company, L.P. System and method for reflashing disk drive firmware
US7617391B2 (en) * 2005-12-15 2009-11-10 Lsi Logic Corporation Method and apparatus for dynamically selecting one of multiple firmware images for booting an I/O controller
US20080046710A1 (en) * 2006-08-17 2008-02-21 Steven Maddocks Switching firmware images in storage systems
JP2008084291A (ja) * 2006-08-28 2008-04-10 Fujitsu Ltd 記憶装置、制御方法及び制御装置
US20080320110A1 (en) * 2007-06-25 2008-12-25 Sharp Laboratories Of America, Inc. Firmware rollback and configuration restoration for electronic devices
US7764188B2 (en) * 2007-11-29 2010-07-27 Caterpillar Inc System and method for maintaining machine operation
US7870438B2 (en) 2008-02-15 2011-01-11 International Business Machines Corporation Method, system and computer program product for sampling computer system performance data
JP4530059B2 (ja) * 2008-02-18 2010-08-25 日本電気株式会社 ディスクアレイ装置、ファームウェア交換方法およびファームウェア交換プログラム
JP4635061B2 (ja) 2008-02-27 2011-02-16 株式会社東芝 半導体記憶装置の評価方法
US7870430B2 (en) * 2008-02-29 2011-01-11 Freescale Semiconductor, Inc. Method and apparatus for sharing debug resources
US8250246B2 (en) * 2008-07-09 2012-08-21 Finisar Corporation Loading and executing firmware module without resetting operation
US8136108B2 (en) * 2008-09-03 2012-03-13 Computime, Ltd Updating firmware with multiple processors
US8132057B2 (en) * 2009-08-07 2012-03-06 International Business Machines Corporation Automated transition to a recovery kernel via firmware-assisted-dump flows providing automated operating system diagnosis and repair
US9189385B2 (en) 2010-03-22 2015-11-17 Seagate Technology Llc Scalable data structures for control and management of non-volatile storage
WO2012164625A1 (en) * 2011-06-01 2012-12-06 Hitachi, Ltd. Load distribution storage system and method therefor
KR101524096B1 (ko) 2011-06-07 2015-06-01 엘에스아이 코포레이션 호스트가 볼 때 디바이스 펌웨어 업데이트 효과들의 관리
CN104063258B (zh) 2013-03-21 2017-05-03 国际商业机器公司 用于调试过程中的代码动态切换的方法和系统
US20140344960A1 (en) 2013-05-17 2014-11-20 Lsi Corporation Selective control of on-chip debug circuitry of embedded processors
US8943226B1 (en) 2013-11-22 2015-01-27 Lsi Corporation Interface for heterogeneous PCI-e storage devices
CN104680059B (zh) * 2013-12-03 2017-11-03 北京中电华大电子设计有限责任公司 一种保护芯片固件程序的仿真器及方法
US9703636B2 (en) * 2014-03-01 2017-07-11 Sandisk Technologies Llc Firmware reversion trigger and control
US9959203B2 (en) * 2014-06-23 2018-05-01 Google Llc Managing storage devices
US10474618B2 (en) 2014-09-04 2019-11-12 Western Digital Technologies, Inc. Debug data saving in host memory on PCIE solid state drive
KR102229024B1 (ko) 2014-12-03 2021-03-17 삼성전자주식회사 스스로 에러를 검출하고 로그를 저장할 수 있는 데이터 저장 장치와 이를 포함하는 시스템
US9836386B2 (en) * 2014-12-18 2017-12-05 Red Hat Israel, Ltd. Automatic switch to debugging mode
US9625984B2 (en) * 2015-03-27 2017-04-18 Intel Corporation Technologies for managing power during an activation cycle
US9430358B1 (en) * 2015-06-23 2016-08-30 Ca, Inc. Debugging using program state definitions
CN106293979B (zh) * 2015-06-25 2019-11-15 伊姆西公司 检测进程无响应的方法和装置
US10254337B2 (en) * 2015-10-27 2019-04-09 Marvell World Trade Ltd. System and method for establishing a trusted diagnosis/debugging agent over a closed commodity device
US10572390B2 (en) * 2016-02-29 2020-02-25 Apple Inc. Methods and apparatus for loading firmware on demand

Also Published As

Publication number Publication date
US20190073268A1 (en) 2019-03-07
WO2019050581A1 (en) 2019-03-14
CN110770690A (zh) 2020-02-07
CN110770690B (zh) 2024-01-23
US10642693B2 (en) 2020-05-05

Similar Documents

Publication Publication Date Title
DE112018003165T5 (de) System und verfahren zum umschalten von firmware
DE102012109614B4 (de) Verfahren zum Wiederherstellen von Stapelüberlauf- oder Stapelunterlauffehlern in einer Softwareanwendung
DE102005022192B4 (de) Datensicherungs-Laufwerk mit auswechselbaren Speichermedien zum Sichern von Daten eines Hostcomputers
DE102006048115B4 (de) System und Verfahren zum Aufzeichnen von behebbaren Fehlern
DE102012204256B4 (de) Verfahren und system zum initiieren eines wiederauffrischungsvorgangs in einer nicht flüchtigen festkörper-speichereinrichtung
DE112011100112B4 (de) Pufferspeicher-platte in blitzkopie-kaskade
DE102015201443A1 (de) Verfahren und Vorrichtung zum Steuern eines Watchdog
EP1903436B1 (de) Computersystem und Verfahren zum Aktualisieren von Programmcode
DE112012005589T5 (de) Informationsverarbeitungsvorrichtung, Informationsverarbeitungsverfahren und Computerprogramm
DE102006036070B4 (de) Ladungsfallenspeichervorrichtung und Verfahren für deren Herstellung und Betrieb
DE112013001421T5 (de) Auf Richtlinien beruhendes Verwalten von Speicherfunktionen in Datenreplikationsumgebungen
DE112008000180T5 (de) Verfahren und System für die Umsetzung eines Fast-Wakeup eines Flashspeichersystems
DE102014002473A1 (de) System und verfahren zur erhöhung der lockstep-kern-verfügbarkeit
DE102014101633A1 (de) Unterbrechung von Aufgaben zur Verwatlung von Chip-Komponenten
DE69627842T2 (de) Fehleranzeige für ein Speichersystem mit auswechselbaren Speichereinheiten
DE112009002119T5 (de) Informationsspeichereinrichtung
DE69934665T2 (de) Vorrichtung und verfahren zum gesicherten schreiben in einem plattencachespeicher für festplatten eines massenspeichersubsystems
DE112014000340T5 (de) Vorablesezugriff auf Daten für einen Chip mit einem übergeordneten Kern und einem Scout-Kern
DE10131388A1 (de) Integrierter dynamischer Speicher und Verfahren zum Betrieb desselben
DE102011017634B4 (de) Signalleitung zum Anzeigen eines Schreibfehlers in einem Speicher
DE69927571T2 (de) Datenprozessor und Verfahren zum Verarbeiten von Daten
DE112014001736B4 (de) Ein Primärspeichermodul mit Aufzeichnung des Nutzungsverlaufs und Anwendungsmöglichkeiten des Primärspeichermoduls bei einem Computersystem
EP2437171A1 (de) Datenspeichersystem und Verfahren
DE112018001444T5 (de) Verbesserte E/A-Fehlerdiagnose
DE102021126883A1 (de) Fehleranzeigen für speichersystembefehle

Legal Events

Date Code Title Description
R012 Request for examination validly filed
R079 Amendment of ipc main class

Free format text: PREVIOUS MAIN CLASS: G06F0003060000

Ipc: G06F0009445000

R082 Change of representative

Representative=s name: DEHNSGERMANY PARTNERSCHAFT VON PATENTANWAELTEN, DE