DE102017120840B4 - Verfahren und Vorrichtung zur Detektion und Handhabung von Lesestörungen - Google Patents
Verfahren und Vorrichtung zur Detektion und Handhabung von Lesestörungen Download PDFInfo
- Publication number
- DE102017120840B4 DE102017120840B4 DE102017120840.2A DE102017120840A DE102017120840B4 DE 102017120840 B4 DE102017120840 B4 DE 102017120840B4 DE 102017120840 A DE102017120840 A DE 102017120840A DE 102017120840 B4 DE102017120840 B4 DE 102017120840B4
- Authority
- DE
- Germany
- Prior art keywords
- error
- page
- nvm
- block
- victim
- 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.)
- Active
Links
- 238000000034 method Methods 0.000 title claims abstract description 71
- 206010013932 dyslexia Diseases 0.000 title description 10
- 230000015654 memory Effects 0.000 claims abstract description 50
- 238000003860 storage Methods 0.000 claims description 23
- 239000007787 solid Substances 0.000 claims description 12
- 238000012937 correction Methods 0.000 claims description 4
- 230000000694 effects Effects 0.000 abstract description 10
- 230000008569 process Effects 0.000 description 19
- 238000001514 detection method Methods 0.000 description 12
- 208000022372 Reading disease Diseases 0.000 description 8
- 238000013461 design Methods 0.000 description 5
- 230000006870 function Effects 0.000 description 5
- 238000004891 communication Methods 0.000 description 4
- 238000010586 diagram Methods 0.000 description 4
- 230000007246 mechanism Effects 0.000 description 4
- 238000010276 construction Methods 0.000 description 3
- 239000011159 matrix material Substances 0.000 description 3
- 230000008520 organization Effects 0.000 description 3
- 238000012546 transfer Methods 0.000 description 3
- 238000009825 accumulation Methods 0.000 description 2
- 230000002411 adverse Effects 0.000 description 2
- 238000005516 engineering process Methods 0.000 description 2
- 238000012545 processing Methods 0.000 description 2
- 230000003321 amplification Effects 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 238000006243 chemical reaction Methods 0.000 description 1
- 238000006073 displacement reaction Methods 0.000 description 1
- 230000000977 initiatory effect Effects 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 238000003199 nucleic acid amplification method Methods 0.000 description 1
- 230000000737 periodic effect Effects 0.000 description 1
- 230000002093 peripheral effect Effects 0.000 description 1
- 230000003449 preventive effect Effects 0.000 description 1
- 238000011084 recovery Methods 0.000 description 1
- 238000005070 sampling Methods 0.000 description 1
- 238000009987 spinning Methods 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
- 239000013589 supplement Substances 0.000 description 1
- 230000001360 synchronised effect Effects 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C29/00—Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
- G11C29/04—Detection or location of defective memory elements, e.g. cell constructio details, timing of test signals
- G11C29/08—Functional testing, e.g. testing during refresh, power-on self testing [POST] or distributed testing
- G11C29/12—Built-in arrangements for testing, e.g. built-in self testing [BIST] or interconnection details
- G11C29/18—Address generation devices; Devices for accessing memories, e.g. details of addressing circuits
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C16/00—Erasable programmable read-only memories
- G11C16/02—Erasable programmable read-only memories electrically programmable
- G11C16/06—Auxiliary circuits, e.g. for writing into memory
- G11C16/34—Determination of programming status, e.g. threshold voltage, overprogramming or underprogramming, retention
- G11C16/3418—Disturbance prevention or evaluation; Refreshing of disturbed memory data
- G11C16/3431—Circuits or methods to detect disturbed nonvolatile memory cells, e.g. which still read as programmed but with threshold less than the program verify threshold or read as erased but with threshold greater than the erase verify threshold, and to reverse the disturbance via a refreshing programming or erasing step
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/08—Error detection or correction by redundancy in data representation, e.g. by using checking codes
- G06F11/10—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
- G06F11/1008—Adding 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/1068—Adding 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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/0614—Improving the reliability of storage systems
- G06F3/0619—Improving the reliability of storage systems in relation to data integrity, e.g. data losses, bit errors
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0638—Organizing or formatting or addressing of data
- G06F3/064—Management of blocks
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0646—Horizontal data movement in storage systems, i.e. moving data in between storage devices or systems
- G06F3/0647—Migration mechanisms
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0668—Interfaces specially adapted for storage systems adopting a particular infrastructure
- G06F3/0671—In-line storage system
- G06F3/0673—Single storage device
- G06F3/0679—Non-volatile semiconductor memory device, e.g. flash memory, one time programmable memory [OTP]
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C16/00—Erasable programmable read-only memories
- G11C16/02—Erasable programmable read-only memories electrically programmable
- G11C16/06—Auxiliary circuits, e.g. for writing into memory
- G11C16/26—Sensing or reading circuits; Data output circuits
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C16/00—Erasable programmable read-only memories
- G11C16/02—Erasable programmable read-only memories electrically programmable
- G11C16/06—Auxiliary circuits, e.g. for writing into memory
- G11C16/34—Determination of programming status, e.g. threshold voltage, overprogramming or underprogramming, retention
- G11C16/3418—Disturbance prevention or evaluation; Refreshing of disturbed memory data
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C16/00—Erasable programmable read-only memories
- G11C16/02—Erasable programmable read-only memories electrically programmable
- G11C16/06—Auxiliary circuits, e.g. for writing into memory
- G11C16/34—Determination of programming status, e.g. threshold voltage, overprogramming or underprogramming, retention
- G11C16/3418—Disturbance prevention or evaluation; Refreshing of disturbed memory data
- G11C16/3427—Circuits or methods to prevent or reduce disturbance of the state of a memory cell when neighbouring cells are read or written
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C29/00—Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
- G11C29/04—Detection or location of defective memory elements, e.g. cell constructio details, timing of test signals
- G11C29/08—Functional testing, e.g. testing during refresh, power-on self testing [POST] or distributed testing
- G11C29/12—Built-in arrangements for testing, e.g. built-in self testing [BIST] or interconnection details
- G11C29/38—Response verification devices
- G11C29/42—Response verification devices using error correcting codes [ECC] or parity check
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C29/00—Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
- G11C29/04—Detection or location of defective memory elements, e.g. cell constructio details, timing of test signals
- G11C2029/0411—Online error correction
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C29/00—Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
- G11C29/52—Protection of memory contents; Detection of errors in memory contents
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Human Computer Interaction (AREA)
- Computer Security & Cryptography (AREA)
- Quality & Reliability (AREA)
- Techniques For Improving Reliability Of Storages (AREA)
- Probability & Statistics with Applications (AREA)
- Read Only Memory (AREA)
Abstract
Description
- Gebiet
- Die vorliegende Offenbarung bezieht sich im Allgemeinen auf Festkörperlaufwerke (SSDs) und insbesondere auf Verfahren und Vorrichtungen zur Detektion und Handhabung von Lesestörungen.
- Hintergrund
- In einer Vielfalt von Haushalts- und Unterhaltungselektronik ersetzen oder ergänzen häufig Festkörperlaufwerke (SSDs), die nichtflüchtige Speicher (NVMs) einbeziehen, herkömmliche sich drehende Festplattenlaufwerke zur Massenspeicherung. Diese nichtflüchtigen Speicher können eine oder mehrere Flash-Speichereinrichtungen wie beispielsweise NAND-Flash-Speicher enthalten und die Flash-Speichereinrichtungen können logisch in Blöcke unterteilt sein, wobei jeder der Blöcke logisch in adressierbare Seiten unterteilt ist. Diese adressierbaren Seiten können irgendeine einer Vielzahl von Größen (z. B. 512 Bytes, 1 Kilobyte, 2 Kilobyte, 4 Kilobyte) aufweisen, die möglicherweise mit den logischen Blockadressengrößen übereinstimmen, die von einer Hostrecheneinrichtung verwendet werden.
- Wenn Zellen oder Seiten in einem Block aus einem NVM gelesen werden, kann der Prozess des Lesens einer Seite eine nachteilige Auswirkung auf andere Seiten in dem Block haben. Das Verfahren, das verwendet wird, um den Flash-Speicher zu lesen, kann dazu führen, dass sich umgebende Seiten in demselben Speicherblock im Laufe der Zeit ändern (d. h. programmiert werden). Die gelesene Seite versagt nicht, stattdessen können aber die umliegenden Seiten bei einem späteren Lesen versagen. Dieses Phänomen wird als Lesehäufungseffekt bezeichnet. Von Lesestörungen induzierte Fehler treten typischerweise auf, wenn eine Wortleitung (WL) eines NVM wesentlich häufiger als andere Wortleitungen auf demselben Block gelesen wird. Insbesondere sind die unmittelbar benachbarten Wortleitungen am meisten für Fehler anfällig und weisen eine große Anzahl von Fehlern auf, nachdem genügend Lesestörungsaktivität stattgefunden hat. Die Lesestörungsfehler können zu möglichem Datenverlust führen, wenn die Fehler zu zahlreich sind, um sie mit Fehlerkorrekturcodes (ECCs) zu korrigieren. Dementsprechend sind dann, wenn ein Lesestörungsproblem auftritt, effektiv eine Lesestörungsquelle oder ein „Angreifer“, der die Lesestörung verursacht, und ein „Opfer“ der Lesestörung, das von der Quelle beeinträchtigt wird, vorhanden.
- Um Lesestörungsfehler zu handhaben oder zu mildern, umfassen bekannte Verfahren ein direktes Durchführen von Lesezählungen für jeden Block in einem NVM. Wenn beispielsweise eine bestimmte Schwelle für Zugriffszählungen eines Blocks erreicht ist, werden dann die Daten des gesamten Blocks in dem NVM verlagert. Dieses Verfahren ist jedoch ineffizient, da der gesamte Block verlagert wird, wenn die Lesezählungsschwelle erreicht ist, und dies ohne Rücksicht auf die tatsächlichen Fehlerraten durchgeführt wird.
- Andere bekannte Mechanismen zum Handhaben von Lesestörungen umfassen ein Durchführen einer periodischen Hintergrundmedienabtastung (BGMS) des gesamten NVM, um herauszufinden, welche Blöcke in dem NVM eine höhere Anzahl von ECC-Fehlern aufweisen. Diese Methodik kann jedoch sehr viel Zeit benötigen, bis eine Stelle tatsächlich abgetastet wird. Somit können aufgrund dieser Verzögerung Daten, die von Lesestörungen betroffen sind, unkorrigierbar werden und Wiederherstellungen mit einer redundanten Anordnung unabhängiger Platten (RAID) oder andere Mechanismen erfordern, um die Daten wiederherzustellen. Derartiger Stand der Technik ist beispielsweise aus der
US 9 240 245 B1 US 2017/0 139 761 A1 US 2012/0 030 506 A1 US 2012/0 233 391 A1 - Aufgabe der Erfindung ist es, Quellen von Lesestörungsfehlern genauer zu identifizieren, um in der Lage zu sein, eine Verlagerung von Daten nur bei Bedarf durchzuführen.
- Zusammenfassung
- Gemäß einem Aspekt ist ein Verfahren zum Bestimmen von Lesestörungsfehlern in einem nichtflüchtigen Speicher (NVM) offenbart. Das Verfahren umfasst ein Bestimmen eines ersten Fehlerpegels einer ersten Seite in einem Block des NVM und eines zweiten Fehlerpegels mindestens einer benachbarten Seite, die eine Wortleitung bzw. Wordline aufweist, die zu einer Wortleitung der ersten Seite benachbart ist, die über eine vorbestimmte Anzahl von Lesezugriffen auf die erste Seite auftreten. Zusätzlich umfasst das Verfahren ein Bestimmen, ob der zweite Fehlerpegel der mindestens einen benachbarten Seite über einer ersten vorbestimmten Schwelle liegt, und dann ein Vergleichen des ersten Fehlerpegels mit dem zweiten Fehlerpegel, wenn der zweite Fehlerpegel über der ersten vorbestimmten Schwelle liegt, um zu bestimmen ob der zweite Fehlerpegel um einen vordefinierten Faktor größer als der erste Fehlerpegel ist. Ein Lesestörungsfehler wird dann bestimmt, wenn der zweite Fehlerpegel um den vordefinierten Faktor größer als der erste Fehlerpegel ist.
- Gemäß einem weiteren Aspekt ist ein Festkörperlaufwerk (SSD) offenbart, das einen nichtflüchtigen Speicher (NVM) und einen Controller, der kommunikationstechnisch mit einer Hosteinrichtung und dem NVM gekoppelt ist, enthält. Der Controller ist dazu ausgelegt, einen Fehlerpegel einer Angreiferseite in dem NVM zu bestimmen. Ferner bestimmt der Controller einen Fehlerpegel einer Opferseite, die innerhalb eines Blocks des NVM zu der Angreiferseite benachbart ist, und bestimmt, ob der Fehlerpegel der Opferseite größer als eine erste vorbestimmte Schwelle ist. Zusätzlich vergleicht der Controller den Fehlerpegel der Angreiferseite mit dem Fehlerpegel der Opferseite, wenn der Fehlerpegel des Opfers größer als die erste vorbestimmte Schwelle ist. Der Controller bestimmt dann einen Lesestörungsfehler der Opferseite, wenn der Vergleich der Fehlerpegel der Angreifer- und der Opferseite angibt, dass der Opferpegelfehler um einen vordefinierten Faktor größer als der erste Fehlerpegel ist.
- Gemäß einem nochmals weiteren Aspekt ist eine Speichereinrichtung, die eine Vorrichtung zum Handhaben von Lesestörungen und Blockfehler in einem nichtflüchtigen Speicher (NVM) enthält, offenbart. Die Vorrichtung enthält Mittel zum Bestimmen, ob eine Anzahl von Lesezugriffen auf eine Seite in der NVM einen vordefinierten Wert erreicht hat. Ferner enthält die Vorrichtung Mittel zum Erhalten eines Fehlermaßes für die Seite, nachdem die Anzahl von Lesezugriffen den vordefinierten Wert erreicht hat, sowie Mittel zum Erhalten eines Fehlermaßes für mindestens eine benachbarte Seite, die sich auf einer zu der Seite benachbarten Wortleitung innerhalb des NVM befindet. Die Vorrichtung enthält auch Mittel zum Bestimmen, ob das Fehlermaß der mindestens einen benachbarten Seite größer als eine vordefinierte Schwelle ist. Schließlich enthält die Vorrichtung Mittel zum Bestimmen eines Lesestörungsfehlers der mindestens einen benachbarten Seite dann, wenn das Fehlermaß der mindestens einen benachbarten Seite um einen vordefinierten Faktor größer als das Fehlermaß der Seite ist.
- Kurzbeschreibung der Zeichnungen
-
-
1 ist ein Blockdiagramm einer beispielhaften Festkörpervorrichtung (SSD), bei der eine Detektion von potentiellen Lesestörungsfehlern und ein Auslösen einer Blockverlagerung gemäß Ausführungsformen der vorliegenden Offenbarung durchgeführt werden kann. -
2 ist eine Darstellung, die eine beispielhafte Organisation einer Flash-Speicheranordnung darstellt. -
3 zeigt ein Ablaufdiagramm eines beispielhaften Lesestörungsdetektionsverfahrens gemäß der vorliegenden Offenbarung. -
4 ist eine Darstellung, die eine Entscheidungsmatrix zur Handhabung von Lesestörungen und Blockfehlern gemäß Ausführungsformen der vorliegenden Offenbarung darstellt. -
5 zeigt ein Ablaufdiagramm eines beispielhaften Verfahrens zum Handhaben von Lesestörungen und Blockfehlern gemäß der vorliegenden Offenbarung. - Genaue Beschreibung
- Die vorliegende Offenbarung schafft Verfahren und Vorrichtungen, um genauer zu bestimmen, ob eine Seite oder ein Block eine potentielle Lesestörungsquelle ist, so dass eine Verlagerung von Blöcken mit höherer Wahrscheinlichkeit nur bei Bedarf durchgeführt wird. Basierend auf einer aktiven Detektion von potentiellen Lesestörungsquellen oder Angreiferen kann eine genaue NVM-Adresse bereitgestellt werden. Durch direktes Lesen der umliegenden potentiellen Opfer kann eine ECC-Fehlerzählung für die Opfer erhalten werden. Wenn die ECC-Fehlerzählung hoch genug ist, sorgen die vorliegenden Verfahren und Vorrichtungen für eine Verlagerung nur der betroffenen Seiten (z. B. der Seiten, deren Fehler hoch genug sind). Auf diese Weise muss nur ein Teil des Blocks verlagert werden und die angemessenen Daten werden verlagert. Darüber hinaus besteht keine Notwendigkeit, auf andere Prozesse zu warten, um Daten zu verlagern, was zu einem Datenverlust führen kann, wie er beispielsweise oben in Verbindung mit einer passiven BGMS-Abtastung beschrieben wurde. Der gegenwärtig offenbarte aktive Prozess des Abtastens der umgebenden Seiten kann verwendet werden, um zu verhindern, dass Lesestörungsprobleme außer Kontrolle geraten. Weiterhin stellen die gegenwärtig offenbarten Verfahren und Vorrichtungen ein Lesen der tatsächlichen potentiell betroffenen Seiten und ein Ausführen eines Fehlerhandhabungsprozesses bereit, um den Grad der Schwere der Fehler zu bestimmen. Durch das Bestimmen, wie schlimm der Fehlerpegel für Seiten ist, wird dieser Fehlerpegel dann ferner mit einer vordefinierten Skala verglichen, um zu bestimmen, ob die Seite tatsächlich ein Opfer von Lesestörungsfehlern ist.
- Unter Bezugnahme auf die Zeichnungen sind Vorrichtungen und Verfahren zum Auslösen eines Lesestörungsprotokolls dargestellt, wobei das Protokoll der Prozess des Bestimmens von potentiellen nachteiligen Lesestörungsfehlern in einem Block ist und eines anschließenden Verlagerns des Blocks in dem NVM ist. Im Gegensatz zu dem Stand der Technik helfen die hier beschriebenen offenbarten Verfahren und Vorrichtungen, die logische Blockadressen (LBAs) berücksichtigen, dabei, sicherzustellen, dass die Lesestörungsdetektion an dem Hostzugriffsmuster durchgeführt wird und dass vorbeugende Maßnahmen ergriffen werden. Weiterhin wird die Schreibverstärkung deutlich reduziert.
-
1 ist ein Blockdiagramm eines Systems 100, das eine beispielhafte Festkörpervorrichtung (SSD) enthält, in der die offenbarte Detektion und Verlagerung von Lesestörungsblöcken gemäß mit Aspekten der Offenbarung implementiert werden kann. Das System 100 enthält einen Host 102 und eine SSD-Speichereinrichtung 104, die mit dem Host 102 gekoppelt ist. Der Host 102 liefert Befehle zum Übertragen von Daten zwischen dem Host 102 und der SSD-Speichereinrichtung 104 an die SSD-Speichereinrichtung 104. Beispielsweise kann der Host 102 einen Schreibbefehl zum Schreiben von Daten auf der SSD-Speichereinrichtung 104 an die SSD-Speichereinrichtung 104 liefern oder einen Lesebefehl zum Lesen von Daten von der SSD-Speichereinrichtung 104 an die SSD-Speichereinrichtung 104 liefern. Der Host 102 kann ein beliebiges System oder eine beliebige Vorrichtung mit einer Notwendigkeit zum Speichern und Abrufen von Daten und einer kompatiblen Schnittstelle zur Kommunikation mit der SSD-Speichereinrichtung 104 sein. Beispielsweise kann der Host 102 eine Recheneinrichtung, ein PC, ein tragbarer Computer, eine Workstation, ein Server, ein persönlicher digitaler Assistent, eine Digitalkamera oder ein digitales Telefon sein, um nur ein paar Beispiele zu nennen. - Die SSD-Speichereinrichtung 104 enthält eine Hostschnittstelle 106, einen Controller 108 (der in einigen Ausführungsformen auch einen Cache-Manager (CM) enthalten kann), einen Speicher 110, eine Schnittstelle für nichtflüchtigen Speicher (NVM-Schnittstelle) 112 (die auch als Flash-Speicher-Schnittstelle bezeichnet werden kann) und einen nichtflüchtigen Speicher (NVM) 114 wie beispielsweise einen NAND-Flash-Speicher. Die Hostschnittstelle 106 ist mit dem Controller 108 gekoppelt und ermöglicht eine Kommunikation zwischen dem Host 102 und dem Controller 108. Zusätzlich ist der Controller 108 mit dem Speicher 110 und dem NVM 114 über die NVM-Schnittstelle 112 gekoppelt. Die Hostschnittstelle 106 kann ein beliebiger Typ von Kommunikationsschnittstelle sein, wie etwa eine Schnittstelle mit integrierter Laufwerkelektronik (IDE-Schnittstelle), eine Schnittstelle für einen universellen seriellen Bus (USB-Schnittstelle), eine Serielle Peripherieschnittstelle (SP-Schnittstelle), eine Schnittstelle für eine Anbindung mit fortgeschrittener Technologie (ATA-Schnittstelle), eine Kleincomputersystemschnittstelle (SCSI), eine IEEE-1394-Scnittstelle (Firewire-Schnittstelle) oder dergleichen. In einigen Ausführungsformen enthält der Host 102 die SSD-Speichereinrichtung 104. In anderen Ausführungsformen ist die SSD-Speichereinrichtung 104 in Bezug auf den Host 102 entfernt angeordnet oder in einem entfernten Computersystem enthalten, das kommunikationstechnisch mit dem Host 102 gekoppelt ist. Der Host 102 kann mit der SSD-Speichereinrichtung 104 über eine drahtlose Kommunikationsverbindung kommunizieren.
- Der Controller 108 steuert den Betrieb der SSD-Speichereinrichtung 104. In verschiedenen Aspekten empfängt der Controller 108 Befehle von dem Host 102 über die Hostschnittstelle 106 und führt die Befehle zum Übertragen von Daten zwischen dem Host 102 und dem NVM 114 aus. Ferner kann der Controller 108 ein Lesen aus und Schreiben in dem Speicher 110 zum Ausführen der verschiedenen Funktionen, die durch den Controller vorgenommen werden, verwalten und zwischengespeicherten Informationen, die in dem Speicher 110 gespeichert sind, verwalten.
- Der Controller 108 kann jede Art von Verarbeitungseinrichtung wie beispielsweise ein Mikroprozessor, ein Mikrocontroller, ein eingebetteter Controller, eine Logikschaltung, Software, Firmware oder dergleichen enthalten, um den Betrieb der SSD-Speichereinrichtung 104 zu steuern. In einigen Aspekten können einige oder alle der hierin als von dem Controller 108 ausgeführt beschriebenen Funktionen stattdessen von einem anderen Element der SSD-Speichereinrichtung 104 durchgeführt werden. Beispielsweise kann die SSD-Speichereinrichtung 104 einen Mikroprozessor, einen Mikrocontroller, einen eingebetteten Controller, eine Logikschaltung, eine Software, eine Firmware oder irgendeine Art von Verarbeitungseinrichtung zum Ausführen einer oder mehrerer der hierin als von dem Controller 108 ausgeführt beschriebenen Funktionen enthalten. Gemäß anderen Aspekten werden eine oder mehrere der hierin als von dem Controller 108 ausgeführt beschriebenen Funktionen stattdessen von dem Host 102 ausgeführt. In nochmals weiteren Aspekten können einige oder alle der hierin als von dem Controller 108 ausgeführt beschriebenen Funktionen stattdessen von einem anderen Element wie beispielsweise einem Controller in einem Hybridlaufwerk, das sowohl nichtflüchtige Speicherelemente als auch magnetische Speicherelemente enthält, ausgeführt werden.
- Der Speicher 110 kann ein beliebiger Speicher, eine beliebige Recheneinrichtung oder ein beliebiges System, das in der Lage ist, Daten zu speichern, sein. Beispielsweise kann der Speicher 110 ein Speicher mit wahlfreiem Zugriff (RAM), ein dynamischer Speicher mit wahlfreiem Zugriff (DRAM), ein statischer Speicher mit wahlfreiem Zugriff (SRAM), ein synchroner dynamischer Speicher mit wahlfreiem Zugriff (SDRAM), ein Flash-Speicher, ein löschbarer programmierbarer Nur-Lese-Speicher (EPROM), ein elektrisch löschbarer, programmierbarer Nur-Lese-Speicher (EEPROM) oder dergleichen sein. In verschiedenen Ausführungsformen verwendet der Controller 108 den Speicher 110 oder einen Teil davon, um Daten während der Übertragung von Daten zwischen dem Host 102 und dem NVM 114 zu speichern. Zum Beispiel kann der Speicher 110 oder ein Teil des Speichers 110 ein Cache-Speicher sein.
- Der NVM 114 empfängt Daten von dem Controller 108 über die NVM-Schnittstelle 112 und speichert die Daten. Der NVM 114 kann jede Art von nichtflüchtigem Speicher sein, wie beispielsweise ein Flash-Speichersystem, ein Flash-Speicher vom NAND-Typ, ein Festkörperlaufwerk, eine Flash-Speicherkarte, eine sichere digitale Karte (SD-Karte), eine USB-Speichereinrichtung, eine CompactFlash-Karte, ein SmartMedia-Gerät, eine Flash-Speicheranordnung oder dergleichen.
- Im Beispiel von
1 umfassen Leseanforderungen im Allgemeinen eine Anforderung von dem Host 102 über die Schnittstelle 106, die Daten innerhalb einer gegebenen logischen Seitenadresse, die dem NVM 114 zugeordnet ist, zu lesen. Jede logische Seitenadresse ist durch die Verwendung einer Tabelle, die von dem Systemcontroller 108 gepflegt wird, einer spezifischen physischen Adresse innerhalb des NVM 114 zugeordnet. Im Allgemeinen ordnet die Tabelle jede logische Seitenadresse einer physischen Seitenadresse innerhalb des NVM 114 zu. Die Verwendung von logischen Seitenadressen und eine Seitenadressenumwandlung von logisch zu physisch ermöglicht es dem Controller, den Speicher innerhalb des NVM 114 effektiv zu verwalten und verschiedene Zuordnungs- und Detektionsmechanismen zu implementieren, die den offenbarten Mechanismus zum Detektieren von Lesestörungsfehlern umfassen. -
2 ist ein Blockdiagramm, das eine beispielhafte Flash-Speicher-Organisation darstellt. Eine Flash-Speicheranordnungsstruktur 200 kann eine Anzahl von Speicherblöcken 202 (nachfolgend in dieser Offenbarung „Blöcke“) enthalten. Jeder Block 202 kann eine Anzahl von Seiten umfassen. Der Zugriff auf die Seiten kann über eine Anzahl „n“ von Wortleitungen 210 (z. B. WL0 bis WLn) gesteuert werden, obwohl im Beispiel von2 der Klarheit und Prägnanz der Darstellung halber nur WL4 bis WL11 speziell gezeigt sind. In dem dargestellten Beispiel steuert eine Wortleitung (WL) den Zugriff auf eine einzelne Seite. - In einem Aspekt können die Seiten und Wortleitungen in dem Beispiel einer Mehrniveau-Zellen-NAND-Konstruktion (MLC-NAND-Konstruktion, d. h. einer Konstruktion mit 2 Bit pro Zelle, auch bekannt als MSB und LSB) unter Verwendung eines höchstwertigen Bits (MSB) und eines niedrigwertigsten Bits (LSB) adressiert werden. In einem Beispiel können die LSB- und MSB-Adressen für eine Seite basierend auf der Wortleitungsnummer innerhalb eines Blocks (z. B. 8 für WL 8) gemäß den Beziehungen LSB-Adresse = (WL × 2) - 1 und MSB-Adresse = LSB + 3 bestimmt werden. So ist beispielsweise für die Wortleitung WL 8 die LSB-Adresse 15 und die MSB-Adresse 18. Zusätzlich kann für die erste und die letzte Wortleitung in einem Block (z. B. WL 0 und WL n) die Beziehung zum Bestimmen der LSB- und MSB-Adresse LSB-Adresse = (WL × 2) - 1 und MSB-Adresse = LSB + 2 sein. Es ist ferner zu beachten, dass eine derartige Adressierung lediglich beispielhaft ist und auch andere Adressierungsschemata in den gegenwärtig offenbarten Verfahren und Vorrichtungen verwendet werden können. Zum Beispiel können andere Beispiele von Konstruktionen von NVM-Vorrichtungen zur Verwendung mit den offenbarten Verfahren und Vorrichtungen in Betracht gezogen werden, wie etwa Konstruktionen, die 1 Bit pro Zelle, 3 Bit pro Zelle (z. B. Dreiniveau-Zellen (TLC)) und 4 Bits pro Zelle umfassen.
- Die vorliegenden Verfahren und Vorrichtungen sorgen für eine Detektion einer bestimmten Angreiferseite, wie z. B. Seite 206, die in
2 gezeigt ist. Häufiger Lesezugriff auf jene Seiten, die als Angreiferseiten bestimmt sind, wird mit höherer Wahrscheinlichkeit dazu führen, dass Störungsfehler in anderen Seiten, die von angrenzenden oder benachbarten Wortleitungen gesteuert werden, wie beispielsweise den Opferseiten 208 und 210 auftreten. Obwohl2 eine beispielhafte Speicherorganisation des Flash-Speichers 200 veranschaulicht, ist die vorliegende Offenbarung nicht auf dieses spezielle Beispiel beschränkt. In anderen Beispielen kann der Flash-Speicher 200 andere Speicherorganisationen aufweisen. Der Flash-Speicher 200 kann in dem NVM 114 der SSD 104 enthalten sein. -
3 zeigt ein Ablaufdiagramm eines Lesestörungs-Detektionsverfahrens 300. Insbesondere stellte die in3 offenbarte Methodik ein beispielhaftes Lesestörungs-Detektionsverfahren bereit, das Schutz gegen Fälle umfasst, in denen vielleicht eine bestimmte Seite häufig gelesen oder auf diese Seite häufig zugegriffen wird, die hierin als „Angreifer“-Seite bezeichnet wird, wobei der Angreifer die Lesestörung in Seiten auf benachbarten Wortleitungen herbeiführt, die hier als „Opfer“ bezeichnet werden. Das Verfahren 300 verwendet eine Verfolgung oder eine Akkumulation der Anzahl von Lesevorgängen bei Seiten durch den Host (z. B. Host 102), wie es in Block 302 gezeigt ist. - Für jede vorbestimmte Anzahl von Host-Seiten-Lesevorgängen wird der Fehlerpegel eines Angreifers (d. h. der häufig gelesenen Seite) mit dem Fehlerpegel eines Opfers (d. h. einer Seite von einer benachbarten Wortleitung zu der Angreifer-Wortleitung) verglichen, wie es in Entscheidungsblock 304 gezeigt ist. Es ist hier anzumerken, dass im Aspekt eine Bestimmung, welche Seiten Angreifer sind, auf einer A-priori-Kenntnis der vergangenen Lesegeschichte basieren kann. Weiterhin ist zu beachten, dass, während die betroffenen Opferseiten die Seiten an zu der Wortleitung der Angreiferseite benachbarten Wortleitungen sind, die Bedeutung von benachbart zwei Seiten an Wortleitungen auf beiden Seiten der Angreiferseiten-Wortleitung sein können, aber auch mehr als unmittelbar benachbarte Seiten sein können, wie etwa ein Bereich von Seiten. Zum Beispiel können in einigen Aspekten dann, wenn die Angreiferseite „X“ ist, die benachbarten Opferseiten diejenigen innerhalb einer Anzahl „n“ von Seiten umfassen, so dass die benachbarten Opferseiten X+n und X-n Wortleitungen umfassen.
- Als ein Beispiel kann die vorbestimmte Anzahl, die in Entscheidungsblock 304 gezeigt ist, eine Primzahl sein, wie beispielsweise 4001. Die Verwendung einer Primzahl verhindert, dass die Hostaktivität den Algorithmus absichtlich oder unabsichtlich vermeiden kann. Zum Beispiel verwenden einige bekannte Dateisysteme in der Regel Zweierpotenzen für ihre Basiszuweisungsgrößen für Dateien. Dementsprechend verhindert eine Primzahl, dass der Host wiederholt eine Stelle liest, ohne das Verfahren auszulösen. In einem Aspekt kann diese vorbestimmte Anzahl so gewählt werden, dass sie groß genug ist, um zu häufige Bestimmungen der weiteren Schritte des Verfahrens 300, die nachfolgend erörtert sind, zu vermeiden. Wenn die Anzahl der Host-Lesevorgänge die vorbestimmte Anzahl nicht erreicht hat, kehrt der Ablauf zu Block 302 zurück, um weiterhin die Anzahl von Host-Lesevorgängen zu akkumulieren, bis die Anzahl die vorbestimmte Anzahlbedingung in Block 304 erreicht. Zusätzlich ist zu beachten, dass das Verfahren 300 jeweils nach einer Anzahl von Lesevorgängen (z. B. alle 4001 Host-Seitenlesevorgänge) wiederholt wird. Somit kann ein Beispiel der Codierung des Prozesses von Block 304 eine Modulo-Operation sein, so dass eine bestätigende Erfüllung der Bedingung jeweils nach einer vorbestimmten Anzahl von Lesevorgängen auftritt (z. B. Ist MOD (Anzahl von Lesevorgängen, 4001) = 0?).
- Wenn die vorbestimmte Anzahl von Lesevorgängen erreicht worden ist, wie es in Block 304 bestimmt ist, geht der Ablauf zu Block 306 über, in dem der Angreifer-Fehlerpegel gespeichert wird und ein Fehlerpegel der Opferseite bestimmt wird. Gemäß einem Beispiel kann der Prozess von 306 ein Speichern von fehlerhaften WL-MSB-Bits der Angreifer-Wortleitung Ea und ein Lesen des WL-MSB des Opfers umfassen, um eine Anzahl von fehlerhaften Bits Ev zu erhalten. Gemäß einem weiteren Beispiel kann der Fehlerpegel auf den Bitfehlerraten (BERs) der Angreifer- und Opfer-Seiten basieren.
- Der Opfer-Fehlerpegel kann dann mit einer ersten vorbestimmten Schwelle verglichen werden, wie es in Block 308 gezeigt ist. Wenn der Fehlerpegel nicht größer als die vorbestimmte Schwelle ist, kehrt der Ablauf zu Block 302 zurück, um dann die Bestimmung der vordefinierten Anzahl von Host-Lesevorgängen neu zu beginnen. Wenn der Opfer-Fehlerpegel (oder der ECC-Fehlerpegel) über der Schwelle liegt, geht der Ablauf zu Block 310 über. In einem Aspekt ist dann, wenn die Anzahl der Opfer-Bits in Fehler Ev größer als 150 ist, die Wahrscheinlichkeit des Auftretens von Lesestörungsfehlern höher.
- In Entscheidungsblock 310 wird dann der Angreifer-Fehlerpegel mit dem Fehlerpegel des Opfers verglichen. In einem Beispiel kann dieser Vergleich vorgenommen werden, indem das Verhältnis des Fehlerpegels des Opfers zu dem Fehlerpegel des Angreifers bestimmt wird und das Verhältnis mit einem vorbestimmten Verhältniswert verglichen wird. In einem Beispiel ist dann, wenn die Anzahl der fehlerhaften Bits für das Opfer mehr als die doppelte Anzahl der fehlerhaften Bits des Angreifers ist (z. B. Ev/Ea > 2), die Wahrscheinlichkeit einer Lesestörung hoch und eine Lesestörung kann bestimmt werden. In einem solchen Fall werden sowohl die LSB- als auch die MSB-Seite der Angreifer-WL und die beiden benachbarten Opfer-WL zu einem neuen Block verlagert, wie es durch Block 312 angegeben ist, wonach der Ablauf zu Block 302 zurückkehrt. Es ist jedoch zu beachten, dass die Methodik nicht auf eine Konstruktion mit zwei Bit pro Zelle (z. B. MLC-NAND mit LSB und MSB) beschränkt ist, sondern auch in anderen NVM-Konstruktionen wie 1 Bit pro Zelle, 3 Bit pro Zelle usw. angewendet werden kann. Obwohl der Prozess 312 als eine Verlagerung von benachbarten Opfer-Wortleitungen beinhaltend beschrieben ist, könnte in anderen Aspekten in alternativen Typen von NVMs, wie beispielsweise NVM-Konstruktionen mit 1 Bit pro Zelle, zudem nur eine einzelne Seite auf einer der benachbarten Wortleitungen verschoben werden.
- Wenn andererseits der Fehlerpegel der Opferseite größer als die erste Schwelle ist, wie es in Block 308 bestimmt wird, aber das Verhältnis des Opfer-Fehlerpegels zu dem Angreifer-Pegel nicht über dem Schwellenverhältnis liegt, wie es in Block 310 bestimmt wird, ist der hohe Fehlerpegel des Opfers wahrscheinlich nicht auf eine Lesestörung zurückzuführen, sondern kann stattdessen auf einen Hochfehlerblock hinweisen. In einem solchen Fall können das LSB und MSB der Opferseite verlagert werden und der gesamte Block kann dann überwacht oder nach einem exzessiven Fehler abgetastet werden, wie es in BGMS durchgeführt wird, wenn eine getestete Seite beispielsweise Fehlergrenzkriterien überschreitet, und dann die Daten entsprechend nach vordefinierten Kriterien verlagert werden, wie es in Block 314 gezeigt ist.
- Wie zu erkennen ist, werden die Datenrahmen mit dem höchsten Fehlerpegel zur Lesestörungsdetektion verwendet. Gemäß einem Aspekt wird dann, wenn logische Blocknummer (LBN) des Angreifers auf einer MSB-Seite ist, der LBN-Fehlerpegel zur Lesestörungsdetektion verwendet. Alle vier Datenrahmen der Opfer-MSB-Seite können dann gelesen werden und der höchste Fehlerpegel für die Lesestörungsdetektion verwendet werden. Gemäß einem weiteren Aspekt wird in einem speziellen Fall, in dem die WL1 als Opfer verwendet wird, wenn der Angreifer auf WL0 ist, die Lesestörungsprüfung dann übersprungen, wenn der Angreifer eine der 4 letzten Seiten eines teilweise geschriebenen Blocks ist.
- Gemäß einem weiteren Aspekt können die Kriterien zum Entscheiden, wie Lesestörungen und Blockfehler gehandhabt werden sollen, Pegel oder Stufen der Schwere auf der Basis der für die Angreifer- und Opfer-Seite bestimmten Fehlerpegels zugeordnet. In einem Aspekt können die Kriterien auf Codestufen von Paritätsprüfungen mit niedriger Besetzung (LDPC-Codestufen) von 1 bis 4 verweisen, wobei 1 die am wenigsten schwere Fehlerstufe ist und 4 die schwerste Fehlerstufe ist. In einem weiteren Aspekt stellen die Fehlerstufen Niveaus dar, die den Bitfehlerraten (BERs) der gelesenen Seite entsprechen. Wenn die Bestimmung auf einer LDPC-Engine (d. h. einer weichen Decodierung) und nicht auf einer BCH-Engine (d. h. einer harten Decodierung, obwohl dies kein Ausschluss der BCH-Nutzung mit den vorliegenden Verfahren und Vorrichtungen sein soll) basiert, sind die Fehlerstufen nicht mit einer exakten BER korreliert, sondern sind eine Annäherung oder Schätzung basierend auf dem Schwierigkeitsgrad der Korrektur eines Datenstückes. Je niedriger die Stufenzahl ist, desto leichter ist es, die Daten zu korrigieren. Umgekehrt gilt: je höher die Bühnenzahl ist, desto schwieriger ist es, die Daten zu korrigieren, was in der Regel ein Zeichen für eine hohe Anzahl von Fehlern ist. Die Stufen können auf unterschiedliche Schwellen der Fehlerkorrektur festgelegt werden, wodurch bei kleineren Stufenzahlen sehr kleine Datenmengen verlagert werden und umgekehrt in großen Stufenzahlen große Datenmengen verlagert werden. In einem speziellen Beispiel würde ein Stufe-1-Pegel zu einer Verlagerung eines einzelnen Datenrahmens von Daten (z. B. 4KB) führen, Stufe 2 würde zu einer Verlagerung einer ganzen Seite führen, Stufe 3 würde einen RAID-Streifen (z. B. 32 Seiten von Daten) verlagern, und Stufe 4 würde zu einer Verlagerung eines ganzen Blocks (und aller Blöcke in dem Streifen) führen. Es ist ferner anzumerken, dass die Schwellen zum Festlegen der Stufen abhängig von NAND-Typ, NAND-Reife, Herstellung und LDPC-Engine-Effizienz/Effektivität variieren können.
- Als Beispiel für die Kriterien, die solche Stufen verwenden, ist in
4 eine beispielhafte Entscheidungsmatrix oder -tabelle 400 dargestellt. Insbesondere zeigt die Tabelle 400, dass die Kriterien, um zu bestimmen, was als Lesestörungsereignis betrachtet wird und welche spezifischen Maßnahmen für die Opfer- und/oder Angreifer-Daten ergriffen werden sollten, auf einer Matrix des Verhältnisses zwischen den Angreifer-Stufen und den Opfer-Stufen basieren. - Wie in Tabelle 400 ersichtlich ist, wird dann, wenn die Angreifer-Stufen 2, 3 oder 4 sind, während die Opferstufen 1 oder 2 sind, jeweils in unterschiedlichem Ausmaß entweder die logische Blockadresse (LBA) des Angreifers, der Angreifer-Seiten-Satz (d. h. der Seiten-Satz des ursprünglichen Angreifers (LSB oder MSB)) oder der gesamte Block-Satz verlagert oder in einen anderen Block verschoben. Auf der Opferseite wird in der Opfer-Stufe 3 die ganze WL (d. h. die LSB- und die MSB-Seite) verschoben. Schließlich wird wie in Tabelle 400 gezeigt dann, wenn entweder der Angreifer oder das Opfer auf der schwersten Stufe 4 ist, der ganze Block-Satz in einen anderen Block verschoben oder verlagert.
-
5 veranschaulicht ein weiteres beispielhaftes Verfahren 500 zum Bestimmen von Lesestörungsfehlern in einem NVM gemäß der vorliegenden Offenbarung. Das Verfahren 500 liefert einen Prozess zum Bestimmen einer potentiellen Lesestörungsquelle (d. h. eines Angreifers) durch Bestimmen oder Erhalten des Fehlerpegels mindestens einer zu einer potentiellen Lesestörungsquelle benachbarten Seite. Wie oben erörtert kann durch direktes Lesen der umliegenden „potentiellen Opfer“ eine Fehlerzählung oder ein Fehlerpegel für die Opfer erhalten werden und dann, wenn dieser Fehlerpegel hoch genug ist, kann eine Lesestörung festgestellt werden, so dass eine Verlagerung eingeleitet wird, um die Lesestörungseffekte zu mildern. Weiterhin kann die Verlagerung nur an den betroffenen Seiten durchgeführt werden (d. h. den Seiten mit einem Fehlerpegel, der hoch genug ist, um eine vorbestimmte Fehlerschwelle zu überschreiten, die die Angreiferseite und eine oder mehrere benachbarte Seiten umfassen). - Wie in
5 gezeigt umfasst das Verfahren 500 ein Bestimmen eines ersten Fehlerpegels oder Fehlermaßes einer ersten Seite in einem Block des NVM, der bzw. das über eine vorbestimmte Anzahl von Lesezugriffen durch einen Host auftritt, wie es in Block 502 gezeigt ist. In bestimmten Aspekten kann die Bestimmung des Blocks 502 mit dem Controller 108 oder mit dem Controller 108 in Kombination mit dem Host 102 vorgenommen werden, wie es in2 gezeigt ist. Darüber hinaus kann die erste Seite als potenzieller Angreifer oder potenzielle Quelle für Lesestörungsfehler identifiziert werden. Das Verfahren 500 umfasst ferner ein Bestimmen eines zweiten Fehlermaßes oder eines Fehlerpegels mindestens einer benachbarten Seite, die eine Wortleitung aufweist, die zu einer Wortleitung der ersten Seite benachbart ist, das bzw. der über die vorbestimmte Anzahl von Lesezugriffen auf die erste Seite auftritt, wie es in Block 504 gezeigt ist. In einigen Beispielen kann die Bestimmung von Block 504 durch den Controller 108 oder den Controller 108 in Kombination mit dem Host 102 durchgeführt werden. Die mindestens eine benachbarte Seite kann als Opfer-Seite identifiziert werden. Es ist zu beachten, dass in einem Aspekt die Begriffe „angrenzende Seite“ oder „benachbarte Seite“, wie sie hierin verwendet werden, synonym zu den Begriffen „angrenzende Wortleitung“ oder „benachbarte Wortleitung“ sein können. Wie in2 gezeigt weist beispielsweise die WL 8 entsprechende Seite 206 angrenzende oder benachbarte Seiten 208 oder 210 auf, die den Wortleitungen WL 7 bzw. WL 9 entsprechen. Somit stellt die benachbarte Seite 208 beispielsweise eine zu Seite 206 und WL 8 physisch benachbarte Wortleitung dar. In anderen Aspekten wird in Betracht gezogen, dass bei bestimmten Typen von NVMs, wie z. B. 3D-NAND-Technologien als Beispiel, Lesestörungseffekte vorliegen können, die sich zwischen bestimmten Blöcken erstrecken können, nicht nur über Wortleitungen in einem einzigen Block. Dementsprechend könnten die Begriffe „benachbarte Seite“ oder „benachbarte Wortleitung“ in solchen NAND-Geometrien auch so betrachtet werden, dass sie eine Bedeutung umfassen, bei der die benachbarte Seite oder Wortleitung, die ein Opfer von Lesestörungseffekten ist, eine Seite oder Wortleitung in einem anderen Block ist, in dem Leseoperationen einer Seite in einem bestimmten Block aufgrund der Nähe in einer vertikalen Dimension beispielsweise Lesestörungseffekte in einer Wortleitung oder Seite in einem anderen Block hervorrufen. - Nach der Bestimmung des zweiten Fehlerpegels in Block 504 umfasst das Verfahren 500 ein Bestimmen, ob der zweite Fehlerpegel über einer ersten vorbestimmten Schwelle liegt, wie es in Block 506 angegeben ist. In einem Aspekt kann der Fehlerpegel in Form von Anzahl der fehlerhaften Bits oder der ECC-Fehlerzählung in der mindestens einen benachbarten Seite ausgedrückt sein. In einem solchen Fall ist die vorbestimmte Schwelle eine bestimmte Anzahl von Bitfehlern oder eine ECC-Fehlerzählung. In einem bestimmten Beispiel könnte diese Fehlerzählung auf 150 gesetzt sein, wie es aus empirischen Hinweisen bestimmt ist, um eine Anzahl von Fehlern zu repräsentieren, die eine große Wahrscheinlichkeit für einen Lesestörungsfehler angeben, der in einer Seite auftritt, aber diese Zahl ist nicht darauf beschränkt. Weiterhin kann der Prozess in Block 506 durch den Controller 108 oder durch den Controller 108 in Kombination mit dem Host 102 durchgeführt werden.
- Das Verfahren 500 umfasst auch ein Vergleichen des ersten Fehlerpegels mit dem zweiten Fehlerpegel dann, wenn der zweite Fehlerpegel über der ersten vorbestimmten Schwelle liegt, um zu bestimmen, ob der zweite Fehlerpegel um einen vordefinierten Faktor größer als der erste Fehlerpegel ist, wie es in Block 508 gezeigt ist. In einem Aspekt ist der Prozess von Block 508 eine Bestimmung, ob die Menge an Fehlern in einer Opferseite im Vergleich zu der benachbarten Angreiferseite ausreichend hoch ist, um eine Bestimmung zu rechtfertigen, dass eine Lesestörungssituation auftritt, wie es in Block 510 gezeigt ist. Das heißt, dass es dann, wenn die Opferseite einen relativ größeren Fehlerpegel im Vergleich mit Fehlern auf der Angreiferseite zeigt, im Gegensatz zu dem Fall, in dem einfach ein hoher Fehlerpegel im Block als Ganzes vorliegt, wahrscheinlicher ist, dass das Lesen der Angreiferseite durch den Lesestörungseffekt den Fehler in der benachbarten Opferseite verursacht. Ein Beispiel des Prozesses von Blocks 508 ist in Block 310 von
3 zu sehen, in dem ein Fehlerverhältnis von Opfer zu Angreifer bestimmt wird, wie beispielsweise der doppelte Fehlerpegel. Die Prozesse in den Blöcken 508 und 510 können durch den Controller 108 oder durch den Controller 108 in Kombination mit dem Host 102 durchgeführt werden. - In anderen Aspekten kann das Verfahren 500 ferner ein Verlagern der ersten Seite und der mindestens einen benachbarten Seite innerhalb des NVM nach dem Feststellen des Lesestörungsfehlers umfassen, wie dies in Block 312 des Verfahrens 300 dargestellt ist. Zusätzlich kann die Methodik auch ein Feststellen einer Bestimmung eines Hochfehlerblocks bei dem Block des NVM umfassen, wenn der zweite Fehlerpegel nicht um den vordefinierten Faktor größer als der erste Fehlerpegel ist. Ein Beispiel für diesen Prozess ist in Block 310 des Verfahrens 300 zu sehen. Außerdem kann das Verfahren 500 basierend auf der Bestimmung eines Hochfehlerblocks ein Verlagern der mindestens einen benachbarten Seite innerhalb des NVM nach dem Feststellen eines Hochfehlerblocks umfassen. Ein Beispiel für diesen Prozess ist in Block 314 von
3 zu sehen. Zudem können beim Verlagern von Seiten in dem Verfahren von5 insbesondere eine Adresse des höchstwertigen Bits (MSB-Adresse) und eine Adresse des niedrigstwertigen Bits (LSB-Adresse) der mindestens einen benachbarten Seite innerhalb des NVM verschoben werden, nachdem entweder die Lesestörungs- oder die Hochfehlerbock-Bestimmung festgestellt worden ist. Beispiele für die MSB- und LSB-Verlagerung sind in Verbindung mit den Blöcken 312 und 314 beschrieben. - In nochmals weiteren Aspekten kann das Verfahren 500 ein Bestimmen mehrerer Stufen für die erste Seite und die mindestens eine benachbarte Seite auf der Basis der bestimmten ersten und zweiten Fehler umfassen, wie dies zuvor in Verbindung mit
4 beschrieben worden ist. Insbesondere ist jede der mehreren Stufen ein Schweregrad des Fehlers, der auf einer Seite auftritt, wie etwa die Angreiferstufen 1-4 und die Opferstufen 1-4, die in4 dargestellt sind. Gemäß der Zuordnung von Stufen zu den Fehlern kann die Verlagerung, die auf den bestimmten Stufen basiert, ein Verlagern einer logischen Blockadresse der ersten Seite (z. B. die Verlagerungen für den Status Angreiferstufe 2), eines physischen Orts der ersten Seite und der mindestens einen benachbarten Seite innerhalb des NVM (z. B. die Verlagerungen für Opferstufe 3 und Angreiferstufen 1-3) und eines ganzen Blocks, in dem die erste Seite und die mindestens eine benachbarte Seite liegen (z. B. Opferstufe 4 und Angreiferstufe 4), umfassen. Weiterhin kann das Verfahren 500 ein Beibehalten der Orte der ersten Seite und der mindestens einen benachbarten Seite umfassen, wenn die Stufenpegel der ersten Seite und der mindestens einen benachbarten Seite Werte aufweisen, die einen niedrigen Schweregrad des Fehlers in den Seiten angeben (z. B. Angreiferstufe 1 und Opferstufen 1 und 2). - Gemäß einem weiteren Aspekt wird eine Speichereinrichtung, die eine Vorrichtung zum Handhaben von Lesestörungen und Blockfehlern in einem nichtflüchtigen Speicher (NVM) enthält, in Betracht gezogen, wobei die Vorrichtung Mittel zum Bestimmen, ob eine Anzahl von Lesezugriffen auf eine Seite in der NVM einen vordefinierten Wert erreicht hat, enthält. Als Beispiel können diese Mittel zum Bestimmen, ob der Lesezugriff den vordefinierten Wert erreicht, von einer Struktur wie dem Controller 108 oder dem Controller 108 in Kombination mit dem Speicher 110, dem NVM 114 und/oder dem Host 102 und Äquivalenten davon wie etwa einer Logikschaltung oder einem dedizierten Prozessor implementiert werden. Die Vorrichtung enthält ferner Mittel zum Erhalten eines Fehlermaßes für die Seite, nachdem die Anzahl der Lesezugriffe den vordefinierten Wert erreicht hat. Diese Mittel zum Erhalten des Fehlermaßes für die Seite können von einer Struktur wie dem Controller 108 oder dem Controller 108 in Kombination mit dem Speicher 110, dem NVM 114 und/oder dem Host 102 und Äquivalenten davon wie etwa einer Logikschaltung oder einem dedizierten Prozessor implementiert werden.
- Die Vorrichtung kann ferner Mittel zum Erhalten eines Fehlermaßes für mindestens eine benachbarte Seite, die sich auf einer zu der Seite benachbarten Wortleitung innerhalb des NVM befindet, enthalten. Diese Mittel zum Erhalten des Fehlermaßes für die mindestens eine benachbarte Seite können von einer Struktur wie dem Controller 108 oder dem Controller 108 in Kombination mit dem Speicher 110, dem NVM 114 und/oder dem Host 102 und Äquivalenten davon wie etwa einer Logikschaltung oder einem dedizierten Prozessor implementiert werden. Weiterhin kann die Vorrichtung Mittel zum Bestimmen, ob das Fehlermaß der mindestens einen benachbarten Seite größer als eine vordefinierte Schwelle ist, enthalten. Diese Mittel zum Bestimmen, ob das Fehlermaß der mindestens einen benachbarten Seite größer als eine vordefinierte Schwelle ist, können von einer Struktur wie dem Controller 108 oder dem Controller 108 in Kombination mit dem Speicher 110, dem NVM 114 und/oder dem Host 102 und Äquivalenten davon wie etwa einer Logikschaltung oder einem dedizierten Prozessor implementiert werden. Schließlich kann die Vorrichtung Mittel zum Bestimmen eines Lesestörungsfehlers der mindestens einen benachbarten Seite, wenn das Fehlermaß der mindestens einen benachbarten Seite um einen vordefinierten Faktor größer als das Fehlermaß der Seite ist, enthalten. Dieses Mittel zum Bestimmen des Lesestörungsfehlers können von einer Struktur wie dem Controller 108 oder dem Controller 108 in Kombination mit dem Speicher 110, dem NVM 114 und/oder dem Host 102 und Äquivalenten davon wie etwa einer Logikschaltung oder einem dedizierten Prozessor implementiert werden.
- Wie von Fachleuten erkannt werden wird, bieten die gegenwärtig offenbarten Verfahren und Vorrichtungen ein Lesen der tatsächlichen potentiell von einer Lesestörung betroffenen Seiten, indem der gesamte Fehlerhandhabungsprozess durchlaufen wird, um zu bestimmen, wie schwer der Fehler ist, um genauer zu bestimmen, ob die Seite tatsächlich ein Opfer von Lesestörungen ist.
- Obwohl die obige Beschreibung viele spezifische Ausführungsformen der Erfindung enthält, sollten diese nicht als Einschränkungen des Umfangs der Erfindung, sondern als Beispiele für spezifische Ausführungsformen davon ausgelegt werden. Dementsprechend sollte der Umfang der Erfindung nicht durch die dargestellten Ausführungsformen bestimmt werden, sondern durch die beigefügten Ansprüche und deren Äquivalente.
- Die verschiedenen oben beschriebenen Merkmale und Prozesse können unabhängig voneinander verwendet werden oder können auf verschiedene Weise kombiniert werden. Alle möglichen Kombinationen und Unterkombinationen sollen unter den Umfang dieser Offenbarung fallen. Zusätzlich können in einigen Implementierungen bestimmte Verfahrens-, Ereignis-, Zustands- oder Prozessblöcke entfallen. Die hierin beschriebenen Verfahren und Prozesse sind auch nicht auf irgendeine bestimmte Reihenfolge beschränkt und die Blöcke oder Zustände, die sich darauf beziehen, können in anderen geeigneten Reihenfolgen durchgeführt werden. Beispielsweise können beschriebene Aufgaben oder Ereignisse in einer anderen Reihenfolge, als in der, in der sie speziell offenbart sind, ausgeführt werden oder mehrere können zu einem einzigen Block oder Zustand kombiniert werden. Die Beispielaufgaben oder -ereignisse können seriell, parallel oder in anderer geeigneter Weise durchgeführt werden. Aufgaben oder Ereignisse können zu den offenbarten beispielhaften Ausführungsformen hinzugefügt oder aus diesen entfernt werden. Die hierin beschriebenen Beispielsysteme und -komponenten können anders ausgebildet sein als beschrieben. Zum Beispiel können Elemente zu den offenbarten beispielhaften Ausführungsformen hinzugefügt, aus diesen entfernt oder umgeordnet werden.
Claims (23)
- Verfahren zum Bestimmen von Lesestörungsfehlern in einem nichtflüchtigen Speicher (NVM), wobei das Verfahren umfasst: Bestimmen (502) eines ersten Fehlerpegels einer ersten Seite in einem Block des NVM und (504) eines zweiten Fehlerpegels mindestens einer benachbarten Seite, die eine Wortleitung bzw. Wordline aufweist, die zu einer Wortleitung der ersten Seite benachbart ist, die über eine vorbestimmte Anzahl von Lesezugriffen auf die erste Seite auftreten; Bestimmen (506), ob der zweite Fehlerpegel der mindestens einen benachbarten Seite über einer ersten vorbestimmten Schwelle liegt; Vergleichen (508) des ersten Fehlerpegels mit dem zweiten Fehlerpegel dann, wenn der zweite Fehlerpegel über der ersten vorbestimmten Schwelle liegt, um zu bestimmen, ob der zweite Fehlerpegel um einen vordefinierten Faktor größer als der erste Fehlerpegel ist; und Bestimmen (510) eines Lesestörungsfehlers dann, wenn der zweite Fehlerpegel um den vordefinierten Faktor größer als der erste Fehlerpegel ist.
- Verfahren nach
Anspruch 1 , das ferner umfasst: Verlagern der ersten Seite und der mindestens einen benachbarten Seite innerhalb des NVM nach einem Feststellen des Lesestörungsfehlers. - Verfahren nach
Anspruch 1 oder2 , das ferner umfasst: Feststellen einer Bestimmung eines Hochfehlerblocks für den Block des NVM, wenn der zweite Fehlerpegel nicht um den vordefinierten Faktor größer als der erste Fehlerpegel ist. - Verfahren nach einem der vorhergehenden Ansprüche, das ferner umfasst: Verlagern der mindestens einen benachbarten Seite innerhalb des NVM nach dem Feststellen des Hochfehlerblocks.
- Verfahren nach einem der vorhergehenden Ansprüche, das ferner umfasst: Verlagern einer Adresse eines höchstwertigen Bits (MSB-Adresse) und einer Adresse eines niedrigstwertigen Bits (LSB-Adresse) der mindestens einen benachbarten Seite innerhalb des NVM nach dem Feststellen eines Hochfehlerblocks.
- Verfahren nach einem der vorhergehenden Ansprüche, das ferner umfasst: Bestimmen mehrerer Stufen für die erste Seite und die mindestens eine benachbarte Seite basierend auf den bestimmten ersten und zweiten Fehlern, wobei jede der mehreren Stufen ein Schweregrad des in einer Seite auftretenden Fehlers ist; und Verlagern einer logischen Blockadresse der ersten Seite und/oder eines physischen Ortes der ersten Seite und der mindestens einen benachbarten Seite innerhalb des NVM und/oder eines Blocks, in dem sich die erste Seite und die mindestens eine benachbarte Seite befinden, basierend auf der Stufe der ersten Seite und der Stufe der mindestens einen benachbarten Seite.
- Verfahren nach einem der vorhergehenden Ansprüche, das ferner umfasst: Beibehalten der Orte der ersten Seite und der mindestens einen benachbarten Seite dann, wenn die Stufenniveaus der ersten Seite und der mindestens einen benachbarten Seite Werte haben, die einen niedrigen Schweregrad des Fehlers in den Seiten angeben.
- Verfahren nach
Anspruch 6 , wobei die mehreren Stufen auf Stufen aus einer Paritätsprüfungs-Decodierung mit dünner Besetzung (LDPC-Decodierungs-Stufen) basieren. - Verfahren nach einem der vorhergehenden Ansprüche, wobei der NVM einen Flash-Speicher vom NAND-Typ enthält.
- Festkörperlaufwerk (SSD), das enthält: einen nichtflüchtigen Speicher (NVM) (114); und einen Controller (108), der mit einer Hostvorrichtung (102) und dem NVM (114) kommunikationstechnisch gekoppelt ist, wobei der Controller (108) zu Folgendem ausgelegt ist: Bestimmen eines Fehlerpegels einer Angreiferseite in dem NVM (114); Bestimmen eines Fehlerpegels einer Opferseite, die zu der Angreiferseite innerhalb eines Blocks der NVM benachbart ist; Bestimmen, ob der Fehlerpegel der Opferseite größer als eine erste vorbestimmte Schwelle ist; Vergleichen des Fehlerpegels der Angreiferseite mit dem Fehlerpegel der Opferseite dann, wenn der Fehlerpegel des Opfers größer als die erste vorbestimmte Schwelle ist; und Bestimmen eines Lesestörungsfehlers der Opferseite dann, wenn der Vergleich der Fehlerpegel der Angreifer- und der Opferseite angibt, dass der Opfer-Fehlerpegel um einen vordefinierten Faktor größer als der erste Fehlerpegel ist.
- Festkörperlaufwerk nach
Anspruch 10 , wobei der Controller (108) ferner zu Folgendem ausgelegt ist: Verschieben der Angreiferseite und der Opferseite innerhalb des NVM (114) nach dem Bestimmen des Lesestörungsfehlers. - Festkörperlaufwerk nach
Anspruch 10 oder11 , wobei der Controller (108) ferner zu Folgendem ausgelegt ist: Verschieben einer weiteren Opferseite innerhalb des NVM (114), wobei die Opferseite eine Wortleitungsnummer aufweist, die einer Wortleitungsnummer der Angreiferseite unmittelbar vorausgeht, und die weitere Opferseite eine Wortleitungsnummer aufweist, die der Wortleitungsnummer der Angreiferseite unmittelbar nachfolgt. - Festkörperlaufwerk nach einem der
Ansprüche 10 bis12 , wobei der Controller (108) ferner dazu ausgelegt ist, eine Bestimmung eines Hochfehlerblocks für den Block des NVM (114) festzustellen, wenn der Fehlerpegel des Opferblocks über der ersten vorbestimmten Schwelle liegt, aber nicht um den vordefinierten Faktor größer als der Fehlerpegel des Angreiferblocks ist. - Festkörperlaufwerk nach einem der
Ansprüche 10 bis13 , wobei der Controller (108) ferner dazu ausgelegt ist, nach dem Bestimmen des Hochfehlerblocks eine Adresse eines niedrigstwertigen Bits (LSB-Adresse) und eine Adresse eines höchstwertigen Bits (MSB-Adresse) der Opferseite innerhalb des NVM zu verschieben. - Festkörperlaufwerk nach einem der
Ansprüche 10 bis14 , wobei der Controller (108) ferner zu Folgendem ausgelegt ist: Zuweisen eines von mehreren Fehlerstufenwerten zu jeder der Opfer- und Angreiferseiten basierend auf den bestimmten Fehlerpegeln der Opfer- und Angreiferseiten, wobei jeder der mehreren Fehlerstufenwerte einen Schweregrad des in einer Seite auftretenden Fehlers repräsentiert; und Verschieben einer logischen Blockadresse der Angreiferseite und/oder eines physischen Orts der Angreiferseite und der Opferseite innerhalb des NVM (114) und/oder eines gesamten Blocks, in dem sich die Angreiferseite und die Opferseite befinden, basierend auf der Stufe der Angreiferseite und der Stufe der Opferseite. - Festkörperlaufwerk nach einem der
Ansprüche 10 bis15 , wobei der Controller (108) ferner zu Folgendem ausgelegt ist: Beibehalten der Orte der Angreifer- und der Opferseiten innerhalb des Blocks, wenn die Stufenniveaus der der Angreifer- und der Opferseiten einen geringen Schweregrad des Fehlers in den Seiten angeben. - Festkörperlaufwerk nach einem der
Ansprüche 10 bis16 , wobei die mehreren Fehlerstufenwerte auf Stufen aus Paritätsprüfungs-Decodierung mit dünner Besetzung (LDPC-Decodierungs-Stufen) basieren. - Festkörperlaufwerk nach einem der
Ansprüche 10 bis17 , wobei der Fehlerpegel ein Fehlerkorrekturcode-Wert (ECC-Wert) oder eine Bitfehlerrate (BER) einer Seite ist. - Speichereinrichtung, die eine Vorrichtung zum Handhaben von Lesestörungen und Blockfehlern in einem nichtflüchtigen Speicher (NVM) (114) enthält, wobei die Vorrichtung enthält: Mittel zum Bestimmen, ob eine Anzahl von Lesezugriffen auf eine Seite in dem NVM (114) einen vordefinierten Wert erreicht hat; Mittel zum Erhalten eines Fehlermaßes für die Seite, nachdem die Anzahl von Lesezugriffen den vordefinierten Wert erreicht hat; Mittel zum Erhalten eines Fehlermaßes für mindestens eine benachbarte Seite, die sich auf einer zu der Seite innerhalb des NVM (114) benachbarten Wortleitung befindet; Mittel zum Bestimmen, ob das Fehlermaß der mindestens einen benachbarten Seite größer als eine vordefinierte Schwelle ist; Mittel zum Bestimmen eines Lesestörungsfehlers der mindestens einen benachbarten Seite dann, wenn das Fehlermaß der mindestens einen benachbarten Seite um einen vordefinierten Faktor größer als das Fehlermaß der Seite ist.
- Speichereinrichtung nach
Anspruch 19 , die ferner umfasst: Mittel zum Verlagern der Seite und der mindestens einen benachbarten Seite dann, wenn ein Lesestörungsfehler durch die Mittel zum Bestimmen eines Lesestörungsfehlers bestimmt wird. - Speichereinrichtung nach
Anspruch 19 oder20 , die ferner umfasst: Mittel zum Bestimmen eines Hochblockfehlerzustands für einen Block, der die Seite und die mindestens eine benachbarte Seite enthält, durch Bestimmen, dass das Fehlermaß der mindestens einen benachbarten Seite größer als der vordefinierte Wert ist und nicht um den vordefinierten Faktor größer als das oder gleich dem Fehlermaß der Seite ist. - Speichereinrichtung nach einem der
Ansprüche 19 bis21 , die ferner umfasst: Mittel zum Verlagern der mindestens einen benachbarten Seite, wenn ein Hochblockzustand bestimmt wird. - Speichereinrichtung nach einem der
Ansprüche 19 bis22 , wobei das Fehlermaß ein Fehlerkorrekturcode-Wert (ECC-Wert) oder eine Bitfehlerrate (BER) einer Seite ist.
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US15/396,206 US10373695B2 (en) | 2016-12-30 | 2016-12-30 | Methods and apparatus for read disturb detection and handling |
US15/396,206 | 2016-12-30 |
Publications (2)
Publication Number | Publication Date |
---|---|
DE102017120840A1 DE102017120840A1 (de) | 2018-07-05 |
DE102017120840B4 true DE102017120840B4 (de) | 2023-11-23 |
Family
ID=62568061
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
DE102017120840.2A Active DE102017120840B4 (de) | 2016-12-30 | 2017-09-08 | Verfahren und Vorrichtung zur Detektion und Handhabung von Lesestörungen |
Country Status (3)
Country | Link |
---|---|
US (1) | US10373695B2 (de) |
CN (1) | CN108269604B (de) |
DE (1) | DE102017120840B4 (de) |
Families Citing this family (22)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR102444948B1 (ko) * | 2016-05-12 | 2022-09-21 | 에스케이하이닉스 주식회사 | 반도체장치 및 반도체시스템 |
CN108958961B (zh) * | 2017-05-22 | 2021-11-30 | 上海宝存信息科技有限公司 | 数据储存装置以及数据错误管理方法 |
US10936205B2 (en) | 2017-10-05 | 2021-03-02 | International Business Machines Corporation | Techniques for retention and read-disturb aware health binning |
US10824352B2 (en) * | 2017-12-06 | 2020-11-03 | International Business Machines Corporation | Reducing unnecessary calibration of a memory unit for which the error count margin has been exceeded |
JP2019168937A (ja) * | 2018-03-23 | 2019-10-03 | 東芝メモリ株式会社 | メモリシステム、制御方法及びコントローラ |
US10699791B2 (en) | 2018-08-24 | 2020-06-30 | International Business Machines Corporation | Adaptive read voltage threshold calibration in non-volatile memory |
KR102546229B1 (ko) * | 2018-10-05 | 2023-06-22 | 삼성전자주식회사 | 리드 리클레임 동작 시에 버퍼 메모리를 이용하는 스토리지 장치 |
US10770155B2 (en) * | 2018-10-11 | 2020-09-08 | International Business Machines Corporation | Determining a read apparent voltage infector page and infected page |
US10776201B2 (en) * | 2018-12-28 | 2020-09-15 | Micron Technology, Inc. | Extended error correction in storage device |
CN110246534A (zh) * | 2019-05-07 | 2019-09-17 | 陈颐 | 一种降低闪存记忆体写入扰动的方法 |
KR20210076505A (ko) * | 2019-12-16 | 2021-06-24 | 에스케이하이닉스 주식회사 | 메모리 시스템 및 그것의 동작 방법 |
US11450392B2 (en) * | 2019-12-17 | 2022-09-20 | Micron Technology, Inc. | Selective read disturb sampling |
US12099440B1 (en) * | 2019-12-31 | 2024-09-24 | Kioxia Corporation | Access-based data storage in SSD devices |
US11699498B2 (en) | 2020-12-04 | 2023-07-11 | Micron Technology, Inc. | Managing probabilistic data integrity scan intervals |
US11409599B2 (en) * | 2020-12-04 | 2022-08-09 | Micron Technology, Inc. | Managing probabilistic data integrity scans in workloads with localized read patterns |
US11467737B2 (en) * | 2020-12-04 | 2022-10-11 | Micron Technology, Inc. | Reducing probabilistic data integrity scan collisions |
US11609857B2 (en) | 2020-12-04 | 2023-03-21 | Micron Technology, Inc. | Identification and caching of frequent read disturb aggressors |
US11762767B2 (en) * | 2021-04-22 | 2023-09-19 | Micron Technology, Inc. | Storing highly read data at low impact read disturb pages of a memory device |
US11545229B1 (en) * | 2021-08-09 | 2023-01-03 | Micron Technology, Inc. | Probabilistic data integrity scan with dynamic scan frequency |
CN116483617B (zh) * | 2023-06-21 | 2023-09-05 | 鹏钛存储技术(南京)有限公司 | 快速在线查找nand闪存最优读偏移值的方法和装置 |
CN116913364B (zh) * | 2023-06-27 | 2024-02-23 | 珠海妙存科技有限公司 | 闪存读干扰测试方法和系统、电子设备、存储介质 |
CN118280423B (zh) * | 2024-05-30 | 2024-08-16 | 苏州元脑智能科技有限公司 | 闪存读取方法、装置、计算机设备及存储介质 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20120030506A1 (en) | 2010-07-30 | 2012-02-02 | Apple Inc. | Read disturb scorecard |
US20120233391A1 (en) | 2009-08-12 | 2012-09-13 | Texas Memory Systems, Inc. | Efficient Reduction of Read Disturb Errors in NAND FLASH Memory |
US9240245B1 (en) | 2012-09-11 | 2016-01-19 | Sk Hynix Memory Solutions Inc. | Memory efficient triggers of read disturb checks in solid state storage |
US20170139761A1 (en) | 2015-11-12 | 2017-05-18 | Sandisk Technologies Llc | Variable-Term Error Metrics Adjustment |
Family Cites Families (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9471418B2 (en) * | 2007-06-19 | 2016-10-18 | Samsung Electronics Co., Ltd. | Memory system that detects bit errors due to read disturbance and methods thereof |
US7945825B2 (en) * | 2007-11-25 | 2011-05-17 | Spansion Isreal, Ltd | Recovery while programming non-volatile memory (NVM) |
US8189379B2 (en) * | 2009-08-12 | 2012-05-29 | Texas Memory Systems, Inc. | Reduction of read disturb errors in NAND FLASH memory |
WO2013145024A1 (en) * | 2012-03-30 | 2013-10-03 | Hitachi, Ltd. | Storage system with flash memory, and storage control method |
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 |
US9146850B2 (en) * | 2013-08-01 | 2015-09-29 | SMART Storage Systems, Inc. | Data storage system with dynamic read threshold mechanism and method of operation thereof |
US10014060B2 (en) * | 2015-01-30 | 2018-07-03 | Sandisk Technologies Llc | Memory system and method for reducing read disturb errors |
US10147500B2 (en) * | 2015-05-22 | 2018-12-04 | SK Hynix Inc. | Hybrid read disturb count management |
-
2016
- 2016-12-30 US US15/396,206 patent/US10373695B2/en active Active
-
2017
- 2017-09-08 DE DE102017120840.2A patent/DE102017120840B4/de active Active
- 2017-09-15 CN CN201710839238.7A patent/CN108269604B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20120233391A1 (en) | 2009-08-12 | 2012-09-13 | Texas Memory Systems, Inc. | Efficient Reduction of Read Disturb Errors in NAND FLASH Memory |
US20120030506A1 (en) | 2010-07-30 | 2012-02-02 | Apple Inc. | Read disturb scorecard |
US9240245B1 (en) | 2012-09-11 | 2016-01-19 | Sk Hynix Memory Solutions Inc. | Memory efficient triggers of read disturb checks in solid state storage |
US20170139761A1 (en) | 2015-11-12 | 2017-05-18 | Sandisk Technologies Llc | Variable-Term Error Metrics Adjustment |
Also Published As
Publication number | Publication date |
---|---|
DE102017120840A1 (de) | 2018-07-05 |
US10373695B2 (en) | 2019-08-06 |
US20180190362A1 (en) | 2018-07-05 |
CN108269604B (zh) | 2021-07-16 |
CN108269604A (zh) | 2018-07-10 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
DE102017120840B4 (de) | Verfahren und Vorrichtung zur Detektion und Handhabung von Lesestörungen | |
DE112014004778B4 (de) | Vorrichtung und Verfahren zum Verwalten von Chipgruppen | |
DE112011102160B4 (de) | Wear-levelling bei Zellen/Seiten/Teilseiten/Blöcken eines Speichers | |
DE102020130044A1 (de) | Techniken zum verhindern von lese-störung in nand-speicher | |
DE112016002631B4 (de) | Speicherfunktionszustandsüberwachung | |
DE112017000206T5 (de) | Kompensation von Temperaturschwankungen eines Arbeitsspeichers | |
DE112016004629T5 (de) | Datencodiertechniken für eine Vorrichtung | |
DE112014004761T5 (de) | Beeinflussung des Wear-Leveling in Speichersystemen | |
DE112007003015B4 (de) | Verfahren und Vorrichtung zur Cache-gestützten Fehlerdetektion und -korrektur in einem Speicher | |
DE112016005869T5 (de) | Vorausschauende Arbeitsspeicherinstandhaltung | |
DE112015004863T5 (de) | Verfolgen der Vermischung von Schreibvorgängen und Entabbildungsbefehlen über Stromversorgungszyklen | |
DE102013109235A1 (de) | Flash-Speichersystem mit Detektor für anormale Wortleitung und Verfahren zum Erfassen einer anormalen Wortleitung | |
DE102008033518B4 (de) | Datenverarbeitungsverfahren für eine Solid-State-Disk-Steuereinheit, Solid-State-Disk-Steuereinheit und Datenspeicherelement | |
DE112008001151B4 (de) | Mehrbitprogrammiervorrichtung und Verfahren zum Mehrbitprogrammieren | |
DE102010030748A1 (de) | Bitfehlerschwelle und Umabbildung einer Speicheranordnung | |
DE102010037290A1 (de) | Speichersysteme und Verfahren zur Erfassung einer Verteilung von instabilen Speicherzellen | |
DE102017114078A1 (de) | Fehlerabschwächung für 3d-nand-flash-speicher | |
DE102006036070B4 (de) | Ladungsfallenspeichervorrichtung und Verfahren für deren Herstellung und Betrieb | |
DE112016000696B4 (de) | Ablaufplanungsschema(ta) für eine Mehrchip-Speichervorrichtung | |
DE102015011991A1 (de) | Codierungsschema für vertikale 3D-Flash-Speicher | |
DE112020005502T5 (de) | Dynamische überprovisionierungszuweisung für zweckbestimmte blöcke | |
DE112020000143T5 (de) | Ssd-system, das einschaltzyklus-basierten read-scrub verwendet | |
DE112020000230T5 (de) | Datenspeichervorrichtung mit dynamischem streifenlängenmanager | |
DE102015117500A1 (de) | Verfahren zur Verbesserung des gemischten Random-Verhaltens bei Arbeitslasten mit niedriger Queue-Tiefe | |
DE112015003569B4 (de) | Verfahren und System zum Verwenden von NAND-Seitenpuffern, um die Übertragungspuffernutzung eines Festkörperlaufwerks zu verbessern |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
R012 | Request for examination validly filed | ||
R083 | Amendment of/additions to inventor(s) | ||
R016 | Response to examination communication | ||
R082 | Change of representative |
Representative=s name: DEHNSGERMANY PARTNERSCHAFT VON PATENTANWAELTEN, DE Representative=s name: DEHNS GERMANY PARTNERSCHAFT MBB, DE |
|
R018 | Grant decision by examination section/examining division | ||
R081 | Change of applicant/patentee |
Owner name: SANDISK TECHNOLOGIES, INC. (N.D.GES.D. STAATES, US Free format text: FORMER OWNER: WESTERN DIGITAL TECHNOLOGIES, INC., IRVINE, CALIF., US Owner name: WESTERN DIGITAL TECHNOLOGIES, INC. (N.D.GES.D., US Free format text: FORMER OWNER: WESTERN DIGITAL TECHNOLOGIES, INC., IRVINE, CALIF., US |
|
R081 | Change of applicant/patentee |
Owner name: SANDISK TECHNOLOGIES, INC. (N.D.GES.D. STAATES, US Free format text: FORMER OWNER: WESTERN DIGITAL TECHNOLOGIES, INC. (N.D.GES.D. STAATES DELAWARE), SAN JOSE, CA, US Owner name: SANDISK TECHNOLOGIES, INC. (N.D.GES.D. STAATES, US Free format text: FORMER OWNER: WESTERN DIGITAL TECHNOLOGIES, INC. (N.D.GES.D.STAATES DELAWARE), SAN JOSE, CA, US |
|
R081 | Change of applicant/patentee |
Owner name: SANDISK TECHNOLOGIES, INC. (N.D.GES.D. STAATES, US Free format text: FORMER OWNER: SANDISK TECHNOLOGIES, INC. (N.D.GES. D. STAATES DELAWARE), MILPITAS, CA, US |
|
R020 | Patent grant now final |