DE102020130044A1 - Techniken zum verhindern von lese-störung in nand-speicher - Google Patents

Techniken zum verhindern von lese-störung in nand-speicher Download PDF

Info

Publication number
DE102020130044A1
DE102020130044A1 DE102020130044.1A DE102020130044A DE102020130044A1 DE 102020130044 A1 DE102020130044 A1 DE 102020130044A1 DE 102020130044 A DE102020130044 A DE 102020130044A DE 102020130044 A1 DE102020130044 A1 DE 102020130044A1
Authority
DE
Germany
Prior art keywords
word line
data
data stored
block
nand
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
DE102020130044.1A
Other languages
English (en)
Inventor
Arun Sitaram ATHREYA
Shankar Natarajan
Sriram Natarajan
Yihua Zhang
Suresh Nagarajan
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.)
Intel Corp
Original Assignee
Intel Corp
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 Intel Corp filed Critical Intel Corp
Publication of DE102020130044A1 publication Critical patent/DE102020130044A1/de
Pending 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/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
    • G11C7/00Arrangements for writing information into, or reading information out from, a digital store
    • G11C7/10Input/output [I/O] data interface arrangements, e.g. I/O data control circuits, I/O data buffers
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/0604Improving or facilitating administration, e.g. storage management
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0655Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
    • G06F3/0659Command handling arrangements, e.g. command buffers, queues, command scheduling
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0683Plurality of storage devices
    • G06F3/0688Non-volatile semiconductor memory arrays
    • 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
    • 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/5671Digital 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 trapping in an insulator
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C16/00Erasable programmable read-only memories
    • G11C16/02Erasable programmable read-only memories electrically programmable
    • G11C16/04Erasable programmable read-only memories electrically programmable using variable threshold transistors, e.g. FAMOS
    • G11C16/0483Erasable programmable read-only memories electrically programmable using variable threshold transistors, e.g. FAMOS comprising cells having several storage transistors connected in series
    • 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/08Address circuits; Decoders; Word-line control 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/26Sensing or reading circuits; Data output circuits
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C2211/00Indexing scheme relating to digital stores characterized by the use of particular electric or magnetic storage elements; Storage elements therefor
    • G11C2211/56Indexing scheme relating to G11C11/56 and sub-groups for features not covered by these groups
    • G11C2211/564Miscellaneous aspects
    • G11C2211/5641Multilevel memory having cells with different number of storage levels
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C2211/00Indexing scheme relating to digital stores characterized by the use of particular electric or magnetic storage elements; Storage elements therefor
    • G11C2211/56Indexing scheme relating to G11C11/56 and sub-groups for features not covered by these groups
    • G11C2211/564Miscellaneous aspects
    • G11C2211/5642Multilevel memory with buffers, latches, registers at input or output
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C2211/00Indexing scheme relating to digital stores characterized by the use of particular electric or magnetic storage elements; Storage elements therefor
    • G11C2211/56Indexing scheme relating to G11C11/56 and sub-groups for features not covered by these groups
    • G11C2211/564Miscellaneous aspects
    • G11C2211/5644Multilevel memory comprising counting devices

Abstract

Es werden Techniken zum Verhindern von Lese-Störung in NAND-Speichervorrichtungen beschrieben. In einem Beispiel werden Lesevorgänge für Untergruppen verfolgt. Wenn die Anzahl der Lesevorgänge an einer Untergruppe eine Schwelle erreicht, werden die Daten an der Wortleitung, an der die Schwelle erreicht wurde, zusammen mit den Daten an benachbarten Wortleitungen zu einem SLC-Block verlagert, ohne den gesamten Block zu verlagern. Die Leistungsfähigkeits-Auswirkung und Schreibverstärkungs-Auswirkung der Lese-Störungs-Minderung kann signifikant verringert werden, während eine gewisse Datenkontinuität aufrechterhalten wird.

