DE102013021679A1 - Rettung von Ereignisnachverfolgungsinformationen bei Stromausfall-Unterbrechungsszenarien - Google Patents

Rettung von Ereignisnachverfolgungsinformationen bei Stromausfall-Unterbrechungsszenarien Download PDF

Info

Publication number
DE102013021679A1
DE102013021679A1 DE102013021679.6A DE102013021679A DE102013021679A1 DE 102013021679 A1 DE102013021679 A1 DE 102013021679A1 DE 102013021679 A DE102013021679 A DE 102013021679A DE 102013021679 A1 DE102013021679 A1 DE 102013021679A1
Authority
DE
Germany
Prior art keywords
memory
host
tracking information
event tracking
response
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
DE102013021679.6A
Other languages
English (en)
Inventor
Michael J. Anderson
Kraig Bottemiller
Adam Michael Espeseth
Lee Anton Sendelbach
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
HGST Netherlands BV
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 HGST Netherlands BV filed Critical HGST Netherlands BV
Publication of DE102013021679A1 publication Critical patent/DE102013021679A1/de
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/16Protection against loss of memory contents
    • 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/0766Error or fault reporting or storing
    • G06F11/0778Dumping, i.e. gathering error/state information after a fault for later diagnosis
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/26Power supply means, e.g. regulation thereof
    • G06F1/30Means for acting in the event of power-supply failure or interruption, e.g. power-supply fluctuations
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • 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/14Error detection or correction of the data by redundancy in operation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/14Protection against unauthorised use of memory or access to memory
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C16/00Erasable programmable read-only memories
    • G11C16/02Erasable programmable read-only memories electrically programmable
    • G11C16/06Auxiliary circuits, e.g. for writing into memory
    • G11C16/22Safety or protection circuits preventing unauthorised or accidental access to memory cells
    • G11C16/225Preventing erasure, programming or reading when power supply voltages are outside the required ranges
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C16/00Erasable programmable read-only memories
    • G11C16/02Erasable programmable read-only memories electrically programmable
    • G11C16/06Auxiliary circuits, e.g. for writing into memory
    • G11C16/34Determination of programming status, e.g. threshold voltage, overprogramming or underprogramming, retention
    • G11C16/349Arrangements for evaluating degradation, retention or wearout, e.g. by counting erase cycles
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C5/00Details of stores covered by group G11C11/00
    • G11C5/14Power supply arrangements, e.g. power down, chip selection or deselection, layout of wirings or power grids, or multiple supply levels
    • G11C5/143Detection of memory cassette insertion or removal; Continuity checks of supply or ground lines; Detection of supply variations, interruptions or levels ; Switching between alternative supplies
    • G11C5/144Detection of predetermined disconnection or reduction of power supply, e.g. power down or power standby
    • 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/0763Error or fault detection not based on redundancy by bit configuration check, e.g. of formats or tags
    • 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/08Error detection or correction by redundancy in data representation, e.g. by using checking codes
    • G06F11/10Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
    • G06F11/1008Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices
    • 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/1438Restarting or rejuvenating
    • 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/1441Resetting or repowering

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Quality & Reliability (AREA)
  • Health & Medical Sciences (AREA)
  • Biomedical Technology (AREA)
  • Computer Security & Cryptography (AREA)
  • Power Engineering (AREA)
  • Debugging And Monitoring (AREA)

Abstract

Die Rettung von Ereignisnachverfolgungsinformationen in Stromausfall-Unterbrechungsszenarien (PLI-Szenarien) für die Verwendung in Festkörperlaufwerk-(SSD) und Festplattenlaufwerk-(HDD)Speichervorrichtungen. Falls die flüchtigen Statusinformationen, die nach einem unbeabsichtigten Stromausfall gerettet werden, Ereignisnachverfolgungsinformationen enthielten, können solche Informationen eine wertvolle Debug-Ressource bereitstellen. Die Ereignisnachverfolgungsinformationen aus dem flüchtigen Speicher werden nach Einschalten als Reaktion auf ein PLI-Ereignis in einen zweiten Speicher kopiert. Ein beschädigter Status von Kontextrekonstruktionsdaten, die in dem nicht flüchtigen Speicher gespeichert sind, wird erkannt und eine Anzeige des beschädigten Status gesetzt. Die Ereignisnachverfolgungsinformationen werden an den Host weitergeleitet, wenn dies basierend auf der Anzeige angefordert wird.

