DE112019005361T5 - Protokollierung von verzögerten schreibfehlern - Google Patents

Protokollierung von verzögerten schreibfehlern Download PDF

Info

Publication number
DE112019005361T5
DE112019005361T5 DE112019005361.2T DE112019005361T DE112019005361T5 DE 112019005361 T5 DE112019005361 T5 DE 112019005361T5 DE 112019005361 T DE112019005361 T DE 112019005361T DE 112019005361 T5 DE112019005361 T5 DE 112019005361T5
Authority
DE
Germany
Prior art keywords
storage device
controller
log
lba areas
data
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
DE112019005361.2T
Other languages
English (en)
Inventor
Rajeev Nagabhirava
Avichay Haim Hodes
Judah Gamliel Hahn
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 DE112019005361T5 publication Critical patent/DE112019005361T5/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/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0804Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches with main memory updating
    • 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
    • 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
    • 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/1471Saving, restoring, recovering or retrying involving logging of persistent data for recovery
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/0223User address space allocation, e.g. contiguous or non contiguous base addressing
    • G06F12/023Free address space management
    • G06F12/0238Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory
    • G06F12/0246Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory in block erasable memory, e.g. flash memory
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/10Address translation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0866Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches for peripheral storage systems, e.g. disk cache
    • G06F12/0868Data transfer between cache memory and other subsystems, e.g. storage devices or host systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2201/00Indexing scheme relating to error detection, to error correction, and to monitoring
    • G06F2201/82Solving problems relating to consistency
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/10Providing a specific technical effect
    • G06F2212/1028Power efficiency
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/10Providing a specific technical effect
    • G06F2212/1032Reliability improvement, data loss prevention, degraded operation etc
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/72Details relating to flash memory management
    • G06F2212/7201Logical to physical mapping or translation of blocks or pages
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

Abstract

Die vorliegende Offenbarung bezieht sich allgemein auf ein Verfahren und eine Vorrichtung zum Reduzieren der Energiemenge, die verwendet wird, um Daten innerhalb einer Speicherungsvorrichtung nach einem Leistungsverlustereignis in einen konsistenten Zustand zurückzubringen. Sobald an einer Hostvorrichtung ein Leistungsverlust auftritt und vor dem vollständigen Abschalten, wird ein Protokoll innerhalb des nichtflüchtigen Speichers (NVM) der Speicherungsvorrichtung erstellt. Das Protokoll enthält logische Blockadressen (LBAs), die Daten entsprechen, die einen Schreibfehler erfahren haben. Beim nächsten Einschaltvorgang wird das Protokoll überprüft, um zu sehen, ob LBAs vorhanden sind. Wenn LBAs im Protokoll vorhanden sind, können die Daten, die einen Schreibfehler erfahren haben, ordnungsgemäß in die Speicherungsvorrichtung geschrieben werden.