Description

  • TECHNISCHES GEBIET
  • Die Beschreibungen betreffen allgemein nichtflüchtige Speicherungsmedien wie NAND-Flash-Speicher und Techniken zur Minimierung von Lese-Störung.
  • HINTERGRUND
  • Flash-Speicherung, wie etwa NAND-Flash-Speicher, ist ein nichtflüchtiges Speicherungsmedium. Nichtflüchtige Speicherung bezieht sich auf Speicherung mit einem Zustand, der selbst dann bestimmt ist, wenn die Stromversorgung der Vorrichtung unterbrochen wird. Dreidimensionaler bzw. 3D-NAND-Flash-Speicher bezieht sich auf NAND-Flash-Speicher, bei dem eine NAND-Kette vertikal aufgebaut werden kann, so dass FETs (Feldeffekttransistoren) der Kette übereinander gestapelt werden. 3D-NAND- und andere 3D-Architekturen sind teilweise aufgrund der signifikant höheren Bitdichten attraktiv, die relativ zu zweidimensionalen bzw. 2D-Architekturen erzielt werden können. Somit wird Flash-Speicherung zunehmend im mobilen, Client- und Unternehmenssegment benutzt. Zusätzlich zu der hohen Bitdichte sind auch andere Metriken, wie etwa geringe Fehlerrate, in Speicherungstechnologien wünschenswert.
  • Figurenliste
  • Die folgende Beschreibung umfasst Besprechung von Figuren mit anhand von Beispielen für Implementierungen von Ausführungsformen der Erfindung gegebenen Veranschaulichungen. Die Zeichnungen sollten als Beispiel aufgefasst werden und nicht als Beschränkung. Im vorliegenden Gebrauch sind Erwähnungen von einem oder mehreren „Ausführungsformen“ oder „Beispielen“ als ein bestimmtes Merkmal, eine bestimmte Struktur und/oder ein bestimmtes Charakteristikum beschreibend aufzufassen, das bzw. die in mindestens einer Implementierung der Erfindung enthalten ist. Ausdrücke wie „bei einer Ausführungsform“ oder „in einem Beispiel“, die hier erscheinen, beschreiben somit verschiedene Ausführungsformen und Implementierungen der Erfindung und beziehen sich nicht unbedingt immer auf dieselbe Ausführungsform. Sie schließen sich jedoch auch nicht unbedingt gegenseitig aus.
    • 1 zeigt einen beispielhaften Teil eines NAND-Flash-Speicherarrays, in dem Lese-Störungs-Verhinderungstechniken implementiert werden können.
    • 2 zeigt ein Beispiel für Schwellenspannungsverteilungen für eine SLC-Zelle und eine QLC-Zelle.
    • 3A zeigt ein beispielhaftes System.
    • 3B ist eine Blockdarstellung eines Beispiels für Firmware zum Umgang mit Lese-Störung.
    • 4 ist eine Blockdarstellung eines Beispiels für Lesezähler für eine NAND-Vorrichtung.
    • 5 zeigt eine beispielhafte Darstellung von Zählern in Form einer Wärmetabelle.
    • 6 ist ein Flussdiagramm eines Beispiels für ein Verfahren zum Verhindern von Lese-Störung.
    • 7A und 7B zeigen Zustandsdiagramme für zwei verschiedene Datenverschiebungsrichtlinien zur Lese-Störungs-Verhinderung.
    • 8 gibt eine beispielhafte Abbildung eines Datenverarbeitungssystems, worin Lese-Störungs-Verhinderungstechniken implementiert werden können.
  • Es folgen Beschreibungen bestimmter Einzelheiten und Implementierungen, einschließlich einer Beschreibung der Figuren, die einige oder alle der nachfolgend beschriebenen Ausführungsformen abbilden können, sowie Besprechung anderer potentieller Ausführungsformen oder Implementierungen der hier dargestellten erfindungsgemäßen Konzepte.
  • AUSFÜHRLICHE BESCHREIBUNG
  • Es werden hier Techniken zum effizienten Umgehen mit Lese-Störung in nichtflüchtigem Speicher, wie etwa dreidimensionalem bzw. 3D-NAND-Speicher, beschrieben.
  • Speicherzugriffe in aktueller NAND-Speichertechnologie können zu vielfältigen Fehlern führen, wie etwa Programmier-Störungs- oder Lese-Störungs-Fehlern. Lese-Störung bezieht sich auf die unbeabsichtigte Programmierung eines oder mehrerer Bit während einer Leseoperation. Bestimmte Zugriffsmuster können die Wahrscheinlichkeit von Lese-Störungs-Fehlern vergrößern. Zum Beispiel können wiederholte Lesevorgänge an einer einzelnen Seite zu einem Lese-Störungs-Fehler des Heißelektronentyps führen, der ein ECCunkorrigierbares Ereignis verursachen kann. Heißelektronen-Lese-Störung bezieht sich auf unerwartete Änderung von Datenwerten in einem Teil einer Wortleitung oder einem Blockspeicher, der nicht Teil eines Lesebefehls ist, aber zur Versorgung der Leseanforderung geladen wird.
  • Einige existierende Lösungen zur Minderung von Lese-Störung umfassen Überwachen der Anzahl der Lesevorgänge an einem QLC-Block und Verlagern des gesamten Blocks Daten zu einem anderen QLC-Block, bevor die Leseschwelle erreicht ist. Das Verlagern des gesamten Blocks Daten von einem QLC-Block zu einem anderen QLC-Block führt zu signifikanten Leistungsfähigkeitskosten und bringt das Risiko von Datenverfälschung mit sich.
  • Im Gegensatz zu existierenden Techniken kann die Verlagerung nur der heißen Wortleitung und benachbarter Wortleitungen eines QLC-Blocks zu einem SLC-Block Lese-Störung ohne signifikante Leistungsfähigkeitskosten verhindern. Das Verlagern nur der betroffenen Wortleitungen, anstelle eines gesamten QLC-Blocks (oder Superblocks) verringert ferner die Anzahl der Schreibvorgänge und verringert somit die Schreibverstärkungsauswirkung. Durch Verlagern von drei aufeinanderfolgenden Wortleitungen ist außerdem ein Teil der Daten immer noch sequentiell, was die Ablieferung von einheitlicher Dienstqualität mit Bezug auf Leistungsfähigkeit ermöglichen kann.
  • 1 zeigt einen beispielhaften Teil eines NAND-Flash-Speicherarrays (oder NAND-Speicherungsarrays) 100, wofür Lese-Störungs-Verhinderungstechniken implementiert werden können. Das NAND-Array 100 umfasst mehrere nichtflüchtige Speicherzellen 102A-102F (abgekürzt als 102), die in Spalten angeordnet sind, wie etwa Reihen-Ketten 104A und 104B (abgekürzt als 104). In einem Beispiel umfasst die Speicherzelle 102 einen Transistor mit einem Ersatz-Gate. Eine Zelle mit einem Ersatz-Gate weist typischerweise ein Gate mit niedrigem Widerstand (z. B. ein Wolfram-Gate) und eine Ladungsfallenschicht zwischen dem Gate und dem Kanal, worin Ladung eingefangen oder gespeichert wird, um einen oder mehrere Bitwerte zu repräsentieren, auf. In einem anderen Beispiel kann eine Speicherzelle 102 einen Transistor mit einem potentialfreien Gate (z. B. einem Poly-Gate mit hohem Widerstand) umfassen, das Ladung speichert, die einen oder mehrere Bitwerte angibt. Es sind auch andere Architekturen möglich. In den Reihen-Ketten 104 sind Drainregionen der Zellen 102 (mit Ausnahme der obersten Zelle) mit einer Sourceregion einer anderen Zelle 102 gekoppelt.
  • Das Array 100 umfasst außerdem Wortleitungen 106A-106C. Die Wortleitungen 106A-106C können mehrere Reihen-Ketten 104 überspannen (z. B. kann eine Wortleitung mit einer Speicherzelle jeder Reihen-Kette 104 gekoppelt sein) und sind mit den Steuer-Gates jeder Speicherzelle 102 einer Zeile des Arrays 100 verbunden und dienen zum Vorspannen der Steuer-Gates der NAND-Speicherzellen 102 in der Zeile. Die Bitleitungen 108A und 108B (abgekürzt als 108) sind jeweils durch ein Auswahlgate-Drain (SGD) 114 und Leseschaltkreise 120A und 120B, die den Zustand jeder Zelle durch Lesen von Spannung oder Strom an einer bestimmten Bitleitung 108 detektieren, mit einer Reihen-Kette 104 gekoppelt.
  • Mehrere Reihen-Ketten 104 der Speicherzellen sind durch eine Auswahl-Gate-Source (SGS) 112A und 112B (abgekürzt als 112) mit einer Sourceleitung 110 und durch einen Auswahl-Gate-Drain 114A und 114B (abgekürzt als 114) mit einer einzelnen Bitleitung 108 gekoppelt. Die SGS 112 werden durch eine Source-Auswahl-Gate-Steuerleitung 116 gesteuert und die SGD 114 werden durch eine Drain-Auswahl-Gate-Steuerleitung 118 gesteuert. Somit koppelt eine SGD-Signalleitung selektiv eine Kette mit einer Bitleitung (BL). Eine SGS-Signalleitung koppelt selektiv eine Kette mit einer Sourceleitung (SL). Die SGS kann in mehrere segmentierte SGS (SSGS) segmentiert werden, um effektiv als getrennte SGS-Signalleitungen zu arbeiten, um den Betrieb getrennter Gruppen von Speicherungszellenstapeln zu steuern. Eine Gruppe von durch eine SSGS gesteuerten Speicherzellen kann als SSGS-Gruppe, Teilblock oder Teilgruppe bezeichnet werden. Ähnlich kann der SGD segmentiert werden, um getrennte Steuerung für die verschiedenen Teilblöcke bereitzustellen, mit einem SGD-Segment pro Teilblock.
  • Jede Speicherzelle 102 kann gemäß einem oder mehreren Codierungsschemata programmiert werden, wie etwa SLC (Einzelpegelzelle), MLC (Mehrpegelzelle), TLC (Dreifachpegelzelle), QLC (Vierfachpegelzelle) oder ein anderes Codierungsschema. Bei einem SLC-NAND-Flash-Speicher hat jede Speicherzelle zwei Spannungspegel entsprechend zwei Zuständen (0, 1) zum Repräsentieren eines Bit. Bei einem MLC-, TLC- und QLC-NAND-Flash-Speicher speichert jede Speicherzelle zwei oder mehr Bit. Jede Zelle in einem MLC-NAND-Flash-Speicher verwendet vier Spannungspegel entsprechend vier Zuständen (00, 01, 10, 11), um 2 Bit binäre Daten zu repräsentieren. Jede Zelle in einem TLC-NAND-Flash-Speicher verwendet acht Spannungspegel entsprechend acht Zuständen (000 bis 111), um 3 Bit binäre Daten zu repräsentieren. Jede Zelle in einem QLC-NAND-Flash-Speicher verwendet sechzehn Spannungspegel entsprechend sechzehn Zuständen (0000 bis 1111), um 4 Bit binäre Daten zu repräsentieren. In einem Beispiel gibt die Schwellenspannung (Vt) jeder Zelle die Daten an, die in der Zelle gespeichert sind. Zum Beispiel zeigt 2 ein Beispiel für Schwellenspannungsverteilungen für eine SLC-Zelle und eine QLC-Zelle.
  • 3A zeigt ein beispielhaftes System. Das System umfasst einen Host 350 und eine nichtflüchtige Speicherungs- oder Speichervorrichtung 300. Der Host 350 und die Speichervorrichtung 300 können ein Beispiel für ein System sein, das innerhalb der Beschränkungen einer Kapselung eines Computers (z. B. innerhalb eines Laptop/Notebook, eines Servers oder anderen Computers) existiert. In anderen Beispielen kann auch über ein größeres Netzwerk, wie etwa ein lokales Netzwerk (z. B. ein Ethernet-Netzwerk) oder ein großflächiges Netzwerk (wie etwa ein drahtloses Mobilnetz, das Internet usw.) auf die Speichervorrichtung 300 zugegriffen werden. Solche Beispiele können einem Standard genügen, wie etwa NVMe-oF (Non-Volatile Memory Express over Fabrics). Der Host 350 umfasst einen oder mehrere Prozessoren 352, Speicher 354 und andere Komponenten, die der Klarheit halber aus der Zeichnung weggelassen sind.
  • Die Speichervorrichtung umfasst ein Speichermedium 302 zum Speichern von Daten. Das Speichermedium 302 kann ein Speicher- oder Speicherungsmedium sein, das ein oder mehrere Bit in Speicherzellen speichern kann. In einem Beispiel umfasst das Speichermedium 302 ein Speicherungsarray, das Ketten von Speicherzellen umfasst, wie etwa die in 1 dargestellte NAND-Kette. Das Speichermedium 302 kann nichtflüchtige und/oder flüchtige Arten von Speicher umfassen. In einem Beispiel umfasst das Speichermedium 302 einen oder mehrere nichtflüchtige Speicher-Dies, die jeweils in mehrere Ebenen oder Gruppen aufgeteilt sind. In einigen Beispielen kann das Speichermedium 302 blockadressierbare Speichervorrichtungen umfassen, wie etwa NAND-Technologien. In einem Beispiel umfasst das Speichermedium 302 ein NAND-Flash-Speicherarray wie etwa in 1. Das Speichermedium 302 kann auch nichtflüchtige Arten von Speicher umfassen, wie etwa Kreuzpunktspeicher (z. B. dreidimensionalen bzw. 3D-Kreuzpunkt) oder anderen bytadressierbaren nichtflüchtigen Speicher. Andere Technologien, wie etwa ein gewisser NOR-Flash-Speicher, können für Lesevorgänge und/oder Schreibvorgänge byteadressierbar und für Löschvorgänge blockadressierbar sein. Das Speichermedium 302 kann Speichervorrichtungen umfassen, die Chalcogenid-Phasenänderungsmaterial (z. B. Chalcogenidglas), Mehrschwellenpegel-NAND-Speicher, NOR-Flash-Speicher, Einzel- oder Mehrpegel-Phasenänderungsspeicher (PCM), einen resistiven Speicher, Nanodraht-Speicher, ferroelektrischen Transistor-Direktzugriffsspeicher (FeTRAM), magnetoresistiven Direktzugriffsspeicher (MRAM), der Memristortechnologie enthält, oder Spin-Transfer-Torque-MRAM (STT)MRAM) oder eine Kombination beliebiger der obigen oder anderer Speichertypen verwenden. Das Speichermedium 302 kann Einzelpegelzellen- bzw. SLC-NAND-Zellen, Mehrpegelzellen- bzw. MLC-NAND-Zellen, Dreifachpegel-Zellen- bzw. TLC-NAND-Zellen, Vierfachpegelzellen- bzw. QLC-Zellen, dynamische NAND-Zellen, die als mehr als eine Art von NAND verwendet werden können (z. B. entweder SLC oder QLC abhängig vom Modus) oder andere NAND-Zellen umfassen.
  • Gemäß einigen Beispielen können flüchtige Arten von Speicher, die in dem Speichermedium 302 enthalten sind, ohne Beschränkung Folgendes umfassen: einen Direktzugriffsarbeitsspeicher (RAM), einen DRAM (dynamischen Direktzugriffsarbeitsspeicher), einen DDR-SDRAM (synchronen dynamischen RAM mit doppelter Datenrate), einen SRAM (statischen Direktzugriffsarbeitsspeicher), einen Thyristor-RAM (T-RAM) oder einen Z-RAM (Zero-Capacitor-RAM). Flüchtige Arten von Speicher können mit einer Anzahl von Arbeitsspeichertechnologien kompatibel sein, wie z. B. DDR4 (DDR Version 4, anfängliche Spezifikation, die im September 2012 von JEDEC veröffentlicht wurde), LPDDR4 (leistungsarme doppelte Datenrate (LPDDR) Version 4, JESD209-4, ursprünglich durch JEDEC im August 2014 veröffentlicht), WlO2 (breite E/A 2 (WideIO2), JESD229-2, ursprünglich durch JEDEC im August 2014 veröffentlicht), HBM (Arbeitsspeicher-DRAM mit hoher Bandbreite, JESD235, ursprünglich durch JEDEC im Oktober 2013 veröffentlicht), DDR5 (DDR Version 5, gegenwärtig durch JEDEC in Diskussion), LPDDR5 (LPDDR Version 5, gegenwärtig durch JEDEC in Diskussion) HBM2 (HBM Version 2, gegenwärtig durch JEDEC in Diskussion) und/oder andere und Technologien auf der Basis von Ableitungen oder Erweiterungen von solchen Spezifikationen.
  • Die Speichervorrichtung 300 kann unter Verwendung jeweiliger Schnittstellen 320 und 356 mit einem Hostsystem 350 kommunizieren. In einem Beispiel ist die Schnittstelle 356 ein Teil eines PCH (Peripheral Control Hub). In dem dargestellten Beispiel ist der Controller 304 unter Verwendung der Schnittstelle 320 mit einer Datenverarbeitungsplattform, wie etwa dem Host 350, gekoppelt. In einem Beispiel ist der Controller 304 ein ASIC (anwendungsspezifische integrierte Schaltung). In einem Beispiel genügen die Schnittstellen einem Standard wie etwa PCIe (PCI Express), seriellem ATA (Advanced Technology Attachment), einem parallelen ATA, USB (Universal Serial Bus) und/oder einem anderen Schnittstellenprotokoll. Der Controller 304 kann mit Elementen der Datenverarbeitungsplattform kommunizieren, um Daten aus dem Speichermedium 302 zu lesen oder Daten in das Speichermedium 302 zu schreiben. Obwohl sich in der vorliegenden Offenbarung der Ausdruck „Host“ auf ein System mit einem Prozessor (oder einer anderen Vorrichtung, die Anforderungen zum Zugriff auf in einem nichtflüchtigen Speicher gespeicherten Daten sendet) und einer Schnittstelle zur Kommunikation mit dem NAND (z. B. dem Host 350) bezieht, können einige Implementierungen den Controller 304 relativ zu dem nichtflüchtigen Speichermedium 302 als einen „Host“ bezeichnen.
  • Der Controller 304 kann dafür ausgelegt sein, Anforderungen vom Host 350 zu empfangen und Befehle bezüglich der Verwendung des Speichermediums 302 (z. B. um Daten zu lesen, Daten zu schreiben oder zu löschen) erzeugen und ausführen. Der Controller 304 und/oder die Firmware 315 können verschiedene Schreibalgorithmen implementierten, wie etwa „Schreiben durch SLC-Puffer“ oder „Schreiben um SLC-Puffer“. Bei beiden Ansätzen Schreiben-durch und Schreiben-um werden Hostdaten in einen Frontend-SLC-Puffer geschrieben. Der SLC-Puffer kann eine dedizierte SLC-Region, eine in einem SLC-Modus verwendete dynamische Region oder beides umfassen. Der Ansatz „Schreiben durch SLC-Puffer“ umfasst Schreiben aller Hostdaten durch einen SLC-Puffer hindurch. Sobald der SLC-Puffer voll ist, wird durch Verlagern von Daten zu einem oder mehreren QLC-Blöcken Platz in dem SLC-Puffer verfügbar gemacht. Neue Hostdaten können dann in SLC-Puffer geschrieben werden. Bei dem Ansatz „Schreiben um SLC-Puffer“ wird in SLC-Puffer geschrieben, solange Platz verfügbar ist. Sobald SLC-Puffer voll ist, werden Hostdaten direkt in einen QLC-Block geschrieben. Ein Ansatz Schreiben-um erfordert typischerweise Superkondensatoren auf der Platine zum Schutz zuvor programmierter Daten im Fall eines plötzlichen Stromausfalls. Im Gegensatz sind Kondensatoren zum Schutz vor Stromausfall typischerweise für den Ansatz „Schreiben durch SLC-Puffer“ nicht erforderlich. Die hier beschriebenen Techniken gelten sowohl für Schreiben-durch-SLC- als auch für Schreiben-um-SLC-Ansätze.
  • Der Controller kann mit Hardware (z. B. Logikschaltkreisen), Software, Firmware oder einer Kombination von Hardware, Software und Firmware implementiert werden. Beispiele für Logikschaltkreise wären dedizierte fest verdrahtete Logikschaltkreise (darunter z. B. eine oder mehrere Automaten-Logikschaltungen), programmierbare Logikschaltkreise (z. B. FPGA (Field Programmable Gate Array) und ein PLA (Programmable Logic Array). In einem Beispiel sind Logikschaltkreise ausgelegt zum Ausführen einer gewissen Form von Programmcode, wie etwa SSD-Firmware (z. B. ein eingebetteter Prozessor, eingebetteteter Controller usw.). Die Speichervorrichtung umfasst typischerweise auch mit den Logikschaltkreisen 311 gekoppelten Speicher 317, der zum Zwischenspeichern von Daten aus den nichtflüchtigen Medien aus den nichtflüchtigen Medien und Speichern von durch den Controller 304 ausgeführter Firmware 315 verwendet werden kann. Der Ausdruck „Steuerlogik“ kann gebraucht werden, um sich auf Logikschaltkreise, Firmware, Software wie auch eine Kombination zu beziehen. Zum Beispiel kann sich Steuerlogik auf die Steuerlogik 311, die Firmware 315 oder beides beziehen.
  • Der Controller 304 ist mit dem Speichermedium 302 zur Steuerung oder Befehligung des Speichers gekoppelt, um zu bewirken, dass Operationen stattfinden. Kommunikation zwischen dem Speichermedium 302 und dem Controller 304 kann das Schreiben in und/oder Lesen aus spezifischen Registern (z.B. den Registern 308) umfassen. Solche Register können in dem Controller 304, in dem Speichermedium 302 oder außerhalb des Controllers 304 und des Speichermediums 302 residieren. Register oder Speicher in dem Speichermedium 302 können z.B. durch eine interne Schnittstelle der Speichervorrichtung 300, die zwischen dem Controller 304 und dem Speichermedium 302 existiert (z.B. eine ONFI-Schnittstelle (Open NAND Flash Interface), eine proprietäre Schnittstelle oder andere Schnittstelle) durch den Controller 304 erreichbar sein, um den Controller 304 und das Speichermedium 302 kommunikativ zu koppeln. Eingabe-/Ausgabe- bzw. E/A-Anschlüsse und -Signalleitungen koppeln den Controller 304 kommunikativ mit dem Speichermedium 302, um die Übertragung von Lese- und Schreibdaten zwischen dem Controller 304 und dem Speichermedium 302 zu ermöglichen.
  • Der Controller 304 kann mit Wortleitungen des Speichermediums 302 gekoppelt sein, um eine der Wortleitungen auszuwählen, Lesespannungen anzulegen, Programmierspannungen kombiniert mit Bitleitungs-Potenzialwerten anzulegen, Verifizierspannungen anzulegen oder Messspannungen anzulegen. Der Controller 304 kann mit Bitleitungen des Speichermediums 302 gekoppelt sein, um in den Speicherzellen gespeicherte Daten zu lesen, einen Zustand der Speicherzellen während einer Programmieroperation zu bestimmen und Potenzialwerte der Bitleitungen zu steuern, um Programmierung und Löschung zu fördern oder zu sperren.
  • Wie oben erwähnt, kann auf der Speichervorrichtung gespeicherte Firmware 315 (z.B. durch den Controller 304) ausgeführt werden, um von der Speichervorrichtung 300 bestimmte Funktionen durchzuführen und bestimmte Aspekte zu steuern. In einem Beispiel umfasst die Firmware 315 Logik zum Umgang mit Lese-Störungs-Verhinderung. 3B ist eine Blockdarstellung eines Beispiels für die Firmware 315 zum Umgang mit Lese-Störung. In dem Beispiel in 3B umfasst die Firmware Zähler 303 zur Ermöglichung von Verfolgungs-Lesezugriffen auf Gruppen oder Untergruppen von Speicherzellen und Logik 305 zum Umgang mit der Verlagerung von Daten auf der Basis der Zähler 303, um solche Lese-Störungs-Fehler zu verhindern.
  • Wie oben erwähnt, können wiederholte Einzel-Seitenlesevorgänge über eine Schwelle hinaus ein unkorrigierbares Heißelektronen-ECC-Ereignis in NAND-Vorrichtungen (z.B. sowohl in 2D- als auch in 3D-NAND-Technologie) erzeugen.
  • Herkömmlicherweise würde Firmware Lesezugriffe auf einer Blockebene verfolgen und eine Datenverlagerung als Ergebnis einer Lese-Störung (oder vorzugsweise vor dem Auftreten einer Lese-Störung) auslösen. Unter Verwendung herkömmlicher Techniken wird, wenn eine Datenverlagerung als Ergebnis einer Lese-Störung ausgelöst wird, ein gesamter Block zu einem neuen Zielblock verlagert. Mit größer werdenden QLC-Blöcken ist die Zeit zum Programmieren langsamer. Die Verlagerung eines gesamten Blocks kann deshalb eine signifikante Auswirkung auf die Host-Leistungsfähigkeit verursachen.
  • Man betrachte zum Beispiel ein Beispiel, in dem bei Auslösung der Lese-Störungs-Schwelle für einen QLC-Block der gesamte QLC-Block Daten als Block-Aufruf oder Block-Operation zu einem neuen Ziel-QLC-Block verlagert wird. Durch Verlagern des gesamten Blocks als Block-Aufruf werden etwaige weitere Hostbefehle erst verfolgt, wenn die Verlagerung abgeschlossen ist. Folglich wird die Adressentabelle (L2P-Seitentabelle (logisch zu physisch)) aktualisiert, nachdem die Datenverlagerung abgeschlossen ist, um sicherzustellen, dass jegliche weiteren Host-Lesevorgänge von dem neuen Zielblock aus ausgeführt werden. Obwohl diese Technik sicherstellt, dass die Benutzerdaten in Takt sind, kann sie aufgrund des Hungernlassens des Hosts als Ergebnis des Block-Aufrufs für die Datenverlagerung von einem QLC-Block zu einem anderen QLC-Block zum Erreichen einer Zeitgrenze führen. Ferner hat eine solche Technik eine hohe WA-Auswirkung (Schreibverstärkung), weil der gesamte QLC-Block Daten verlagert wird, selbst wenn einige Seiten nicht betroffen sein können.
  • In einem anderen Beispiel wird bei Auslösung der Lese-Störungs-Schwelle die Datenverlagerung so verteilt, dass der Host nicht hungern gelassen wird. Verteilung der Datenverlagerung stellt sicher, dass die Leistungsfähigkeit während der Datenverlagerung stabil und gleichförmig ist. Die Aktualisierungen an der Adressentabelle können jedoch erst durchgeführt werden, wenn der Ziel-QLC-Block vollständig programmiert ist (z.B. im Fall von Client-SSDS, die keine PLI-Kondensatoren (Bevorstehender-Stromausfall-Kondensatoren) aufweisen). Da die Adressentabelle erst aktualisiert wird, wenn der Block geschlossen ist, werden die Host-Lesevorgänge weiter von dem ursprünglichen Opferblock aus, für den die Leseschwelle erreicht wurde, versorgt. Opferseiten können somit eine hohe Menge an Lesestress aufweisen, was zu Verstößen gegen NAND-Anforderungen und potenziellen Benutzerdatenverlust führt. Diese Technik führt auch zu hoher Schreibverstärkungsauswirkung, weil der gesamte Block Daten verlagert wird, obwohl einige Seiten nicht betroffen sein können.
  • Im Gegensatz dazu können die Leistungsfähigkeits- und Schreibverstärkungsauswirkungen der Minderung von Lese-Störungen vermieden werden, indem nur die Daten an betroffener Wortleitung und benachbarten Wortleitungen zu einem Schnellmedienblock, wie etwa einem SLC-Block, verlagert werden. Zum Beispiel verlagert beim Erreichen der Lese-Störungs-Schwelle für QLC-Blöcke verlagert Firmware Daten, die bei WLn (der Wortleitung, auf der auf diese Seite gehämmert wird), WLn-1 und WLn+1 gespeichert sind, zu einem SLC-Block. In einem Beispiel wird die Adressentabelle (z.B. Tabelle von logisch zu physisch) nach der Datenverlagerung aktualisiert, und nachfolgende Lesevorgänge an denselben LBA (logischen Blockadressen) werden von dem neuen Ort auf dem NAND aus versorgt. In einem Beispiel führt Firmware die Verlagerung der Daten an den drei Wortleitungen als eine Block-Operation aus, so dass keinerlei Hostbefehle versorgt werden, bis die Datenverlagerung abgeschlossen ist. Da die Verlagerung zu SLC-Block erfolgt, wird die Datenverlagerung jedoch relativ schnell abgeschlossen, und der Block-Aufruf führt nicht zu signifikanten Leistungsfähigkeitsauswirkungen oder einem Host-Timeout.
  • In einem Beispiel verfolgt die Firmware, um nur die betroffenen und benachbarten Wortleitungen zu verlagern, um Lese-Störung zu verhindern, die Anzahl der für Untertruppen von Speicherzellen empfangenen Lesevorgänge. Zum Beispiel ist 4 eine Blockdarstellung, die zeigt, wie eine NAND-Vorrichtung und Zähler logisch zu Blöcken und Untergruppen organisiert werden können. Somit zeigt 4 ein Beispiel für die Granularität, auf der Lesezugriffe verfolgt werden können. Das Beispiel in 4 umfasst 4 Bausteine: Baustein 0, Baustein 1, Baustein 2 und Baustein 3. Jeder Baustein umfasst k+1 Blöcke. Ein NAND-Speicherblock ist typischerweise die kleinste löschbare Entität in einem NAND-Flash-Baustein. Ein Superblock ist typischerweise als dieselbe Blockadresse über mehrere Bausteine (z.B. eine selbe Wortleitungsadresse über mehrere NAND-Bausteine) definiert. Jeder Block umfasst n+1 Untergruppen, wobei jede Untergruppe eine oder mehrere Seiten umfasst. In einem Beispiel umfasst die Untergruppe 3 SLC-Seiten, 9 TLC-Seiten oder 12 QLC-Seiten. Somit kann jeder Block abhängig vom Entwurf und der Implementierung eine große Anzahl von Seiten umfassen. Die Firmware kann auch Zähler für Lesezugriffe für verschiedene Granularitäten von Seiten verfolgen und aktualisieren. Das in 4 dargestellte Beispiel zeigt Zähler auf einer Blockebene für jeden Baustein (Kästen 402) und auf einer Untergruppenebene über alle Bausteine hinweg (Kästen 404). Die Zähler auf Bausteinblock-Ebene verzeichnen Lesevorgänge an jeder Seite in einem Block. Die SSGS- bzw. Subebenen-Lesezähler verzeichnen Lesevorgänge an einem kleineren Seitenbereich. In einem Beispiel sollen die Bausteinblock-Ebenen-Lesezähler verteilte Lesevorgänge in einem selben Block verfolgen, während die SSGS-Lesezähler Hammer-Lesestress oder Einzelseiten-Lesestress verfolgen sollen. Es können andere Granularitäten von Zählern verwendet werden, um Lesezugriffe zu verfolgen. In einem Beispiel kann der Lesezugriffs-Zählwert für jede Untergruppe für jeden Baustein getrennt verfolgt werden (statt eines Zählers auf der Untergruppenebene, der alle Bausteine überspannt).
  • Wie oben erwähnt, wurden bei herkömmlichen Techniken gesamte Blöcke verlagert, um Lese-Störung zu verhindern. Lesezugriffe wurden somit auf einer Blockebene verfolgt und Daten wurden aus dem gesamten Block heraus verlagert, sobald eine Schwelle erreicht wurde. Im Gegensatz zur herkömmlichen Technik kann Verfolgung von Zugriffen auf der Untergruppenebene den Transfer nur der betroffenen Wortleitungen ermöglichen und Datentransfers reduzieren. In einem Beispiel werden die Zähler in Firmware (z.B. einer Tabelle, einem Array, einer verknüpften Liste oder einer anderen Datenstruktur) implementiert.
  • 5 zeigt eine beispielhafte Darstellung von Zählern in Form einer „Wärmetabelle“. Eine Wärmetabelle ist eine Datenstruktur zum Verfolgen, welche Untergruppen „heiß“ sind, das heißt, welche Untergruppen eine Anzahl von Lesezugriffen erhalten haben, die eine Schwelle erreicht oder sich nähert. In dem in 5 gezeigten Beispiel werden durch „WLn“ der Blöcke 0 und 2 heiße Wortleitungen repräsentiert, weil mindestens eine Untergruppe aus dieser Wortleitung die Leseschwelle erreicht hat. Keine der Wortleitungen in Block k haben die Schwelle erreicht. „WLn-1“ bezieht sich auf die Wortleitung, die WLn unmittelbar vorhergeht, und „WLn+1“ bezieht sich auf die WL, die WLn unmittelbar folgt. Eine Wärmetabelle kann verfolgen, ob Untergruppen die Schwelle erreicht haben oder nicht (z.B. ist die Schwelle entweder erreicht oder nicht erreicht) oder kann Grade der „Hitze“ verfolgen. Zum Beispiel verfolgt das Beispiel in 5 verschiedene Ebenen von Hitze. Speziell zeigt die Wärmetabelle in 5, dass sich einige Untergruppen der Schwelle nähern (z.B. auf 75% der Schwelle) und andere Untergruppen deutlich unter der Schwelle liegen (z.B. bei weniger als 75% der Schwelle). Das Verfolgen verschiedener Ebenen von Zugriff kann verschiedene Richtlinien für verschiedene Ebenen ermöglichen. Eine Wärmetabelle oder eine andere Datenstruktur kann jedoch als binärer Umschalter verfolgen, ob die Schwelle erreicht worden ist (z.B. entweder gibt „logisch 1“ an, dass die Schwelle erreicht wurde, oder „logisch 0“ gibt an, dass die Schwelle nicht erreicht wurde oder umgekehrt). Durch Verfolgen der Anzahl der Lesezugriffe auf Untergruppen können Daten vor mit Lese-Störung zusammenhängender Datenverfälschung aus den heißen Wortleitungen verlagert werden.
  • Die Wärmetabelle in 5 zeigt einen Zähler für jede SSGS (Segmentierte SGS) oder Untergruppe, ähnlich den Zählern 404 von 4. Jede SSGS überspannt mehrere Bausteine. Das Beispiel in 5 zeigt zwei Bausteine (Baustein 0 und Baustein 1), obwohl die hier beschriebenen Techniken für einen Baustein oder mehr als zwei Bausteine gelten. Jeder Baustein umfasst vier Ebenen (P0, P1, P2 und P3) und k+1 Blöcke (die Blöcke 0, 1 und k sind gezeigt). Jeder Block umfasst mehrere Untergruppen, wobei jede Untergruppe mehrere Seiten umfasst. Jede Wortleitung umfasst drei Untergruppen, andere Beispiele können jedoch weniger oder mehr als drei Untergruppen umfassen. Die in 5 gezeigten Gruppierungen sind nicht einschränkende Beispiele; die hier beschriebenen Techniken gelten für vielfältige Gruppierungen und logische Segmentierung von Speicher.
  • Firmware unterhält einen Zählwert oder Zähler von Lesezugriffen für jede Untergruppe (z.B. SSGS). Wenn die Speichervorrichtung eine Leseanforderung für eine bestimmte Untergruppe empfängt, aktualisiert (z.B. inkrementiert) Firmware den Zähler für diese Untergruppe. Firmware bestimmt dann, ob der Zählwert für die Untergruppe die Schwelle erreicht (oder überschritten) hat. Zusätzlich zu einem Zähler sind in einem Beispiel ein oder mehrere Bit in der Datenstruktur enthalten, um zu verfolgen, ob eine Untergruppe oder Wortleitung die Leseschwelle erreicht hat. In einem Beispiel, in dem Grade der Hitze verfolgt werden, können mehrere Bit für jede Untergruppe oder jede Wortleitung oder beides vorgesehen werden, um die Hitzeebene anzugeben. Wenn eine oder mehrere der Untergruppen in einer Wortleitung die Schwelle erreicht haben, wird eine Datenverlagerung ausgelöst, um die Daten von der heißen Wortleitung an dem QLC-Block zu einem SLC-Block zu verlagern.
  • Obwohl die Lesezählerschwelle für benachbarte Wortleitungen nicht erreicht worden sein kann, können die benachbarten Wortleitungen den maximalen Gate-Stress (potenziell sogar noch mehr Gate-Stress als die heiße Wortleitung) erfahren und können deshalb empfindlicher für Lese-Störung als die Ziel-WLn sein. Daten an Wortleitungen vor und nach der heißen Wortleitung werden deshalb auch zu dem SLC-Block verlagert. Wenn zum Beispiel WLn die Leseschwelle erreicht hat, wie für Block 0 in 5 gezeigt, werden auch WLn-1 und WLn+1 von dem QLC-Block zu dem SLC-Block verlagert. Obwohl sich die vorliegenden Beispiele im Allgemeinen auf die Verlagerung von zwei benachbarten Wortleitungen beziehen, werden in einem Beispiel mehr als zwei benachbarte Wortleitungen, aber weniger als der gesamte Block, verlagert (z.B. können die Wortleitungen WLn-2, WLn-1, WLn+1, WLn+2 usw. zusätzlich zur heißen Wortleitung verlagert werden). Im Gegensatz zu herkömmlichen Techniken wird somit eine kleinere Menge an Daten transferiert, um Lese-Störungs-Fehler zu verhindern. Da eine kleinere Menge an Daten transferiert wird, können die Daten ferner zu einem SLC-Block verlagert werden. Verlagerung der Daten zu einem SLC-Block ist viel schneller und weniger fehleranfällig als Verlagern der Daten zu einem anderen QLC-Block. Deshalb wird die Datenverlagerung schnell abgeschlossen und verhindert, dass sich signifikante Leistungsfähigkeitstreffer aus der Lese-Störungs-Verhinderung ergeben.
  • 6 ist ein Flussdiagramm eines Beispiels für ein Verfahren zum Verhindern von Lese-Störung. In einem Beispiel wird das Verfahren durch Logik einer nichtflüchtigen Speichervorrichtung ausgeführt. In einem solchen Beispiel wird das Verfahren durch Firmware, Mikrocode und/oder Schaltkreise auf einem 3D-NAND-Baustein ausgeführt.
  • Das Verfahren beginnt mit dem Empfangen einer Leseanforderung bei 602. Zum Beispiel empfängt unter Bezugnahme auf 3A die Speichervorrichtung 300 eine Leseanforderung über Schnittstellen 356 und 320 von einem Host 350. Firmware bestimmt dann die Ziel-Untergruppe(n) der Leseanforderung und inkrementiert den/die Zähler für die Ziel-Untergruppe(n) bei 604. Bei anderen Implementierungen könnten die Zähler von einer anfänglichen Zahl bis null herunterzählen, um anzugeben, dass eine Schwelle erreicht ist. In einem solchen Beispiel würden die Zähler bei Empfang einer Leseanforderung für die Ziel-Untergruppe dekrementiert.
  • In einem Beispiel prüft, sobald die entsprechenden Lesezähler aktualisiert sind, die Firmware, ob die Zähler für irgendwelche der Untergruppen größer als eine Schwelle sind. Es könnten verschiedene Richtlinien verwendet werden, um zu prüfen, ob die Leseschwelle für eine bestimmte Untergruppe oder Wortleitung erreicht ist. Zum Beispiel können die Zähler für jede Untergruppe, die durch einen Lesezugriff anvisiert wird, nach dem Lesezugriff geprüft werden. In einem anderen Beispiel können alle Lesezähler mit einer gewissen Häufigkeit geprüft werden, die vorbestimmt ist, programmierbar ist oder auf einem Trigger basiert. Ungeachtet des Timings und der Häufigkeit des Prüfens, ob Lesezugriffszählwerte die Schwelle erreichen, wird, wenn keine der Zähler größer als die Schwelle sind, NEIN-Zweig von 606, das Verfahren dann von Block 602 aus fortgesetzt.
  • Wenn irgendwelche der Zähler größer als die Schwelle sind, JA-Zweig von 606, werden Daten an den Wortleitungen, an denen die Schwelle erreicht wurde, bei 608 verlagert. Zusätzlich können die an zwei oder mehr benachbarten Wortleitungen (z.B. an der vorherigen und nächsten Wortleitung) gespeicherten Daten auch verlagert werden, um Lese-Störung an diesen Wortleitungen zu verhindern und um gewisse Datenkontiguität aufrechtzuerhalten. Im Gegensatz zu herkömmlichen Techniken wird jedoch nicht der gesamte Block verlagert, wenn detektiert wird, dass die Schwelle in dem Block erreicht ist. Die Menge an als Reaktion auf Erreichen der Schwelle verlagerten Daten ist kleiner als der gesamte Block (z.B. eine oder mehrere Wortleitungen von Daten im Block).
  • In einem Beispiel werden die Daten an diesen Wortleitungen zu einem SLC-Block verlagert. In einem solchen Beispiel werden die Daten in zusammenhängende Orte auf dem SLC-Block kopiert, so dass die Daten aus der heißen Wortleitung und benachbarten Wortleitungen zusammenhängend bleiben. Bei dem Verfahren wird dann ein Adressenabbildungszeiger aktualisiert, um nachfolgende Leseanforderungen für die Wortleitung an den SLC-Puffer zu richten. In einem Beispiel können die Adressenabbildungszeiger aktualisiert werden, nachdem die gesamte Datenverlagerung abgeschlossen wird oder nachdem jede Seite in den SLC-Block geschrieben ist. In einem Beispiel, in dem der Abbildungszeiger für den Ziel-SLC-Block aktualisiert wird, nachdem jede Seite geschrieben ist, werden nachfolgende Host-Lesevorgänge aus dem SLC-Block gelesen, obwohl der SLC-Block nicht geschlossen ist.
  • Somit werden bei dem Verfahren nur die heißen Daten und ihre benachbarten Wortleitungen von dem QLC-Block zu dem SLC-Puffer verlagert, ohne alle Daten im QLC-Block zu verlagern. Die Logische-zu-Physische-Seite-Tabelle wird aktualisiert, nachdem die Daten zum SLC verlagert wurden, und wenn der Host Daten anfordert, werden sie aus dem neuen SLC-Block gelesen. Obwohl sich das Beispiel in 6 auf Verlagerung von drei Wortleitungen bezieht, können andere Granularitäten von Daten verlagert werden. Zum Beispiel können die Daten an einer oder mehreren Untergruppen verlagert werden, wenn die Schwelle erreicht ist, statt die gesamte Wortleitung und benachbarte Wortleitungen zu verlagern.
  • Obwohl sich das Beispiel in 6 auf Verlagerung der heißen Daten zu einem SLC-Block bezieht, können zusätzlich andere Beispiele die heißen Daten (z.B. die Wortleitung und benachbarten Wortleitungen) zu einer anderen Art von Speicherblock, wie etwa MLC, TLC, QLC usw., verlagern. Ungeachtet der Art von Speicher, in die die heißen Daten verlagert werden, wird eine kleine Mange an Daten (z.B. einige wenige Wortleitungen) verlagert, ohne den gesamten Block zu verlagern, und deshalb wird die Verlagerung schneller als bei herkömmlichen Techniken abgeschlossen, die Verlagerung des gesamten Blocks erfordern. Verlagerung der heißen Wortleitung und benachbarten Wortleitungen zu einem SLC-Block führt jedoch zu einer weiteren Abnahme der Zeit zum Abschluss der Datenverlagerung, und somit ist die Leistungsfähigkeitsauswirkung für den Host signifikant geringer als bei herkömmlichen Techniken. Das Verfahren weist außerdem eine geringere Schreibverstärkungsauswirkung auf, da nur die betroffenen Wortleitungen verlagert werden, statt den gesamten Superblock zu verlagern. Ferner sind die Daten immer noch sequenziell, weil mehrere aufeinanderfolgende Wortleitungen zu dem SLC-Block verlagert werden.
  • 7A und 7B zeigen Zustandsdiagramme für zwei verschiedene Datenverlagerungsrichtlinien zu Lese-Störungs-Verhinderung. 7A ist ein Beispiel für ein Zustandsdiagramm für eine herkömmliche Datenverlagerungsrichtlinie. In Zustand 702 des Zustandsdiagramms von 7A wurde ein QLC-Block als heißer Datenblock mit von dem aktuellen Quellen-QLC-Block zu einem anderen Ziel-QLC-Block zu verlagernden gültigen Daten identifiziert. Gemäß herkömmlichen Richtlinien wird, wenn irgendeine Untergruppe oder Wortleitung in dem Block heiß ist, der gesamte Block verlagert. Zum Beispiel werden dann alle gültigen Daten aus dem gesamten Quellen-QLC-Block zu einem Ziel-QLC-Block verlagert. Der Automat geht zu Zustand 704 über, während der Block verlagert wird (z.B. während aktuelle Seite, die verlagert wird, kleiner letzte Seit ist). Sobald der gesamte Block erfolgreich verlagert ist, wird die Adressenabbildung aktualisiert, um auf den neuen QLC-Block zu zeigen. Der Automat geht dann zu Zustand 706 über. Die Anzahl der Lesezugriffe auf den neuen QLC-Block wird dann überwacht. Wenn die Anzahl der Lesezugriffe die Schwelle erreicht, wird der Prozess wiederholt und die Daten werden zu einem anderen QLC-Block verlagert. Somit wird bei der durch das Zustandsdiagramm in 7A dargestellten Richtlinie ein gesamter QLC-Block Daten zu einem anderen QLC-Block Daten verlagert.
  • Im Gegensatz dazu zeigt 7B ein Beispiel für ein Zustandsdiagramm, bei dem nur die heiße Wortleitung und benachbarte Wortleitungen zu einem SLC-Block verlagert werden. In Zustand 708 des Zustandsdiagramms von 7B wurde eine Untergruppe eines Blocks als heiß und gültige Daten aufweisend identifiziert. Statt die Daten im gesamten QLC-Block zu verlagern, werden nur gültige Daten an der heißen Wortleitung und der Wortleitung vor und nach der heißen Wortleitung zu einem Ziel-SLC-Block verlagert. Die Adressenabbildung wird dann aktualisiert, um auf den neuen SLC-Block zu zeigen, was das Zustandsdiagramm in den Zustand 710 bringt. Da eine kleinere Menge an Daten verlagert wird und da die Daten nicht zu einem QLC-Block, sondern zu einem SLC-Block verlagert werden, wird die Datenverlagerung viel schneller abgeschlossen als die Datenverlagerung gemäß der Datenverlagerungsrichtlinie in 7A. Die Zeit zum Abschluss der Datenverlagerung und Aktualisierung des Abbildungszeigers kann somit signifikant verringert werden. In einem Beispiel werden die Daten, die verlagert wurden, im SLC-Block gelassen, bis zusätzlicher Platz in dem SLC-Block benötigt wird. Wenn zusätzlicher Platz in dem SLC-Block befreit werden muss, können die verlagerten Wortleitungen zu diesem Zeitpunkt zu einem anderen QLC-Block verlagert werden.
  • 8 gibt eine beispielhafte Abbildung eines Datenverarbeitungssystems 800 zeigt eine beispielhafte Abbildung eines Datenverarbeitungssystems 800 (z.B. eines Smartphone, eines Tablet-Computers, eines Laptop-Computers, eines Desktop-Computers, eines Servercomputers usw.). Wie in 8 zu sehen ist, kann das System 800 einen oder mehrere Prozessoren oder Verarbeitungseinheiten 801 umfassen. Der Prozessor bzw. die Prozessoren 801 können eine oder mehrere Zentralverarbeitungseinheiten (CPUs) umfassen, die jeweils zum Beispiel mehrere Vielzweck-Verarbeitungskerne umfassen können. Der Prozessor bzw. die Prozessoren 801 können auch oder als Alternative eine oder mehrere Grafikverarbeitungseinheiten (GPUs) oder andere Verarbeitungseinheiten umfassen. Der Prozessor bzw. die Prozessoren 801 können Speicherverwaltungslogik (z.B. einen Speichercontroller) und E/A-Steuerlogik umfassen. Der Prozessor bzw. die Prozessoren 801 können den Prozessoren 352 von 3 ähnlich oder gleich diesen sein.
  • Das System 800 umfasst außerdem Speicher 802 (z.B. Systemspeicher), nichtflüchtige Speicherung 804, Kommunikationsschnittstellen 806 und andere Komponenten 808, die ebenfalls Komponenten des Hosts 350 von 3 ähnlich oder gleich diesen sein können. Die anderen Komponenten können zum Beispiel eine Anzeige (z.B. Touchscreen, Flachbildschirm), eine Stromversorgung (z.B. eine Batterie und/oder andere Stromversorgung), Sensoren, Power-Management-Logik oder andere Komponenten umfassen. Die Kommunikationsschnittstellen 806 können Logik und/oder Merkmale zur Unterstützung einer Kommunikationsschnittstelle umfassen. Für diese Beispiele kann die Kommunikationsschnittstelle 806 eine oder mehrere Kommunikationsschnittstellen umfassen, die gemäß verschiedenen Kommunikationsprotokollen oder -standards arbeiten, um über direkte oder Netzwerk-Kommunikationsverbindungen oder -kanäle zu kommunizieren. Direkte Kommunikation kann über Verwendung von Kommunikationsprotokollen oder -standards erfolgen, die in einem oder mehreren Industriestandards (einschließlich Nachfolger und Varianten) beschrieben werden, wie etwa die der PCIe-Spezifikation zugeordneten. Netzwerkkommunikation kann über Verwendung von Kommunikationsprotokollen oder -standard erfolgen, wie etwa der in einem oder mehreren Standards, die durch IEEE verbreitet werden, beschriebenen. Ein solcher Ethernet-Standard wäre zum Beispiel IEEE 802.3. Netzwerkkommunikation kann auch gemäß einer oder mehreren OpenFlow-Spezifikationen erfolgen, wie etwa der OpenFlow-Switch-Spezifikation. Andere Beispiele für Kommunikationsschnittstellen wären etwa eine lokale verdrahtete Punkt-zu-Punkt-Verbindungsschnittstelle (z.B. USB), eine drahtlose lokale Netzwerkschnittstelle (z.B. WiFi), eine drahtlose Punkt-zu-Punkt-Verbindungsschnittstelle (z.B. Bluetooth), eine Schnittstelle des Global Positioning System und/oder andere Schnittstellen.
  • Das Datenverarbeitungssystem umfasst auch nichtflüchtige Speicherung 804, die die Massenspeicherungskomponente des Systems sein kann. Die nichtflüchtige Speicherung 804 kann der oben beschriebenen Speicherungsvorrichtung 300 von 3 ähnlich oder gleich sein oder diese umfassen. Die nichtflüchtige Speicherung 804 kann ein Solid-State-Laufwerk (SSD), ein DIMM (Dual In-Line Memory Module) oder eine andere nichtflüchtige Speicherung umfassen. Die nichtflüchtige Speicherung 804 kann byte- oder blockadressierbare Arten von nichtflüchtigem Speicher mit einer dreidimensionalen (3D-) Kreuzpunkt-Speicherstruktur sein, die Chalcogenid-Phasenänderungsmaterial umfasst. Nichtflüchtige Arten von Speicher umfassen auch andere Arten von byte- oder blockadressierbarem nichtflüchtigem Speicher, wie etwa, aber ohne Beschränkung darauf, Mehrschwellenpegel-NAND-Flash-Speicher (z. B. 3D-NAND-Flash-Speicher), NOR-Flash-Speicher, Einzel- oder Mehrpegel-Phasenänderungsspeicher (PCM), resistiven Speicher, Nanowire-Speicher, ferroelektrischen Transistor-Direktzugriffsspeicher (FeTRAM), magnetoresistiven Direktzugriffsspeicher (MRAM), der Memristor-Technologie enthält, Spin-Transfer-Torque-MRAM (STT-MRAM) oder eine Kombination beliebiger der obigen. In einem Beispiel kann die nichtflüchtige Speicherung 804 Massenspeicherung umfassen, die aus einem oder mehreren SSDs zusammengesetzt ist. SSDs können aus Flash-Speicherchips zusammengesetzt sein, die in der Lage sind, die hier beschriebenen Lese-Störungs-Verhinderungstechniken zu implementieren.
  • Ausführungsformen der Erfindung können verschiedene Prozesse wie oben dargelegt umfassen. Die Prozesse können in maschinenausführbaren Anweisungen realisiert werden. Die Anweisungen können verwendet werden, um zu bewirken, dass ein Vielzweck- oder Spezialprozessor bestimmte Prozesse ausführt. Als Alternative können diese Prozesse durch spezifische/angepasste Hardwarekomponenten, die fest verdrahtete Logikschaltkreise oder programmierbare Logikschaltkreise (z.B. FPGA, PLD) zum Ausführen der Prozesse enthalten, oder durch eine beliebige Kombination programmierter Computerkomponenten und angepasster Hardwarekomponenten ausgeführt werden.
  • Elemente der vorliegenden Erfindung können auch als ein maschinenlesbares Medium zum Speichern der maschinenausführbaren Anweisungen bereitgestellt werden. Das maschinenlesbare Medium kann, aber ohne Beschränkung darauf, optische Datenträger, CD-ROMs und magnetooptische Datenträger, Flash-Speicher, ROMs, RAMs, EPROMs, EEPROMs, magnetische oder optische Karten, Ausbreitungsmedien oder eine andere Art von Medien/maschinenlesbarem Medium, die bzw. das zum Speichern von elektronischen Anweisungen geeignet sind bzw. ist, umfassen. Zum Beispiel kann die vorliegende Erfindung als ein Computerprogramm heruntergeladen werden, das von einem entfernten Computer (z.B. einem Server) mittels Datensignalen, die in einer Trägerwelle oder einem anderen Ausbreitungsmedium ausgeführt sind, über eine Kommunikationsverbindung (z.B. ein Modem oder eine Netzwerkverbindung) zu einem anfordernden Computer (z.B. einem Client) transferiert werden kann.
  • Hier dargestellte Flussdiagramme geben Beispiele für Sequenzen verschiedener Prozessschritte. Die Flussdiagramme können durch eine Software- oder Firmwareroutine auszuführende Operationen sowie physikalische Operationen angeben. In einem Beispiel kann ein Flussdiagramm den Zustand eines Automaten (FSM) darstellen, der in Hardware, Software oder einer Kombination davon implementiert werden kann. Obwohl sie in einer konkreten Sequenz oder Reihenfolge gezeigt sind, kann, sofern es nicht anders spezifiziert wird, die Reihenfolge der Schritte modifiziert werden. Somit sollen die dargestellten Ausführungsformen lediglich als Beispiel aufgefasst werden, und der Prozess kann in einer anderen Reihenfolge ausgeführt werden und einige Schritte können parallel ausgeführt werden. Außerdem können ein oder mehrere Schritte in verschiedenen Beispielen weggelassen werden; somit sind nicht in jeder Ausführungsform alle Schritte erforderlich. Es sind andere Prozessflüsse möglich.
  • Soweit hier verschiedene Operationen oder Funktionen beschrieben werden, können sie als Softwarecode, Anweisungen, Konfiguration, Daten oder eine Kombination beschrieben oder definiert werden. Der Inhalt kann direkt ausführbar („Objekt“- oder „ausführbare“ Form), Quellcode oder Differenzcode („Delta“- oder „Patch“-Code) sein. Der Softwareinhalt der hier beschriebenen Ausführungsformen kann über einen Herstellungsartikel mit darauf gespeichertem Inhalt oder über ein Verfahren zum Betrieb einer Kommunikationsschnittstelle zum Senden von Daten über die Kommunikationsschnittstelle bereitgestellt werden. Ein maschinenlesbares Speicherungsmedium kann bewirken, dass eine Maschine die beschriebenen Funktionen oder Operationen ausführt, und umfasst jeden Mechanismus, der Informationen in einer Form speichert, die durch eine Maschine (z.B. eine Datenverarbeitungsvorrichtung, ein elektronisches System usw.) zugänglich ist, wie etwa aufzeichnungsfähige/nichtaufzeichnungsfähige Medien (z.B. Nurlesespeicher (ROM), Direktzugriffsspeicher (RAM), magnetische Datenträgerspeicherungsmedien, optische Speicherungsmedien, Flash-Speichervorrichtungen usw.). Eine Kommunikationsschnittstelle umfasst jeden Mechanismus, der eine Schnittstelle zu einem beliebigen fest verdrahteten, drahtlosen, optischen usw. Medium zur Kommunikation mit einer anderen Vorrichtung bereitstellt, wie etwa eine Speicherbusschnittstelle, eine Prozessorbusschnittstelle, eine Internetverbindung, einen Datenträgercontroller usw. Die Kommunikationsschnittstelle kann durch Bereitstellen von Konfigurationsparametern und/oder Senden von Signalen konfiguriert werden, um die Kommunikationsschnittstelle dafür vorzubereiten, ein den Softwareinhalt beschreibendes Datensignal bereitzustellen. Auf die Kommunikationsschnittstelle kann über ein/en oder mehrere Befehle oder Signale, die zu der Kommunikationsschnittstelle gesendet werden, zugegriffen werden.
  • Verschiedene hier beschriebene Komponenten können ein Mittel zum Ausführen der hier beschriebenen Operationen oder Funktionen sein. Jede hier beschriebene Komponente umfasst Software, Hardware oder eine Kombination dieser. Die Komponenten können als Softwaremodule, Hardwaremodule, Spezialhardware (z.B. anwendungsspezifische Hardware, anwendungsspezifische integrierte Schaltungen (ASICs), digitale Signalprozessoren (DSPs) usw.), eingebettete Controller, fest verdrahtete Schaltkreise usw. implementiert werden.
  • Neben dem hier Beschriebenen können verschiedene Modifikationen an den offenbarten Ausführungsformen und Implementierungen der Erfindung vorgenommen werden, ohne von ihrem Schutzumfang abzuweichen. Die vorliegenden Darstellungen und Beispiele sollten deshalb im veranschaulichenden und nicht im einschränkenden Sinne aufgefasst werden. Der Schutzumfang der Erfindung sollte lediglich durch Bezugnahme auf die folgenden Ansprüche gemessen werden.

Claims (25)

  1. Nichtflüchtige Speicherungsvorrichtung, umfassend: ein NAND-Speicherungsarray, das Blöcke von Speicherzellen umfasst; Logik zum: Empfangen einer Leseanforderung zum Zugriff auf eine Wortleitung in einem ersten NAND-Speicherblock, wobei jede Speicherzelle an der Wortleitung zwei oder mehr Bit speichern soll; Detektieren, dass eine Anzahl von Lesevorgängen an der Wortleitung eine Schwelle überschreitet; und Verlagern von an der Wortleitung gespeicherten Daten zu einem SLC-Puffer (Einzelpegelzelle).
  2. Nichtflüchtige Speicherungsvorrichtung nach Anspruch 1, wobei: der erste NAND-Speicherblock ein QLC-NAND-Speicherblock (Quad-Pegel-Zelle) ist.
  3. Nichtflüchtige Speicherungsvorrichtung nach Anspruch 1, wobei die Logik zum Verlagern der Daten Folgendes soll: Verlagern nur der an der Wortleitung und benachbarten Wortleitungen gespeicherten Daten zu dem SLC-Puffer.
  4. Nichtflüchtige Speicherungsvorrichtung nach Anspruch 3, wobei: die benachbarten Wortleitungen an die Wortleitung angrenzen.
  5. Nichtflüchtige Speicherungsvorrichtung nach Anspruch 1, wobei die Logik zum Verlagern der Daten Folgendes soll: Verlagern von an zwei oder mehr benachbarten Wortleitungen gespeicherten Daten, ohne alle in dem ersten NAND-Speicherblock gespeicherten Daten zu verlagern.
  6. Nichtflüchtige Speicherungsvorrichtung nach Anspruch 3, wobei die Logik zum Verlagern der Daten Folgendes soll: Kopieren von an der Wortleitung und den benachbarten Wortleitungen gespeicherten Daten in zusammenhängende Orte im SLC-Puffer.
  7. Nichtflüchtige Speicherungsvorrichtung nach Anspruch 1, wobei die Logik Folgendes soll: Aktualisieren eines Adressenabbildungszeigers, um nachfolgende Leseanforderungen für die Wortleitung an den SLC-Puffer zu richten.
  8. Nichtflüchtige Speicherungsvorrichtung nach Anspruch 7, wobei: die Datenverlagerung zu dem SLC-Puffer eine Block-Operation ist; und die Logik den Adressenabbildungszeiger aktualisieren soll, nachdem jede Seite verlagert ist.
  9. Nichtflüchtige Speicherungsvorrichtung nach Anspruch 1, wobei die Logik zum Detektieren, dass die Anzahl der Lesevorgänge an der Wortleitung eine Schwelle überschreitet, Folgendes soll: Detektieren, dass ein Lesezähler für die Wortleitung die Schwelle überschreitet.
  10. Nichtflüchtige Speicherungsvorrichtung nach Anspruch 9, wobei der Lesezähler Folgendes umfasst: einen Lesezähler für einen Superblock, wobei der Superblock über mehrere NAND-Bausteine hinweg eine selbe Wortleitungsadresse umfasst.
  11. Nichtflüchtige Speicherungsvorrichtung nach Anspruch 1, wobei die nichtflüchtige Speicherungsvorrichtung ein SSD (Solid State Drive) umfasst.
  12. System, umfassend: ein dreidimensionales bzw. 3D-NAND-Array, das Blöcke von NAND-Speicherzellen umfasst; und einen Controller zum Zugriff auf das 3D-NAND-Array; und Logik zum: Detektieren, dass eine Anzahl von Lesevorgängen an einer Wortleitung in einem ersten NAND-Speicherblock eine Schwelle überschreitet, wobei jede Speicherzelle an der Wortleitung zwei oder mehr Bit speichern soll; und Bewirken, dass an der Wortleitung gespeicherte Daten zu einem SLC-Puffer (Einzelpegelzelle) verlagert werden.
  13. System nach Anspruch 12, ferner umfassend: einen Prozessor und/oder eine Stromversorgung und/oder eine Anzeigevorrichtung.
  14. System nach Anspruch 12, wobei: der erste NAND-Speicherblock ein QLC-NAND-Speicherblock (Quad-Pegel-Zelle) ist.
  15. System nach Anspruch 12, wobei die Logik zum Bewirken, dass die an der Wortleitung gespeicherten Daten verlagert werden, Folgendes soll: Bewirken, dass nur die an der Wortleitung und benachbarten Wortleitungen gespeicherten Daten zu dem SLC-Puffer verlagert werden.
  16. System nach Anspruch 15, wobei: die benachbarten Wortleitungen an die Wortleitung angrenzen.
  17. System nach Anspruch 12, wobei die Logik zum Bewirken, dass die an der Wortleitung gespeicherten Daten verlagert werden, Folgendes soll: Bewirken, dass an zwei oder mehr benachbarten Wortleitungen gespeicherte Daten verlagert werden, ohne alle in dem ersten NAND-Speicherblock gespeicherten Daten zu verlagern.
  18. System nach Anspruch 15, wobei die Logik zum Bewirken, dass die an der Wortleitung gespeicherten Daten verlagert werden, Folgendes soll: Bewirken, dass die an der Wortleitung und den benachbarten Wortleitungen gespeicherten Daten in zusammenhängende Orte im SLC-Puffer kopiert werden.
  19. Verfahren, umfassend: Empfangen einer Leseanforderung zum Zugriff auf eine Wortleitung in einem ersten NAND-Speicherblock, wobei jede Speicherzelle an der Wortleitung zwei oder mehr Bit speichern soll; Detektieren, dass eine Anzahl von Lesevorgängen an der Wortleitung eine Schwelle überschreitet; und Verlagern von an der Wortleitung gespeicherten Daten zu einem SLC-Puffer (Einzelpegelzelle).
  20. Verfahren nach Anspruch 19, wobei: der erste NAND-Speicherblock ein QLC-NAND-Speicherblock (Quad-Pegel-Zelle) ist.
  21. Verfahren nach Anspruch 19, wobei Verlagern der Daten Folgendes umfasst: Verlagern nur der an der Wortleitung und benachbarten Wortleitungen gespeicherten Daten zu dem SLC-Puffer.
  22. Verfahren nach Anspruch 21, wobei: die benachbarten Wortleitungen an die Wortleitung angrenzen.
  23. Verfahren nach Anspruch 19, wobei Verlagern der Daten Folgendes umfasst: Verlagern von an zwei oder mehr benachbarten Wortleitungen gespeicherten Daten, ohne alle in dem ersten NAND-Speicherblock gespeicherten Daten zu verlagern.
  24. Verfahren nach Anspruch 21, wobei Verlagern der Daten Folgendes umfasst: Kopieren von an der Wortleitung und den benachbarten Wortleitungen gespeicherten Daten in zusammenhängende Orte im SLC-Puffer.
  25. Verfahren nach Anspruch 19, ferner umfassend: Aktualisieren eines Adressenabbildungszeigers, um nachfolgende Leseanforderungen für die Wortleitung an den SLC-Puffer zu richten.
DE102020130044.1A 2019-12-16 2020-11-13 Techniken zum verhindern von lese-störung in nand-speicher Pending DE102020130044A1 (de)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US16/715,791 US11769557B2 (en) 2019-12-16 2019-12-16 Techniques for preventing read disturb in NAND memory
US16/715,791 2019-12-16

Publications (1)

Publication Number Publication Date
DE102020130044A1 true DE102020130044A1 (de) 2021-06-17

Family

ID=70160367

Family Applications (1)

Application Number Title Priority Date Filing Date
DE102020130044.1A Pending DE102020130044A1 (de) 2019-12-16 2020-11-13 Techniken zum verhindern von lese-störung in nand-speicher

Country Status (4)

Country Link
US (2) US11769557B2 (de)
KR (1) KR20210077586A (de)
CN (1) CN112992206A (de)
DE (1) DE102020130044A1 (de)

Families Citing this family (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10366763B2 (en) * 2017-10-31 2019-07-30 Micron Technology, Inc. Block read count voltage adjustment
US11769557B2 (en) * 2019-12-16 2023-09-26 Intel Corporation Techniques for preventing read disturb in NAND memory
US11205495B1 (en) * 2020-08-07 2021-12-21 Micron Technology, Inc. Read disturb mitigation based on signal and noise characteristics of memory cells collected for read calibration
US11227666B1 (en) * 2020-08-07 2022-01-18 Micron Technology, Inc. Track charge loss based on signal and noise characteristics of memory cells collected in calibration operations
JP2022032569A (ja) * 2020-08-12 2022-02-25 キオクシア株式会社 メモリシステム
US11527280B2 (en) * 2020-08-25 2022-12-13 Microsoft Technology Licensing, Llc Monitoring and mitigation of row disturbance in memory
US11568938B2 (en) 2020-11-03 2023-01-31 Western Digital Technologies, Inc. QLC data programming
US11379304B1 (en) * 2021-01-27 2022-07-05 Micron Technology, Inc. Mitigating read disturb effects in memory devices
KR20230018216A (ko) * 2021-07-29 2023-02-07 삼성전자주식회사 스토리지 장치 및 스토리지 컨트롤러의 동작 방법
CN114220468A (zh) * 2021-12-14 2022-03-22 北京得瑞领新科技有限公司 Nand闪存的数据保护方法及装置、计算机可读介质
US11748195B2 (en) 2022-01-05 2023-09-05 International Business Machines Corporation Detect multifold disturbance and minimize read-disturb errors in NAND flash
US11934685B2 (en) * 2022-01-18 2024-03-19 Micron Technology, Inc. Performing memory access operations based on quad-level cell to single-level cell mapping table
US11853572B2 (en) * 2022-05-05 2023-12-26 Western Digital Technologies, Inc. Encoding-aware data routing
CN114783485B (zh) * 2022-06-21 2022-10-18 阿里云计算有限公司 用于刷新相变存储器的方法及相变存储设备

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11112983B2 (en) * 2019-08-28 2021-09-07 Micron Technology, Inc. Recovery of memory device from a reduced power state
US11769557B2 (en) * 2019-12-16 2023-09-26 Intel Corporation Techniques for preventing read disturb in NAND memory
US11443798B1 (en) * 2021-04-29 2022-09-13 Micron Technology, Inc. High voltage switch with mitigated gate stress

Also Published As

Publication number Publication date
KR20210077586A (ko) 2021-06-25
US20230395166A1 (en) 2023-12-07
CN112992206A (zh) 2021-06-18
US11769557B2 (en) 2023-09-26
US20200118636A1 (en) 2020-04-16

Similar Documents

Publication Publication Date Title
DE102020130044A1 (de) Techniken zum verhindern von lese-störung in nand-speicher
DE102017112013A1 (de) Adaptive Temperatur- und Speicherparameterdrosselung
DE102018115163A1 (de) Routing von datenblöcken während einer thermodrosselung
DE112016004629T5 (de) Datencodiertechniken für eine Vorrichtung
DE102013109235A1 (de) Flash-Speichersystem mit Detektor für anormale Wortleitung und Verfahren zum Erfassen einer anormalen Wortleitung
DE102016009807A1 (de) Korrelieren von physikalischen seitenadressen für soft-decision-dekodierung
DE112018000230T5 (de) System und Verfahren zur spekulativen Befehlsausführung unter Verwendung des Steuerungsspeicherpuffers
DE112016002631T5 (de) Speicherfunktionszustandsüberwachung
DE102021115374A1 (de) Abschwächung des in zonen unterteilten namensraums unter verwendung des unterblock-modus
DE102021114457A1 (de) Abwicklung von lesen in vorrichtungen mit in zonen unterteiltem namensraum
DE112020005502T5 (de) Dynamische überprovisionierungszuweisung für zweckbestimmte blöcke
DE112021000776T5 (de) Verwaltung von schreib-operationen in einer nichtflüchtigen speichervorrichtung unter verwendung eines variablen vor-lese-spannungspegels
DE102019105876A1 (de) Einseitige soft-lesevorgänge
DE102021130481A1 (de) Betriebsverfahren eines Controllers, der konfiguriert ist, eine nichtflüchtige Speichervorrichtung zu steuern, und Betriebsverfahren einer Speicherungsvorrichtung
DE102022102388A1 (de) Topologiebasierte zurückziehung in einem speichersystem
DE112022000468T5 (de) Unterschiedliche schreibpriorisierung in zns-vorrichtungen
DE112020000159T5 (de) Systeme und verfahren zum definieren von speicher-unterblöcken
DE102017120971A1 (de) Pipelineverzögerungsdetektion während des Decodierens durch eine Datenspeichereinrichtung
DE102022101607A1 (de) Verwaltung der hostspeicherpufferzuweisung
DE102021006246A1 (de) Doppelt verschachtelte Programmierung einer Speichervorrichtung in einem Speicher-Untersystem
DE112019007666T5 (de) Schreibpuffersteuerung in einem verwalteten Speichersystem
DE102022102980A1 (de) Operationsstechniken der datenverlagerung
DE102021114317A1 (de) Nichtflüchtige Speichervorrichtung, Betriebsverfahren derselben, Controller zur Steuerung derselben und Speichervorrichtung, welche diese umfasst
DE102022004129A1 (de) Zurückkopier-lösch-befehl zur durchführung einer scan- und leseoperation in einer speichervorrichtung
DE112019007368T5 (de) Speichergerät und verfahren zur überwachung der leistungen eines speichergeräts