Description

  • GEBIET DER ERFINDUNG
  • Ausführungsformen der Erfindung betreffen ein fehlertolerantes Trace-(bzw. Nachverfolgungs-)Tool, das zum Debuggen von Stromausfall-Unterbrechungsfehlern (PLI-Fehlern) für Festkörperlaufwerke (SSD) und Festplattenlaufwerke (HDD) verwendet wird.
  • ALLGEMEINER STAND DER TECHNIK
  • Ein Festkörperlaufwerk (SSD) ist eine Datenspeichervorrichtung, die integrierte Schaltungsanordnungen als Speichereinheiten verwendet, um anhaltend Daten zu speichern. Die SSD-Technologie verwendet elektronische Schnittstellen, die mit herkömmlichen Block-Eingabe-/Ausgabe-Festplattenlaufwerken (I/O-HDD) kompatibel sind. SSD setzen keine sich bewegenden mechanischen Komponenten ein, wodurch sie sich von den herkömmlichen HDD unterscheiden, die Daten auf sich drehenden Magnetscheiben durch Verwenden von beweglichen Lese-Schreib-Köpfen speichern.
  • Derzeit verwenden die meisten SSD NAND-basierte Flash-Speicher, die eine Form von nicht flüchtigen Speichern bilden, die Daten bei einem Stromausfall halten und die elektrisch gelöscht und neu programmiert werden können (weil der Flash-Speicher aus dem EEPROM entwickelt wurde). Weiterhin verbinden die hybriden Laufwerke die Merkmale von sowohl SSD als auch HDD in der gleichen Einheit, die typischerweise ein Festplattenlaufwerk und einen SSD-Zwischenspeicher enthält, um die Leistung von häufig verwendeten Daten zu verbessern. Der Flash-Speicher speichert Informationen auf einem Array aus Speicherzellen, die von Floating-Gate-Transitoren gebildet werden.
  • Auf Flash-Speicher (NAND) basierende Festkörperlaufwerke (SSD) sollen tolerant für Stromausfälle sein und verlieren keine Daten, wenn ein solcher Stromausfall auftritt. SSD weisen im Allgemeinen einen nicht flüchtigen Zwischenspeicher auf, in dem Daten gehalten werden, wie DRAM, wobei diese Daten im Fall eines Stromausfall-Ereignisses (PLI-Ereignis) in dem NAND-Speicher gespeichert werden müssen. Typischerweise enthält ein SSD Kondensatoren oder eine andere Speichervorrichtung mit einer absichtlich anhaltenden Ladung, die genügend Strom zum Speichern von Daten in den NAND bereitstellt, wenn ein PLI-Unterbrechungssignal empfangen wird. Die als Reaktion auf ein PLI-Ereignis gespeicherten Daten weisen typischerweise dirty Schreib-Zwischenspeicherdaten (also Daten, die anzeigen, ob der Block beim Ersetzen zurückkopiert werden muss) und LBA-Mappingtabelleninformationen auf (z. B. Indirektionstabellen), die Journalisierungsdaten aufweisen können.
  • PLI-Probleme erfordern jedoch typischerweise bedeutende Diagnoseanstrengungen, bei denen der Entwickler/Problemlöser in Besitz des Laufwerks sein muss, um Tools auf dem Laufwerk zum Beheben der Fehler, die während der Ausschaltabfolge aufgetreten sind, auszuführen. Je nach Schwere des Fehlers, bei denen ein Laufwerk typischerweise aufgrund einer Datenkohärenz-Unversehrtheitsprüfung beim Einschalten nicht „bereit” ist, kann dieser zu einem vollständigen Datenverlust führen, wobei die langen Diagnose-Durchlaufzeiten für die Kunden nicht zumutbar sind.
  • KURZDARSTELLUNG VON AUSFÜHRUNGSFORMEN DER ERFINDUNG
  • Ausführungsformen der Erfindung betreffen das Wiedergewinnen von Ereignisnachverfolgungsinformationen in Stromausfall-Unterbrechungsszenarien (PLI-Szenarien) für die Verwendung in Festkörperlaufwerk-(SSD) und Festplattenlaufwerk-(HDD)Speichervorrichtungen. Wenn zum Beispiel die DRAM-Statusinformation, die nach einem unbeabsichtigten Stromausfall gerettet wird, Ereignisnachverfolgungsinformationen enthielte, können solche Informationen eine wertvolle Debug-Ressource bereitstellen.
  • Gemäß einer Ausführungsform werden die Ereignisnachverfolgungsinformationen aus dem flüchtigen Speicher nach Einschalten als Reaktion auf ein PLI-Ereignis in einen zweiten Speicher kopiert. Ein beschädigter Status von in dem nicht flüchtigen Speicher gespeicherten Kontextrekonstruktionsdaten wird erkannt und eine Anzeige des beschädigten Status gesetzt. Gemäß einer Ausführungsform können die Ereignisnachverfolgungsinformationen, wenn dies basierend auf der Anzeige angefordert wird, an den Host weitergeleitet werden.
  • Bei einer optionalen Erweiterung werden als Reaktion auf eine Anforderung von einem Host die Ereignisnachverfolgungsinformationen an den Host zur Verwendung mit einem fehlertoleranten Debug-Tool weitergeleitet. Das Debug-Tool ist teilweise fehlertolerant, weil es zum Ableiten eines zulässigen Trace-Zeichens aus einem missgebildeten Trace-Zeichen konfiguriert ist.
  • Ausführungsformen, die in der Kurzdarstellung von Ausführungsformen der Erfindung beschrieben werden, sollen nicht sämtliche Ausführungsformen nahelegen, beschreiben oder lehren, die hierin beschrieben sind. Daher können die Ausführungsformen der Erfindung zusätzliche oder andere Merkmale als die in diesem Abschnitt beschriebenen enthalten.
  • KURZBESCHREIBUNG DER ZEICHNUNGEN
  • Ausführungsformen der Erfindung sind in den Figuren der beiliegenden Zeichnungen beispielhaft und nicht einschränkend dargestellt, wobei ähnliche Bezugszeichen ähnliche Elemente bezeichnen. Die Figuren zeigen:
  • 1 ein Blockdiagramm, das eine beispielhafte Betriebsumgebung darstellt, in welche die Ausführungsformen der Erfindung implementiert werden können;
  • 2 ein Flussdiagramm, das ein Verfahren zum Retten von Ereignisnachverfolgungsinformationen bei einem Stromausfall-Unterbrechungsszenarium (PLI-Szenarium) gemäß einer Ausführungsform der Erfindung darstellt.
  • AUSFÜHRLICHE BESCHREIBUNG
  • Ansätze für ein fehlertolerantes Trace-Tool, die zum Debuggen von Stromausfall-Unterbrechungsfehlern (PLI-Fehlern) in einer Festkörperlaufwerk(SSD)-Speichervorrichtung verwendet werden können, werden beschrieben. In der folgenden Beschreibung werden zum Zwecke der Erläuterung zahlreiche spezifische Details dargelegt, um ein gründliches Verständnis der Ausführungsformen der hierin beschriebenen Erfindung bereitzustellen. Man wird jedoch erkennen, dass die Ausführungsformen der hierin beschriebenen Erfindung ohne diese spezifischen Details ausgeführt werden können. In einigen Beispielen sind gut bekannte Strukturen und Vorrichtungen in Form eines Blockdiagramms dargestellt, um die unnötige Verschleierung von Ausführungsformen der hierin beschriebenen Erfindung zu vermeiden.
  • FESTKÖRPERLAUFWERK-KONFIGURATION
  • Ausführungsformen der Erfindung können zum Verwalten einer Festkörperlaufwerk-Speichervorrichtung (SSD-Speichervorrichtung) verwendet werden. 1 ist ein Blockdiagramm, das eine beispielhafte Betriebsumgebung darstellt, in welche die Ausführungsformen der Erfindung implementiert werden können. 1 zeigt eine generische SSD-Architektur 100, wobei ein SSD 102 mit einer Host-Vorrichtung 104 über eine primäre Kommunikationsschnittstelle 106 kommunikativ gekoppelt ist. Ausführungsformen der Erfindung sind nicht auf eine Konfiguration wie die in 1 dargestellte beschränkt, die Ausführungsformen können vielmehr auch für andere Betriebsumgebungen als SSD angewendet werden, wie z. B. Festplattenlaufwerke (HDD), und können in andere als den in 1 dargestellten SSD-Konfigurationen implementiert werden. Zum Beispiel können Ausführungsformen zum Betreiben in anderen Umgebungen implementiert werden, die von flüchtigen Speicherkomponenten des Speichers für die vorübergehende Speicherung von wichtigen Betriebsinformationen abhängen.
  • Die Host-Vorrichtung 104 (oder einfach „Host”) repräsentiert grob jede Art von Computerhardware oder -software, die, unter anderem, Daten-I/O-Anforderungen oder -Anfragen an eine oder mehrere Speichervorrichtungen stellt. Zum Beispiel kann der Host 104 ein Betriebssystem sein, das auf einem Computer, einem Tablet-Computer, einem Mobiltelefon oder im Allgemeinen auf jeder Art Computervorrichtung ausgeführt wird, die einen Speicher enthält oder damit interagiert. Die primäre Schnittstelle 106, welche die Host-Vorrichtung 104 mit dem SSD 102 verbindet, kann zum Beispiel ein Internal Bus eines Computers oder ein Kommunikationskabel oder ein drahtloser Kommunikationsanschluss oder dergleichen sein.
  • Das beispielhafte SSD 102, das in 1 dargestellt ist, weist eine Schnittstelle 110, eine Steuerung 112 (z. B. eine Steuerung mit Firmware-Logik darin) und einen Adressierungsfunktionsblock 114, einen Datenpuffer-Zwischenspeicher 116, einen Fehlererkennungscode (ECC) 118 und eine oder mehrere nicht flüchtige Speicherkomponenten 120a, 120b, 120n auf. Der Adressierungsfunktionsblock 114, Datenpuffer-Zwischenspeicher 116 und ECC 118 können funktional als Teil der Steuerung 112 integriert sein, wie in einer System-On-Chip-Konfiguration (SOC-Konfiguration).
  • Die Schnittstelle 110 ist ein Ort der Interaktion zwischen den Komponenten, nämlich zwischen dem SSD 102 und der Host-Vorrichtung 104 in diesem Kontext, und ist sowohl auf Hardware- als auch Software-Ebene anwendbar. Dies ermöglicht einer Komponente, mit anderen Komponenten über ein Eingabe-/Ausgabe-System und ein zugehöriges Protokoll zu kommunizieren. Eine Hardware-Schnittstelle wird typischerweise über mechanische, elektrische und logische Signale an der Schnittstelle und dem Protokoll, das diese sequenziert, beschrieben. Einige nicht einschränkende Beispiele von herkömmlichen und Standard-Schnittstellen sind SCSCI (Small Computer System Interface), SAS (Serial Attached SCSI), und SATA (Serial ATA).
  • Ein SSD 102 weist eine Steuerung 112 auf, die eine Elektronik enthält, die nicht flüchtige Speicherkomponenten (z. B. NAND-Flash) zu dem Host überbrückt, wie den nicht flüchtigen Speicher 120a, 120b, 120n mit der Host-Vorrichtung 104. Die Steuerung umfasst typischerweise einen eingebetteten Prozessor, der den Code auf Firmware-Ebene ausführt.
  • Die Steuerung 112 weist eine Schnittstelle mit dem nicht flüchtigen Speicher 120a, 120b, 120n über den Adressierungsfunktionsblock 114 auf. Die Adressierungsfunktion 114 arbeitet zum Beispiel zum Verwalten von Mappings zwischen logischen Blockadressen (LBA) von dem Host 104 zu einer entsprechenden physikalischen Blockadresse des SSD 102, nämlich dem nicht flüchtigen Speicher 120a, 120b, 120n des SSD 102. Da die nicht flüchtige Speicherseite und die Host-Abschnitte unterschiedliche Größen aufweisen, muss ein SSD eine Datenstruktur bauen und halten, die das Übersetzen zwischen den von dem Host in den Abschnitt geschriebenen Daten oder das Lesen von Daten aus dem Abschnitt und der physikalischen nicht flüchtigen Speicherseite ermöglicht, auf denen die Daten zurzeit angeordnet sind. Diese Tabellenstruktur oder „Mapping” kann für eine Sitzung in dem flüchtigen Speicher 122 des SSD aufgebaut und aufrecht erhalten werden, wie ein DRAM oder eine andere lokale flüchtige Speicherkomponente, auf welche die Steuerung 112 und Adressierung 114 zugreifen können.
  • Die Adressierung 114 interagiert außer mit dem nicht flüchtigen Speicher 120a, 120b, 120n zusätzlich mit dem Datenpuffer-Zwischenspeicher 116 und dem Fehlerkorrekturcode (ECC) 118. Der Datenpuffer-Speicher 116 eines SSD 102 kann bei nicht einschränkenden Ausführungsformen SRAM oder DRAM als Zwischenspeicher verwenden. Der Datenpuffer-Zwischenspeicher 116 dient als Puffer- oder Staging-Bereich für die Datenübertragung zu und von den nicht flüchtigen Speicherkomponenten und dient als Zwischenspeicher zum Beschleunigen künftiger Anforderungen nach zwischengespeicherten Daten. Der Datenpuffer-Zwischenspeicher 116 ist typischerweise mit dem flüchtigen Speicher implementiert, sodass die darin gespeicherten Daten nicht permanent in dem Zwischenspeicher gespeichert sind, d. h. die Daten nicht persistent sind.
  • Der ECC 118 ist ein System zum Hinzufügen redundanter Daten oder Paritätsdaten zu einer Mitteilung, sodass diese von einem Empfänger sogar dann wiederhergestellt werden kann, wenn eine Reihe von Fehlern eingegeben wurde, entweder während des Übertragungsprozesses oder beim Speichern.
  • Schließlich weist das SSD 102 einen oder mehrere nicht flüchtige Speicherkomponenten 120a, 120b, 120n auf. Bei einem nicht einschränkendem Beispiel können die nicht flüchtigen Speicherkomponenten 120a, 120b, 120n als Flash-Speicher (z. B. NAND- oder NOR-Flash) oder als andere Typen Festkörperspeicher implementiert sein, die zurzeit oder in Zukunft zur Verfügung stehen. Die nicht flüchtigen Speicherkomponenten 120a, 120b, 120n sind die echten speicherelektronischen Komponenten, auf denen die Daten persistent gespeichert werden. Die nicht flüchtigen Speicherkomponenten 120a, 120b, 120n des SSD 102 können analog zu den Festplatten von Festplattenlaufwerk-Speichervorrichtungen (HDD-Speichervorrichtungen) angesehen werden.
  • Zusätzlich zu der SSD-Speichervorrichtung können Ausführungsformen der Erfindung auch zum Verwalten einer HDD-Speichervorrichtung verwendet werden. Zum Beispiel kann eine generische HDD-Architektur ein HDD umfassen, das kommunikativ mit einer Host-Vorrichtung über eine primäre Kommunikationsschnittstelle verbunden ist, ähnlich wie bei der SSD-Konfiguration 100 auf 1, bei der das SSD 102 mit dem Host 104 über eine primäre Kommunikationsschnittstelle 106 verbunden ist. Ferner weist das HDD eine Steuerung mit Firmware auf, die kommunikativ mit einem flüchtigen Speicher verbunden ist, ähnlich wie die Steuerung 112 und der flüchtige Speicher 122 des SSD 102. Der Vergleich zwischen den HDD-Komponenten und SSD-Komponenten ist als Konzept und nicht als identisch zu verstehen. Daher sei darauf hingewiesen, dass die HDD-Steuerungen anders als die SSD-Steuerung 112 sind, und ausgestaltet sind, um einige unterschiedliche sowie einige ähnliche Funktionen auszuführen. Sowohl HDD als auch SSD umfassen jedoch eine Steuerung mit darin eingebetteter/codierter Firmware, die mit einer Form von flüchtigem Speicher kommuniziert, zum Beispiel einem DRAM.
  • EINFÜHRUNG
  • Ausführungsformen der Erfindung werden nun mit Bezug auf Techniken zum Retten von Ereignisnachverfolgungsinformationen in einem Stromausfall-Unterbrechungszenarium (PLI-Szenarium) beschrieben. Die Ausführungsformen können für Festkörperlaufwerk-Speichervorrichtungen (SSD-Speichervorrichtungen) und Festplattenlaufwerk-Speichervorrichtungen (HDD-Speichervorrichtungen) verwendet werden und darin implementiert sein. Entsprechend ermöglicht die Verwendung dieser Techniken den Erhalt eines nutzbaren Trace von dem Kunden-HDD- oder -SSD-Laufwerk mithilfe eines einzelnen Speicherauszugs und verhindert, dass der Kunde das Laufwerk ins Werk zur Analyse einsenden muss. Die Rettung von Ereignisnachverfolgungsinformationen ist typischerweise bei nicht einschränkenden Beispielen für die Firmware-Entwicklung und Laufwerkvalidierungs- und -qualifizierungsprüfungen relevant und anwendbar.
  • Ein herkömmlicher Code-Debugging-Prozess für eingebettete Systeme ist im Allgemeinen das Durchführen eines Speicherauszugs, der eine Abbildung des Status des internen Systemspeichers wie eines Anweisungsspeichers, Datenspeichers, DRAM und dergleichen ist. Grundsätzlich würde diese Abbildung den Status des Systems bereitstellen, den ein Entwickler oder Debugger dazu verwenden kann, um ein Problem innerhalb des Systems zu verstehen. Solche Speicherauszüge werden typischerweise entweder periodisch oder als Reaktion auf ein Unterbrechungsereignis durchgeführt.
  • Eine relativ neue Klasse von Problemen ist, dass ein Firmware-Entwickler die Firmware benötigt, um ein PLI-Ereignis und eine entsprechende Reaktion und Wiederherstellung zu unterstützen. Zum Beispiel würde eine Hilfe für ein PLI-Ereignis normalerweise das Handhaben von „dirty” Schreibdaten benötigen, die schreibzwischengespeichert wurden und von dem Host bereits anerkannt wurden, aber noch nicht in den nicht flüchtigen Medien gespeichert wurden. Zusätzlich besteht bei SSD der Bedarf nach dem Speichern von Indirektionsdatentabellen, die logische Datenadressen an physischen Speicherorten mappen. PLI-Ereignisse sind vorübergehend und unerwartet wodurch sich der entsprechende Support für solche Ereignisse als ein nicht trivialer und herausfordernder Prozess darstellt. Daher reagiert die Firmware im ersten Augenblick nicht immer optimal auf ein PLI-Ereignis.
  • Entsprechend sind die Firmwarenachverfolgungsinformationen eines der wertvolleren Debug-Tools für einen Entwickler. Die Ereignisnachverfolgungsinformationen sind mit einem Log verknüpft, das Ausführungsinformation im Zusammenhang mit den vorherigen hunderten oder tausenden von ausgeführten Befehlen auflistet. Die Nachverfolgungsinformationen können zum Beispiel die Identifizierung der letzten ausgeführten Codelinie, Codevariablen und dergleichen beinhalten, die allesamt wichtige Informationen für einen Debugger darstellen. Die Speicherauszüge priorisieren jedoch typischerweise Firmware-Datenstrukturen und möglicherweise Benutzerdaten, die Nachverfolgungsinformationen werden hingegen als Informationen von geringerer Priorität zum Ausziehen aus einem System bei Systemfehler behandelt.
  • Daher können Nachverfolgungsinformationen niemals persistent gespeichert werden, weil der kurzfristig aufrecht erhaltene Strom, der zum Verarbeiten verfügbar ist, wenn ein System einen Stromausfall erleidet, nicht einmal ausreichen kann, um die Nachverfolgungsinformationen abzurufen.
  • Wie beschrieben sind einige Nachteile konventioneller Speicherauszugsprozesse die regelmäßige Durchführung von Speicherauszügen und die Priorisierung von Datenstrukturen und Benutzerdaten. Außerdem kann es vorkommen, dass Systemfehler bei einer oder mehreren unterbrochenen Sequenzen deaktiviert werden und daher keine Statusdaten persistent gespeichert werden.
  • DYNAMISCHER SCHREIB-LESESPEICHER (DRAM)
  • Ein DRAM besitzt einige interessante inhärente physische Eigenschaften. Obgleich er als flüchtig angesehen wird, weist der DRAM über einen relativ kurzen Zeitraum hinweg tatsächlich einige Merkmale eines nicht flüchtigen Speichers auf. Das heißt, dass nach dem Aus- und Einschalten eines Systems der interne DRAM seinen Status einen gewissen Zeitraum ohne Strom halten kann, zum Beispiel möglicherweise bis zu 30 Sekunden bis hin zu einigen Minuten. Einige Bits können fallengelassen oder vertauscht werden, aber die Daten in dem DRAM sind immer noch relativ intakt für den Zeitraum unverzüglich nach einem Stromausfall. Ferner kann ein Steuerungsspeicherverwalter ECC-Schutz für den DRAM einsetzen (Einzelbitkorrektur, Doppelbiterkennung), der einige Fehler in den Daten korrigieren kann.
  • VERFAHREN ZUM RETTEN VON EREIGNISNACHVERFOLGUNGSINFORMATIONEN
  • Basierend auf der vorstehenden Eigenschaft des DRAM kann während eines Einschaltens nach einem Ausschalten, wobei das Einschalten normalerweise innerhalb weniger Sekunden nach Ausschalten erfolgt, der DRAM-Status im Wesentlichen in der Zeit bis zu dem Zeitpunkt des Ausschaltens und zu der letzten DRAM-Auffrischung zurückgehen. Falls die DRAM-Statusinformationen, die nach einem unbeabsichtigten Stromausfall gerettet werden, Ereignisnachverfolgungsinformationen enthielten, könnten solche Informationen eine wertvolle Debug-Ressource bereitstellen. Zum Beispiel können solche Ereignisnachverfolgungsinformationen verwendet werden, um zu verstehen und zu debuggen, wie Firmware auf bestimmte Ereignisse reagiert, nämlich auf Fehlerereignisse wie einen Stromausfall-Unterbrechungsfehler.
  • 2 ist ein Flussdiagramm, das ein Verfahren zum Retten von Ereignisnachverfolgungsinformationen bei einem Stromausfall-Unterbrechungsszenarium (PLI-Szenarium) gemäß einer Ausführungsform der Erfindung darstellt. Der in 2 dargestellte Prozess kann in einem SSD wie SSD 102 (1) implementiert werden. Genauer kann gemäß einer Ausführungsform der Prozess aus 2 in der Steuerung 112 (1) des SSD 102 implementiert werden. Die Prozesslogik kann als analoge oder digitale Hardwareschaltung in dem SSD 102 implementiert sein oder vorzugsweise als Firmware-Anweisungen, die von einem Prozessor ausgeführt werden, wie von der CPU 204 (2) oder einer MPU im SSD 102.
  • Bei Block 202 aus 2 werden die Ereignisnachverfolgungsinformationen aus dem flüchtigen Speicher in einen zweiten Speicher kopiert. Zum Beispiel werden Ereignisnachverfolgungsinformationen von dem flüchtigen Speicher 122 (1) in einen dedizierten Abschnitt des flüchtigen Speichers 122 oder in einen oder mehrere nicht flüchtige Speicher 120a, 120b, 120n (1) kopiert. Das Kopieren von Ereignisnachverfolgungsinformationen von dem flüchtigen Speicher in den zweiten Speicher wird beim Einschalten durchgeführt, das in einer Ausführungsform als Reaktion auf ein Stromausfall-Unterbrechungsereignis folgt. Dies ist ein optimaler Zeitpunkt zum Kopieren der Ereignisnachverfolgungsinformationen in den Speicher, bevor die Daten nach dem als Reaktion erfolgenden Einschalten zurückgesetzt oder überschrieben werden, weil die aktuellsten Informationen erneut erfasst werden, d. h. jede Bearbeitung widerspiegelt, die seit dem letzten periodischen Speichern von Traces stattgefunden hat. Weiterhin findet das Kopieren dieser Ereignisnachverfolgungsinformationen bei einem „kalten” Reset statt, bei zuvor abgeschaltetem Strom, statt bei einem „warmen” Reset, das nicht als Reaktion auf ein Stromausfall-Szenarium erfolgt.
  • Bei Block 204 wird ein beschädigter Status der Kontextrekonstruktionsdaten, die in dem nicht flüchtigen Speicher gespeichert sind, erkannt. Typischerweise versucht die Firmware bei einer Einschaltabfolge, ihren Status basierend auf den Informationen, die von den nicht flüchtigen oder persistenten Medien verfügbar sind, zu rekonstruieren. Dieser Prozess wird hierin als Kontextrekonstruktion bezeichnet, weil die Firmware versucht, den Kontext oder Status der Ausführung zum Zeitpunkt des Fehlers zu rekonstruieren. Ferner ist die Firmware zum Erkennen eines beschädigten Datenstatus konfiguriert, der programmiert wird, um für Rekonstruktionszwecke verwendet zu werden. Bei nicht einschränkenden Beispielen kann die Firmware erkennen, dass sie die Indirektionstabellen (LBA) nicht vollständig rekonstruieren kann oder dass „dirty” Schreibdaten, die nicht in den persistenten Speicher geschrieben wurden, oder dergleichen vorliegen.
  • Bei Block 206 wird eine Anzeige des beschädigten Status gesetzt. Zum Beispiel kann beim Erkennen eines beschädigten Datenstatus die Firmware eine Flag oder ein Bit setzen, die bzw. das einen beschädigten Status anzeigt. Durch Setzen dieser Anzeige teilt die Firmware dem Host effektiv den beschädigten Status mit, weil der Host auf die Anzeige als gesetzt zugreifen und diese lesen kann. Zum Beispiel kann ein speichervorrichtungsexternes Programm (z. B. ein Test- oder Validierungsprogramm) die Flag lesen und die Ereignisnachverfolgungsinformationen seit dem Zeitpunkt des PLI-Ereignisses von der Speichervorrichtung für den Host anfordern. Es sei darauf hingewiesen, dass dies kein guter Zeitpunkt zum Speichern der Ereignisnachverfolgungsinformationen in dem nicht flüchtigen Speicher ist, weil der Speicherprozess den derzeitigen Informationsstatus tatsächlich verändern kann.
  • Bei Block 208 werden die Ereignisnachverfolgungsinformationen als Reaktion auf eine Anforderung von dem Host oder einem Anwendungsprogramm, das auf dem Host ausgeführt wird, weitergeleitet, zum Beispiel als Reaktion auf eine Anzeige eines beschädigten Status. Diese Informationen können durch Verwenden der herkömmlichen Speichervorrichtungsschnittstelle (z. B. SAS) weitergeleitet werden, oder über eine Seitenband-Debug-Schnittstelle.
  • FEHLERTOLERANTES DEBUG-TOOL
  • Für einen Debug-Prozess kann im Wesentlichen jede beliebige Menge von zulässig gebildeten Nachverfolgungsinformationen für das Bereitstellen eines gewissen Einblicks in das zu analysierende Problem hilfreich sein. Je mehr zulässig gebildete Nachverfolgungsinformationen also verfügbar sind, desto besser kann die Problemanalyse durchgeführt werden.
  • Gemäß einer Ausführungsform können die Ereignisnachverfolgungsinformationen an ein fehlertolerantes Debug-Tool weitergegeben werden, das auf einem Host ausgeführt werden kann. Bei dem Debug-Tool handelt es sich um ein Nachbearbeitungs-Tool, das Ereignisnachverfolgungsdaten parst und analysiert. Obgleich die Ereignisnachverfolgungsinformationen im Allgemeinen perfekt gebildet sind, sollte ein robustes Debug-Tool für missgebildete Ereignisnachverfolgungsinformationen und -Zeichen tolerant sein. Ein solches Debug-Tool ist fehlertolerant, zumindest teilweise, sodass das Tool seine Bearbeitung auch dann fortsetzt, wenn es beschädigte Daten findet, und sollte intelligente Annahmen über missgebildete Informationen zum Erreichen eines „bestmöglichen Ratens” vornehmen können, wie die missgebildete Information bei zulässiger Bildung gewesen wäre. Alternativ und möglicherweise typischer werden die Nachverfolgungsinformationen nach deren Erhalt (normalerweise durch einen qualifizierten Techniker an dem Kundenlaufwerk) an das SSD-Entwicklungsteam weitergeleitet und offline geparst.
  • Gemäß einer Ausführungsform umfasst das fehlertolerante Debug-Tool eine Inferenz-Engine, die zum Ableiten eines zulässigen Trace-Zeichens aus einem missgebildeten Trace-Zeichen konfiguriert ist. Diese Inferenz basiert auf der Annahme oder Erkenntnis, dass jedes Bit, das Ereignisnachverfolgungsinformationen repräsentiert, normalerweise von einer „1” zu einer „0” zerfällt, während das System und der konstituierende flüchtige Speicher aufgrund des PLI-Ereignisses Energie verlieren. Die exakte Implementierung einer solchen Fehlertoleranz in ein Debug-Tool variiert basierend auf zahlreichen Faktoren, wie basierend auf der Implementierung der entsprechenden Firmware, basierend auf der Bildung der entsprechenden Ereignisnachverfolgungsinformationen und basierend auf der Implementierung des Debug-Tools selbst und dergleichen.
  • In der vorgenannten Spezifikation wurden Ausführungsformen der Erfindung mit Bezug auf zahlreiche spezifische Details beschrieben, die je nach Implementierung unterschiedlich sein können. Daher ist der einzige und wahre Indikator dafür, was die Erfindung ist, und was von den Anmeldern als Erfindung bezweckt wird, der Satz von Ansprüchen, die aus dieser Anmeldung hervorgehen, in der spezifischen Form, in der diese Ansprüche vorliegen, und schließt jede mögliche nachfolgende Korrektur ein. Sämtliche Definitionen, die hierin ausdrücklich für Begriffe gesetzt wurden, die in den Ansprüchen enthalten sind, führen die Bedeutung solcher Begriffe, wie in den Ansprüchen verwendet, an. Daher kann keine Einschränkung, Element, Eigenschaft, Merkmal, Vorteil oder Attribut, die nicht ausdrücklich in einem Anspruch zitiert werden, den Umfang dieses Anspruchs auf keine Weise einschränken. Die Beschreibung und die Zeichnungen sind dementsprechend im veranschaulichenden und nicht im einschränkenden Sinne zu verstehen.

