DE102017124079A1 - Speichervorrichtung zum Verarbeiten von beschädigten Metadaten und Verfahren zum Betreiben derselben - Google Patents

Speichervorrichtung zum Verarbeiten von beschädigten Metadaten und Verfahren zum Betreiben derselben Download PDF

Info

Publication number
DE102017124079A1
DE102017124079A1 DE102017124079.9A DE102017124079A DE102017124079A1 DE 102017124079 A1 DE102017124079 A1 DE 102017124079A1 DE 102017124079 A DE102017124079 A DE 102017124079A DE 102017124079 A1 DE102017124079 A1 DE 102017124079A1
Authority
DE
Germany
Prior art keywords
metadata
data
ecc
corrupted
processing
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.)
Granted
Application number
DE102017124079.9A
Other languages
English (en)
Other versions
DE102017124079B4 (de
Inventor
Jong-won Kim
Dong-Gun KIM
Dong-young Seo
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.)
Samsung Electronics Co Ltd
Original Assignee
Samsung Electronics Co Ltd
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 Samsung Electronics Co Ltd filed Critical Samsung Electronics Co Ltd
Publication of DE102017124079A1 publication Critical patent/DE102017124079A1/de
Application granted granted Critical
Publication of DE102017124079B4 publication Critical patent/DE102017124079B4/de
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/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/0793Remedial or corrective actions
    • 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
    • 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/0772Means for error signaling, e.g. using interrupts, exception flags, dedicated error registers
    • 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
    • G06F11/1044Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices with specific ECC/EDC distribution
    • 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/1435Saving, restoring, recovering or retrying at system level using file system or storage system metadata
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/14Error detection or correction of the data by redundancy in operation
    • G06F11/1402Saving, restoring, recovering or retrying
    • G06F11/1446Point-in-time backing up or restoration of persistent data
    • G06F11/1448Management of the data involved in backup or backup restore
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/14Error detection or correction of the data by redundancy in operation
    • G06F11/1402Saving, restoring, recovering or retrying
    • G06F11/1446Point-in-time backing up or restoration of persistent data
    • G06F11/1448Management of the data involved in backup or backup restore
    • G06F11/1451Management of the data involved in backup or backup restore by selection of backup 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/14Error detection or correction of the data by redundancy in operation
    • G06F11/1402Saving, restoring, recovering or retrying
    • G06F11/1446Point-in-time backing up or restoration of persistent data
    • G06F11/1458Management of the backup or restore process
    • G06F11/1469Backup restoration techniques
    • 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/06Addressing a physical block of locations, e.g. base addressing, module addressing, memory dedication
    • G06F12/0615Address space extension
    • G06F12/0623Address space extension for memory modules
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/06Addressing a physical block of locations, e.g. base addressing, module addressing, memory dedication
    • G06F12/0646Configuration or reconfiguration
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • 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/0806Multiuser, multiprocessor or multiprocessing cache systems
    • G06F12/0815Cache consistency protocols
    • G06F12/0817Cache consistency protocols using directory methods
    • 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/0873Mapping of cache memory to specific storage devices or parts thereof
    • 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
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/16Handling requests for interconnection or transfer for access to memory bus
    • G06F13/1668Details of memory controller
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0673Single storage device
    • G06F3/068Hybrid storage device
    • 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/073Error 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 memory management context, e.g. virtual memory or cache management
    • 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/0769Readable error formats, e.g. cross-platform generic formats, human understandable formats
    • 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

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Quality & Reliability (AREA)
  • Library & Information Science (AREA)
  • Human Computer Interaction (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)

Abstract

Ein Verfahren zum Betreiben einer Speichervorrichtung (100) weist auf: ein Empfangen einer ersten logischen Adresse von einem Host (200), ein Bestimmen, ob erste Metadaten, welche in einem flüchtigen Speicher der Speichervorrichtung (100) gespeichert sind und mit der ersten logischen Adresse verbunden sind, beschädigt sind, ein Verarbeiten der ersten Metadaten als einen unkorrigierbaren Fehler, wenn bestimmt wurde, dass die ersten Metadaten beschädigt sind, ein Vorsehen einer Fehlernachricht an den Host (200), welche anzeigt, dass eine Operation auf Daten, welche mit der ersten logischen Adresse verbunden sind, nicht durchgeführt werden kann, wenn die ersten Metadaten als der unkorrigierbare Fehler verarbeitet werden, nach dem Vorsehen der Fehlernachricht ein Empfangen einer zweiten logischen Adresse von dem Host (200), ein Bestimmen, ob zweite Metadaten, welche in dem flüchtigen Speicher gespeichert sind und mit der zweiten logischen Adresse verbunden sind, beschädigt sind, und ein Durchführen einer Operation zum Zugreifen auf den nichtflüchtigen Speicher (120) basierend auf den zweiten Metadaten, wenn die zweiten Metadaten nicht als beschädigt bestimmt wurden.

