DE112015003761T5 - Teilblocklöschung zur datenaktualisierung - Google Patents

Teilblocklöschung zur datenaktualisierung Download PDF

Info

Publication number
DE112015003761T5
DE112015003761T5 DE112015003761.6T DE112015003761T DE112015003761T5 DE 112015003761 T5 DE112015003761 T5 DE 112015003761T5 DE 112015003761 T DE112015003761 T DE 112015003761T DE 112015003761 T5 DE112015003761 T5 DE 112015003761T5
Authority
DE
Germany
Prior art keywords
memory
memory cells
data
word lines
wordline
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Withdrawn
Application number
DE112015003761.6T
Other languages
English (en)
Inventor
Guirong Liang
Zhenming Zhou
Masaaki Higashitani
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.)
SanDisk Technologies LLC
Original Assignee
SanDisk Technologies LLC
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 SanDisk Technologies LLC filed Critical SanDisk Technologies LLC
Publication of DE112015003761T5 publication Critical patent/DE112015003761T5/de
Withdrawn legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/08Error detection or correction by redundancy in data representation, e.g. by using checking codes
    • G06F11/10Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
    • G06F11/1008Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices
    • G06F11/1068Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices in sector programmable memories, e.g. flash disk
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C11/00Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor
    • G11C11/56Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using storage elements with more than two stable states represented by steps, e.g. of voltage, current, phase, frequency
    • G11C11/5621Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using storage elements with more than two stable states represented by steps, e.g. of voltage, current, phase, frequency using charge storage in a floating gate
    • G11C11/5628Programming or writing circuits; Data input circuits
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C16/00Erasable programmable read-only memories
    • G11C16/02Erasable programmable read-only memories electrically programmable
    • G11C16/06Auxiliary circuits, e.g. for writing into memory
    • G11C16/10Programming or data input circuits
    • G11C16/14Circuits for erasing electrically, e.g. erase voltage switching circuits
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C16/00Erasable programmable read-only memories
    • G11C16/02Erasable programmable read-only memories electrically programmable
    • G11C16/06Auxiliary circuits, e.g. for writing into memory
    • G11C16/26Sensing or reading circuits; Data output circuits
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C16/00Erasable programmable read-only memories
    • G11C16/02Erasable programmable read-only memories electrically programmable
    • G11C16/06Auxiliary circuits, e.g. for writing into memory
    • G11C16/34Determination of programming status, e.g. threshold voltage, overprogramming or underprogramming, retention
    • G11C16/3418Disturbance prevention or evaluation; Refreshing of disturbed memory data
    • 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/349Arrangements for evaluating degradation, retention or wearout, e.g. by counting erase cycles
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/08Error detection or correction by redundancy in data representation, e.g. by using checking codes
    • G06F11/10Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
    • G06F11/1008Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices
    • G06F11/1048Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices using arrangements adapted for a specific error detection or correction feature
    • GPHYSICS
    • 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/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
    • 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
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C5/00Details of stores covered by group G11C11/00
    • G11C5/06Arrangements for interconnecting storage elements electrically, e.g. by wiring
    • G11C5/063Voltage and signal distribution in integrated semi-conductor memory access lines, e.g. word-line, bit-line, cross-over resistance, propagation delay
    • HELECTRICITY
    • H10SEMICONDUCTOR DEVICES; ELECTRIC SOLID-STATE DEVICES NOT OTHERWISE PROVIDED FOR
    • H10BELECTRONIC MEMORY DEVICES
    • H10B41/00Electrically erasable-and-programmable ROM [EEPROM] devices comprising floating gates
    • H10B41/30Electrically erasable-and-programmable ROM [EEPROM] devices comprising floating gates characterised by the memory core region
    • H10B41/35Electrically erasable-and-programmable ROM [EEPROM] devices comprising floating gates characterised by the memory core region with a cell select transistor, e.g. NAND

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Theoretical Computer Science (AREA)
  • Quality & Reliability (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Read Only Memory (AREA)
  • Semiconductor Memories (AREA)
  • Non-Volatile Memory (AREA)

Abstract

Es werden Systeme und Verfahren zum Durchführen von Teilblocklöschoperationen bezüglich einer Untermenge von Wortleitungen innerhalb eines Speicherarrays vor dem Durchführen einer Datenaktualisierung oder einer Offener-Block-Programmierung beschrieben. In manchen Fällen können Daten, die in Speicherzellen gespeichert sind, die mit einer Wortleitung mit einer Ausfallbitanzahl oberhalb einer Fehlerschwelle verbunden sind (z. B. mehr als zwei Bitfehler pro Seite oder mehr als drei Bitfehler pro Wortleitung), aktualisiert werden, indem eine Leseoperation bezüglich der Speicherzellen durchgeführt wird, korrigierte Daten für die Speicherzellen erzeugt werden, eine Teilblocklöschoperation bezüglich einer oder mehrerer Wortleitungen einschließlich der Wortleitung durchgeführt wird und die korrigierten Daten dann in die Speicherzellen geschrieben werden. Die eine oder die mehreren Wortleitungen können die Wortleitung mit der Ausfallbitanzahl oberhalb der Fehlerschwelle und eine angrenzende Wortleitung, die an die Wortleitung angrenzt, beinhalten.

Description

  • HINTERGRUND
  • Halbleiterspeicher wird weithin in verschiedenen elektronischen Vorrichtungen, wie etwa Mobiltelefonen, Digitalkameras, PDAs (Personal Digital Assistants), elektronischen Medizingeräten, mobilen Rechnervorrichtungen und nichtmobilen Rechnervorrichtungen, verwendet. Halbleiterspeicher kann nichtflüchtigen oder flüchtigen Speicher umfassen. Ein nichtflüchtiger Speicher ermöglicht es, dass Informationen gespeichert und erhalten werden, selbst wenn der nichtflüchtige Speicher nicht mit einer Energiequelle (z. B. einer Batterie) verbunden ist. Beispiele für nichtflüchtigen Speicher beinhalten Flash-Speicher (z. B. NAND- und NOR-Flash-Speicher) und elektrisch löschbaren programmierbaren Nur-Lese-Speicher (EEPROM: Electrically Erasable Programmable Read-Only Memory).
  • Sowohl Flash-Speicher als auch EEPROM benutzen Floating-Gate-Transistoren. Für jeden Floating-Gate-Transistor ist ein Floating-Gate oberhalb von und isoliert von einem Kanalgebiet des Floating-Gate-Transistors positioniert. Das Kanalgebiet ist zwischen einem Source- und Draingebiet des Floating-Gate-Transistors positioniert. Ein Steuergate ist oberhalb von und isoliert von dem Floating-Gate positioniert. Die Schwellenspannung des Floating-Gate-Transistors kann durch Einstellen der Ladungsmenge, die auf dem Floating-Gate gespeichert wird, gesteuert werden. Die Ladungsmenge auf dem Floating-Gate wird typischerweise unter Verwendung von Fowler-Nordheim-Tunneln oder von Injektion heißer Elektronen gesteuert. Die Fähigkeit, die Schwellenspannung anzupassen, ermöglicht, dass ein Floating-Gate-Transistor als ein nichtflüchtiges Speicherelement oder eine nichtflüchtige Speicherzelle fungiert. In manchen Fällen kann durch Programmieren und Lesen mehrerer Schwellenspannungen oder Schwellenspannungsbereiche mehr als ein Datenbit pro Speicherzelle (d. h. eine Mehrfachpegel- oder Mehrfachzustandsspeicherzelle) bereitgestellt werden.
  • NAND-Flash-Speicherstrukturen ordnen typischerweise mehrere Floating-Gate-Transistoren in Reihe mit und zwischen zwei ausgewählten Gates an. Die in Reihe befindlichen Floating-Gate-Transistoren und die Selektionsgates können als eine NAND-Kette bezeichnet werden. In den vergangenen Jahren wurde NAND-Flash-Speicher skaliert, um Kosten pro Bit zu reduzieren. Jedoch werden viele Gestaltungs- und Prozessherausforderungen gestellt, wenn sich die Prozessgeometrien verkleinern. Diese Herausforderungen beinhalten eine vergrößerte Variabilität von Transistoreigenschaften über Prozess-, Spannungs- und Temperaturvariationen und erhöhte Kopplung von Floating-Gate zu Floating-Gate zwischen angrenzenden Floating-Gate-Transistoren.
  • KURZE BESCHREIBUNG DER ZEICHNUNGEN
  • 1 stellt eine Ausführungsform einer NAND-Kette dar.
  • 2 stellt eine Ausführungsform der NAND-Kette aus 1 unter Verwendung eines entsprechenden Schaltbildes dar.
  • 3A stellt eine Ausführungsform eines Speicherblocks einschließlich mehrerer NAND-Ketten dar.
  • 3B stellt eine Ausführungsform möglicher Schwellenspannungsverteilungen für eine Speicherzelle mit drei Bits pro Zelle dar.
  • 3C stellt eine Ausführungsform einer NAND-Kette während einer Programmieroperation dar.
  • 3D stellt eine Ausführungsform einer NAND-Kette während einer Löschoperation dar.
  • 4A stellt eine Ausführungsform einer vertikalen NAND-Struktur dar.
  • 4B stellt eine Ausführungsform einer Querschnittsansicht entlang Linie X-X aus 4A dar.
  • 5 stellt eine Ausführungsform eines nichtflüchtigen Speichersystems dar.
  • 6 stellt eine Ausführungsform eines Abtastblocks dar.
  • 7A stellt eine Ausführungsform einer Menge von Schwellenspannungsverteilungen für eine Speichervorrichtung mit vier Zuständen dar, in der jedes Speicherelement zwei Datenbits speichert.
  • 7B stellt eine Ausführungsform eines ersten Durchgangs einer Programmiertechnik mit zwei Durchgängen dar.
  • 7C stellt eine Ausführungsform eines zweiten Durchgangs der Programmiertechnik mit zwei Durchgängen dar.
  • 7D stellt eine Ausführungsform eines ersten Durchgangs einer anderen Programmiertechnik mit zwei Durchgängen dar.
  • 7E stellt eine Ausführungsform eines zweiten Durchgangs der Programmiertechnik mit zwei Durchgängen dar.
  • 7F stellt eine Ausführungsform einer Reihe von Programmier- und Verifizierungspulsen dar, die während einer Programmieroperation an eine ausgewählte Wortleitung angelegt werden.
  • 8 ist ein Flussdiagramm, das eine Ausführungsform eines Prozesses zum Durchführen einer Datenaktualisierungsoperation beschreibt.
  • 9A ist ein Flussdiagramm, das eine Ausführungsform eines Prozesses zum Durchführen einer Programmieroperation beschreibt.
  • 9B ist ein Flussdiagramm, das eine alternative Ausführungsform eines Prozesses zum Durchführen einer Programmieroperation beschreibt.
  • AUSFÜHRLICHE BESCHREIBUNG
  • Es wird eine Technologie zum Durchführen von Teilblocklöschoperationen bezüglich einer Untermenge von Wortleitungen innerhalb eines Speicherarrays vor dem Durchführen einer Datenaktualisierung oder -programmierung beschrieben (z. B. kann die Untermenge von Wortleitungen weniger als alle der Wortleitungen in dem Speicherarray umfassen). Das Speicherarray kann verschiedene Speicherstrukturen einschließlich planarer NAND-Strukturen, vertikaler NAND-Strukturen, BiCS-NAND-Strukturen (BiCS: Bit Cost Scalable), 3D-NAND-Strukturen oder 3D-ReRAM-Strukturen umfassen. In manchen Fällen können Daten, die in Speicherzellen gespeichert sind, die mit einer Wortleitung mit einer Ausfallbitanzahl oberhalb einer Fehlerschwelle verbunden sind (z. B. mehr als zwei Bitfehler pro Seite oder mehr als drei Bitfehler pro Wortleitung), aktualisiert werden, indem eine Leseoperation bezüglich der Speicherzellen durchgeführt wird, korrigierte Daten für die Speicherzellen erzeugt werden (z. B. durch Erzeugen der korrigierten Daten unter Verwendung von ECC-Informationen, die den in den Speicherzellen gespeicherten Daten zugeordnet sind), eine Teilblocklöschoperation bezüglich einer oder mehrerer Wortleitungen einschließlich der Wortleitung durchgeführt wird und die korrigierten Daten dann in die Speicherzellen geschrieben werden. Bei einem Beispiel können die eine oder die mehreren Wortleitungen die Wortleitung mit der Ausfallbitanzahl oberhalb der Fehlerschwelle und eine angrenzende Wortleitung, die an die Wortleitung angrenzt (z. B. eine drainseitige Wortleitung oder eine sourceseitige Wortleitung, die neben der Wortleitung angeordnet ist), beinhalten. In diesem Fall können die Daten, die innerhalb von Speicherzellen gespeichert sind, die mit der Wortleitung und der angrenzenden Wortleitung verbunden sind, aktualisiert werden, selbst wenn die Wortleitung einer Ausfallbitanzahl oberhalb der Fehlerschwelle entspricht und die angrenzende Wortleitung nicht einer Ausfallbitanzahl oberhalb der Fehlerschwelle entspricht.
  • Bei manchen Ausführungsformen können die Daten, die in Speicherzellen gespeichert sind, die einer Wortleitung mit einer Bitfehlerrate (BER: Bit-Error-Rate) oder einer Ausfallbitanzahl (FBC: Fail Bit Count) oberhalb einer Fehlerschwelle entsprechen, aktualisiert werden, um die Effekte einer Lesestörung und/oder einer Programmierstörung auf die Datenintegrität der Daten, die in den Speicherzellen gespeichert sind, zu kompensieren. Bei einem Beispiel können während einer Leseoperation, wenn eine Datenseite aus Speicherzellen innerhalb eines Speicherarrays gelesen wird, die Datenseite gepuffert werden und eine Anzahl an Bitfehlern oder eine Ausfallbitanzahl für die Datenseite (z. B. zwei Bitfehler aus einer 1KB- oder 2KB-Seitengröße) basierend auf ECC-Informationen, die der Datenseite zugeordnet sind, bestimmt werden. Die Anzahl an Bitfehlern, die vor dem Durchführen einer Datenaktualisierung zugelassen sein kann, kann von der Anzahl an Bits abhängen, die unter Verwendung der ECC-Informationen korrigiert werden können. Falls die Anzahl an Bitfehlern oder die Ausfallbitanzahl größer als eine Schwellenzahl ist, dann kann eine Datenaktualisierung ausgelöst werden, die veranlasst, dass korrigierte Daten unter Verwendung der ECC-Informationen erzeugt werden und in die Speicherzellen geschrieben werden. In manchen Fällen können eine Wortleitung, die mit den Speicherzellen verbunden ist, und/oder eine oder mehrere andere Wortleitungen innerhalb des Speicherarrays unter Verwendung von Teilblocklöschoperationen gelöscht und reprogrammiert werden. Die Anzahl an Wortleitungen, die gelöscht und reprogrammiert werden, kann basierend auf einer Anzahl an Programmier-/Löschzyklen zum Auslösen der Datenaktualisierung durch die Wortleitung, oder basierend auf einer Anzahl an Programmier-/Löschzyklen für eine Menge einer oder mehrerer Wortleitungen innerhalb eines Speicherarrays oder eines Speicherblocks (z. B. eine Menge von 10 Wortleitungen innerhalb eines Speicherblocks) bestimmt werden.
  • Falls die Wortleitung, die eine Datenaktualisierung auslöst, höchstens eine Aktualisierungsschwellenzahl Mal (z. B. höchstens fünf Mal) gelöscht worden ist, dann kann in manchen Fällen nur die Wortleitung, die die Datenaktualisierung auslöst, reprogrammiert werden. Falls jedoch die Wortleitung, die die Datenaktualisierung auslöst, mehr als die Aktualisierungsschwellenzahl Mal gelöscht worden ist, dann können sowohl die Wortleitung, die die Datenaktualisierung auslöst, als auch eine an die Wortleitung angrenzende Wortleitung (z. B. eine drainseitige Wortleitung) gelöscht und reprogrammiert werden. Falls die Wortleitung, die die Datenaktualisierung auslöst, mehr als die Aktualisierungsschwellenzahl Mal gelöscht worden ist, dann können in manchen Fällen die Wortleitung, die die Datenaktualisierung auslöst, und eine oder mehrere andere Wortleitungen (z. B. drei drainseitige Wortleitungen) gelöscht und reprogrammiert werden. Die Aktualisierungsschwelle kann mit der Zeit basierend auf einer Temperatur, die einem Speicherblock zugeordnet ist, der Anzahl an Programmier-/Löschzyklen, damit die Wortleitung die Datenaktualisierung auslöst, der Anzahl an Programmier-/Löschzyklen für den Speicherblock, der Anzahl vorheriger Datenaktualisierungen, die für die Wortleitung, die die Datenaktualisierung auslöst, stattgefunden haben, oder der Anzahl an Datenaktualisierungen, die für den Speicherblock stattgefunden haben, eingestellt oder angepasst werden. Bei einem Beispiel kann die Aktualisierungsschwelle auf einen ersten Wert eingestellt werden, falls die Anzahl an Teilblocklöschungen für einen Speicherblock höchstens eine erste Anzahl an Zyklen ist (z. B. hatte der Speicherblock höchsten zehn Teilblocklöschungen), und auf einen zweiten Wert, der größer als der erste Wert ist, eingestellt werden, falls die Anzahl an Teilblocklöschungen für den Speicherblock größer als die erste Anzahl an Zyklen ist. Eine Teilblocklöschoperation kann eine Löschoperation umfassen, in der während der Löschoperation weniger als alle der Wortleitungen innerhalb eines Speicherblocks gelöscht werden. Bei einem Beispiel kann eine Teilblocklöschoperation veranlassen, dass Speicherzellen, die mit vier Wortleitungen von insgesamt 48 Wortleitungen innerhalb eines Speicherblocks verbunden sind, gelöscht werden. Eine Teilblocklöschoperation kann eine Löschoperation umfassen, in der während der Löschoperation weniger als alle der Speicherzellen innerhalb eines Speicherblocks gelöscht werden.
  • Eine Teilblocklöschoperation kann durch Vorspannen einer oder mehrerer zu löschender Wortleitungen innerhalb eines Speicherblocks mit 0 V oder einer negativen Spannung, durch Vorspannen einer oder mehrerer anderer nicht zu löschender Wortleitungen innerhalb des Speicherblocks mit einer hohen Spannung (z. B. 15 V oder einer anderen Spannung, die größer als die Spannung ist, die an die eine oder die mehreren zu löschenden Wortleitungen angelegt wird) oder durch Floaten der einen oder der mehreren anderen Wortleitungen und durch Vorspannen einer Wanne (z. B. einer p-Wanne) des Speicherblocks auf eine Löschspannung (z. B. 15 V oder 20 V) durchgeführt werden. Bei einem Beispiel können die eine oder die mehreren zu löschenden Wortleitungen innerhalb des Speicherblocks während der Teilblocklöschoperation mit einem oder mehreren Löschpulsen (die z. B. von 15 V zu 0 V pulsieren) gepulst werden. Bei einem Beispiel kann eine Teillöschoperation veranlassen, dass Speicherzellen, die mit nur einer Wortleitung innerhalb eines Speicherblocks verbunden sind, gelöscht werden. Bei einem anderen Beispiel kann eine Teilblocklöschoperation veranlassen, dass Speicherzellen, die mit einer Menge von Wortleitungen verbunden sind, die weniger als alle der Wortleitungen innerhalb eines Speicherblocks ist, gelöscht werden.
  • Bevor eine Programmieroperation, wie etwa eine Offener-Block-Programmieroperation, bezüglich Speicherzellen, die mit nichtprogrammierten Wortleitungen innerhalb eines offenen Blocks verbunden sind (d. h. eines Speicherblocks, der nichtprogrammierte Wortleitungen enthält, die seit einer letzten Löschoperationen bezüglich der nichtprogrammierten Wortleitungen noch nicht programmiert worden sind), durchgeführt wird, kann bei manchen Ausführungsformen eine Teilblocklöschoperation bezüglich der Speicherzellen, die mit den nichtprogrammierten Wortleitungen verbunden sind, durchgeführt werden. Die Teilblocklöschoperation kann Teil eines Prozesses zum Festigen der Löschverteilungen der Speicherzellen sein, die mit den nichtprogrammierten Wortleitungen verbunden sind. Indem die Teilblocklöschoperation bezüglich der Speicherzellen, die mit den nichtprogrammierten Wortleitungen verbunden sind, durchgeführt wird, kann die Anzahl an Löschzustands- bis A-Zustand-Ausfällen bezüglich der nichtprogrammierten Wortleitungen während der Programmieroperation reduziert werden. Weiterhin kann die Lesezyklusgrenze für die nichtprogrammierten Wortleitungen reduziert oder zurückgesetzt werden, nachdem die Teilblocklöschoperation durchgeführt wurde und bevor ein offener Block geschlossen wird (d.h., nachdem jede Wortleitung in dem Speicherblock programmiert worden ist). Nachdem die Speicherzellen, die mit den nichtprogrammierten Wortleitungen verbunden sind, gelöscht worden sind, können die Speicherzellen während einer Programmieroperation mit neuen Daten programmiert werden, ohne dass die neuen Daten in einen anderen Speicherblock kopiert werden müssen.
  • In manchen Fällen können, bevor eine Programmieroperation bezüglich Speicherzellen, die mit nichtprogrammierten Wortleitungen innerhalb eines Speicherblocks verbunden sind, durchgeführt wird, die nichtprogrammierten Wortleitungen gelesen werden, um eine Anzahl an Ausfallbits für die Speicherzellen oder eine Anzahl an Speicherzellen, die Schwellenspannungen außerhalb der Zielschwellenspannungsverteilung für gelöschte Speicherzellen entsprechen, zu bestimmen. Falls die Anzahl an Ausfallbits oder die Anzahl an Speicherzellen mit Schwellenspannungen außerhalb der Zielschwellenspannungsverteilung für gelöschte Speicherzellen oberhalb einer Schwellenzahl liegt (z. B. mehr als drei Speicherzellen), dann kann eine Teilblocklöschoperation bezüglich der Speicherzellen, die mit den nichtprogrammierten Wortleitungen verbunden sind, durchgeführt werden, bevor die Programmieroperation bezüglich der Speicherzellen durchgeführt wird. Das Verschieben der Schwellenspannungen für die Speicherzellen, die mit den nichtprogrammierten Wortleitungen verbunden sind, kann durch Programmieroperationen und/oder Leseoperationen, die für sourceseitige Wortleitungen stattfinden, verursacht werden. Löschen der Speicherzellen, die mit den nichtprogrammierten Wortleitungen verbunden sind, bevor eine Programmieroperation durchgeführt wird, kann ermöglichen, dass eine maximale Lesezyklusanzahl für die nichtprogrammierten Wortleitungen reduziert oder zurückgesetzt wird. Bei einem Beispiel kann eine Teilblocklöschoperation bezüglich der nichtprogrammierten Wortleitungen durchgeführt werden, falls eine bestimmte Anzahl an Lesevorgängen für den Speicherblock einschließlich der nichtprogrammierten Wortleitungen stattgefunden hat, falls eine bestimmte Anzahl an Lesevorgängen für einen Teil des Speicherblocks stattgefunden hat (z. B. für eine bestimmte Wortleitung innerhalb des Speicherblocks stattgefunden hat) oder falls vor dem Programmieren der nichtprogrammierten Wortleitungen innerhalb des Speicherblocks eine Anzahl an Ausfallbits für die nichtprogrammierten Wortleitungen eine Ausfallbitschwelle überschreitet. Die Ausfallbitschwelle kann mit der Zeit basierend auf einer Temperatur, die dem Speicherblock zugeordnet ist, der Anzahl an Programmier-/Löschzyklen für den Speicherblock oder der Anzahl an Datenaktualisierungen, die für den Speicherblock stattgefunden haben, eingestellt oder angepasst werden.
  • Ein Problem, das NAND-Flash-Speicher betrifft, ist, dass eine Programmierstörung und eine Lesestörung aufgrund der Skalierung schlimmer geworden sind, insbesondere nachdem einige Programmier-/Lesezyklen stattgefunden haben. Ein Vorteil des Durchführens von Teilblocklöschoperationen bezüglich einer Untermenge von Wortleitungen innerhalb eines Speicherarrays, bevor eine Datenaktualisierung durchgeführt wird (z. B. nachdem Daten schon innerhalb von Speicherzellen gespeichert wurden) oder vor dem Programmieren (z. B. bevor Daten innerhalb von Speicherzellen gespeichert wurden), ist, dass die Datenintegrität der innerhalb von Speicherzellen des Speicherarrays gespeicherten Daten verbessert werden kann.
  • Bei einer Ausführungsform kann ein nichtflüchtiges Speichersystem ein oder mehrere zweidimensionale Arrays nichtflüchtiger Speicherzellen beinhalten. Die Speicherzellen innerhalb eines zweidimensionalen Speicherarrays können eine einzige Schicht von Speicherzellen bilden und können mittels Steuerleitungen (z. B. Wortleitungen und Bitleitungen) in der X- und Y-Richtung ausgewählt werden. Bei einer anderen Ausführungsform kann ein nichtflüchtiges Speichersystem ein oder mehrere monolithische dreidimensionale Speicherarrays beinhalten, in denen zwei oder mehr Schichten von Speicherzellen oberhalb eines einzigen Substrats ohne jegliche dazwischenliegende Substrate gebildet sein können. In manchen Fällen kann ein dreidimensionales Speicherarray eine oder mehrere vertikale Spalten von Speicherzellen umfassen, die sich oberhalb und orthogonal zu einem Substrat oder im Wesentlichen orthogonal zu dem Substrat (z. B. innerhalb von 2–5 Grad eines Normalenvektors, der orthogonal zu dem Substrat ist) befinden. Bei einem Beispiel kann ein nichtflüchtiges Speichersystem ein Speicherarray mit vertikalen Bitleitungen oder Bitleitungen, die orthogonal zu einem Halbleitersubstrat angeordnet sind, beinhalten. Das Substrat kann ein Siliciumsubstrat umfassen. Das Speicherarray kann wiederbeschreibbare nichtflüchtige Speicherzellen beinhalten, wobei jede Speicherzelle ein reversibles Widerstandschaltelement beinhaltet, ohne dass sich ein Isolationselement in Reihe mit dem reversiblen Widerstandschaltelement (z. B. keine Diode in Reihe mit dem reversiblen Widerstandschaltelement) befindet.
  • Bei manchen Ausführungsformen kann ein nichtflüchtiges Speichersystem einen nichtflüchtigen Speicher umfassen, der in einer oder mehreren physischen Ebenen von Speicherzellenarrays, die einen über einem Silicium-Substrat angeordneten aktiven Bereich aufweisen, monolithisch gebildet ist. Das nichtflüchtige Speichersystem kann auch eine Schaltungsanordnung beinhalten, die dem Betrieb der Speicherzellen zugeordnet ist (z. B. Decoder, Zustandsmaschinen, Seitenregister oder eine Steuerschaltungsanordnung zum Steuern des Lesens oder Programmierens der Speicherzellen). Die Schaltungsanordnung, die dem Betreib der Speicherzellen zugeordnet ist, kann sich oberhalb des Substrats befinden oder sich innerhalb des Substrats befinden.
  • Bei manchen Ausführungsformen kann ein nichtflüchtiges Speichersystem ein monolithisches dreidimensionales Speicherarray beinhalten. Das monolithische dreidimensionale Speicherarray kann eine oder mehrere Ebenen von Speicherzellen beinhalten. Jede Speicherzelle innerhalb einer ersten Ebene der einen oder mehreren Ebenen von Speicherzellen kann einen aktiven Bereich beinhalten, der sich oberhalb eines Substrats (z. B. oberhalb eines Einkristallsubstrats oder eines kristallinen Siliciumsubstrats) befindet. Bei einem Beispiel kann der aktive Bereich einen Halbleiterübergang (z. B. einen p-n-Übergang) beinhalten. Der aktive Bereich kann einen Teil eines Source- oder Draingebiets eines Transistors beinhalten. Bei einem anderen Beispiel kann der aktive Bereich ein Kanalgebiet eines Transistors beinhalten.
  • 1 stellt eine Ausführungsform einer NAND-Kette 90 dar. 2 stellt eine Ausführungsform der NAND-Kette aus 1 unter Verwendung eines entsprechenden Schaltbildes dar. Wie dargestellt, beinhaltet die NAND-Kette 90 vier Transistoren 100, 102, 104 und 106, die sich in Reihe zwischen einem ersten Selektionsgate 120 (d. h. einem drainseitigen Selektionsgate) und einem zweiten Selektionsgate 122 (d. h. einem sourceseitigen Selektionsgate) befinden. Selektionsgate 120 verbindet die NAND-Kette 90 mit einer Bitleitung 126. Selektionsgate 122 verbindet die NAND-Kette 90 mit einer Sourceleitung 128. Selektionsgate 120 wird durch Anlegen der geeigneten Spannung an Steuergate 120CG gesteuert (d. h. mittels Selektionsleitung SGD aus 2). Selektionsgate 122 wird durch Anlegen der geeigneten Spannung an Steuergate 122CG gesteuert (d. h. mittels Selektionsleitung SGS aus 2). Jeder der Transistoren 100, 102, 104 und 106 beinhaltet ein Steuergate und ein Floating-Gate. Zum Beispiel beinhaltet Transistor 100 Steuergate 100CG und Floating-Gate 100FG, beinhaltet Transistor 102 Steuergate 102CG und Floating Gate 102FG, beinhaltet Transistor 104 Steuergate 104CG und Floating-Gate 104FG und beinhaltet Transistor 106 Steuergate 106CG und Floating-Gate 106FG. Steuergates 100CG, 102CG, 104CG und 106CG sind jeweils mit Wortleitungen WL3, WL2, WL1 und WL0 verbunden.
  • Es ist zu beachten, dass, obwohl 1 und 2 vier Floating-Gate-Transistoren in der NAND-Kette zeigen, die Verwendung von vier Floating-Gate-Transistoren nur als ein Beispiel bereitgestellt ist. Eine NAND-Kette kann weniger als oder mehr als vier Floating-Gate-Transistoren (oder Speicherzellen) aufweisen. Zum Beispiel können manche NAND-Ketten 16 Speicherzellen, 32 Speicherzellen, 64 Speicherzellen, 128 Speicherzellen usw. beinhalten. Die Erörterung hier ist nicht auf eine bestimmte Anzahl an Speicherzellen in einer NAND-Kette beschränkt. Eine Ausführungsform verwendet NAND-Ketten mit 66 Speicherzellen, wobei 64 Speicherzellen verwendet werden, um Daten zu speichern, und zwei der Speicherzellen als Dummy-Zellen bezeichnet werden, weil sie keine Daten speichern.
  • Eine typische Architektur für ein Flash-Speicher-System, das eine NAND-Flash-Speicherstruktur verwendet, beinhaltet mehrere NAND-Ketten innerhalb eines Speicherblocks. Ein Speicherblock kann eine Löscheinheit umfassen. In manchen Fällen können die NAND-Ketten innerhalb eines Speicherblocks eine gemeinsame Wanne (z. B. eine p-Wanne) teilen. Jede NAND-Kette kann durch ihr sourceseitiges Selektionsgate (z. B. durch Selektionsleitung SGS gesteuert) mit einer gemeinsamen Sourceleitung verbunden sein und durch ihr drainseitiges Selektionsgate (z. B. durch Selektionsleitung SGD gesteuert) mit ihrer zugeordneten Bitleitung verbunden sein. Typischerweise verläuft jede Bitleitung auf (oder über) ihrer zugeordneten NAND-Kette in einer Richtung senkrecht zu den Wortleitungen und ist mit einem Leseverstärker verbunden.
  • Bei manchen Ausführungsformen können Speicherelemente, die nicht programmiert werden sollen (z. B. Speicherelemente, die zuvor das Programmieren auf einen Zieldatenzustand abgeschlossen haben), während einer Programmieroperation vom Programmieren blockiert oder ausgeschlossen werden, indem zugeordnete Kanalgebiete verstärkt werden (z. B. Selbstverstärkung der Kanalgebiete mittels Wortleitungskopplung). Ein nichtselektiertes Speicherelement (oder eine nichtselektierte NAND-Kette) kann als ein blockiertes oder ausgeschlossenes Speicherelement (oder eine blockierte NAND-Kette) bezeichnet werden, da es vom Programmieren während einer gegebenen Programmierwiederholung einer Programmieroperation blockiert oder ausgeschlossen ist.
  • Obwohl hier eine Technologie beschrieben ist, die NAND-Flash-Speicher verwendet, kann die hier offenbarte Technologie auch auf andere Arten von nichtflüchtigen Speichervorrichtungen und -architekturen angewandt werden (z. B. NOR-Flash-Speicher). Zudem kann die hier beschriebene Technologie, obwohl hier eine Technologie beschrieben ist, die Floating-Gate-Transistoren verwendet, auch auf andere Speichertechnologien, einschließlich jener, die Ladungseinfangen, Phasenwechsel (z. B. Chalkogenidmaterialien) oder Zustandsänderungsmaterialien einsetzen, angewandt werden oder mit diesen verwendet werden.
  • 3A stellt eine Ausführungsform eines Speicherblocks einschließlich mehrerer NAND-Ketten dar. Wie dargestellt, beinhaltet jede NAND-Kette (Y + 1) Speicherzellen. Jede NAND-Kette ist mittels eines drainseitigen Selektionsgates, das durch das drainseitige Selektionssignal SGD gesteuert wird, mit einer Bitleitung aus (X + 1) Bitleitungen auf der Drainseite verbunden (d. h. eine Bitleitung von Bitleitungen BL0–BLX). Jede NAND-Kette ist mittels eines sourceseitigen Selektionsgates, das durch ein sourceseitiges Selektionssignal SGS gesteuert wird, mit einer Sourceleitung (Source) verbunden. Bei einer Ausführungsform können das sourceseitige Selektionsgate, das durch das sourceseitige Selektionssignal SGS gesteuert wird, und das drainseitige Selektionsgate, das durch das drainseitige Selektionssignal SGD gesteuert wird, Transistoren ohne Floating-Gates oder Transistoren, die eine Floating-Gate-Struktur beinhalten, umfassen. Bei manchen Ausführungsformen können die Transistoren innerhalb einer NAND-Kette Transistoren mit einer Ladungseinfangschicht umfassen.
  • Um Platz auf einem Halbleiter-Die zu sparen, können bei manchen Ausführungsformen zwei angrenzende NAND-Ketten (oder eine andere Gruppierung in Speicherzellen) eine gemeinsame Bitleitung teilen (d. h. eine Speicherarchitektur mit geteilter Bitleitung). In manchen Fällen können mehr als zwei NAND-Ketten eine gemeinsame Bitleitung teilen. Bei einem Beispiel kann das Signal SGD durch zwei drainseitige Auswahlsignale SGD1 und SGD2 ersetzt werden. Jede NAND-Kette des Paares würde dann zwei drainseitige Selektionsgates aufweisen, von denen jedes mit einem verschiedenen drainseitigen Selektionssignal der zwei drainseitigen Selektionssignale SGD1 und SGD2 verbunden ist. Eines der zwei drainseitigen Selektionsgates für jede NAND-Kette kann ein Verarmungstransistor sein, wobei seine Schwellenspannung niedriger als 0 Volt ist. Ein mögliches Problem bei der Verwendung von zwei Selektionsgates auf der Drainseite jeder NAND-Kette ist, dass zwei drainseitige Selektionsgates (im Vergleich zu einem drainseitigen Selektionstransistor) mehr Die-Fläche, eine Zunahme der Anzahl an Herstellungsschichten oder eine Zunahme der Höhe einer Speichervorrichtung erfordern können. Daher kann es von einem Standpunkt der Fläche eines integrierten Schaltkreises her vorteilhaft sein, nur ein drainseitiges Selektionsgate für jede NAND-Kette zu verwenden und dann jede NAND-Kette des Paares mit nur einem der zwei drainseitigen Selektionssignalen zu verbinden.
  • Bei einer Ausführungsform kann, wenn eine Speicherzelle, wie etwa eine NAND-Flash-Speicherzelle, programmiert wird, eine Programmierspannung während einer Programmieroperation an das Steuergate der Speicherzelle angelegt werden und kann die entsprechende Bitleitung masseverbunden sein. Diese Programmiervorspannungsbedingungen können verursachen, dass Elektronen mittels feldunterstützten Elektronentunnelns in das Floating-Gate (oder in eine Ladungsspeicherschicht, wie etwa eine Siliciumnitrid-Ladungseinfangschicht) injiziert werden, wodurch die Schwellenspannung der Speicherzelle angehoben wird. Die Programmierspannung, die während einer Programmieroperation an das Steuergate angelegt wird, kann als eine Reihe von Pulsen angelegt werden. In manchen Fällen kann die Stärke der Programmierpulse mit jedem aufeinanderfolgenden Puls um eine vorbestimmte Schrittgröße vergrößert werden. Zwischen Programmierpulsen können eine oder mehrere Verifizierungsoperationen durchgeführt werden. Während der Programmieroperation können Speicherzellen, die ihre beabsichtigten Programmierzustände erreicht haben, vom Programmieren ausgeschlossen und blockiert werden, indem die Kanalgebiete der programmierblockierten Speicherzellen verstärkt werden.
  • Bei einer Ausführungsform können Speicherzellen gelöscht werden, indem die p-Wanne für eine ausreichende Zeitdauer auf eine Löschspannung (z. B. 20 Volt) angehoben wird und die Wortleitungen eines selektierten Blocks von Speicherzellen mit Masse verbunden werden, während die Source- und Bitleitungen floatend sind. In dem Fall einer vertikalen Speichervorrichtung (z. B. BiCS oder einer anderen Art von 3D-NAND) kann der vertikale Kanal in der Speicherkette elektrisch mit dem Substrat an der Unterseite des Speicherlochs (z. B. unterhalb des SGS-Transistors gelegen) verbunden sein (z. B. mittels einer p-Wanne in dem Substrat). Diese Löschvorspannungsbedingungen können verursachen, dass Elektronen von dem Floating-Gate durch das Tunneloxid transferiert werden, wodurch die Schwellenspannung der Speicherzellen innerhalb des selektierten Blocks abgesenkt wird. In manchen Fällen kann eine Löschoperation bezüglich einer gesamten Speicherebene, bezüglich einzelner Blöcke innerhalb einer Speicherebene oder einer anderen Einheit von Speicherzellen durchgeführt werden.
  • Bei manchen Ausführungsformen kann eine selektierte Wortleitung während Verifizierungsoperationen und/oder Leseoperationen mit einer Spannung verbunden (oder vorgespannt) werden, wobei ein Pegel von dieser für jede Lese- und Verifizierungsoperation spezifiziert ist, um zu bestimmen, ob eine Schwellenspannung einer bestimmten Speicherzelle einen solchen Pegel erreicht hat. Nachdem die Wortleitungsspannung angelegt wurde, kann der Leitungsstrom der Speicherzelle gemessen (oder abgetastet) werden, um zu bestimmen, ob die Speicherzelle eine ausreichende Menge Strom als Reaktion auf die an die Wortleitung angelegte Spannung geleitet hat. Falls gemessen wird, dass der Leitungsstrom größer als ein bestimmter Wert ist, dann wird angenommen, dass die Speicherzelle eingeschaltet wurde und dass die an die Wortleitung angelegte Spannung größer als die Schwellenspannung der Speicherzelle ist. Falls nicht gemessen wird, dass der Leitungsstrom größer als der bestimmte Wert ist, dann wird angenommen, dass die Speicherzelle nicht eingeschaltet wurde und dass die an die Wortleitung angelegte Spannung nicht größer als die Schwellenspannung der Speicherzelle ist.
  • Es gibt viele Wege, um den Leitungsstrom einer Speicherzelle während einer Lese- oder Verifizierungsoperation zu messen. Bei einem Beispiel kann der Leitungsstrom einer Speicherzelle durch die Rate gemessen werden, mit der sie einen zugehörigen Kondensator in einem Leseverstärker entlädt oder auflädt. Bei einem anderen Beispiel ermöglicht (oder schafft es nicht, zu ermöglichen) der Leitungsstrom der selektierten Speicherzelle, dass die NAND-Kette, die die Speicherzelle enthielt, eine Spannung an der entsprechenden Bitleitung zu entladen. Die Spannung der Bitleitung (oder die Spannung über einen zugehörigen Kondensator in einem Leseverstärker) kann nach einer Zeitdauer gemessen werden, um zu bestimmen, ob die Bitleitung um eine bestimmte Menge entladen wurde oder nicht.
  • 3B stellt eine Ausführungsform möglicher Schwellenspannungsverteilungen (oder Datenzustände) für eine Speicherzelle mit drei Bits pro Zelle (d.h., die Speicherzelle kann drei Datenbits speichern) dar. Andere Ausführungsformen können jedoch mehr oder weniger als drei Datenbits pro Speicherzelle verwenden (wie etwa z. B. vier oder mehr Datenbits pro Speicherzelle). Am Ende eines erfolgreichen Programmierprozesses (mit Verifizierung) sollten die Schwellenspannungen von Speicherzellen innerhalb einer Speicherseite oder eines Speicherblocks innerhalb einer oder mehrerer Schwellenspannungsverteilungen für programmierte Speicherzellen oder innerhalb einer Verteilung für Schwellenspannungen für gelöschte Speicherzellen, wie jeweils zutreffend, liegen.
  • Wie dargestellt, kann jede Speicherzelle drei Datenbits speichern; daher gibt es acht gültige Datenzustände S0–S7. Bei einer Ausführungsform liegt Datenzustand S0 unterhalb von 0 Volt und liegen Datenzustände S1–S7 oberhalb von 0 Volt. Bei anderen Ausführungsformen liegen alle acht Datenzustände oberhalb von 0 Volt oder können andere Anordnungen implementiert werden. Bei einer Ausführungsform ist die Schwellenspannungsverteilung S0 breiter als Verteilungen S1–S7.
  • Jeder Datenzustand S0–S7 entspricht einem eindeutigen Wert für die drei Bits, die in der Speicherzelle gespeichert sind. Bei einer Ausführungsform gilt: S0 = 111, S1 = 110, S2 = 101, S3 = 100, S4 = 011, S5 = 010, S6 = 001 und S7 = 000. Es können auch andere Zuordnungen von Daten zu den Zuständen S0–S7 verwendet werden. Bei einer Ausführungsform sind alle der Datenbits, die in einer Speicherzelle gespeichert sind, in der gleichen logischen Seite gespeichert. Bei anderen Ausführungsformen entspricht jedes Datenbit, das in einer Speicherzelle gespeichert ist, verschiedenen Seiten. Dementsprechend würde eine Speicherzelle, die drei Datenbits speichert, Daten in einer ersten Seite, einer zweiten Seite und einer dritten Seite beinhalten. Bei manchen Ausführungsformen würden alle der Speicherzellen, die mit derselben Wortleitung verbunden sind, Daten in denselben drei Datenseiten speichern. Bei manchen Ausführungsformen können die Speicherzellen, die mit einer Wortleitung verbunden sind, in verschiedene Mengen von Seiten (z. B. durch ungerade und gerade Bitleitungen) gruppiert werden.
  • Bei manchen Fällen können die Speicherzellen in den Zustand S0 gelöscht werden. Von Zustand S0 können die Speicherzellen in einen beliebigen der Zustände S1–S7 programmiert werden. Programmieren kann durch Anlegen einer Menge von Pulsen mit zunehmenden Größen an die Steuergates der Speicherzellen durchgeführt werden. Zwischen Pulsen kann eine Menge von Verifizierungsoperationen durchgeführt werden, um zu bestimmen, ob die Speicherzellen, die programmiert werden, ihre Zielschwellenspannung erreicht haben (z. B. unter Verwendung von Verifizierungspegeln Vv1, Vv2, Vv3, Vv4, Vv5, Vv6 und Vv7). Speicherzellen, die in Zustand S1 programmiert werden, werden getestet werden, um zu sehen, ob ihre Schwellenspannung Vv1 erreicht hat. Speicherzellen, die in Zustand S2 programmiert werden, werden getestet werden, um zu sehen, ob ihre Schwellenspannung Vv2 erreicht hat. Speicherzellen, die in Zustand S3 programmiert werden, werden getestet werden, um zu sehen, ob ihre Schwellenspannung Vv3 erreicht hat. Speicherzellen, die in Zustand S4 programmiert werden, werden getestet werden, um zu sehen, ob ihre Schwellenspannung Vv4 erreicht hat. Speicherzellen, die in Zustand S5 programmiert werden, werden getestet werden, um zu sehen, ob ihre Schwellenspannung Vv5 erreicht hat. Speicherzellen, die in Zustand S6 programmiert werden, werden getestet werden, um zu sehen, ob ihre Schwellenspannung Vv6 erreicht hat. Speicherzellen, die in Zustand S7 programmiert werden, werden getestet werden, um zu sehen, ob ihre Schwellenspannung Vv7 erreicht hat.
  • Wenn Speicherzellen, die drei Datenbits speichern, gelesen werden, werden mehrere Lesevorgänge an den Lesevergleichspunkten Vr1, Vr2, Vr3, Vr4, Vr5, Vr6 und Vr7 durchgeführt, um zu bestimmen, in welchem Zustand sich die Speicherzellen befinden. Falls sich eine Speicherzelle als Reaktion auf Vr1 einschaltet, dann befindet sie sich im Zustand S0. Falls sich eine Speicherzelle als Reaktion auf Vr2 einschaltet, aber sich nicht als Reaktion auf Vr1 einschaltet, dann befindet sie sich im Zustand S1. Falls sich eine Speicherzelle als Reaktion auf Vr3 einschaltet, aber sich nicht als Reaktion auf Vr2 einschaltet, dann befindet sie sich im Zustand S2. Falls sich eine Speicherzelle als Reaktion auf Vr4 einschaltet, aber sich nicht als Reaktion auf Vr3 einschaltet, dann befindet sie sich im Zustand S3. Falls sich eine Speicherzelle als Reaktion auf Vr5 einschaltet, aber sich nicht als Reaktion auf Vr4 einschaltet, dann befindet sie sich im Zustand S4. Falls sich eine Speicherzelle als Reaktion auf Vr6 einschaltet, aber sich nicht als Reaktion auf Vr5 einschaltet, dann befindet sie sich im Zustand S5. Falls sich eine Speicherzelle als Reaktion auf Vr7 einschaltet, aber sich nicht als Reaktion auf Vr6 einschaltet, dann befindet sie sich im Zustand S6. Falls sich eine Speicherzelle als Reaktion auf Vr7 nicht einschaltet, dann befindet sie sich im Zustand S7.
  • 3C stellt eine Ausführungsform einer NAND-Kette 300 während einer Programmieroperation dar. Wenn ein Speicherelement (z. B. das WL5 zugeordnete Speicherelement 316) der NAND-Kette 300 programmiert wird, kann eine Programmierspannung an die selektierte Wortleitung, die dem Speicherelement zugeordnet ist, angelegt werden und kann eine niedrige Spannung (z. B. Masse) an die Bitleitung, die dem Speicherelement zugeordnet ist, angelegt werden. Wie dargestellt, beinhaltet die NAND-Kette 300 ein sourceseitiges Selektionsgate 306, ein drainseitiges Selektionsgate 308 und acht Wortleitungen WL0–WL7, die oberhalb einer p-Wanne 310 gebildet sind. VSGS kann an das sourceseitige Selektionsgate 306 angelegt werden und VSGD kann an das drainseitige Selektionsgate 308 angelegt werden. Die Bitleitung 302 kann auf VBL vorgespannt sein und die Sourceleitung 304 kann auf VSOURCE vorgespannt sein. Während einer Programmieroperation kann eine Programmierspannung VPGM an die selektierte Wortleitung WL5 angelegt werden, die einem selektierten Speicherelement 316 zugeordnet ist.
  • Bei einem Beispiel für einen Verstärkungsmodus kann, wenn das Speicherelement 316 das selektierte Speicherelement ist, eine relativ niedrige Spannung VLOW (z. B. 2–6 V) an die sourceseitige Wortleitung (WL3) angelegt werden, während eine Isolationsspannung VISO (z. B. 0–4 V) an eine andere sourceseitige Wortleitung (WL2), die als eine Isolationswortleitung bezeichnet wird, angelegt werden kann und eine Durchlassspannung VPASS an die verbleibenden Wortleitungen, die der NAND-Kette 300 zugeordnet sind (in diesem Fall Wortleitungen WL0, WL1, WL4, WL6 und WL7), angelegt werden kann. Während die absoluten Werte von VISO und VLOW über einen relativ großen und teilweise überlappenden Bereich variieren können, kann VISO niedriger als VLOW sein. In manchen Fällen kann VISO niedriger als VLOW sein, die niedriger als VPASS ist, die niedriger als VPGM ist.
  • 3D stellt eine Ausführungsform einer NAND-Kette 300 während einer Löschoperation dar. Die p-Wanne 310 kann während der Löschoperation auf eine Löschspannung (z. B. 20 V) vorgespannt sein, während selektierte Wortleitungen, die zu löschenden Speicherzellen entsprechen, auf 0 V vorgespannt sind. Die Löschoperation kann eine Teilblocklöschoperation umfassen, da nur die Speicherelemente gelöscht werden, die mit Wortleitungen WL5–WL6 verbunden sind, während alle anderen Speicherelemente, die mit Wortleitungen WL0–WL4 und WL7 verbunden sind, nicht gelöscht werden. Die Knoten, die VBL, VSOURCE, VSGS und VSGD entsprechen, können während der Löschoperation auch floatend sein.
  • 4A stellt eine Ausführungsform einer vertikalen NAND-Struktur dar. Die vertikale NAND-Struktur beinhaltet eine vertikale NAND-Kette, die oberhalb des Substrats 424 gebildet ist und so orientiert ist, dass die vertikale NAND-Kette orthogonal zu dem Substrat 424 ist. Die vertikale NAND-Kette kann innerhalb eines vertikalen Speicherlochs angeordnet sein, das durch sich abwechselnde Schichten eines Steuergatematerials (z. B. Wolfram oder Polysilicium) und eines Intergate-Isolatormaterials (z. B. Oxid oder Siliciumoxid) geätzt ist. Wie dargestellt, beinhalten die Schichten von Steuergatematerial Schicht 417 und Schichten 414416 und beinhalten die Schichten von Intergate-Isolatormaterial Schichten 418420. Das Intergate-Isolatormaterial 420 kann oberhalb einer Sourceleitungsschicht 422 (z. B. dotiertes Polysilicium) angeordnet sein, die oberhalb eines Substrats 424 (z. B. eines Siliciumsubstrats) angeordnet sein kann. Bei manchen Fällen kann eine erste Wortleitung (WL1) der Steuergateschicht 414 entsprechen, kann eine zweite Wortleitung (WL0) der Steuergateschicht 415 entsprechen und kann eine sourceseitige Selektionsgateleitung (SGS) der Steuergateschicht 416 entsprechen.
  • Bei einer Ausführungsform können innerhalb des Speicherlochs ein dielektrisches Material 408 (z. B. Oxid oder ein Stapel dielektrischer Schichten, wie etwa Schichten von AL2O3 und SiO2), ein Floating-Gate-Material 410 (z. B. Polysilicium), ein Tunnelschichtmaterial 412 (z. B. ein dünnes Oxid) und ein Kanalschichtmaterial 406 (z. B. nichtdotiertes Polysilicium) innerhalb des Speicherlochs abgeschieden sein und so angeordnet sein, dass sie die vertikale NAND-Kette bilden. Das Tunnelschichtmaterial 412 kann einen Teil eines dielektrischen Mehrschichtstapels, wie etwa eines dielektrischen ONO-Stapels, umfassen, der sich abwechselnde Schichten von Siliciumdioxid („O“) und Siliciumnitrid („N“) beinhaltet. In manchen Fällen kann eine Kernmaterialschicht 404 (z. B. Oxid) innerhalb des Speicherlochs gebildet sein. Bei anderen Fällen kann die Kernmaterialschicht 404 weggelassen sein. Eine Bitleitungskontaktschicht 402 kann an der Oberseite des Speicherlochs gebildet sein und mit dem Kanalschichtmaterial 406 verbunden sein. Das Kanalschichtmaterial 406 kann mit der Sourceleitungsschicht 422 an der Unterseite des Speicherlochs verbunden sein. Dementsprechend ist die Bitleitungskontaktschicht 402 in diesem Fall mit der vertikalen NAND-Kette an der Oberseite des Speicherlochs verbunden und ist die Sourceleitungskontaktschicht 422 mit der vertikalen NAND-Kette an der Unterseite des Speicherlochs verbunden. Bei manchen Ausführungsformen kann das Floating-Gate-Material 410 mit einem Ladungsspeichermaterial oder einem Ladungseinfangmaterial (z. B. Siliciumnitrid) ersetzt sein.
  • 4B stellt eine Ausführungsform einer Querschnittsansicht entlang Linie X-X aus 4A dar. Wie dargestellt, beinhaltet die vertikale NAND-Kette eine innere Kernmaterialschicht 404, die von dem Kanalschichtmaterial 406 umgeben ist, das von dem Tunnelschichtmaterial 412 umgeben ist, das von dem Floating-Gate-Material 410 umgeben ist, das von dem dielektrischen Material 408 umgeben ist, das von der Steuergatematerialschicht 417 umgeben ist. Bei einer Ausführungsform kann 4A eine Querschnittsansicht entlang Linie Y-Y aus 4B darstellen. Bei einer Ausführungsform kann die vertikale NAND-Kette unter Verwendung einer vertikalen zylindrischen Struktur oder einer vertikalen sich verjüngenden zylindrischen Struktur gebildet sein. In diesem Fall können das dielektrische Material 408, das Floating-Gate-Material 410, das Tunnelschichtmaterial 412 und das Kanalschichtmaterial 406 der vertikalen NAND-Kette vertikale ringförmige Strukturen umfassen, die die Kernmaterialschicht 404 umgeben. Bei einer anderen Ausführungsform kann die vertikale NAND-Kette unter Verwendung einer vertikalen Säulenstruktur oder einer vertikalen rechtwinkligen Prismastruktur gebildet sein.
  • 5 stellt eine Ausführungsform eines nichtflüchtigen Speichersystem 596 einschließlich Lese-/Schreibschaltkreisen zum parallelen Lesen und Programmieren einer Seite (oder einer anderen Einheit) von Speicherzellen (z. B. NAND-Mehrfachpegelzellen) dar. Wie dargestellt, beinhaltet ein nichtflüchtiges Speichersystem 596 einen Speicher-Die 598 und eine Steuerung 550. Speicher-Die 598 beinhaltet ein Speicherarray 501 (z. B. ein NAND-Flash-Speicherarray), eine Steuerschaltungsanordnung 510, einen Zeilendecoder 530, einen Spaltendecoder 560 und eine Lese-/Schreibschaltungsanordnung 565. Bei einer Ausführungsform ist der Zugang zu dem Speicherarray 501 durch die verschiedenen peripheren Schaltkreise (z. B. Zeilendecoder oder Spaltendecoder) auf eine symmetrische Weise auf gegenüberliegenden Seiten des Arrays implementiert, so dass die Dichte von Zugangsleitungen und einer Schaltungsanordnung auf jeder Seite um die Hälfte reduziert ist. Das Speicherarray 501 ist durch Wortleitungen mittels eines Zeilendecoders 530 und durch Bitleitungen mittels eines Spaltendecoders 560 adressierbar. Wortleitungen und Bitleitungen sind Beispiele für Speicherarraysteuerleitungen. Die Lese-/Schreibschaltkreise 565 beinhalten mehrere Abtastblöcke 500, die es ermöglichen, dass eine Seite von Speicherelementen parallel gelesen oder programmiert werden kann. In manchen Fällen kann die Steuerung 550 auf dem Speicher-Die 598 integriert sein. Anweisungen und Daten werden zwischen dem Host und der Steuerung 550 mittels Leitungen 520 und zwischen der Steuerung 550 und dem Speicher-Die 598 mittels Leitungen 518 übertragen.
  • In manchen Fällen kann die Steuerung 550 in Verbindung mit der Steuerschaltungsanordnung 510 arbeiten, um Daten von dem Speicherarray 501 zu lesen und/oder in dieses zu schreiben. Bei einem Beispiel können Daten, die in das Speicherarray 501 geschrieben werden sollen, durch Steuerung 550 gepuffert werden und können ECC-Daten (ECC: Error Correcting Code – Fehlerkorrekturcode), die den zu schreibenden Daten entsprechen, erzeugt werden. Die ECC-Daten, die ermöglichen, dass Datenfehler, die während einer Übertragung oder Speicherung auftreten, detektiert und/oder korrigiert werden, können in das Speicherarray 501 geschrieben werden oder in nichtflüchtigem Speicher innerhalb der Steuerung 550 gespeichert werden. Bei einer Ausführungsform können die ECC-Daten erzeugt werden und können Datenfehler durch eine Schaltungsanordnung innerhalb der Steuerung 550 korrigiert werden. Die Steuerung 550 kann die Steuerschaltungsanordnung 510 dazu konfigurieren, verschiedene Speicheroperationen bezüglich des Speicherarrays 501 durchzuführen. Bei einem Beispiel kann ein Host eine Programmieranweisung ausgeben und als Reaktion kann die Steuerung 550 die Steuerschaltungsanordnung dazu konfigurieren, eine Leseoperation durchzuführen (z. B. den Seitenband- oder Overheadbereich zu lesen, der sich am Ende einer Seite befindet, um zu bestätigen, dass die Seite nicht als fehlerhaft markiert wurde und beschrieben werden kann), gefolgt von einer Programmieroperation.
  • Die Steuerschaltungsanordnung 510 konfiguriert die Lese-/Schreibschaltungsanordnung 565 dazu, Speicheroperationen bezüglich des Speicherarrays 501 durchzuführen. Die Steuerschaltungsanordnung 510 beinhaltet eine Zustandsmaschine 512, einen On-Chip-Adressendecoder 514, einen Puffer 511 und ein Leistungssteuermodul 516. Der Puffer 511 kann ein SRAM oder ein Seitenregister zum Speichern einer oder mehrerer Datenseiten umfassen. Die Zustandsmaschine 512 stellt eine Steuerung von Speicheroperationen auf Chipebene bereit. Bei einem Beispiel kann die Zustandsmaschine 512 veranlassen, dass verschiedene Spannungen, die einer bestimmten Speicheroperation (z. B. einer Lese- oder Schreiboperation) entsprechen, an die Steuerleitungen (z. B. selektierte Wortleitungen und nichtselektierte Wortleitungen) innerhalb des Speicherarrays 501 angelegt werden. Die Zustandsmaschine 512 kann eine Steuerlogik zum Steuern von Lese-, Schreib- oder Löschoperationen implementieren. Der On-Chip-Adressendecoder 514 stellt eine Adressenschnittstelle zwischen der von dem Host oder einer Speichersteuerung verwendeten zu der Hardwareadresse, die von den Decodern 530 und 560 verwendet wird, bereit. Das Leistungssteuermodul 516 steuert die Leistung und die Spannungen, die den Wortleitungen und den Bitleitungen während Speicheroperationen zugeführt werden. Bei einer Ausführungsform beinhaltet ein Leistungssteuermodul 516 eine oder mehrere Ladungspumpen, die Spannungen höher als die Versorgungsspannung erzeugen können, und einen oder mehrere Spannungsregler zum Erzeugen verschiedener Spannungen, wie etwa Spannungen, die während Programmier-, Lösch- und Leseoperationen verwendet werden.
  • Bei manchen Ausführungsformen können eine oder mehrere der Komponenten (alleine oder in Kombination) außer dem Speicherarray 501 als ein Verwaltungs- oder Steuerschaltkreis bezeichnet werden. Beispielsweise können ein oder mehrere Verwaltungs- oder Steuerschaltkreise ein beliebiges von oder eine Kombination von der Steuerschaltungsanordnung 510, der Zustandsmaschine 512, den Decodern 530/560, dem Leistungssteuermodul 516, den Abtastblöcken 500, dem Puffer 511, den Lese-/Schreibschaltkreisen 565, der Steuerung 550 und so weiter beinhalten. Der eine oder die mehreren Verwaltungsschaltkreise können eine oder mehrere Speicherarrayoperationen einschließlich Lösch-, Programmier- oder Leseoperationen durchführen oder erleichtern.
  • Der Speicher-Die 598 kann einen Leseschaltkreis, einen Schreibschaltkreis und einen Löschschaltkreis beinhalten. Der Leseschaltkreis, der Schreibschaltkreis und der Löschschaltkreis können Komponenten oder eine Schaltungsanordnung teilen, um eine Steuerlogik zum Durchführen von Lese-, Schreib- oder Löschoperationen bezüglich des Speicherarrays 501 zu implementieren. Der Leseschaltkreis, der Schreibschaltkreis und der Löschschaltkreis können Teil eines oder mehrerer Verwaltungsschaltkreise zum Erleichtern einer oder mehrerer Speicheroperationen einschließlich Lösch-, Programmier- oder Leseoperationen sein.
  • Bei einer Ausführungsform kann Speicherarray 501 in eine große Anzahl an Blöcken (z. B. Blöcke 0–1023, oder eine andere Menge) von Speicherzellen unterteilt sein. Wie es für Flash-Speichersysteme üblich ist, kann der Block die Einheit des Löschens sein. Das heißt, jeder Block kann die minimale Anzahl an Speicherzellen enthalten, die zusammen gelöscht werden. Andere Einheiten des Löschens können ebenfalls verwendet werden. Ein Block enthält eine Menge von NAND-Ketten, auf die mittels Bitleitungen und Wortleitungen zugegriffen wird. Typischerweise teilen sich alle der NAND-Ketten in einem Block eine gemeinsame Menge von Wortleitungen.
  • Jeder Block kann in eine bestimmte Anzahl an Seiten unterteilt sein. Bei einer Ausführungsform kann eine Seite die Einheit des Programmierens sein. Andere Einheiten des Programmierens können ebenfalls verwendet werden. Eine oder mehrere Datenseiten werden typischerweise in einer Zelte von Speicherzellen gespeichert. Zum Beispiel können eine oder mehrere Datenseiten in Speicherzellen gespeichert werden, die mit einer gemeinsamen Wortleitung verbunden sind. Bei einer Ausführungsform wird die Menge von Speicherzellen, die mit einer gemeinsamen Wortleitung verbunden sind, gleichzeitig programmiert. Eine Seite kann einen oder mehrere Sektoren speichern. Ein Sektor kann Nutzerdaten und Overheaddaten (auch Systemdaten genannt) beinhalten. Overheaddaten beinhalten typischerweise Kopfinformationen und Fehlerkorrekturcodes (ECC), die aus den Benutzerdaten des Sektors berechnet wurden. Die Steuerung (oder eine andere Komponente) berechnet die ECC, wenn Daten in das Array geschrieben werden, und kontrolliert sie auch, wenn Daten aus dem Array gelesen werden. Alternativ können die ECC und/oder andere Overheaddaten in unterschiedlichen Seiten, oder sogar unterschiedlichen Blöcken, als die Nutzerdaten, die sie betreffen, gespeichert werden. Ein Nutzerdatensektor ist beträgt typischerweise 512 Bytes, was der Größe eines Sektors in Magnetplattenlaufwerken entspricht. Eine große Anzahl an Seiten, irgendwo oberhalb von 8 Seiten, zum Beispiel bis zu 32, 64, 128 oder mehr Seiten, bildet einen Block. Es können auch verschieden große Blöcke, Seiten und Sektoren verwendet werden.
  • 6 stellt eine Ausführungsform eines Abtastblocks 500, wie etwa Abtastblock 500 in 5, dar. Ein einzelner Abtastblock 500 kann in einen Kernteil, der als ein Abtastmodul 580 bezeichnet wird, und einen gemeinsamen Teil 590 aufgeteilt werden. Bei einer Ausführungsform liegen ein getrenntes Abtastmodul 580 für jede Bitleitung und ein gemeinsamer Teil 590 für eine Menge von mehreren Abtastmodulen 580 vor. Bei einem Beispiel wird ein Abtastblock einen gemeinsamen Teil 590 und acht Abtastmodule 580 beinhalten. Jedes der Abtastmodule in einer Gruppe wird mittels eines Datenbusses 572 mit dem zugeordneten gemeinsamen Teil kommunizieren.
  • Abtastmodul 580 umfasst eine Abtastschaltungsanordnung 570, die bestimmt, ob ein Leitungsstrom in einer verbundenen Bitleitung oberhalb oder unterhalb eines vorbestimmten Schwellenpegels liegt. Abtastmodul 580 beinhaltet auch ein Bitleitungs-Latch 582, das verwendet wird, um eine Spannungsbedingung auf der verbundenen Bitleitung festzulegen. Zum Beispiel kann ein vorbestimmter Zustand, der in dem Bitleitungs-Latch 582 zwischengespeichert ist, dazu führen, dass die verbundene Bitleitung in einen Zustand gezogen wird, der eine Programmierblockierspannung (z. B. 1,5–3 V) bezeichnet.
  • Der gemeinsame Teil 590 umfasst einen Prozessor 592, eine Menge von Daten-Latches 594 und eine E/A-Schnittstelle 596, die zwischen die Menge von Daten-Latches 594 und den Datenbus 520 gekoppelt ist. Prozessor 592 führt Berechnungen durch. Zum Beispiel kann Prozessor 592 die Daten bestimmen, die in dem abgetasteten Speicherelement gespeichert sind, und die bestimmten Daten in der Menge von Daten-Latches speichern. Die Menge von Daten-Latches 594 kann verwendet werden, um Datenbits, die von dem Prozessor 592 während einer Leseoperation bestimmt werden, zu speichern oder um Datenbits, die von dem Datenbus 520 während einer Programmieroperation importiert werden, zu speichern. Die importierten Datenbits repräsentieren Schreibdaten, die in einen Speicherarray, wie etwa Speicherarray 501 in 5, programmiert werden sollen. Die E/A-Schnittstelle 596 stellt eine Schnittstelle zwischen den Daten-Latches 594 und dem Datenbus 520 bereit.
  • Während einer Leseoperation oder einer anderen Speicherelementabtastoperation steuert eine Zustandsmaschine, wie etwa Zustandsmaschine 512 in 5, die Versorgung von verschiedenen Steuergatespannungen für die adressierten Speicherelemente. Wenn es die verschiedenen vordefinierten Steuergatespannungen durchläuft, die den verschiedenen von dem Speicher unterstützten Speicherzuständen entsprechen, kann das Abtastmodul 580 bei einer von diesen Spannungen ausgelöst werden und eine Ausgabe wird mittels des Busses 572 von dem Abtastmodul 580 an den Prozessor 592 geliefert. Zu diesem Punkt bestimmt Prozessor 592 den resultierenden Speicherzustand, indem er das (die) Auslöseereignis(se) des Abtastmoduls und die Informationen über die von der Zustandsmaschine mittels Eingabeleitungen 593 angelegte Steuergatespannung berücksichtigt. Er berechnet dann eine Binärcodierung für den Speicherzustand und speichert die resultierenden Datenbits in Daten-Latches 594. Bei einer anderen Ausführungsform des Kernteils dient der Bitleitungs-Latch 582 sowohl als Latch zum Zwischenspeichern der Ausgabe des Abtastmoduls 580 als auch als Bitleitungs-Latch, wie oben beschrieben.
  • Während einer Programmieroperation werden die zu programmierenden Daten in der Menge von Daten-Latches 594 gespeichert. Die Programmieroperation unter der Steuerung der Zustandsmaschine 512 umfasst eine Reihe von Programmierspannungspulsen, die an die Steuergates der adressierten Speicherelemente angelegt werden. Jedem Programmierpuls folgt ein Abruf (oder Verifizierungsprozess), um zu bestimmen, ob das Speicherelement in den gewünschten Speicherzustand programmiert wurde. Der Prozessor 592 überwacht den Abrufspeicherzustand im Verhältnis zu dem gewünschten Speicherzustand. Wenn die zwei übereinstimmen, stellt der Prozessor 592 den Bitleitungs-Latch 582 so ein, dass veranlasst wird, dass die Bitleitung in einen Zustand gezogen wird, der eine Programmierblockierspannung bezeichnet. Dies blockiert, dass das mit der Bitleitung gekoppelte Speicherelement weiter programmiert wird, selbst wenn Programmierpulse an seinem Steuergate erscheinen. Bei anderen Ausführungsformen lädt der Prozessor ursprünglich den Bitleitungs-Latch 582 auf und die Abtastschaltungsanordnung stellt ihn während des Verifizierungsprozesses auf einen Blockierwert ein.
  • Ein Daten-Latch-Stapel 594 enthält einen Stapel von Daten-Latches, die dem Abtastmodul entsprechen. Bei einer Ausführungsform liegen drei Daten-Latches pro Abtastmodul 580 vor. Die Daten-Latches können als ein Schieberegister implementiert werden, so dass die darin parallel gespeicherten Daten für den Datenbus 520 in serielle Daten umgewandelt werden und umgekehrt. Alle der Daten-Latches, die einem Lese-/Schreibblock entsprechen, können aneinandergehängt werden, um ein Blockschieberegister zu bilden, so dass ein Datenblock durch serielle Übertragung eingegeben oder ausgegeben werden kann. Insbesondere kann die Bank von Lese-/Schreibmodulen so konfiguriert sein, dass jedes von ihrer Menge von Daten-Latches Daten der Reihe nach in den oder aus dem Datenbus schiebt, als wären sie ein Teil eines Schieberegisters für den gesamten Lese-/Schreibblock.
  • 7A stellt eine Ausführungsform einer Menge von Schwellenspannungsverteilungen für eine Speichervorrichtung mit vier Zuständen dar, in der jedes Speicherelement zwei Datenbits speichert. Eine erste Schwellenspannungs(Vth)-Verteilung 700 ist für gelöschte (E-Zustand) Speicherelemente bereitgestellt. Die Vth-Verteilungen 702, 704 und 706 repräsentieren jeweils programmierte Zustände A, B und C. Bei einer Ausführungsform sind die Schwellenspannungen in dem E-Zustand und die Schwellenspannungen in der A-, B- und C-Verteilung positiv. Bei einer anderen Ausführungsform ist die Schwellenspannungsverteilung für den E-Zustand negativ, während die Schwellenspannungsverteilungen für die A-, B- und C-Zustandsverteilung positiv sind.
  • Drei Lesereferenzspannungen Vra, Vrb und Vrc sind auch zum Lesen von Daten aus Speicherelementen bereitgestellt. Durch Testen, ob die Schwellenspannung eines gegebenen Speicherelements oberhalb oder unterhalb von Vra, Vrb und Vrc ist, kann das System den Zustand, d. h. die Programmierbedingung, bestimmen, in dem sich das Speicherelement befindet.
  • Ferner sind drei Verifizierungsreferenzspannungen Vva, Vvb und Vvc bereitgestellt. Wenn Speicherelemente in den A-Zustand, B-Zustand oder C-Zustand programmiert werden, wird das System testen, ob jene Speicherelemente eine Schwellenspannung jeweils größer als oder gleich Vva, Vvb oder Vvc aufweisen.
  • Bei einer Ausführungsform, die als Gesamtreihenprogrammierung bekannt ist, können Speicherelemente direkt aus dem E-Zustand in einen beliebigen der programmierten Zustände A, B oder C programmiert werden. Zum Beispiel kann eine Population von zu programmierenden Speicherelementen erst gelöscht werden, so dass sich alle Speicherelemente in der Population in dem E-Zustand befinden. Eine Reihe von Programmierpulsen, wie etwa in 7F dargestellt, kann dann verwendet werden, um Speicherelemente direkt in Zustände A, B oder C zu programmieren. Während manche Speicherelemente aus dem E-Zustand in den A-Zustand programmiert werden, werden andere Speicherelemente von dem E-Zustand in den B-Zustand und/oder von dem E-Zustand in den C-Zustand programmiert.
  • Eine andere Möglichkeit besteht darin, niedrige und hohe Verifizierungspegel für einen oder mehrere Datenzustände zu verwenden. Zum Beispiel sind VvaL und Vva jeweils ein unterer und ein oberer Verifizierungspegel für den A-Zustand, sind VvbL und Vvb jeweils ein unterer und oberer Verifizierungspegel für den B-Zustand und sind VvcL und Vvc jeweils ein unterer und ein oberer Verifizierungspegel für den C-Zustand. In manchen Fällen wird VvcL nicht verwendet, da eine reduzierte Programmiergenauigkeit für den höchsten Zustand annehmbar sein kann. Während des Programmierens wird, wenn die Vth eines Speicherelements, das in den A-Zustand als Zielzustand programmiert wird, VvaL überschreitet, die Programmiergeschwindigkeit des Speicherelements in einen langsamen Programmiermodus verlangsamt, wie etwa durch Anheben der zugeordneten Bitleitungsspannung auf einen Pegel, z. B. 0,6–0,8 V, der zwischen einem nominalen Programmier- oder nichtblockierten Pegel, z. B. 0 V, und einem vollständig blockierten Pegel, z. B. 4–6 V, liegt. Dies bietet eine größere Genauigkeit durch Vermeiden großer Schrittzunahmen der Schwellenspannung. Wenn die Vth Vva erreicht, ist das Speicherelement von einer weiteren Programmierung ausgeschlossen. Ähnlich wird, wenn die Vth eines Speicherelements, das in den B-Zustand als Zielzustand programmiert wird, VvbL überschreitet, die Programmiergeschwindigkeit des Speicherelements verlangsamt und, wenn Vth Vvb erreicht, wird das Speicherelement von einer weiteren Programmierung ausgeschlossen. Optional wird, wenn die Vth eines Speicherelements, das in den C-Zustand als Zielzustand programmiert wird, VvcL überschreitet, die Programmiergeschwindigkeit des Speicherelements verlangsamt und, wenn Vth Vvc erreicht, wird das Speicherelement von einer weiteren Programmierung ausgeschlossen. Diese Programmiertechnik wurde als Schnelldurchgangsschreiben oder Doppelverifizierungstechnik bezeichnet. Es ist anzumerken, dass bei einem Ansatz Doppelverifizierungspegel für den höchsten Zustand nicht verwendet werden, da ein gewisses Überschwingen für diesen Zustand typischerweise annehmbar ist. Stattdessen können Doppelverifizierungspegel für programmierte Zustände oberhalb des gelöschten Zustands und unterhalb des höchsten Zustands verwendet werden.
  • 7B stellt eine Ausführungsform eines ersten Durchgangs einer Programmiertechnik mit zwei Durchgängen dar. Bei diesem Beispiel speichert ein Speicherelement mit mehreren Zuständen Daten für zwei unterschiedliche Seiten: eine untere Seite und eine obere Seite. Vier Zustände sind durch Wiederholen der Schwellenspannungsverteilungen 700, 702, 704 und 706 aus 7A dargestellt. Diese Zustände und die Bits, die sie repräsentieren, sind Folgende: E-Zustand (11), A-Zustand (01), B-Zustand (00) und C-Zustand (10). Für den E-Zustand speichern beide Seiten eine „1“. Für den A-Zustand speichert die untere Seite eine „1“ und speichert die obere Seite eine „0“. Für den B-Zustand speichern beide Seiten eine „0“. Für den C-Zustand speichert die untere Seite „0“ und speichert die obere Seite „1“. Es ist anzumerken, dass, obwohl jedem der Zustände spezielle Bitmuster zugewiesen wurden, ebenfalls verschiedene Bitmuster zugewiesen werden können.
  • In dem ersten Programmierdurchgang wird die untere Seite für eine selektierte Wortleitung WLn programmiert. Fall die untere Seite Daten von 1 bleiben soll, dann bleibt der Speicherelementzustand in Zustand E (Verteilung 700). Falls die Daten auf 0 programmiert werden sollen, dann wird die Schwellenspannung der Speicherelemente auf WLn so angehoben, dass das Speicherelement auf einen Zwischen(LM oder unterer Mittel-)-Zustand (Verteilung 705) programmiert wird.
  • Bei einer Ausführungsform wird, nachdem ein Speicherelement von dem E-Zustand in den LM-Zustand programmiert wurde, dann sein Nachbarspeicherelement an einer angrenzenden Wortleitung WLn + 1 in der NAND-Kette hinsichtlich seiner unteren Seite in einem jeweiligen ersten Programmierdurchgang der angrenzenden Wortleitung programmiert.
  • 7C stellt eine Ausführungsform eines zweiten Durchgangs der Programmiertechnik mit zwei Durchgängen dar, auf die in 7B Bezug genommen wurde. Die A-Zustandsspeicherelemente werden von der E-Zustandsverteilung 700 in die A-Zustandsverteilung 702 programmiert, die B-Zustandsspeicherelemente werden von der LM-Zustandsverteilung 705 in die B-Zustandsverteilung 704 programmiert und die C-Zustandselemente werden von der LM-Zustandsverteilung 705 in die C-Zustandsverteilung 706 programmiert.
  • 7D stellt eine Ausführungsform eines ersten Durchgangs einer anderen Programmiertechnik mit zwei Durchgängen dar. Bei diesem Beispiel, das als Verschwommen-fein-(oder Grob-fein-)Programmieren bezeichnet wird, werden das A-Zustands-, B-Zustands- und C-Zustandsspeicherelement jeweils von dem E-Zustand jeweils unter Verwendung unterer Verifizierungspegel VvaL, VvbL und VvcL in die Verteilungen 712, 714 und 716 programmiert. Dies ist der verschwommene (oder grobe) Programmierdurchgang. Eine relativ große Programmierspannungsschrittgröße kann zum Beispiel verwendet werden, um die Speicherelemente schnell auf die jeweiligen unteren Verifizierungspegel zu programmieren.
  • 7E stellt eine Ausführungsform eines zweiten Durchgangs der Programmiertechnik mit zwei Durchgängen dar, auf die in 7D Bezug genommen wurde. Die A-Zustands-, B-Zustands und C-Zustandsspeicherelemente werden von den jeweiligen unteren Verteilungen jeweils unter Verwendung der nominalen, oberen Verifizierungspegel Vva, Vvb und Vvc in die jeweiligen endgültigen Verteilungen 702, 704 und 706 programmiert. Dies ist der Feinprogrammierdurchgang. Eine relativ kleine Programmierspannungsschrittgröße kann zum Beispiel verwendet werden, um die Speicherelemente langsam auf die jeweiligen endgültigen Verifizierungspegel zu programmieren, während ein großes Überschwingen vermieden wird.
  • Obwohl die Programmierbeispiele vier Datenzustände und zwei Datenseiten darstellen, kann das hier beschriebene Konzept auf andere Implementierungen mit mehr oder weniger als vier Zuständen und mehr oder weniger als zwei Seiten angewandt werden. Zum Beispiel können Speichervorrichtungen acht oder sechzehn Zustände pro Speicherelement verwenden. Zudem kann in den hier besprochenen Beispielprogrammiertechniken die Vth eines Speicherelements schrittweise angehoben werden, wenn es in einen Zieldatenzustand programmiert wird. Jedoch können Programmiertechniken verwendet werden, in denen die Vth eines Speicherelements schrittweise abgesenkt werden kann, wenn es in einen Zieldatenzustand programmiert wird. Programmiertechniken, die einen Speicherelementstrom messen, können ebenso verwendet werden. Die hier beschriebenen Konzepte können an die verschiedenen Programmiertechniken angepasst werden.
  • 7F stellt eine Ausführungsform einer Reihe von Programmier- und Verifizierungspulsen dar, die während einer Programmieroperation an eine ausgewählte Wortleitung angelegt werden. Eine Programmieroperation kann mehrere Programmverifizierungswiederholungen beinhalten, in denen jede Wiederholung eine oder mehrere Programmierspannungen an die selektierte Wortleitung anlegt, gefolgt von einer oder mehreren Verifizierungsspannungen. Bei einer Ausführungsform können die in einer vorherigen Wiederholung angelegten Programmierspannungen in aufeinanderfolgenden Wiederholungen gesteigert werden. Zudem können die eine oder die mehreren während einer Programmierwiederholung angelengten Spannungen einen ersten Teil, der einen Durchgangsspannungs(Vpass)-Pegel, z. B. 6–8 V, aufweist, gefolgt von einem zweiten Teil mit höchster Amplitude auf einem Programmierpegel, z. B. 12–25 V, beinhalten. Zum Beispiel weisen ein erster, zweiter, dritter und vierter Programmierpuls 790, 792, 794 und 796 jeweils Programmierpegel von Vpgm1, Vpgm2, Vpgm3 und Vpgm4 auf. Eine oder mehrere Verifizierungsspannungen 798, wie etwa Verifizierungsspannungen Vva, Vvb und Vvc, können nach jedem Programmierpuls bereitgestellt werden. In manchen Fällen, folgen auf einen oder mehrere ursprüngliche Programmierpulse nicht Verifizierungspulse, weil es nicht erwartet wird, dass irgendein Speicherelement den niedrigsten Programmierzustand (z. B. A-Zustand) erreicht hat. Anschließend können in manchen Fällen Programmierwiederholungen Verifizierungspulse für den A-Zustand verwenden, gefolgt von Programmierwiederholungen, die Verifizierungspulse für die A-Zustände und die B-Zustände verwenden, gefolgt von Programmierwiederholungen, die Verifizierungspulse für die B-Zustände und die C-Zustände verwenden.
  • 8 ist ein Flussdiagramm, das eine Ausführungsform eines Prozesses zum Durchführen einer Datenaktualisierungsoperation beschreibt. Bei einer Ausführungsform kann der Prozess aus 8 von einem nichtflüchtigen Speichersystem, wie etwa nichtflüchtigem Speichersystem 596 in 5, durchgeführt werden.
  • In Schritt 802 werden Daten von einer Menge von Speicherzellen, die mit einer Wortleitung innerhalb eines Speicherblocks verbunden sind, bestimmt (z. B. können die Daten aus der Menge von Speicherzellen gelesen werden). Der Speicherblock kann eine NAND-Flash-Speicherstruktur, wie etwa eine vertikale NAND-Struktur oder eine BiCS-NAND-Struktur, beinhalten. Die Daten können einer Datenseite (z. B. 1KB oder 2KB von Daten) entsprechen. In Schritt 804 wird eine Ausfallbitanzahl für die Daten bestimmt. Die Ausfallbitanzahl kann einer Anzahl an Bitfehlern entsprechen, die innerhalb der Daten detektiert wurden. Bei einem Beispiel können ein ECC-Code oder ECC-Informationen, der bzw. die den Daten zugeordnet ist bzw. sind, verwendet werden, um die Ausfallbitanzahl oder die Anzahl an Bitfehlern zu bestimmen, die innerhalb der Daten aufgetreten sind.
  • In Schritt 806 wird eine Fehlerschwelle bestimmt. Die Fehlerschwelle kann verwendet werden, um zu bestimmen, wann eine Datenaktualisierungsoperation ausgelöst werden sollte. Bei einer Ausführungsform kann die Fehlerschwelle basierend auf einer Temperatur, die einem Speicherblock zugeordnet ist, der Anzahl an Programmier-/Löschzyklen, damit die Wortleitung die Datenaktualisierung auslöst, der Anzahl an Programmier-/Löschzyklen für den Speicherblock, der Anzahl vorheriger Datenaktualisierungen, die für die Wortleitung, die die Datenaktualisierung auslöst, stattgefunden haben, und/oder der Anzahl an Datenaktualisierungen, die für den Speicherblock stattgefunden haben, bestimmt werden. Die Temperatur, die dem Speicherblock zugeordnet ist, kann mittels eines On-Chip-Temperatursensors erhalten werden. Die Anzahl an Programmier-/Löschzyklen für den Speicherblock kann die Summe aller Teilblocklöschoperationen, die bezüglich des Speicherblocks durchgeführt worden sind, umfassen. Die Anzahl an Datenaktualisierungen, die für den Speicherblock stattgefunden haben, kann die Summe aller Datenaktualisierungen, die bezüglich Wortleitungen innerhalb des Speicherblocks durchgeführt worden sind, umfassen.
  • In manchen Fällen kann die Fehlerschwelle so eingestellt werden, dass sie kleiner als oder gleich einer korrigierbaren Anzahl an Bitfehlern ist. Bei einem Beispiel können ECC-Informationen verwendet werden, um drei Bitfehler innerhalb einer Datenseite zu korrigieren, und kann die Fehlerschwelle auf zwei Bitfehler eingestellt sein. Bei einem Beispiel können ECC-Informationen verwendet werden, um drei Bitfehler innerhalb einer Datenseite zu korrigieren, und kann die Fehlerschwelle auf drei Bitfehler eingestellt sein.
  • Falls die Temperatur, die einem Speicherblock zugeordnet ist, oberhalb einer Temperaturschwelle (z. B. oberhalb von 55 Grad Celsius) liegt, kann dann die Fehlerschwelle bei einer Ausführungsform von einem ersten Wert (z. B. drei Fehler pro Seite) auf einen zweiten Wert, der kleiner als der erste Wert ist (z. B. zwei Fehler pro Seite), verringert werden. Falls die Anzahl an Programmier-/Löschzyklen für die Wortleitung oberhalb einer Programmier-/Löschschwelle liegt (z. B. wurden mehr als fünf Programmier-/Löschzyklen bezüglich der Wortleitung durchgeführt), dann kann die Fehlerschwelle bei einer anderen Ausführungsform von einem ersten Wert (z. B. drei Fehler pro Seite) auf einen zweiten Wert, der kleiner als der erste Wert ist (z. B. ein Fehler pro Seite), verringert werden. Falls die Anzahl an vorherigen Datenaktualisierungen für die Wortleitung oberhalb einer Datenaktualisierungsschwelle liegt (z. B. wurden mehr als zehn Datenaktualisierungen bezüglich der Wortleitung durchgeführt), dann kann die Fehlerschwelle bei einer anderen Ausführungsform von einem ersten Wert (z. B. drei Fehler pro Wortleitung) auf einen zweiten Wert, der kleiner als der erste Wert ist (z. B. zwei Fehler pro Wortleitung), verringert werden.
  • In Schritt 808 wird detektiert, dass die Ausfallbitanzahl größer als die Fehlerschwelle ist. In Schritt 810 werden eine oder mehrere Wortleitungen innerhalb des Speicherblocks als Reaktion auf das Detektieren, dass die Ausfallbitanzahl größer als die Fehlerschwelle ist, identifiziert. Die eine oder die mehreren Wortleitungen können die Wortleitung beinhalten, die die Datenaktualisierung auslöst. Die eine oder die mehreren Wortleitungen können basierend auf einer Anzahl an Programmier-/Löschzyklen für die Wortleitung, die die Datenaktualisierung auslöst, oder basierend auf einer Anzahl von Programmier-/Löschzyklen für die eine oder die mehreren Wortleitungen bestimmt werden. Falls die Wortleitung, die die Datenaktualisierung auslöst, mehr als eine Schwellenzahl Mal (z. B. mehr als fünf Mal) programmiert und gelöscht wurde, dann können die eine oder die mehreren Wortleitungen bei einem Beispiel die Wortleitung, die die Datenaktualisierung auslöst, und eine oder mehrere angrenzende Wortleitungen, die neben der Wortleitung angeordnet sind (z. B. eine angrenzende drainseitige Wortleitung), umfassen.
  • In Schritt 812 werden korrigierte Daten erzeugt, die in die Speicherzellen, die mit der einen oder den mehreren Wortleitungen verbunden sind, programmiert werden sollen. Die korrigierten Daten können unter Verwendung von ECC-Informationen erzeugt werden, die den Daten, die aus der Menge von Speicherzellen gelesen werden, zugeordnet sind. Die ECC-Informationen können verwendet werden, um einen oder mehrere Bitfehler innerhalb der Daten, die aus der Menge an Speicherzellen gelesen werden, zu identifizieren und zu korrigieren. In Schritt 814 wird eine Teilblocklöschoperation bezüglich der Speicherzellen, die mit der einen oder den mehreren Wortleitungen verbunden sind, durchgeführt. Die eine oder die mehreren Wortleitungen können weniger als alle der Wortleitungen in dem Speicherblock umfassen. Bei einem Beispiel können die eine oder die mehreren Wortleitungen die Wortleitung und eine angrenzende Wortleitung, die an die Wortleitung angrenzt (z. B. eine sourceseitige Wortleitung oder eine drainseitige Wortleitung), umfassen. In Schritt 816 werden die korrigierten Daten in die Speicherzellen, die mit der einen oder den mehreren Wortleitungen verbunden sind, programmiert.
  • 9A ist ein Flussdiagramm, das eine Ausführungsform eines Prozesses zum Durchführen einer Programmieroperation beschreibt. Bei einer Ausführungsform kann der Prozess aus 9A von einem nichtflüchtigen Speichersystem, wie etwa dem nichtflüchtigen Speichersystem 596 in 5, durchgeführt werden.
  • In Schritt 902 wird eine Programmieroperation identifiziert, die bezüglich einer Menge von Speicherzellen, die mit einer Wortleitung innerhalb eines Speicherblocks verbunden sind, durchgeführt werden soll. Die Programmieroperation kann mittels einer Speicheroperationsanweisung, die von einer Steuerung eines nichtflüchtigen Speichersystems ausgegeben wird (z. B. eine Programmieranweisung oder eine Leseanweisung), identifiziert werden. In manchen Fällen kann die Programmieroperation, die bezüglich der Menge von Speicherzellen durchgeführt werden soll, Teil einer oder mehrerer Speicheroperationen sein, die der Speicheroperationsanweisung zugeordnet sind.
  • In Schritt 904 werden Daten von der Menge von Speicherzellen vor dem Durchführen der Programmieroperation abgetastet. Die Daten von der Menge von Speicherzellen können verwendet werden, um eine Anzahl der Menge von Speicherzellen zu bestimmen, die Schwellenspannungen außerhalb einer Zielschwellenspannungsverteilung für gelöschte Speicherzellen oder außerhalb eines Schwellenspannungsbereichs für gelöschte Speicherzellen aufweisen. Die Daten von der Menge von Speicherzellen können abgetastet werden, bevor die Menge von Speicherzellen von einem gelöschten Zustand programmiert werden (z. B. wurde keine der Menge von Speicherzellen seit einer vorherigen Löschoperation programmiert). In Schritt 906 wird eine Ausfallbitanzahl für die Daten bestimmt. Die Ausfallbitanzahl kann einer Anzahl an Speicherzellen mit Schwellenspannungen außerhalb eines Schwellenspannungsbereichs für gelöschte Speicherzellen entsprechen. Bei einem Beispiel kann die Ausfallbitanzahl der Gesamtanzahl an Speicherzellen aus der Gesamtmenge von Speicherzellen entsprechen, die eine Schwellenspannung größer als eine bestimmte Spannung, wie etwa 0 V oder 200 mV, aufweisen.
  • In Schritt 908 wird eine Fehlerschwelle bestimmt. Die Fehlerschwelle kann verwendet werden, um zu bestimmen, wann eine Teilblocklöschoperation ausgelöst werden sollte und/oder ein Wiederfestigen einer Löschverteilung durchgeführt werden sollte. Bei einer Ausführungsform kann die Fehlerschwelle basierend auf einer Temperatur, die einem Speicherblock zugeordnet ist, der Anzahl an Programmier-/Löschzyklen für die Wortleitung und/oder der Anzahl an Programmier-/Löschzyklen für den Speicherblock als Ganzes bestimmt werden. Die Temperatur, die dem Speicherblock zugeordnet ist, kann mittels eines On-Chip-Temperatursensors erhalten werden. Die Anzahl an Programmier-/Löschzyklen für den Speicherblock kann die Summe aller Teilblocklöschoperationen, die bezüglich des Speicherblocks durchgeführt worden sind, umfassen.
  • Falls die Temperatur, die einem Speicherblock zugeordnet ist, oberhalb einer Temperaturschwelle (z. B. oberhalb von 85 Grad Celsius) liegt, kann dann die Fehlerschwelle bei einer Ausführungsform von einem ersten Wert (z. B. drei Fehler pro Wortleitung) auf einen zweiten Wert, der kleiner als der erste Wert ist (z. B. zwei Fehler pro Wortleitung), verringert werden. Falls die Anzahl an Programmier-/Löschzyklen für die Wortleitung oberhalb einer Programmier-/Löschschwelle liegt (z. B. wurden mehr als zehn Programmier-/Löschzyklen bezüglich der Wortleitung durchgeführt), dann kann die Fehlerschwelle bei einer anderen Ausführungsform von einem ersten Wert (z. B. vier Fehler pro Wortleitung) auf einen zweiten Wert, der kleiner als der erste Wert ist (z. B. ein Fehler pro Wortleitung), verringert werden.
  • In Schritt 910 wird detektiert, dass die Ausfallbitanzahl größer als die Fehlerschwelle ist. In Schritt 912 werden eine oder mehrere Wortleitungen innerhalb des Speicherblocks als Reaktion auf das Detektieren, dass die Ausfallbitanzahl größer als die Fehlerschwelle ist, identifiziert. Die eine oder die mehreren Wortleitungen können die Wortleitung beinhalten, die die Teilblocklöschoperation auslöst. Die eine oder die mehreren Wortleitungen können basierend auf einer Anzahl an Programmier-/Löschzyklen für die Wortleitung oder basierend auf einer Anzahl von Programmier-/Löschzyklen für die eine oder die mehreren Wortleitungen bestimmt werden. Falls die Wortleitung, die die Teilblocklöschoperation auslöst, mehr als eine Schwellenzahl Mal (z. B. mehr als fünf Mal) programmiert und gelöscht wurde, dann können die eine oder die mehreren Wortleitungen bei einem Beispiel die Wortleitung und eine oder mehrere angrenzende Wortleitungen, die neben der Wortleitung angeordnet sind, umfassen. Falls die Wortleitung, die die Teilblocklöschoperation auslöst, mehr als eine Schwellenzahl Mal (z. B. mehr als zehn Mal) programmiert und gelöscht wurde, dann können die eine oder die mehreren Wortleitungen bei einem anderen Beispiel die Wortleitung und alle drainseitigen Wortleitungen, die zwischen der Wortleitung und dem Steuersignal für das drainseitige Selektionsgate (z. B. SGD) angeordnet sind, umfassen. In Schritt 914 wird eine Teilblocklöschoperation bezüglich Speicherzellen, die mit der einen oder den mehreren Wortleitungen verbunden sind, durchgeführt. Die eine oder die mehreren Wortleitungen können weniger als alle der Wortleitungen innerhalb des Speicherblocks umfassen. In diesem Fall können die Speicherzellen, die mit der einen oder den mehreren Wortleitungen verbunden sind, gelöscht werden, während andere Daten, die in anderen Speicherzellen, die mit anderen Wortleitungen innerhalb des Speicherblocks verbunden sind, gespeichert sind, nicht gelöscht werden. In Schritt 916 wird die Programmieroperation bezüglich der Menge von Speicherzellen, die mit der Wortleitung verbunden sind, anschließend an die Teilblocklöschoperation, die in Schritt 914 durchgeführt wird, durchgeführt. Die Programmieroperation kann Schreiben von Daten in die Menge von Speicherzellen umfassen.
  • 9B ist ein Flussdiagramm, das eine alternative Ausführungsform eines Prozesses zum Durchführen einer Programmieroperation beschreibt. Bei einer Ausführungsform kann der Prozess aus 9B von einem nichtflüchtigen Speichersystem, wie etwa dem nichtflüchtigen Speichersystem 596 in 5, durchgeführt werden.
  • In Schritt 922 wird detektiert, dass eine Programmieroperation bezüglich einer Menge von Speicherzellen, die mit einer Wortleitung innerhalb eines Speicherblocks verbunden sind, durchgeführt werden soll. Die Programmieroperation kann detektiert oder identifiziert werden, bevor sie von einer Steuerung durchgeführt wird, die Speicheroperationen steuert, die bezüglich eines Speicherarrays durchgeführt werden. In manchen Fällen kann die Programmieroperation, die bezüglich der Menge an Speicherzellen durchgeführt werden soll, Teil einer oder mehrerer Speicheroperationen sein, die bezüglich des Speicherarrays durchgeführt werden.
  • In Schritt 924 wird eine Anzahl an Programmier-/Löschzyklen, die der Menge von Speicherzellen zugeordnet sind, bestimmt. Die Anzahl an Programmier-/Löschzyklen kann der Gesamtanzahl an Programmier-/Löschzyklen, die die Menge von Speicherzellen seit ihrer Herstellung erfahren hat, entsprechen. Falls die Menge von Speicherzellen seit ihrer Herstellung zehn Löschoperationen erfahren hat, dann kann die Anzahl an Programmier-/Löschzyklen bei einem Beispiel zehn sein. In Schritt 926 wird eine Schwellenzahl an Lesezyklen basierend auf der Anzahl an Programmier-/Löschzyklen, die der Menge von Speicherzellen zugeordnet sind, bestimmt. Falls die Anzahl an Programmier-/Löschzyklen, die der Menge von Speicherzellen zugeordnet sind, größer als fünf (oder eine vorbestimmte Zahl) ist, dann kann die Schwellenzahl an Lesezyklen bei einem Beispiel eine erste Anzahl an Lesezyklen (z. B. fünfzehn Lesezyklen) umfassen; andernfalls kann dann, falls die Anzahl an Programmier-/Löschzyklen, die der Menge von Speicherzellen zugeordnet sind, nicht größer als fünf ist, die Schwellenzahl an Lesezyklen dann eine zweite Anzahl an Lesezyklen, die größer als die erste Anzahl an Lesezyklen ist (z. B. dreißig Lesezyklen), umfassen.
  • In Schritt 928 wird eine Anzahl an Lesezyklen für die Menge von Speicherzellen bestimmt. Bei einem Beispiel kann die Anzahl an Lesezyklen für die Menge von Speicherzellen die Gesamtanzahl an Lesezyklen umfassen, die bezüglich der Menge von Speicherzellen durchgeführt wurden, seit die Menge von Speicherzellen zuletzt gelöscht wurde (z. B. seit die letzte Teilblocklöschoperation bezüglich der Menge von Speicherzellen durchgeführt wurde). In Schritt 930 wird detektiert, dass die Anzahl an Lesezyklen für die Menge von Speicherzellen größer als die Schwellenzahl an Lesezyklen ist.
  • In Schritt 932 werden eine oder mehrere Wortleitungen innerhalb des Speicherblocks als Reaktion auf das Detektieren, dass die Anzahl an Lesezyklen für die Menge von Speicherzellen größer als die Schwellenzahl an Lesezyklen ist, identifiziert. Die eine oder die mehreren Wortleitungen können die Wortleitung beinhalten, die die Teilblocklöschoperation auslöst. Die eine oder die mehreren Wortleitungen können basierend auf einer Anzahl an Programmier-/Löschzyklen für die Wortleitung oder basierend auf einer Anzahl von Programmier-/Löschzyklen für die eine oder die mehreren Wortleitungen bestimmt werden. Falls die Wortleitung, die die Teilblocklöschoperation auslöst, mehr als eine Schwellenzahl Mal (z. B. mehr als fünf Mal) programmiert und gelöscht wurde, dann können die eine oder die mehreren Wortleitungen bei einem Beispiel die Wortleitung und eine oder mehrere angrenzende Wortleitungen, die neben der Wortleitung angeordnet sind, umfassen. Falls die Wortleitung, die die Teilblocklöschoperation auslöst, mehr als eine Schwellenzahl Mal (z. B. mehr als zehn Mal) programmiert und gelöscht wurde, dann können die eine oder die mehreren Wortleitungen bei einem anderen Beispiel die Wortleitung und alle drainseitigen Wortleitungen, die zwischen der Wortleitung und dem Steuersignal für das drainseitige Selektionsgate (z. B. SGD) angeordnet sind, umfassen.
  • In Schritt 934 wird eine Teilblocklöschoperation bezüglich Speicherzellen, die mit der einen oder den mehreren Wortleitungen verbunden sind, durchgeführt. Die eine oder die mehreren Wortleitungen können weniger als alle der Wortleitungen innerhalb des Speicherblocks umfassen. In diesem Fall können die Speicherzellen, die mit der einen oder den mehreren Wortleitungen verbunden sind, gelöscht werden, während andere Daten, die in anderen Speicherzellen gespeichert sind, die mit anderen Wortleitungen innerhalb des Speicherblocks verbunden sind, nicht gelöscht werden. In Schritt 936 wird die Programmieroperation bezüglich der Menge von Speicherzellen, die mit der Wortleitung verbunden sind, anschließend an die Teilblocklöschoperation, die in Schritt 934 durchgeführt wird, durchgeführt. Die Programmieroperation kann Schreiben von Daten in die Menge von Speicherzellen umfassen.
  • Eine Ausführungsform der offenbarten Technologie beinhaltet ein Speicherarray, einen Steuerschaltkreis, einen Löschschaltkreis und einen Schreibschaltkreis. Das Speicherarray beinhaltet eine Menge von Speicherzellen. Der Steuerschaltkreis ist dazu konfiguriert, eine oder mehrere Wortleitungen innerhalb des Speicherarrays als Reaktion auf das Bestimmen zu identifizieren, dass eine Ausfallbitanzahl, die einer ersten Menge von Daten zugeordnet ist, die innerhalb der Menge von Speicherzellen gespeichert sind, eine Fehlerschwelle erfüllt. Der Steuerschaltkreis ist dazu konfiguriert, eine zweite Menge von Daten zu erhalten, die in Speicherzellen, die mit der einen oder den mehreren Wortleitungen verbunden sind, programmiert werden sollen. Der Löschschaltkreis ist dazu konfiguriert, die Speicherzellen, die mit der einen oder den mehreren Wortleitungen verbunden sind, so zu löschen, dass andere Speicherzellen, die mit einer oder mehreren Wortleitungen innerhalb des Speicherarrays verbunden sind, nicht gelöscht werden. Der Schreibschaltkreis ist dazu konfiguriert, die zweite Menge von Daten in die Speicherzellen, die mit der einen oder den mehreren Wortleitungen verbunden sind, zu schreiben. Das Speicherarray kann einen Speicherblock umfassen.
  • Eine Ausführungsform der offenbarten Technologie beinhaltet ein Speicherarray, einen Steuerschaltkreis, einen Löschschaltkreis und einen Schreibschaltkreis. Das Speicherarray beinhaltet eine Menge von Speicherzellen, die mit einer Wortleitung verbunden sind. Der Steuerschaltkreis ist dazu konfiguriert, eine Programmieroperation, die bezüglich der Menge von Speicherzellen durchgeführt werden soll, zu identifizieren und zu detektierten, dass eine Ausfallbitanzahl, die der Menge von Speicherzellen zugeordnet ist, größer als eine Fehlerschwelle ist. Der Steuerschaltkreis ist dazu konfiguriert, eine oder mehrere Wortleitungen innerhalb des Speicherarrays als Reaktion auf das Detektieren, dass die Ausfallbitanzahl größer als die Fehlerschwelle ist, zu identifizieren. Die eine oder die mehreren Wortleitungen beinhalten die Wortleitung, die mit der Menge von Speicherzellen verbunden ist. Der Löschschaltkreis ist dazu konfiguriert, Speicherzellen, die mit der einen oder den mehreren Wortleitungen verbunden sind, so zu löschen, dass weniger als alle der Speicherzellen innerhalb des Speicherarrays gelöscht werden. Der Schreibschaltkreis ist dazu konfiguriert, Daten, die der Programmieroperation zugeordnet sind, in die Speicherzellen, die mit der einen oder den mehreren Wortleitungen verbunden sind, zu schreiben.
  • Eine Ausführungsform der offenbarten Technologie beinhaltet ein Speicherarray und einen oder mehrere Verwaltungsschaltkreise, die sich in Kommunikation mit dem Speicherarray befinden. Das Speicherarray beinhaltet eine Menge von Speicherzellen, die mit einer Wortleitung verbunden sind. Der eine oder die mehreren Verwaltungsschaltkreise sind dazu konfiguriert, Daten aus der Menge von Speicherzellen zu lesen und eine Ausfallbitanzahl, die den Daten zugeordnet ist, zu bestimmen. Der eine oder die mehreren Verwaltungsschaltkreise sind dazu konfiguriert, zu detektieren, dass die Ausfallbitanzahl größer als eine Fehlerschwelle ist. Der eine oder die mehreren Verwaltungsschaltkreise sind dazu konfiguriert, eine oder mehrere Wortleitungen innerhalb des Speicherarrays als Reaktion auf das Detektieren, dass die Ausfallbitanzahl größer als die Fehlerschwelle ist, zu identifizieren. Die eine oder die mehreren Wortleitungen beinhalten die Wortleitung, die mit der Menge von Speicherzellen verbunden ist. Der eine oder die mehreren Verwaltungsschaltkreise sind dazu konfiguriert, korrigierte Daten zu erzeugen, die in Speicherzellen, die mit der einen oder den mehreren Wortleitungen verbunden sind, programmiert werden sollen. Der eine oder die mehreren Verwaltungsschaltkreise sind dazu konfiguriert, zu veranlassen, dass eine Teilblocklöschoperation bezüglich der Speicherzellen, die mit der einen oder den mehreren Wortleitungen verbunden sind, durchgeführt wird, und sind dazu konfiguriert, zu veranlassen, dass die zu programmierenden Daten in die Speicherzellen, die mit der einen oder den mehreren Wortleitungen verbunden sind, geschrieben werden.
  • Eine Ausführungsform der offenbarten Technologie beinhaltet Erhalten oder Lesen von Daten aus einer Menge von Speicherzellen, die mit einer Wortleitung innerhalb eines Speicherblocks verbunden sind, Bestimmen einer Anzahl an Bitfehlern, die den Daten zugeordnet sind, Detektieren, dass die Anzahl an Bitfehlern größer als eine Fehlerschwelle ist, und Identifizieren einer oder mehrerer Wortleitungen innerhalb des Speicherblocks als Reaktion auf das Detektieren, dass die Anzahl an Bitfehlern größer als die Fehlerschwelle ist. Die eine oder die mehreren Wortleitungen beinhalten die Wortleitung, die mit der Menge von Speicherzellen verbunden ist. Das Verfahren umfasst ferner Erzeugen korrigierter Daten, die in Speicherzellen, die mit der einen oder den mehreren Wortleitungen verbunden sind, geschrieben werden sollen, Durchführen einer Teilblocklöschoperation bezüglich der Speicherzellen, die mit der einen oder den mehreren Wortleitungen verbunden sind, und Programmieren der korrigierten Daten in die Speicherzellen, die mit der einen oder den mehreren Wortleitungen verbunden sind.
  • Eine Ausführungsform der offenbarten Technologie beinhaltet ein nichtflüchtiges Speichersystem einschließlich eines Speicherarrays und eines oder mehrerer Verwaltungsschaltkreise, die sich in Kommunikation mit dem Speicherarray befinden. Das Speicherarray beinhaltet eine Menge von Speicherzellen, die mit einer Wortleitung verbunden sind. Der eine oder die mehreren Verwaltungsschaltkreise sind dazu konfiguriert, eine Programmieroperation, die bezüglich der Menge an Speicherzellen durchgeführt werden soll, zu identifizieren und Daten von der Menge an Speicherzellen zu erfassen. Die eine oder die mehreren Verwaltungsschaltkreise sind dazu konfiguriert, eine Ausfallbitanzahl für die Daten zu bestimmen. Der eine oder die mehreren Verwaltungsschaltkreise sind dazu konfiguriert, zu detektieren, dass die Ausfallbitanzahl größer als eine Fehlerschwelle ist, und eine oder mehrere Wortleitungen innerhalb des Speicherarrays als Reaktion auf das Detektieren, dass die Ausfallbitanzahl größer als die Fehlerschwelle ist, zu identifizieren. Die eine oder die mehreren Wortleitungen beinhalten die Wortleitung, die mit der Menge von Speicherzellen verbunden ist. Der eine oder die mehreren Verwaltungsschaltkreise sind dazu konfiguriert, zu veranlassen, dass eine Teilblocklöschoperation bezüglich Speicherzellen, die mit der einen oder den mehreren Wortleitungen verbunden sind, durchzuführen, und sind dazu konfiguriert, zu veranlassen, dass die Programmieroperation bezüglich der Menge an Speicherzellen, die mit der Wortleitung verbunden sind, durchgeführt wird.
  • Eine Ausführungsform der offenbarten Technologie beinhaltet Detektieren, dass eine Programmieroperation bezüglich einer Menge von Speicherzellen, die mit einer Wortleitung innerhalb eines Speicherblocks verbunden sind, durchgeführt werden soll, Bestimmen einer Anzahl an Programmier-/Löschzyklen, die der Menge von Speicherzellen zugeordnet sind, Bestimmen einer Schwellenzahl an Lesezyklen basierend auf der Anzahl an Programmier-/Löschzyklen, die einer Menge von Speicherzellen zugeordnet sind, Bestimmen einer Anzahl an Lesezyklen für die Menge von Speicherzellen, Detektieren, dass die Anzahl an Lesezyklen für die Menge von Speicherzellen größer als die Schwellenzahl an Lesezyklen ist, und Identifizieren einer oder mehrerer Wortleitungen innerhalb des Speicherblocks als Reaktion auf das Detektieren, dass die Anzahl an Lesezyklen für die Menge von Speicherzellen größer als die Schwellenzahl an Lesezyklen ist. Die eine oder die mehreren Wortleitungen können die Wortleitung, die mit der Menge von Speicherzellen verbunden ist, beinhalten. Das Verfahren umfasst ferner Durchführen einer Teilblocklöschoperation bezüglich Speicherzellen, die mit der einen oder den mehreren Wortleitungen verbunden sind und Durchführen der Programmieroperation bezüglich der Menge von Speicherzellen, die mit der Wortleitung verbunden sind, anschließend an Durchführen der Teilblocklöschoperation. In manchen Fällen kann die Anzahl an Programmier-/Löschzyklen, die der Menge von Speicherzellen zugeordnet sind, die Gesamtanzahl an Malen, dass die Menge an Speicherzellen programmiert und gelöscht wurde, seit der Herstellung der Speicherzellen umfassen.
  • Zum Zwecke dieses Dokuments soll angemerkt werden, dass die Abmessungen der verschiedenen in den Figuren dargestellten Merkmale nicht notwendigerweise maßstabsgetreu gezeichnet sind.
  • Zum Zwecke dieses Dokuments kann in dieser Beschreibung Bezugnahme auf „eine Ausführungsform“, „manche Ausführungsformen“ oder „eine andere Ausführungsform“ verwendet werden, um verschiedene Ausführungsformen zu beschreiben, und verweist nicht notwendigerweise auf die gleiche Ausführungsform.
  • Zum Zwecke dieses Dokuments kann eine Verbindung eine direkte Verbindung oder eine indirekte Verbindung (z. B. über einen anderen Teil) sein. In manchen Fällen kann, wenn ein Element als mit einem anderen Element verbunden oder gekoppelt bezeichnet wird, das Element direkt mit dem anderen Element verbunden sein oder indirekt über dazwischenliegende Elemente mit dem anderen Element verbunden sein. Wenn ein Element als direkt mit einem anderen Element verbunden bezeichnet wird, dann liegen keine dazwischenliegenden Elemente zwischen dem Element und dem anderen Element vor.
  • Zum Zwecke dieses Dokuments kann der Ausdruck „basierend auf“ als „wenigstens teilweise basierend auf“ gelesen werden.
  • Zum Zwecke dieses Dokuments kann eine Verwendung numerischer Ausdrücke, wie etwa ein „erstes“ Objekt, ein „zweites“ Objekt und ein „drittes“ Objekt, ohne zusätzlichen Zusammenhang keine Ordnung der Objekte andeuten, sondern kann stattdessen zu Identifikationszwecken verwendet werden, um verschiedene Objekte zu identifizieren.
  • Zum Zwecke dieses Dokuments kann der Begriff „Menge“ von Objekten auf eine „Menge“ von einem oder mehreren der Objekte verweisen.
  • Obwohl der Gegenstand in einer für strukturelle Merkmale und/oder methodische Vorgänge spezifischen Sprache beschrieben wurde, versteht es sich, dass der in den beigefügten Ansprüchen definierte Gegenstand nicht notwendigerweise auf die oben beschriebenen speziellen Merkmale oder Handlungen beschränkt ist. Vielmehr sind die oben beschriebenen speziellen Merkmale und Handlungen als Beispielformen des Implementierens der Ansprüche offenbart.

Claims (15)

  1. Nichtflüchtiges Speichersystem, das Folgendes umfasst: ein Speicherarray (501), wobei das Speicherarray eine Menge von Speicherzellen, die mit einer Wortleitung verbunden sind, beinhaltet; und einen oder mehrere Verwaltungsschaltkreise (510), die sich in Kommunikation mit dem Speicherarray befinden, wobei der eine oder die mehreren Verwaltungsschaltkreise dazu konfiguriert sind, Daten aus der Menge von Speicherzellen zu lesen und eine Ausfallbitanzahl, die den Daten zugeordnet ist, zu bestimmen, wobei der eine oder die mehreren Verwaltungsschaltkreise dazu konfiguriert sind, zu detektieren, dass die Ausfallbitanzahl größer als eine Fehlerschwelle ist, wobei der eine oder die mehreren Verwaltungsschaltkreise dazu konfiguriert sind, eine oder mehrere Wortleitungen innerhalb des Speicherarrays als Reaktion auf das Detektieren, dass die Ausfallbitanzahl größer als die Fehlerschwelle ist, zu identifizieren, wobei die eine oder die mehreren Wortleitungen die Wortleitung beinhalten, wobei der eine oder die mehreren Verwaltungsschaltkreise dazu konfiguriert sind, neue Daten zu erzeugen, die in Speicherzellen, die mit der einen oder den mehreren Wortleitungen verbunden sind, programmiert werden sollen, wobei der eine oder die mehreren Verwaltungsschaltkreise dazu konfiguriert sind, zu veranlassen, dass eine Teilblocklöschoperation bezüglich der Speicherzellen, die mit der einen oder den mehreren Wortleitungen verbunden sind, durchgeführt wird und dazu konfiguriert sind, zu veranlassen, dass die neuen Daten in die Speicherzellen, die mit der einen oder den mehreren Wortleitungen verbunden sind, programmiert werden.
  2. Nichtflüchtiges Speichersystem nach Anspruch 1, wobei: der eine oder die mehreren Verwaltungsschaltkreise dazu konfiguriert sind, die Fehlerschwelle basierend auf einer Temperatur, die dem Speicherarray zugeordnet ist, zu bestimmen.
  3. Nichtflüchtiges Speichersystem nach Anspruch 1, wobei: der eine oder die mehreren Verwaltungsschaltkreise dazu konfiguriert sind, die Fehlerschwelle basierend auf einer Anzahl an Programmier-/Löschzyklen für die Wortleitung zu bestimmen.
  4. Nichtflüchtiges Speichersystem nach Anspruch 1, wobei: der eine oder die mehreren Verwaltungsschaltkreise dazu konfiguriert sind, die Fehlerschwelle basierend auf einer Anzahl an Datenaktualisierungszyklen, die für die Wortleitung stattgefunden haben, zu bestimmen.
  5. Nichtflüchtiges Speichersystem nach Anspruch 1, wobei: der eine oder die mehreren Verwaltungsschaltkreise dazu konfiguriert sind, die eine oder die mehreren Wortleitungen basierend auf einer Anzahl an Programmier-/Löschzyklen für die Wortleitung zu identifizieren.
  6. Nichtflüchtiges Speichersystem nach einem der Ansprüche 1–5, wobei: die eine oder die mehreren Wortleitungen innerhalb des Speicherarrays die Wortleitung und eine zweite Wortleitung, die an die Wortleitung angrenzt, beinhalten.
  7. Nichtflüchtiges Speichersystem nach Anspruch 6, wobei: die Teilblocklöschoperation Löschen der Menge von Speicherzellen, die mit der Wortleitung verbunden sind, und Löschen einer zweiten Menge von Speicherzellen, die mit der zweiten Wortleitung verbunden sind, beinhaltet, die Teilblocklöschoperation eine Löschoperation umfasst, in der während der Löschoperation weniger als alle der Wortleitungen innerhalb eines Speicherarrays gelöscht werden.
  8. Nichtflüchtiges Speichersystem nach einem der Ansprüche 1–7, wobei: das Speicherarray ein NAND-Speicherarray umfasst; und das Speicherarray einen nichtflüchtigen Speicher umfasst, der in einer oder mehreren physischen Ebenen von Speicherzellen mit aktiven Gebieten, die über einem Silicium-Substrat angeordnet sind, monolithisch gebildet ist.
  9. Verfahren zum Betreiben eines nichtflüchtigen Speichersystems, das Folgendes umfasst: Lesen (802) von Daten aus einer Menge von Speicherzellen, die mit einer Wortleitung innerhalb eines Speicherblocks verbunden sind; Bestimmen (804) einer Anzahl an Bitfehlern, die den Daten zugeordnet sind; Detektieren (808), dass die Anzahl an Bitfehlern größer als eine Fehlerschwelle ist; Identifizieren (810) einer oder mehrerer Wortleitungen innerhalb des Speicherblocks als Reaktion auf das Detektieren, dass die Anzahl an Bitfehlern größer als die Fehlerschwelle ist, wobei die eine oder die mehreren Wortleitungen die Wortleitung und eine zweite Wortleitung beinhalten; Erzeugen (812) neuer Daten, die in Speicherzellen, die mit der einen oder den mehreren Wortleitungen verbunden sind, geschrieben werden sollen; Durchführen (814) einer Teilblocklöschoperation bezüglich der Speicherzellen, die mit der einen oder den mehreren Wortleitungen verbunden sind; und Programmieren (816) der neuen Daten in die Speicherzellen, die mit der einen oder den mehreren Wortleitungen verbunden sind.
  10. Verfahren nach Anspruch 9, das ferner Folgendes umfasst: Bestimmen der Fehlerschwelle basierend auf einer Temperatur, die dem Speicherblock zugeordnet ist.
  11. Verfahren nach Anspruch 9, das ferner Folgendes umfasst: Bestimmen der Fehlerschwelle basierend auf einer Anzahl an Programmier-/Löschzyklen für die Wortleitung.
  12. Verfahren nach Anspruch 9, das ferner Folgendes umfasst: Bestimmen der Fehlerschwelle basierend auf einer Anzahl an Datenaktualisierungen, die für die Wortleitung stattgefunden haben.
  13. Verfahren nach einem der Ansprüche 9–12, wobei: die Daten eine Datenseite umfassen und die Fehlerschwelle drei Bitfehler pro Seite umfasst.
  14. Verfahren nach einem der Ansprüche 9–13, wobei: das Identifizieren einer oder mehrerer Wortleitungen innerhalb des Speicherblocks Identifizieren der einen oder der mehreren Wortleitungen basierend auf einer Anzahl an Programmier-/Löschzyklen für die Wortleitung beinhaltet.
  15. Verfahren nach einem der Ansprüche 9–14, wobei: die zweite Wortleitung an die erste Wortleitung angrenzt.
DE112015003761.6T 2014-12-05 2015-10-07 Teilblocklöschung zur datenaktualisierung Withdrawn DE112015003761T5 (de)

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
US201462088020P 2014-12-05 2014-12-05
US62/088,020 2014-12-05
US14/863,584 2015-09-24
US14/863,584 US9563504B2 (en) 2014-12-05 2015-09-24 Partial block erase for data refreshing and open-block programming
PCT/US2015/054459 WO2016089474A1 (en) 2014-12-05 2015-10-07 Partial block erase for data refreshing

Publications (1)

Publication Number Publication Date
DE112015003761T5 true DE112015003761T5 (de) 2017-07-20

Family

ID=54337910

Family Applications (1)

Application Number Title Priority Date Filing Date
DE112015003761.6T Withdrawn DE112015003761T5 (de) 2014-12-05 2015-10-07 Teilblocklöschung zur datenaktualisierung

Country Status (4)

Country Link
US (1) US9563504B2 (de)
CN (1) CN106688042B (de)
DE (1) DE112015003761T5 (de)
WO (1) WO2016089474A1 (de)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE102018105529B4 (de) * 2017-06-22 2019-11-21 Western Digital Technologies, Inc. Managementschema zur Vermeidung einer Lösch- und Programmierstörung von Subblöcken im nichtflüchtigen Datenspeicher

Families Citing this family (35)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2014063551A (ja) * 2012-09-21 2014-04-10 Toshiba Corp 半導体記憶装置
KR102491624B1 (ko) * 2015-07-27 2023-01-25 삼성전자주식회사 데이터 저장 장치의 작동 방법과 상기 데이터 저장 장치를 포함하는 시스템의 작동 방법
US9812215B2 (en) * 2016-03-25 2017-11-07 Toshiba Memory Corporation Memory device that executes an erase operation for a nonvolatile memory
US9941293B1 (en) 2016-10-12 2018-04-10 Sandisk Technologies Llc Select transistors with tight threshold voltage in 3D memory
US10074440B2 (en) 2016-10-28 2018-09-11 Sandisk Technologies Llc Erase for partially programmed blocks in non-volatile memory
US10388379B2 (en) * 2017-03-21 2019-08-20 Micron Technology, Inc. Apparatuses and methods for automated dynamic word line start voltage
CN108932175B (zh) * 2017-05-24 2022-01-11 建兴储存科技(广州)有限公司 固态储存装置的控制方法
CN109378027A (zh) * 2017-08-09 2019-02-22 光宝科技股份有限公司 固态储存装置的控制方法
US10347344B2 (en) * 2017-08-29 2019-07-09 Micron Technology, Inc. Read voltage calibration based on host IO operations
US10936205B2 (en) 2017-10-05 2021-03-02 International Business Machines Corporation Techniques for retention and read-disturb aware health binning
KR102457662B1 (ko) 2017-10-31 2022-10-25 삼성전자주식회사 메모리 컨트롤러의 동작 방법 및 저장 장치의 동작 방법
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
KR20190092941A (ko) 2018-01-31 2019-08-08 에스케이하이닉스 주식회사 메모리 장치, 이를 포함하는 메모리 시스템 및 메모리 시스템의 동작 방법
US10839922B2 (en) * 2018-05-26 2020-11-17 Sandisk Technologies Llc Memory disturb detection
KR102612891B1 (ko) * 2018-05-31 2023-12-13 에스케이하이닉스 주식회사 메모리 장치, 그것의 동작방법 및 메모리 시스템
US10699791B2 (en) 2018-08-24 2020-06-30 International Business Machines Corporation Adaptive read voltage threshold calibration in non-volatile memory
US11169747B2 (en) * 2018-10-30 2021-11-09 Micron Technology, Inc. Relocating data to low latency memory
US10910083B2 (en) * 2019-03-14 2021-02-02 Western Digital Technologies, Inc. Leaky memory hole repair at fabrication joint
KR20200113990A (ko) * 2019-03-27 2020-10-07 에스케이하이닉스 주식회사 메모리 시스템 내 메모리 장치의 동작 상태를 확인하는 방법 및 장치
KR102601152B1 (ko) * 2019-05-10 2023-11-13 에스케이하이닉스 주식회사 메모리 컨트롤러 및 그 동작 방법
US10770158B1 (en) * 2019-05-15 2020-09-08 Western Digital Technologies, Inc. Detecting a faulty memory block
US11335412B2 (en) 2019-12-31 2022-05-17 Micron Technology, Inc. Managing sub-block erase operations in a memory sub-system
CN112116944A (zh) * 2020-09-24 2020-12-22 深圳市芯天下技术有限公司 可减少难编程的存储单元编程干扰的编程方法
US11340982B1 (en) * 2020-11-02 2022-05-24 Micron Technology, Inc. Memory block defect detection and management
US11461025B2 (en) * 2020-11-05 2022-10-04 Macronix International Co., Ltd. Data retention in memory devices
CN117015829A (zh) * 2021-03-26 2023-11-07 英特尔公司 存储器设备、存储器模块、计算系统、用于擦除存储器设备的存储器部分的方法和用于生成擦除请求的方法
US11579797B2 (en) * 2021-04-29 2023-02-14 Micron Technology, Inc. Memory sub-system refresh
US11551765B2 (en) 2021-05-25 2023-01-10 Sandisk Technologies Llc Non-volatile memory with speed control
US11972812B2 (en) 2021-12-13 2024-04-30 Sandisk Technologies Llc Non-volatile memory with data refresh based on data states of adjacent memory cells
US11861233B2 (en) * 2021-12-22 2024-01-02 Micron Technology, Inc. Using duplicate data for improving error correction capability
US12039178B2 (en) * 2022-07-14 2024-07-16 Micron Technology, Inc. Apparatus with memory block management and methods for operating the same
CN116209253B (zh) * 2022-09-23 2024-02-20 北京超弦存储器研究院 存储单元、动态存储器、其读取方法及电子设备
CN116209252B (zh) * 2022-09-23 2024-02-23 北京超弦存储器研究院 存储单元、动态存储器、其读取方法及电子设备
US20240272817A1 (en) * 2023-02-10 2024-08-15 Samsung Electronics Co., Ltd. Method, memory controller and method device that organizes data during refresh cycles
US20240312546A1 (en) * 2023-03-14 2024-09-19 Western Digital Technologies, Inc. Data integrity check in non-volatile storage

Family Cites Families (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6763424B2 (en) 2001-01-19 2004-07-13 Sandisk Corporation Partial block data programming and reading operations in a non-volatile memory
US7561465B2 (en) 2006-12-28 2009-07-14 Advanced Micro Devices, Inc. Methods and systems for recovering data in a nonvolatile memory array
US7804718B2 (en) * 2007-03-07 2010-09-28 Mosaid Technologies Incorporated Partial block erase architecture for flash memory
US7477547B2 (en) 2007-03-28 2009-01-13 Sandisk Corporation Flash memory refresh techniques triggered by controlled scrub data reads
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
JP2009087509A (ja) * 2007-10-03 2009-04-23 Toshiba Corp 半導体記憶装置
JP2009129070A (ja) 2007-11-21 2009-06-11 Hitachi Ltd フラッシュメモリ記憶装置の制御方法、その方法を用いたフラッシュメモリ記憶装置及びストレージシステム
KR101406279B1 (ko) 2007-12-20 2014-06-13 삼성전자주식회사 반도체 메모리 장치 및 그것의 읽기 페일 분석 방법
US7859932B2 (en) 2008-12-18 2010-12-28 Sandisk Corporation Data refresh for non-volatile storage
US7894270B2 (en) 2009-02-11 2011-02-22 Mosys, Inc. Data restoration method for a non-volatile memory
WO2013043602A2 (en) * 2011-09-19 2013-03-28 SanDisk Technologies, Inc. High endurance non-volatile storage
KR101988434B1 (ko) * 2012-08-31 2019-06-12 삼성전자주식회사 불휘발성 메모리 장치 및 그것의 서브-블록 관리 방법
US9202566B2 (en) 2013-04-05 2015-12-01 Sandisk 3D Llc Vertical cross point reram forming method
KR102175039B1 (ko) * 2013-06-25 2020-11-05 삼성전자주식회사 불휘발성 메모리 장치의 데이터 기입 방법
US9342401B2 (en) 2013-09-16 2016-05-17 Sandisk Technologies Inc. Selective in-situ retouching of data in nonvolatile memory

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE102018105529B4 (de) * 2017-06-22 2019-11-21 Western Digital Technologies, Inc. Managementschema zur Vermeidung einer Lösch- und Programmierstörung von Subblöcken im nichtflüchtigen Datenspeicher

Also Published As

Publication number Publication date
US20160163393A1 (en) 2016-06-09
CN106688042A (zh) 2017-05-17
CN106688042B (zh) 2020-06-30
WO2016089474A1 (en) 2016-06-09
US9563504B2 (en) 2017-02-07

Similar Documents

Publication Publication Date Title
DE112015003761T5 (de) Teilblocklöschung zur datenaktualisierung
DE112016003636T5 (de) Unter-Block-Modus für nichtflüchtigen Speicher
DE112017004208B4 (de) 3d-nand mit teilblocklöschen
DE112015003834B4 (de) Abtasten mehrerer referenzpegel in nichtflüchtigen speicherelementen
DE112017001761B4 (de) NAND-Struktur mit Stufenauswahl-Gate-Transistoren
DE602004005211T2 (de) Detektieren von überprogrammierter speicherzellen nach einer programmierung benachbarter speicherzellen
CN101584006B (zh) 非易失性存储器中的经分割的软编程
US9721672B1 (en) Multi-die programming with die-jumping induced periodic delays
DE112019000157B4 (de) Speichervorrichtung mit von nand-ketten getrennten bitleitungen zur schnellen programmierung
CN107230498B (zh) 非易失性半导体存储设备及其擦除方法
DE112017002776T5 (de) Nichtflüchtiger Speicher mit angepasster Steuerung vom Typ der Störinjektion während der Programmüberprüfung für eine verbesserte Programmleistung
EP2973582B1 (de) Gemeinsame bitleitungsstringarchitektur
DE102018105623B4 (de) Zustandsabhängige Abtastschaltungen und Abtastoperationen für Speichervorrichtungen
DE102018105685A1 (de) Multi-Zustands-Programm, das gesteuertes schwaches Boosten für einen nichtflüchtigen Speicher verwendet
DE102018116915A1 (de) Nichtflüchtige Speichervorrichtung und Betriebsverfahren derselben
DE102020105991B4 (de) SUBBLOCK-GRÖßENREDUKTION FÜR NICHTFLÜCHTIGE 3D-SPEICHER
CN108428466B (zh) 用于抑制第一读取问题的字线的顺序取消选择
DE102013108907A1 (de) Nichtflüchtige Speichervorrichtung mit nahen/fernen Speicherzellengruppierungen und Datenverarbeitungsverfahren
DE102018117357A1 (de) Speichervorrichtung mit einer Schaltung zum Erfassen eines Wortleitungsdefektes und Betriebsverfahren derselben
CN113196401B (zh) 对由于块氧化物减薄引起的编程速度变化进行补偿的存储器设备
TWI614760B (zh) 半導體記憶裝置
DE102018129517A1 (de) Leseverstärker mit negativer schwellenwerterfassung für nicht-flüchtige speicher
DE112015003651T5 (de) Adaptives selektives bitleitungsvorladen für stromeinsparungen und schnelles programmieren
KR20130072519A (ko) 반도체 메모리 장치 및 이의 동작 방법
DE112019005518T5 (de) Mehrzustandsprogrammierung in einer speichervorrichtung mit schleifenabhängiger bitleitungsspannung während der verifizierung

Legal Events

Date Code Title Description
R012 Request for examination validly filed
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

R119 Application deemed withdrawn, or ip right lapsed, due to non-payment of renewal fee