Claims (20)

  1. Verfahren, umfassend: nach Einschalten als Reaktion auf ein Stromausfall-Unterbrechungsereignis in einer Speichervorrichtung, Kopieren von Ereignisnachverfolgungsinformationen aus einem ersten flüchtigen Speicher in einen zweiten Speicher; Erkennen eines beschädigten Status von Kontextrekonstruktionsdaten, die in einem nicht flüchtigen Speicher gespeichert sind; und Setzen einer Anzeige des beschädigten Status.
  2. Verfahren nach Anspruch 1, ferner umfassend: als Reaktion auf eine Anforderung vom Host, Weiterleiten der Ereignisnachverfolgungsinformationen an den Host.
  3. Verfahren nach Anspruch 1, wobei der erste flüchtige Speicher ein dynamischer Schreib-Lesespeicher (DRAM) ist.
  4. Verfahren nach Anspruch 1, wobei der zweite Speicher der gleiche Speicher ist wie der erste flüchtige Speicher.
  5. Verfahren nach Anspruch 1, wobei der zweite Speicher ein NAND-Flash-Speicher ist.
  6. Verfahren nach Anspruch 1, ferner umfassend: als Reaktion auf eine Anforderung vom Host, Weiterleiten der Ereignisnachverfolgungsinformationen an den Host für die Verwendung mit einem fehlertoleranten Debug-Tool, das eine Inferenz-Engine umfasst, die zum Ableiten eines zulässigen Trace-Zeichens aus einem beschädigten Trace-Zeichen konfiguriert ist.
  7. Verfahren nach Anspruch 1, ferner umfassend: als Reaktion auf eine Anforderung vom Host, Weiterleiten der Ereignisnachverfolgungsinformationen an ein fehlertolerantes Debug-Tool, das auf dem Host ausgeführt wird; wobei das fehlertolerante Debug-Tool eine Inferenz-Engine umfasst, die zum Ableiten eines zulässigen Trace-Zeichens aus einem beschädigten Trace-Zeichen konfiguriert ist.
  8. Verfahren nach Anspruch 7, wobei die Inferenz-Engine zum Ableiten eines zulässigen Trace-Zeichens aus einem beschädigten Trace-Zeichen basierend auf einer Annahme konfiguriert ist, dass jedes Bit, das die Ereignisnachverfolgungsinformationen repräsentiert, von „1” zu „0” zerfällt, wenn der erste flüchtige Speicher aufgrund des Stromausfall-Unterbrechungsereignisses Energie verliert.
  9. Festkörperlaufwerk-Steuerung, die eine oder mehrere Anweisungsabfolgen speichert, die bei Ausführung durch einen oder mehrere Prozessoren die Durchführung von Folgendem bewirken: Kopieren von Ereignisnachverfolgungsinformationen aus einem ersten flüchtigen Speicher in einen zweiten Speicher nach Einschalten als Reaktion auf ein Stromausfall-Unterbrechungsereignis in einer Speichervorrichtung; Erkennen eines beschädigten Status von Kontextrekonstruktionsdaten, die in einem nicht flüchtigen Speicher gespeichert sind; und Setzen einer Anzeige des beschädigten Status.
  10. Steuerung nach Anspruch 9, wobei die eine oder die mehreren Anweisungsabfolgen bei Ausführung durch einen oder mehrere Prozessoren die Durchführung von Folgendem bewirken: Weiterleiten der Ereignisnachverfolgungsinformationen an den Host als Reaktion auf eine Anforderung von dem Host.
  11. Steuerung nach Anspruch 9, wobei der erste flüchtige Speicher ein dynamischer Schreib-Lesespeicher (DRAM) ist.
  12. Steuerung nach Anspruch 9, wobei die eine oder die mehreren Anweisungsabfolgen bei Ausführung durch einen oder mehrere Prozessoren die Durchführung von Folgendem bewirken: als Reaktion auf eine Anforderung von dem Host, Weiterleiten der Ereignisnachverfolgungsinformationen an den Host für die Verwendung mit einem fehlertoleranten Debug-Tool, das eine Inferenz-Engine umfasst, die zum Ableiten eines zulässigen Trace-Zeichens aus einem beschädigten Trace-Zeichen konfiguriert ist.
  13. Steuerung nach Anspruch 9, wobei die eine oder die mehreren Anweisungsabfolgen bei Ausführung durch einen oder mehrere Prozessoren die Durchführung von Folgendem bewirken: als Reaktion auf eine Anforderung von dem Host, Weiterleiten der Ereignisnachverfolgungsinformationen an ein fehlertolerantes Debug-Tool, das auf dem Host ausgeführt wird; wobei das fehlertolerante Debug-Tool eine Inferenz-Engine umfasst, die zum Ableiten eines legitimen Trace-Zeichens aus einem beschädigten Trace-Zeichen konfiguriert ist.
  14. Speichervorrichtung, umfassend: eine Kommunikationsschnittstelle zum Kommunizieren mit einem Host; ein oder mehrere nicht flüchtige Medien; einen flüchtigen Speicher; und eine Steuerung, die eine oder mehrere Anweisungsabfolgen speichert, die bei Ausführung durch einen oder mehrere Prozessoren die Durchführung von Folgendem bewirken: Kopieren von Ereignisnachverfolgungsinformationen aus dem flüchtigen Speicher in einen zweiten Speicher nach Einschalten als Reaktion auf ein Stromausfall-Unterbrechungsereignis in einer Speichervorrichtung; Erkennen eines beschädigten Status von Kontextrekonstruktionsdaten, die in den nicht flüchtigen Medien gespeichert sind; und Setzen einer Anzeige des beschädigten Status.
  15. Speichervorrichtung nach Anspruch 14, wobei die eine oder die mehreren Anweisungsabfolgen bei Ausführung durch einen oder mehrere Prozessoren die Durchführung von Folgendem bewirken: als Reaktion auf eine Anforderung von dem Host, Weiterleiten der Ereignisnachverfolgungsinformationen an den Host.
  16. Speichervorrichtung nach Anspruch 14, wobei der flüchtige Speicher ein dynamischer Schreib-Lesespeicher (DRAM) ist.
  17. Speichervorrichtung nach Anspruch 14, wobei der zweite Speicher der flüchtige Speicher ist.
  18. Speichervorrichtung nach Anspruch 14, wobei der zweite Speicher ein NAND-Flash-Speicher ist.
  19. Speichervorrichtung nach Anspruch 14, wobei die eine oder die mehreren Anweisungsabfolgen bei Ausführung durch einen oder mehrere Prozessoren die Durchführung von Folgendem bewirken: als Reaktion auf eine Anforderung von dem Host, Weiterleiten der Ereignisnachverfolgungsinformationen an den Host für die Verwendung mit einem fehlertoleranten Debug-Tool; wobei das fehlertolerante Debug-Tool eine Inferenz-Engine umfasst, die zum Ableiten eines zulässigen Trace-Zeichens aus einem missgebildeten Trace-Zeichen konfiguriert ist.
  20. Speichervorrichtung nach Anspruch 19, wobei die Inferenz-Engine zum Ableiten eines zulässigen Trace-Zeichens aus einem missgebildeten Trace-Zeichen basierend auf einer Annahme konfiguriert ist, dass jedes Bit, das die Ereignisnachverfolgungsinformationen repräsentiert, von „1” zu „0” zerfällt, wenn der erste flüchtige Speicher aufgrund des Stromausfall-Unterbrechungsereignisses Energie verliert.