Description

  • HINTERGRUND
  • Technisches Gebiet
  • Das erfinderische Konzept bezieht sich auf eine Speichervorrichtung und genauer auf eine Speichervorrichtung zum Verarbeiten beschädigter Metadaten und ein Verfahren zum Betreiben der Speichervorrichtung.
  • Diskussion des Standes der Technik
  • Nichtflüchtiger Speicher ist ein Typ von Speicher, welcher gespeicherte Informationen abrufen kann, auch wenn Leistung nicht länger zugeführt wird. Ein Flashspeicher ist ein Beispiel eines nichtflüchtigen Speichers. Speichervorrichtungen, welche einen Flashspeicher aufweisen, wie beispielsweise ein Festkörperlaufwerk (SSD = Solid State Drive = Festkörperlaufwerk) und eine Speicherkarte wurden in weitem Maße verwendet. Speichervorrichtungen sind nützlich zum Speichern oder Bewegen einer großen Datenmenge. Die Speicherkapazität von Speichervorrichtungen hat in großem Maße zugenommen. Eine Speichervorrichtung kann Daten unter Verwendung von Metadaten speichern. Die Speichervorrichtung kann jedoch nicht normal arbeiten, wenn auch eine kleine Menge von Metadaten beschädigt ist.
  • KURZFASSUNG
  • Gemäß einer beispielhaften Ausführungsform des erfinderischen Konzepts ist ein Verfahren zum Betreiben einer Speichervorrichtung, welche einen nichtflüchtigen Speicher und einen flüchtigen Speicher aufweist, vorgesehen. Das Verfahren weist Folgendes auf: ein Empfangen einer ersten logischen Adresse von einem Host, ein Bestimmen, ob erste Metadaten, welche in dem flüchtigen Speicher gespeichert sind und mit der ersten logischen Adresse verbunden sind, beschädigt sind, ein Verarbeiten der ersten Metadaten als einen unkorrigierbaren Fehler, wenn die ersten Metadaten bestimmt sind, beschädigt zu sein, ein Vorsehen einer Fehlernachricht für den Host, welche anzeigt, dass eine Operation nicht durchgeführt werden kann auf Daten, welche mit der ersten logischen Adresse verbunden sind, wenn die ersten Metadaten als der unkorrigierbare Fehler verarbeitet werden, nach dem Vorsehen der Fehlernachricht ein Empfangen einer zweiten logischen Adresse von dem Host, ein Bestimmen, ob zweite Metadaten, welche in dem flüchtigen Speicher gespeichert sind und mit der zweiten logischen Adresse verbunden sind, beschädigt sind und ein Durchführen einer Operation des Zugreifens auf den nichtflüchtigen Speicher basierend auf den zweiten Metadaten, wenn die zweiten Metadaten nicht als beschädigt bestimmt werden.
  • Gemäß einer beispielhaften Ausführungsform des erfinderischen Konzepts ist ein Verfahren zum Betreiben einer Speichervorrichtung vorgesehen, welche einen nichtflüchtigen Speicher und einen flüchtigen Speicher aufweist. Das Verfahren weist Folgendes auf: ein Laden eines Directory beziehungsweise Inhaltsverzeichnisses, welches in dem nichtflüchtigen Speicher gespeichert ist, zu dem flüchtigen Speicher, wenn Leistung der Speichervorrichtung zugeführt wird, wobei das Directory eine Mehrzahl von Directorydaten aufweist, welche jeweils physikalische Adressen anzeigen, welche einer Mehrzahl von Metadaten entsprechen, ein Bestimmen, ob die Mehrzahl von Directorydaten in dem Directory, welches auf den flüchtigen Speicher geladen wird, beschädigt ist, ein Bestimmen, ob erste Directorydaten aus der Mehrzahl von Directorydaten, welche als beschädigt bestimmt sind, wiederherstellbar sind, ein Verarbeiten erster Metadaten, welche den ersten Directorydaten entsprechen, als einen unkorrigierbaren Fehler, wenn die ersten Directorydaten beschädigt sind und nicht wiederherstellbar sind, und ein Laden zweiter Metadaten, welche zweiten Directorydaten entsprechen, aus dem nichtflüchtigen Speicher zu dem flüchtigen Speicher, wobei die zweiten Directorydaten aus der Mehrzahl von Directorydaten nicht beschädigt sind.
  • Gemäß einer beispielhaften Ausführungsform des erfinderischen Konzepts ist eine Speichervorrichtung vorgesehen, welche einen nichtflüchtigen Speicher und einen Controller aufweist, welcher einen flüchtigen Speicher aufweist, welcher konfiguriert ist, um erste Metadaten zu speichern, welche mit einer ersten logischen Adresse verbunden sind, und zweite Metadaten, welche mit einer zweiten logischen Adresse verbunden sind. Wenn der Controller die erste logische Adresse von einem Host empfängt, ist der Controller konfiguriert, um zu bestimmen, ob die ersten Metadaten beschädigt sind, und um die ersten Metadaten als einen unkorrigierbaren Fehler zu verarbeiten, wenn die ersten Metadaten beschädigt sind. Dann ist, wenn der Controller die zweite logische Adresse von dem Host empfängt, der Controller konfiguriert, um zu bestimmen, ob die zweiten Metadaten beschädigt sind, und um eine Operation des Zugreifens auf den nichtflüchtigen Speicher basierend auf den zweiten Metadaten zu steuern, wenn die zweiten Metadaten nicht beschädigt sind.
  • Gemäß einer beispielhaften Ausführungsform des erfinderischen Konzepts ist eine Speichervorrichtung vorgesehen, welche einen nichtflüchtigen Speicher und einen Controller aufweist, welcher einen flüchtigen Speicher aufweist, welcher konfiguriert ist, um Original Metadaten zu speichern, welche mit einer logischen Adresse verbunden sind. Der Controller ist konfiguriert, um die logische Adresse von einem Host zu empfangen, zu bestimmen, ob Backupmetadaten existieren, wenn die Original Metadaten beschädigt sind, wobei die Backupmetadaten eine Kopie der Original Metadaten sind, bevor sie beschädigt wurden, um auf den nichtflüchtigen Speicher basierend auf den Backupmetadaten zuzugreifen, wenn die Backupmetadaten existieren, und um die Original Metadaten als einen unkorrigierbaren Fehler zu verarbeiten, wenn die Backupmetadaten nicht existieren.
  • Figurenliste
  • Ausführungsformen des erfinderischen Konzepts werden deutlicher aus der folgenden detaillierten Beschreibung zusammengenommen in Verbindung mit den beigefügten Zeichnungen verstanden werden, in welchen:
    • 1 ein Blockschaltbild eines Speichersystems gemäß einer beispielhaften Ausführungsform des erfinderischen Konzepts ist;
    • 2 ein Blockschaltbild eines Beispiels eines Controllers ist, welcher in 1 veranschaulicht ist;
    • 3A ein Diagramm einer logisch-zu-physikalisch(L2P)-Mappingtabelle gemäß einer beispielhaften Ausführungsform des erfinderischen Konzepts ist;
    • 3B ein Diagramm von physikalischen Blockinformationen gemäß einer beispielhaften Ausführungsform des erfinderischen Konzepts ist;
    • 4 ein Flussdiagramm eines Verfahrens zum Betreiben einer Speichervorrichtung gemäß einer beispielhaften Ausführungsform des erfinderischen Konzepts ist;
    • 5 ein Diagramm einer Operation zum Verarbeiten von nicht wiederherstellbaren Metadaten gemäß einer beispielhaften Ausführungsform des erfinderischen Konzepts ist;
    • 6 ein Flussdiagramm eines Verfahrens zum Betreiben einer Speichervorrichtung gemäß einer beispielhaften Ausführungsform des erfinderischen Konzepts ist;
    • 7A und 7B Diagramme einer Operation zum Durchführen einer unkorrigierbarer-Fehler-Korrektur-Code (UECC)-Verarbeitung auf Mappingdaten gemäß einer beispielhaften Ausführungsform des erfinderischen Konzepts ist;
    • 8 ein Flussdiagramm von Operationen ist, welche zwischen einem Host und einem Controller in der UECC-Verarbeitungsoperation durchgeführt werden, welche in den 7A und 7B gemäß einer beispielhaften Ausführungsform des erfinderischen Konzepts veranschaulicht sind;
    • 9A und 9B Diagramme einer UECC-Verarbeitungsoperation sind, welche auf Mappingdaten gemäß einer beispielhaften Ausführungsform des erfinderischen Konzepts durchgeführt werden;
    • 10 ein Flussdiagramm von Operationen ist, welche zwischen einem Host, einem Controller und einem nichtflüchtigen Speicher in der UECC-Verarbeitungsoperation durchgeführt werden, welche in 9A und 9B gemäß einer beispielhaften Ausführungsform des erfinderischen Konzepts veranschaulicht sind;
    • 11 ein Diagramm einer UECC-Verarbeitungsoperation ist, welche auf Trimmdaten gemäß einer beispielhaften Ausführungsform des erfinderischen Konzepts durchgeführt wird;
    • 12 ein Blockschaltbild einer Speichervorrichtung gemäß einer beispielhaften Ausführungsform des erfinderischen Konzepts ist;
    • 13 ein Blockschaltbild eines Beispiels eines Controllers ist, welcher in 12 veranschaulicht ist;
    • 14 ein Flussdiagramm eines Verfahrens zum Betreiben einer Speichervorrichtung gemäß einer beispielhaften Ausführungsform des erfinderischen Konzepts ist;
    • 15 ein Diagramm einer Fehler-Überprüf-und-Korrektur (ECC)-Operation ist, welche basierend auf der Anzahl von Fehlerbits in Metadaten gemäß einer beispielhaften Ausführungsform des erfinderischen Konzepts durchgeführt wird;
    • 16 ein Diagramm einer Operation zum Verarbeiten von nicht wiederherstellbaren Metadaten gemäß einer beispielhaften Ausführungsform des erfinderischen Konzepts ist;
    • 17A bis 19 Diagramme einer UECC-Verarbeitungsoperation sind, welche auf Mappingdaten gemäß einer beispielhaften Ausführungsform des erfinderischen Konzepts durchgeführt wird;
    • 20 ein Flussdiagramm eines Verfahrens zum Betreiben einer Speichervorrichtung gemäß einer beispielhaften Ausführungsform des erfinderischen Konzepts ist;
    • 21 ein Diagramm einer UECC-Verarbeitungsoperation ist, welche auf nicht wiederherstellbaren Trimmdaten gemäß einer beispielhaften Ausführungsform des erfinderischen Konzepts durchgeführt wird;
    • 22 ein Blockschaltbild eines Controllers gemäß einer beispielhaften Ausführungsform des erfinderischen Konzepts ist;
    • 23 ein Flussdiagramm eines Verfahrens zum Betreiben einer Speichervorrichtung gemäß einer beispielhaften Ausführungsform des erfinderischen Konzepts ist;
    • 24A ein Diagramm einer Speicherzellanordnung ist, welche in einem nichtflüchtigen Speicher enthalten ist, welcher in 1 gemäß einer beispielhaften Ausführungsform des erfinderischen Konzepts veranschaulicht ist;
    • 24B ein Diagramm eines Speicherblocks ist, welcher in einem Speicherbereich enthalten ist, welcher in 24 gemäß einer beispielhaften Ausführungsform des erfinderischen Konzepts enthalten ist;
    • 25 ein Diagramm eines Directory beziehungsweise Inhaltsverzeichnisses gemäß einer beispielhaften Ausführungsform des erfinderischen Konzepts ist;
    • 26 ein Diagramm einer UECC-Verarbeitungsoperation ist, welche auf einem Directory gemäß einer beispielhaften Ausführungsform des erfinderischen Konzepts durchgeführt wird;
    • 27 ein Flussdiagramm von Operationen ist, welche zwischen einem Controller und einem nichtflüchtigen Speicher in der UECC-Verarbeitungsoperation, welche in 26 veranschaulicht ist, gemäß einer beispielhaften Ausführungsform des erfinderischen Konzepts durchgeführt werden;
    • 28 ein Blockschaltbild eines Controllers gemäß einer beispielhaften Ausführungsform des erfinderischen Konzepts ist;
    • 29 ein Flussdiagramm eines Verfahrens zum Betreiben einer Speichervorrichtung gemäß einer Ausführungsform des erfinderischen Konzepts ist;
    • 30 ein Diagramm einer UECC-Verarbeitungsoperation, welche auf einem Directory gemäß einer beispielhaften Ausführungsform des erfinderischen Konzepts durchgeführt wird, ist; und
    • 31 ein Blockschaltbild einer elektronischen Vorrichtung gemäß einer beispielhaften Ausführungsform des erfinderischen Konzepts ist.
  • DETAILLIERTE BESCHREIBUNG DER BEISPIELHAFTEN AUSFÜHRUNGSFORMEN
  • 1 ist Blockschaltbild eines Speichersystems 10 gemäß einer beispielhaften Ausführungsform des erfinderischen Konzepts.
  • Bezug nehmend auf 1 weist das Speichersystem 10 eine Speichervorrichtung 100 und einen Host 200 auf. Die Speichervorrichtung 100 weist einen Controller 110 und einen nichtflüchtigen Speicher (NVM = Non-Volatile Memory = nichtflüchtiger Speicher) 120 auf. Der Controller 110 kann den NVM 120 in Antwort auf eine Schreib-/Leseanforderung von dem Host 200 steuern, sodass Daten aus dem NVM 120 gelesen werden oder Daten zu dem NVM 120 geschrieben werden. Der Host 200 kann mit der Speichervorrichtung 100 über verschiedene Typen von Schnittstellen kommunizieren und kann eine Schreib-/Leseanforderung zu der Speichervorrichtung 100 übertragen. Der Host 200 kann durch einen Anwendungsprozessor (AP) oder ein Ein-Chip-System (SoC) implementiert sein.
  • Der NVM kann eine Speicherzellanordnung MCA aufweisen. Die Speicherzellanordnung MCA weist einen Metabereich 121 auf, welcher Metadaten speichert, und einen Speicherbereich 122, welcher Nutzerdaten speichert. Die Speicherzellanordnung MCA kann Flashspeicherzellen aufweisen, welche NAND-Flashspeicherzellen sein können. Das erfinderische Konzept ist jedoch nicht darauf beschränkt. Beispielsweise können die Speicherzellen resistive Speicherzellen sein wie beispielsweise resistive Direktzugriffsspeicher (ReRAM)-Zellen, Phasenübergangs-RAM (PRAM)-Zellen oder magnetische RAM (MRAM)-Zellen.
  • In einer beispielhaften Ausführungsform weisen die Metadaten wenigstens ein Element auf ausgewählt unter Mappingdaten, welche Mappinginformation zwischen einer logischen Adresse des Host 200 und einer physikalischen Adresse des NVM 120 anzeigen, physikalischer Blockinformation, welche Information über Seiten (Pages) anzeigt, welche in jedem physikalischen Block des NVM 120 enthalten sind, Trimmdaten, welche Daten anzeigen, welche von dem Host 200 gelöscht sind, und einem Directory beziehungsweise Inhaltsverzeichnis, welches eine physikalische Adresse anzeigt, an welcher die Metadaten wie beispielsweise Mappingdaten oder physikalische Blockinformation in dem Metabereich 121 des NVM 120 gespeichert sind. Wenn der Speichervorrichtung 100 Leistung zugeführt wird, beispielsweise wenn das Speichersystem 10 gebootet wird, können Metadaten, welche in dem Metabereich 121 des NVM 120 gespeichert sind, zu dem Controller 110 geladen werden.
  • Der Controller 110 weist ein Metadatenverarbeitungsmodul MDP und einen Metadatenspeicher MDS auf. Metadaten, welche in dem Metabereich 121 gespeichert sind, werden zu dem Metadatenspeicher MDS geladen. In einer beispielhaften Ausführungsform ist der Metadatenspeicher MDS als ein flüchtiger Speicher wie beispielsweise ein dynamischer RAM (DRAM = Dynamic RAM = dynamischer RAM) oder statischer RAM (SRAM) implementiert. Obwohl der Metadatenspeicher MDS in dem Controller 110 in der Ausführungsform, welche in 1 veranschaulicht ist, enthalten ist, ist das erfinderische Konzept nicht darauf beschränkt. Beispielsweise kann der Metadatenspeicher MDS als ein flüchtiger Speicher implementiert sein, welcher außerhalb des Controllers 110 platziert ist.
  • In einer Ausführungsform verarbeitet das Metadatenverarbeitungsmodul MDP Metadaten, welche zu dem Metadatenspeicher MDS geladen sind, demgemäß, ob die geladenen Metadaten beschädigt sind oder nicht beschädigt sind. In einer Ausführungsform bestimmt das Metadatenverarbeitungsmodul MDP, ob Metadaten beschädigt sind und verarbeitet die beschädigten Metadaten als einen unkorrigierbaren Fehler. Beispielsweise bestimmt das Metadatenverarbeitungsmodul MDP, ob die beschädigten Metadaten wiederhergestellt werden können, und verarbeitet die Metadaten, welche nicht wiederhergestellt werden können, als einen unkorrigierbaren Fehler. Der unkorrigierbare Fehler kann einem Unkorrigierbarer-Fehler-Korrektur-Code (UECC)-Fehler entsprechen.
  • Wenn die Speichervorrichtung 100 eine logische Adresse und eine Leseanforderung von dem Host 200 empfängt, und Metadaten, welche auf die logische Adresse bezogen sind, beschädigt sind, kann die Speichervorrichtung 100 eine Fehlernachricht für den Host 200 vorsehen, welche anzeigt, dass Lesen hinsichtlich der Leseanforderung unmöglich ist. Beispielsweise kann die Speichervorrichtung 100 eine Fehlernachricht für den Host 200 vorsehen, welche anzeigt, dass eine Operation (beispielsweise ein Lesen der Leseanforderung), welche mit der logischen Adresse verbunden ist, nicht durchgeführt werden kann. Danach führt, wenn die Speichervorrichtung 100 eine Leseanforderung hinsichtlich einer anderen logischen Adresse empfängt, die Speichervorrichtung 100 eine Leseoperation normal gemäß der Leseanforderung durch, um auf Lesedaten zuzugreifen und sieht die gelesenen Daten für den Host 200 vor. Wenn die Speichervorrichtung 100 eine Schreibanforderung hinsichtlich einer anderen logischen Adresse empfängt, führt die Speichervorrichtung 100 eine Schreiboperation normal gemäß der Schreibanforderung durch. Demzufolge fährt, wenn Metadaten, welche eine kleine Größe haben, beschädigt sind, die Speichervorrichtung 100 fort, normale Operationen durchzuführen mit Ausnahme hinsichtlich der beschädigten Metadaten.
  • Das Speichersystem 10 kann als ein Personalcomputer (PC), ein Datenserver, ein Netzwerkspeicher (NAS), eine Internet-of-Things (IoT)-Vorrichtung oder eine tragbare elektronische Vorrichtung implementiert sein. Die tragbare elektronische Vorrichtung kann ein Laptop-Computer, ein Mobiltelefon, ein Smartphone, ein Tablet-PC, ein persönlicher digitaler Assistent (PDA), ein digitaler Assistent für Unternehmen (EDA), eine digitale Fotokamera, eine digitale Videokamera, eine Audiovorrichtung, ein tragbarer Multimediaplayer (PMP), eine persönliche Navigationsvorrichtung (PND = Personal Navigation Device = persönliche Navigationsvorrichtung), ein MP3-Abspieler, eine handgehaltene Spielekonsole, ein elektronisches Buch oder eine tragbare Vorrichtung sein.
  • Die Speichervorrichtung 100 kann ein interner Speicher sein, welcher in einer elektronischen Vorrichtung eingebettet ist. Beispielsweise kann die Speichervorrichtung 100 ein Festkörperlaufwerk (SSD = Solid State Drive = Festkörperlaufwerk), eine eingebettete Universal-Flash-Speicher (UFS = Universal Flash Storage = Universal-Flash-Speicher)-Vorrichtung oder eine eingebettete Multimediakarte (eMMC) sein. Alternativ kann die Speichervorrichtung 100 ein externer Speicher sein, welcher von einer elektronischen Vorrichtung abnehmbar ist. Beispielsweise kann die Speichervorrichtung 100 eine UFS-Karte, eine Compact-Flash(CF)-Karte, eine Secure Digital(SD)-Karte, eine Micro-SD-Karte, eine Mini-SD-Karte, eine Extreme Digital (xD)-Karte oder ein Speicherstick sein.
  • 2 ist ein Blockschaltbild eines Beispiels 110a des Controllers 110, welcher in 1 veranschaulicht ist.
  • Bezug nehmend auf 2 weist der Controller 110a einen Speicher MEMa, einen Prozessor 114, eine Hostschnittstelle (IF) 115, eine NVM IF 116 und einen Lesespeicher (ROM) 117 auf, welche miteinander über einen Bus 118 kommunizieren können. Der Prozessor 114 kann eine zentrale Verarbeitungseinheit (CPU = Central Processing Unit = zentrale Verarbeitungseinheit) oder einen Mikroprozessor aufweisen und kann alle Operationen des Controllers 110a steuern. Der Speicher MEMa kann gemäß der Steuerung des Prozessors 114 arbeiten und kann als ein Arbeitsspeicher, ein Pufferspeicher oder ein Cachespeicher genutzt werden. Der Speicher MEMa kann als ein flüchtiger Speicher wie beispielsweise ein DRAM oder ein SRAM oder ein NVM wie beispielsweise ein PRAM oder ein Flashspeicher implementiert sein. Der Speicher MEMa ist als ein flüchtiger Speicher (beispielsweise DRAM) in den Ausführungsformen, welche untenstehend beschrieben sind, implementiert. Demzufolge kann sich DRAM auf einen Speicher beziehen, in welchen Metadaten geladen werden.
  • Das Metadatenverarbeitungsmodul MDP, welches in 1 gezeigt ist, kann durch Software oder Firmware implementiert werden und kann in beziehungsweise zu dem Speicher MEMa geladen werden. Das Metadatenverarbeitungsmodul MDP kann als eine Flashübersetzungsschicht (FTL) 111 implementiert sein und kann in den Speicher MEMa geladen werden. Das erfinderische Konzept ist jedoch nicht darauf beschränkt. Beispielsweise kann das Metadatenverarbeitungsmodul MDP durch Hardware implementiert sein. In einer Ausführungsform entspricht der Metadatenspeicher MDS, welcher in 1 gezeigt ist, dem Metadatenbereich 112, welcher Teil des Speichers MEMa ist. In einer Ausführungsform sind die FTL 111 und der Metadatenbereich 112 auf einem Chip gebildet. Das erfinderische Konzept ist jedoch nicht darauf beschränkt. Beispielsweise können die FTL 111 und der Metadatenbereich 112 auf unterschiedlichen Chips gebildet sein.
  • Die FTL 111 kann ein UECC-Verarbeitungsmodul lila aufweisen. Wenn Metadaten, welche in den Metadatenbereich 112 geladen sind, beschädigt und nicht wiederherstellbar sind, kann das UECC-Verarbeitungsmodul 111a die Metadaten als einen UECC-Fehler (das heißt einen unkorrigierbaren Fehler) verarbeiten. In einer Ausführungsform aktualisiert während der UECC-Verarbeitung das UECC-Verarbeitungsmodul 111a eine Mappingtabelle durch ein Ändern einer physikalischen Adresse von Metadaten in eine neue physikalische Adresse. Die FTL 111 kann ebenso ein Adressmappingmodul, ein Wear-Leveling-Modul, ein Verwaltungsmodul für einen schlechten Block beziehungsweise schlechte Blöcke, ein Speicherbereinigungsmodul oder ein Verschlüsselungs-/Entschlüsselungsmodul gemäß einer Funktion, welche durch Firmware implementiert ist, aufweisen.
  • In einer Ausführungsform weist der Metadatenbereich 112 einen logisch-zu-physikalisch (L2P)-Mappingtabellenbereich 112a und einen physikalischen Blockinformationsbereich 112b auf. In einer Ausführungsform speichert der L2P-Mappingtabellenbereich 112a eine Mappingtabelle, welche eine Mehrzahl von Mappingdaten aufweist, welche verwendet werden, um eine logische Adresse in eine physikalische Adresse zu übersetzen. In einer Ausführungsform speichert der physikalische Blockinformationsbereich 112b physikalische Blockinformation, welche Information über Seiten (Pages) anzeigt, welche in einem physikalischen Block enthalten sind. Mappingdaten und physikalische Blockinformation werden unter Bezugnahme auf die 3A und 3B später beschrieben werden.
  • Die Host-IF 115 sieht eine Schnittstelle zwischen dem Host 200 und dem Controller 110a vor. Die Host-IF 115 kann eine Schnittstelle gemäß einem Universal Serial Bus (USB), einem MMC, Peripheral Component Interconnect Express (PCI-E), Advanced Technology Attachment (ATA), serial ATA (SATA), parallel ATA (PATA), Small Computer System Interface (SCSI), Serial Attached SCSI (SAS), Enhanced Small Disk Interface (ESDI), oder Integrated Drive Electronics (IDE) aufweisen. Die NVM IF 116 sieht eine Schnittstelle zwischen dem Controller 110a und dem NVM 120 vor. Beispielsweise können eine L2P-Mappingtabelle, Blockinformationen, Schreibdaten und Lesedaten beziehungsweise gelesene Daten zwischen dem Controller 110a und dem NVM 120 durch die NVM IF 116 übertragen werden. Der ROM 117 kann Codedaten (beispielsweise ausführbare Befehle), welche für ein anfängliches Booten der Speichervorrichtung 100 notwendig sind, speichern.
  • 3A ist ein Diagramm einer L2P-Mappingtabelle L2P_T gemäß einer beispielhaften Ausführungsform des erfinderischen Konzepts. Die L2P-Mappingtabelle L2P_T kann zu dem L2P-Mappingtabellenbereich 112a geladen werden, welcher in 2 gezeigt ist. Bezug nehmend auf die 1 bis 3A weist die L2P-Mappingtabelle L2P_T eine Mehrzahl von Mappingdaten auf. Jedes Mappingdatum zeigt eine physikalische Seitenzahl (PPN) an, welcher einer logischen Seitenzahl (LPN = Logical Page Number) entspricht. Beispielsweise ist eine zweite physikalische Adresse, welche einer zweiten logischen Adresse LPN2 entspricht, PPN2, welche eine erste Seite PAGE1 eines zweiten Blocks BLK2 sein kann, welcher in dem Speicherbereich 122 des NVM 120 enthalten ist. Die L2P-Mappingtabelle L2P_T kann eine Mehrzahl von Zeilen aufweisen, wobei jede Zeile eine logische Adresse (beispielsweise eine logische Seitenadresse) auf eine physikalische Adresse (beispielsweise eine physikalische Seitenadresse) mappt beziehungsweise abbildet, und die physikalische Adresse den Ort eines ausgewählten Blocks innerhalb des Speicherbereichs 122 und einen Ort einer Seite innerhalb des ausgewählten Blocks identifiziert. In einer Ausführungsform sind die logischen Adressen von der L2P-Mappingtabelle L2P_T ausgelassen und die Position jeder Zeile wird genutzt, um ihre logische Adresse abzuleiten.
  • 3B ist ein Diagramm einer physikalischen Blockinformation BI gemäß einer beispielhaften Ausführungsform des erfinderischen Konzepts. Die physikalische Blockinformation BI kann in den physikalischen Blockinformationsbereich 112b, welcher in 2 gezeigt ist, geladen sein. Bezug nehmend auf die 1 bis 3B zeigt die physikalische Blockinformation BI einen Zustand jeder einer Mehrzahl von Seiten PAGE1 bis PAGEm, welche in jedem des ersten und zweiten Blocks BLK1 und BLK2 enthalten sind, als gültig oder nicht gültig an. Beispielsweise sind die erste und vierte Seite PAGE1 und PAGE4, welche in dem zweiten Block BLK2 enthalten sind, als ungültig veranschaulicht, und die zweite und dritte Seite PAGE2 und PAGE3 sind als gültig veranschaulicht. Die physikalische Blockinformation BI kann ebenso eine gültige Seitenzählung speichern, welche die Anzahl von gültigen Seiten anzeigt, welche in jedem des ersten und des zweiten Blocks BLK1 und BLK2 enthalten sind.
  • 4 ist ein Flussdiagramm eines Verfahrens zum Betreiben einer Speichervorrichtung gemäß einer beispielhaften Ausführungsform des erfinderischen Konzepts.
  • Bezug nehmend auf 4 bezieht sich das Verfahren zum Betreiben einer Speichervorrichtung auf ein Verfahren zum Verarbeiten nicht widerherstellbarer Metadaten, wenn eine Leseanforderung von einem Host empfangen wird und es kann Operationen aufweisen, welche zeitsequentiell durchgeführt werden in beispielsweise der Speichervorrichtung 100, welche in 1 gezeigt ist. Das Verfahren zum Betreiben einer Speichervorrichtung wird unter Bezugnahme auf die 1 bis 4 untenstehend beschrieben werden.
  • Die Speichervorrichtung 100 empfängt eine Leseanforderung und eine logische Adresse von dem Host 200 in Operation S110. Die Speichervorrichtung 100 bestimmt, ob Metadaten beschädigt sind, in Operation S120. In einer Ausführungsform bestimmt die Speichervorrichtung 100, ob Mappingdaten, welche eine physikalische Adresse anzeigen, welche der logischen Adresse entspricht, unter den Metadaten, welche in einen flüchtigen Speicher geladen sind, beschädigt sind. Beispielsweise kann das UECC-Verarbeitungsmodul lila, welches in dem Controller 110a enthalten ist, bestimmen, ob Mappingdaten, welche in den L2P-Mappingtabellenbereich 112a geladen sind, beschädigt sind, basierend auf der physikalischen Blockinformation BI, welche in den physikalischen Blockinformationsbereich 112b geladen ist.
  • Ob die Metadaten wiederherstellbar sind, wird in Operation S130 bestimmt. In einer Ausführungsform bestimmt das UECC-Verarbeitungsmodul lila, ob Backupdaten der Metadaten existieren und bestimmt, dass die Metadaten wiederherstellbar sind, wenn die Backupdaten existieren. Wenn bestimmt wird, dass die Metadaten nicht wiederherstellbar sind, wird Operation S140 durchgeführt. Wenn bestimmt wird, dass die Metadaten wiederherstellbar sind, wird Operation S150 durchgeführt. Die Metadaten werden als ein UECC-Fehler in Operation S140 verarbeitet. Beispielsweise kann das UECC-Verarbeitungsmodul lila die Metadaten als einen UECC-Fehler verarbeiten und eine Fehlernachricht, welche anzeigt, dass ein Lesen unmöglich ist hinsichtlich der Leseanforderung, für den Host 200 vorsehen. Die Fehlernachricht kann anzeigen, dass eine Leseoperation, welche mit der logischen Adresse verbunden ist, nicht durchgeführt werden kann. Die Metadaten werden wiederhergestellt und die Leseanforderung wird in Operation S150 verarbeitet. Die Verarbeitung der Leseanforderung kann ein Bestimmen einer physikalischen Adresse aufweisen, welche der logischen Adresse entspricht, unter Verwendung der Backupdaten. Beschädigte Metadaten, welche innerhalb der L2P-Mappingtabelle L2P_T gefunden werden, können durch die Backupdaten ersetzt werden.
  • Obwohl nicht gezeigt kann die Speichervorrichtung 100 eine Leseanforderung oder eine Schreibabforderung und eine andere logische Adresse von dem Host 200 danach empfangen. Zu dieser Zeit kann die Speichervorrichtung 100 bestimmen, ob Mappingdaten, welche eine physikalische Adresse anzeigen, welche der gegenwärtigen logischen Adresse entspricht, beschädigt sind. Wenn bestimmt wird, dass die Mappingdaten nicht beschädigt sind oder wiederherstellbar sind, führt die Speichervorrichtung 100 eine Leseoperation normal gemäß der Leseanforderung oder eine Schreiboperation gemäß der Schreibanforderung durch.
  • 5 ist ein Diagramm einer Operation des Verarbeitens nicht wiederherstellbarer Metadaten gemäß einer beispielhaften Ausführungsform des erfinderischen Konzepts.
  • Bezug nehmend auf die 2 und 5 empfängt der Controller 110a eine Lese- oder Schreibanforderung und eine logische Adresse von einem Host. In einer Ausführungsform entspricht die erste Mappinginformation 11, welche in 5 veranschaulicht ist, der L2P-Mappingtabelle L2P_T, welche in 3 gezeigt ist, und die physikalische Blockinformation BI, welche in 5 veranschaulicht ist, entspricht der physikalischen Blockinformation BI, welche in 3B gezeigt ist. Wenn die logische Adresse LPN2 ist, ist eine physikalische Adresse, welche auf LPN2 abgebildet wird PPN2.
  • In einer Ausführungsform überprüft das UECC-Verarbeitungsmodul lila, ob die PPN2 gültig oder ungültig ist durch ein Überprüfen der physikalischen Blockinformation BI und bestimmt, ob Mappingdaten, welche PPN2 entsprechen, beschädigt sind. Beispielsweise bestimmt, wenn die erste Seite PAGE1 des zweiten Blocks BLK2, welche der PPN2 entspricht, ungültig ist, wie in 3B gezeigt ist, das UECC-Verarbeitungsmodul 111a, dass die Mappingdaten, welche mit der logischen Adresse verbunden sind, beschädigt sind.
  • Das erfinderische Konzept ist jedoch nicht darauf beschränkt. In einer Ausführungsform bestimmt, wenn die PPN2 keine reale physikalische Adresse anzeigt, das UECC-Verarbeitungsmodul 111a, dass die Mappingdaten, welche der PPN2 entsprechen, beschädigt sind, ohne die physikalische Blockinformation BI zu überprüfen. Beispielsweise kann, wenn ein NVM einen ersten bis hundertsten Block aufweist und die PPN2 eine Seite anzeigt, welche in einem einhundertundersten Block enthalten ist, bestimmt werden, dass die Mappingdaten, welche der PPN2 entsprechen, beschädigt sind. Beispielsweise kann der Controller 110a eine Zählung der Anzahl von Blöcken, welche verfügbar sind, speichern, und wenn eine physikalische Adresse, welche mit Mappingdaten verbunden ist, eine Blockanzahl anzeigt, welche die Zählung übersteigt, kann geschlossen werden, dass die Mappingdaten beschädigt sind.
  • Ferner bestimmt in einer beispielhaften Ausführungsform das UECC-Verarbeitungsmodul lila, ob die PPN2 gültig oder ungültig ist durch ein Überprüfen einer logischen Adresse, welche in dem NVM 120 gespeichert ist und durch die PPN2 angezeigt wird. In einer Ausführungsform speichert eine Spare Area in einer Seite, welche durch die PPN2 in dem Speicherbereich 122 angezeigt ist, eine logische Adresse (beispielsweise ein LPN), welche der PPN2 entspricht. Wenn eine logische Adresse, welche der PPN2 entspricht, die LPN2 gemäß der ersten Mappinginformation 11 ist, während eine logische Adresse, welche in einer Spare Area einer physikalischen Adresse gespeichert ist, welche durch die PPN2 angezeigt wird nicht die LPN2 ist, bestimmt das UECC-Verarbeitungsmodul 111a, dass die Mappingdaten, welche der PPN2 entsprechen, beschädigt sind.
  • Danach bestimmt das UECC-Verarbeitungsmodul 111a, ob die beschädigten Metadaten wiederherstellbar sind, stellt die beschädigten Metadaten wieder her, wenn die beschädigten Metadaten wiederherstellbar sind und führt eine Leseoperation gemäß der Leseanforderung oder eine Schreiboperation gemäß der Schreibanforderung unter Verwendung der wiederhergestellten Metadaten durch. In einer Ausführungsform verarbeitet, wenn die beschädigten Metadaten nicht wiederherstellbar sind, das UECC-Verarbeitungsmodul 111a die nicht wiederherstellbaren Metadaten als einen UECC-Fehler und aktualisiert die erste Mappinginformation 11 mit einer zweiten Mappinginformation 12 durch ein Korrigieren der PPN2. Der Controller 110a kann eine Fehlernachricht, welche anzeigt, dass Lesen hinsichtlich der Leseanforderung unmöglich ist, für den Host vorsehen. Hinsichtlich der Schreibanforderung kann der Controller 110a eine Schreiboperation unter Verwendung der zweiten Mappinginformation 12 durchführen.
  • 6 ist ein Flussdiagramm eines Verfahrens zum Betreiben einer Speichervorrichtung gemäß einer beispielhaften Ausführungsform des erfinderischen Konzepts.
  • Bezug nehmend auf 6 bezieht sich das Verfahren zum Betreiben einer Speichervorrichtung auf ein Verfahren zum Verarbeiten nicht wiederherstellbarer Metadaten wenn eine Schreibanforderung von einem Host empfangen wird und kann Operationen aufweisen, welche zeitsequenziell durchgeführt werden, in beispielsweise der Speichervorrichtung 100, welche in 1 gezeigt ist. Das Verfahren zum Betreiben einer Speichervorrichtung wird unter Bezugnahme auf die Fig. 1 bis 3B und 6 untenstehend beschrieben werden.
  • Die Speichervorrichtung 100 empfängt eine Schreibanforderung und eine logische Adresse von dem Host 200 in Operation S210. Die Speichervorrichtung 100 bestimmt, ob Metadaten beschädigt sind in Operation S220. Die Metadaten sind mit der logischen Adresse verbunden. In einer beispielhaften Ausführungsform bestimmt die Speichervorrichtung 100 ob Mappingdaten, welche eine physikalische Adresse anzeigen, welche der logischen Adresse unter den Metadaten, welche in einen flüchtigen Speicher geladen sind, entsprechen, beschädigt sind. Beispielsweise kann das UECC-Verarbeitungsmodul 111a, welches in dem Controller 110a enthalten ist, bestimmen, ob die Mappingdaten beschädigt sind basierend auf der physikalischen Blockinformation BI, welche in den physikalischen Blockinformationsbereich 112b geladen ist.
  • Ob die Metadaten wiederherstellbar sind, wird in Operation S230 bestimmt. Beispielsweise bestimmt das UECC-Verarbeitungsmodul 111a, ob Backupdaten von den Metadaten existieren und bestimmt, dass die Metadaten wiederherstellbar sind, wenn die Backupdaten existieren. Wenn bestimmt wird, dass die Metadaten nicht wiederherstellbar sind, wird Operation S240 durchgeführt, wenn bestimmt wird, dass die Metadaten wiederherstellbar sind, wird Operation S260 durchgeführt. Die Speichervorrichtung 100 erzeugt eine neue physikalische Adresse zum Schreiben von Daten und korrigiert die Metadaten in Operation S240. Die Speichervorrichtung 100 schreibt die Daten zu der neuen physikalischen Adresse in Operation S250. Die Speichervorrichtung 100 stellt die Metadaten wieder her und verarbeitet die Schreibanforderung in Operation S260. Wenn die Metadaten nicht wiederherstellbar sind, dann kann es nicht möglich sein, zu bestimmen, welche physikalische Adresse der empfangenen logischen Adresse entspricht. Die Erzeugung der neuen physikalischen Adresse kann ein Bestimmen aufweisen, welche der physikalischen Adressen unbenutzt ist und ein Zuordnen der ungenutzten physikalischen Adresse zu der empfangen logischen Adresse. Wenn die Metadaten wiederhergestellt sind, kann das Verarbeiten der Schreibanforderung ein Bestimmen einer physikalischen Adresse aus den wiederhergestellten Metadaten aufweisen und ein Schreiben der Daten zu der bestimmten physikalischen Adresse. Die Daten, welche zu schreiben sind, können zusammen mit der Schreibanforderung und der logischen Adresse empfangen werden.
  • Die 7A und 7B sind Diagramme einer UECC-Verarbeitungsoperation, welche auf Mappingdaten gemäß einer beispielhaften Ausführungsform des erfinderischen Konzepts durchgeführt wird. Bezug nehmend auf die 7A und 7B entspricht eine erste Mappinginformation 13 einer L2P-Mappingtabelle L2P_T1 und eine zweite Mappinginformation 14 entspricht einer L2P-Mappingtabelle L2P_T1a. Die erste Mappinginformation 13 und die zweite Mappinginformation 14 können in einen flüchtigen Speicher (beispielsweise DRAM), welcher in einer Speichervorrichtung enthalten ist, geladen werden.
  • Die erste Mappinginformation 13 kann PPN1 bis PPN5 jeweils entsprechend zu LPN1 bis LPN5 aufweisen. Auf die PPN1 bis PPN5 kann Bezug genommen werden als Mappingdaten. Wenn Mappingdaten, welche der PPN2 in der ersten Mappinginformation 13 entsprechen, nicht wiederherstellbar sind, werden die nicht wiederherstellbaren Mappingdaten in eine UECC-Signatur SIG UECC korrigiert, sodass die erste Mappinginformation 13 mit der zweiten Mappinginformation 14 aktualisiert wird. In einer Ausführungsform entspricht die UECC-Signatur SIG UECC einer physikalischen Adresse PPNu, welche in dem NVM 120 nicht existiert. Beispielsweise kann, wenn der NVM 120 PPN1 bis PPN1000 aufweist, die UECC-Signatur SIG UECC ein PPN1001 sein. Das erfinderische Konzept ist jedoch nicht darauf beschränkt und die UECC-Signatur SIG UECC kann eine Zufallsmarkierung sein, welche anzeigt, dass es unmöglich ist, eine Leseoperation gemäß gegenwärtigen Mappingdaten durchzuführen. Beispielsweise kann, wenn ein Versuch zum Lesen von einer logischen Adresse, welche mit der UECC-Signatur verbunden ist, auftritt, wenn die UECC-Signatur eine physikalische Adresse ist, welche höher ist als eine obere Grenze an physikalischen Adressen für den NVM 120, der Controller (beispielsweise 110) schlussfolgern, dass es nicht möglich ist, aus der logischen Adresse zu lesen. Beispielsweise kann der Controller die obere Grenze speichern, so kann er bestimmen, ob eine physikalische Adresse in den Mappingdaten eine UECC-Signatur ist.
  • 8 ist ein Flussdiagramm von Operationen, welche zwischen dem Host 200 und dem Controller 110 in der UECC-Verarbeitungsoperation, welche in den 7A und 7B gemäß einer beispielhaften Ausführungsform des erfinderischen Konzepts veranschaulicht ist, durchgeführt werden. In einer Ausführungsform entsprechen der Host 200 und der Controller 110 jeweils dem Host 200 und dem Controller 110, welcher in 1 gezeigt ist. Die Operationen werden unter Bezugnahme auf die 1 und 8 untenstehend beschrieben werden.
  • Der Host 200 überträgt eine logische Adresse LA und eine Leseanforderung zu dem Controller 110 in Operation S310. Der Controller 110 überprüft Metadaten, welche mit der logischen Adresse LA verbunden sind in Operation S320. Beispielsweise kann der Controller 110 die Metadaten überprüfen, welche mit der logischen Adresse LA verbunden sind, durch ein Referenzieren einer Tabelle, welche die logische Adresse LA mit den Metadaten verbindet. Der Controller 110 bestimmt, ob eine physikalische Adresse, welche den Metadaten entspricht, inkonsistent mit physikalischer Blockinformation ist, in Operation S330. In einer Ausführungsform wird, wenn die physikalische Adresse, welche den Metadaten entspricht, mit der physikalischen Blockinformation inkonsistent ist, bestimmt, dass die Metadaten beschädigt sind.
  • Wenn bestimmt wird, dass die Metadaten beschädigt sind, bestimmt der Controller 110, ob die beschädigten Metadaten wiederherstellbar sind, in Operation S340. Wenn bestimmt wird, dass die beschädigten Daten nicht wiederherstellbar sind, aktualisiert der Controller 110 eine L2P-Mappingtabelle in Operation S350. In einer Ausführungsform überschreibt der Controller 110 die beschädigten Daten mit einer UECC-Signatur in der L2P-Mappingtabelle. Der Controller 110 überträgt eine Fehlernachricht, welche anzeigt, dass Lesen hinsichtlich der Leseanforderung unmöglich ist, zu dem Host 200 in Operation S360.
  • Gemäß einer beispielhaften Ausführungsform des erfinderischen Konzepts aktualisiert der Controller 110 der Speichervorrichtung 100 eine L2P-Mappingtabelle und überträgt eine Fehlernachricht zu dem Host 200 gemäß einer UECC-Signatur. Demzufolge wird in Antwort auf eine Leseanforderung, deren Verarbeitung beschädigte Metadaten benötigen würde, eine Kommunikation (beispielsweise eine Dateneingabe-/Ausgabeoperation) zwischen dem Controller 110 und dem NVM 120 in der Speichervorrichtung 100 nicht durchgeführt, sondern eine Kommunikation zwischen dem Host 200 und dem Controller 110 fährt normal fort. Als ein Ergebnis können eine Verarbeitungszeit und ein Leistungsverbrauch der Speichervorrichtung 100 hinsichtlich einer Leseanforderung deren Verarbeitung beschädigte Metadaten benötigen würde, verringert werden.
  • Die 9A und 9B sind Diagramme einer UECC-Verarbeitungsoperation, welche auf Mappingdaten gemäß einer beispielhaften Ausführungsform des erfinderischen Konzepts durchgeführt wird. Im Detail zeigt 9A eine erste Mappinginformation 15 und eine zweite Mappinginformation 16, welche in einen flüchtigen Speicher (beispielsweise DRAM) geladen sind, welcher in einer Speichervorrichtung enthalten ist und eine Seite 17 eines NVM (beispielsweise NAND-Speicher), welcher in der Speichervorrichtung enthalten ist. 9B zeigt die Mappingtabelle L2P_T1, welche der ersten Mappinginformation 15 entspricht, eine Mappingtabelle L2P_T1b, welche der zweiten Mappinginformation 16 entspricht, und einen Speicherbereich (beispielsweise den Speicherbereich 122 in 1) des NVM.
  • Die erste Mappinginformation 15 kann die PPN1 bis PPN5 jeweils entsprechend zu der LPN1 bis LPN5 aufweisen. Auf die PPN1 bis PPN5 kann Bezug genommen werden als Mappingdaten. Wenn Mappingdaten, welche der PPN2 in der ersten Mappinginformation 15 entsprechen, nicht wiederherstellbar sind, wird eine physikalische Adresse (beispielsweise die PPN2), welche in den nicht wiederherstellbaren Mappingdaten enthalten ist, in eine neue physikalische Adresse (beispielsweise eine PPN2') korrigiert, sodass die erste Mappinginformation 15 zu der zweiten Mappinginformation 16 aktualisiert wird.
  • Die neue physikalische Adresse (das heißt die PPN2') ist eine physikalische Adresse zum Speichern von Daten, welche eine UECC anzeigen. Die neue physikalische Adresse (das heißt die PPN2') kann einer gültigen Adresse zugeordnet werden. Beispielsweise kann die neue physikalische Adresse (das heißt die PPN2') der zweiten Seite PAGE2 des zweiten Blocks BLK2 entsprechen, welcher in dem Speicherbereich 122 enthalten ist, und die alte physikalische Adresse (das heißt die PPN2) kann in einen ungültigen Zustand in der physikalischen Blockinformation geändert werden. Die neue physikalische Adresse (das heißt die PPN2') kann für jede logische Adresse unterschiedlich sein. Das erfinderische Konzept ist jedoch nicht darauf beschränkt. Beispielsweise kann die neue physikalische Adresse (das heißt die PPN2') dieselbe sein unabhängig von einer logischen Adresse.
  • 10 ist ein Flussdiagramm von Operationen, welche zwischen dem Host 200, dem Controller 110 und dem NVM 120 in der UECC-Verarbeitungsoperation durchgeführt werden, welche in den 9A und 9B gemäß einer beispielhaften Ausführungsform des erfinderischen Konzepts veranschaulicht ist. In einer Ausführungsform entsprechen der Host 200, der Controller 110 und der NVM 120 jeweils dem Host 200, dem Controller 110 und dem NVM 120, welche in 1 gezeigt sind.
  • Die Operationen, welche in 10 veranschaulicht sind, sind Modifikationen der Operationen, welche in 8 veranschaulicht sind. Operationen S310 bis S340 sind im Wesentlichen dieselben wie diejenigen, welche in 8 gezeigt sind. Demnach werden redundante Beschreibungen davon ausgelassen werden. Der Controller 110 aktualisiert eine L2P-Mappingtabelle in Operation S350a. In einer Ausführungsform aktualisiert der Controller 110 die L2P-Mappingtabelle durch ein Korrigieren einer physikalischen Adresse, welche in den beschädigten Metadaten enthalten ist, in eine neue physikalische Adresse PA in der L2P-Mappingtabelle.
  • Der Controller 110 überträgt die neue physikalische Adresse PA und einen Schreibbefehl WCMD zu dem NVM 120 in Operation S370. Der NVM 120 schreibt Daten, welche eine UECC anzeigen, zu der neuen physikalischen Adresse PA in Operation S380. Die neue physikalische Adresse PA kann einer Spare Area entsprechen, welche in dem Speicherbereich 122 enthalten ist. Der NVM 120 überträgt eine Antwortnachricht zu dem Controller, welche anzeigt, dass die Schreiboperation in Operation S390 vollendet wurde. Der Controller 110 überträgt eine Fehlernachricht zu dem Host 200, welche anzeigt, dass Lesen hinsichtlich der Leseanforderung unmöglich ist in Operation S360a.
  • 11 ist ein Diagramm einer UECC-Verarbeitungsoperation, welche auf Trimmdaten gemäß einer beispielhaften Ausführungsform des erfinderischen Konzepts durchgeführt wird.
  • Bezug nehmend auf 11 weist eine erste Metaseite 21, welche in einen flüchtigen Speicher (beispielsweise DRAM) geladen ist, welcher in einer Speichervorrichtung enthalten ist, einen L2P-Bereich auf, welcher Mappingdaten speichert, welche eine physikalische Adresse anzeigen, welche einer logischen Adresse entspricht, und ein Trimmbitmap, welches Trimmdaten speichert, welche Daten anzeigen, welche von einem Host gelöscht sind. Wenn die Speichervorrichtung eine Trimmfunktion unterstützt, weist die erste Metaseite 21 das Trimmbitmap auf. In einer beispielhaften Ausführungsform werden, wenn der Host Daten löscht, welche zu der Speichervorrichtung geschrieben wurden, Daten eines entsprechenden Blocks nicht aktuell von einem NVM gelöscht, sondern eine Löschung der Daten wird nur in den Trimmdaten markiert, welche in dem Trimmbitmap enthalten sind. In einer Ausführungsform weisen die Trimmdaten eine Mehrzahl von Bits auf und jedes Bit zeigt eine Löschung oder Nichtlöschung von Nutzerdaten, welche Mappingdaten entsprechen, an. Beispielsweise könnte ein erstes Bit der Trimmdaten anzeigen, ob Daten, welche mit PPN1 verbunden sind, gelöscht sind, ein zweites Bit der Trimmdaten könnte anzeigen, ob Daten, welche mit PPN2 verbunden sind, gelöscht sind etc.
  • Wenn die Trimmdaten in der ersten Metaseite 21 beschädigt sind, werden Mappingdaten bezogen auf die beschädigten Trimmdaten überprüft. Die zugehörigen Mappingdaten können gemäß der Platzierungsreihenfolge der Bits überprüft werden. Die Mappingdaten, welche auf die beschädigten Trimmdaten bezogen sind, können die PPN2 sein. Die erste Metaseite 21 kann in eine zweite Metaseite 22 korrigiert werden durch ein Durchführen einer UECC-Verarbeitung auf der PPN2. Die PPN2 kann ausgedrückt werden als eine UECC-Signatur in der zweiten Metaseite 22. In einer Ausführungsform wird die PPN2 in eine neue physikalische Adresse (das heißt die PPN2') in der zweiten Metaseite 22 korrigiert.
  • 12 ist ein Blockschaltbild einer Speichervorrichtung 100' gemäß einer beispielhaften Ausführungsform des erfinderischen Konzepts.
  • Bezug nehmend auf 12 weist die Speichervorrichtung 100' einen Controller 110' und den NVM 120 auf. Die Speichervorrichtung 100' ist eine Modifikation der Speichervorrichtung 100, welche in 1 gezeigt ist. Demnach werden redundante Beschreibungen davon ausgelassen werden. Anders als der Controller 110, welcher in 1 gezeigt ist, weist der Controller 110' ferner ein Fehlerüberprüf- und -korrektur (ECC)-Modul 113 auf. In einer Ausführungsform erfasst das ECC-Modul 113 ein Fehlerbit in Metadaten, welche in dem Metadatenspeicher MDS gespeichert sind, durch ein Durchführen einer ECC-Operation auf den Metadaten und korrigiert das Fehlerbit. Das ECC-Modul 113 kann eine ECC-Operation auf jedem ECC-Datenblock durchführen.
  • 13 ist ein Blockschaltbild eines Beispiels 110b des Controllers 110', welcher in 12 gezeigt ist. Bezug nehmend auf 13 ist der Controller 110b eine Modifikation des Controllers 110a, welcher in 2 gezeigt ist. Demnach werden redundante Beschreibungen davon ausgelassen werden. Anders als der Speicher MEMa, welcher in 2 gezeigt ist, weist ein Speicher MEMb ferner das ECC-Modul 113 auf. Das ECC-Modul 113 kann durch Software oder Firmware implementiert sein und kann in den Speicher MEMb geladen sein. Alternativ kann das ECC-Modul 113 durch Hardware (beispielsweise eine Schaltung) in dem Speicher MEMb implementiert sein. Obwohl die FTL 111 und das ECC-Modul 130 voneinander in 13 getrennt sind, ist das erfinderische Konzept nicht darauf beschränkt. In einer beispielhaften Ausführungsform ist das ECC-Modul 113 als ein Teil der FTL 111 implementiert. Obwohl das ECC-Modul 113 innerhalb des Speichers MEMb in 13 platziert ist, ist das erfinderische Konzept nicht darauf beschränkt. In einer beispielhaften Ausführungsform ist das ECC-Modul 113 außerhalb des Speichers MEMb platziert.
  • 14 ist ein Flussdiagramm eines Verfahrens zum Betreiben einer Speichervorrichtung gemäß einer beispielhaften Ausführungsform des erfinderischen Konzepts.
  • Bezug nehmend auf 14 bezieht sich das Verfahren zum Betreiben einer Speichervorrichtung auf ein Verfahren zum Verarbeiten nicht wiederherstellbarer Metadaten wenn eine Leseanforderung von einem Host empfangen wird und kann Operationen aufweisen, welche zeitsequenziell durchgeführt werden in beispielsweise der Speichervorrichtung 100', welche in 12 gezeigt ist. Das Verfahren zum Betreiben einer Speichervorrichtung wird unter Bezugnahme auf die 12 bis 14 untenstehend beschrieben werden.
  • Die Speichervorrichtung 100' empfängt eine Leseanforderung und eine logische Adresse von einem Host in Operation S410. Die Speichervorrichtung 100' bestimmt, ob Metadaten beschädigt sind, in Operation S420. Beispielsweise sind die Metadaten mit der empfangenen logischen Adresse verbunden. In einer Ausführungsform bestimmt die Speichervorrichtung 100', ob die Metadaten beschädigt sind durch ein Überprüfen, ob ein Fehlerbit existiert durch ein Durchführen einer ECC-Operation auf jedem ECC-Datenblock der Metadaten. Beispielsweise kann das UECC-Verarbeitungsmodul 111a, welches in dem Controller 110b enthalten ist, bestimmen, ob die Metadaten beschädigt sind basierend auf einer Ausgabe des ECC-Moduls 113 ohne Bezugnahme auf die physikalische Blockinformation BI, welche in den physikalischen Blockinformationsbereich 112b geladen ist.
  • Ob die Anzahl von Fehlerbits eine ECC-Toleranzgrenze überschreitet, wird in Operation S430 bestimmt. Die ECC-Toleranzgrenze ist die Anzahl von Fehlerbits, welche durch das ECC-Modul 113 korrigiert werden kann. Beispielsweise könnte die ECC-Toleranzgrenze des ECC-Moduls 113 eins entsprechen. Wenn bestimmt wird, dass die Anzahl von Fehlerbits die ECC-Toleranzgrenze überschreitet, wird Operation S440 durchgeführt. Wenn bestimmt wird, dass die Anzahl von Fehlerbits die ECC-Toleranzgrenze nicht überschreitet, wird Operation S450 durchgeführt. Operation S430 wird im Detail unter Bezugnahme auf 15 später beschrieben werden.
  • Alle Metadaten in dem ECC-Datenblock werden als UECC-Fehler in Operation S440 verarbeitet. Beispielsweise kann das UECC-Verarbeitungsmodul lila alle Metadaten, welche in dem ECC-Datenblock enthalten sind, als UECC-Fehler verarbeiten, wenn die Anzahl von Fehlerbits die ECC-Toleranzgrenze überschreitet. Ein Fehlerbit wird wiederhergestellt und die Leseanforderung wird in Operation S450 verarbeitet. Beispielsweise kann das ECC-Modul 113 das Fehlerbit wiederherstellen und die Speichervorrichtung 100' kann eine Leseoperation gemäß der Leseanforderung durchführen. In einer Ausführungsform wird das Fehlerbit wiederhergestellt, wenn das ECC-Modul 113 in der Lage ist, die Metadaten zu korrigieren, und die Speichervorrichtung 100 führt die Leseoperation unter Verwendung der korrigierten Metadaten durch. Wenn das ECC-Modul 113 nicht in der Lage ist, die Metadaten zu korrigieren, ist die Speichervorrichtung 100 nicht in der Lage, die Leseoperation durchzuführen.
  • 15 ist ein Diagramm einer ECC-Operation, welche basierend auf der Anzahl von Fehlerbits in Metadaten gemäß einer beispielhaften Ausführungsform des erfinderischen Konzepts durchgeführt wird.
  • Bezug nehmend auf die 13 und 15 ist die ECC-Toleranzgrenze des ECC-Moduls 113 ein Fehlerbit. Wenn es einen 1-Bit-Fehler in einer physikalischen Adresse PPNa gibt, wird die physikalische Adresse PPNa in eine erste beschädigte physikalische Adresse PPNa' geändert. Das ECC-Modul 113 kann den 1-Bit-Fehler korrigieren, da die Anzahl von Fehlerbits eins ist und demnach wird die erste beschädigte physikalische Adresse PPNa' in die normale physikalische Adresse PPNa korrigiert.
  • Wenn es jedoch einen 2-Bit-Fehler in der physikalischen Adresse PPNa gibt, wird die physikalische Adresse PPNa in eine zweite beschädigte physikalische Adresse PPNa" geändert. Da die Anzahl von Fehlerbits zwei ist, kann das ECC-Modul 113 den 2-Bit-Fehler erfassen, kann jedoch den 2-Bit-Fehler nicht korrigieren. Demzufolge kann die zweite beschädigte physikalische Adresse PPNa" nicht wiederherstellbaren Metadaten entsprechen.
  • 16 ist ein Diagramm einer Operation zum Verarbeiten nicht wiederherstellbarer Metadaten gemäß einer beispielhaften Ausführungsform des erfinderischen Konzepts.
  • Bezug nehmend auf die 12 und 16 ist ein erster ECC-Datenblock in dem Metadatenbereich 112 des Speichers MEMb, welcher in 13 veranschaulicht ist, gespeichert, und der Speicher MEMb kann ein DRAM sein. Der erste ECC-Datenblock 31 kann eine Mehrzahl von Mappingdaten PPN1 bis PPN7 und Parität aufweisen. Die Größe jeder Mappingdaten kann 4 Bytes sein und die Größe des ersten ECC-Datenblocks 31 kann 32 Bytes sein, das erfinderische Konzept ist jedoch nicht darauf beschränkt. Beispielsweise können die Mappingdaten PPN5 Fehlerbits haben, welche eine ECC-Toleranzgrenze überschreiten.
  • In einer Ausführungsform erfasst das ECC-Modul 113 ein Fehlerbit in dem ersten ECC-Datenblock 31 durch ein Überprüfen der Parität und korrigiert Fehlerbits innerhalb der ECC-Toleranzgrenze. Wenn jedoch die Anzahl von Fehlerbits, welche erfasst ist, die ECC-Toleranzgrenze überschreitet, kann das ECC-Modul 113 die Fehlerbits nicht korrigieren. Wenn die Anzahl von Fehlern die ECC-Toleranzgrenze überschreitet, bestimmt das Metadatenverarbeitungsmodul MDP, dass alle Mappingdaten PPN1 bis PPN7, welche in dem ersten ECC-Datenblock 31 enthalten sind, nicht wiederherstellbare Metadaten sind.
  • In einer Ausführungsform setzt das Metadatenverarbeitungsmodul MDP die Parität gemäß dem gegenwärtigen Zustand der Mappingdaten PPN1 bis PPN7, welche in dem ersten ECC-Datenblock 31 enthalten sind, zurück und verarbeitet alle Mappingdaten PPN1 bis PPN7 als UECC-Fehler, wodurch der erste ECC-Datenblock 31 in einen zweiten ECC-Datenblock 32 korrigiert wird. Nach dem Korrigieren kann eine UECC-Schreiboperation für eine UECC-Fehlerverarbeitung durchgeführt werden. Die UECC-Schreiboperation kann auf dem NVM 120 der Speichervorrichtung 100' durchgeführt werden. Alternativ kann die UECC-Schreiboperation auf einem flüchtigen Speicher (beispielsweise DRAM) der Speichervorrichtung 100' durchgeführt werden, und der flüchtige Speicher kann in dem Controller 110' enthalten sein.
  • Wenn die Speichervorrichtung 100' eine Leseanforderung bezogen auf eine Mehrzahl von Mappingdaten, welche in dem zweiten ECC-Datenblock 32 enthalten sind, empfängt, kann die Speichervorrichtung 100' eine Fehlernachricht für den Host vorsehen, welche anzeigt, dass ein Lesen hinsichtlich der Leseanforderung unmöglich ist. Eine Operation zum Verarbeiten von Mappingdaten als ein UECC-Fehler wird unter Bezugnahme auf die 17A bis 19 untenstehend beschrieben werden.
  • Die 17A und 17B sind Diagramme eine UECC-Verarbeitungsoperation, welche auf Mappingdaten gemäß einer beispielhaften Ausführungsform des erfinderischen Konzepts durchgeführt wird. Bezug nehmend auf die 17A und 17B kann ein erster ECC-Datenblock 33 der L2P-Mappingtabelle L2P_T1 entsprechen und ein zweiter ECC-Datenblock 34 kann einer L2P-Mappingtabelle L2P_T1a' entsprechen. Der erste und zweite ECC-Datenblock 33 und 34 können in einem flüchtigen Speicher (beispielsweise DRAM) gespeichert werden, welcher in einer Speichervorrichtung enthalten ist.
  • Der erste ECC-Datenblock 33 kann die PPN1 bis PPN7 aufweisen, welche jeweils LPN1 bis LPN7 entsprechen. Auf die PPN1 bis PPN7 kann Bezug genommen werden als Mappingdaten. Wenn eine Leseanforderung hinsichtlich einer unter der LPN1 bis LPN7 empfangen wird, kann ein Fehlerbit in dem ersten ECC-Datenblock 33 erfasst werden durch ein Überprüfen von Paritätsdaten, welche in dem ersten ECC-Datenblock 33 enthalten sind, und kann innerhalb einer ECC-Toleranzgrenze korrigiert werden. Wenn jedoch die Anzahl von erfassten Fehlerbits die ECC-Toleranzgrenze überschreitet, kann bestimmt werden, dass alle Mappingdaten PPN1 bis PPN7, welche in dem ersten ECC-Datenblock 33 enthalten sind, nicht wiederherstellbare Metadaten sind.
  • Zu dieser Zeit kann der erste ECC-Datenblock 33 mit dem zweiten ECC-Datenblock 34 durch ein Korrigieren aller Mappingdaten PPN1 bis PPN7, welche in dem ersten ECC-Datenblock 33 enthalten sind, in die UECC-Signatur SIG UECC aktualisiert werden. Die UECC-Signatur SIG UECC kann der physikalischen Adresse PPNu entsprechen, welche in dem NVM 120 nicht existiert. Demzufolge kann jede physikalische Adresse, welche dem zweiten ECC-Datenblock 34 entspricht, der PPNu in der Mappingtabelle L2P_T1a' entsprechen. Obwohl alle PPNs, welche der LPN1 bis LPN3 entsprechen, die PPNu in der Mappingtabelle L2P_T1a' sind, ist das erfinderische Konzept nicht darauf beschränkt. In einer beispielhaften Ausführungsform können UECC-Signaturen, welche unterschiedlichen logischen Adressen entsprechen, unterschiedlich voneinander sein.
  • 18 ist ein Diagramm einer UECC-Verarbeitungsoperation, welche auf Mappingdaten gemäß einer beispielhaften Ausführungsform des erfinderischen Konzepts durchgeführt wird. 18 zeigt einen ersten und zweiten ECC-Datenblock 33 und 35, welche in einem flüchtigen Speicher (beispielsweise DRAM) gespeichert sind, welcher in einer Speichervorrichtung enthalten ist, und eine Seite 36 eines NVM (beispielsweise einem NAND-Speicher), welche in der Speichervorrichtung enthalten ist. Auf die 12 und 18 wird in der Beschreibung untenstehend Bezug genommen werden.
  • Wenn Mappingdaten, welche in dem ersten ECC-Datenblock 33 enthalten sind, welcher in dem DRAM gespeichert ist, beschädigt und nicht wiederherstellbar sind, wird der erste ECC-Datenblock 33 mit dem zweiten ECC-Datenblock 35 aktualisiert durch ein Verarbeiten aller Mappingdaten, welche in dem ersten ECC-Datenblock 33 enthalten sind, als UECC-Fehler. Die PPN1 bis PPN7 können in unterschiedlichen neue physikalischen Adressen PPN1' bis PPN7' korrigiert werden und eine Parität kann in eine Parität' korrigiert werden gemäß den neuen physikalischen Adressen PPN1' bis PPN7' in dem zweiten ECC-Datenblock 35. Jede der neuen physikalischen Adressen PPN1' bis PPN7' kann eine physikalische Adresse zum Speichern von Daten sein, welche einen UECC-Fehler anzeigen und kann einer gültigen Adresse zugewiesen sein.
  • Danach können die Daten, welche einen UECC-Fehler anzeigen, in der Seite 36 des NVM 120 gespeichert werden. Die Seite 36 kann eine einer Mehrzahl von Seiten sein, welche in dem Speicherbereich 122 des NVM 120 enthalten sind. Die Daten, welche einen UECC-Fehler anzeigen, können in einer Spare Area oder einem reservierten Bereich, welcher in der Seite 36 enthalten ist, gespeichert werden. Obwohl die neuen physikalischen Adressen PPN1' bis PPN7' einer Seite 36 in einem Block in 18 entsprechen, ist das erfinderische Konzept nicht darauf beschränkt. Jede der neuen physikalischen Adressen PPN1' bis PPN7' kann einem unterschiedlichen Block oder Seite des Metabereichs 121 entsprechen.
  • Wenn die Speichervorrichtung 100' eine Leseanforderung hinsichtlich einer logischen Adresse empfängt, welche einem einer Mehrzahl von Mappingdaten entspricht, welche in dem zweiten ECC-Datenblock 35 enthalten sind, liest die Speichervorrichtung 100' die Seite 36 des NVM 120, welche durch eine physikalische Adresse angezeigt ist, welche der logischen Adresse entspricht, und sieht ein Leseergebnis für einen Host vor. Beispielsweise liest, wenn die Speichervorrichtung 100' eine Leseanforderung hinsichtlich LPN2 empfängt, die Speichervorrichtung 100' die Seite 36 des NVM 120, welche durch PPN2' angezeigt ist, und kann eine Fehlernachricht für den Host vorsehen, welche anzeigt, dass Lesen hinsichtlich der Leseanforderung unmöglich ist.
  • 19 ist ein Diagramm einer UECC-Verarbeitungsoperation, welche auf Mappingdaten gemäß einer beispielhaften Ausführungsform des erfinderischen Konzepts durchgeführt wird. 19 zeigt einen ersten und zweiten ECC-Datenblock 33 und 37, welche in einem flüchtigen Speicher (beispielsweise DRAM) gespeichert sind, welcher in einer Speichervorrichtung enthalten ist, und eine Seite 38 eines NVM (beispielsweise eines NAND-Speichers), welche in der Speichervorrichtung enthalten ist. Auf die 12 und 19 wird in der Beschreibung untenstehend Bezug genommen werden.
  • Wenn Mappingdaten, welche in dem ersten ECC-Datenblock 33 enthalten sind, welcher in dem DRAM gespeichert ist, beschädigt und nicht wiederherstellbar sind, wird der erste ECC-Datenblock 33 mit dem zweiten ECC-Datenblock 37 aktualisiert durch ein Verarbeiten aller Mappingdaten, welche in dem ersten ECC-Datenblock 33 enthalten sind, als UECC-Fehler. Die PPN1 bis PPN7 können in eine fixierte physikalische Adresse PPNf korrigiert werden und die Parität kann in eine Parität" gemäß der fixierten physikalischen Adresse PPNf in dem zweiten ECC-Datenblock 37 korrigiert werden. Die fixierte physikalische Adresse PPNf kann eine physikalische Adresse sein, welche vordefiniert ist, um Daten zu speichern, welche einen UECC-Fehler anzeigen und kann einer gültigen Adresse zugewiesen sein.
  • Danach können die Daten, welche einen UECC-Fehler anzeigen, in der Seite 38 des NVM 120 gespeichert werden. Die Seite 38 kann eine einer Mehrzahl von Seiten sein, welche in dem Speicherbereich 122 des NVM 120 enthalten ist. Die Daten, welche einen UECC-Fehler anzeigen, können in einer Spare Area oder einem reservierten Bereich, welcher in der Seite 38 enthalten ist, gespeichert werden.
  • Wenn die Speichervorrichtung 100' eine Leseanforderung hinsichtlich einer logischen Adresse empfängt, welche einen einer Mehrzahl von Mappingdaten entspricht, welche in dem zweiten ECC-Datenblock 37 enthalten sind, liest die Speichervorrichtung 100' die Seite 38 der NVM 120, welche durch die fixierte physikalische Adresse PPNf angezeigt wird, und sieht ein Leseergebnis für einen Host vor. Beispielsweise liest, wenn die Speichervorrichtung 100' eine Leseanforderung hinsichtlich der LPN2 empfängt, die Speichervorrichtung 100' die Seite 38 des NVM 120, welche durch PPNf angezeigt ist, und sieht eine Fehlernachricht für den Host vor, welche anzeigt, dass Lesen hinsichtlich der Leseanforderung unmöglich ist.
  • 20 ist ein Flussdiagramm eines Verfahrens zum Betreiben einer Speichervorrichtung gemäß einer beispielhaften Ausführungsform des erfinderischen Konzepts.
  • Bezug nehmend auf 20 bezieht sich das Verfahren zum Betreiben einer Speichervorrichtung auf ein Verfahren zum Verarbeiten nicht wiederherstellbarer Metadaten, wenn eine Leseanforderung von einem Host empfangen wird, und kann Operationen aufweisen, welche zeitsequenziell durchgeführt werden, beispielsweise in der Speichervorrichtung 100', welche in 12 gezeigt ist. Das Verfahren zum Betreiben einer Speichervorrichtung wird unter Bezugnahme auf die 12 und 20 untenstehend beschrieben werden.
  • Die Speichervorrichtung 100' empfängt eine Leseanforderung und eine logische Adresse in Operation S510. Die Speichervorrichtung 100' bestimmt, ob Trimmdaten beschädigt sind, in Operation S520. In einer Ausführungsform bestimmt die Speichervorrichtung 100', ob die Trimmdaten beschädigt sind, durch ein Überprüfen, ob es ein Fehlerbit gibt, durch ein Durchführen einer ECC-Operation auf jedem ECC-Datenblock von Trimmdaten. Beispielsweise kann das UECC-Verarbeitungsmodul 111a, welches in dem Controller 110b enthalten ist, bestimmen, ob die Trimmdaten beschädigt sind basierend auf einer Ausgabe des ECC-Moduls 113 ohne eine Bezugnahme auf die physikalische Blockinformation BI, welche zu dem physikalischen Blockinformationsbereich 112b geladen ist.
  • Ob die Anzahl von Fehlerbits eine ECC-Toleranzgrenze überschreitet, wird in Operation S530 bestimmt. Operation S530 kann im Wesentlichen dieselbe sein wie Operation S430, welche in 14 gezeigt ist. Mapping-ECC-Datenblöcke, welche den Trimmdaten entsprechen, werden als UECC-Fehler in Operation S540 verarbeitet. Beispielsweise kann das UECC-Verarbeitungsmodul lila alle Metadaten, welche in jedem Mapping-ECC-Datenblock enthalten sind, als UECC-Fehler verarbeiten. Ein Fehlerbit wird wiederhergestellt und die Leseanforderung wird in Operation S550 verarbeitet.
  • 21 ist ein Diagramm einer UECC-Verarbeitungsoperation, welche auf nicht wiederherstellbaren Trimmdaten gemäß einer beispielhaften Ausführungsform des erfinderischen Konzepts durchgeführt wird.
  • Bezug nehmend auf die 12 und 21 kann eine erste Metaseite 41 in dem Metadatenbereich 112 von beispielsweise dem Speicher MEMb, welcher in 13 gezeigt ist, gespeichert werden. Der Speicher MEMb kann ein DRAM sein. Die erste Metaseite 41 weist einen L2P-Bereich, welcher Mappingdaten aufweist, welche eine physikalische Adresse anzeigen, welche einer logischen Adresse entspricht, und ein Trimmbitmap, welches Trimmdaten aufweist, welche Daten anzeigen, welche von einem Host gelöscht sind.
  • Der L2P-Bereich kann eine Mehrzahl von Mapping-ECC-Datenblöcken EC1 bis EC5 aufweisen und das Trimmbitmap kann einen ersten und zweiten Trimm-ECC-Datenblock ECa und ECb aufweisen. Beispielsweise kann der erste Trimm-ECC-Datenblock ECa beschädigt sein und kann auf den dritten und vierten Mapping-ECC-Datenblock EC3 und EC4 bezogen sein. In anderen Worten gesagt kann der erste Trimm-ECC-Datenblock ECa ein Löschen oder Nichtlöschen von Nutzerdaten anzeigen, entsprechend Mappingdaten, welche in dem dritten und vierten Mapping-ECC-Datenblock EC3 und EC4 enthalten sind.
  • Die erste Metaseite 41 kann in eine zweite Metaseite 42 korrigiert werden durch ein Durchführen einer UECC-Verarbeitung auf dem dritten und vierten Mapping-ECC-Datenblock EC3 und EC4 bezogen auf den beschädigten ersten Trimm-ECC-Datenblock ECa. Demzufolge können eine Mehrzahl von Mappingdaten, welche in dem dritten Mapping-ECC-Datenblock EC3 enthalten sind, und eine Mehrzahl von Mappingdaten, welche in dem vierten Mapping-ECC-Datenblock EC4 enthalten sind, alle UECCverarbeitet werden. Der dritte Mapping-ECC-Datenblock EC3 kann dem ersten ECC-Datenblock 31, welcher in 16 gezeigt ist, entsprechen. Der erste Trimm-ECC-Datenblock ECa, welcher beschädigt wurde, kann auf ECa' zurückgesetzt werden.
  • 22 ist ein Blockschaltbild eines Controllers 110c gemäß einer beispielhaften Ausführungsform des erfinderischen Konzepts. Bezug nehmend auf 22 ist der Controller 110c eine Modifikation des Controllers 110a, welcher in 2 gezeigt ist. Demnach werden redundante Beschreibungen davon ausgelassen werden. Im Gegensatz zu dem Metadatenbereich 112, welcher in 2 gezeigt ist, weist ein Metadatenbereich 112' ferner einen Directorybereich 112c auf, welcher ein Directory speichert. Auf die 1 und 22 wird in der Beschreibung untenstehend Bezug genommen werden.
  • Der Directorybereich 112c speichert ein Directory, welches von dem Metabereich 121 des NVM 120 zu einem Speicher MEMc geladen werden kann, wenn Leistung einer Speichervorrichtung zugeführt wird. Das Directory kann eine Mehrzahl von Directorydaten aufweisen. Jedes Directorydatum kann eine physikalische Adresse anzeigen, an welcher Metadaten gespeichert sind. Beispielsweise kann das Directory eine physikalische Adresse anzeigen, an welcher Metadaten wie beispielsweise eine Mappingtabelle oder physikalische Blockinformation in dem Metabereich 121 des NVM 120 gespeichert sind.
  • 23 ist ein Flussdiagramm eines Verfahrens zum Betreiben einer Speichervorrichtung gemäß einer beispielhaften Ausführungsform des erfinderischen Konzepts.
  • Bezug nehmend auf 23 bezieht sich das Verfahren zum Betreiben einer Speichervorrichtung auf ein Verfahren zum Verarbeiten von beschädigten Directorydaten und kann Operationen aufweisen, welche zeitsequenziell in beispielsweise der Speichervorrichtung 100, welche in 1 gezeigt ist, und dem Controller 110c, welcher in 22 gezeigt ist, durchgeführt werden. Das Verfahren zum Betreiben der Speichervorrichtung 100 wird unter Bezugnahme auf die 1, 21 und 23 untenstehend beschrieben werden.
  • Leistung wird der Speichervorrichtung 100 in Operation S610 zugeführt. Ein Directory, welches in dem NVM 120 gespeichert ist, wird in den flüchtigen Speicher MEMc in Operation S620 geladen. Das Directory, welches in dem Metabereich 121 des NVM 120 gespeichert ist, kann in den Directorybereich 112c des flüchtigen Speichers MEMc geladen werden. Ob eine Mehrzahl von Directorydaten beschädigt ist, wird in Operation S630 bestimmt. Beispielsweise kann das UECC-Verarbeitungsmodul 111a, welches in dem Controller 110c enthalten ist, bestimmen, ob das Directory, welches in den Directorybereich 112c geladen ist, beschädigt ist basierend auf der physikalischen Blockinformation BI, welche in den physikalischen Blockinformationsbereich 112b geladen ist.
  • Ob beschädigte Directorydaten wiederherstellbar sind, wird in Operation S640 bestimmt. Beispielsweise kann das UECC-Verarbeitungsmodul lila bestimmen, ob Backupdaten der Directorydaten existieren und kann bestimmen, dass die beschädigten Directorydaten wiederherstellbar sind, wenn die Backupdaten existieren. Wenn bestimmt wird, dass die beschädigten Directorydaten nicht wiederherstellbar sind, wird Operation S650 durchgeführt. Wenn bestimmt wird, dass die beschädigten Directorydaten wiederherstellbar sind, wird Operation S660 durchgeführt. Erste Metadaten, welche ersten Directorydaten entsprechen, welche beschädigt worden sind, werden als ein UECC-Fehler in Operation S650 verarbeitet. Die ersten Directorydaten, welche beschädigt worden sind, werden wiederhergestellt, und Metadaten werden in den flüchtigen Speicher MEMc in Operation S660 geladen. Wenn keine der Mehrzahl von Directorydaten beschädigt ist, werden keine der Metadaten, welche mit den Directorydaten verbunden sind, als ein UECC-Fehler verarbeitet.
  • 24A ist ein Diagramm der Speicherzellanordnung MCA, welche in dem NVM 120 enthalten ist, welcher in 1 gemäß einer beispielhaften Ausführungsform des erfinderischen Konzepts gezeigt ist. 24B ist ein Diagramm eines Speicherblocks, welcher in dem Speicherbereich 122 enthalten ist, welcher in 24A gemäß einer beispielhaften Ausführungsform des erfinderischen Konzepts enthalten ist. Auf die 1, 24A und 24B wird in der Beschreibung untenstehend Bezug genommen.
  • Bezug nehmend auf 24A weist der Metadatenbereich 121 eine Mehrzahl von Mappingtabellen L2P_T1 bis L2P_T13 auf, welche Mappinginformation hinsichtlich Nutzerdaten speichern, welche in dem Speicherbereich 122 gespeichert sind. Der Speicherbereich 122 kann physikalisch oder logisch in verschiedene Einheiten unterteilt sein. Beispielsweise kann der Speicherbereich 122 eine Mehrzahl von Ebenen PL1 und PL2 aufweisen, von welchen jede eine Mehrzahl von Blöcken BLK1 und BLK2 aufweisen kann. Jeder Block BLK1 oder BLK2 kann eine Löscheinheit des NVM 120 sein. Auch wenn nur eine einzelne Seite einer Löscheinheit (beispielsweise ein Block) zu löschen ist, kann solch eine Löschung eine Löschung der gesamten Löscheinheit benötigen.
  • Bezug nehmend auf 24B kann ein Block BLK einem der Blöcke BLK1 und BLK2 entsprechen, welche in 24A gezeigt sind. Der Block BLK kann eine Mehrzahl von Seiten PAGE1 und PAGE2 aufweisen. Eine Mehrzahl von Speicherzellen, welche in jeder der Seiten PAGE1 und PAGE2 enthalten ist, kann mit einer Wortleitung verbunden sein. Eine Schreib-/Leseeinheit des NVM 120 kann der Größe jeder Seite entsprechen. Beispielsweise kann, wenn die Schreibeinheit die Größe einer Seite ist, auch wenn Daten mit einer Größe geringer als der Seite zu dem NVM 120 zu schreiben sind, kann solch ein Schreiben benötigen, dass eine gesamte Seite geschrieben wird. Die erste Seite PAGE1 weist einen Datenbereich DA und ein Spare Area SA auf. Nutzerdaten, welche durch den Controller 110 angefordert werden um geschrieben zu werden, können zu dem Datenbereich DA geschrieben werden.
  • Die Spare Area SA kann ein leerer Raum sein anders als der Datenbereich DA in der ersten Seite PAGE1. Die Spare Area SA kann Spare-Daten, beispielsweise Wiederherstellungsinformation speichern. Die Wiederherstellungsinformation zum Wiederherstellen von Metadaten, welche in dem Metadatenspeicher MDS (beispielsweise einem DRAM) des Controllers 110 gespeichert sind, wenn die Speichervorrichtung 110 abnormal gestoppt wird, können in die Spare Area SA geschrieben werden. Die Wiederherstellungsinformation kann eine logische Adresse (beispielsweise eine LPN) aufweisen, welche der ersten Seite PAGE1 entspricht. Demzufolge können die Metadaten, welche in dem Metadatenspeicher MDS gespeichert sind, mit der logischen Adresse verglichen werden, welche in der Wiederherstellungsinformation enthalten ist, welche in der Spare Area SA gespeichert ist, um zu bestimmen, ob die Metadaten, welche in dem Metadatenspeicher MDS gespeichert sind, gültig oder ungültig sind. Eine ECC-Parität zum Erfassen und/oder Korrigieren eines Fehlers, welcher in Daten auftritt, welche zu dem Datenbereich DA geschrieben sind, kann ebenso zu der Spare Area SA geschrieben werden.
  • 25 ist ein Diagramm eines Directory DRT gemäß einer beispielhaften Ausführungsform des erfinderischen Konzepts.
  • Bezug nehmend auf 25 kann das Directory DRT eine erste bis fünfte metaphysikalische Adresse MetaPPN1 bis MetaPPN5 aufweisen, bei welchen die erste bis fünfte L2P-Mappingtabelle L2P_T1 bis L2P_T5 jeweils in dem Metabereich 121 des NVM 120 gespeichert sind. Auf die erste bis fünfte metaphysikalische Adresse MetaPPN1 bis MetaPPN5 kann Bezug genommen werden als erste bis fünfte Directorydaten. Beispielsweise kann die zweite L2P-Mappingtabelle L2P_T2 bei der zweiten metaphysikalischen Adresse MetaPPN2 des Metabereich 121 gespeichert sein, und die zweite metaphysikalische Adresse MetaPPN2 kann der ersten Seite PAGE1 des zweiten Blocks BLK2 des Metabereichs 121 entsprechen.
  • 26 ist ein Diagramm einer UECC-Verarbeitungsoperation, welche auf einem Directory gemäß einer beispielhaften Ausführungsform des erfinderischen Konzepts durchgeführt wird.
  • Bezug nehmend auf die 22, 25 und 26 kann ein Directory 51, welches in einen flüchtigen Speicher (beispielsweise DRAM) einer Speichervorrichtung geladen ist, erste bis fünfte Directorydaten aufweisen, welche jeweils der ersten bis fünften metaphysikalischen Adresse MetaPPN1 bis MetaPPN5 entsprechen können.
  • Das UECC-Verarbeitungsmodul lila kann bestimmen, ob die ersten bis fünften Directorydaten beschädigt sind basierend auf der physikalischen Blockinformation BI, welche in dem physikalischen Blockinformationsbereich 112b gespeichert ist. Beispielsweise kann das UECC-Verarbeitungsmodul lila bestimmen, ob die zweiten Directorydaten konsistent mit der physikalischen Blockinformation BI sind. Wenn die zweiten Directorydaten inkonsistent mit der physikalischen Blockinformation BI sind, kann das UECC-Verarbeitungsmodul lila bestimmen, ob die zweiten Directorydaten wiederherstellbar sind.
  • Wenn bestimmt wird, dass die zweiten Directorydaten wiederherstellbar sind, kann das UECC-Verarbeitungsmodul 111a die zweiten Directorydaten wiederherstellen und kann die zweite L2P-Mappingtabelle L2P_T2 von dem Metabereich 121 in den DRAM gemäß den zweiten Directorydaten laden. In einer Ausführungsform sind die zweiten Directorydaten wiederherstellbar, wenn eine Backupkopie der zweiten Directorydaten gegenwärtig ist. Wenn eine Operation zum Lesen der zweiten L2P-Mappingtabelle L2P_T2 von dem Metadatenbereich 121 fehlschlägt und die zweite L2P-Mappingtabelle L2P_T2 nicht in den DRAM geladen wird, werden alle Mappingdaten, welche in der zweiten L2P-Mappingtabelle L2P_T2 enthalten sind, als UECC-Fehler verarbeitet.
  • Beispielsweise kann die zweite L2P-Mappingtabelle L2P_T2 an der zweiten metaphysikalischen Adresse MetaPPN2 gespeichert werden, welche den zweiten Directorydaten entspricht. Zu dieser Zeit kann, da die zweiten Directorydaten als ein UECC-Fehler verarbeitet werden, die zweite L2P-Mappingtabelle L2P_T2, welche einer Seitengröße entspricht, als ein UECC-Fehler verarbeitet werden. Demzufolge kann, wenn eine Leseanforderung hinsichtlich einer logischen Adresse, welche in der zweiten L2P-Mappingtabelle L2P_T2 enthalten ist, von einem Host empfangen wird, die Speichervorrichtung eine Fehlernachricht für den Host vorsehen, welche anzeigt, dass Lesen hinsichtlich der Leseanforderung unmöglich ist.
  • 27 ist ein Flussdiagramm von Operationen, welche zwischen dem Controller 110c und dem NVM 120 in der UECC-Verarbeitungsoperation durchgeführt werden, welche in 26 gemäß einer beispielhaften Ausführungsform des erfinderischen Konzepts veranschaulicht ist. Der Controller 110c kann dem Controller 110c entsprechen, welcher in 22 gezeigt ist, und der NVM 120 kann dem NVM 120 entsprechen, welcher in 1 gezeigt ist. Auf die 22 und 27 wird in der Beschreibung untenstehend Bezug genommen.
  • Leistung wird der Speichervorrichtung in Operation S710 zugeführt. Der NVM 120 überträgt ein Directory zu dem Controller 110c und demnach wird das Directory in den Speicher MEMc in dem Controller 110c in Operation S720 geladen. Der Controller 110c überprüft das Directory, welches zu dem Speicher MEMc geladen ist, in Operation S730. Der Controller 110c bestimmt, ob eine Mehrzahl von Directorydaten, welche in dem Directory enthalten sind, beschädigt sind, in Operation S740. Der Controller 110c bestimmt, ob beschädigte Directorydaten wiederherstellbar sind, in Operation S750. Wenn bestimmt wird, dass die beschädigten Directorydaten wiederherstellbar sind, wird Operation S760 durchgeführt. Wenn bestimmt wird, dass die beschädigten Directorydaten nicht wiederherstellbar sind, wird Operation S780 durchgeführt. Der NVM 120 überträgt Metadaten zu dem Controller 110c in Operation S760. Der Controller 110c bestimmt, ob ein Lesen fehlschlägt, in Operation S770. Das Lesen kann auf den übertragenen Metadaten basiert sein. Wenn bestimmt wird, dass das Lesen fehlschlägt, wird Operation S780 durchgeführt. Der Controller 110c aktualisiert eine Mappingtabelle, welche in dem Mappingtabellenbereich 112a des Speichers MEMc gespeichert ist, in Operation S780.
  • 28 ist ein Blockschaltbild eines Controllers 110d gemäß einer beispielhaften Ausführungsform des erfinderischen Konzepts.
  • Bezug nehmend auf 28 ist der Controller 110d eine Modifikation des Controllers 110b, welcher in 13 gezeigt ist. Demnach werden redundante Beschreibungen davon ausgelassen werden. Im Gegensatz zu dem Metadatenbereich 112, welcher in 2 gezeigt ist, weist der Metadatenbereich 112' weiterhin den Directorybereich 112c auf, welcher ein Directory speichert. Der Directorybereich 112c kann im Wesentlichen derselbe sein wie der Directorybereich 112c, welcher in 22 gezeigt ist. Demnach werden redundante Beschreibungen davon ausgelassen werden.
  • Ein Speicher MEMd weist das ECC-Modul 113 auf. Das ECC-Modul 113 kann eine ECC-Operation auf Daten durchführen, welche in dem Metadatenbereich 112' gespeichert sind. In einer Ausführungsform führt das ECC-Modul 113 eine ECC-Operation auf Directorydaten durch, welche zu dem Directorybereich 112c geladen sind. Das ECC-Modul 113 kann ebenso eine ECC-Operation auf Mappingdaten durchführen, welche zu dem L2P-Mappingtabellenbereich 112a geladen sind und physikalischer Blockinformation, welche zu dem physikalischen Blockinformationsbereich 112b geladen ist.
  • 29 ist ein Flussdiagramm eines Verfahrens zum Betreiben einer Speichervorrichtung gemäß einer beispielhaften Ausführungsform des erfinderischen Konzepts.
  • Bezug nehmend auf 29 bezieht sich das Verfahren zum Betreiben einer Speichervorrichtung auf ein Verfahren zum Verarbeiten beschädigter Directorydaten und kann Operationen aufweisen, welche zeitsequenziell durchgeführt werden in beispielsweise der Speichervorrichtung 100', welche in 12 gezeigt ist, und dem Controller 110d, welcher in 28 gezeigt ist. Das Verfahren zum Betreiben der Speichervorrichtung 100' wird unter Bezugnahme auf die 12, 28 und 29 untenstehend beschrieben werden.
  • Leistung wird der Speichervorrichtung 100' in Operation S610 zugeführt. Ein Directory, welches in dem NVM 120 gespeichert ist, wird in den flüchtigen Speicher MEMd in Operation S620 geladen. In einer Ausführungsform wird das Directory, welches in dem Metabereich 121 des NVM 120 gespeichert ist, in den Directorybereich 112c des flüchtigen Speichers MEMd geladen. Ob eine Mehrzahl von Directorydaten beschädigt ist, wird in Operation S630 bestimmt. Ob die Anzahl von Fehlerbits eine ECC-Toleranzgrenze überschreitet, wird in Operation S670 bestimmt. Wenn bestimmt wird, dass die Anzahl von Fehlerbits die ECC-Toleranzgrenze überschreitet, wird Operation S680 durchgeführt. Wenn bestimmt wird, dass die Anzahl von Fehlerbits die ECC-Toleranzgrenze nicht überschreitet, wird Operation S690 durchgeführt. Alle Directorydaten, welche in einem ECC-Datenblock enthalten sind, werden als UECC-Fehler in Operation S680 verarbeitet. Ein Fehlerbit wird wiederhergestellt und Metadaten werden in den flüchtigen Speicher MEMd in Operation S690 geladen.
  • 30 ist ein Diagramm einer UECC-Verarbeitungsoperation, welche auf einem Directory gemäß einer beispielhaften Ausführungsform des erfinderischen Konzepts durchgeführt wird.
  • Bezug nehmend auf die 28 und 30 kann ein erster ECC-Datenblock 53 in dem flüchtigen Speicher MEMd einer Speichervorrichtung gespeichert werden. Der flüchtige Speicher MEMd kann ein DRAM sein. Der erste ECC-Datenblock 53 kann eine Mehrzahl von Directorydaten MetaPPN1 bis MetaPPN7 und Parität aufweisen. Die Größe jeder der Directorydaten kann 4 Byte sein und die Größe des ersten ECC-Datenblocks 53 kann 32 Byte sein, das erfinderische Konzept ist jedoch nicht darauf beschränkt. Beispielsweise können die Directorydaten MetaPPN2 Fehlerbits haben, welche eine ECC-Toleranzgrenze überschreiten.
  • Das ECC-Modul 113 kann Fehlerbits in dem ersten ECC-Datenblock 53 durch ein Überprüfen der Parität erfassen und Fehlerbits innerhalb der ECC-Toleranzgrenze korrigieren. Wenn die Anzahl von Fehlerbits jedoch, welche erfasst wird, die ECC-Toleranzgrenze überschreitet, kann das ECC-Modul 113 die Fehlerbits nicht korrigieren. Demzufolge kann das Metadatenverarbeitungsmodul MDP bestimmen, dass alle Directorydaten MetaPPN1 bis MetaPPN7, welche in dem ersten ECC-Datenblock 53 enthalten sind, nicht wiederherstellbare Directorydaten sind.
  • Das Metadatenverarbeitungsmodul MDP kann die Parität gemäß dem gegenwärtigen Zustand der Directorydaten MetaPPN1 bis MetaPPN7 zurücksetzen, welche in dem ersten ECC-Datenblock 53 enthalten sind, und alle Directorydaten MetaPPN1 bis MetaPPN7 als UECC-Fehler verarbeiten, wodurch der erste ECC-Datenblock 53 in einen zweiten ECC-Datenblock 54 korrigiert wird. Nach dem Korrigieren kann eine UECC-Schreiboperation für eine UECC-Fehlerverarbeitung durchgeführt werden. Die UECC-Schreiboperation kann auf einem NVM der Speichervorrichtung durchgeführt werden. Alternativ kann die UECC-Schreiboperation auf dem flüchtigen Speicher MEMd der Speichervorrichtung durchgeführt werden.
  • Wenn eine logische Adresse, welche zusammen mit einer Leseanforderung von einem Host empfangen wird, Mappingdaten entspricht, welche in einer Mappingtabelle enthalten sind, welche einer einer Mehrzahl von Directorydaten entspricht, welche in dem zweiten ECC-Datenblock 54 enthalten sind, kann die Speichervorrichtung eine Fehlernachricht für den Host vorsehen, welche anzeigt, dass Lesen hinsichtlich der Leseanforderung unmöglich ist.
  • Gemäß einer Ausführungsform des erfinderischen Konzepts werden, da alle von ersten bis siebten Directorydaten als UECC-Fehler verarbeitet werden, eine erste bis siebte L2P-Mappingtabelle, welche jeweils an einer ersten bis siebten metaphysikalischen Adresse MetaPPN1 bis MetaPPN7 gespeichert sind, alle als UECC-Fehler verarbeitet. Beispielsweise können alle der ersten bis siebten L2P-Mappingtabellen, welche einer Größe von sieben Seiten entsprechen, als UECC-Fehler verarbeitet werden. Demzufolge werden alle Mappingdaten, welche in jeder der ersten bis siebten L2P-Mappingtabelle enthalten sind, als UECC-Fehler verarbeitet. Beispielsweise kann, wenn eine Leseanforderung hinsichtlich einer logischen Adresse, welche in einer der ersten bis siebten L2P-Mappingtabellen enthalten ist, welche jeweils an der ersten bis siebten metaphysikalischen Adresse MetaPPN1 bis MetaPPN7 gespeichert sind, von einem Host empfangen wird, eine Speichervorrichtung eine Fehlernachricht für den Host vorsehen, welche anzeigt, dass ein Lesen hinsichtlich der Leseanforderung unmöglich ist.
  • 31 ist ein Blockschaltbild einer elektronischen Vorrichtung 1000 gemäß einer beispielhaften Ausführungsform des erfinderischen Konzepts.
  • Bezug nehmend auf 31 weist die elektronische Vorrichtung 1000 einen Prozessor 1100, eine Speichervorrichtung (Memory Device) 1200, eine Speichervorrichtung (Storage Device) 1300, ein Modem 1400, eine Eingabe-/Ausgabe (I/O = Input/Output = Eingabe-/Ausgabe)-Vorrichtung 1500 und eine Leistungsversorgung 1600 auf. Wenn die Speichervorrichtung 1300 eine Leseanforderung bezogen auf nicht wiederherstellbare Metadaten empfängt, kann die Speichervorrichtung 1300 die Metadaten als einen unkorrigierbaren Fehler verarbeiten. Danach führt, wenn die Speichervorrichtung 1300 eine Lese- oder Schreibanforderung bezogen auf Metadaten empfängt, welche nicht beschädigt sind oder welche wiederherstellbar sind, die Speichervorrichtung 1300 eine Leseoperation gemäß der Leseanforderung durch oder führt eine Schreiboperation gemäß der Schreibanforderung durch. Demzufolge kann die Speichervorrichtung 1300 kontinuierlich normale Dienste vorsehen.
  • Während das erfinderische Konzept insbesondere unter Bezugnahme auf Ausführungsform davon gezeigt und beschrieben wurde, wird es verstanden werden, dass verschiedene Änderungen in der Form und in Details darin getätigt werden können, ohne von dem Umfang des erfinderischen Konzepts wie es durch die beigefügten Ansprüche definiert ist, abzuweichen.

Claims (25)

  1. Verfahren zum Betreiben einer Speichervorrichtung, welche einen nichtflüchtigen Speicher (120) und einen flüchtigen Speicher (MEMa; MEMb; MEMc; MEMd) aufweist, wobei das Verfahren Folgendes aufweist: ein Empfangen einer ersten logischen Adresse von einem Host (200); ein Bestimmen, ob erste Metadaten, welche in dem flüchtigen Speicher (120) gespeichert sind und mit der ersten logischen Adresse verbunden sind, beschädigt sind; ein Verarbeiten der ersten Metadaten als einen unkorrigierbaren Fehler, wenn bestimmt wurde, dass die ersten Metadaten beschädigt sind; ein Vorsehen einer Fehlernachricht für den Host (200), welche anzeigt, dass eine Operation nicht auf Daten durchgeführt werden kann, welche mit der ersten logischen Adresse verbunden sind, wenn die ersten Metadaten als der unkorrigierbare Fehler verarbeitet werden; nach dem Vorsehen der Fehlernachricht ein Empfangen einer zweiten logischen Adresse von dem Host (200); ein Bestimmen, ob zweite Metadaten, welche in dem flüchtigen Speicher (120) gespeichert sind und mit der zweiten logischen Adresse verbunden sind, beschädigt sind; und ein Durchführen einer Operation des Zugreifens auf den nichtflüchtigen Speicher (120) basierend auf den zweiten Metadaten, wenn die zweiten Metadaten nicht bestimmt sind, beschädigt zu sein.
  2. Verfahren nach Anspruch 1, wobei die ersten Metadaten Mappingdaten aufweisen, welche eine erste physikalische Adresse anzeigen, welche der ersten logischen Adresse entspricht; und das Verarbeiten der ersten Metadaten ein Verarbeiten der Mappingdaten als den unkorrigierbaren Fehler aufweist, wenn die Mappingdaten nicht wiederherstellbar sind.
  3. Verfahren nach Anspruch 2, wobei das Bestimmen, ob die ersten Metadaten beschädigt sind, ein Bestimmen aufweist, ob die Mappingdaten beschädigt sind basierend auf einer physikalischen Blockinformation, welche in dem flüchtigen Speicher (MEMa; MEMb; MEMc; MEMd) gespeichert ist.
  4. Verfahren nach Anspruch 2 oder 3, wobei das Verarbeiten der ersten Metadaten ferner ein Korrigieren der ersten physikalischen Adresse in eine zweite physikalische Adresse aufweist.
  5. Verfahren nach Anspruch 4, wobei die zweite physikalische Adresse einer Signatur entspricht, welche eine physikalische Adresse anzeigt, welche in dem nichtflüchtigen Speicher (120) nicht existiert, und das Vorsehen der Fehlernachricht ein Vorsehen der Fehlernachricht für den Host (200) gemäß der Signatur ohne ein Zugreifen auf den nichtflüchtigen Speicher (120) aufweist.
  6. Verfahren nach Anspruch 4, wobei die zweite physikalische Adresse einer neuen physikalischen Adresse zum Speichern von Daten entspricht, welche den unkorrigierbaren Fehler in dem nichtflüchtigen Speicher (120) anzeigen, und das Verarbeiten der ersten Metadaten ferner ein Schreiben der Daten zu der zweiten physikalischen Adresse aufweist.
  7. Verfahren nach einem der Ansprüche 1 bis 6, wobei die ersten Metadaten Trimmdaten aufweisen, welche Daten anzeigen, welche von dem Host (200) gelöscht wurden; und das Verarbeiten der ersten Metadaten ein Verarbeiten von Mappingdaten aufweist, welche den Trimmdaten entsprechen, als der unkorrigierbare Fehler, wenn die Trimmdaten nicht wiederherstellbar sind.
  8. Verfahren nach einem der Ansprüche 1 bis 7, wobei der flüchtige Speicher (MEMb; MEMd) ein Fehlerüberprüfungs- und -korrektur (ECC)-Modul (113) aufweist; und das Verarbeiten der ersten Metadaten ein Verarbeiten der ersten Metadaten als den unkorrigierbaren Fehler aufweist, wenn die ersten Metadaten durch das ECC-Modul (113) nicht korrigiert werden können.
  9. Verfahren nach Anspruch 8, wobei die ersten Metadaten Mappingdaten aufweisen, welche eine erste physikalische Adresse anzeigen, welche der ersten logischen Adresse entspricht, und das Verarbeiten der ersten Metadaten ein Verarbeiten aller Mappingdaten, welche in einem die Mappingdaten aufweisenden ECC-Datenblock enthalten sind, als den unkorrigierbaren Fehler, aufweist.
  10. Verfahren nach Anspruch 9, wobei das Verarbeiten aller Mappingdaten Folgendes aufweist: ein Zurücksetzen der Parität des ECC-Datenblocks gemäß all den Mappingdaten, welche in dem ECC-Datenblock enthalten sind; und ein Ändern von physikalischen Adressen all der Mappingdaten, welche in dem ECC-Datenblock enthalten sind, in korrigierte physikalische Adressen.
  11. Verfahren nach Anspruch 10, wobei die korrigierten physikalischen Adressen Signaturen entsprechen, welche physikalische Adressen anzeigen, welche in dem nichtflüchtigen Speicher (120) nicht existieren.
  12. Verfahren nach Anspruch 10 oder 11, wobei das Ändern der physikalischen Adressen ein Ändern der physikalischen Adressen all der Mappingdaten, welche in dem ECC-Datenblock enthalten sind, in unterschiedliche neue physikalische Adressen aufweist, und das Verarbeiten all der Mappingdaten ferner ein Schreiben der Daten, welche den unkorrigierbaren Fehler anzeigen, zu jeder der unterschiedlichen neuen physikalischen Adressen aufweist.
  13. Verfahren nach Anspruch 10 oder 11, wobei das Ändern der physikalischen Adressen ein Ändern der physikalischen Adressen all der Mappingdaten, welche in dem ECC-Datenblock enthalten sind, in eine vordefinierte physikalische Adresse aufweist, und das Verarbeiten all der Mappingdaten ferner ein Schreiben der Daten, welche den unkorrigierbaren Fehler anzeigen, zu der einen vordefinierten physikalischen Adresse aufweist.
  14. Verfahren nach einem der Ansprüche 8 bis 13, wobei die ersten Metadaten Mappingdaten aufweisen, welche eine erste physikalische Adresse anzeigen, welche der ersten logischen Adresse entspricht, und Trimmdaten, welche Daten anzeigen, welche von dem Host (200) gelöscht sind, und das Verarbeiten der ersten Metadaten ein Verarbeiten einer Mehrzahl von Mapping-ECC-Datenblöcken, welche den Trimmdaten entsprechen, als der unkorrigierbare Fehler aufweist.
  15. Verfahren nach Anspruch 14, wobei das Verarbeiten der Mehrzahl von Mapping-ECC-Datenblöcken Folgendes aufweist: ein Zurücksetzen eines Trimm-ECC-Datenblocks, welcher die Trimmdaten hat; ein Verarbeiten aller Mappingdaten, welche in jedem der Mapping-ECC-Datenblöcke enthalten sind, als der unkorrigierbare Fehler; und ein Ändern physikalischer Adressen all der Mappingdaten, welche in jedem der Mapping-ECC-Datenblöcke enthalten sind, in korrigierte physikalische Adressen.
  16. Verfahren zum Betreiben einer Speichervorrichtung, welche einen nichtflüchtigen Speicher (120) und einen flüchtigen Speicher (MEMc; MEMd) aufweist, wobei das Verfahren Folgendes aufweist: ein Laden eines Directory, welches in dem nichtflüchtigen Speicher (120) gespeichert ist, in den flüchtigen Speicher (MEMc; MEMd), wenn Leistung der Speichervorrichtung (100; 100') zugeführt wird, wobei das Directory eine Mehrzahl von Directorydaten aufweist, welche physikalische Adressen jeweils anzeigen, welche einer Mehrzahl von Metadaten entsprechen; ein Bestimmen, ob die Mehrzahl von Directorydaten in dem Directory beschädigt ist, welches in den flüchtigen Speicher (MEMc; MEMd) geladen ist; ein Bestimmen, ob die ersten Directorydaten unter der Mehrzahl von Directorydaten, welche bestimmt sind, beschädigt zu sein, wiederherstellbar sind; ein Verarbeiten erster Metadaten, welche den ersten Directorydaten entsprechen, als einen unkorrigierbaren Fehler, wenn die ersten Directorydaten beschädigt und nicht wiederherstellbar sind; und ein Laden zweiter Metadaten, welche zweiten Directorydaten entsprechen, aus dem nichtflüchtigen Speicher (120) in den flüchtigen Speicher, wobei die zweiten Directorydaten unter der Mehrzahl von Directorydaten nicht beschädigt sind.
  17. Verfahren nach Anspruch 16, ferner aufweisend: ein Empfangen einer logischen Adresse von einem Host (200); ein Vorsehen einer Fehlernachricht für den Host (200), welche anzeigt, dass eine Operation auf Daten, welche mit der logischen Adresse verbunden sind, nicht durchgeführt werden kann, wenn die logische Adresse den ersten Metadaten entspricht; und ein Durchführen der Operation, wenn die logische Adresse den zweiten Metadaten entspricht.
  18. Verfahren nach Anspruch 16 oder 17, wobei der flüchtige Speicher (MEMd) ein Fehlerüberprüfungs- und -korrektur (ECC)-Modul 113 aufweist, und das Verarbeiten der ersten Metadaten ein Verarbeiten der ersten Directorydaten als der unkorrigierbare Fehler aufweist, wenn die ersten Directorydaten nicht durch das ECC-Modul (113) korrigiert werden können.
  19. Verfahren nach Anspruch 18, wobei das Verarbeiten der ersten Directorydaten Folgendes aufweist: ein Verarbeiten aller Directorydaten, welche in einem ECC-Datenblock enthalten sind, welcher die ersten Directorydaten hat, als der unkorrigierbare Fehler; und ein Verarbeiten einer Mehrzahl von Metadaten, welche all den Directorydaten entsprechen, als der unkorrigierbare Fehler.
  20. Verfahren nach Anspruch 16, ferner aufweisend ein Laden der Mehrzahl von Metadaten, welche in dem nichtflüchtigen Speicher (120) gespeichert sind, in den flüchtigen Speicher (MEMc; MEMd), wobei die Mehrzahl von Metadaten wenigstens eines von Mappingdaten, welche eine physikalische Adresse anzeigen, welche einer logischen Adresse entspricht, physikalischer Blockinformation, welche Information über Seiten jedes physikalischen Blocks anzeigt, welcher in dem nichtflüchtigen Speicher (120) enthalten ist, oder Trimmdaten, welche Daten anzeigen, welche von einem Host (200) gelöscht sind, aufweisen.
  21. Verfahren nach Anspruch 20, ferner aufweisend: ein Empfangen einer logischen Adresse von dem Host (200); ein Bestimmen, ob Metadaten, welche auf die logische Adresse bezogen sind unter der Mehrzahl von Metadaten, welche in den flüchtigen Speicher (MEMa; MEMb; MEMc; MEMd) geladen sind, beschädigt sind; ein Verarbeiten der Metadaten als der unkorrigierbare Fehler, wenn die Metadaten beschädigt sind; und ein Vorsehen einer Fehlernachricht für den Host (200), welche anzeigt, dass eine Operation nicht durchgeführt werden kann auf Daten, welche mit der logischen Adresse verbunden sind.
  22. Speichervorrichtung, die Folgendes aufweist: einen nichtflüchtigen Speicher (120); und einen Controller (110; 110'; 110a; 110b; 110c; 110d), welcher einen flüchtigen Speicher (MEMa; MEMb; MEMc; MEMd) aufweist, welcher konfiguriert ist, um erste Metadaten zu speichern, welche mit einer ersten logischen Adresse verbunden sind, und zweite Metadaten, welche mit einer zweiten logischen Adresse verbunden sind; wobei, wenn der Controller (110) die erste logische Adresse von einem Host (200) empfängt, der Controller (110) konfiguriert ist, um zu bestimmen, ob die ersten Metadaten beschädigt sind, und die ersten Metadaten als einen unkorrigierbaren Fehler zu verarbeiten, wenn die ersten Metadaten beschädigt sind, und dann, wenn der Controller (110) die zweite logische Adresse von dem Host (200) empfängt, der Controller (110) konfiguriert ist, um zu bestimmen, ob die zweiten Metadaten beschädigt sind und um eine Operation des Zugreifens auf den nichtflüchtigen Speicher (120) basierend auf den zweiten Metadaten zu steuern, wenn die zweiten Metadaten nicht beschädigt sind.
  23. Speichervorrichtung nach Anspruch 22, wobei die ersten und zweiten Metadaten wenigstens eines von Mappingdaten, welche eine physikalische Adresse anzeigen, welche einer logischen Adresse entspricht, physikalischer Blockinformation, welche Information über Seiten jedes physikalischen Blocks anzeigt, welcher in dem nichtflüchtigen Speicher (120) enthalten ist, oder Trimmdaten, welche Daten anzeigen, welche von einem Host (200) gelöscht sind, aufweisen.
  24. Speichervorrichtung nach Anspruch 22 oder 23, wobei der flüchtige Speicher (MEMb; MEMd) ein Fehlerüberprüfungs- und -korrektur (ECC)-Modul 113 aufweist, und wenn die ersten Metadaten beschädigt sind und durch das ECC-Modul nicht korrigiert werden können, der Controller (110; 110'; 110b; 110d) ferner konfiguriert ist, um alle Metadaten, welche in einem ECC-Datenblock, welcher die ersten Metadaten hat, enthalten sind, als den unkorrigierbaren Fehler zu verarbeiten.
  25. Speichervorrichtung nach einem der Ansprüche 22 bis 24, wobei der flüchtige Speicher (MEMc; MEMd) ferner konfiguriert ist, um ein Directory zu speichern, welches physikalische Adressen, welche jeweils den ersten und zweiten Metadaten entsprechen, zu speichern, und der Controller (110; 110c; 110d) ferner konfiguriert ist, um zu bestimmen, ob eine Mehrzahl von Directorydaten, welche in dem Directory enthalten sind, beschädigt sind, und um Metadaten zu, welche ersten Directorydaten entsprechen, welche unter der Mehrzahl von Directorydaten beschädigt sind, als den unkorrigierbaren Fehler verarbeiten.
DE102017124079.9A 2017-02-06 2017-10-17 Speichervorrichtung zum Verarbeiten von beschädigten Metadaten und Verfahren zum Betreiben derselben Active DE102017124079B4 (de)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
KR1020170016266A KR20180091296A (ko) 2017-02-06 2017-02-06 손상된 메타 데이터를 처리하는 스토리지 장치 및 상기 스토리지 장치의 동작 방법
KR10-2017-0016266 2017-02-06

Publications (2)

Publication Number Publication Date
DE102017124079A1 true DE102017124079A1 (de) 2018-08-09
DE102017124079B4 DE102017124079B4 (de) 2022-05-05

Family

ID=62909802

Family Applications (1)

Application Number Title Priority Date Filing Date
DE102017124079.9A Active DE102017124079B4 (de) 2017-02-06 2017-10-17 Speichervorrichtung zum Verarbeiten von beschädigten Metadaten und Verfahren zum Betreiben derselben

Country Status (5)

Country Link
US (2) US10545830B2 (de)
KR (1) KR20180091296A (de)
CN (1) CN108399134B (de)
DE (1) DE102017124079B4 (de)
TW (1) TWI741054B (de)

Families Citing this family (19)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20180091296A (ko) 2017-02-06 2018-08-16 삼성전자주식회사 손상된 메타 데이터를 처리하는 스토리지 장치 및 상기 스토리지 장치의 동작 방법
KR102557993B1 (ko) * 2018-10-02 2023-07-20 삼성전자주식회사 메모리 이용 효율을 향상한 보안 처리기를 포함하는 시스템 온 칩, 메모리 시스템 및 시스템 온 칩의 동작방법
KR20200137181A (ko) 2019-05-29 2020-12-09 에스케이하이닉스 주식회사 메모리 시스템에서 맵정보를 전송하는 장치
KR20200123684A (ko) 2019-04-22 2020-10-30 에스케이하이닉스 주식회사 메모리 시스템에서 맵 정보를 전송하는 장치
KR20200139433A (ko) 2019-06-04 2020-12-14 에스케이하이닉스 주식회사 컨트롤러의 동작 방법 및 메모리 시스템
US11416408B2 (en) 2019-07-05 2022-08-16 SK Hynix Inc. Memory system, memory controller and method for operating memory system
US11422942B2 (en) * 2019-04-02 2022-08-23 SK Hynix Inc. Memory system for utilizing a memory included in an external device
CN112130750B (zh) * 2019-06-25 2023-11-07 慧荣科技股份有限公司 数据储存装置以及非挥发式存储器控制方法
CN112882650B (zh) * 2019-11-29 2024-04-30 慧荣科技股份有限公司 数据储存装置以及非挥发式存储器控制方法
US11579970B2 (en) 2020-07-30 2023-02-14 Micron Technology, Inc. Maintenance command interfaces for a memory system
KR20220023476A (ko) * 2020-08-21 2022-03-02 에스케이하이닉스 주식회사 레이드 데이터 저장 장치 및 이를 포함하는 데이터 저장 시스템
CN112634975A (zh) * 2020-12-24 2021-04-09 杭州华澜微电子股份有限公司 一种数据存储纠错方法、装置及电子设备
US20220238175A1 (en) * 2021-01-28 2022-07-28 Micron Technology, Inc. Bit retiring to mitigate bit errors
TWI766582B (zh) * 2021-02-17 2022-06-01 群聯電子股份有限公司 有效資料合併方法、記憶體儲存裝置及記憶體控制電路單元
CN112925481B (zh) * 2021-03-09 2024-04-05 合肥兆芯电子有限公司 存储器管理方法、存储器存储装置及存储器控制电路单元
US11507296B2 (en) 2021-03-10 2022-11-22 Micron Technology, Inc. Repair operation techniques
EP4092539A1 (de) * 2021-05-17 2022-11-23 Elektrobit Automotive GmbH Neupartitionierung einer flash-speichervorrichtung
CN113791930A (zh) * 2021-09-14 2021-12-14 浙江大华存储科技有限公司 读命令的处理方法和装置、存储介质及电子装置
US11960757B2 (en) 2021-10-04 2024-04-16 Samsung Electronics Co., Ltd. Flash translation layer with rewind

Family Cites Families (21)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7139864B2 (en) 2003-12-30 2006-11-21 Sandisk Corporation Non-volatile memory and method with block management system
US9286198B2 (en) 2005-04-21 2016-03-15 Violin Memory Method and system for storage of data in non-volatile media
US9495241B2 (en) * 2006-12-06 2016-11-15 Longitude Enterprise Flash S.A.R.L. Systems and methods for adaptive data storage
US9116823B2 (en) * 2006-12-06 2015-08-25 Intelligent Intellectual Property Holdings 2 Llc Systems and methods for adaptive error-correction coding
US8281227B2 (en) * 2009-05-18 2012-10-02 Fusion-10, Inc. Apparatus, system, and method to increase data integrity in a redundant storage system
US8307258B2 (en) * 2009-05-18 2012-11-06 Fusion-10, Inc Apparatus, system, and method for reconfiguring an array to operate with less storage elements
US8478796B2 (en) * 2010-03-23 2013-07-02 Apple Inc. Uncorrectable error handling schemes for non-volatile memories
KR101678919B1 (ko) 2011-05-02 2016-11-24 삼성전자주식회사 메모리 시스템 및 에러 정정 방법
KR101301828B1 (ko) 2011-09-29 2013-08-29 한양대학교 산학협력단 플래시 메모리에 기반한 ssd에서의 전원-손실 복구 방법 및 장치
US9037949B1 (en) 2012-06-21 2015-05-19 Rambus Inc. Error correction in a memory device
US8924832B1 (en) * 2012-06-26 2014-12-30 Western Digital Technologies, Inc. Efficient error handling mechanisms in data storage systems
US8990670B2 (en) * 2012-09-28 2015-03-24 Intel Corporation Endurance aware error-correcting code (ECC) protection for non-volatile memories
TWI514140B (zh) 2013-02-05 2015-12-21 Via Tech Inc 非揮發性記憶裝置及其操作方法
US20150032982A1 (en) * 2013-07-26 2015-01-29 Fusion-Io, Inc. Systems and methods for storage consistency
US9292434B2 (en) 2013-08-22 2016-03-22 CNEXLABS, Inc. Method and apparatus for restoring flash translation layer (FTL) in non-volatile storage device
KR101548452B1 (ko) * 2014-02-11 2015-08-28 한양대학교 산학협력단 비휘발성 메모리 기반의 전자 장치의 메타 데이터 복원 방법 및 장치
US9317357B2 (en) 2014-03-20 2016-04-19 International Business Machines Corporation Management of microcode errors in a storage operation
KR102147970B1 (ko) * 2014-08-05 2020-08-25 삼성전자주식회사 비휘발성 메모리 기반의 스토리지 디바이스의 복구 방법 및 상기 스토리지 디바이스를 포함하는 전자 시스템의 동작 방법
US9959059B2 (en) * 2014-10-20 2018-05-01 Sandisk Technologies Llc Storage error management
KR20180091296A (ko) 2017-02-06 2018-08-16 삼성전자주식회사 손상된 메타 데이터를 처리하는 스토리지 장치 및 상기 스토리지 장치의 동작 방법
US10489244B2 (en) * 2017-10-03 2019-11-26 Microsoft Technology Licensing, Llc Systems and methods for detecting and correcting memory corruptions in software

Also Published As

Publication number Publication date
KR20180091296A (ko) 2018-08-16
TWI741054B (zh) 2021-10-01
CN108399134B (zh) 2021-12-17
US11113149B2 (en) 2021-09-07
TW201830253A (zh) 2018-08-16
US20180225176A1 (en) 2018-08-09
DE102017124079B4 (de) 2022-05-05
US10545830B2 (en) 2020-01-28
US20200167231A1 (en) 2020-05-28
CN108399134A (zh) 2018-08-14

Similar Documents

Publication Publication Date Title
DE102017124079B4 (de) Speichervorrichtung zum Verarbeiten von beschädigten Metadaten und Verfahren zum Betreiben derselben
US11249840B2 (en) Data storage devices and methods for rebuilding a memory address mapping table
DE102017113439B4 (de) Abbildungstabellen für Speichervorrichtungen
EP3519969B1 (de) Physische medien, die sich der räumlich gekoppelten historisierung und wiedergabe bewusst sind
US9558108B2 (en) Half block management for flash storage devices
DE102019117787B4 (de) Speichervorrichtung und Betriebsverfahren derselben
DE102019111132A1 (de) Speichereinrichtung, die Hostspeicher nutzt und Betriebsverfahren dafür
US20150331624A1 (en) Host-controlled flash translation layer snapshot
US20100287217A1 (en) Host control of background garbage collection in a data storage device
CN109086219B (zh) 去分配命令处理方法及其存储设备
US20190324859A1 (en) Method and Apparatus for Restoring Data after Power Failure for An Open-Channel Solid State Drive
DE102013106242A1 (de) Halbleiterlaufwerk mit Konvertierungsschicht (ETL) und Umleitung von temporären Dateien zur Verschleissminderung von Flashspeichern
CN109144899B (zh) 用于管理表恢复的方法
DE112014005570T5 (de) Deaktivieren von Seiten in einem Nand-Flash-Speicher-System
US10922234B2 (en) Method and system for online recovery of logical-to-physical mapping table affected by noise sources in a solid state drive
DE112020005180T5 (de) Kondensieren von logischen zu physischen tabellenzeigern in ssds unter verwendung von gezonten namensräumen
DE112016003998T5 (de) Technologien für das management eines reservierten hochleistungsspeicherbereichs eines solid-state-laufwerks
US20170010810A1 (en) Method and Apparatus for Providing Wear Leveling to Non-Volatile Memory with Limited Program Cycles Using Flash Translation Layer
US20140047161A1 (en) System Employing MRAM and Physically Addressed Solid State Disk
KR20190134034A (ko) 복구 가능한 데이터 저장 장치 및 동작 방법, 이를 포함하는 스토리지 시스템
CN111338846B (zh) 一种基于多核恢复l2p表的方法和装置
CN111858401A (zh) 提供异构命名空间的存储设备及其在数据库中的应用
US11354200B2 (en) Method and system for facilitating data recovery and version rollback in a storage device
DE102018105995A1 (de) Verfahren zur Wiederherstellung von Verwaltungstabellen
DE102022122748A1 (de) Dram-loses ssd mit wiederherstellung nach hmb-verlust

Legal Events

Date Code Title Description
R012 Request for examination validly filed
R016 Response to examination communication
R018 Grant decision by examination section/examining division
R020 Patent grant now final