Description

  • QUERVERWEIS AUF VERWANDTE ANMELDUNG(EN)
  • Diese Anmeldung beansprucht die Priorität der US-Anmeldung Nr. 16/452.128 , eingereicht am 25. Juni 2019, die der Anmelderin zugeordnet ist und durch Bezugnahme in ihrer Gesamtheit hierin eingeschlossen ist.
  • HINTERGRUND DER OFFENBARUNG
  • Gebiet der Offenbarung
  • Ausführungsformen der vorliegenden Offenbarung beziehen sich im Allgemeinen auf ein Verfahren und eine Vorrichtung zum Reduzieren der Energiemenge, die verwendet wird, um Daten innerhalb einer Speicherungsvorrichtung nach einem Leistungsverlustereignis in einen konsistenten Zustand zurückzubringen.
  • Beschreibung des Stands der Technik
  • Um Speicherungsumgebungen hinsichtlich Kosten- und Merkmalsskalierung zu optimieren, entscheiden sich Nutzer einer hyperskalierten Speicherung zunehmend für Festkörpervorrichtungen (Solid State Devices, SSD) von Client-Güte in Serverumgebungen. Nutzer einer hyperskalierten Speicherung unterliegen Einschränkungen in Bezug auf den Schutz bei Leistungsverlust. Vorrichtungen von Unternehmensgüte schließen im Allgemeinen einen Satz Kondensatoren ein, um die Datenkohärenz während eines plötzlichen Leistungsverlusts aufrechtzuerhalten. Vorrichtungen von Client-Güte, die keine Kondensatoren aufweisen, bieten während eines plötzlichen Leistungsverlusts keine Garantie für in Bewegung befindliche Daten (data in flight). Vielmehr stellen Vorrichtungen von Client-Güte Steuerdaten wieder her und bauen nach dem nächsten Einschalten einen konsistenten Zustand wieder auf.
  • Vorrichtungen von Unternehmensgüte nutzen Leistung in den Kondensatoren, um jegliche in Bewegung befindliche Daten an NAND zu übergeben, aber da Vorrichtungen von Client-Güte kein solches Merkmal aufweisen, gehen in Bewegung befindliche Daten in Vorrichtungen von Client-Güte verloren. Die in Bewegung befindlichen Daten werden verworfen, und das NAND kann teilweise übergebene Daten einschließen. Derzeit gibt es kein Merkmal, das es einer Vorrichtung von Client-Güte ermöglicht, einen konsistenten Datensatz während eines unerwarteten Leistungsverlusts aufrechtzuerhalten. Vielmehr ist es die Verantwortung der Hostvorrichtung, nicht übergebene Transaktionen rückgängig zu machen.
  • Mehr Kondensatoren erscheinen natürlich als eine angemessene Lösung für Vorrichtungen von Client-Güte. Kondensatoren verteuern jedoch die Kosten einer Speicherungsvorrichtung erheblich. Zusätzlich reduzieren Kondensatoren die Attraktivität einer Vorrichtung von Client-Güte in einer Rechenzentrumsumgebung.
  • Was benötigt wird, ist ein Weg, um die Energiemenge zu reduzieren, die erforderlich ist, um Daten innerhalb einer Speicherungsvorrichtung nach einem Leistungsverlustereignis in einen konsistenten Zustand zurückzubringen, sodass Vorrichtungen von Client-Güte in einem Rechenzentrum verwendet werden können.
  • KURZDARSTELLUNG DER OFFENBARUNG
  • Die vorliegende Offenbarung bezieht sich allgemein auf ein Verfahren und eine Vorrichtung zum Reduzieren der Energiemenge, die verwendet wird, um Daten innerhalb einer Speicherungsvorrichtung nach einem Leistungsverlustereignis in einen konsistenten Zustand zurückzubringen. Sobald an einer Hostvorrichtung ein Leistungsverlust auftritt und vor dem vollständigen Abschalten, wird ein Protokoll innerhalb des nichtflüchtigen Speichers (NVM) der Speicherungsvorrichtung erstellt. Das Protokoll enthält logische Blockadressen (LBAs), die Daten entsprechen, die einen Schreibfehler erfahren haben. Beim nächsten Einschaltvorgang wird das Protokoll überprüft, um zu sehen, ob LBAs vorhanden sind. Wenn LBAs im Protokoll vorhanden sind, können die Daten, die einen Schreibfehler erfahren haben, ordnungsgemäß in die Speicherungsvorrichtung geschrieben werden.
  • In einer Ausführungsform weist eine Speicherungsvorrichtung auf: einen nichtflüchtigen Speicher; und eine Steuerung, die eingerichtet ist, um bei Erkennung eines Leistungsverlustereignisses LBA-Bereiche in ein Protokoll zu schreiben, das in dem nichtflüchtigen Speicher gespeichert ist, und die LBA-Bereiche einer Hostvorrichtung bereitzustellen.
  • In einer anderen Ausführungsform weist eine Speicherungsvorrichtung auf: Speichermittel; Mittel zum Schreiben von LBA-Bereichen in eine Protokollspeicherung in dem Speichermittel bei Erkennung eines Leistungsverlustereignisses; und Mittel zum Bereitstellen der LBA-Bereiche für eine Hostvorrichtung.
  • In einer anderen Ausführungsform weist eine Speicherungsvorrichtung auf: mindestens eine Speichervorrichtung, die eine Protokollseite für verzögerte Schreibfehler enthält; und eine Steuerung, die mit der mindestens einen Speichervorrichtung gekoppelt ist, wobei die Steuerung eingerichtet ist zum: Erkennen eines Leistungsverlustereignisses; Zählen aller abgeschlossenen Schreibbefehle, in denen keine Daten an die Speichervorrichtung übergeben wurden; Schreiben eines oder mehrerer LBA-Bereiche auf die Protokollseite, wobei der eine oder die mehreren LBA-Bereiche den Daten entsprechen, die nicht an die Speichervorrichtung übergeben wurden; und Liefern des einen oder der mehreren LBA-Bereiche an eine Hostvorrichtung.
  • Figurenliste
  • Zur Verdeutlichung der Art und Weise, wie die vorstehend angegebenen Merkmale der vorliegenden Offenbarung im Detail verstanden werden können, kann eine ausführlichere Beschreibung der Offenbarung, die vorstehend kurz zusammengefasst ist, unter Bezugnahme auf Ausführungsformen erfolgen, von denen einige in den beigefügten Zeichnungen veranschaulicht sind. Es ist jedoch zu beachten, dass in den beigefügten Zeichnungen nur typische Ausführungsformen dieser Offenbarung veranschaulicht sind und diese daher nicht als ihren Schutzumfang einschränkend anzusehen sind, da die Offenbarung andere ebenso wirksame Ausführungsformen zulassen kann.
    • 1 ist eine schematische Veranschaulichung einer Speicherungsvorrichtung, die mit einer Hostvorrichtung gekoppelt ist, gemäß einer Ausführungsform.
    • 2 ist eine schematische Veranschaulichung einer Speicherungsvorrichtung gemäß einer Ausführungsform.
    • 3 ist ein Flussdiagramm, das ein Verfahren des verzögerten Schreibfehlerprozesses gemäß einer Ausführungsform veranschaulicht.
    • 4 ist ein Flussdiagramm, das ein Verfahren des verzögerten Schreibfehlerprozesses gemäß einer anderen Ausführungsform veranschaulicht.
    • 5 ist ein Flussdiagramm, das ein Verfahren des verzögerten Schreibfehlerprozesses gemäß einer anderen Ausführungsform veranschaulicht.
  • Zum besseren Verständnis wurden, soweit möglich, identische Bezugszeichen verwendet, um identische Elemente zu bezeichnen, die den Figuren gemein sind. Es wird in Betracht gezogen, dass die in einer Ausführungsform offenbarten Elemente ohne besondere Aufzählung vorteilhaft auf andere Ausführungsformen angewendet werden können.
  • DETAILLIERTE BESCHREIBUNG
  • Im Folgenden wird auf die Ausführungsformen der Offenbarung verwiesen. Es versteht sich jedoch, dass die Offenbarung nicht auf bestimmte beschriebene Ausführungsformen beschränkt ist. Stattdessen wird jede Kombination der folgenden Merkmale und Elemente, unabhängig davon, ob sie sich auf verschiedene Ausführungsformen beziehen oder nicht, zur Umsetzung und Praxis der Offenbarung in Betracht gezogen. Obwohl Ausführungsformen der Offenbarung Vorteile gegenüber anderen möglichen Lösungen und/oder gegenüber dem Stand der Technik erzielen können, ist die Offenbarung nicht einschränkend, ob ein bestimmter Vorteil durch eine bestimmte Ausführungsform erreicht wird oder nicht. Die folgenden Gesichtspunkte, Merkmale, Ausführungsformen und Vorteile sind daher nur veranschaulichend und gelten nicht als Elemente oder Einschränkungen der beiliegenden Ansprüche, es sei denn, sie werden ausdrücklich in einem oder mehreren Ansprüchen angegeben. Ebenso soll eine Bezugnahme auf „die Offenbarung“ nicht als Verallgemeinerung eines hierin offenbarten erfinderischen Gegenstands ausgelegt werden und soll nicht als Element oder Einschränkung der beiliegenden Ansprüche betrachtet werden, es sei denn, dies wird ausdrücklich in einem Anspruch bzw. in Ansprüchen angegeben.
  • Die vorliegende Offenbarung bezieht sich allgemein auf ein Verfahren und eine Vorrichtung zum Reduzieren der Energiemenge, die verwendet wird, um Daten innerhalb einer Speicherungsvorrichtung nach einem Leistungsverlustereignis in einen konsistenten Zustand zurückzubringen. Sobald an einer Hostvorrichtung ein Leistungsverlust auftritt und vor dem vollständigen Abschalten, wird ein Protokoll innerhalb des nichtflüchtigen Speichers (NVM) der Speicherungsvorrichtung erstellt. Das Protokoll enthält logische Blockadressen (LBAs), die Daten entsprechen, die einen Schreibfehler erfahren haben. Beim nächsten Einschaltvorgang wird das Protokoll überprüft, um zu sehen, ob LBAs vorhanden sind. Wenn LBAs im Protokoll vorhanden sind, können die Daten, die einen Schreibfehler erfahren haben, ordnungsgemäß in die Speicherungsvorrichtung geschrieben werden.
  • Wie oben erwähnt, verwenden SSDs von Unternehmensgüte lokale Kondensatoren, um im Fall eines Leistungsverlusts Energie bereitzustellen. Bei einem Leistungsverlust entleert das SSD alle in Bewegung befindlichen Daten in die Speichervorrichtung (d. h. NAND). Kondensatoren verteuern die SSDs von Unternehmensgüte erheblich. Eine Strategie zur Kostenreduzierung besteht darin, hostseitig Kondensatoren zu verwenden, die Vorrichtungen mit Leistung versorgen können, um die Übergabe von Daten abzuschließen. Die hostseitigen Kondensatoren reduzieren individuelle Vorrichtungskosten, erhöhen jedoch die hostseitigen Kosten und Komplexität, da unterschiedliche Speicherungsvorrichtungen unterschiedliche Zeit- und Leistungsanforderungen aufweisen. Da Vorrichtungen von Client-Güte nicht für einen Schutz bei Leistungsverlust optimiert sind, können die Dauer und die damit verbundenen Kosten drastisch ansteigen.
  • Die hierin erörterten Lösungen gehen das Problem durch Neudefinieren der Regeln an, indem die Datenmenge reduziert wird, die an nur eine einzige Seite übergeben werden muss. Die Lösung berücksichtigt, dass die Hostvorrichtung nicht alle in Bewegung befindlichen Daten benötigt, sondern nur eine zuverlässige Art und Weise, um den konsistenten Zustand aufrechtzuerhalten. In Rechenzentrumsumgebungen gibt es typischerweise mehrere Kopien der Daten in verschiedenen Speicherebenen, und die Daten können wiederhergestellt werden, solange es einen Weg gibt, zu identifizieren, welche LBA-Bereiche von anderen Standorten wiederhergestellt werden müssen.
  • Hierin wird der Begriff „verzögerter Schreibfehler“ verwendet, um auf den Zustand zu verweisen, in dem ein Schreibbefehl aus Sicht des Hosts abgeschlossen wurde, aber die Nutzlast des Schreibbefehls nicht vollständig an den Speicher der Speicherungsvorrichtung (d. h. NAND) übergeben wurde und nach einem plötzlichen Leistungsverlust nicht aus dem Speicher der Speicherungsvorrichtung wiederherstellbar ist. Der verzögerte Schreibfehler schließt Daten ein, die sich während eines Leistungsverlustereignisses in Transferpuffern befanden, zu einem Block zusammengeführt wurden, der nicht vollständig geschrieben wurde, oder die einem nicht wiederhergestellten Programmfehler unterlagen.
  • Wie hierin erörtert, werden LBA-Bereiche, die von einem verzögerten Schreibfehler betroffen sind, in einer Protokollseite aufgezeichnet, die wieder der Hostvorrichtung bereitgestellt wird. Die LBA-Bereiche können auch als schlecht markiert werden, um eine Ausnahme auf dem Host auszulösen, die es dem Host ermöglicht, die Daten aus anderen Speicherebenen wiederherzustellen. Ein Kondensator ist entweder auf der Vorrichtungsseite oder auf der Hostseite vorhanden, um das Protokoll selbst zu übergeben. Die zum Schreiben einer einzigen 4K-Protokollseite benötigte Zeit ist jedoch erheblich geringer als die für alle in Bewegung befindlichen Daten benötigte Zeit, die je nach DRAM-Kapazität und Transferpuffergröße viele M Bs sein können.
  • Die Protokollseite für die verzögerten Schreibfehler ist eine Protokollseite, die dem Host nach dem Einschalten zur Verfügung gestellt wird. Zusätzlich zur Protokollseite kann die Vorrichtung wahlweise betroffene LBA-Bereiche als schlecht markieren und entweder einen standardisierten oder einen Code zurückgeben, wenn der Host versucht, die Daten aus diesen Bereichen zu lesen.
  • 1 ist eine schematische Veranschaulichung eines Speicherungssystems 100, einschließlich einer Speicherungsvorrichtung 102, die mit einer Hostvorrichtung 104 gekoppelt ist, gemäß einer Ausführungsform. Die Speicherungsvorrichtung 102 schließt eine Schnittstelle 106, eine Steuerung 108 und eine oder mehrere Speichervorrichtungen 110A-110N ein. Im Betrieb sendet die Hostvorrichtung 104 Lese- und/oder Schreibbefehle über die Schnittstelle 106 an die Speicherungsvorrichtung 102. Die Steuerung 108 liest und/oder schreibt die Daten aus/in die eine oder mehreren Speichervorrichtungen 110A-110N. In einer Ausführungsform sind die eine oder die mehreren Speichervorrichtungen 110A-110N nichtflüchtige Speicherungsvorrichtungen wie NAND. Es versteht sich, dass die Speicherungsvorrichtung 102 und die Hostvorrichtung 104 jeweils zusätzliche Komponenten aufweisen, die nicht gezeigt sind.
  • 2 ist eine schematische Veranschaulichung einer Speicherungsvorrichtung 102 gemäß einer Ausführungsform, die mehrere Speichervorrichtungen 204 und 206 einschließt. Die Speicherungsvorrichtung 102 schließt mindestens einen Kondensator 202 ein, der verwendet wird, um während eines Leistungsverlustereignisses ausreichend Leistung bereitzustellen, um LBA-Bereiche auf eine Protokollseite 208 einer Speichervorrichtung 204 zu schreiben. Mit anderen Worten stellt der mindestens eine Kondensator 202 ausreichend Leistung bereit, um es der Steuerung 108 zu ermöglichen, LBA-Bereiche auf die Protokollseite 208 zu schreiben, die in einer Speichervorrichtung 204 vorhanden ist, wenn ein verzögertes Schreibfehlerereignis auftritt. Wie in 2 gezeigt, ist der mindestens eine Kondensator 202 mit der Steuerung 108 gekoppelt, um der Steuerung 108 ausreichend Leistung bereitzustellen. Der mindestens eine Kondensator 202 ist auch mit der Schnittstelle 106 gekoppelt, sodass der mindestens eine Kondensator 202 während normaler Operationen Leistung von der Hostvorrichtung 104 empfangen kann.
  • Die Leistung von der Hostvorrichtung 104 lädt den mindestens einen Kondensator 202 auf, bis der mindestens eine Kondensator 202 die volle Kapazität erreicht hat. Der mindestens eine Kondensator 202 bleibt, sobald er vollständig geladen ist, in einem Gleichgewichtszustand des kontinuierlichen Entladens von Leistung an die Speicherungsvorrichtung 102, während er kontinuierlich mit Leistung von der Hostvorrichtung 104 nachgeladen wird. Zum Zeitpunkt eines Leistungsverlustereignisses wird keine zusätzliche Leistung von dem mindestens einen Kondensator 202 empfangen, und der mindestens eine Kondensator zieht somit ohne Nachladen Leistung ab. Zum Zeitpunkt des Auftretens eines Leistungsverlustereignisses ist die Schnittstelle 106 der erste Teil der Speicherungsvorrichtung 102, der erkennt, dass ein Leistungsverlustereignis vorliegt, und stellt daher eine Benachrichtigung an die Steuerung 108 bereit, dass ein Leistungsverlustereignis aufgetreten ist, was die Steuerung 108 veranlasst, das Schreiben der verzögerten Schreibfehler auf die Protokollseite zu starten. Somit ist die Menge an Kapazität, die für die Speicherungsvorrichtung 102 benötigt wird, eine Menge, die ausreicht, um genügend Leistung zum Schreiben einer einzelnen Protokollseite bereitzustellen.
  • 3 ist ein Flussdiagramm 300, das ein Verfahren des verzögerten Schreibfehlerprozesses gemäß einer Ausführungsform veranschaulicht. Das Verfahren beginnt bei 302, wenn ein Leistungsverlustereignis vorliegt, wodurch die Leistung von der Hostvorrichtung unterbrochen wird. Zu dem Zeitpunkt, zu dem der Leistungsverlust erstmals erkannt wird, werden bei 304 alle abgeschlossenen Schreibbefehle aufgezählt, bei denen Daten nicht an den Speicher in der Speicherungsvorrichtung übergeben wurden. Die Schreibbefehle, die abgeschlossen, aber nicht an den Speicher in der Speicherungsvorrichtung übergeben wurden, sind die verzögerten Schreibfehlerbefehle. Die Schreibbefehle sind aus der Hostperspektive abgeschlossen, aber die Speicherungsvorrichtung hat die Daten nicht in die Speichervorrichtung geschrieben.
  • Da es einen verzögerten Schreibfehler gibt, werden die betroffenen LBA-Bereiche bei 306 auf die Protokollseite in der Speichervorrichtung geschrieben, und dann schaltet die Speicherungsvorrichtung bei 308 ab. Schließlich benötigt die Hostvorrichtung die Speicherungsvorrichtung und schaltet somit die Speicherungsvorrichtung bei 310 ein und beginnt folglich, den Kondensator zu laden. Zu diesem Zeitpunkt prüft die Steuerung die Protokollseite der Speichervorrichtung, um bei 312 zu prüfen, ob irgendwelche Einträge vorhanden sind. Wenn keine Einträge auf der Protokollseite vorhanden sind, dann ist kein verzögerter Schreibfehler aufgetreten und die Speicherungsvorrichtung fährt bei 314 mit dem Einschalten fort. Wenn jedoch die Protokollseite einen Eintrag enthält, werden die LBA-Bereiche bei 314 als schlecht markiert. Sobald die LBA-Bereiche als schlecht identifiziert sind, können die LBA-Bereiche der Hostvorrichtung bereitgestellt werden, sodass der Hostvorrichtung bekannt ist, dass ein verzögerter Schreibfehler aufgetreten ist. Die Hostvorrichtung kann dann den Prozess des Erhaltens der Daten von einer anderen Quelle von einer anderen Speicherebene beginnen.
  • 4 ist ein Flussdiagramm 400, das ein Verfahren des verzögerten Schreibfehlerprozesses gemäß einer anderen Ausführungsform veranschaulicht. Das in 4 gezeigte Verfahren ähnelt dem in 3 gezeigten Verfahren, jedoch bietet die Steuerung dem Host bei 402 Zugang zu der Protokolltabelle, anstatt einfach die betroffenen LBA-Bereiche bei 314 als schlecht zu markieren. Die Hostvorrichtung kann dann, sobald sie Zugang zu der Protokollseite 208 hat, Kenntnis über den verzögerten Schreibfehler und über die spezifischen betroffenen LBA-Bereiche haben. Die Hostvorrichtung kann dann mit dem Erhalten der Daten von einer anderen Quelle von einer anderen Speicherebene fortfahren.
  • 5 ist ein Flussdiagramm 500, das ein Verfahren des verzögerten Schreibfehlerprozesses gemäß einer anderen Ausführungsform veranschaulicht. Das in 5 gezeigte Verfahren ähnelt dem in den 3 und 4 gezeigten Verfahren, jedoch stellt die Steuerung der Hostvorrichtung die spezifischen LBA-Bereiche von der Protokollseite 208 bereit, anstatt die betroffenen LBA-Bereiche bei 314 einfach als schlecht zu markieren oder dem Host bei 402 Zugang zu der Protokolltabelle bereitzustellen. Die Hostvorrichtung kann dann, sobald sie Zugang zu den LBA-Bereichen von der Protokollseite 208 hat, Kenntnis über den verzögerten Schreibfehler und die spezifischen LBA-Bereiche haben. Die Hostvorrichtung kann dann mit dem Erhalten der Daten von einer anderen Quelle von einer anderen Speicherebene fortfahren.
  • Es versteht sich, dass die Speicherungsvorrichtung bei einem verzögerten Schreibfehlerproblem die betroffenen LBA-Bereiche als schlecht markieren kann, dem Host Zugang zu der Protokollseite bereitstellen kann, dem Host die spezifischen betroffenen LBA-Bereiche bereitstellen kann oder eine beliebige Kombination davon. Die Offenbarung ist weder auf das Markieren, auf das Bereitstellen von Zugang noch auf das Bereitstellen von LBA-Bereichen beschränkt.
  • Durch Verwenden einer lokalen Leistungsquelle, nämlich mindestens eines Kondensators an der Speicherungsvorrichtung selbst, ist die Energiemenge, die benötigt wird, um Daten innerhalb der Speicherungsvorrichtung zurückzubringen, selbst bei einem Leistungsverlustereignis ein konsistenter Zustand. Da die Menge an benötigter Energie auf die Menge an Kapazität reduziert wird, die benötigt wird, um eine Datenmenge von etwa 4K einfach auf eine dedizierte Protokollseite zu schreiben, sind SSDs von Client-Güte nicht nur realisierbar, sondern für Rechenzentren wünschenswert.
  • In einer Ausführungsform weist eine Speicherungsvorrichtung auf: einen nichtflüchtigen Speicher; und eine Steuerung, die dafür eingerichtet ist, bei Erkennung eines Leistungsverlustereignisses LBA-Bereiche in ein Protokoll zu schreiben, das in dem nichtflüchtigen Speicher gespeichert ist, und die LBA-Bereiche der Hostvorrichtung bereitzustellen. Die Speicherungsvorrichtung kann weiterhin einen Kondensator aufweisen, der mit der Steuerung gekoppelt ist. Die Steuerung ist eingerichtet, um die LBA-Bereiche als schlecht zu markieren. Die Steuerung ist eingerichtet, um das Leistungsverlustereignis zu erkennen. Die Steuerung ist eingerichtet, um alle abgeschlossenen Schreibbefehle aufzuzählen, in denen Daten nicht an den nichtflüchtigen Speicher übergeben wurden. Das Protokoll ist eine einzelne Seite. Der nichtflüchtige Speicher ist NAND. Die Speicherungsvorrichtung ist SSD von Client-Güte. Die Steuerung ist eingerichtet zum: Lesen von LBA-Bereichen aus dem Protokoll, und wobei das Protokoll eine Seite ist, die verzögerte Schreibfehler auflistet; und Bereitstellen der LBA-Bereiche für eine Hostvorrichtung.
  • In einer anderen Ausführungsform weist eine Speicherungsvorrichtung auf: Speichermittel; Mittel zum Schreiben von LBA-Bereichen in eine niedrige Speicherung in den Speichermitteln bei Erkennung eines Leistungsverlustereignisses; und Mittel zum Bereitstellen der LBA-Bereiche für eine Hostvorrichtung. Die Speicherungsvorrichtung weist weiterhin Mittel zum Liefern von Leistung an die Speicherungsvorrichtung nach dem Erkennen des Leistungsverlustereignisses auf. Die Speicherungsvorrichtung weist weiterhin Mittel zum Empfangen eines Leistungsverlustsignals auf.
  • In einer anderen Ausführungsform weist eine Speicherungsvorrichtung auf: mindestens eine Speichervorrichtung, die eine Protokollseite für verzögerte Schreibfehler enthält; und eine Steuerung, die mit der mindestens einen Speichervorrichtung gekoppelt ist, wobei die Steuerung eingerichtet ist zum: Erkennen eines Leistungsverlustereignisses; Zählen aller abgeschlossenen Schreibbefehle, in denen keine Daten an die Speichervorrichtung übergeben wurden; Schreiben eines oder mehrerer LBA-Bereiche auf die Protokollseite, wobei der eine oder die mehreren LBA-Bereiche den Daten entsprechen, die nicht an die Speichervorrichtung übergeben wurden; und Liefern des einen oder der mehreren LBA-Bereiche an eine Hostvorrichtung. Die Steuerung ist weiterhin eingerichtet zum: Einschalten der Speicherungsvorrichtung; und Überprüfen der Protokollseite auf einen oder mehrere LBA-Bereiche. Die Steuerung ist weiterhin eingerichtet, um die Protokollseite der Hostvorrichtung verfügbar zu machen. Die Steuerung ist weiterhin eingerichtet, um die Daten, die nicht an die Speichervorrichtung übergeben wurden, von anderen Orten als einer Hostvorrichtung zu empfangen, wobei das Empfangen nach dem Einschalten der Speicherungsvorrichtung erfolgt. Die Steuerung ist weiterhin eingerichtet, um den einen oder die mehreren LBA-Bereiche auf der Protokollseite als schlecht zu markieren. Die Steuerung ist weiterhin eingerichtet, um der Hostvorrichtung mitzuteilen, dass der eine oder die mehreren LBA-Bereiche schlecht sind. Die Speichervorrichtung ist NAND. Die Steuerung ist weiterhin eingerichtet, um Leistung von einem Kondensator zu empfangen, nachdem das Leistungsverlustereignisses erkannt wurde und vor dem Schreiben der LBA-Bereiche auf die Protokollseite.
  • Während sich das Vorstehende auf Ausführungsformen der vorliegenden Offenbarung bezieht, können andere und weitere Ausführungsformen der Offenbarung ausgearbeitet werden, ohne vom grundlegenden Schutzumfang davon abzuweichen, und der Schutzumfang wird durch die nachstehenden Ansprüche bestimmt.
  • 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 16452128 [0001]

