DE102017114078A1 - Fehlerabschwächung für 3d-nand-flash-speicher - Google Patents

Fehlerabschwächung für 3d-nand-flash-speicher Download PDF

Info

Publication number
DE102017114078A1
DE102017114078A1 DE102017114078.6A DE102017114078A DE102017114078A1 DE 102017114078 A1 DE102017114078 A1 DE 102017114078A1 DE 102017114078 A DE102017114078 A DE 102017114078A DE 102017114078 A1 DE102017114078 A1 DE 102017114078A1
Authority
DE
Germany
Prior art keywords
page
data
read
block
error
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.)
Withdrawn
Application number
DE102017114078.6A
Other languages
English (en)
Inventor
Seung-Hwan Song
Viacheslav Anatolyevich DUBEYKO
Zvonimir Bandic
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Western Digital Technologies Inc
Original Assignee
Western Digital Technologies Inc
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Western Digital Technologies Inc filed Critical Western Digital Technologies Inc
Publication of DE102017114078A1 publication Critical patent/DE102017114078A1/de
Withdrawn legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C16/00Erasable programmable read-only memories
    • G11C16/02Erasable programmable read-only memories electrically programmable
    • G11C16/06Auxiliary circuits, e.g. for writing into memory
    • G11C16/10Programming or data input circuits
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C16/00Erasable programmable read-only memories
    • G11C16/02Erasable programmable read-only memories electrically programmable
    • G11C16/06Auxiliary circuits, e.g. for writing into memory
    • G11C16/34Determination of programming status, e.g. threshold voltage, overprogramming or underprogramming, retention
    • G11C16/3418Disturbance prevention or evaluation; Refreshing of disturbed memory data
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/0703Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
    • G06F11/0706Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation the processing taking place on a specific hardware platform or in a specific software environment
    • G06F11/0727Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation the processing taking place on a specific hardware platform or in a specific software environment in a storage system, e.g. in a DASD or network based storage system
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/0703Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
    • G06F11/0793Remedial or corrective actions
    • 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/1048Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices using arrangements adapted for a specific error detection or correction feature
    • 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/1068Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices in sector programmable memories, e.g. flash disk
    • 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/1072Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices in multilevel memories
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C11/00Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor
    • G11C11/56Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using storage elements with more than two stable states represented by steps, e.g. of voltage, current, phase, frequency
    • G11C11/5621Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using storage elements with more than two stable states represented by steps, e.g. of voltage, current, phase, frequency using charge storage in a floating gate
    • G11C11/5628Programming or writing circuits; Data input circuits
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C11/00Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor
    • G11C11/56Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using storage elements with more than two stable states represented by steps, e.g. of voltage, current, phase, frequency
    • G11C11/5621Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using storage elements with more than two stable states represented by steps, e.g. of voltage, current, phase, frequency using charge storage in a floating gate
    • G11C11/5642Sensing or reading circuits; Data output circuits
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C16/00Erasable programmable read-only memories
    • G11C16/02Erasable programmable read-only memories electrically programmable
    • G11C16/06Auxiliary circuits, e.g. for writing into memory
    • G11C16/10Programming or data input circuits
    • G11C16/14Circuits for erasing electrically, e.g. erase voltage switching circuits
    • G11C16/16Circuits for erasing electrically, e.g. erase voltage switching circuits for erasing blocks, e.g. arrays, words, groups
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C16/00Erasable programmable read-only memories
    • G11C16/02Erasable programmable read-only memories electrically programmable
    • G11C16/06Auxiliary circuits, e.g. for writing into memory
    • G11C16/26Sensing or reading circuits; Data output circuits
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C16/00Erasable programmable read-only memories
    • G11C16/02Erasable programmable read-only memories electrically programmable
    • G11C16/06Auxiliary circuits, e.g. for writing into memory
    • G11C16/34Determination of programming status, e.g. threshold voltage, overprogramming or underprogramming, retention
    • G11C16/3418Disturbance prevention or evaluation; Refreshing of disturbed memory data
    • G11C16/3427Circuits or methods to prevent or reduce disturbance of the state of a memory cell when neighbouring cells are read or written
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C29/00Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
    • G11C29/04Detection or location of defective memory elements, e.g. cell constructio details, timing of test signals
    • G11C29/08Functional testing, e.g. testing during refresh, power-on self testing [POST] or distributed testing
    • G11C29/12Built-in arrangements for testing, e.g. built-in self testing [BIST] or interconnection details
    • G11C29/38Response verification devices
    • G11C29/42Response verification devices using error correcting codes [ECC] or parity check
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C29/00Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
    • G11C29/52Protection of memory contents; Detection of errors in memory contents
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C7/00Arrangements for writing information into, or reading information out from, a digital store
    • G11C7/14Dummy cell management; Sense reference voltage generators
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
    • H03M13/29Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes combining two or more codes or code structures, e.g. product codes, generalised product codes, concatenated codes, inner and outer codes
    • H03M13/2906Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes combining two or more codes or code structures, e.g. product codes, generalised product codes, concatenated codes, inner and outer codes using block codes
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C29/00Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
    • G11C29/04Detection or location of defective memory elements, e.g. cell constructio details, timing of test signals
    • G11C2029/0411Online error correction

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Quality & Reliability (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • Probability & Statistics with Applications (AREA)
  • Read Only Memory (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)

Abstract

Beseitigungstechnologien für NAND-Zellenfehler sind offenbart. Die Beseitigungstechnologien sind für 3D-NAND anwendbar. Bei einem Beispiel kann eine Speicherungsvorrichtung einen Prozessor und eine Speichervorrichtung, die einen NAND-Flash-Speicher umfasst, beinhalten. Der Prozessor ist dazu konfiguriert, einen Fehlerzustand, der mit einer ersten Seite des NAND-Flash-Speichers verknüpft ist, zu detektieren und zu bestimmen, ob der Fehlerzustand mit einer Lesestörung oder einem Erhaltungsfehler verknüpft ist. Der Prozessor ist dazu konfiguriert, falls der Fehlerzustand mit der Lesestörung verknüpft ist, einen Auffrischungsvorgang hinsichtlich der Seite zu initiieren, um Daten, die in der ersten Seite gespeichert sind, in eine zweite Seite des NAND-Flash-Speichers zu schreiben, und, falls der Fehlerzustand mit dem Erhaltungsfehler verknüpft ist, einen Reprogrammierungsvorgang hinsichtlich der Seite zu initiieren, um die Daten, die in der ersten Seite gespeichert sind, in die erste Seite des NAND-Flash-Speichers neuzuschreiben.

Description

  • TECHNISCHES GEBIET
  • Diese Offenbarung betrifft allgemein Systeme und Mechanismen zum Reprogrammieren und/oder Auffrischen von Flash-Speicherzellen.
  • HINTERGRUND
  • Speicherungsvorrichtungen, die in Computern und anderen elektronischen Vorrichtungen verwendet werden, können nichtflüchtigen Speicher und/oder flüchtigen Speicher beinhalten. Nichtflüchtiger Speicher ermöglicht Datenspeicherung in Fällen von Leistungsverlust, unabhängig davon, ob der Leistungsverlust geplant oder nichtgeplant ist. Infolgedessen haben sich nichtflüchtige Speichervorrichtungen zu einer beliebten Art von Speicher für einen weiten Bereich elektronischer Anwendungen entwickelt. Zum Beispiel sind nichtflüchtige Speichervorrichtung einschließlich Flash-Speichervorrichtungen üblicherweise in Festkörperspeicherungsvorrichtungen, wie etwa Solid-State-Laufwerken (SSDs: Solid-State-Drives), integriert. Aufgrund von Erhaltungsgrenzen, die mit Flash-Speicherzellen verknüpft sind, sind Flash-Speichervorrichtungen dazu konfiguriert, die Zellen aufzufrischen, wenn die gespeicherten Daten „kalt“ werden. Auffrischen einer Flash-Speicherzelle umschließt Lesen der kalten Daten von einer Stelle (z.B. einer Seite), Decodieren der Daten unter Verwendung eines Fehlerkorrekturcodes (ECC: Error-Correcting Code), Codieren der Daten und Programmieren der Daten in eine neue Stelle (z.B. in eine neue Seite).
  • KURZDARSTELLUNG
  • Diese Offenbarung betrifft allgemein Systeme und Techniken zum Aktualisieren von Daten, die durch Flash-Speicherzellen gespeichert werden. Manche Aspekte dieser Offenbarung betreffen selektives Aktualisieren von Daten, die durch Flash-Speicherzellen gespeichert sind, wie etwa durch Auffrischen oder Reprogrammieren bestimmter Zellen, die eine vorbestimmte ECC-Grenze (ECC: Error-Correcting Code – Fehlerkorrekturcode) erreicht haben oder sich dieser annähern. Eine Flash-Speicherzelle (oder genauer, Daten, die mit der Flash-Speicherzelle verknüpft sind) können aufgefrischt werden, indem die Daten aus der Flash-Speicherzelle gelesen werden und die Daten in eine andere Flash-Speicherzelle geschrieben werden. Bei manchen Beispielen für die selektiven Aktualisierungstechniken dieser Offenbarung werden Flash-Speicherzellen, die einen Lesestörungsfehler aufzeigen (Ladungsinjektion in das Floating-Gate aufgrund von Lesetätigkeiten von angrenzenden Flash-Speicherzellen), aufgefrischt anstatt reprogrammiert zu werden. Gemäß manchen Aspekten dieser Offenbarung können die Lesestörungszellen auf eine chargenverarbeitende Weise aufgefrischt werden, wie etwa durch Auffrischen eines gesamten Blocks, selbst wenn nur eine Teilmenge der Seiten eine Lesestörung aufweist. Im Gegensatz dazu kann eine Flash-Speicherzelle, die einen Erhaltungsfehler aufzeigt (Ladungsschwund von dem Floating-Gate aufgrund von Leckverlust), bei manchen Beispielen reprogrammiert werden. Eine Flash-Speicherzelle kann reprogrammiert werden, indem Daten aus der Flash-Speicherzelle gelesen werden und die Daten in dieselbe Flash-Speicherzelle geschrieben werden.
  • Bei manchen Beispielen beschreibt die Offenbarung ein Verfahren, das Detektieren eines Fehlerzustands, der mit einer ersten Seite eines NAND-Flash-Speichers verknüpft ist, durch einen oder mehrere Prozessoren und Bestimmen durch einen oder mehrere Prozessoren, ob der Fehlerzustand mit einer Lesestörung oder einem Erhaltungsfehler verknüpft ist, beinhaltet. Das Verfahren kann ferner, falls der Fehlerzustand mit der Lesestörung verknüpft ist, Initiieren eines Auffrischungsvorgangs hinsichtlich der Seite durch den einen oder die mehreren Prozessoren, um Daten, die in der ersten Seite gespeichert sind, in eine zweite Seite des NAND-Flash-Speichers zu schreiben, und, falls der Fehlerzustand mit dem Erhaltungsfehler verknüpft ist, Initiieren eines Reprogrammierungsvorgangs hinsichtlich der Seite durch den einen oder die mehreren Prozessoren, um die Daten, die in der ersten Seite gespeichert sind, in die erste Seite neuzuschreiben, beinhalten.
  • Bei manchen Beispielen beschreibt die Offenbarung eine Speicherungsvorrichtung, die wenigstens einen Prozessor und wenigstens eine Speichervorrichtung, die einen NAND-Flash-Speicher umfasst, beinhaltet. Der Prozessor kann dazu konfiguriert sein, einen Fehlerzustand, der mit einer ersten Seite des NAND-Flash-Speichers verknüpft ist, zu detektieren und zu bestimmen, ob der Fehlerzustand mit einer Lesestörung oder einem Erhaltungsfehler verknüpft ist. Die Prozessoren können ferner dazu konfiguriert sein, falls der Fehlerzustand mit der Lesestörung verknüpft ist, einen Auffrischungsvorgang hinsichtlich der Seite zu initiieren, um Daten, die in der ersten Seite gespeichert sind, in eine zweite Seite des NAND-Flash-Speichers zu schreiben, und, falls der Fehlerzustand mit dem Erhaltungsfehler verknüpft ist, einen Reprogrammierungsvorgang hinsichtlich der Seite zu initiieren, um die Daten, die in der ersten Seite gespeichert sind, in die erste Seite des NAND-Flash-Speichers neuzuschreiben.
  • Bei manchen Beispielen beschreibt die Offenbarung ein computerlesbares Speicherungsmedium, das Anweisungen speichert, die, wenn sie ausgeführt werden, bewirken, dass wenigstens ein Prozessor einer Berechnungsvorrichtung einen Fehlerzustand, der mit der ersten Seite eines NAND-Flash-Speichers verknüpft ist, detektiert und bestimmt, ob der Fehlerzustand mit einer Lesestörung oder einem Erhaltungsfehler verknüpft ist. Die Anweisungen können, wenn sie ausgeführt werden, ferner bewirken, dass der wenigstens eine Prozessor der Berechnungsvorrichtung, falls der Fehlerzustand mit der Lesestörung verknüpft ist, einen Auffrischungsvorgang hinsichtlich der Seite initiiert, um Daten, die in der ersten Seite gespeichert sind, in eine zweite Seite zu schreiben, und, falls der Fehlerzustand mit dem Erhaltungsfehler verknüpft ist, einen Reprogrammierungsvorgang hinsichtlich der Seite initiiert, um die Daten, die in der ersten Seite gespeichert sind, in die erste Seite neuzuschreiben.
  • Bei manchen Beispielen beschreibt die Offenbarung eine Einrichtung. Die Einrichtung kann ein Mittel zum Detektieren eines Fehlerzustands, der mit einer ersten Seite eines NAND-Flash-Speichers verknüpft ist, und ein Mittel zum Bestimmen, ob der Fehlerzustand mit einer Lesestörung oder einem Erhaltungsfehler verknüpft ist, beinhalten. Die Einrichtung kann ferner ein Mittel zum Initiieren, falls der Fehlerzustand mit der Lesestörung verknüpft ist, eines Auffrischungsvorgangs hinsichtlich der Seite, um Daten, die in der ersten Seite gespeichert sind, in eine zweite Seite zu schreiben, und ein Mittel zum Initiieren, falls der Fehlerzustand mit dem Erhaltungsfehler verknüpft ist, eines Reprogrammierungsvorgangs hinsichtlich der Seite, um die Daten, die in der ersten Seite gespeichert sind, in die erste Seite neuzuschreiben, beinhalten.
  • Die Systeme und Techniken dieser Offenbarung können einen oder mehrere Vorteile bereitstellen. Zum Beispiel kann die selektive Reprogrammierungstechnik dieser Offenbarung eine Datenbereinigung und den resultierenden Ressourcenverbrauch abschwächen. Zusätzlich können die selektiven Reprogrammierungstechniken dieser Offenbarung die Notwendigkeit, eine Reprogrammierung in bestimmten Szenarien durchzuführen, beseitigen, wodurch Ressourcen gespart werden. Außerdem können die chargenverarbeitenden Auffrischungstechniken dieser Offenbarung die Zeit und den Ressourcenverbrauch reduzieren, die ansonsten für Löschvorgänge aufgewandt werden würden.
  • Die Einzelheiten von einem oder mehreren Beispielen sind in den beiliegenden Zeichnungen und der nachfolgenden Beschreibung dargelegt. Andere Merkmale, Ziele und Vorteile werden aus der Beschreibung und den Zeichnungen und aus den Ansprüchen ersichtlich.
  • KURZE BESCHREIBUNG DER ZEICHNUNGEN
  • 1 ist ein konzeptuelles und schematisches Blockdiagramm, das eine beispielhafte Speicherungsumgebung, in der eine Speicherungsvorrichtung als eine Speicherungsvorrichtung für eine Hostvorrichtung dienen kann, gemäß einer oder mehreren Techniken dieser Offenbarung veranschaulicht.
  • 2 ist ein konzeptuelles Diagramm, das eine beispielhafte Speichervorrichtung gemäß einer oder mehreren Techniken dieser Offenbarung veranschaulicht.
  • 3 ist ein konzeptuelles Diagramm, das das Dummy-Zellen-basierte Fehleridentifizierungsschema, das die Steuerung 8 implementieren kann, gemäß Aspekten dieser Offenbarung veranschaulicht.
  • 4 ist ein konzeptuelles und schematisches Blockdiagramm, das eine beispielhafte Steuerung gemäß einer oder mehreren Techniken dieser Offenbarung veranschaulicht.
  • 57 sind konzeptuelle Diagramme, die Zellenschwellenspannungsverteilungen veranschaulichen, die mit korrekten und fehlerbehafteten Lesespannungen verknüpft sind.
  • 8 zeigt ein Flussdiagramm, das einen Beispielprozess 60, den die Steuerung 8 und/oder Komponenten von dieser implementieren können, um Fehler zu detektieren und zu beseitigen, gemäß den Aspekten dieser Offenbarung veranschaulicht.
  • 9 ist ein Flussdiagramm, das einen Beispielprozess, den eine Steuerung und/oder Komponenten von dieser durchführen können, um eine selektive Beseitigung basierend auf der Natur eines bestimmten Fehlers zu implementieren, gemäß Aspekten dieser Offenbarung veranschaulicht.
  • 10 ist ein konzeptuelles Diagramm, das den Betrieb einer Auffrischungswarteschlange durch eine Steuerung gemäß Aspekten dieser Offenbarung veranschaulicht.
  • AUSFÜHRLICHE BESCHREIBUNG
  • Allgemein beschreibt diese Offenbarung Systeme und Techniken zur verbesserten Aktualisierung von Daten, die durch NAND-Flash-Speicherzellen gespeichert sind. Manche Aspekte dieser Offenbarung betreffen selektive Aktualisierungsmechanismen. Gemäß selektiven Aktualisierungsmechanismen dieser Offenbarung kann eine Steuerung einer Speicherungsvorrichtung spezielle Seiten eines Flash-Speichers, die Kandidaten für eine Aktualisierung sind, identifizieren, wie etwa durch Bestimmen, ob sich bestimmte Seiten der ECC-Grenze annähern oder nicht. Im Gegenzug kann die Steuerung die selektiven Aktualisierungstechnologien dieser Offenbarung implementieren, um jene Seiten, die sich einer ECC-Grenze annähern (z.B. innerhalb einer Schwellenzeit von dieser liegen), zu reprogrammieren oder aufzufrischen, während eine Reprogrammierung oder Auffrischung der anderen Seiten vermieden wird. Seiten, die sich der ECC-Grenze annähern, können hier auch als „Fehlerseiten“ entweder aufgrund eines „Erhaltungsfehlers“ oder einer anderen Art von Fehler bezeichnet werden. Ein Erhaltungsfehler kann in Fällen eines Elektronenleckverlusts von dem Floating-Gate (oder den Ladungsfallen) einer Zelle auftreten, was zu einem Abfall der Zellenschwellenspannung führt. Reprogrammieren einer Zelle umschließt Lesen der in der Zelle gespeicherten Daten, Decodieren der Daten, Wiedercodieren der Daten und Neuschreiben der wiedercodierten Daten in dieselbe Zelle durch Wiederherstellen der Zellenschwellenspannung in dem Floating-Gate (z.B. durch Injizieren von Elektronen in das Floating-Gate).
  • Gemäß manchen Implementierungen des hier beschriebenen Systems kann die Steuerung Seiten mit einem Erhaltungsfehler reprogrammieren, wie oben beschrieben wurde, und kann auch bestimmte andere Seiten auffrischen. Zum Beispiel kann die Steuerung zusätzlich zum Reprogrammieren von Seiten mit einem Erhaltungsfehler eine oder mehrere Seiten, die mit einem „Lesestörung“-Fehler verknüpft sind, auffrischen. Ein Lesestörungsfehler kann sich aus einer Ladungsinjektion entlang der Wortleitung einer Zelle entwickeln, was zu einer Zunahme der Zellenschwellenspannung des Floating-Gate der Zelle führt. Auffrischen einer fehlerbehafteten Zelle umschließt nach Hinzufügen eines gesamten Blocks, der die fehlerbehaftete Zelle beinhaltet, zu einer Auffrischungswarteschlange, bei der ein Block an der Spitze der Warteschlange der Kandidat für den nächsten Auffrischungsvorgang ist, Lesen der Daten der Zelle, Decodieren der Daten, Wiedercodieren der Daten und Neuschreiben der wiedercodierten Daten in eine neue Stelle (z.B. eine neue Seite). Bei manchen Beispielen kann die Steuerung einen gesamten Block von Seiten auffrischen, falls die Steuerung bestimmt, dass eine Teilmenge der Seiten des Blocks Lesestörungsfehler aufweist. Auf diese Weise kann die Steuerung die Seitenauffrischungen in einem Chargenprozess durchführen, um Zeit und Ressourcen zu sparen, die mit den Löschvorgängen verknüpft sind, die am Auffrischen der Lesestörungsseiten beteiligt sind. Gemäß verschiedenen Implementierungen der hier beschriebenen Techniken kann die Steuerung die Reprogrammierungsvorgänge in einer zufälligen Reihenfolge implementieren. Bei manchen Implementierungen der hier beschriebenen Techniken kann die Steuerung die Auffrischungsvorgänge auf eine Warteschlangenart implementieren, wie etwa durch Auffrischen eines Blocks, der Seitendaten enthält, die Lesestörungsfehler aufweisen, auf eine FIFO-Art (FIFO: First-In-First-Out – der Reihe nach).
  • 1 ist ein konzeptuelles und schematisches Blockdiagramm, das eine beispielhafte Speicherungsumgebung 2, in der eine Speicherungsvorrichtung 6 als eine Speicherungsvorrichtung für eine Hostvorrichtung 4 dienen kann, gemäß einer oder mehreren Techniken dieser Offenbarung veranschaulicht. Zum Beispiel kann die Hostvorrichtung 4 nichtflüchtige Speichervorrichtungen benutzen, die in der Speicherungsvorrichtung 6 enthalten sind, um Daten zu speichern und abzurufen. Bei manchen Beispielen kann die Speicherungsumgebung 2 mehrere Speicherungsvorrichtungen, wie etwa die Speicherungsvorrichtung 6, beinhalten, die als ein Speicherungsarray arbeiten können. Zum Beispiel kann die Speicherungsumgebung 2 mehrere Speicherungsvorrichtungen 6 beinhalten, die als ein redundantes Array von kostengünstigen/unabhängigen Festplatten (RAID: Redundant Array of Inexpensive/Independent Disks) konfiguriert sein können, die gemeinsam als eine Massenspeicherungsvorrichtung für die Hostvorrichtung 4 fungieren.
  • Die Speicherungsumgebung 2 kann die Hostvorrichtung 4 beinhalten, die Daten in einer oder mehreren Speicherungsvorrichtungen, wie etwa der Speicherungsvorrichtung 6, speichern kann und/oder von diesen abrufen kann. Wie in 1 veranschaulicht, kann die Hostvorrichtung 4 über eine Schnittstelle 14 mit der Speicherungsvorrichtung 6 kommunizieren. Die Hostvorrichtung 4 kann eine beliebige einer großen Vielfalt von Vorrichtungen aufweisen, einschließlich Computerservern, NAS-Einheiten (NAS: Network Attached Storage), Desktop-Computern, Notebook-Computern (d.h. Laptop-Computer), Tablet-Computern, Set-Top-Boxen, Telefonhandgeräten, wie etwa sogenannten „Smart“-Telefonen, sogenannten „Smart“-Pads, Fernsehern, Kameras, Anzeigevorrichtungen, digitalen Medienabspielgeräten, Videospielkonsolen, einer Video-Streaming-Vorrichtung und dergleichen. Die Hostvorrichtung 4 kann Daten, die in der Speicherungsumgebung 2 gespeichert sind, unter Verwendung logischer oder virtueller Adressen identifizieren.
  • Wie in 1 veranschaulicht, kann die Speicherungsvorrichtung 6 eine Steuerung 8, ein Nichtflüchtiger-Speicher-Array 10 (NVMA 10 – Non-Volatile Memory Array 10), eine Leistungsversorgung 11, einen flüchtigen Speicher 12 und eine Schnittstelle 14 beinhalten. Bei manchen Beispielen kann die Speicherungsvorrichtung 6 zusätzliche Komponenten beinhalten, die in 1 der Klarheit halber nicht gezeigt sind. Zum Beispiel kann die Speicherungsvorrichtung 6 eine Leiterplatte (PB: Printed Board) beinhalten, an der Komponenten der Speicherungsvorrichtung 6 mechanisch angebracht sind und die elektrisch leitfähige Leiterbahnen beinhaltet, die Komponenten der Speicherungsvorrichtung 6 miteinander verbinden; und dergleichen. Bei manchen Beispielen können die physischen Abmessungen und Verbinderkonfigurationen der Speicherungsvorrichtung 6 einem oder mehreren Standardformfaktoren entsprechen. Zum Beispiel beinhalten Standardformfaktoren unter anderem eine 3,5”-Festplatte (HDD: Hard Disk Drive), eine 2,5”-HDD, eine 1,8”-HDD, PCI (peripheral Component Interconnect), PCI-X (PCI-Extended), PCIe (PCI Express) (z.B. PCIe x1, x4, x8, x16, PCIe Mini Card, MiniPCI usw.). Bei manchen Beispielen kann die Speicherungsvorrichtung 6 direkt mit einer Hauptplatine der Speichervorrichtung 4 verbunden (z.B. direkt gelötet) sein.
  • Die Speicherungsvorrichtung 6 kann die Schnittstelle 14 zum Verbinden mit der Hostvorrichtung 4 beinhalten. Die Schnittstelle 14 kann einen Datenbus zum Austauschen von Daten mit der Hostvorrichtung 4 und/oder einen Steuerbus zum Austauschen von Befehlen mit der Hostvorrichtung 4 beinhalten. Die Schnittstelle 14 kann gemäß einem beliebigen geeigneten Protokoll arbeiten. Zum Beispiel kann die Schnittstelle 14 gemäß einem oder mehreren der folgenden Protokolle arbeiten: ATA (Advanced Technology Attachment) (z.B. SATA (Serial-ATA) und PATA (Parallel-ATA)), Fibre-Channel, SCSI (Small Computer System Interface), SAS (Serially Attached-SCSI), PCI (Peripheral Component Interconnect), PCI-Express und NVMe (Non-Volatile Memory Express). Die elektrische Verbindungsschnittstelle 14 (z.B. der Datenbus, der Steuerbus oder beide) ist elektrisch mit der Steuerung 8 verbunden, wodurch eine elektrische Verbindung zwischen der Hostvorrichtung 4 und der Steuerung 8 bereitgestellt wird, wodurch ermöglicht wird, dass Daten zwischen der Hostvorrichtung 4 und der Steuerung 8 ausgetauscht werden. Bei manchen Beispielen kann die elektrische Verbindung der Schnittstelle 14 auch ermöglichen, dass die Speicherungsvorrichtung 6 Leistung von der Hostvorrichtung 4 empfängt. Wie zum Beispiel in 1 veranschaulicht, kann die Leistungsversorgung 11 Leistung von der Hostvorrichtung 4 über die Schnittstelle 14 empfangen.
  • Die Speicherungsvorrichtung 6 beinhaltet die Steuerung 8, die einen oder mehrere Vorgänge der Speicherungsvorrichtung 6 verwalten kann. Zum Beispiel kann die Steuerung 8 das Lesen von Daten aus den Speichervorrichtungen 16Aa16Nn (gemeinsam „Speichervorrichtungen 16“) und/oder das Schreiben von Daten in diese verwalten. Obwohl dies in 1 nicht veranschaulicht ist, kann die Speicherungsvorrichtung 6 bei manchen Beispielen einen Lesekanal, einen Schreibkanal oder beide beinhalten, die einen oder mehrere Vorgänge der Speicherungsvorrichtung 6 weiter verwalten können. Zum Beispiel kann der Lesekanal als ein Beispiel Lesetätigkeiten aus den Speichervorrichtungen 16 verwalten und kann der Schreibkanal als ein Beispiel Schreibtätigkeiten in die Speichervorrichtungen 16 verwalten. Bei manchen Beispielen kann der Lesekanal Techniken dieser Offenbarung durchführen, wie etwa Bestimmen von Werten von jeweiligen Bits, die durch Speicherzellen der Speichervorrichtungen 16 gespeichert sind.
  • Die Speicherungsvorrichtung 6 kann das NVMA 10 beinhalten, das mehrere Speichervorrichtungen 16 beinhalten kann. Jede der Speichervorrichtungen 16 kann dazu konfiguriert sein, Daten zu speichern und/oder abzurufen. Zum Beispiel kann eine Speichervorrichtung der Speichervorrichtungen 16 Daten und eine Nachricht von der Steuerung 8 empfangen, die die Speichervorrichtung anweist, die Daten zu speichern. Gleichermaßen kann die Speichervorrichtung der Speichervorrichtungen 16 eine Nachricht von der Steuerung 8 empfangen, die die Speichervorrichtung anweist, die Daten abzurufen. Bei manchen Beispielen kann jede der Speichervorrichtungen 16 als ein Die bezeichnet werden. Bei manchen Beispielen kann ein einziger physischer Chip mehrere Dies (d.h. mehrere Speichervorrichtungen 16) beinhalten. Bei manchen Beispielen kann jede der Speichervorrichtungen 16 dazu konfiguriert sein, relativ große Mengen an Daten (z.B. 128MB, 256MB, 512MB, 1GB, 2GB, 4GB, 8GB, 16GB, 32GB, 64GB, 128GB, 256GB, 512GB, 1TB usw.) zu speichern.
  • Bei manchen Beispielen können die Speichervorrichtungen 16 eine beliebige Art von Nichtflüchtiger-Speicher-Vorrichtungen beinhalten. Manche Beispiele für die Speichervorrichtungen 16 beinhalten unter anderem Flash-Speichervorrichtungen, PCM-Vorrichtungen (PCM: Phase-Change Memory), ReRAM-Vorrichtungen (ReRAM: Resistive Random-Access Memory), MRAM-Vorrichtungen (MRAM: Magnetoresistive Random-Access Memory), F-RAM (Ferroelectric Random-Access Memory), holographische Speichervorrichtungen und eine beliebige andere Art von nichtflüchtigen Speichervorrichtungen.
  • Flash-Speichervorrichtungen können NAND-basierte Flash-Speichervorrichtungen beinhalten und können Daten basierend auf einer Ladung, die in einem Floating-Gate (oder Ladungsfallen in dem Tunneloxid) eines Transistors für jede Flash-Speicherzelle enthalten sind, speichern. Bei NAND-Flash-Speichervorrichtungen kann die Flash-Speichervorrichtung in mehrere Blöcke unterteilt sein, von denen jeder in mehrere Seiten unterteilt sein kann. 2 ist ein konzeptuelles Blockdiagramm, das eine Beispielspeichervorrichtung 16Aa veranschaulicht, die mehrere Blöcke 17A17N (gemeinsam „Blöcke 17“) beinhaltet, von denen jeder in mehrere Seiten 19Aa19Nm (gemeinsam „Seiten 19“) unterteilt ist. Jede Seite der Seiten 19 innerhalb einer bestimmten Speichervorrichtung (z.B. Speichervorrichtung 16Aa) kann mehrere Flash-Speicherzellen beinhalten. Bei NAND-Flash-Speichervorrichtungen können Zeilen von Flash-Speicherzellen unter Verwendung einer Wortleitung elektrisch verbunden sein, um eine Seite der mehreren Seiten 19 zu definieren. Jeweilige Zellen in jeder der Seiten 19 können elektrisch mit jeweiligen Bitleitungen verbunden sein. Die Steuerung 8 kann Daten auf Seitenebene in die NAND-Flash-Speichervorrichtungen schreiben und aus diesen lesen und kann Daten auf Blockebene aus den NAND-Flash-Speichervorrichtungen löschen.
  • Anstatt dass jede Flash-Speicherzelle ein einziges Bit von Daten speichert, kann jede Flash-Speicherzelle bei manchen Beispielen mehrere Bits von Daten beinhalten. Zum Beispiel können Flashspeicherzellen der Speichervorrichtungen 16 MLC-Flash-Speicherzellen, TLC-Flash-Speicherzellen oder dergleichen beinhalten. Bei manchen Beispielen ist jedes Bit in einer MLC-Flash-Speicherzelle oder einer TLC-Flash-Speicherzelle mit einer jeweiligen Seite der Seiten 19 verknüpft. Zum Beispiel kann ein erstes Bit, das durch eine MLC-Flash-Speicherzelle gespeichert wird, mit einer oberen Seite verknüpft sein und kann ein zweites Bit, das durch eine MLC-Flash-Speicherzelle gespeichert wird, mit einer unteren Seite verknüpft sein. Gleichermaßen kann ein erstes Bit, das durch eine TLC-Flash-Speicherzelle gespeichert wird, mit einer oberen Seite verknüpft sein, kann ein zweites Bit, das durch eine TLC-Flash-Speicherzelle gespeichert wird, mit einer mittleren Seite verknüpft sein und kann ein drittes Bit, das durch eine TLC-Flash-Speicherzelle gespeichert wird, mit einer unteren Seite verknüpft sein. Gleichermaßen können jeweilige Bits von MLC- und TLC-Flash-Speicherzellen mit jeweiligen physischen Seitenadressen verknüpft sein, wie unten ausführlicher beschrieben wird.
  • Die Speicherzellen der Seiten 19 können dreidimensionale (3D) NAND-Zellen (oder „3D-NAND“-Zellen) beinhalten. 3D-NAND-Zellen unterscheiden sich von planaren 2D-NAND-Zellen darin, dass 3D-NAND-Zellen vertikales Stapeln von Zellenketten ermöglichen. Die vertikal gestapelten Zellen können wiederum in Zeilen und Spalten angeordnet sein, wodurch ein dreidimensionales Array von Zellen bereitgestellt wird. 3D-NAND bietet verschiedene Verbesserungen gegenüber planarem 2D-NAND. Durch vertikales Schichten von Zellen und Positionieren der vertikalen Stapel in einem zweidimensionalen Array erhöht 3D-NAND-Technologie die Speicherungskapazität einer Speichervorrichtung, wie etwa der Speichervorrichtung 16Aa aus 2. 3D-NAND-Technologie bietet auch zusätzliche Verbesserungen gegenüber planarer 2D-NAND-Technologie, wie etwa erhöhte Geschwindigkeit für Lese-/Schreibvorgänge, längere Lebensdauer der NAND-Zellen und effizientere Leistungsnutzung. Zudem kann 3D-NAND-Technologie störungsbedingte Probleme abschwächen, die sich aus einer Zellendichte ergeben. Zum Beispiel können Versuche, den Zwischenzellenraum in einem planaren 2D-Schema zu komprimieren, Signalstörung und/oder Elektronenleckverlust entlang einer Wortleitung verursachen. Bei einem 3D-NAND-Schema kann die gelockerte Zwischenzellendistanz mit der umgebenen Gate-Struktur jedoch viel weniger Störung zwischen Zellen verursachen, da vertikales Stapeln eine erhöhte Zellenanzahl ohne die Notwendigkeit, den Zwischenzellenabstand zu komprimieren, ermöglicht. Dementsprechend hat die 3D-NAND-Technologie im Vergleich zu planarer 2D-NAND-Technologie eine verbesserte Schreibgeschwindigkeit durch Anwenden eines Programmierungsschemas mit einem einzigen Durchgang erbracht. Zum Beispiel werden eine obere und untere Seite in einer 3D-MLC-NAND-Technologie gemeinsam programmiert, wohingegen bei 2D-MLC-NAND die obere Seite zuerst programmiert wird und die untere Seite später programmiert wird, nachdem sie durch eine Störung von angrenzenden Zellen beeinflusst wurde.
  • Bei manchen Beispielen kann es nicht praktikabel sein, dass die Steuerung 8 mit jeder Speichervorrichtung der Speichervorrichtungen 16 getrennt verbunden ist. Von daher können Verbindungen zwischen den Speichervorrichtungen 16 und der Steuerung 8 gemultiplext sein. Als ein Beispiel können die Speichervorrichtungen 16 in Kanäle 18A18N (gemeinsam „Kanäle 18“) gruppiert sein. Wie zum Beispiel in 1 veranschaulicht, können die Speichervorrichtungen 16Aa16An in einen ersten Kanal 18A gruppiert sein und können die Speichervorrichtungen 16Na16Nn in einen N-ten Kanal 18N gruppiert sein. Die Speicherungsvorrichtungen 16, die in jedem der Kanäle 18 zusammengruppiert sind, können eine oder mehrere Verbindungen zu der Steuerung 8 teilen. Zum Beispiel können die Speichervorrichtungen 16, die in dem ersten Kanal 18A gruppiert sind, an einen gemeinsamen E/A-Bus und einen gemeinsamen Steuerbus angebracht sein. Die Speichervorrichtung 6 kann einen gemeinsamen E/A-Bus und einen gemeinsamen Steuerbus für jeden jeweiligen Kanal der Kanäle 18 beinhalten. Bei manchen Beispielen kann jeder der Kanäle 18 einen Satz von CE-Leitungen (CE: Chip Enable – Chip-Einschalt) beinhalten, die verwendet werden können, um Speichervorrichtungen auf jedem Kanal zu multiplexen. Zum Beispiel kann jede CE-Leitung mit einer jeweiligen Speichervorrichtung der Speichervorrichtungen 16 verbunden sein. Auf diese Weise kann die Anzahl an getrennten Verbindungen zwischen der Steuerung 8 und den Speichervorrichtungen 16 reduziert werden. Zusätzlich kann, da jeder Kanal einen unabhängigen Satz von Verbindungen zu der Steuerung 8 aufweist, die Reduzierung von Verbindungen die Datendurchsatzrate nicht erheblich beeinflussen, da die Steuerung 8 gleichzeitig verschiedene Befehle an jeden Kanal ausgeben kann.
  • Die Speicherungsvorrichtung 6 kann die Leistungsversorgung 11 beinhalten, die Leistung an eine oder mehrere Komponenten der Speicherungsvorrichtung 6 liefern kann. Wenn sie in einem Standardmodus betrieben wird, kann die Leistungsversorgung 11 Leistung an eine oder mehrere Komponenten liefern, die eine Leistung verwenden, die durch eine externe Vorrichtung bereitgestellt wird, wie etwa die Hostvorrichtung 4. Zum Beispiel kann die Leistungsversorgung 11 Leistung an die eine oder die mehreren Komponenten liefern, die eine Leistung verwenden, die über die Schnittstelle 14 von der Hostvorrichtung 4 empfangen wird. Bei manchen Beispielen kann die Leistungsversorgung 11 eine oder mehrere Leistungsspeicherungskomponenten beinhalten, die dazu konfiguriert sind, Leistung an die eine oder die mehreren Komponenten zu liefern, wenn sie in einem Abschaltungsmodus betrieben wird, wie etwa, wenn eine von der externen Vorrichtung empfangene Leistung nachlässt. Auf diese Weise kann die Leistungsversorgung 11 als eine Onboard-Notleistungsquelle fungieren. Manche Beispiele für die eine oder die mehreren Leistungsspeicherungskomponenten beinhalten unter anderem Kondensatoren, Superkondensatoren, Batterien und dergleichen. Bei manchen Beispielen kann die Leistungsmenge, die durch die eine oder die mehreren Leistungsspeicherungseinheiten gespeichert werden kann, eine Funktion der Kosten und/oder der Größe (z.B. Fläche/Volumen) der einen oder der mehreren Leistungsspeicherungskomponenten sein. Mit anderen Worten nehmen die Kosten und/oder die Größe der einen oder der mehreren Leistungsspeicherungskomponenten ebenfalls zu, wenn die Menge an Leistung, die durch die eine oder die mehreren Leistungsspeicherungseinheiten gespeichert wird, zunimmt.
  • Die Speicherungsvorrichtung 6 kann den flüchtigen Speicher 12 beinhalten, der durch die Steuerung 8 verwendet werden kann, um Informationen zu speichern. Bei manchen Beispielen kann die Steuerung 8 den flüchtigen Speicher 12 als einen Cache verwenden. Zum Beispiel kann die Steuerung 8 die Cache-gespeicherten Informationen 13 in dem flüchtigen Speicher 12 speichern, bis die Cache-gespeicherten Informationen 13 in die Speichervorrichtungen 16 geschrieben sind. Wie in 1 veranschaulicht, kann der flüchtige Speicher 12 Leistung verbrauchen, die von der Leistungsversorgung 11 empfangen wird. Beispiele für den flüchtigen Speicher 12 beinhalten unter anderem RAM (Random-Access Memory), DRAM (Dynamic Random Access Memory), SRAM (Static RAM) und SDRAM (Synchronous Dynamic RAM (z.B. DDR1, DDR2, DDR3, DDR3L, LPDDR3, DDR4 und dergleichen)).
  • Bei manchen Beispielen kann die Steuerung 8 den flüchtigen Speicher 12 verwenden, um eine „L2P“-Datenadressenübersetzungstabelle („L2P“: Logical-to-Physical – logisch-zu-physisch, oder virtuell-zu-physisch) zu speichern. Die Hostvorrichtung 4 kann unter Verwendung der logischen Datenadresse auf eine Dateneinheit verweisen und die Steuerung 8 kann physische Datenadressen benutzen, um Schreiben von Daten in die Speichervorrichtung 16 und Lesen von Daten von dieser zu regeln. Bei manchen Beispielen kann die Logisch-zu-physisch-Datenadressenübersetzungstabelle Einträge beinhalten, die eine logische Datenadresse und eine entsprechende physische Datenadresse beinhalten. Anstatt, dass jeder Eintrag in der Logisch-zu-physisch-Datenadressenübersetzungstabelle eine logische Datenadresse beinhaltet, kann die Logisch-zu-physisch-Datenadressenübersetzungstabelle bei manchen Beispielen einen Index beinhalten, der die jeweilige logische Datenadresse von jedem Eintrag in der Logisch-zu-physisch-Datenadressenübersetzungstabelle codiert. Bei manchen dieser Beispiele kann die Logisch-zu-physisch-Datenadressenübersetzungstabelle den Indexwert (oder die logische Datenadresse) nicht mit den jeweiligen Einträgen in der Logisch-zu-physisch-Datenadressenübersetzungstabelle speichern.
  • Die Steuerung 8 kann den gleichen Befehl zum Programmieren mit einem einzigen Durchgang hinsichtlich des Reprogrammierens der Zellen der Speichervorrichtung 16Aa verwenden, weil 3D-NAND-Zellen hinsichtlich einer Programmierung mit einem einzigen Durchgang kompatibel sind. Zum Beispiel kann die Steuerung 8 einen „Programmierung“-Befehl verwenden, der mit planaren 2D-NAND-Zellen kompatibel ist, um 3D-NAND-Zellen zu reprogrammieren. Um 3D-NAND-Zellen unter Verwendung eines Programmierungsschemas mit einem einzigen Durchgang zu reprogrammieren, kann die Steuerung 8 aufgrund eines geringen Ausmaßes der Kopplung zwischen angrenzenden Wortleitungen alle Zustände in einem einzigen Schritt programmieren, ohne angrenzende Zellen zu stören.
  • Um Daten zu erhalten, die ansonsten aufgrund von Fehlern verloren werden könnten, kann die Steuerung 8 3D-NAND-Zellen der Speichervorrichtung 16Aa von Zeit zu Zeit aktualisieren. Zum Beispiel kann jede Zelle der Speichervorrichtung 16Aa eine Erhaltungsgrenze aufweisen, kann durch Lesevorgänge für angrenzende Zellen beeinflusst werden oder kann beides zutreffen. Die Erhaltungsgrenze verweist auf eine Zeitdauer, nach der veraltete Daten oder „kalte“ Daten, die in der Zelle gespeichert sind, aufgrund von Hardwaregrenzen, wie etwa Ladungsleckverlust von dem Floating-Gate der Zelle, potentiell verloren werden.
  • Zudem kann die Steuerung 8 die Zellen der Speichervorrichtung 16Aa unter Verwendung eines An-der-Stelle-Reprogrammierungsbefehls reprogrammieren. 3D-NAND-Technologie unterstützt An-der-Stelle-Reprogrammierung, was unten ausführlicher beschrieben wird. Reprogrammieren umschließt allgemein drei Schritte, nämlich einen Lesevorgang, einen ECC-Decodierung/Codierung-Vorgang und einen Programmiervorgang. Bei dem Lesevorgang kann die Steuerung 8 die Daten lesen, die momentan in einer Seite 19 eines der Blöcke 17 gespeichert sind. Basierend auf einer Bestimmung, dass die Daten der jeweiligen Seite 19 die Erhaltungsgrenze erreicht haben oder sich dieser annähern, kann die Steuerung 8 die gelesenen Daten unter Verwendung eines ECC, der mit den Daten verknüpft ist, decodieren und die Daten dann unter Verwendung eines geeigneten ECC codieren. In dem dritten Schritt kann die Steuerung 8 die ECC-codierten Daten in die gleiche Seite 19 schreiben, von der die ursprünglichen Daten gelesen wurden. Weil die Daten in die gleiche Seite der Seiten 19 geschrieben werden, aus der die damals-kalten Daten gelesen wurden, wird diese Reprogrammierungstechnik als „An-der-Stelle“-Reprogrammierung bezeichnet.
  • An-der-Stelle-Reprogrammierung einer Zelle umschließt eine Anzahl an Vorgängen. Der erste Vorgang besteht darin, die momentan gespeicherten Daten aus der Zelle zu lesen. Zum Beispiel kann die Steuerung 8 die Daten lesen und die Daten an eine temporäre oder „Temp“-Stelle kopieren. Die Steuerung 8 kann die verbleibenden Schritte in verschiedenen Reihenfolgen oder Sequenzen durchführen. Als ein anderer Schritt in dem An-der-Stelle-Reprogrammierungsprozess kann die Steuerung 8 die kopierten Daten unter Verwendung des ECC decodieren und wiedercodieren. Als ein abschließender Schritt in dem An-der-Stelle-Reprogrammierungsprozess kann die Steuerung 8 die ECC-codierten Daten zurück in die gleiche Stelle (z.B. Seite) programmieren, von der die Steuerung 8 die Daten ursprünglich gelesen hat. Als ein anderer Schritt in dem An-der-Stelle-Reprogrammierungsprozess kann die Speichervorrichtung 16 die Zellenschwellenspannung rekonfigurieren. Zum Beispiel kann die Speichervorrichtung 16 die Zelle programmieren, um die Zelle in den ursprünglich zugewiesenen Zustand zurückzusetzen. Weil das Reprogrammieren Programmieren einer Zelle umschließt, um die Zelle in ihren ursprünglich programmierten Zustand zurückzusetzen, kann die Steuerung 8 das Reprogrammieren in Fällen verwenden, bei denen die Zellenschwellenspannung abgefallen ist (z.B. aufgrund von Elektronenleckverlust von dem Floating-Gate).
  • Gemäß manchen Implementierungen der hier beschriebenen Techniken kann die Steuerung 8 3D-NAND-Technologie wirksam einsetzen, um Seiten in einer beliebigen Reihenfolge zu reprogrammieren. Die Struktur von 3D-NAND-Arrays reduziert die Kopplung zwischen angrenzenden Zellen im Vergleich zu planarer 2D-NAND-Technologie. Aufgrund der verminderten Kopplung zwischen angrenzenden Zellen in 3D-NAND-Technologie kann die Steuerung 8 die Seiten in einer beliebigen Reihenfolge reprogrammieren, da die Hintergrundstrukturabhängigkeit zwischen den Zellen reduziert oder sogar vernachlässigbar sein kann. Bei einem Beispiel kann die Steuerung 8 die Fähigkeit, Seiten in einer beliebigen Reihenfolge zu reprogrammieren, verwenden, um nur die fehleranfälligen Seiten innerhalb gesamter Blöcke zu reprogrammieren.
  • Datenauffrischungstechniken für NAND-Zellen benutzen einen ähnlichen Prozess zum Reprogrammieren, aber mit einigen Unterschieden. Um zum Beispiel einen Auffrischungsprozess zu implementieren, kann die Steuerung 8 die ECC-wiedercodierten Daten in eine unterschiedliche Stelle (z.B. eine unterschiedliche Seite) schreiben. Weil der Auffrischungsprozess eine neue Stelle zum Speichern der kopierten Daten verwendet, erhöht der Auffrischungsvorgang einen Verschleiß und löst eine Zunahme der Datenbereinigung aus. Dementsprechend kann Reprogrammieren von Zellen anstelle einer Auffrischung von Daten, die mit einer Zelle verknüpft sind, in eine neue Stelle bevorzugt werden, um Verschleiß und Datenbereinigungsvorgänge zu verringern.
  • Im Zusammenhang mit planaren 2D-NAND-Zellen waren Reprogrammierungsbefehle nicht verfügbar. Dementsprechend war 2D-NAND-Technologie auf Auffrischungsvorgänge beschränkt, unabhängig davon, ob der Fehler in der NAND-Zelle ein Erhaltungsfehler oder ein Lesestörungsfehler war. 3D-NAND-Technologie unterstützt An-der-Stelle-Reprogrammierungsbefehle und Auffrischungsbefehle. Dementsprechend kann die Steuerung 8 sowohl Auffrischungs- als auch An-der-Stelle-Reprogrammierungsprozesse wirksam einsetzen, um eine oder mehrere Techniken dieser Offenbarung zu implementieren.
  • Gemäß einem oder mehreren Aspekten dieser Offenbarung kann die Steuerung 8 dazu konfiguriert sein, basierend auf einer bestimmten Fehlerart, die die Steuerung 8 hinsichtlich einer NAND-Zelle antrifft, zwischen einer Auffrischung und einer An-der-Stelle-Reprogrammierung zu wählen. Zum Beispiel kann die Steuerung 8 den Reprogrammierungsprozess implementieren, um einen Erhaltungsfehler zu beseitigen, und kann eine Zelle auffrischen, um einen Lesestörungsfehler zu beseitigen. Lesestörungsfehler verweisen auf Fälle, bei denen eine Zelle einer sogenannten „Ladungsinjektion“ ausgesetzt ist. Zum Beispiel kann eine Zelle einer Ladungsinjektion in den Zellen von den nichtausgewählten Wortleitungen während eines Leseprozesses der ausgewählten Zellen ausgesetzt sein, da hohe Spannungen an die Wortleitung der nichtausgewählten Zelle zum Leiten eines Kettenstroms angelegt werden.
  • Bei einer Ladungsinjektion nimmt die Zellenschwellenspannung aufgrund eines erhöhten Ladungspegels in dem Floating-Gate der Zelle zu. Ein Lesestörungsfehler kann unter Verwendung einer Auffrischung der Daten, die mit der Zelle verknüpft sind, in eine neue Zelle berichtigt werden. Zum Beispiel kann die Steuerung 8 einen Programmierbefehl, der mit planarer 2D-NAND-Technologie kompatibel ist, wirksam einsetzen, um eine Auffrischung von 3D-NAND-Zellen durchzuführen.
  • Gemäß den Aspekten dieser Offenbarung kann die Steuerung 8 dazu konfiguriert sein, Zellen zu reprogrammieren, die einem Erhaltungsfehler unterliegen. Erhaltungsfehler verweisen auf Änderungen, nämlich Abfälle, der Zellenschwellenspannung mit der Zeit. Insbesondere entwickeln sich Erhaltungsfehler aus einem Elektronenleckverlust von dem Floating-Gate einer Zelle. Wenn das Floating-Gate leckt oder Elektronen verliert, kann die Lesespannung der Zelle abfallen. Mit anderen Worten können sich Erhaltungsfehler durch eine Abnahme der Zellenschwellenspannung aufgrund des Verlusts von Elektronen von dem Floating-Gate der Zelle manifestieren. Falls gespeicherte Daten der Zelle veraltet oder kalt werden, sind die Daten dementsprechend gefährdet, aufgrund des andauernden Elektronenleckverlusts von dem Floating-Gate der Zelle verloren zu werden,
  • Erhaltungsfehler können über einen Reprogrammiervorgang beseitigt werden. Wie oben besprochen, umschließt Reprogrammieren einer Zelle Injizieren von Elektronen in das Floating-Gate der Zelle. Weil Erhaltungsfehler mit einem Elektronenverlust verknüpft sind, kann die Steuerung 8 einen Erhaltungsfehler durch Injizieren von Elektronen (d.h. Reprogrammieren) in ein Floating-Gate einer Zelle, für die die Steuerung 8 einen Erhaltungsfehler detektiert, beseitigen. Bei einem Beispiel kann die Steuerung 8 bestimmen, dass sich eine Zelle innerhalb einer Schwellenzeit von dem Erreichen der Erhaltungsgrenze der Zelle befindet. Mit anderen Worten kann die Steuerung 8 bei diesem Beispiel bestimmen, dass die Zelle sich der Erhaltungsgrenze der Zelle annähert oder dieser nahekommt. Basierend auf der Bestimmung, dass die Zelle sich ihrer Erhaltungsgrenze annähert, kann die Steuerung 8 einen potentiellen Datenverlust vermeiden, indem sie einen Reprogrammierungsprozess bezüglich der Zelle durchführt. Bei manchen Beispielen ist der Reprogrammierungsprozess ein An-der-Stelle-Reprogrammierungsprozess, z. B. werden die Daten in die gleiche Zelle programmiert, in der sie ursprünglich gespeichert waren.
  • Auf diese Weise kann die Steuerung 8 die Techniken dieser Offenbarung implementieren, um sowohl Lesestörungsfehler als auch Erhaltungsfehler zu vermeiden und/oder zu beseitigen, indem sie Prozesse, die sich für jede einzelne Art von Fehler besser eignen, dynamisch auswählt und implementiert. Anders gesagt kann die Steuerung 8 die Techniken dieser Offenbarung implementieren, um 3D-NAND-Zellen der Speichervorrichtung 16Aa basierend auf der Natur des Fehlers, den die Steuerung 8 hinsichtlich einer bestimmten Zelle detektiert, selektiv aufzufrischen oder zu reprogrammieren.
  • Durch Implementieren der Techniken dieser Offenbarung kann die Steuerung 8 einen oder mehrere Vorteile gegenüber existierenden Fehlerbeseitigungstechniken bereitstellen. Zum Beispiel kann die Steuerung 8 Berechungsressourcen in Fällen, bei denen die Steuerung 8 eine Zelle reprogrammiert, sparen, weil der Reprogrammierungsprozess weniger ressourcenintensiv als eine Auffrischung ist. Außerdem kann die Steuerung 8 durch Verwenden einer An-der-Stelle-Reprogrammierung hinsichtlich Erhaltungsfehlerzellen den Datenbereinigungsressourcenverbrauch im Vergleich zu Vorrichtungen reduzieren, bei denen jegliche Aktualisierung das Bewegen der Daten zu einer neuen Stelle erfordert. Dementsprechend implementiert die Steuerung 8 gemäß den Techniken dieser Offenbarung sowohl Auffrischungs- als auch Reprogrammierungsprozesse wie angebracht, um Ressourcenverbrauchsvorteile bereitzustellen, während eine Datengenauigkeit beibehalten wird.
  • Wie hier verwendet, verweist eine „Lesestörungsseite“ auf eine Seite, für die die Steuerung 8 einen Lesestörungsfehler oder eine Lesestörung detektiert hat. Wie hier verwendet, verweist eine „Erhaltungsfehlerseite“ auf eine Seite, für die die Steuerung 8 bestimmt hat, dass sie sich an ihrer Erhaltungsgrenze befindet oder sich dieser annähert. Die Steuerung 8 kann eine oder mehrere Techniken dieser Offenbarung implementieren, um Lesestörungsseiten und Erhaltungsfehlerseiten zu identifizieren und zwischen diesen zu unterscheiden. Zum Beispiel kann die Steuerung 8 bestimmte (als „Dummy-Zellen“ bezeichnete) Zellen einer Seite mit vorbestimmten Mustern programmieren. Gemäß diesen Beispielen kann die Steuerung 8 das Dummy-Zellen-Muster auf eine Weise manipulieren, um Erhaltungsfehlerzellen zu detektieren, und kann das Dummy-Zellen-Muster auf eine andere Weise manipulieren, um Lesestörungszellen zu detektieren. Im Gegenzug kann die Steuerung 8 beliebige Seiten reprogrammieren, für die detektiert wurde, dass sie mit einem Erhaltungsfehlermuster verknüpft sind, und kann beliebige Seiten auffrischen, für die detektiert wurde, dass sie mit einem Lesestörungsmuster verknüpft sind.
  • 3 ist ein konzeptuelles Diagramm, das das Dummy-Zellen-basierte Fehleridentifizierungsschema, das die Steuerung 8 implementieren kann, gemäß Aspekten dieser Offenbarung veranschaulicht. Eine ursprüngliche Seite 52 beinhaltet einen Seitendatenteil 52a und Dummy-Zellen-Daten 52b. Zum Beispiel kann die Steuerung 8 die Dummy-Zellen-Daten 52b mit vorbestimmten Mustern befüllen, die die Steuerung 8 mit fehlerfreien Zellen verknüpft. Bei dem bestimmten Beispiel aus 3 kann die Steuerung 8 zwei Dummy-Zellen mit vorbestimmten „10“- und „00“-Mustern (V2- und V3-Zuständen) programmieren, um anzuzeigen, dass kein Fehler hinsichtlich der ursprünglichen Seite 52 detektiert wurde. Dementsprechend repräsentieren die ursprünglichen Seiten 52 in manchen Fällen eine Seite, die sich in einer Vorfehlerphase befindet. Die Steuerung 8 kann einen Lesestörungsfehler oder einen Erhaltungsfehler hinsichtlich der ursprünglichen Seite 52 basierend auf bestimmten Werten, die aus den Dummy-Zellen-Daten 52b gelesen werden, detektierten. Zum Beispiel können bestimmte Werte der Dummy-Zellen-Daten 52b, die von den vorbestimmten fehlerfreien Werten abweichen, die spezielle Fehlerart anzeigen, die hinsichtlich der ursprünglichen Seite 52 detektiert wurde. Im Gegenzug dazu kann die Steuerung 8, falls die Steuerung 8 detektiert, dass eine Seite (z.B. die ursprüngliche Seite 52) Dummy-Zellen-Daten aufweist, die den vorbestimmten „10“- und „00“-Mustern entsprechen, bestimmen, dass eine solche Seite momentan keinem Fehler unterliegt.
  • Eine Legende 51 aus 3 veranschaulicht mögliche Werte, die aus den Dummy-Zellen einer Seite gelesen werden können. Wie gezeigt, sind die vorbestimmten fehlerfreien Zellen mit „10“- und „00“-Werten programmiert, die dem zweiten und dritten Spannungszustand in einer aufsteigenden Reihenfolge von vier Spannungszuständen entsprechen. Von daher kann eine Abnahme der Spannung hinsichtlich der ursprünglichen Seite 52 verursachen, dass der „10“-Wert fälschlicherweise als „11“ gelesen wird und dass der „00“-Wert fälschlicherweise als „10“ gelesen wird. Gleichermaßen kann eine Zunahme der Spannung hinsichtlich der ursprünglichen Seite 52 verursachen, dass der „10“-Wert fälschlicherweise als „00“ gelesen wird und dass der „00“-Wert fälschlicherweise als „01“ gelesen wird.
  • 3 veranschaulicht auch eine Erhaltungsfehlerseite 54. In manchen Fällen repräsentiert die Erhaltungsfehlerseite 54 einen aufgrund eines Erhaltungsfehlers geänderten Zustand der ursprünglichen Seite 52. Weil der Erhaltungsfehler mit einem Abfall der Zellenschwellenspannung verknüpft ist, können sich die Dummy-Daten 52b der ursprünglichen Seite 52b entlang der x-Achse der Legende 51 nach links verschieben. Mit anderen Worten kann eine Erhaltungsfehlerseite 54 im Vergleich zu den ursprünglich programmierten Werten fehlerhafte Lesewerte der Dummy-Zellen-Daten an die Steuerung 8 liefern.
  • Die Erhaltungsfehlerseite 54 beinhaltet die gleichen Seitendaten, nämlich die Seitendaten 52a, wie die Seitendaten 54a für die Erhaltungsfehlerseite 54. Insbesondere sollen die Seitendaten 54a der Erhaltungsfehlerseite 54 identisch mit den Seitendaten 52a der ursprünglichen Seite 52 sein (abgesehen von einem beliebigen Erhaltungsfehler oder Lesestörungsfehlern in den Seitendaten 54a). Jedoch kann die Steuerung 8 Dummy-Zellen-Daten 54b der Erhaltungsfehlerseite 54 lesen, um den Erhaltungsmodusfehler basierend auf den fehlerhaften Werten, die aus dem Ladungsleckverlust resultieren, der mit dem Erhaltungsfehler verknüpft ist, zu erkennen. Wie in 3 gezeigt, beinhaltet die Erhaltungsfehlerseite 54 Dummy-Zellen-Daten 54b, die sich von den Dummy-Zellen-Daten 52b der ursprünglichen Seite 52 unterscheiden, weil die Dummy-Zellen-Daten 54b fehlerhafte Werte liefern, wenn sie gelesen werden. Insbesondere beinhalten die Dummy-Zellen-Daten 54b eine Sequenz von „11“ und „10“, die einen Erhaltungsfehler anzeigt, weil der Spannungsabfall, der mit dem Erhaltungsfehler verknüpft ist, dazu führt, dass das Lesen der Dummy-Zellen-Daten 54b inkorrekte Werte zurückgibt. Wie zuvor beschrieben, verursacht der Spannungsabfall, dass die Dummy-Zellen-Daten 52b gemäß einer Linksverschiebung entlang der x-Achse der Legende 51 beschädigt werden, was dazu führt, dass die Sequenz von „11“- und „10“-Mustern gelesen wird.
  • Basierend darauf, dass die Dummy-Zellen-Daten 54b, die jetzt gelesen werden, die Sequenz aus „11“- und „10“-Mustern liefern, kann die Steuerung 8 die Dummy-Zellen-Daten 54b verwenden, um die Erhaltungsfehlerseite 54 als eine Seite zu identifizieren, die ihre Erhaltungsgrenze erreicht hat oder sich dieser annähert. Entsprechend kann die Steuerung 8 die selektiven Beseitigungstechniken dieser Offenbarung implementieren, um die Zellen der Erhaltungsfehlerseite 54 zu reprogrammieren und die Daten, die durch die Erhaltungsfehlerseite 54 gespeichert sind, wiederherzustellen.
  • 3 veranschaulicht auch eine Lesestörungsseite 56. In manchen Fällen repräsentiert die Lesestörungsseite 56 einen geänderten Zustand der ursprünglichen Seite 52. Zum Beispiel kann die Lesestörungsseite 56 im Vergleich zu der ursprünglichen Seite 52 einen Lesestörungsfehler aufgrund einer Ladungsinjektion in die Floating-Gates aufgrund einer Elektroneninjektion während des Lesens anderer Seiten in dem ausgewählten Block aufzeigen. Im Gegenzug werden die Dummy-Daten 52b der ursprünglichen Seite 52b beschädigt, wodurch der Lesestörungsfehler angezeigt wird, wenn sie durch die Steuerung 8 gelesen werden. Insbesondere kann die Ladungsinjektion entlang der Wortleitung eine Zunahme der Floating-Gate-Spannung verursachen, die durch eine Verschiebung nach rechts entlang der x-Achse der Legende 51 repräsentiert wird, wodurch ein bestimmter Satz von fehlerhaften Werten hervorgebracht wird.
  • Die Lesestörungsseite 56 von der ursprünglichen Seite 52 kann die gleichen Seitendaten, nämlich die Seitendaten 52a, wie die Seitendaten 56a beibehalten. Insbesondere sollen die Seitendaten 56a der Lesestörungsseite 56 identisch mit den Seitendaten 52a der ursprünglichen Seite 52 sein. Jedoch kann die Steuerung 8 Dummy-Zellen-Daten 56b der Lesestörungsseite 56 lesen, um die Lesestörung zu detektieren. Wie in 3 gezeigt, beinhaltet die Lesestörungsseite 56 Dummy-Zellen-Daten 56b, die sich von den Dummy-Zellen-Daten 52b der ursprünglichen Seite 52 darin unterscheiden, dass die Dummy-Zellen-Daten 56b fehlerhafte Werte liefern, wenn sie gelesen werden. Insbesondere beinhalten die Dummy-Zellen-Daten 56b eine Sequenz von „00“- und „01“-Mustern, die die Lesestörung aufgrund der Spannungszunahme der Floating-Gates, die mit der Lesestörung verknüpft sind, anzeigen. Wie zuvor beschrieben, verursacht die Spannungszunahme, dass die Dummy-Zellen-Daten 52b aufgrund dessen, dass die Floating-Gate-Spannungen erhöht werden, beschädigt werden, was durch eine Rechtsverschiebung entlang der x-Achse der Legende 51 repräsentiert wird und dazu führt, dass die Sequenz von „00“- und „01“-Mustern gelesen wird
  • Basierend darauf, dass die Dummy-Zellen-Daten 56b mit der Sequenz aus „00“-und „01“-Mustern befüllt werden, kann die Steuerung 8 die Dummy-Zellen-Daten 56b verwenden, um die Lesestörungsseite 56 als eine Seite zu lesen, die eine nichtgewollte Elektroneninjektion aufgrund des Lesens anderer Zellen in ihrer Wortleitung erlebt hat. Entsprechend kann die Steuerung 8 die selektiven Beseitigungstechniken dieser Offenbarung implementieren, um die Daten aus den Zellen der Lesestörungsseite 56 in eine andere Seite aufzufrischen.
  • 4 ist ein konzeptuelles und schematisches Blockdiagramm, das beispielhafte Einzelheiten der Steuerung 8 veranschaulicht. Bei manchen Beispielen kann die Steuerung 8 ein Adressenübersetzungsmodul 32, ein Schreibmodul 34, ein Instandhaltungsmodul 36, ein Lesemodul 38, ein Planungsmodul 40 und mehrere Kanalsteuerungen 42A42N (gemeinsam „Kanalsteuerungen 53“) beinhalten. Bei anderen Beispielen kann die Steuerung 8 zusätzliche Module oder Hardwareeinheiten beinhalten oder kann weniger Module oder Hardwareeinheiten beinhalten. Die Steuerung 8 kann einen Mikroprozessor, einen digitalen Signalprozessor (DSP), einen anwendungsspezifischen integrierten Schaltkreis (ASIC: Application Specific Integrated Circuit), ein vor Ort programmierbares Gate-Array (FPGA: Field Programmable Gate Array) oder eine andere digitale Logikschaltungsanordnung beinhalten. Bei manchen Beispielen kann die Steuerung 8 ein System auf einem Chip (SoC: System on a Chip) sein.
  • Die Steuerung 8 kann über die Schnittstelle 14 mit der Hostvorrichtung 4 gekoppelt sein und kann die Speicherung von Daten in den Speichervorrichtungen 16 und das Abrufen von Daten aus diesen verwalten. Zum Beispiel kann das Schreibmodul 34 der Steuerung 8 Schreibtätigkeiten in die Speichervorrichtungen 16 verwalten. Zum Beispiel kann das Schreibmodul 34 eine Nachricht von der Hostvorrichtung 4, welche die Speicherungsvorrichtung 6 anweist, Daten zu speichern, die mit einer logischen Datenadresse verknüpft sind, und die Daten über die Schnittstelle 14 empfangen. Das Schreibmodul 34 kann das Schreiben der Daten in die Speichervorrichtungen 16 verwalten.
  • Zum Beispiel kann das Schreibmodul 34 mit dem Adressenübersetzungsmodul 32 kommunizieren, das eine Übersetzung zwischen logischen Datenadressen, die von der Hostvorrichtung 4 zum Verwalten von Speicherungsstellen von Daten verwendet werden, und physischen Datenadressen, die von dem Schreibmodul 34 zum Regeln des Schreibens von Daten in die Speichervorrichtung 16 verwendet werden, verwaltet. Das Adressenübersetzungsmodul 32 der Steuerung 8 kann eine Logisch-zu-physisch-Datenadressenübersetzungstabelle benutzen, die logische Datenadressen (oder logische Blockadressen) von Daten, die durch die Speichervorrichtungen 16 gespeichert werden, mit physischen Datenadressen (oder physischen Blockadressen) von Daten, die durch die Speichervorrichtungen 16 gespeichert werden, verknüpft. Zum Beispiel kann die Hostvorrichtung 4 die logischen Datenadressen der Daten, die durch die Speichervorrichtungen 16 gespeichert werden, in Anweisungen oder Nachrichten an die Speicherungsvorrichtung 6 benutzen, während das Schreibmodul 34 physische Datenadressen der Daten benutzt, um das Schreiben von Daten in die Speichervorrichtungen 16 zu steuern. (Gleichermaßen kann das Lesemodul 38 physische Datenadressen benutzen, um das Lesen von Daten aus den Speichervorrichtungen 16 zu steuern). Die physischen Datenadressen entsprechen tatsächlichen physischen Positionen der Speichervorrichtungen 16.
  • Wie oben beschrieben, können die Speicherzellen der Speichervorrichtungen 16 bei manchen Beispielen Speicherzellen mit mehreren Bits pro Zelle sein, wie etwa MLC-Flash-Speicherzellen, TLC-Flash-Speicherzellen und dergleichen. Bei manchen Beispielen, bei denen Speicherzellen der Speichervorrichtungen 16 Speicherzellen mit mehreren Bits pro Zelle sind, können mehrere physische Seitenadressen und mehrere Seiten mit einer Speicherzelle verknüpft sein. Zum Beispiel können sowohl eine erste physische Seitenadresse, die mit einer oberen Seite verknüpft ist, als auch eine zweite physische Seitenadresse, die mit einer unteren Seite verknüpft ist, mit einer Speicherzelle verknüpft sein. Die erste physische Seitenadresse und die zweite physische Seitenadresse können in der Logisch-zu-physisch-Datenadressenübersetzungstabelle korreliert sein. Bei manchen Beispielen kann das Adressenübersetzungsmodul 32 die Logisch-zu-physisch-Datenadressenübersetzungstabelle in dem flüchtigen Speicher 12 speichern.
  • Auf diese Weise kann ermöglicht werden, dass die Hostvorrichtung 4 eine statische logische Datenadresse für einen bestimmten Satz von Daten verwendet, während sich die physische Datenadresse, bei der die Daten momentan gespeichert sind, ändern kann. Das Adressenübersetzungsmodul 32 kann die Logisch-zu-physisch-Datenadressenübersetzungstabelle beibehalten, um die logischen Datenadressen den physischen Datenadressen zuzuordnen, um zu ermöglichen, dass die statische logische Datenadresse von der Hostvorrichtung 4 verwendet wird, während sich die physische Datenadresse der Daten ändern kann, z. B. aufgrund von Verschleißausgleich, Datenbereinigung und dergleichen. Bei manchen Beispielen kann die Logisch-zu-physisch-Datenadressenübersetzungstabelle eine einschichtige Tabelle sein, so dass das Adressenübersetzungsmodul 32 eine entsprechende physische Datenadresse durch Anwenden eines Hashs auf eine logische Datenadresse, die von der Hostvorrichtung 4 empfangen wird, direkt abrufen kann.
  • Wie oben besprochen, kann das Schreibmodul 34 der Steuerung 8 einen oder mehrere Vorgänge durchführen, um das Schreiben der Daten in die Speichervorrichtungen 16 zu verwalten. Zum Beispiel kann das Schreibmodul 34 das Schreiben der Daten in die Speichervorrichtungen 16 verwalten, indem es einen oder mehrere Blöcke innerhalb der Speichervorrichtungen 16 zum Speichern der Daten auswählt und bewirkt, dass diejenigen Speichervorrichtungen der Speichervorrichtungen 16, die die ausgewählten Blöcke enthalten, die Daten tatsächlich speichern. Wie oben besprochen, kann das Schreibmodul 34 bewirken, dass das Adressenübersetzungsmodul 32 die Logisch-zu-physisch-Datenadressenübersetzungstabelle basierend auf den ausgewählten Blöcken aktualisiert. Zum Beispiel kann das Schreibmodul 34 eine Nachricht von der Hostvorrichtung 4 empfangen, die eine Dateneinheit und eine logische Datenadresse beinhaltet, einen Block und eine Seite innerhalb einer bestimmten Speichervorrichtung der Speichervorrichtungen 16 zum Speichern der Daten auswählen, bewirken, dass die bestimmte Speichervorrichtung der Speichervorrichtungen 16 die Daten tatsächlich speichert (z.B. über eine Kanalsteuerung der Kanalsteuerungen 42, die der bestimmten Speichervorrichtung entspricht), und bewirken, dass das Adressenübersetzungsmodul 32 die Logisch-zu-physisch-Datenadressenübersetzungstabelle aktualisiert, um anzuzeigen, dass die logische Datenadresse der ausgewählten physischen Datenadresse innerhalb der bestimmten Speichervorrichtung der Speichervorrichtungen 16 entspricht.
  • Bei manchen Beispielen kann das Schreibmodul 34 zusätzlich zum Bewirken, dass die Daten durch die Speichervorrichtungen 16 gespeichert werden, bewirken, dass die Speichervorrichtungen 16 Informationen speichern, die verwendet werden können, um die Dateneinheit wiederherzustellen, sollten einer oder mehrere der Blöcke versagen oder beschädigt werden. Die Paritätsinformationen können verwendet werden, um die Daten wiederherzustellen, die durch andere Blöcke gespeichert werden. Bei manchen Beispielen können die Paritätsinformationen ein XOR der Daten sein, die durch die anderen Blöcke gespeichert werden.
  • Um ein Bit mit einem logischen Wert von 0 (geladen) auf ein Bit mit einem vorherigen logischen Wert von 1 (ungeladen) zu schreiben, wird ein starker Strom verwendet. Dieser Strom kann ausreichend stark sein, so dass er unbeabsichtigte Änderungen der Ladung von angrenzenden Flash-Speicherzellen bewirken kann. Zum Schutz gegen unbeabsichtigte Änderungen kann ein gesamter Block von Flash-Speicherzellen auf einen logischen Wert von 1 (ungeladen) gelöscht werden, bevor irgendwelche Daten in Zellen innerhalb des Blocks geschrieben werden. Aufgrund von diesem können Flash-Speicherzellen auf Blockebene gelöscht und auf Seitenebene geschrieben werden.
  • Als Reaktion auf Empfangen eines Schreibbefehls von der Hostvorrichtung 4 kann das Schreibmodul 34 bestimmen, in welche physischen Stellen (z.B. Blöcke) der Speichervorrichtungen 16 die Daten zu schreiben sind. Zum Beispiel kann das Schreibmodul 34 von dem Adressenübersetzungsmodul 22 oder dem Instandhaltungsmodul 36 eine oder mehrere physische Blockadressen anfordern, die leer sind (die z.B. keine Daten speichern), teilweise leer sind (bei denen z.B. nur einige Seiten des Blocks Daten speichern) oder wenigstens einige ungültige (oder veraltete) Daten speichern. Beim Empfangen von einer oder mehreren physischen Blockadressen kann das Schreibmodul 34 einen oder mehrere Blöcke wie oben besprochen auswählen und eine Nachricht kommunizieren, die bewirkt, dass die Kanalsteuerungen 42 die Daten in die ausgewählten Blöcke schreiben.
  • Das Schreibmodul 38 kann das Lesen der Daten aus den Speichervorrichtungen 16 gleichermaßen steuern. Zum Beispiel kann das Lesemodul 38 eine Nachricht von der Hostvorrichtung 4 empfangen, die Daten mit einer verknüpften logischen Datenadresse anfordert. Das Adressenübersetzungsmodul 32 kann die logische Datenadresse unter Verwendung der Flash-Übersetzungsschicht oder -tabelle in eine physische Datenadresse umwandeln. Das Lesemodul 38 kann dann die eine oder die mehreren Kanalsteuerungen 42 steuern, um die Daten aus den physischen Datenadressen abzurufen. Ähnlich dem Schreibmodul 34 kann das Lesemodul 38 einen oder mehrere Blöcke auswählen und eine Nachricht kommunizieren, die bewirkt, dass die Kanalsteuerungen 42 die Daten aus den ausgewählten Blöcken lesen.
  • Jede Kanalsteuerung der Kanalsteuerungen 42 kann mit einem jeweiligen Kanal der Kanäle 18 verbunden sein. Bei manchen Beispielen kann die Steuerung 8 die gleiche Anzahl an Kanalsteuerungen 42 wie die Anzahl an Kanälen 18 der Speicherungsvorrichtung 2 beinhalten. Die Kanalsteuerungen 42 können die vertrauliche Steuerung des Adressierens, Programmierens, Löschens und Lesens der Speichervorrichtungen 16, die mit den jeweiligen Kanälen verbunden sind, z. B. unter der Steuerung des Schreibmoduls 34, des Lesemoduls 38 und/oder des Instandhaltungsmoduls 36 durchführen.
  • Das Instandhaltungsmodul 36 kann dazu konfiguriert sein, Vorgänge durchzuführen, die mit dem Aufrechterhalten einer Leistungsfähigkeit und Verlängern der verwendbaren Lebenszeit der Speicherungsvorrichtung 6 (z.B. der Speichervorrichtungen 16) in Zusammenhang stehen. Zum Beispiel kann das Instandhaltungsmodul 36 einen Verschleißausgleich und/oder eine Datenbereinigung implementieren.
  • Das Planungsmodul 40 der Steuerung 8 kann Vorgänge planen, die durch die Speichervorrichtungen 16 ausgeführt werden sollen. Zum Beispiel kann das Planungsmodul 40 bewirken, dass eine oder mehrere Speichervorrichtungen 16 einen oder mehrere Vorgänge basierend auf Anforderungen, die von anderen Komponenten der Steuerung 8 empfangen werden, durchführen. Bei manchen Beispielen kann das Planungsmodul 40 bewirken, dass eine bestimmte Speichervorrichtung der Speichervorrichtungen 16 einen oder mehrere Vorgänge durchführt, indem es bewirkt, dass eine Kanalsteuerung, die der bestimmten Speichervorrichtung entspricht, Befehle an die bestimmte Speichervorrichtung ausgibt. Als ein Beispiel kann das Planungsmodul 40 zulassen, dass die Kanalsteuerung 42A Befehle ausgibt, die bewirken, dass die Speichervorrichtung 16Aa Daten speichert.
  • Gemäß einer oder mehreren Techniken dieser Offenbarung kann das Instandhaltungsmodul 36 eine oder mehrere der oben beschriebenen selektiven Beseitigungstechniken implementieren, um Lesestörungsfehler und Erhaltungsfehler unter Verwendung von Techniken, die für die Natur jedes Fehlers geeignet sind, zu korrigieren. Wie oben besprochen, kann das Instandhaltungsmodul 36 Seiten reprogrammieren, die sich an oder nahe ihrer Erhaltungsgrenze befinden und kann Seiten auffrischen, die einen Lesestörungsfehler aufzeigen. Sowohl Erhaltungsfehler als auch Lesestörungsfehler manifestieren sich als Fehler hinsichtlich der Zellenspannungspegel. Zum Beispiel kann der Elektronenschwund, der mit einem Erhaltungsfehler verknüpft ist, oder die Elektroneninjektion, die mit einem Lesestörungsfehler verknüpft ist, Überschneidungen der möglichen Zellenspannungen für eine Zelle und der Referenzlesespannungen, die das Instandhaltungsmodul 36 verwendet, um zwischen den möglichen Zellenspannungen zu unterscheiden, bewirken. 5 ist ein konzeptuelles Diagramm, das eine korrekte Verteilung 46 veranschaulicht, die mögliche Zellenspannungen für eine Zelle zeigt. Eine einzige Zelle kann durch Injizieren einer Ladung in das Floating-Gate der Zelle programmiert werden, so dass infolgedessen einer der Spannungszustände V1–V4 die Zellenschwellenspannung ist. Jede der Spannungen V1–V4 kann einem der in der Legende 51 aus 3 veranschaulichten Werte entsprechen. Zum Beispiel kann die Spannung V1 ein Muster von „11“ repräsentieren, kann die Spannung V2 ein Muster von „10“ repräsentieren, kann die Spannung V3 ein Muster von „00“ repräsentieren und kann die Spannung V4 ein Muster von „01“ repräsentieren. Das Lesemodul 38 kann bewirken, dass eine oder mehrere der Kanalsteuerungen 42 zwischen den möglichen Spannungen der v-ten Zelle unterscheiden, um Daten aus den Zellen zu lesen, indem Lesereferenzspannungen R1–R3 angelegt werden, die zwischen zwei „angrenzenden“ möglichen Zellenspannungen V1–V4 liegen. Wie in dem in 5 gezeigten Beispiel gezeigt, kann das Lesemodul 38 die erste Lesereferenzspannung R1 verwenden, um die Spannung V1 von den verbleibenden Spannungen V2–V4 für die Zelle zu unterscheiden. Gleichermaßen kann das Lesemodul 38 die zweite Lesereferenzspannung R2 verwenden, um zwischen einer {V1, V2}-Auswahl und einer {V3, V4}-Auswahl zu unterscheiden. Mit anderen Worten kann das Lesemodul 38 die zweite Referenzlesespannung verwenden, um zwischen einer Zelle mit einer Spannung von V1 oder V2 und einer Zelle mit einer Spannung von V3 oder V4 zu unterscheiden. Das Lesemodul 38 kann die dritte Referenzlesespannung R3 verwenden, um zwischen der Spannung V4 und den verbleibenden Spannungen V1–V3 zu unterscheiden.
  • Weil die Referenzlesespannungen R1–R3 zwischen die jeweiligen Paare der Zellenspannungen V1–V4 der Zelle in 5 fallen, würden die Referenzlesespannungen, wenn sie angelegt werden, einen korrekten Lesewert von dem Inhalt der Datenzelle (veranschaulicht in der Legende 51 aus 3) aus der Zelle gemäß der korrekten Verteilung 46 hervorrufen. Falls jedoch die Spannungen der Floating-Gates der Zellen aufgrund einer Lesestörung oder eines Erhaltungsfehlers verändert sind, dann kann das Anlegen von einer oder mehreren der Referenzlesespannungen R1–R3 möglicherweise einen fehlerhaften Lesewert von einem der „11“-, „10“-, „00“- oder „01“-Muster aus der V-ten Zelle bewirken. Als ein Beispiel kann eine Ladungsinjektion, die zu Lesestörungsfehlern führt, bewirken, dass die Zellenspannung zunimmt, wodurch sie sich möglicherweise mit einer Referenzlesereferenzspannung überschneidet, die normalerweise höher als die Zellenspannung ist.
  • Ein Beispiel für Lesestörungen, die durch Ladungsinjektion entlang der Wortleitung der V-ten Zelle verursacht werden, ist in einer Lesestörungsverteilung 48 des konzeptuellen Diagramms aus 6 veranschaulicht. Bei dem Beispiel der Lesestörungsverteilung 48 bewirkt eine zufällige oder nichtgewollte Ladungsinjektion entlang der Wortleitung der V-ten Zelle, dass eine Zellenspannung zunimmt, unabhängig davon, ob die Zellenspannung V1, V2, V3 oder V4 ist. Obwohl sie nicht maßstabsgetreu gezeichnet ist, repräsentiert die Lesestörungsverteilung 48 aus 6 mit der Rechtsverschiebungsausweitung der Zellenspannungen entlang der horizontalen Achse Zunahmen der Zellenspannung für die V-te Zelle (eine von V1–V4). Aufgrund der rechtsseitigen Ausweitungen der Zellenspannung fällt nun jede der Referenzlesespannungen R1–R3 in den Bereich von einer der möglichen Zellenspannungen V1–V3. Insbesondere fällt nun jede der Referenzlesespannungen mit der einen der möglichen Zellenspannungen V1–V3 zusammen, die ursprünglich in der korrekten Verteilung 46 aus 5 links von ihr war. Weil die Ladungsinjektion entlang der Wortleitung bewirkt, dass jede der möglichen Zellenspannungen V1–V3 zunimmt (gezeigt als rechtsseitige Ausweitung entlang der horizontalen Achse in 6), überschneidet sich nun jede der möglichen Zellenspannung V1–V3 mit einer jeweiligen der Referenzlesespannungen R1–R3. Dementsprechend kann die Steuerung 8 (z.B. das Lesemodul 38 oder das Instandhaltungsmodul 36), sobald die V-te Zelle einen Lesestörungsfehler erfährt, nicht dazu in der Lage sein, genau zwischen einer Zelle mit einer Spannung von V1 oder V2, wenn die Lesereferenzspannung R1 angelegt wird, zwischen einer Zelle mit einer Spannung von V2 oder V3, wenn die Lesereferenzspannung R2 angelegt wird, oder zwischen einer Zelle mit einer Spannung von V3 oder V4, wenn die Lesereferenzspannung R3 angelegt wird, zu unterscheiden. Dementsprechend kann die Steuerung 8 (z.B. das Lesemodul 38 oder das Instandhaltungsmodul 36) Daten nicht genau aus der Zelle wiedererlangen und kann stattdessen fehlerhafte Daten zurückgeben.
  • 7 ist ein konzeptuelles Diagramm, das ein Beispiel für Erhaltungsfehler veranschaulicht, die durch einen Elektronenleckverlust von der V-ten Zelle verursacht werden und die durch eine Erhaltungsfehlerverteilung 50 gezeigt sind. Das in 7 abgebildete Szenario repräsentiert einen Fall eines Erhaltungsfehlers, der in der V-ten Zelle aufgrund eines Elektronenleckverlusts von dem Floating-Gate der V-ten Zelle aufritt. Obwohl sie nicht maßstabsgetreu gezeichnet ist, veranschaulicht die Erhaltungsfehlerverteilung 50 aus 7 eine linksseitige Verschiebung oder Ausweitung der möglichen Zellenspannungen V1–V4 entlang der horizontalen Achse, so dass eine Abnahme der möglichen Zellenspannungen repräsentiert wird. Aufgrund der linksseitigen Ausweitungen der möglichen Zellenspannungen fällt nun jede der Referenzlesespannungen R1–R3 mit einer der Zellenspannungen V2–V4 zusammen. Insbesondere fällt nun jede der Referenzlesespannungen mit der einen der möglichen Zellenspannungen V2–V4 zusammen, die ursprünglich in 7 rechts von ihr war, oder liegt im Bereich von dieser. Weil der Elektronenleckverlust bewirkt, dass jede der möglichen Zellenspannungen V2–V4 abnimmt (gezeigt als eine linksseitige Ausweitung entlang der horizontalen Achse in der Erhaltungsfehlerverteilung 50 aus 7), überschneidet sich nun jede der möglichen Zellenspannungen V2–V4 mit einer jeweiligen der Referenzlesespannungen R1–R3, wodurch dementsprechend eine fehlerhafte Rückgabe der Muster von einer der Zellenspannungen V2–V4 bewirkt wird, wenn das Lesemodul 38 eine der Referenzlesespannungen R1–R3 anlegt.
  • Durch die selektiven Beseitigungstechniken dieser Offenbarung können die Steuerung 8 oder bestimmte Komponenten von dieser, wie etwa das Instandhaltungsmodul 36, verschiedene Mechanismen implementieren, um die fehlerhaften Verteilungen aus 6 und 7 zu den korrekten Verteilungen 46 aus 5 zurückzusetzen. Zum Beispiel kann das Instandhaltungsmodul 46 basierend auf der Detektion, dass die Lesestörungsverteilung 48 eine oder mehrere Lesestörungen entlang der Reihe von Zellen anzeigt, wählen, einen Auffrischungsvorgang hinsichtlich der/den Zelle(n), die einen Lesestörungsfehler anzeigt/anzeigen, zu initiieren. Im Gegensatz dazu kann das Instandhaltungsmodul 46 basierend auf der Detektion, dass die Erhaltungsfehlerverteilung 70 einen oder mehrere Erhaltungsfehler entlang der Reihe von Zellen anzeigt, wählen, einen Reprogrammierungsvorgang hinsichtlich der/den Zelle(n), die einen Erhaltungsfehler anzeigt/anzeigen oder sich ihrer/ihren jeweiligen Erhaltungsgrenzen annähert/annähern, zu initiieren.
  • 8 zeigt ein Flussdiagramm, das einen Beispielprozess 60, den die Steuerung 8 und/oder Komponenten von dieser implementieren können, um Fehler zu detektieren und zu beseitigen, gemäß den Aspekten dieser Offenbarung veranschaulicht. Während ein Prozess 60 aus 8 hier mit Bezug auf die Steuerung 8 beschrieben ist, versteht es sich, dass der Prozess 60 durch eine Vielzahl von Vorrichtungen und/oder Komponenten von diesen durchgeführt werden kann. Der Prozess 60 kann beginnen, wenn die Steuerung 8 einen Seitenleseprozess beginnt (61). Zum Beispiel kann der Seitenleseprozess auf verschiedene Speichervorrichtungen 16 des in 1 veranschaulichten Nichtflüchtiger-Speicher-Arrays 10 anwendbar sein. Im Gegenzug kann die Steuerung 8 ein Seitenlesen von 3D-NAND-Zellen des Nichtflüchtiger-Speicher-Arrays 10 durchführen (62). Zum Beispiel kann das Lesemodul 38 der Steuerung 8 einen Lesealgorithmus implementieren, der mit 3D-NAND-Technologie kompatibel ist, um eine oder mehrere der Seiten aus den 3D-NAND-Zellen des Nichtflüchtiger-Speicher-Arrays 10 zu lesen.
  • Im Gegenzug kann die Steuerung 8 die gelesenen Seitendaten unter Verwendung eines Fehlerkorrekturcodes (ECC: Error Correction Code) decodieren (64). Als ein Beispiel kann die Steuerung 8 die gelesenen Seitendaten decodieren, um die decodierten Daten zu analysieren, um eine oder mehrere weitere Bestimmungen vorzunehmen. Im Gegenzug kann die Steuerung 8 die Dummy-Zellen-Daten hinsichtlich der Seite, die gelesen wurde, überprüfen (66). Wie oben unter Bezugnahme auf 3 beschrieben wurde, kann die Steuerung 8 Techniken dieser Offenbarung implementieren, um die Dummy-Zellen-Daten zu verwenden, um zu bestimmen, ob die Seite einen Fehler aufgezeigt hat. Zum Beispiel kann die Steuerung 8 einen Erhaltungsfehler (oder ein Annähern an eine Erhaltungsgrenze) basierend auf einer bestimmten Abweichung von dem vorbestimmten Satz von Dummy-Zellen-Werten identifizieren und kann einen Lesestörungsfehler basierend auf einer anderen Abweichung von dem vorbestimmten Satz von Dummy-Zellen-Werten erkennen.
  • Die Steuerung 8 kann bestimmen, ob sich eine Fehlerzahl einer ECC-Grenze annähert (Entscheidungsblock 68). Falls die Steuerung 8 bestimmt, dass sich die Fehlerzahl nicht der ECC-Grenze annähert (NEIN-Zweig des Entscheidungsblocks 68), dann kann die Steuerung 8 den Seitenleseprozess beenden oder abschließen (70). Falls die Steuerung 8 jedoch bestimmt, dass sich die Fehlerzahl der ECC-Grenze annähert (JA-Zweig des Entscheidungsblocks 68), dann können die Steuerung 8 und/oder Komponenten von dieser einen oder mehrere Hintergrundvorgänge durchführen, um die detektierten Fehler zu beseitigen (72). Zum Beispiel kann das Instandhaltungsmodul 36 der Steuerung 8 die selektiven Beseitigungstechniken dieser Offenbarung durchführen.
  • 9 ist ein Flussdiagramm, das einen Beispielprozess 80, den die Steuerung 8 und/oder Komponenten von dieser durchführen können, um eine selektive Beseitigung basierend auf der Natur eines bestimmten Fehlers zu implementieren, gemäß Aspekten dieser Offenbarung veranschaulicht. Der Prozess 80 kann beginnen, wenn das Instandhaltungsmodul 36 der Steuerung 8 detektiert, dass sich eine Fehlerzahl der ECC-Grenze (82) annähert.
  • Die verbleibenden Teile des Prozesses 80 aus 9 repräsentieren ein nichtbeschränkendes Beispiel für die Hintergrundvorgänge, die durch den Schritt 72 des Prozesses 60 aus 8 bezeichnet werden. Als Reaktion auf das Detektieren, dass sich die Fehlerzahl der ECC-Grenze annähert, kann das Instandhaltungsmodul 36 bestimmen, ob eine fehlerbehaftete Seite einen Erhaltungsfehler aufzeigt oder ob die fehlerbehaftete Seite einen Lesestörungsfehler aufzeigt (Entscheidungsblock 84). Als ein Beispiel kann das Instandhaltungsmodul 36 bestimmen, welche Abweichung von den vorbestimmten Dummy-Zellen-Daten in den gegenwärtig gelesenen Dummy-Zellen-Daten der fehlerbehafteten Seite wiedergegeben wird. Falls das Instandhaltungsmodul 36 bestimmt, dass die Seite von einem Erhaltungsfehler betroffen ist (linker Zweig des Entscheidungsblocks 84), kann das Instandhaltungsmodul 36 dann die decodierten Daten, die aus der betroffenen Seite gelesen wurden, unter Verwendung eines ECC wiedercodieren (86). Im Gegenzug kann das Instandhaltungsmodul 36 die betroffene Seite reprogrammieren (88). Zum Beispiel kann das Instandhaltungsmodul 36 die Seite an der Stelle reprogrammieren, wie oben besprochen wurde. Gemäß den hier beschriebenen An-der-Stelle-Reprogrammierungstechniken kann das Instandhaltungsmodul 36 die ECC-wiedercodierten Seitendaten in die jetzt reprogrammierte Seite wiederherstellen.
  • Falls das Instandhaltungsmodul 36 detektiert, dass die betroffene Seite einen Lesestörungsfehler aufzeigt (rechter Zweig des Entscheidungsblocks 84), kann das Instandhaltungsmodul 36 einen gesamten Block, der die betroffene Seite beinhaltet, zu der Auffrischungswarteschlange hinzufügen (90). Das Instandhaltungsmodul 36 kann die decodierten Seitendaten ECC-wiedercodieren und kann die wiedercodierten Daten vor jeglichen Löschvorgängen von dem Block an der Spitze der Warteschlange in eine neue Seite programmieren (92).
  • Durch eine Chargenverarbeitung des gesamten Blocks kann das Instandhaltungsmodul 36 die Techniken dieser Offenbarung implementieren, um Zeit und Ressourcen bei Löschvorgängen zu sparen, da mehrere Lesestörungsfehlerseiten gleichzeitig in einem selben Block gefunden werden können. Zum Beispiel kann Anvisieren einer einzigen Seite ein im Vergleich zum Löschen des gesamten Blocks, der die betroffene Seite beinhaltet, relativ zeitaufwändiger und ressourcenintensiver Weg sein, um die betroffene Seite zu löschen.
  • Wie in dem konzeptuellen Diagramm aus 10 veranschaulicht, kann das Instandhaltungsmodul 36 einen gelöschten Block 102 zu einem Ende der Auffrischungswarteschlange 104 hinzufügen. Abschnitte der Auffrischungswarteschlange 104, die unter Verwendung diagonaler Linien schraffiert sind, repräsentieren Abschnitte, die bereits fehleranfälligen Blöcken zugeteilt sind. Abschnitte der Auffrischungswarteschlange 104, die nicht schraffiert sind, repräsentieren Abschnitte, die frei sind, um durch einen neuen Block gefüllt zu werden. Das Instandhaltungsmodul 36 kann Auffrischungsvorgänge auf den Block der Auffrischungswarteschlange 104 auf einer Block-für-Block-Basis anwenden, beginnend mit dem Abschnitt ganz links (d.h. der Spitze) und dann nach rechts in Ein-Block-Schritten fortschreitend. Von daher veranschaulicht 10 die Platzierung des gelöschten Blocks 102 in dem ganz linken nichtgefüllten Abschnitt der Auffrischungswarteschlange 104. Das Instandhaltungsmodul 36 kann die Auffrischungswarteschlange 104 unter Verwendung einer Auslöseschwelle instand halten, die das Instandhaltungsmodul 36 basierend auf einer Toleranz, die mit einer ECC-Fähigkeit verknüpft ist, bestimmt.
  • Obwohl die vorausgehenden Beispiele mit Bezug auf eine Steuerung (und/oder Komponenten von dieser) einer Speicherungsvorrichtung beschrieben wurden, können die hier beschriebenen Beispiele bei anderen Beispielen durch einen anderen Prozessor, wie etwa einen Vielzweckprozessor, oder einen Lesekanal implementiert werden. Obwohl die Beispiele mit Bezug auf Flash-Speicher beschrieben wurden, können die hier beschriebenen Techniken ferner mit anderen Arten von Multi-Level-Speicherzellen benutzt werden. Zum Beispiel können die hier beschriebenen Techniken mit resistivem RAM, Phasenwechselspeicher, magnetoresistivem RAM, DRAM und dergleichen benutzt werden.
  • Die in dieser Offenbarung beschriebenen Techniken können wenigstens teilweise in Hardware, Software, Firmware oder einer beliebigen Kombination von diesen implementiert werden. Zum Beispiel können verschiedene Aspekte der beschriebenen Techniken innerhalb eines oder mehrerer Prozessoren implementiert werden, einschließlich eines oder mehrerer Mikroprozessoren, DSPs, ASICs, FPGAs oder beliebiger anderer äquivalenter integrierter oder diskreter logischer Schaltkreise, genauso wie beliebiger Kombinationen von solchen Komponenten. Der Ausdruck „Prozessor“ oder „Verarbeitungsschaltkreise“ kann allgemein auf einen beliebigen der vorausgehenden logischen Schaltkreise, alleine oder in Kombination mit anderen logischen Schaltkreisen, oder auf beliebige andere äquivalente Schaltkreise verweisen. Eine Steuereinheit, die eine Hardware beinhaltet, kann auch eine oder mehrere der Techniken dieser Offenbarung durchführen.
  • Eine solche Hardware, Software und Firmware können innerhalb derselben Vorrichtung oder innerhalb getrennter Vorrichtungen implementiert werden, um die verschiedenen in dieser Offenbarung beschriebenen Techniken zu unterstützen. Des Weiteren können beliebige der beschriebenen Einheiten, Module oder Komponenten zusammen oder getrennt als diskrete, aber interoperable logische Vorrichtungen implementiert werden. Eine Beschreibung verschiedener Merkmale als Module oder Einheiten soll verschiedene funktionale Aspekte hervorheben und impliziert nicht notwendigerweise, dass solche Module oder Einheiten durch getrennte Hardware-, Firmware- oder Softwarekomponenten realisiert werden müssen. Vielmehr kann eine Funktionalität, die mit einem oder mehreren Modulen oder einer oder mehreren Einheiten verknüpft ist, durch getrennte Hardware-, Firmware- oder Softwarekomponenten durchgeführt werden oder innerhalb gemeinsamer oder getrennter Hardware-, Firmware- oder Softwarekomponenten integriert werden.
  • Die in dieser Offenbarung beschriebenen Techniken können auch in einem Herstellungsartikel, einschließlich eines computerlesbaren Speicherungsmediums, das mit Anweisungen codiert ist, ausgeführt oder codiert werden. Anweisungen, die in einem Herstellungsartikel eingebettet oder codiert sind, einschließlich codiert in einem computerlesbaren Speicherungsmedium, können bewirken, dass ein oder mehrere programmierbare Prozessoren oder andere Prozessoren eine oder mehrere der hier beschriebenen Techniken implementieren, wie etwa, wenn Anweisungen, die in dem computerlesbaren Speicherungsmedium eingebettet oder codiert sind, durch den einen oder die mehreren Prozessoren ausgeführt werden. Computerlesbare Speicherungsmedien können RAM (Random Access Memory), ROM (Read Only Memory), PROM (Programmable Read Only Memory), EPROM (Erasable Read Only Memory), EEPROM (Electronically Erasable Programmable Read Only Memory), Flash-Speicher, eine Festplatte, eine CD-ROM (Compact Disc ROM), eine Diskette, eine Kassette, magnetische Medien, optische Medien oder andere computerlesbare Medien beinalten. Bei solchen Beispielen kann ein Herstellungsartikel ein oder mehrere computerlesbare Speicherungsmedien beinhalten.
  • Bei manchen Beispielen kann ein computerlesbares Speicherungsmedium ein beständiges Medium beinhalten. Der Ausdruck „beständig“ kann anzeigen, dass das Speicherungsmedium nicht in einer Trägerwelle oder einem propagierten Signal ausgeführt ist. Bei bestimmten Beispielen kann ein beständiges Speicherungsmedium Daten speichern, die sich mit der Zeit ändern können (z.B. in RAM oder Cache).
  • Verschiedene Beispiele wurden beschrieben. Diese und andere Beispiele liegen innerhalb des Schutzumfangs der folgenden Ansprüche

Claims (20)

  1. Verfahren, das Folgendes umfasst: Detektieren eines Fehlerzustands, der mit einer ersten Seite eines NAND-Flash-Speichers verknüpft ist, durch einen oder mehrere Prozessoren; Bestimmen durch den einen oder die mehreren Prozessoren, ob der Fehlerzustand mit einer Lesestörung oder mit einem Erhaltungsfehler verknüpft ist; Initiieren eines Auffrischungsvorgangs hinsichtlich der Seite durch den einen oder die mehreren Prozessoren, um die Daten, die in der ersten Seite gespeichert sind, in eine zweite Seite des NAND-Flash-Speichers zu schreiben, falls der Fehlerzustand mit der Lesestörung verknüpft ist; und Initiieren eines Reprogrammierungsvorgangs hinsichtlich der Seite durch den einen oder die mehreren Prozessoren, um die Daten, die in der ersten Seite gespeichert sind, in die erste Seite neuzuschreiben, falls der Fehlerzustand mit dem Erhaltungsfehler verknüpft ist.
  2. Verfahren nach Anspruch 1, wobei der Fehlerzustand mit dem Erhaltungsfehler verknüpft ist, wobei das Verfahren ferner Folgendes umfasst: Lesen der Daten, die in der ersten Seite gespeichert sind; Decodieren der Daten, die aus der ersten Seite gelesen wurden; Codieren der decodierten Daten; und Schreiben der codierten Daten in die erste Seite.
  3. Verfahren nach Anspruch 2, wobei: Decodieren der Daten, die aus der ersten Seite gelesen wurden, Decodieren der Daten unter Verwendung eines ersten Fehlerkorrekturcodes (ECC: Error Correction Code) umfasst, und Codieren der decodierten Daten Codieren der decodierten Daten unter Verwendung eines zweiten Fehlerkorrekturcodes (ECC: Error Correction Code) umfasst.
  4. Verfahren nach einem der vorstehenden Ansprüche, wobei der Fehlerzustand mit der Lesestörung verknüpft ist und wobei die Seite eine Lesestörungsseite ist, wobei das Verfahren ferner Folgendes umfasst: Platzieren eines Blocks von Seiten durch den einen oder die mehreren Prozessoren in einer Auffrischungswarteschlange, die durch den einen oder die mehreren Prozessoren überwacht wird, basierend auf einer Bestimmung, dass der Block von Seiten eine Lesestörungsseite beinhaltet; Lesen des Blocks von Seiten, der die Lesestörungsseite beinhaltet, durch den einen oder die mehreren Prozessoren; Decodieren der Daten, die aus der ersten Seite gelesen wurden; Codieren der decodierten Daten; Schreiben der codierten Daten in die zweite Seite; und Löschen des alten Blocks.
  5. Verfahren nach Anspruch 4, das ferner Folgendes umfasst: Decodieren der Daten, die in dem Block von Seiten gespeichert sind, durch den einen oder die mehreren Prozessoren; und Codieren der decodierten Daten durch den einen oder die mehreren Prozessoren, um einen Block von codierten Daten zu bilden.
  6. Verfahren nach Anspruch 4 oder 5, wobei Platzieren des Blocks von Seiten in der Auffrischungswarteschlange Platzieren des Blocks von Seiten an einem Ende der Auffrischungswarteschlange umfasst, wobei das Verfahren ferner Folgendes umfasst: Auffrischen eines Blocks, der an einer Spitze der Auffrischungswarteschlange positioniert ist, vor dem Auffrischen irgendeines anderen Blocks, der in der Auffrischungswarteschlange enthalten ist.
  7. Verfahren nach Anspruch 6, das ferner Folgendes umfasst: Auffrischen des Blocks, der an der Spitze der Auffrischungswarteschlange positioniert ist, als Reaktion darauf, dass eine Anzahl an Blöcken in der Auffrischungswarteschlange größer als oder gleich einer Schwellenanzahl an Blöcken ist.
  8. Verfahren nach einem der vorstehenden Ansprüche, wobei Bestimmen, ob der Fehlerzustand mit einer Lesestörung oder mit einem Erhaltungsfehler verknüpft ist, Folgendes umfasst: Lesen von Dummy-Zellen-Daten, die mit der Seite verknüpft sind; Bestimmen, dass der Fehlerzustand mit der Lesestörung verknüpft ist, als Reaktion darauf, dass die Dummy-Zellen-Daten, die aus der Seite gelesen wurden, mit einem ersten Muster übereinstimmen; und Bestimmen, dass der Fehlerzustand mit dem Erhaltungsfehler verknüpft ist, als Reaktion darauf, dass die Dummy-Zellen-Daten, die aus der Seite gelesen wurden, mit einem zweiten Muster übereinstimmen.
  9. Vorrichtung, die Folgendes umfasst: eine Speichervorrichtung, die einen NAND-Flash-Speicher umfasst; und einen oder mehrere Prozessoren, die zu Folgendem konfiguriert sind: Detektieren eines Fehlerzustands, der mit einer ersten Seite des NAND-Flash-Speichers verknüpft ist; Bestimmen, ob der Fehlerzustand mit einer Lesestörung oder mit einem Erhaltungsfehler verknüpft ist; Initiieren eines Auffrischungsvorgangs hinsichtlich der Seite, um die Daten, die in der ersten Seite gespeichert sind, in eine zweite Seite des NAND-Flash-Speichers zu schreiben, falls der Fehlerzustand mit der Lesestörung verknüpft ist; und Initiieren eines Reprogrammierungsvorgangs hinsichtlich der Seite, um die Daten, die in der ersten Seite gespeichert sind, in die erste Seite des NAND-Flash-Speichers neuzuschreiben, falls der Fehlerzustand mit dem Erhaltungsfehler verknüpft ist.
  10. Vorrichtung nach Anspruch 9, wobei der Fehlerzustand mit dem Erhaltungsfehler verknüpft ist und wobei der eine oder die mehreren Prozessoren ferner zu Folgendem konfiguriert sind: Lesen der Daten, die in der ersten Seite gespeichert sind; Decodieren der Daten, die aus der ersten Seite gelesen wurden; Codieren der decodierten Daten; und Schreiben der codierten Daten in die erste Seite.
  11. Vorrichtung nach Anspruch 10, wobei: der eine oder die mehreren Prozessoren dazu konfiguriert sind, die Daten unter Verwendung eines ersten Fehlerkorrekturcodes (ECC: Error Correction Code) zu decodieren, um die Daten zu decodieren, die aus der ersten Seite gelesen wurden, und der eine oder die mehreren Prozessoren dazu konfiguriert sind, die decodierten Daten unter Verwendung eines zweiten Fehlerkorrekturcodes (ECC: Error Correction Code) zu codieren, um die decodierten Daten zu codieren.
  12. Vorrichtung nach einem der vorstehenden Ansprüche 9–11, wobei der Fehlerzustand mit der Lesestörung verknüpft ist, wobei die Seite eine Lesestörungsseite ist und wobei der eine oder die mehreren Prozessoren ferner zu Folgendem konfiguriert sind: Platzieren des Blocks von Seiten in einer Auffrischungswarteschlange, die durch den einen oder die mehreren Prozessoren überwacht wird, basierend auf einer Bestimmung, dass der Block von Seiten eine Lesestörungsseite beinhaltet; Lesen des Blocks von Seiten, der die Lesestörungsseite beinhaltet; Decodieren der Daten, die aus der ersten Seite gelesen wurden; Codieren der decodierten Daten; Schreiben der codierten Daten in die zweite Seite; und Löschen des Blocks.
  13. Vorrichtung nach Anspruch 12, wobei der eine oder die mehreren Prozessoren ferner zu Folgendem konfiguriert sind: Decodieren der Daten, die in dem Block von Seiten gespeichert sind; und Codieren der decodierten Daten, um einen Block von codierten Daten zu bilden.
  14. Vorrichtung nach Anspruch 12 oder 13, wobei der eine oder die mehreren Prozessoren dazu konfiguriert sind, den Block von Seiten am Ende der Auffrischungswarteschlange zu platzieren, um den Block von Seiten in der Auffrischungswarteschlange zu platzieren, und wobei der eine oder die mehreren Prozessoren dazu konfiguriert sind, einen Block, der an einer Spitze der Auffrischungswarteschlange positioniert ist, vor dem Auffrischen irgendeines anderen Blocks, der in der Auffrischungswarteschlange enthalten ist, aufzufrischen.
  15. Vorrichtung nach Anspruch 14, wobei der eine oder die mehreren Prozessoren dazu konfiguriert sind, den Block, der an der Spitze der Auffrischungswarteschlange positioniert ist, als Reaktion darauf, dass eine Anzahl an Blöcken in der Auffrischungswarteschlange größer als oder gleich einer Schwellenanzahl an Blöcken ist, aufzufrischen.
  16. Vorrichtung nach einem der vorstehenden Ansprüche 9–15, wobei der eine oder die mehreren Prozessoren zum Bestimmen, ob der Fehlerzustand mit einer Lesestörung oder mit einem Erhaltungsfehler verknüpft ist, zu Folgendem konfiguriert sind Lesen von Dummy-Zellen-Daten, die mit der Seite verknüpft sind; Bestimmen, dass der Fehlerzustand mit der Lesestörung verknüpft ist, als Reaktion darauf, dass die Dummy-Zellen-Daten, die aus der Seite gelesen wurden, mit einem ersten fehlerhaften Muster übereinstimmen; und Bestimmen, dass der Fehlerzustand mit dem Erhaltungsfehler verknüpft ist, als Reaktion darauf, dass die Dummy-Zellen-Daten, die aus der Seite gelesen wurden, mit einem zweiten fehlerhaften Muster übereinstimmen.
  17. Vorrichtung nach einem der vorstehenden Ansprüche 9–16, wobei der NAND-Flash-Speicher einen dreidimensionalen NAND-Flash-Speicher (3D-NAND-Flash-Speicher) umfasst.
  18. Beständiges computerlesbares Speicherungsmedium, das mit Anweisungen codiert ist, die, wenn sie ausgeführt werden, bewirken, dass ein oder mehrere Prozessoren einer Berechnungsvorrichtung Folgendes durchführen: Detektieren eines Fehlerzustands, der mit einer ersten Seite eines NAND-Flash-Speichers verknüpft ist; Bestimmen, ob der Fehlerzustand mit einer Lesestörung oder mit einem Erhaltungsfehler verknüpft ist; Initiieren eines Auffrischungsvorgangs hinsichtlich der Seite, um die Daten, die in der ersten Seite gespeichert sind, in eine zweite Seite zu schreiben, falls der Fehlerzustand mit der Lesestörung verknüpft ist; und Initiieren eines Reprogrammierungsvorgangs hinsichtlich der Seite, um die Daten, die in der ersten Seite gespeichert sind, in die erste Seite neuzuschreiben, falls der Fehlerzustand mit dem Erhaltungsfehler verknüpft ist.
  19. Beständiges computerlesbares Speicherungsmedium nach Anspruch 18, wobei der Fehlerzustand mit der Lesestörung verknüpft ist und wobei die Seite eine Lesestörungsseite ist, wobei das beständige computerlesbare Speicherungsmedium ferner mit Anweisungen codiert ist, die, wenn sie ausgeführt werden, bewirken, dass der eine oder die mehreren Prozessoren der Berechnungsvorrichtung Folgendes durchführen: Platzieren des Blocks von Seiten in einer Auffrischungswarteschlange, die durch den einen oder die mehreren Prozessoren überwacht wird, basierend auf einer Bestimmung, dass der Block von Seiten eine Lesestörungsseite beinhaltet; Auffrischen des Blocks, der an der Spitze der Auffrischungswarteschlange positioniert ist, als Reaktion darauf, dass eine Anzahl an Blöcken in der Auffrischungswarteschlange größer als oder gleich einer Schwellenanzahl an Blöcken ist; Lesen eines Blocks von Seiten, der die Lesestörungsseite beinhaltet; Decodieren der Daten, die in dem Block von Seiten gespeichert sind; Codieren der decodierten Daten, um einen Block von codierten Daten zu bilden; Schreiben der codierten Daten in die zweite Seite; und Löschen des Blocks von Seiten.
  20. Beständiges computerlesbares Speicherungsmedium nach Anspruch 18, wobei der Fehlerzustand mit dem Erhaltungsfehler verknüpft ist, wobei das beständige computerlesbare Medium ferner mit Anweisungen codiert ist, die, wenn sie ausgeführt werden, bewirken, dass der eine oder die mehreren Prozessoren der Berechnungsvorrichtung Folgendes durchführen: Lesen der Daten, die in der ersten Seite gespeichert sind; Decodieren der Daten, die aus der ersten Seite gelesen wurden, unter Verwendung eines ersten Fehlerkorrekturcodes (ECC: Error Correction Code); Codieren der decodierten Daten unter Verwendung eines zweiten ECC; und Schreiben der codierten Daten in die erste Seite.
DE102017114078.6A 2016-09-06 2017-06-26 Fehlerabschwächung für 3d-nand-flash-speicher Withdrawn DE102017114078A1 (de)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US15/257,598 US10290353B2 (en) 2016-09-06 2016-09-06 Error mitigation for 3D NAND flash memory
US15/257,598 2016-09-06

Publications (1)

Publication Number Publication Date
DE102017114078A1 true DE102017114078A1 (de) 2018-03-08

Family

ID=61197826

Family Applications (1)

Application Number Title Priority Date Filing Date
DE102017114078.6A Withdrawn DE102017114078A1 (de) 2016-09-06 2017-06-26 Fehlerabschwächung für 3d-nand-flash-speicher

Country Status (3)

Country Link
US (1) US10290353B2 (de)
CN (1) CN107799150B (de)
DE (1) DE102017114078A1 (de)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11775178B2 (en) 2018-09-26 2023-10-03 Western Digital Technologies, Inc. Data storage systems and methods for improved data relocation based on read-level voltages associated with error recovery

Families Citing this family (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108874309B (zh) * 2018-05-25 2021-07-23 新华三技术有限公司 一种管理固态硬盘中物理块的方法和装置
US10936415B2 (en) * 2019-06-28 2021-03-02 Western Digital Technologies, Inc. Error correction scheme in flash memory
CN110750467B (zh) * 2019-10-22 2021-11-02 深圳芯邦科技股份有限公司 一种Nand Flash中干扰页的检测方法、***
WO2021092830A1 (en) * 2019-11-14 2021-05-20 Yangtze Memory Technologies Co., Ltd. Memory device capable of reducing program disturbance and erasing method thereof
US11226761B2 (en) * 2020-04-24 2022-01-18 Western Digital Technologies, Inc. Weighted read commands and open block timer for storage devices
CN112634971A (zh) * 2020-12-28 2021-04-09 合肥大唐存储科技有限公司 一种确定nand闪存读取电压的方法及装置
CN113053451B (zh) * 2021-03-05 2022-05-10 深圳三地一芯电子有限责任公司 Nandflash内生成softbit的方法、***、主机以及储存介质
CN114138190B (zh) * 2021-11-19 2022-10-28 北京得瑞领新科技有限公司 闪存设备的数据读取方法、装置、存储介质及闪存设备
US20230176767A1 (en) * 2021-12-03 2023-06-08 Hewlett-Packard Development Company, L.P. Interfacing with memory devices
CN114281271B (zh) * 2022-03-07 2022-05-13 北京得瑞领新科技有限公司 判断nand闪存数据可靠性的方法、存储介质及存储设备

Family Cites Families (26)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5606532A (en) 1995-03-17 1997-02-25 Atmel Corporation EEPROM array with flash-like core
JP4256198B2 (ja) * 2003-04-22 2009-04-22 株式会社東芝 データ記憶システム
US8031521B1 (en) 2008-05-20 2011-10-04 Marvell International Ltd. Reprogramming non-volatile memory devices for read disturbance mitigation
US9123422B2 (en) 2012-07-02 2015-09-01 Super Talent Technology, Corp. Endurance and retention flash controller with programmable binary-levels-per-cell bits identifying pages or blocks as having triple, multi, or single-level flash-memory cells
JP5540969B2 (ja) * 2009-09-11 2014-07-02 ソニー株式会社 不揮発性メモリ装置、メモリコントローラ、およびメモリシステム
KR101605381B1 (ko) * 2009-09-28 2016-03-23 삼성전자주식회사 비휘발성 메모리 장치, 이를 구비하는 비휘발성 메모리 시스템
WO2011092641A1 (en) * 2010-01-28 2011-08-04 International Business Machines Corporation Method, device and computer program product for decoding a codeword
US8775868B2 (en) * 2010-09-28 2014-07-08 Pure Storage, Inc. Adaptive RAID for an SSD environment
JP2012178194A (ja) * 2011-02-25 2012-09-13 Renesas Electronics Corp 不揮発性半導体記憶装置
US9093154B2 (en) * 2012-01-16 2015-07-28 Silicon Motion, Inc. Method, memory controller and system for reading data stored in flash memory
US8838883B2 (en) * 2012-04-13 2014-09-16 Sandisk Technologies Inc. System and method of adjusting a programming step size for a block of a memory
US8930778B2 (en) 2012-11-15 2015-01-06 Seagate Technology Llc Read disturb effect determination
US9037946B2 (en) 2013-03-12 2015-05-19 Sandisk Technologies Inc. Detecting effect of corrupting event on preloaded data in non-volatile memory
US9263136B1 (en) * 2013-09-04 2016-02-16 Western Digital Technologies, Inc. Data retention flags in solid-state drives
KR102285994B1 (ko) * 2014-05-13 2021-08-06 삼성전자주식회사 불휘발성 메모리 시스템 및 메모리 컨트롤러의 동작 방법
CN103984509B (zh) 2014-06-11 2019-02-12 上海新储集成电路有限公司 异构nand型固态硬盘及提高其性能的方法
US8942028B1 (en) 2014-06-16 2015-01-27 Sandisk Technologies Inc. Data reprogramming for a data storage device
US9442798B2 (en) * 2014-07-31 2016-09-13 Winbond Electronics Corporation NAND flash memory having an enhanced buffer read capability and method of operation thereof
US9563373B2 (en) * 2014-10-21 2017-02-07 International Business Machines Corporation Detecting error count deviations for non-volatile memory blocks for advanced non-volatile memory block management
KR20160057186A (ko) * 2014-11-13 2016-05-23 에스케이하이닉스 주식회사 반도체 메모리 시스템 및 그것의 동작 방법
US9547571B2 (en) * 2015-05-20 2017-01-17 Sandisk Technologies Llc Block behavior tracking in a memory system
US9524790B1 (en) * 2015-08-02 2016-12-20 Avago Technologies General Ip (Singapore) Pte. Ltd. Flash memory cells wear reduction
US9929750B2 (en) * 2015-09-08 2018-03-27 Toshiba Memory Corporation Memory system
US9904609B2 (en) * 2015-11-04 2018-02-27 Toshiba Memory Corporation Memory controller and memory device
US10002073B2 (en) * 2015-11-06 2018-06-19 SK Hynix Inc. Selective data recycling in non-volatile memory
US10008273B2 (en) * 2016-06-13 2018-06-26 Sandisk Technologies Llc Cell current based bit line voltage

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11775178B2 (en) 2018-09-26 2023-10-03 Western Digital Technologies, Inc. Data storage systems and methods for improved data relocation based on read-level voltages associated with error recovery

Also Published As

Publication number Publication date
US10290353B2 (en) 2019-05-14
CN107799150B (zh) 2020-12-08
US20180068726A1 (en) 2018-03-08
CN107799150A (zh) 2018-03-13

Similar Documents

Publication Publication Date Title
DE102017114078A1 (de) Fehlerabschwächung für 3d-nand-flash-speicher
DE112020000184T5 (de) In zonen unterteilte namensräume in festkörperlaufwerken
DE102020130044A1 (de) Techniken zum verhindern von lese-störung in nand-speicher
DE102018106154A1 (de) Faltungsoperationen in datenspeichersystemen mit einzeladressenaktualisierungen
TWI645404B (zh) 資料儲存裝置以及非揮發式記憶體操作方法
DE112016004629T5 (de) Datencodiertechniken für eine Vorrichtung
CN107391027A (zh) 廉价磁盘冗余阵列存储设备及其管理方法
DE112016005869T5 (de) Vorausschauende Arbeitsspeicherinstandhaltung
DE102016009806A1 (de) Speichern von paritätsdaten getrennt von geschützten daten
DE112020005180T5 (de) Kondensieren von logischen zu physischen tabellenzeigern in ssds unter verwendung von gezonten namensräumen
DE102016009807A1 (de) Korrelieren von physikalischen seitenadressen für soft-decision-dekodierung
DE102021115858A1 (de) Tlc-datenprogrammierung mit hybrid-parität
DE112015000378T5 (de) Selektives Rückkopieren für einen auf einem Chipplättchen gepufferten nichtflüchtigen Speicher
DE112014005570T5 (de) Deaktivieren von Seiten in einem Nand-Flash-Speicher-System
US11003373B2 (en) Systems and methods for managing physical-to- logical address information
DE112020000143T5 (de) Ssd-system, das einschaltzyklus-basierten read-scrub verwendet
DE102021107436A1 (de) Speichersystem und Verfahren zum direkten Quad-Level-Cell-Programmieren (QLC-Programmieren)
DE112020004963T5 (de) Datenintegritätsschutz für zns-anforderungen
DE102021115235A1 (de) Verschiebungsablauf unter verwendung der cba-technologie
US11169871B2 (en) Data storage device and operating method thereof
US11714722B2 (en) Power loss recovery for memory devices
CN114637695A (zh) 用于两遍编程存储器装置的日志方案
DE102021121974A1 (de) Speicher-steuereinheit und speichersystem, welches diese enthält
DE112020004975T5 (de) SPEICHERUNGSVORRICHTUNGEN MIT MINIMALEN SCHREIBGRÖßEN VON DATEN
DE102021115357A1 (de) Verstärktes bootverfahren durch hintergrundneuanordnung von lesemustern

Legal Events

Date Code Title Description
R012 Request for examination validly filed
R119 Application deemed withdrawn, or ip right lapsed, due to non-payment of renewal fee