DE102013021679.6A 2012-12-18 2013-12-18 Rettung von Ereignisnachverfolgungsinformationen bei Stromausfall-Unterbrechungsszenarien Pending DE102013021679A1 (de)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US13/719,209 US9690642B2 (en) 2012-12-18 2012-12-18 Salvaging event trace information in power loss interruption scenarios
US13/719,209 2012-12-18

Publications (1)

Publication Number Publication Date
DE102013021679A1 true DE102013021679A1 (de) 2014-06-18

Family

ID=50030823

Family Applications (1)

Application Number Title Priority Date Filing Date
DE102013021679.6A Pending DE102013021679A1 (de) 2012-12-18 2013-12-18 Rettung von Ereignisnachverfolgungsinformationen bei Stromausfall-Unterbrechungsszenarien

Country Status (5)

Country Link
US (1) US9690642B2 (de)
JP (1) JP2014120179A (de)
KR (1) KR20140079285A (de)
DE (1) DE102013021679A1 (de)
GB (1) GB2511391B (de)

Families Citing this family (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10474618B2 (en) * 2014-09-04 2019-11-12 Western Digital Technologies, Inc. Debug data saving in host memory on PCIE solid state drive
US9836108B2 (en) 2014-09-10 2017-12-05 Toshiba Memory Corporation Memory system and controller
US10055377B2 (en) 2016-02-24 2018-08-21 Western Digital Technologies, Inc. Using a proprietary framework on a standards-based embedded device
US9946489B2 (en) 2016-07-27 2018-04-17 Western Digital Technologies, Inc. Multi-stream journaled replay
US10678924B2 (en) * 2016-08-10 2020-06-09 Qualcomm Incorporated Hardware-based software-resilient user privacy exploiting ephemeral data retention of volatile memory
CN106951354B (zh) * 2017-03-20 2020-08-18 湖南磐石科技有限公司 固态硬盘及其故障检测装置和方法
KR102467842B1 (ko) 2017-10-13 2022-11-16 삼성전자주식회사 인스트럭션을 실행하는 코어 및 그것을 포함하는 시스템
KR102415218B1 (ko) * 2017-11-24 2022-07-01 에스케이하이닉스 주식회사 메모리 시스템 및 이의 동작 방법
US20190042460A1 (en) * 2018-02-07 2019-02-07 Intel Corporation Method and apparatus to accelerate shutdown and startup of a solid-state drive
US10636495B2 (en) 2018-06-12 2020-04-28 Western Digital Technologies, Inc. Adjustable read retry order based on decoding success trend
CN109086168A (zh) * 2018-07-13 2018-12-25 深圳忆联信息系统有限公司 一种利用硬件备份固态硬盘写速度的方法及其系统
CN110989918B (zh) 2018-10-03 2023-03-28 慧荣科技股份有限公司 写入控制方法以及数据存储装置及其控制器
CN110990175B (zh) 2018-10-03 2023-03-14 慧荣科技股份有限公司 错误处置方法以及数据存储装置及其控制器

Family Cites Families (23)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH02151913A (ja) 1988-12-02 1990-06-11 Meidensha Corp 電源断検出方法
US5267242A (en) * 1991-09-05 1993-11-30 International Business Machines Corporation Method and apparatus for substituting spare memory chip for malfunctioning memory chip with scrubbing
US6502208B1 (en) * 1997-03-31 2002-12-31 International Business Machines Corporation Method and system for check stop error handling
US6226728B1 (en) 1998-04-21 2001-05-01 Intel Corporation Dynamic allocation for efficient management of variable sized data within a nonvolatile memory
US7533214B2 (en) * 2002-02-27 2009-05-12 Microsoft Corporation Open architecture flash driver
DE10227255B4 (de) 2002-06-19 2008-06-26 Hyperstone Gmbh Verfahren zur Wiederherstellung von Verwaltungsdatensätzen eines blockweise löschbaren Speichers
US6889341B2 (en) * 2002-06-28 2005-05-03 Hewlett-Packard Development Company, L.P. Method and apparatus for maintaining data integrity using a system management processor
US7181611B2 (en) * 2002-10-28 2007-02-20 Sandisk Corporation Power management block for use in a non-volatile memory system
US6988175B2 (en) 2003-06-30 2006-01-17 M-Systems Flash Disk Pioneers Ltd. Flash memory management method that is resistant to data corruption by power loss
US7181672B2 (en) 2003-09-25 2007-02-20 Intel Corporation Method, system, and apparatus for supporting power loss recovery in ECC enabled memory devices
US20050138302A1 (en) * 2003-12-23 2005-06-23 Intel Corporation (A Delaware Corporation) Method and apparatus for logic analyzer observability of buffered memory module links
US7308609B2 (en) * 2004-04-08 2007-12-11 International Business Machines Corporation Method, data processing system, and computer program product for collecting first failure data capture information
US7424643B2 (en) 2004-12-30 2008-09-09 Intel Corporation Device, system and method for power loss recovery procedure for solid state non-volatile memory
US7610445B1 (en) * 2005-07-18 2009-10-27 Palm, Inc. System and method for improving data integrity and memory performance using non-volatile media
JP2007286937A (ja) * 2006-04-18 2007-11-01 Hitachi Ltd ストレージ装置及びストレージ装置の電源障害管理方法
JP2008004011A (ja) 2006-06-26 2008-01-10 Canon Inc 不揮発メモリのデータ復旧方法を備えたコンピュータ装置
JP2009122819A (ja) 2007-11-13 2009-06-04 Fuji Electric Systems Co Ltd メモリバックアップ装置
US8706950B2 (en) 2008-03-01 2014-04-22 Kabushiki Kaisha Toshiba Memory system
JP2010004293A (ja) 2008-06-19 2010-01-07 Ricoh Co Ltd 画像形成装置、画像形成装置の書き込みエラー検知方法
US8169825B1 (en) 2008-09-02 2012-05-01 Anobit Technologies Ltd. Reliable data storage in analog memory cells subjected to long retention periods
US9003118B2 (en) 2009-01-09 2015-04-07 Dell Products L.P. Systems and methods for non-volatile cache control
JP2012078941A (ja) 2010-09-30 2012-04-19 Toshiba Corp 情報処理装置及びキャッシュ制御方法
CN103399813B (zh) 2013-06-30 2016-05-11 惠州市德赛西威汽车电子股份有限公司 一种基于Trace信息的嵌入式系统离线跟踪分析方法

Also Published As

Publication number Publication date
KR20140079285A (ko) 2014-06-26
GB2511391B (en) 2015-02-18
GB201321990D0 (en) 2014-01-29
US9690642B2 (en) 2017-06-27
GB2511391A (en) 2014-09-03
JP2014120179A (ja) 2014-06-30
US20140173357A1 (en) 2014-06-19

Similar Documents

Publication Publication Date Title
DE102013021679A1 (de) Rettung von Ereignisnachverfolgungsinformationen bei Stromausfall-Unterbrechungsszenarien
DE102018105427A1 (de) Beibehalten von Daten bei einer Stromabschaltung
DE102019117787B4 (de) Speichervorrichtung und Betriebsverfahren derselben
US9158661B2 (en) Enhanced debugging for embedded devices
DE102016010277A1 (de) Verfahren und systeme zum verbessern von speicher-journaling
DE102020112512A1 (de) Datenspeichergerät und Betriebsverfahren dafür
DE102011075814B4 (de) Speicherpuffer mit zugänglicher Information nach einem Schreibfehler
DE112019000215T5 (de) Wiederherstellungshilfe mit ausgefallener Speichervorrichtung
DE102008012337A1 (de) Programmcode-Trace-Signatur
DE102013020269A1 (de) Umordnen des Zurückschickens für einen Host-Lesebefehl basierend auf der Zeitschätzung des Abschlusses eines Flash-Lesebefehls
DE102013112900A1 (de) Verfahren und System zum Bereitstellen einer intelligenten Speicherarchitektur
DE102018105440A1 (de) Leistungsausfallbehandlung unter Verwendung von Stoppbefehlen
DE112014005570T5 (de) Deaktivieren von Seiten in einem Nand-Flash-Speicher-System
DE102020122182A1 (de) Virtuelle-maschine-replikation und -migration
CN108089971B (zh) 基于嵌入式实时系统的日志服务方法和系统
DE112017005637T5 (de) Verfahren und System zur Schreibverstärkungsanalyse
DE102007058418A1 (de) Fehlerkorrektur in Speicherbauteilen
DE112007003015T5 (de) Verfahren und Vorrichtung zur Cache-gestützten Fehlerdetektion und -korrektur in einem Speicher
DE102006048856A1 (de) Reparatur einer Halbleiterspeichervorrichtung über einen externen Befehl
DE112017007690T5 (de) Verfahren und vorrichtungen zur durchführung einer fehlerdetektion und/oder korrektur in einer speichervorrichtung
CN106682162A (zh) 日志管理方法及装置
DE102017120826A1 (de) Verfahren und Vorrichtung zum Überwachen von Speicher unter Verwendung einer Hintergrundmedienabtastung
DE102021107443A1 (de) Dynamische speichersteuerung und verfahren zur verwendung damit
DE112019000158T5 (de) Bereichskollisions-crawler für logische blockadressierung
DE102021114459A1 (de) Frühzeitiger übergang in den niedrigleistungsmodus für datenspeicherungsvorrichtungen

Legal Events

Date Code Title Description
R082 Change of representative

Representative=s name: MEWBURN ELLIS LLP, DE

R081 Change of applicant/patentee

Owner name: WESTERN DIGITAL TECHNOLOGIES, INC. (N.D.GES.D., US

Free format text: FORMER OWNER: HGST NETHERLANDS B.V., AMSTERDAM, NL

R082 Change of representative

Representative=s name: MEWBURN ELLIS LLP, DE

R012 Request for examination validly filed
R082 Change of representative

Representative=s name: MURGITROYD GERMANY PATENTANWALTSGESELLSCHAFT M, DE