Claims (20)

  1. Speicherungsvorrichtung, aufweisend: einen nichtflüchtigen Speicher; und eine Steuerung, die eingerichtet ist, bei Erkennung eines Leistungsausfallereignisses LBA-Bereiche in ein Protokoll zu schreiben, das in dem nichtflüchtigen Speicher gespeichert ist, und das Protokoll einer Hostvorrichtung bereitzustellen.
  2. Speicherungsvorrichtung gemäß Anspruch 1, weiterhin aufweisend einen Kondensator, der mit der Steuerung gekoppelt ist.
  3. Speicherungsvorrichtung gemäß Anspruch 1, wobei die Steuerung eingerichtet ist, um die LBA-Bereiche als schlecht zu markieren.
  4. Speicherungsvorrichtung gemäß Anspruch 1, wobei die Steuerung eingerichtet ist, um das Leistungsverlustereignis zu erkennen.
  5. Speicherungsvorrichtung gemäß Anspruch 1, wobei die Steuerung eingerichtet ist, um alle abgeschlossenen Schreibbefehle aufzuzählen, in denen keine Daten an den nichtflüchtigen Speicher übergeben wurden.
  6. Speicherungsvorrichtung gemäß Anspruch 1, wobei das Protokoll eine einzelne Seite ist.
  7. Speicherungsvorrichtung gemäß Anspruch 1, wobei der nichtflüchtige Speicher NAND ist.
  8. Speicherungsvorrichtung gemäß Anspruch 1, wobei die Speicherungsvorrichtung ist SSD von Client-Güte ist.
  9. Speicherungsvorrichtung gemäß Anspruch 1, wobei die Steuerung eingerichtet ist zum: Lesen von LBA-Bereichen aus dem Protokoll, und wobei das Protokoll eine Seite ist, die verzögerte Schreibfehler auflistet; und Bereitstellen der LBA-Bereiche für eine Hostvorrichtung.
  10. Speicherungsvorrichtung, aufweisend: Speichermittel; Mittel zum Schreiben von LBA-Bereichen in eine Protokollspeicherung in dem Speichermittel bei Erkennung eines Leistungsverlustereignisses; und Mittel zum Bereitstellen der LBA-Bereiche für eine Hostvorrichtung.
  11. Speicherungsvorrichtung gemäß Anspruch 10, weiterhin aufweisend Mittel zum Liefern von Leistung an die Speicherungsvorrichtung nach dem Erkennen des Leistungsausfallereignisses.
  12. Speicherungsvorrichtung gemäß Anspruch 10, weiterhin aufweisend Mittel zum Empfangen eines Leistungsverlustsignals.
  13. Speicherungsvorrichtung, aufweisend: mindestens eine Speichervorrichtung, die eine Protokollseite für verzögerte Schreibfehler enthält; und eine Steuerung, die mit der mindestens einen Speichervorrichtung gekoppelt ist, wobei die Steuerung eingerichtet ist zum: Erkennen eines Leistungsverlustereignisses; Zählen aller abgeschlossenen Schreibbefehle, in denen keine Daten an die Speichervorrichtung übergeben wurden; Schreiben eines oder mehrerer LBA-Bereiche auf die Protokollseite, wobei der eine oder die mehreren LBA-Bereiche den Daten entsprechen, die nicht an die Speichervorrichtung übergeben wurden; und Liefern des einen oder der mehreren LBA-Bereiche an eine Hostvorrichtung.
  14. Speicherungsvorrichtung gemäß Anspruch 13, wobei die Steuerung weiterhin eingerichtet ist zum: Einschalten der Speicherungsvorrichtung; und Prüfen der Protokollseite auf einen oder mehrere LBA-Bereiche.
  15. Speicherungsvorrichtung gemäß Anspruch 14, wobei die Steuerung weiterhin eingerichtet ist, um die Protokollseite der Hostvorrichtung verfügbar zu machen.
  16. Speicherungsvorrichtung gemäß Anspruch 14, wobei die Controller weiterhin eingerichtet ist, um die Daten, die nicht an die Speichervorrichtung übergeben wurden, von anderen Orten als einer Hostvorrichtung zu empfangen, wobei das Empfangen nach dem Einschalten der Speicherungsvorrichtung erfolgt.
  17. Speicherungsvorrichtung gemäß Anspruch 13, wobei die Steuerung weiterhin eingerichtet ist, um den einen oder die mehreren LBA-Bereiche in der Protokollseite als schlecht zu markieren.
  18. Speicherungsvorrichtung gemäß Anspruch 17, wobei die Steuerung weiterhin eingerichtet ist, um der Hostvorrichtung mitzuteilen, dass der eine oder die mehreren LBA-Bereiche schlecht sind.
  19. Speicherungsvorrichtung gemäß Anspruch 13, wobei die Speichervorrichtung NAND ist.
  20. Speicherungsvorrichtung gemäß Anspruch 13, wobei die Steuerung weiterhin eingerichtet ist, um Leistung von einem Kondensator zu empfangen, nachdem das Leistungsverlustereignis erkannt wurde und vor dem Schreiben der LBA-Bereiche auf die Protokollseite.
DE112019005361.2T 2019-06-25 2019-12-17 Protokollierung von verzögerten schreibfehlern Pending DE112019005361T5 (de)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US16/452,128 US11294807B2 (en) 2019-06-25 2019-06-25 Delayed write failure logging
US16/452,128 2019-06-25
PCT/US2019/066877 WO2020263321A1 (en) 2019-06-25 2019-12-17 Delayed write failure logging

Publications (1)

Publication Number Publication Date
DE112019005361T5 true DE112019005361T5 (de) 2021-08-19

Family

ID=74044543

Family Applications (1)

Application Number Title Priority Date Filing Date
DE112019005361.2T Pending DE112019005361T5 (de) 2019-06-25 2019-12-17 Protokollierung von verzögerten schreibfehlern

Country Status (4)

Country Link
US (1) US11294807B2 (de)
CN (1) CN113168363A (de)
DE (1) DE112019005361T5 (de)
WO (1) WO2020263321A1 (de)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11379141B2 (en) 2020-07-31 2022-07-05 Kioxia Corporation SSD supporting read-only mode after PLP backup failure

Family Cites Families (22)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8452912B2 (en) * 2007-10-11 2013-05-28 Super Talent Electronics, Inc. Flash-memory system with enhanced smart-storage switch and packed meta-data cache for mitigating write amplification by delaying and merging writes until a host read
US7093101B2 (en) 2002-11-21 2006-08-15 Microsoft Corporation Dynamic data structures for tracking file system free space in a flash memory device
US7581136B2 (en) * 2006-05-19 2009-08-25 Hitachi, Ltd. Method and apparatus for data recovery
US8516172B1 (en) 2007-08-30 2013-08-20 Virident Systems, Inc. Methods for early write termination and power failure with non-volatile memory
JP4607981B2 (ja) * 2008-03-27 2011-01-05 富士通株式会社 コピー制御装置、コピー制御方法およびコピー制御プログラム
US8713252B1 (en) * 2009-05-06 2014-04-29 Violin Memory, Inc. Transactional consistency scheme
US8108737B2 (en) 2009-10-05 2012-01-31 Sandforce, Inc. System, method, and computer program product for sending failure information from a serial ATA (SATA) solid state drive (SSD) to a host device
US8495338B2 (en) * 2010-12-03 2013-07-23 Micron Technology, Inc. Transaction log recovery
US8792273B2 (en) 2011-06-13 2014-07-29 SMART Storage Systems, Inc. Data storage system with power cycle management and method of operation thereof
CN103514095B (zh) 2012-06-18 2016-08-03 记忆科技(深圳)有限公司 一种数据库写入ssd 的方法和系统
US10474618B2 (en) 2014-09-04 2019-11-12 Western Digital Technologies, Inc. Debug data saving in host memory on PCIE solid state drive
KR20160033519A (ko) 2014-09-18 2016-03-28 삼성전자주식회사 라이트 명령들에 대한 로그를 생성할 수 있는 데이터 저장 장치의 작동 방법과 이를 포함하는 raid 시스템의 작동 방법
US10009438B2 (en) 2015-05-20 2018-06-26 Sandisk Technologies Llc Transaction log acceleration
JP6398102B2 (ja) * 2015-05-29 2018-10-03 東芝メモリ株式会社 メモリシステム
US9846468B2 (en) * 2015-06-24 2017-12-19 Xitore, Inc. Apparatus, system, and method of storage and retrieval of local volatile memory content of non-volatile storage memory
US20170024140A1 (en) 2015-07-20 2017-01-26 Samsung Electronics Co., Ltd. Storage system and method for metadata management in non-volatile memory
US9921916B2 (en) 2015-12-18 2018-03-20 Intel Corporation Management of power loss in a memory device
US10139884B2 (en) * 2015-12-23 2018-11-27 Toshiba Memory Corporation Power loss protection for solid state drives
US10061655B2 (en) * 2016-05-11 2018-08-28 Seagate Technology Llc Volatile cache reconstruction after power failure
US9921956B2 (en) * 2016-07-20 2018-03-20 Sandisk Technologies Llc System and method for tracking block level mapping overhead in a non-volatile memory
US10909030B2 (en) * 2018-09-11 2021-02-02 Toshiba Memory Corporation Enhanced trim command support for solid state drives
US11144454B2 (en) * 2019-11-22 2021-10-12 Dell Products L.P. Enhanced vault save with compression

Also Published As

Publication number Publication date
US20200409843A1 (en) 2020-12-31
WO2020263321A1 (en) 2020-12-30
US11294807B2 (en) 2022-04-05
CN113168363A (zh) 2021-07-23

Similar Documents

Publication Publication Date Title
DE112011100534B4 (de) Mehrstufiger Sicherungsprozess
DE602005004120T2 (de) System und verfahren zur übernahme von partnerbetriebsmitteln in verbindung mit coredump
DE69937768T2 (de) Externe Speichervorrichtung und Verfahren zur Datensicherung
DE69727083T2 (de) Überprüfungssystem um die integrität der parität einer speicherplattenmatrix aufrechtzuerhalten
DE112019000215T5 (de) Wiederherstellungshilfe mit ausgefallener Speichervorrichtung
DE112018004370T5 (de) Verfahren zum wiederherstellen einer ausgefallenen speichervorrichtung
DE112018004256T5 (de) Redundanzcodierstreifen basierend auf internen adressen von speichervorrichtungen
DE102020107659A1 (de) Zonenbildung für gezonte namensräume
DE102011075814B4 (de) Speicherpuffer mit zugänglicher Information nach einem Schreibfehler
DE19600081C2 (de) Sicherung der Datenintegrität bei Datenträgerkarten
DE102018105440A1 (de) Leistungsausfallbehandlung unter Verwendung von Stoppbefehlen
DE112020005060T5 (de) Ratengrenze für den übergang von zonen zum öffnen
DE102005012448B4 (de) System und Verfahren zur Wiederherstellung eines Laufwerks nach einem Ausfall eines Laufwerks
DE102006036070B4 (de) Ladungsfallenspeichervorrichtung und Verfahren für deren Herstellung und Betrieb
DE102013021679A1 (de) Rettung von Ereignisnachverfolgungsinformationen bei Stromausfall-Unterbrechungsszenarien
DE102016010277A1 (de) Verfahren und systeme zum verbessern von speicher-journaling
EP0254247A2 (de) Einrichtung zur Rettung des Rechnerzustandes
DE102013210642A1 (de) Vorrichtung zum Wiederherstellen von Redundanz
DE102005006176A1 (de) Transaktionsverarbeitungs-Systeme und -Verfahren, die einen Nicht-Platten-Dauerspeicher verwenden
DE602004007925T2 (de) Verwalten einer beziehung zwischen einem zielvolumen und einem quellenvolumen
DE112014005417T5 (de) Architektur für harten Stromausfall
DE102017124188A1 (de) Verfahren und Vorrichtung zum Steuern eines Speichersystems zum Zwecke eines sicheren Herunterfahrens eines flüchtigen Speichers eines Hosts
DE102018124836A1 (de) Neuartiger speicherbaustein
DE112013001108B4 (de) Ein verfahren, eine vorrichtung, ein controller, ein computerprogramm und ein computerprogrammprodukt zum schreiben von neuen daten einer ersten blockgrösse in eine zweite blockgrösse, wobei ein write-write-modus verwendet wird
DE112019005361T5 (de) Protokollierung von verzögerten schreibfehlern

Legal Events

Date Code Title Description
R012 Request for examination validly filed
R082 Change of representative

Representative=s name: DEHNSGERMANY PARTNERSCHAFT VON PATENTANWAELTEN, DE

Representative=s name: DEHNS GERMANY PARTNERSCHAFT MBB, DE

Representative=s name: DEHNS GERMANY, DE

R082 Change of representative

Representative=s name: DEHNSGERMANY PARTNERSCHAFT VON PATENTANWAELTEN, DE

Representative=s name: DEHNS GERMANY PARTNERSCHAFT MBB, DE