DE112020006139T5 - Vor-lese-und lese-schwellenspannungsoptimierung - Google Patents

Vor-lese-und lese-schwellenspannungsoptimierung Download PDF

Info

Publication number
DE112020006139T5
DE112020006139T5 DE112020006139.6T DE112020006139T DE112020006139T5 DE 112020006139 T5 DE112020006139 T5 DE 112020006139T5 DE 112020006139 T DE112020006139 T DE 112020006139T DE 112020006139 T5 DE112020006139 T5 DE 112020006139T5
Authority
DE
Germany
Prior art keywords
read
data
threshold voltage
memory device
memory
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
DE112020006139.6T
Other languages
English (en)
Inventor
Seungjune Jeon
Zhenming Zhou
Zhenlei Shen
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.)
Micron Technology Inc
Original Assignee
Micron Technology Inc
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Micron Technology Inc filed Critical Micron Technology Inc
Publication of DE112020006139T5 publication Critical patent/DE112020006139T5/de
Granted legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C16/00Erasable programmable read-only memories
    • G11C16/02Erasable programmable read-only memories electrically programmable
    • G11C16/06Auxiliary circuits, e.g. for writing into memory
    • G11C16/34Determination of programming status, e.g. threshold voltage, overprogramming or underprogramming, retention
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C29/00Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
    • G11C29/02Detection or location of defective auxiliary circuits, e.g. defective refresh counters
    • G11C29/028Detection or location of defective auxiliary circuits, e.g. defective refresh counters with adaption or trimming of parameters
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C16/00Erasable programmable read-only memories
    • G11C16/02Erasable programmable read-only memories electrically programmable
    • G11C16/06Auxiliary circuits, e.g. for writing into memory
    • G11C16/10Programming or data input circuits
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C16/00Erasable programmable read-only memories
    • G11C16/02Erasable programmable read-only memories electrically programmable
    • G11C16/06Auxiliary circuits, e.g. for writing into memory
    • G11C16/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/349Arrangements for evaluating degradation, retention or wearout, e.g. by counting erase cycles
    • G11C16/3495Circuits or methods to detect or delay wearout of nonvolatile EPROM or EEPROM memory devices, e.g. by counting numbers of erase or reprogram cycles, by using multiple memory areas serially or cyclically
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C29/00Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
    • G11C29/02Detection or location of defective auxiliary circuits, e.g. defective refresh counters
    • G11C29/021Detection or location of defective auxiliary circuits, e.g. defective refresh counters in voltage or current generators
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C29/00Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
    • G11C29/04Detection or location of defective memory elements, e.g. cell constructio details, timing of test signals
    • G11C29/08Functional testing, e.g. testing during refresh, power-on self testing [POST] or distributed testing
    • G11C29/12Built-in arrangements for testing, e.g. built-in self testing [BIST] or interconnection details
    • G11C29/38Response verification devices
    • G11C29/42Response verification devices using error correcting codes [ECC] or parity check
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C29/00Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
    • G11C29/52Protection of memory contents; Detection of errors in memory contents
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/30098Register arrangements
    • G06F9/30101Special purpose registers

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)
  • Read Only Memory (AREA)
  • Memory System (AREA)

Abstract

Es wird eine Anforderung zum Lesen von Daten an der Speichervorrichtung empfangen. Eine erste Lese-Operation wird durchgeführt, um die Daten an der Speichervorrichtung unter Verwendung einer ersten Lese-Schwellenspannung zu lesen. Es wird bestimmt, dass die Daten, die unter Verwendung der ersten Lese-Schwellenspannung an der Speichervorrichtung gelesen wurden, mit einer ersten erfolglosen Korrektur eines Fehlers in Beziehung stehen. Als Reaktion auf das Bestimmen, dass die Daten, die unter Verwendung der ersten Lese-Schwellenspannung an der Speichervorrichtung gelesen wurden, mit der ersten erfolglosen Korrektur des Fehlers in Beziehung stehen, wird eine zweite Lese-Schwellenspannung an einem Register gespeichert, um eine zuvor an dem Register, das mit der Speichervorrichtung in Beziehung steht, gespeicherte Vor-Lese-Schwellenspannung zu ersetzen. Die erste Vor-Lese-Schwellenspannung wurde zuvor verwendet, um eine Vor-Lese-Operation an der Speichervorrichtung durchzuführen. Eine zweite Lese-Operation zum Lesen der Daten an der Speichervorrichtung wird unter Verwendung der zweiten Lese-Schwellenspannung durchgeführt.

Description

  • TECHNISCHES GEBIET
  • Ausführungsformen der Erfindung beziehen sich allgemein auf Speicher-Untersysteme, und betreffen insbesondere eine Optimierung der Vor-Lese- und Lese-Schwellenspannung für Speicher-Untersysteme.
  • HINTERGRUND
  • Ein Speicher-Untersystem kann eine oder mehrere Speicherkomponenten enthalten, um Daten zu speichern. Bei den Speicherkomponenten kann es sich zum Beispiel um nichtflüchtige Speicherkomponenten und flüchtige Speicherkomponenten handeln. Im Allgemeinen kann ein Host-System ein Speicher-Untersystem verwenden, um Daten in den Speicherkomponenten zu speichern und um Daten aus den Speicherkomponenten abzurufen.
  • Figurenliste
  • Die Erfindung wird anhand der nachstehenden detaillierten Beschreibung und der beigefügten Zeichnungen verschiedener Ausführungsformen der Erfindung vollständiger verstanden. Die Zeichnungen sind jedoch nicht so zu verstehen, dass sie die Erfindung auf die spezifischen Ausführungsformen beschränken, sondern dienen lediglich der Erläuterung und dem Verständnis.
    • 1 zeigt ein beispielhaftes Computersystem, das ein Speicher-Untersystem gemäß einigen Ausführungsformen der vorliegenden Erfindung enthält.
    • 2 ist ein Blockdiagramm, das die Speicheroperationen eines Speicher-Untersystems gemäß einigen Ausführungsformen der Erfindung darstellt.
    • 3 ist ein Flussdiagramm eines beispielhaften Verfahrens zur Durchführung einer Lese-Operation in einem Speicher-Untersystem gemäß einigen Ausführungsformen der vorliegenden Erfindung.
    • 4 ist ein Flussdiagramm eines beispielhaften Verfahrens zur Durchführung einer Schreib-Operation in einem Speicher-Untersystem gemäß einigen Ausführungsformen der Erfindung.
    • 5 ist ein Blockdiagramm eines beispielhaften Computersystems, in dem Ausführungsformen der vorliegenden Erfindung betrieben werden können.
  • DETAILLIERTE BESCHREIBUNG
  • Aspekte der vorliegenden Erfindung beziehen sich auf Vor-Lese- und Lese-Schwellenspannungen (Pre-Read- und Read-Schwellenspannungen), die bei der Durchführung von Speicheroperationen in Speicher-Untersystemen verwendet werden. Ein Speicher-Untersystem kann eine Speichervorrichtung, ein Speichermodul oder ein Hybrid aus einer Speichervorrichtung und einem Speichermodul sein. Beispiele für Speichervorrichtungen und Speichermodule werden nachfolgend in Verbindung mit 1 beschrieben. Allgemein kann ein Host-System ein Speicher-Untersystem verwenden, das eine oder mehrere Speichervorrichtungen enthält, um Daten zu speichern. Das Host-System kann Daten zur Verfügung stellen, die in dem Speicher-Untersystem gespeichert werden sollen, und kann Daten anfordern, die aus dem Speicher-Untersystem abgerufen werden sollen.
  • Eine Lese-Schwellenspannung oder eine Vor-Lese-Schwellenspannung kann sich auf einen Spannungspegel beziehen, der zum Lesen bzw. Vor-Lesen von Daten verwendet wird, die in Speicherzellen einer Speicherkomponente gespeichert sind. Eine Lese-Operation, eine Vor-Lese-Operation und eine Schreib-Operation sind Beispiele für Speicheroperationen, die während des Betriebs eines Speicher-Untersystems durchgeführt werden. Eine Lese-Operation kann Daten lesen, die in einer oder mehreren Speicherzellen gespeichert sind, und zwar unter Verwendung von einer oder mehreren Lese-Schwellenspannungen. Bei einer Schreib-Operation können Daten in eine oder mehrere Speicherzellen einer Speicherkomponente geschrieben werden. Eine Vor-Lese-Operation kann mit einer Schreib-Operation in Beziehung gesetzt werden. Bevor eine Schreib-Operation durchgeführt wird, kann eine Vor-Lese-Operation die Inhalte einer oder mehrerer Speicherzellen lesen und die Inhalte der einen oder mehreren Speicherzellen mit den Daten vergleichen, die in die eine oder mehreren Speicherzellen geschrieben werden sollen. Speicherzellen, deren Inhalte (z.B. logische „1“ oder logische „0“) von zu schreibenden Daten abweichen, können während der Schreib-Operation geschrieben werden, so dass die Inhalte der Speicherzellen verändert werden (z.B. von einer logischen „1“ zu einer logischen „0“ und umgekehrt). Speicherzellen, deren Inhalt mit den zu schreibenden Daten übereinstimmen, werden nicht geschrieben, und die Inhalte des Speichers bleiben unverändert (bleiben z.B. bei einer logischen „1“ oder einer logischen „0“). Wenn lediglich in Speicherzellen geschrieben werden, deren Inhalte sich von den zu schreibenden Daten unterscheiden, wird ermöglicht, dass die Speicherzellen der Speicherkomponenten weniger Schreibzyklen durchlaufen, wodurch die Lebensdauer der Speicherkomponenten und des Speicher-Untersystems erhöht wird.
  • Herkömmliche Speicher-Untersysteme können eine begrenzte Anzahl von Registern haben, in denen Schwellenspannungen gespeichert werden. Die Schwellenspannungen, die in den Registern herkömmlicher Speicher-Untersysteme gespeichert sind, können sowohl für Lese-Operationen als auch für Vor-Lese-Operationen verwendet werden. In einigen Fällen können die Schwellenspannungen für die Durchführung von Lese-Operationen optimiert sein und sind nicht für die Durchführung von Vor-Lese-Operationen optimiert. Die Durchführung von Vor-Lese-Operationen unter Verwendung von Schwellenspannungen, die für Lese-Operationen optimiert sind, kann bewirken, dass die Vor-Lese-Operation viele False-Positives (Falsch-Positiv-Meldungen) identifiziert, d.h., wo die Vor-Lese-Operation Speicherzellen identifiziert, deren Inhalte nicht mit den zu schreibenden Daten übereinstimmen, obwohl die tatsächlichen Inhalte der Speicherzellen mit den zu schreibenden Daten übereinstimmen. Daher werden viele Speicherzellen, die nicht geschrieben werden müssen, während einer Schreib-Operation tatsächlich geschrieben, was zu einem erhöhten Verschleiß der Speicherzellen und zu einer Verminderung der Lebensdauer der Speicherkomponente und des Speicher-Untersystems führt.
  • Durch Aspekte der Erfindung werden die obigen und andere Nachteile überwunden, indem eine oder mehrere unterschiedliche Schwellenspannungen für Vor-Lese-Operationen und Lese-Operationen implementiert werden. Eine oder mehrere Vor-Lese-Schwellenspannungen können für die Durchführung von Vor-Lese-Operationen optimiert werden, und eine oder mehrere Lese-Schwellenspannungen können für die Durchführung von Lese-Operationen optimiert werden. Eine optimierte Vor-Lese-Schwellenspannung kann sich von einer der Lese-Schwellenspannungen unterscheiden, die zur Durchführung von Lese-Operationen verwendet werden. Wie bereits erwähnt, kann in einigen Fällen die Anzahl der Register, die Schwellenspannungen speichern, begrenzt sein. Die optimierte Vor-Lese-Schwellenspannung kann häufiger verwendet werden als eine bestimmte Lese-Schwellenspannung, und kann die effektive „Standard“-Schwellenspannung sein, die in einem bestimmten Register gespeichert ist. Die optimierte Vor-Lese-Schwellenspannung, die in einem bestimmten Register gespeichert ist, kann unter bestimmten Bedingungen durch die bestimmte Lese-Schwellenspannung ersetzt werden, zum Beispiel nach einer erfolglosen Korrektur eines Fehlers in Daten, die aus der Speicherkomponente durch eine Lese-Operation mit einer anderen Lese-Schwellenspannung gelesen werden. Nachdem die Lese-Operation unter Verwendung der entsprechenden Lese-Schwellenspannung durchgeführt wurde, kann die bestimmte Lese-Schwellenspannung durch die optimierte Vor-Lese-Schwellenspannung in dem Register ersetzt werden.
  • In einigen Ausführungsformen kann das Speicher-Untersystem eine Anforderung empfangen, um eine Schreib-Operation durchzuführen, um Daten in die Speicherkomponente zu schreiben. Als Reaktion auf das Empfangen der Anforderung, Daten in die Speicherkomponente zu schreiben, kann das Speicher-Untersystem eine Vor-Lese-Operation durchführen, um die Daten in der Speicherkomponente unter Verwendung der im Register gespeicherten Vor-Lese-Schwellenspannung zu lesen.
  • In einigen Ausführungsformen empfängt das Speicher-Untersystem eine Anforderung zum Lesen von Daten in der Speicherkomponente. Als Reaktion auf die Anforderung kann das Speicher-Untersystem eine Lese-Operation durchführen, um Daten in der Speicherkomponente unter Verwendung einer anfänglichen Lese-Schwellenspannung zu lesen. Das Speicher-Untersystem kann bestimmen, dass die Daten, die unter Verwendung der anfänglichen Lese-Schwellenspannung aus der Speicherkomponente gelesen wurden, mit einer erfolglosen Korrektur eines Fehlers in Beziehung stehen. Beispielsweise können die aus der Speicherkomponente gelesenen Daten einen Fehler enthalten, der unter Verwendung von Fehler-Erfassung und Fehler-Korrektur-Code (ECC) nicht korrigierbar ist.
  • Als Reaktion auf das Bestimmen, dass die Daten, die unter Verwendung der anfänglichen Lese-Schwelle in der Speicherkomponente gelesen werden, mit einer erfolglosen Korrektur eines Fehlers in Beziehung stehen, kann das Speicher-Untersystem eine nachfolgende Lese-Schwellenspannung in dem Register speichern, um die zuvor in dem Register gespeicherte Vor-Lese-Schwellenspannung zu ersetzen. Eine nachfolgende Lese-Operation kann durchgeführt werden, um die Daten unter Verwendung der nachfolgenden Lese-Schwellenspannung in der Speicherkomponente zu lesen. Die durch die nachfolgende Lese-Operation gelesenen Daten können fehlerfrei sein oder einen Fehler aufweisen, der korrigierbar ist. In einigen Ausführungsformen kann das Speicher-Untersystem, als Reaktion auf das Durchführen der nachfolgenden Lese-Operation unter Verwendung der nachfolgenden Lese-Schwellenspannung, die im Register gespeicherte nachfolgende Lese-Schwellenspannung durch die Vor-Lese-Schwellenspannung ersetzen.
  • Vorteile der Erfindung umfassen, aber nicht hierauf beschränkt, eine verbesserte Leistung des Speicher-Untersystems. Durch Verwendung einer Vor-Lese-Schwellenspannung, die für die Verwendung mit einer Vor-Lese-Operation optimiert wurde, statt der Verwendung einer für eine Lese-Operation optimierten Schwellenspannung, wird der Verschleiß von Speicherkomponenten verringert und die Lebensdauer des Speicher-Untersystems erhöht. Darüber hinaus können die Aspekte der Erfindung verwendet werden, um Speicher-Untersysteme zu implementieren, die eine unterschiedliche Schwellenspannung für Vor-Lese-Operationen und Lese-Operationen verwenden sowie eine begrenzte Anzahl von Registern haben, in denen Schwellenspannungen gespeichert werden können.
  • 1 zeigt ein beispielhaftes Computersystem 100, das ein Speicher-Untersystem 110 enthält, gemäß einigen Ausführungsformen der vorliegenden Erfindung. Das Speicher-Untersystem 110 kann Medien enthalten, wie zum Beispiel eine oder mehrere flüchtige Speichervorrichtungen (z.B. Speichervorrichtung 140), eine oder mehrere nichtflüchtige Speichervorrichtungen (z.B. Speichervorrichtung 130) oder eine Kombination davon.
  • Ein Speicher-Untersystem 110 kann eine Speichervorrichtung, ein Speichermodul oder ein Hybrid aus einer Speichervorrichtung und einem Speichermodul sein. Beispiele für eine Speichervorrichtung sind ein Solid-State-Laufwerk (SSD), ein Flash-Laufwerk, ein USB-Flash-Laufwerk (Universal Serial Bus Laufwerk), ein eMMC-Laufwerk (Embedded Multi-Media Controller Laufwerk), ein UFS-Laufwerk (Universal Flash Storage Laufwerk), eine SD-Karte (Secure Digital Karte) und ein Festplattenlaufwerk (HDD). Beispiele für Speichermodule umfassen ein Dual-Inline-Speichermodul (DIMM), ein Small-Outline-DIMM (SO-DIMM) und ein nichtflüchtiges Dual-Inline-Speichermodul (NVDIMM).
  • Das Computersystem 100 kann eine Computervorrichtung sein, wie zum Beispiel ein Desktop-Computer, ein Laptop-Computer, ein Netzwerk-Server, eine mobile Vorrichtung, ein Fahrzeug (z.B. ein Flugzeug, eine Drohne, ein Zug, ein Auto oder ein anderes Transportmittel), eine loT-fähige Vorrichtung (Internet der Dinge Vorrichtung), ein eingebetteter Computer (z.B. einer, der in einem Fahrzeug, einer Industrieanlage oder einer vernetzten kommerziellen Vorrichtung enthalten ist) oder eine solche Computervorrichtung, die einen Speicher und eine Verarbeitungsvorrichtung enthält.
  • Das Computersystem 100 kann ein Host-System 120 umfassen, das mit einem oder mehreren Speicher-Untersystemen 110 verbunden ist. In einigen Ausführungsformen ist das Host-System 120 mit verschiedenen Arten von Speicher-Untersystemen 110 verbunden. 1 zeigt ein Beispiel für ein Host-System 120, das mit einem Speicher-Untersystem 110 gekoppelt ist. Wie hier verwendet, bezieht sich „gekoppelt an“ oder „gekoppelt mit“ allgemein auf eine Verbindung zwischen Komponenten, die eine indirekte kommunikative Verbindung oder eine direkte kommunikative Verbindung (z.B. ohne zwischengeschaltete Komponenten) sein kann, ob verdrahtet oder drahtlos, einschließlich Verbindungen, wie zum Beispiel elektrische, optische, magnetische, usw. Verbindungen.
  • Das Host-System 120 kann einen Prozessor-Chipsatz und einen Software-Stapel enthalten, der von dem Prozessor-Chipsatz ausgeführt wird. Der Prozessor-Chipsatz kann einen oder mehrere Kerne, einen oder mehrere Caches, einen Speicher-Controller (z.B. NVDIMM-Controller) und einen Speicherprotokoll-Controller (z.B. PCle-Controller, SATA-Controller) umfassen. Das Host-System 120 verwendet das Speicher-Untersystem 110, um beispielsweise Daten in das Speicher-Untersystem 110 zu schreiben und Daten aus dem Speicher-Untersystem 110 zu lesen.
  • Das Host-System 120 kann über eine physische Host-Schnittstelle mit dem Speicher-Untersystem 110 gekoppelt sein. Beispiele für eine physische Host-Schnittstelle umfassen, aber nicht beschränkt auf, eine SATA-Schnittstelle (Serial Advanced Technology Attachment Schnittstelle), eine PCIe-Schnittstelle (Peripheral Component Interconnect Express Schnittstelle), eine USB-Schnittstelle (Universal Serial Bus Schnittstelle), einen Fibre Channel, ein SCSI (Small Computer System Interface), ein SAS (Serial Attached SCSI), eine DIMM-Schnittstelle (Dual In-Line Memory Module Schnittstelle) (z.B. eine DIMM-Sockel-Schnittstelle, die Double Data Rate (DDR) unterstützt), usw. Die physische Host-Schnittstelle kann zur Datenübertragung zwischen dem Host-System 120 und dem Speicher-Untersystem 110 verwendet werden. Das Host-System 120 kann ferner eine NVMe-Schnittstelle (NVM Express Schnittstelle) verwenden, um auf die Speicherkomponenten (z.B. Speichervorrichtungen 130) zuzugreifen, wenn das Speicher-Untersystem 110 über die PCIe-Schnittstelle mit dem Host-System 120 gekoppelt ist. Die physische Host-Schnittstelle kann eine Schnittstelle für die Weitergabe von Steuersignalen, Adressensignalen, Datensignalen und anderen Signalen zwischen dem Speicher-Untersystem 110 und dem Host-System 120 bereitstellen.
  • Die Speichervorrichtungen können eine beliebige Kombination der verschiedenen Typen von nichtflüchtigen Speichervorrichtungen und/oder flüchtigen Speichervorrichtungen umfassen. Bei den flüchtigen Speichervorrichtungen (z.B. Speichervorrichtung 140) kann es sich, aber nicht hierauf beschränkt, um Direktzugriffsspeicher (RAM) handeln, wie z.B. dynamische Direktzugriffsspeicher (DRAM) und synchrone dynamische Direktzugriffsspeicher (SDRAM).
  • Einige Beispiele für nichtflüchtige Speichervorrichtungen (z.B. Speichervorrichtung 130) umfassen einen Flash-Speicher vom Typ Negativ-Und (NAND) und Write-in-Place-Speicher, wie z.B. einen dreidimensionalen Kreuzpunktspeicher („3D-Kreuzpunkt“-Speicher). Ein Kreuzpunkt-Array eines nichtflüchtigen Speichers kann eine Bit-Speicherung basierend auf einer Änderung des Bahnwiderstands durchführen, und zwar in Verbindung mit einem stapelbaren Kreuzgitter-Datenzugriffs-Array. Außerdem kann ein nichtflüchtiger Kreuzpunktspeicher im Gegensatz zu vielen Flash-Speichern einen Write-in-Place-Vorgang durchführen, bei dem eine nichtflüchtige Speicherzelle programmiert werden kann, ohne dass die nichtflüchtige Speicherzelle zuvor gelöscht wurde.
  • Jede der Speichervorrichtungen 130 kann ein oder mehrere Arrays aus Speicherzellen enthalten. Ein Typ von Speicherzellen, zum Beispiel Single-Level-Zellen (SLC), kann ein Bit pro Zelle speichern. Andere Typen von Speicherzellen, wie zum Beispiel Multi-Level-Zellen (MLC), Triple-Level-Zellen (TLC) und Quad-Level-Zellen (QLC), können mehrere Bits pro Zelle speichern. In einigen Ausführungsformen kann jede der Speichervorrichtungen 130 ein oder mehrere Arrays aus Speicherzellen, wie zum Beispiel SLCs, MLCs, TLCs, QLCs oder eine beliebige Kombination davon, enthalten. In einigen Ausführungsformen kann eine bestimmte Speichervorrichtung einen SLC-Bereich und einen MLC-Bereich, einen TLC-Bereich oder einen QLC-Bereich von Speicherzellen enthalten. Die Speicherzellen der Speichervorrichtungen 130 können als Seiten gruppiert werden, die sich auf eine logische Einheit der zum Speichern von Daten verwendeten Speichervorrichtung beziehen können. Bei einigen Speichertypen (z.B. NAND) können die Seiten zu Blöcken gruppiert werden. Bei einigen Speichertypen, wie zum Beispiel 3D-Kreuzpunkt, können Seiten über Speicherelemente und Kanäle hinweg gruppiert werden, um Verwaltungseinheiten (MUs) zu bilden. Obwohl nichtflüchtige Speicherkomponenten, wie zum Beispiel 3D-Kreuzpunkt-Typ und Flash-Speicher vom NAND-Typ, beschrieben wurden, kann die Speichervorrichtung 130 auf jeder anderen Typ von nichtflüchtigem Speicher basieren, wie zum Beispiel Festwertspeicher (ROM), Phasenänderungsspeicher (PCM), selbstselektierende Speicher, andere Chalcogenid-basierte Speicher, ferroelektrische Direktzugriffsspeicher (FeRAM), Magneto-Direktzugriffsspeicher (MRAM), NOR-Flash-Speicher (Negativ-Oder-Flash-Speicher), elektrisch löschbare programmierbare Festwertspeicher (EEPROM).
  • Der Speicher-Untersystem-Controller 115 (oder Controller 115 der Einfachheit halber) kann mit den Speichervorrichtungen 130 kommunizieren, um Operationen durchzuführen, wie zum Beispiel Lesen von Daten, Schreiben von Daten oder Löschen von Daten in den Speichervorrichtungen 130 und andere solche Operationen. Der Speicher-Untersystem-Controller 115 kann Hardware enthalten, wie zum Beispiel eine oder mehrere integrierte Schaltungen und/oder diskrete Komponenten, einen Pufferspeicher oder eine Kombination. Die Hardware kann digitale Schaltkreise mit dedizierter (d.h. fest kodierter) Logik zur Durchführung der hier beschriebenen Operationen enthalten. Der Speicher-Untersystem-Controller 115 kann ein Mikro-Controller, eine spezielle Logikschaltung (z.B. ein feldprogrammierbares Gate-Array (FPGA), eine anwendungsspezifische integrierte Schaltung (ASIC), etc.) oder ein anderer geeigneter Prozessor sein.
  • Der Speicher-Untersystem-Controller 115 kann einen Prozessor 117 (z.B. eine Verarbeitungsvorrichtung) enthalten, der ausgestaltet ist, um in einem lokalen Speicher 119 gespeicherte Instruktionen auszuführen. Im dargestellten Beispiel umfasst der lokale Speicher 119 des Speicher-Untersystem-Controllers 115 einen eingebetteten Speicher, der ausgestaltet ist, um Instruktionen zur Durchführung verschiedener Prozesse, Operationen, logischer Abläufe und Routinen zu speichern, die den Betrieb des Speicher-Untersystems 110 steuern, einschließlich der Handhabung von Kommunikation zwischen dem Speicher-Untersystem 110 und dem Host-System 120.
  • In einigen Ausführungsformen kann der lokale Speicher 119 Speicherregister enthalten, die Speicherzeiger, abgerufene Daten, usw. speichern. Der lokale Speicher 119 kann auch einen Festwertspeicher (ROM) zum Speichern von Mikro-Code enthalten. Obwohl das beispielhafte Speicher-Untersystem 110 in 1 so dargestellt wurde, dass es den Speicher-Untersystem-Controller 115 enthält, kann ein Speicher-Untersystem 110 in einer anderen Ausführungsform der vorliegenden Erfindung keinen Speicher-Untersystem-Controller 115 enthalten und stattdessen auf einem externen Controller basieren (z.B. bereitgestellt durch einen externen Host oder durch einen vom Speicher-Untersystem getrennten Prozessor oder Controller).
  • Allgemein kann der Speicher-Untersystem-Controller 115 Befehle oder Operationen vom Host-System 120 empfangen und kann die Befehle oder Operationen in Instruktionen oder geeignete Befehle umwandeln, um den gewünschten Zugriff auf die Speichervorrichtungen 130 zu erreichen. Der Speicher-Untersystem-Controller 115 kann für andere Operationen, wie zum Beispiel Abnutzungsausgleichsoperationen, Speicherbereinigungsoperationen, Fehlererfassungs- und Fehlerkorrektur-Code-Operationen (ECC-Operationen), Verschlüsselungsoperationen, Cache-Operationen und Adressenübersetzungen zwischen einer logischen Adresse (z.B. logische Blockadresse (LBA), Namespace) und einer physischen Adresse (z.B. physische MU-Adresse, physische Blockadresse) verantwortlich sein, die mit den Speichervorrichtungen 130 in Beziehung stehen. Der Speicher-Untersystem-Controller 115 kann ferner eine Host-Schnittstellenschaltung enthalten, um über die physische Host-Schnittstelle mit dem Host-System 120 zu kommunizieren. Die Host-Schnittstellenschaltung kann die vom Host-System empfangenen Befehle in Befehlsinstruktionen umwandeln, um auf die Speichervorrichtungen 130 zuzugreifen, und um die mit den Speichervorrichtungen 130 in Beziehung stehenden Antworten in Informationen für das Host-System 120 umwandeln.
  • Das Speicher-Untersystem 110 kann auch zusätzliche Schaltungen oder Komponenten enthalten, die nicht dargestellt sind. In einigen Ausführungsformen kann das Speicher-Untersystem 110 einen Cache oder Puffer (z.B. DRAM) und Adressenschaltungen (z.B. einen Zeilendekodierer und einen Spaltendekodierer) enthalten, die eine Adresse vom Speicher-Untersystem-Controller 115 empfangen und die Adresse dekodieren können, um auf die Speichervorrichtungen 130 zuzugreifen.
  • In einigen Ausführungsformen umfassen die Speichervorrichtungen 130 lokale Medien-Controller 135, die in Verbindung mit dem Speicher-Untersystem-Controller 115 arbeiten, um Operationen hinsichtlich einer oder mehrerer Speicherzellen der Speichervorrichtungen 130 auszuführen. Ein externer Controller (z.B. der Speicher-Untersystem-Controller 115) kann die Speichervorrichtung 130 extern verwalten (z.B. Medienverwaltungsoperationen hinsichtlich der Speichervorrichtung 130 durchführen). In einigen Ausführungsformen ist eine Speichervorrichtung 130 eine verwaltete Speichervorrichtung, d.h. eine Roh-Speichervorrichtung, die mit einem lokalen Controller (z.B. dem lokalen Controller 135) für die Medienverwaltung innerhalb desselben Speichervorrichtungsbausteins kombiniert ist. Ein Beispiel für eine verwaltete Speichervorrichtung ist eine verwaltete NAND-Vorrichtung (MNAND).
  • In Ausführungsformen umfasst das Speicher-Untersystem 110 einen Speicher-Untersystem-Controller 115, der die hierin beschriebenen Operationen durchführt. In einigen Ausführungsformen kann jede Komponente des Speicher-Untersystems 110 den Speicher-Untersystem-Controller 115 enthalten. Beispielsweise kann der Speicher-Untersystem-Controller 115 Teil des Host-Systems 120, des Speicher-Untersystem-Controllers 115, der Speichervorrichtung 140, der Speichervorrichtung 130 oder eines Betriebssystems (OS) sein (z.B. das OS des Host-Systems 120). In einem anderen Beispiel kann der Speicher-Untersystem-Controller 115 einen Prozessor 117 (Verarbeitungsvorrichtung) enthalten, der ausgestaltet ist, um in dem lokalen Speicher 119 gespeicherte Befehle auszuführen, um die hier beschriebenen Operationen durchzuführen. In einigen Ausführungsformen können die Speicheroperationen eine Schreib-Operation, eine Lese-Operation oder eine Vor-Lese-Operation umfassen, aber nicht hierauf beschränkt. In einigen Ausführungsformen kann eine Vor-Lese-Operation Teil einer Schreib-Operation sein.
  • In einigen Ausführungsformen können die Speicheroperationen, die unter Bezugnahme auf den Speicher-Untersystem-Controller 115 beschrieben wurden, auf einer nichtflüchtigen Kreuzpunkt-Array-Speicherkomponente ausgeführt werden. In einigen Ausführungsformen kann eine nichtflüchtige Kreuzpunkt-Array-Speicherkomponente mehrere Schreib-Operations-Betriebsarten haben, wobei jede der Schreib-Operations-Betriebsarten mit einer anderen Schreib-Operation in Beziehung steht, die auf unterschiedliche Weise in die nichtflüchtige Kreuzpunkt-Array-Speicherkomponente schreibt und unterschiedliche Kompromisse aufweist. Zur Veranschaulichung und nicht zur Einschränkung beschreiben Aspekte der Erfindung einige Operationen des Speicheroperations-Controllers 113, der eine Schreib-Operation (z.B. hier auch als „normale Schreib-Operation“ bezeichnet) von mehreren Schreib-Operationen durchführt. Es versteht sich von selbst, dass Aspekte der Erfindung auf verschiedene Schreib-Operationen angewendet werden können.
  • In Ausführungsformen kann ein Schreib-Operation Daten in die Speichervorrichtung 130 oder in die Speichervorrichtung 140 schreiben, und zwar auf Basis eines Vergleichs zwischen Dateneinheiten der Daten aus dem Cache-Speicher (z.B. dem Speicher, der verwendet wird, um Daten zu speichern, bevor die Daten in die Speichervorrichtung 130 oder in die Speichervorrichtung 140 geschrieben werden) und Dateneinheiten, die zuvor in der Speichervorrichtung 130 oder in der Speichervorrichtung 140 gespeichert wurden. Die Dateneinheiten, die zuvor in die Speichervorrichtung 130 oder in die Speichervorrichtung 140 geschrieben wurden, können bei einer Schreib-Operation (da z.B. für die nichtflüchtige Kreuzpunkt-Array-Speicherkomponente keine Lösch-Operation durchgeführt wird) immer noch in der Speichervorrichtung 130 oder in der Speichervorrichtung 140 vorhanden sein. In einigen Ausführungsformen können die bereits geschriebenen Dateneinheiten denselben Wert (z.B. eine logische „1“ oder eine logische „0“) speichern wie die Dateneinheiten, die geschrieben werden sollen.
  • In einigen Ausführungsformen kann vor einer Schreib-Operation eine Vor-Lese-Operation durchgeführt werden (oder die Schreib-Operation kann eine Vor-Lese-Operation enthalten, die vor dem Schreiben von Daten in die Speichervorrichtung 130 oder in die Speichervorrichtung 140 durchgeführt wird). Die Vor-Lese-Operation kann zunächst Stellen in der Speichervorrichtung 130 oder in der Speichervorrichtung 140 identifizieren, die geschrieben werden sollen, und kann Daten lesen, die aktuell an der bestimmten Stelle der Speichervorrichtung 130 oder der Speichervorrichtung 140 gespeichert sind. Jede Dateneinheit der zu speichernden Daten (z.B. Daten aus dem Cache-Speicher) hat eine entsprechende Dateneinheit in der Speichervorrichtung 130 oder der Speichervorrichtung 140. Die Vor-Lese-Operation kann auch eine Vergleichs-Unter-Operation beinhalten. Wenn beispielsweise eine bestimmte Dateneinheit in der Speichervorrichtung 130 oder in der Speichervorrichtung 140 aktuell Daten speichert, die mit einer entsprechenden Dateneinheit der zu schreibenden Daten übereinstimmen, dann kann der Speicher-Untersystem-Controller 115 bestimmen, dass die bestimmten Daten, die dieser Dateneinheit der zu schreibenden Daten (z.B. gespeichert im Cache-Speicher) Daten entsprechen, nicht an der Stelle in der Speichervorrichtung 130 oder der Speichervorrichtung 140 geschrieben werden. Andernfalls, wenn die bestimmte Dateneinheit in der Speichervorrichtung 130 oder der Speichervorrichtung 140 nicht mit der entsprechenden Dateneinheit der zu schreibenden Daten übereinstimmt, kann eine Schreib-Operation an der bestimmten Stelle der Speichervorrichtung 130 oder der Speichervorrichtung 140 durchgeführt werden.
  • Zum Beispiel kann ein Spannungssignal an die bestimmte Dateneinheit in der Speichervorrichtung 130 oder in der Speichervorrichtung 140 angelegt werden, um einen Wert der Daten zu ändern, die an der bestimmten Stelle der Speichervorrichtung 130 oder der Speichervorrichtung 140 gespeichert sind. Daher schreibt die Verarbeitungsvorrichtung bei der normalen Schreib-Operation Daten in die Speichervorrichtung 130 oder in die Speichervorrichtung 140 für die Dateneinheiten, die einen Datenwert enthalten, der sich von einem Datenwert einer entsprechenden Dateneinheit unterscheidet, die geschrieben werden soll (z.B. gespeichert im Cache-Speicher). Bei einer normalen Schreib-Operation wird ein Teil der Speicherzellen einer Dateneinheit (im Durchschnitt etwa die Hälfte der Speicherzellen einer Dateneinheit) neu geschrieben, und der verbleibende Teil der Speicherzellen der Dateneinheit behält seine vorherigen Werte bei. In Ausführungsformen kann eine normale Schreib-Operation die am häufigsten durchgeführte Schreib-Operation der mehreren Schreib-Operations-Betriebsarten während des Lebenszyklus der Speicherkomponente sein.
  • In Ausführungsformen führt eine erzwungene Schreib-Operation (hier auch als „erzwungenes Schreiben“ bezeichnet), die mit der erzwungenen Schreib-Operations-Betriebsart in Beziehung steht, nicht die Vor-Lese-Operation durch. Stattdessen kann die erzwungene Schreib-Operation eine Spannung an jede Dateneinheit der Speichervorrichtung 130 oder der Speichervorrichtung 140 anlegen, die Daten speichern soll, die geschrieben (und im Cache-Speicher gespeichert) werden sollen. Beispielsweise kann die erzwungene Schreib-Operation eine Spannung an eine Dateneinheit anlegen, um einen Wert von „0“ zu setzen, und kann eine andere Spannung an eine andere Dateneinheit anlegen, um einen Wert von „1“ zu setzen. So kann die erzwungenen Schreib-Operation die gesamten Daten, die in die Speichervorrichtung 130 oder die Speichervorrichtung 140 geschrieben werden sollen, schreiben. In einigen Ausführungsformen kann die erzwungene Schreib-Operations-Betriebsart verwendet werden, um periodisch Speicherstöreffekte zu löschen.
  • In Ausführungsformen führt eine erzwungene Toggle-Schreib-Operation (hier auch als „Toggle-Schreiben“ oder „Toggle-Schreib-Operation“ bezeichnet), die mit einer erzwungenen Toggle-Schreib-Operations-Betriebsart in Beziehung steht, keine Vor-Lese-Operation durch. Die erzwungene Toggle-Schreib-Operation kann als erzwungenes Schreiben mit zwei Durchgängen bezeichnet werden. Ein erster Schreibdurchgang kann ein invertiertes Schreiben sein, bei dem die Daten als invertierte Daten in eine Dateneinheit geschrieben werden (z.B. wenn das Datenbit „0“ ist, wird es als „1“ geschrieben, und umgekehrt). Ein zweiter Schreibdurchgang kann ein nicht invertiertes Schreiben sein, bei dem die Daten als nicht invertierte Daten in die Dateneinheit geschrieben werden (z.B. wenn das Datenbit „0“ ist, wird es als „0“ geschrieben, und umgekehrt). Das erzwungene Toggle-Schreiben kann periodischen verwendet werden, um die Speicherzustände der Speicherzellen zurückzusetzen.
  • Weitere Details bezüglich des Speicheroperations-Controllers 113 werden im Folgenden näher beschrieben.
  • 2 ist ein Blockdiagramm, das Speicheroperationen eines Speicher-Untersystems gemäß einigen Ausführungsformen der Erfindung zeigt. In einigen Ausführungsformen ist der Speicheroperations-Controller 113 funktional mit der Speichervorrichtung 210 gekoppelt. In einigen Ausführungsformen kann die Speichervorrichtung 210 ein Beispiel von einer oder mehreren Speichervorrichtungen 130 oder von einer oder mehreren Speichervorrichtungen 140 aus 1 sein. In einigen Ausführungsformen ist die Speichervorrichtung 210 eine nichtflüchtige Kreuzpunkt-Array-Speichervorrichtung.
  • In einigen Ausführungsformen kann die Speichervorrichtung 210 ein oder mehrere Speicherelemente umfassen, die durch die Speicherelemente („Dies“) 212A-212N dargestellt werden (hier allgemein als „Speicherelement 212“ bezeichnet). Ein Speicherelement kann sich auf einen Materialblock, wie zum Beispiel halbleitendes Material, beziehen, auf dem eine funktionale elektronische Schaltung hergestellt wird. Eine Speichervorrichtung, wie zum Beispiel die Speichervorrichtung 210, kann ein oder mehrere Speicherelemente 212 enthalten. In einigen Ausführungsformen können die Speicherelemente 212 der Speichervorrichtung 210 in einem diskreten Gehäuse verpackt sein, das Anschlüsse, wie zum Beispiel Leitungen oder Lötkugeln, außerhalb des diskreten Gehäuses verwendet. Die Anschlüsse ermöglichen die Übertragung von elektrischen Signalen von außerhalb der Speichervorrichtung 210 auf das Speicherelement der Speichervorrichtung 210 und umgekehrt. In einigen Ausführungsformen ist jedes der Speicherelemente 212 der Speichervorrichtung 210 mit mehreren Registern verbunden, wie zum Beispiel den Registern 214A-214C (hier allgemein als „Register 214“ bezeichnet). Ein Register kann sich auf eine Datenspeichervorrichtung beziehen, die in der Lage ist, binäre Informationen zu speichern. In einigen Ausführungsformen sind die Register ein Typ von flüchtigem Speicher. In einigen Ausführungsformen handelt es sich bei den Registern um On-Die-Register, die auf jedem der Speicherelemente 212 hergestellt werden. In einigen Ausführungsformen ist die Anzahl der Register 214 pro Speicherelement (Chip) begrenzt und wird bei der Herstellung festgelegt. In einigen Ausführungsformen können die Register 214 verwendet werden, um bestimmte Informationen zu speichern, wie zum Beispiel Schwellenspannungen (Vth), wie dargestellt.
  • In einigen Ausführungsformen können die Schwellenspannungen, die mit den Registern 214 in Beziehung stehen, auf unterschiedlichen Spannungen liegen. Zum Beispiel kann die Schwellenspannung 1 (Vth 1) kleiner sein als die Schwellenspannung 2 (Vth 2), und die Schwellenspannung 2 kann kleiner sein als die Schwellenspannung 3 (Vth 3). In einigen Ausführungsformen werden die Schwellenspannungen 1-3 als Standardwerte in die Register 214 geladen und gespeichert, z.B. bei jedem Einschaltvorgang. Zur Veranschaulichung kann die Schwellenspannung 1 einer Lese-Schwellenspannung 1 oder einer Vor-Lese-Schwellenspannung 1 entsprechen und für beide Operationen dieselbe Spannung sein. So kann beispielsweise dieselbe Schwellenspannung 1 sowohl für eine Lese-Operation 1 als auch für eine Vor-Lese-Operation 1 verwendet werden. Die Schwellenspannung 2 kann einer Lese-Schwellenspannung 2 oder einer Vor-Lese-Schwellenspannung 2 entsprechen und kann für beide Operationen dieselbe Spannung sein. So kann beispielsweise dieselbe Schwellenspannung 2 sowohl für eine Lese-Operation 2 als auch für eine Vor-Lese-Operation 2 verwendet werden. In einigen Ausführungsformen kann die Schwellenspannung 3 einer Lese-Schwellenspannung 3 oder einer Vor-Lese-Schwellenspannung 3 entsprechen und kann für jede Operation eine andere Spannung sein. Beispielsweise kann eine unterschiedliche Schwellenspannung 3, wie zum Beispiel die Lese-Schwellenspannung 3 und die Vor-Lese-Schwellenspannung 3, für jede Lese-Operation 3 bzw. Vor-Lese-Operation 3 verwendet werden. Die im Register 214C gespeicherte Schwellenspannung kann unter bestimmten Bedingungen geändert werden, wie nachfolgend beschrieben. In einigen Ausführungsformen sind die Schwellenspannung 1, die Schwellenspannung 2, die Lese-Schwellenspannung 3 und die Vor-Lese-Schwellenspannung 3 unterschiedliche Spannungspegel.
  • Der Graph 220 veranschaulicht ein Beispiel für Schwellenspannungsverteilungen für Speicherzellen einer Speichervorrichtung 210. Eine Schwellenspannungsverteilung kann einen Bereich von Schwellenspannungen (z.B. eine Normalverteilung der Schwellenspannungen) für Speicherzellen darstellen, die mit einer bestimmten Schreibspannung programmiert sind. Die Schreibspannung kann als der Mittelpunkt jeder Verteilung angenommen werden. So werden beispielsweise mehrere Speicherzellen, die als logisch „1“ oder logisch „0“ programmiert sind, mit einer bestimmten Schreibspannung programmiert. Die mit der gleichen Schreibspannung programmierten Speicherzellen können Schwellenspannungen aufweisen, die in die entsprechenden Schwellenspannungsverteilungen fallen. Die verschiedenen Schwellenspannungen 1-3 sind von links nach rechts ansteigend dargestellt.
  • In einigen Ausführungsformen sind die Standard-Schwellenspannungen, die in die Register 214A-214C geladen und gespeichert werden, die Schwellenspannung 1, die Schwellenspannung 2 und die Vor-Lese-Schwellenspannung 3.
  • In einigen Ausführungsformen sind die Standard-Schwellenspannungen, die in die Register 214A-214C geladen und gespeichert werden, die Schwellenspannung 1, die Schwellenspannung 2 und die Lese-Schwellenspannung 3. Der Speicheroperations-Controller 113 kann die Speichervorrichtung 210 um eine Angabe der Standardinhalte des Registers 214C (z.B. Standardregistereinstellungen) bitten. Wenn die Angabe der Inhalte des Registers 214C darauf hinweist, dass das Register 214C die Lese-Schwellenspannung 3 enthält, kann der Speicheroperations-Controller 113 die Vor-Lese-Schwellenspannung 3 in das Register 214C laden, so dass die Vor-Lese-Schwellenspannung 3 im Register 214C als eine „Standard“-Schwellenspannung gespeichert wird. In einigen Ausführungsformen, und wie vorstehend erwähnt, wird die Vor-Lese-Schwellenspannung 3 während der Lebensdauer der Speichervorrichtung 210 häufiger verwendet und soll im Register 214C für einen Großteil der Lebensdauer der Speichervorrichtung 210 gespeichert werden. In einigen Ausführungsformen kann der Speicheroperations-Controller 113 eine Lese-Operation an der Speichervorrichtung 210 durchführen. Zum Beispiel kann das Speicher-Untersystem 110 (z.B. der Speicheroperations-Controller 113) eine Leseanforderung empfangen, um Daten zu lesen, die in der Speichervorrichtung 210 gespeichert sind. Beispielsweise sendet das Host-System 120 eine Anforderung an das Speicher-Untersystem 110, die bestimmte Daten identifiziert, die aus der Speichervorrichtung 210 gelesen werden sollen. In einigen Ausführungsformen führt der Speicheroperations-Controller 113 als Reaktion auf das Empfangen der Leseanforderung einen Lese-Operation in der Speichervorrichtung 210 durch. Der Speicheroperations-Controller 113 kann die Lese-Operation an der Speichervorrichtung 210 unter Verwendung der im Register 214A gespeicherten Lese-Schwellenspannung 1 durchführen. Die aus der Speichervorrichtung 210 gelesenen Daten können von der Speichervorrichtung 210 an das Speicher-Untersystem 110 gesendet werden, wo die Daten in einem Puffer gespeichert werden, der mit dem Speicher-Untersystem-Controller 115 in Beziehung steht.
  • In einem illustrativen Beispiel kann das Speicher-Untersystem 110 ein Striping-Schema verwenden, das eine Datennutzlast (z.B. Benutzerdaten) über mehrere Speicherelemente 212 schreibt oder „strippt“. Zum Beispiel werden die Benutzerdaten über 16 Speicherelemente der Speichervorrichtung 210 geschrieben. 15 der Speicherelemente 212 speichern einen Teil der Benutzerdaten als ein Codewort. Das Codewort kann auch Paritätsdaten (z.B. ein Paritätsbit) enthalten, die als Parität für die Benutzerdaten des Codeworts verwendet werden können. In einigen Beispielen kann eines der Speicherelemente 212 Paritätsdaten für alle Codewörter speichern. Beispielsweise können die ersten 15 Speicherelemente Codewörter speichern, die den Teilen der Benutzerdaten und jeweiligen Codewort-Paritätsbits entsprechen, und das 16-te Speicherelemente kann Paritätsdaten für die ersten 15 Codewörter speichern (z.B. ein XOR der Codewörter für Speicherelemente 1 bis 15). Wenn die Benutzerdaten aus der Speichervorrichtung 210 gelesen werden, wird jedes Codewort, das den Benutzerdaten entspricht, aus den mehreren Speicherelementen 212 gelesen und an den Puffer gesendet, der mit dem Speicher-Untersystem-Controller 115 in Beziehung steht, wo es vorübergehend gespeichert wird.
  • In einigen Ausführungsformen kann der Speicheroperations-Controller 113 eine ECC-Operation bezüglich den im Puffer gespeicherten Daten durchführen, um zu bestimmen, ob die Daten Fehler enthalten. Wenn der Speicheroperations-Controller 113 bestimmt, dass ein Fehler vorliegt, kann die ECC-Operation (z.B. Tier 1 ECC) ferner auf die im Puffer gespeicherten Daten angewendet werden, um zu versuchen, den/die Fehler zu korrigieren. Sind keine Fehler in den Daten vorhanden oder kann die ECC-Operation die Fehler in den Daten korrigieren (z.B. erfolgreiche Korrektur), sendet der Speicheroperations-Controller 113 die (korrigierten) Daten an das Host-System 120. Es sei angemerkt, dass eine ECC-Operation eine bestimmte Anzahl von Fehlern korrigieren kann. Wenn die Anzahl der Fehler in den Daten kleiner oder gleich der Anzahl der Fehler ist, die die ECC-Operation korrigieren kann, korrigiert die ECC-Operation diese Fehler (z.B. erfolgreiche Korrektur). Wenn die Anzahl der Fehler in den Daten größer ist als die Anzahl der Fehler, die die ECC-Operation korrigieren kann, führt die ECC-Operation zu einer erfolglosen Korrektur, bei der die Fehler in den Daten nicht korrigiert werden.
  • Zum Beispiel und wie vorstehend erwähnt, können ein oder mehrere der Codewörter aus den mehreren Speicherelementen 212 Fehler enthalten. In einigen Ausführungsformen kann die ECC-Operation Fehler für ein einzelnes Codewort korrigieren. Wenn jedoch mehrere Codewörter Fehler aufweisen, kann die ECC-Operation zu einer erfolglosen Korrektur führen.
  • In einigen Ausführungsformen ist der Speicheroperations-Controller 113 nicht in der Lage, die Fehler in den Daten zu korrigieren, die im Puffer des Speicher-Untersystem-Controllers 115 gespeichert sind. Zum Beispiel übersteigt die Anzahl der Fehler die Fehlerkorrekturkapazität der ECC-Operation. In einigen Ausführungsformen, wenn der Lese-Operation unter Verwendung der Lese-Schwellenspannung 1 zu einer erfolglosen Fehlerkorrektur führt, kann der Speicheroperations-Controller 113 eine weitere Lese-Operation unter Verwendung einer anderen Lese-Schwellenspannung durchführen, wie zum Beispiel mit der im Register 214B gespeicherten Lese-Schwellenspannung 2. Wie vorstehend erwähnt, ist die Lese-Schwellenspannung 2 in einigen Ausführungsformen größer als die Lese-Schwellenspannung 1. Die Verwendung einer höheren Lese-Schwellenspannung zum Lesen der Daten in der Speichervorrichtung 210 kann in einigen Fällen zu weniger Lesefehlern führen (z.B. zu Fehlern, die aus einer Verschiebung der Schwellenspannungsverteilungen resultieren).
  • Zum Beispiel und wie vorstehend erwähnt, können ein oder mehrere der Codewörter aus den mehreren Speicherelemente 212 Fehler enthalten. In einigen Fällen kann die ECC-Operation Fehler für ein einzelnes Codewort korrigieren. Wenn jedoch mehrere Codewörter Fehler aufweisen, kann die ECC-Operation zu einer erfolglosen Korrektur führen. Der Speicheroperations-Controller 113 kann eine weitere Lese-Operation unter Verwendung einer Schwellenspannung durchführen, die höher ist als die zuvor verwendete Schwellenspannung, um zu versuchen, die Fehler zu reduzieren, die daraus resultieren, dass die Lese-Schwellenspannung zu niedrig ist, um die Daten aus den Speicherelementen, die mit den Codewortfehlern in Beziehung stehen, genau zu lesen.
  • In einigen Ausführungsformen führt der Speicheroperations-Controller 113 die Lese-Operation unter Verwendung der im Register 214B gespeicherten Lese-Schwellenspannung 2 durch. Ähnlich wie bei der Lese-Operation unter Verwendung der Lese-Schwellenspannung 1 können die in der Speichervorrichtung 210 gelesenen Daten (unter Verwendung der Lese-Schwellenspannung 2) von der Speichervorrichtung 210 an das Speicher-Untersystem 110 gesendet werden, wo die Daten in einem Puffer gespeichert werden, der mit dem Speicher-Untersystem-Controller 115 verbunden ist.
  • In einigen Ausführungsformen kann der Speicherbetriebs-Controller 113 eine ECC-Operation bezüglich der Daten, die (gelesen unter Verwendung der Lese-Schwellenspannung 2) in dem Puffer gespeichert sind, durchführen, um zu bestimmen, ob in den Daten ein oder mehrere Fehler vorhanden sind. Wenn der Speicheroperations-Controller 113 bestimmt, dass ein Fehler vorliegt, kann die ECC-Operation (z.B. Tier 1 ECC) weiter auf die im Puffer gespeicherten Daten angewendet werden, um zu versuchen, den Fehler zu korrigieren. Wenn keine Fehler in den Daten vorhanden sind, oder wenn die ECC-Operation die Fehler in den Daten korrigieren kann (z.B. erfolgreiche Korrektur), sendet der Speicheroperations-Controller 113 die (korrigierten) Daten an das Host-System 120. Wenn die Anzahl der Fehler in den Daten größer ist als die Anzahl der Fehler, die die ECC-Operation korrigieren kann, führt die ECC-Operation zu einer erfolglosen Korrektur, bei der die Fehler in den Daten nicht korrigiert werden.
  • In einigen Ausführungsformen ist der Speicheroperations-Controller 113 nicht in der Lage, die Fehler in den Daten zu korrigieren (z.B. Lesen unter Verwendung der Lese-Schwellenspannung 2), die im Puffer des Speicher-Untersystem-Controllers 115 gespeichert sind. In einigen Ausführungsformen kann der Speicheroperations-Controller 113, wenn die Lese-Operation unter Verwendung der Lese-Schwellenspannung 2 zu einer erfolglosen Fehlerkorrektur führt, eine weitere Lese-Operation unter Verwendung einer anderen Lese-Schwellenspannung durchführen, wie beispielsweise der Lese-Schwellenspannung 3.
  • Wie vorstehend erwähnt, kann die im Register 214 gespeicherte Standardschwellenspannung in einigen Ausführungsformen die Vor-Lese-Schwellenspannung 3 sein. Als Reaktion auf das Bestimmen, dass die gelesenen Daten (z.B. unter Verwendung der Lese-Schwellenspannung 1 oder der Lese-Schwellenspannung 2) mit einer erfolglosen Korrektur in Beziehung stehen, kann der Speicheroperations-Controller 113 die Lese-Schwellenspannung 3 im Register 214C speichern, um die zuvor im Register 214C gespeicherte Vor-Lese-Schwellenspannung 3 zu ersetzen.
  • Als Reaktion auf das Bestimmen, dass die gelesenen Daten (z.B. unter Verwendung der Lese-Schwellenspannung 1 oder Lese-Schwellenspannung 2) mit einer erfolglosen Korrektur in Beziehung stehen, kann der Speicheroperations-Controller 113 beispielsweise die Lese-Schwellenspannung 3 identifizieren, die im lokalen Speicher 119 gespeichert ist, und die Lese-Schwellenspannung 3 an die Speichervorrichtung 210 senden, so dass die Lese-Schwellenspannung 3 im Register 214C gespeichert wird.
  • In einigen Ausführungsformen führt der Speicheroperations-Controller 113 die Lese-Operation unter Verwendung der im Register 214C gespeicherten Lese-Schwellenspannung 3 durch. Ähnlich wie bei der Lese-Operation unter Verwendung der Lese-Schwellenspannung 1 oder der Lese-Schwellenspannung 2 können die in der Speichervorrichtung 210 gelesenen Daten (unter Verwendung der Lese-Schwellenspannung 3) von der Speichervorrichtung 210 an das Speicher-Untersystem 110 gesendet werden, wo die Daten in einem Puffer gespeichert werden, der mit dem Speicher-Untersystem-Controller 115 in Beziehung ist.
  • In einigen Ausführungsformen kann der Speicherbetriebs-Controller 113 eine ECC-Operation bezüglich der (unter Verwendung der Lese-Schwellenspannung 3 gelesenen) im Puffer gespeicherten Daten durchführen, um zu bestimmen, ob die Daten Fehler enthalten. Wenn der Speicheroperations-Controller 113 bestimmt, dass ein Fehler vorliegt, kann die ECC-Operation (z.B. Tier 1 ECC) weiter auf die im Puffer gespeicherten Daten angewendet werden, um zu versuchen, den Fehler zu korrigieren. Wenn keine Fehler in den Daten vorhanden sind oder wenn die ECC-Operation den Fehler in den Daten korrigieren kann (z.B. erfolgreiche Korrektur), sendet der Speicheroperations-Controller 113 die (korrigierten) Daten an das Host-System 120. Wenn die Anzahl der Fehler in den Daten größer ist als die Anzahl der Fehler, die die ECC-Operation korrigieren kann, führt die ECC-Operation zu einer erfolglosen Korrektur, bei der die Fehler in den Daten nicht korrigiert werden. In einigen Ausführungsformen kann, wenn die ECC-Operation nicht in der Lage ist, die von der Speichervorrichtung 210 unter Verwendung der Lese-Schwellenspannung 3 gelesenen Daten zu korrigieren, eine zusätzliche ECC-Operation (z.B. eine Tier 2 ECC Operation, die mehr Fehler korrigieren kann als eine Tier 1 ECC Operation) verwendet werden, um die Fehler zu korrigieren. Es ist anzumerken, dass vorstehend Lese-Operationen unter Verwendung von drei verschiedenen Lese-Schwellenspannungen beschrieben wurden. In anderen Ausführungsformen können eine oder mehrere Lese-Operationen durchgeführt werden, wobei die Lese-Operationen mit unterschiedlichen Lese-Schwellenspannungen durchgeführt werden.
  • Als Reaktion auf das Korrigieren der Fehler in den aus der Speichervorrichtung 210 gelesenen Daten unter Verwendung der Lese-Schwellenspannung 3 ersetzt der Speicheroperations-Controller 113 die im Register 214C gespeicherte Lese-Schwellenspannung durch die Vor-Lese-Schwellenspannung 3.
  • In einigen Ausführungsformen kann das Speicher-Untersystem 110 (z.B. der Speicheroperations-Controller 113) eine Anforderung vom Host-System 120 empfangen, eine Schreib-Operation durchzuführen, um Daten in das Speicher-Untersystem 110 zu schreiben. In einigen Ausführungsformen kann der Speicheroperations-Controller 113 als Reaktion auf das Empfangen einer Anforderung zur Durchführung einer Schreib-Operation eine Vor-Lese-Operation durchführen.
  • In einigen Ausführungsformen kann der Speicheroperations-Controller 113 eine oder mehrere Vor-Lese-Operationen durchführen, wobei jede der Vor-Lese-Operationen unter Verwendung von unterschiedlichen Vor-Lese-Schwellenspannungen durchgeführt wird.
  • In einigen Ausführungsformen kann der Speicheroperations-Controller 113 eine Vor-Lese-Operation mit einem dualen Spannungsschema implementieren (hier auch als „duales Spannungsschema“ bezeichnet), wobei der Speicheroperations-Controller 113 mindestens zwei Vor-Lese-Operationen unter Verwendung von zwei verschiedenen Vor-Lese-Schwellenspannungen durchführt. Bei dem dualen Spannungsschema können die beiden Vor-Lese-Schwellenspannungen die Vor-Lese-/Lese-Schwellenspannung 1 sein, die im Register 214A gespeichert ist, und die Vor-Lese-Schwellenspannung 3, die im Register 214C gespeichert ist. In einigen Ausführungsformen ist die Vor-Lese-Schwellenspannung 1 niedriger als die Vor-Lese-Schwellenspannung 3. In dem dualen Spannungsschema kann der Speicheroperations-Controller 113 eine Vor-Lese-Operation unter Verwendung der Vor-Lese-Schwellenspannung 1 durchführen, um Daten an einer Stelle (z.B. Speicherzellen) in der Speichervorrichtung 210 zu lesen, an dem die zu schreibenden Daten gespeichert werden sollen. Der Speicheroperations-Controller 113 kann auch eine weitere Vor-Lese-Operation unter Verwendung der Vor-Lese-Schwellenspannung 3 durchführen, um dieselben Daten zu lesen, die an derselben Stelle in der Speichervorrichtung 210 gespeichert sind.
  • In einigen Ausführungsformen können die beiden Vor-Lese-Operationen des dualen Spannungsschemas dazu beitragen, um zu bestimmen, ob die Daten (z.B. Bits) zuverlässig aus der Speichervorrichtung 210 gelesen werden können. Wenn beispielsweise die Vor-Lese-Operationen mit den verschiedenen Vor-Lese-Schwellenspannungen unterschiedliche Werte für dieselbe Speicherzelle lesen (z.B. weil das Bit für die Speicherzelle am hinteren Ende (3+ Sigma) der Schwellenspannungsverteilung liegt), kann der Speicheroperations-Controller 113 bestimmen, dass der Wert der Speicherzelle nicht zuverlässig gelesen werden kann. Wenn bestimmt wird, dass eine Speicherzelle nicht zuverlässig gelesen werden kann, kann der Speicheroperations-Controller 113 in einigen Ausführungsformen bestimmen, die Daten in die Speicherzelle zu schreiben, obwohl eine der Vor-Lese-Operationen einen Wert gelesen hat, der mit dem zu schreibenden Wert übereinstimmt. Wenn die Vor-Lese-Operationen unter Verwendung den verschiedenen Vor-Lese-Schwellenspannungen dieselben Werte für dieselbe Speicherzelle lesen, kann der Speicheroperations-Controller 113 bestimmen, dass der Wert der Speicherzelle zuverlässig gelesen werden kann. In einigen Ausführungsformen kann der Speicheroperations-Controller 113, wenn der Speicheroperations-Controller 113 bestimmen, dass eine Speicherzelle zuverlässig gelesen werden kann, bestimmen, dass die passenden Daten nicht in die Speicherzelle geschrieben werden.
  • In einigen Ausführungsformen kann das duale Spannungsschema wie folgt implementiert werden. Wenn das Bit, das in eine bestimmte Speicherzelle geschrieben werden soll, eine logische „0“ ist, kann der Speicheroperations-Controller 113 bestimmen, dass die Speicherzelle zuverlässig gelesen werden kann, wenn die Vor-Lese-Operation, die mindestens die Vor-Lese-Schwellenspannung 3 verwendet, eine logische „0“ an der bestimmten Speicherzelle liest. Wenn das Bit, das in eine bestimmte Speicherzelle geschrieben werden soll, eine logische „1“ ist, kann der Speicheroperations-Controller 113 bestimmen, dass die Speicherzelle zuverlässig gelesen werden kann, wenn die Vor-Lese-Operation, die mindestens die Vor-Lese-Schwellenspannung 1 verwendet, eine logische „1“ an der bestimmten Speicherzelle liest. In allen anderen Fällen bestimmt der Speicheroperations-Controller 113, dass die Speicherzelle nicht zuverlässig gelesen wird (z.B. unzuverlässig gelesen). Wenn der Speicheroperations-Controller 113 bestimmt, dass die Speicherzelle zuverlässig gelesen werden kann, schreibt der Speicheroperations-Controller 113 während einer Schreib-Operation nicht in die bestimmte Speicherzelle. Wenn der Speicheroperations-Controller 113 bestimmt, dass die Speicherzelle nicht zuverlässig gelesen werden kann, schreibt der Speicheroperations-Controller 113 während einer Schreib-Operation in die bestimmte Speicherzelle. Das obige gilt für jede Speicherzelle einer Dateneinheit, die als Teil der Schreib-Operation geschrieben wird.
  • In einigen Ausführungsformen wird die Vor-Lese-Schwellenspannung 3 nach Durchführung der Vor-Lese-Operation(en) im Register 214C gespeichert. Wie oben erwähnt, wird in Situationen, in denen eine Lese-Operation die Lese-Schwellenspannung 3 verwendet, die Vor-Lese-Schwellenspannung 3 vorübergehend durch die Lese-Schwellenspannung 3 ersetzt. Nachdem die Lese-Operation unter Verwendung der Lese-Schwellenspannung 3 abgeschlossen ist, ersetzt der Speicheroperations-Controller 113 die Lese-Schwellenspannung 3 im Register 214C durch die Vor-Lese-Schwellenspannung 3.
  • Die im Folgenden beschriebenen Verfahren 300 und 400 aus 3 bzw. 4 können von einer Verarbeitungslogik durchgeführt werden, die Hardware (z.B. Verarbeitungsvorrichtungen, Schaltungen, dedizierte Logik, programmierbare Logik, Mikro-Code, Hardware einer Vorrichtung, integrierte Schaltung, usw.), Software (z.B. Befehle, die auf einem Verarbeitungsgerät ausgeführt werden) oder eine Kombination davon umfassen kann. In einigen Ausführungsformen wird das Verfahren 300 oder 400 vom Speicheroperations-Controller 113 aus 1 durchgeführt. Obwohl in einer bestimmten Abfolge oder Reihenfolge dargestellt, kann die Abfolge oder Reihenfolge der Operationen, sofern nicht anders angegeben, geändert werden. Daher sind die dargestellten Ausführungsformen nur als Beispiele zu verstehen, und die dargestellten Prozesse können in einer anderen Reihenfolge ausgeführt werden, und einige Prozesse können parallel ausgeführt werden. Außerdem können in verschiedenen Ausführungsformen ein oder mehrere Prozesse weggelassen werden. Es sind also nicht alle Prozesse in jeder Ausführungsform erforderlich. Andere Prozessabläufe sind möglich. In einigen Ausführungsformen können die gleichen, andere, mehr oder weniger Operationen durchgeführt werden.
  • 3 ist ein Flussdiagramm eines beispielhaften Verfahrens zur Durchführung einer Lese-Operation in einem Speicher-Untersystem gemäß den Ausführungsformen der Erfindung.
  • Bei Operation 310 empfängt die Verarbeitungslogik eine Anforderung zum Lesen von Daten in der Speicherkomponente. In einigen Ausführungsformen umfasst die Speicherkomponente einen Kreuzpunkt-Array-Speicher.
  • Bei Operation 320 führt die Verarbeitungslogik eine erste Lese-Operation durch, um die Daten in der Speicherkomponente unter Verwendung einer ersten Lese-Schwellenspannung zu lesen. Zum Beispiel kann die Verarbeitungslogik eine Lese-Operation bei der Lese-Schwellenspannung 1 oder der Lese-Schwellenspannung 2 durchführen, wie oben beschrieben.
  • Bei Operation 330 bestimmt die Verarbeitungslogik, dass die an der Speicherkomponente unter Verwendung der ersten Lese-Schwellenspannung gelesenen Daten mit einer ersten erfolglosen Korrektur eines Fehlers in Beziehung stehen. Beispielsweise weisen die an der Speicherkomponente unter Verwendung der ersten Lese-Schwellenspannung gelesenen Daten einen oder mehrere Fehler auf, die nicht durch Tier 1 ECC korrigiert werden können.
  • Bei Operation 340 speichert die Verarbeitungslogik eine zweite Lese-Schwellenspannung in einem Register, um eine zuvor in dem Register gespeicherte erste Vor-Lese-Schwellenspannung zu ersetzen. In einigen Ausführungsformen wird die Operation 340 als Reaktion auf das Bestimmen durchgeführt, dass die Daten, die in der Speicherkomponente unter Verwendung der ersten Lese-Schwellenspannung gelesen werden, mit der ersten erfolglosen Korrektur des Fehlers in Beziehung stehen. In einigen Ausführungsformen wurde die erste Vor-Lese-Schwellenspannung zuvor verwendet, um eine Vor-Lese-Operation bezüglich der Speicherkomponente durchzuführen. In einigen Ausführungsformen ist die erste Lese-Schwellenspannung kleiner als die zweite Lese-Schwellenspannung.
  • In einigen Ausführungsformen steht das Register mit der Speicherkomponente in Beziehung. In einigen Ausführungsformen ist das Register ein On-Die-Register, das mit einem Speicherelement der Speicherkomponente in Beziehung steht.
  • Bei Operation 350 führt die Verarbeitungslogik eine zweite Lese-Operation durch, um die Daten in der Speicherkomponente unter Verwendung der zweiten Lese-Schwellenspannung (z.B. Lese-Schwellenspannung 3) zu lesen. In einigen Ausführungsformen wird die Operation 350 als Reaktion auf das Bestimmen durchgeführt, dass die Daten, die unter Verwendung der ersten Lese-Schwellenspannung in der Speicherkomponente gelesen wurden, mit der ersten erfolglosen Korrektur des Fehlers in Beziehung stehen.
  • In einigen Ausführungsformen führt die Verarbeitungslogik als Reaktion auf das Bestimmen, dass die an der Speicherkomponente unter Verwendung der ersten Lese-Schwellenspannung gelesenen Daten mit der ersten erfolglosen Korrektur des Fehlers in Beziehung stehen, eine dritte Lese-Operation durch, um die Daten an der Speicherkomponente unter Verwendung einer dritten Lese-Schwellenspannung zu lesen. Die Verarbeitungslogik bestimmt, dass die an der Speicherkomponente unter Verwendung der dritten Lese-Schwellenspannung gelesenen Daten mit einer zweiten erfolglosen Korrektur des Fehlers in Beziehung stehen. Die dritte Lese-Operation wird vor dem zweiten Lese-Operation durchgeführt. Das Durchführen der zweiten Lese-Operation erfolgt in Reaktion auf das Bestimmen, dass die an der Speicherkomponente unter Verwendung der ersten Lese-Schwellenspannung gelesenen Daten mit der ersten erfolglosen Korrektur des Fehlers in Beziehung stehen, und auf das Bestimmen, dass die an der Speicherkomponente unter Verwendung der dritten Lese-Schwellenspannung gelesenen Daten mit der zweiten erfolglosen Korrektur des Fehlers in Beziehung stehen. In einigen Ausführungsformen wurde mindestens eine der ersten Lese-Schwellenspannung oder der zweiten Lese-Schwellenspannung in ein entsprechendes, der Speicherkomponente zugeordnetes Register vorgeladen, bevor die Anforderung zum Lesen von Daten in der Speicherkomponente empfangen wurde.
  • Zum Beispiel kann die dritte Lese-Schwellenspannung der oben beschriebenen Lese-Schwellenspannung 2 entsprechen, und die dritte Lese-Operation kann zwischen der ersten Lese-Operation und der zweiten Lese-Operation durchgeführt werden. Sowohl die erste Lese-Operation als auch die dritte Lese-Operation können zu erfolglosen Fehlerkorrekturen führen.
  • In einigen Ausführungsformen speichert die Verarbeitungslogik eine erste Vor-Lese-Schwellenspannung in dem der Speicherkomponente zugeordneten Register als Reaktion auf das Durchführen der zweiten Lese-Operation zum Lesen der Daten in der Speicherkomponente unter Verwendung der zweiten Lese-Schwellenspannung. In einigen Ausführungsformen sind die Daten erste Daten. Die Verarbeitungslogik empfängt eine Anforderung, zweite Daten in die Speicherkomponente zu schreiben. Als Reaktion auf das Empfangen der Anforderung, die zweiten Daten in die Speicherkomponente zu schreiben, führt die Verarbeitungslogik eine erste Vor-Lese-Operation durch, um dritte Daten in der Speicherkomponente unter Verwendung der ersten Vor-Lese-Schwellenspannung zu lesen, die in das Register geladen ist. Die Verarbeitungslogik bestimmt Datenwerte einer ersten Teilmenge der zweiten Daten (z.B. zu schreibende Daten), die mit Datenwerten einer ersten Teilmenge der dritten Daten (die in der Speicherkomponente gespeichert sind) übereinstimmen, und Datenwerte einer zweiten Teilmenge der zweiten Daten, die sich von Datenwerten einer zweiten Teilmenge der dritten Daten unterscheiden, auf der Grundlage der Vor-Lese-Operation. Die Verarbeitungslogik führt eine Schreib-Operation durch, die die Datenwerte der zweiten Teilmenge der zweiten Daten schreibt, die sich von den Datenwerten der zweiten Teilmenge unterscheiden, und unterlässt es, die Datenwerte der ersten Teilmenge der dritten Daten, die mit den Datenwerten der ersten Teilmenge der dritten Daten übereinstimmen, neu zu schreiben.
  • In einigen Ausführungsformen bestimmt die Verarbeitungslogik vor dem Empfangen der Anforderung, Daten in der Speicherkomponente zu lesen, ob eine Standardspannung, die in dem der Speicherkomponente zugeordneten Register gespeichert ist, die zweite Lese-Schwellenspannung ist (z.B. Lese-Schwellenspannung 3). In Reaktion auf das Bestimmen, dass die Standardspannung für das der Speicherkomponente zugeordnete Register die zweite Lese-Schwellenspannung ist, speichert die Verarbeitungslogik eine erste Vor-Lese-Schwellenspannung in dem Register, um die zuvor in dem Register gespeicherte Standardspannung zu ersetzen.
  • 4 ist ein Flussdiagramm eines beispielhaften Verfahrens zum Durchführen einer Schreib-Operation in einem Speicher-Untersystem gemäß Ausführungsformen der Erfindung.
  • Bei Operation 410 führt die Verarbeitungslogik eine Lese-Operation durch, um erste Daten in der Speicherkomponente unter Verwendung einer Lese-Schwellenspannung von mehreren Lese-Schwellenspannungen zu lesen. Die mehreren Lese-Schwellenspannungen werden verwendet, um Lese-Operationen an der Speicherkomponente durchzuführen.
  • Bei Operation 420 empfängt die Verarbeitungslogik eine Anforderung zum Durchführen einer Schreib-Operation zum Schreiben zweiter Daten in die Speicherkomponente. Zum Beispiel kann das Speicher-Untersystem 110 eine Anforderung zum Schreiben von Daten in das Speicher-Untersystem 110 vom Host-System 120 empfangen.
  • Bei Operation 430 führt die Verarbeitungslogik eine Vor-Lese-Operation durch, um dritte Daten an der Speicherkomponente zu lesen, wobei eine erste Vor-Lese-Schwellenspannung verwendet wird, die sich von irgendeiner der mehreren Lese-Schwellenspannungen unterscheidet. In einigen Ausführungsformen wird Operation 430 als Reaktion auf das Empfangen der Anforderung, die zweiten Daten in die Speicherkomponente zu schreiben, durchgeführt.
  • In einigen Ausführungsformen ist die Teilmenge der zweiten Daten eine zweite Teilmenge der zweiten Daten. Um die Vor-Lese-Operation durchzuführen, bestimmt die Verarbeitungslogik Datenwerte einer ersten Teilmenge der zweiten Daten, die mit Datenwerten einer ersten Teilmenge der dritten Daten übereinstimmen, und Datenwerte der zweiten Teilmenge der zweiten Daten (z.B. zu schreibende Daten), die sich von Datenwerten einer zweiten Teilmenge der dritten Daten (z.B. in der Speicherkomponente gespeichert) unterscheiden.
  • Bei Operation 440 führt die Verarbeitungslogik eine Schreib-Operation durch, die eine Teilmenge der zweiten Daten in die Speicherkomponente auf Basis der Vor-Lese-Operation schreibt. In einigen Ausführungsformen wird Operation 440 als Reaktion auf das Empfangen der Anforderung, die zweiten Daten in die Speicherkomponente zu schreiben, durchgeführt.
  • In einigen Ausführungsformen unterlässt es die Verarbeitungslogik zum Durchführen einer Schreib-Operation, die Datenwerte der ersten Teilmenge der dritten Daten, die mit den Datenwerten der ersten Teilmenge der dritten Daten übereinstimmen, neu zu schreiben.
  • In einigen Ausführungsformen ist die Lesespannung der mehreren Lese-Schwellenspannungen eine erste Lese-Schwellenspannung. Die Verarbeitungslogik bestimmt, dass die ersten Daten, die an der Speicherkomponente unter Verwendung der ersten Lese-Schwellenspannung gelesen werden, mit einer ersten erfolglosen Korrektur eines Fehlers in Beziehung stehen. Als Reaktion auf das Bestimmen, dass die ersten Daten, die unter Verwendung der ersten Lese-Schwellenspannung aus der Speicherkomponente gelesen wurden, mit der ersten erfolglosen Korrektur des Fehlers in Beziehung stehen, speichert die Verarbeitungslogik eine zweite Lese-Schwellenspannung in einem Register, um eine erste Vor-Lese-Schwellenspannung zu ersetzen, die zuvor in dem der Speicherkomponente zugeordneten Register gespeichert wurde. Die erste Vor-Lese-Schwellenspannung wurde zuvor verwendet, um eine Vor-Lese-Operation an der Speicherkomponente durchzuführen. Die Verarbeitungslogik führt eine zweite Lese-Operation durch, um die Daten in der Speicherkomponente unter Verwendung der zweiten Lese-Schwellenspannung zu lesen.
  • In einigen Ausführungsformen führt die Verarbeitungslogik als Reaktion auf das Bestimmen, dass die an der Speicherkomponente unter Verwendung der ersten Lese-Schwellenspannung gelesenen ersten Daten mit der ersten erfolglosen Korrektur des Fehlers verbunden sind, einen dritten Lese-Operation durch, um die ersten Daten an der Speicherkomponente unter Verwendung einer dritten Lese-Schwellenspannung der mehreren Lese-Schwellenspannungen zu lesen. Die Verarbeitungslogik bestimmt, dass die ersten Daten, die unter Verwendung der dritten Lese-Schwellenspannung in der Speicherkomponente gelesen wurden, mit einer zweiten erfolglosen Korrektur des Fehlers in Beziehung stehen. Die dritte Lese-Operation wird vor der zweiten Lese-Operation durchgeführt. In einigen Ausführungsformen führt die Verarbeitungslogik die zweite Lese-Operation in Reaktion auf das Bestimmen, dass die an der Speicherkomponente unter Verwendung der ersten Lese-Schwellenspannung gelesenen Daten mit der ersten erfolglosen Korrektur des Fehlers in Beziehung stehen, und auf das Bestimmen, dass die an der Speicherkomponente unter Verwendung der dritten Lese-Schwellenspannung gelesenen Daten mit der zweiten erfolglosen Korrektur des Fehlers in Beziehung stehen, durch.
  • In einigen Ausführungsformen ist die Vor-Lese-Operation eine erste Vor-Lese-Operation. Die Verarbeitungslogik führt eine zweite Vor-Lese-Operation durch, um die dritten Daten in der Speicherkomponente unter Verwendung einer zweiten Vor-Lese-Schwellenspannung zu lesen. Die zweite Vor-Lese-Schwellenspannung ist die gleiche Schwellenspannung wie eine der mehreren Lese-Schwellenspannungen und eine andere Schwellenspannung als die erste Vor-Lese-Schwellenspannung. In einigen Ausführungsformen ist die erste Vor-Lese-Schwellenspannung größer als die zweite Vor-Lese-Schwellenspannung.
  • 5 zeigt eine beispielhafte Maschine eines Computersystems 500, in dem ein Satz von Instruktionen ausgeführt werden kann, um die Maschine zu veranlassen, eine oder mehrere der hierin erläuterten Verfahren durchzuführen. In einigen Ausführungsformen kann das Computersystem 500 einem Host-System entsprechen (z.B. das Host-System 120 aus 1), das ein Speicher-Untersystem (z.B. das Speicher-Untersystem 110 aus 1) enthält, mit diesem gekoppelt ist oder dieses nutzt, oder es kann verwendet werden, um die Operationen eines Controllers auszuführen (z.B. um ein Betriebssystem auszuführen, um Operationen durchzuführen, die dem Speicheroperations-Controller 113 aus 1 entsprechen). In alternativen Ausführungsformen kann die Maschine mit anderen Maschinen in einem LAN, einem Intranet, einem Extranet und/oder dem Internet verbunden (z.B. vernetzt) sein. Die Maschine kann in der Funktion eines Servers oder einer Client-Maschine in einer Client-Server-Netzwerkumgebung, als Peer-Maschine in einer Peer-to-Peer-Netzwerkumgebung (oder verteilten Netzwerkumgebung) oder als Server oder Client-Maschine in einer Cloud-Computing-Infrastruktur oder Cloud-Computing-Umgebung arbeiten.
  • Die Maschine kann ein Personal Computer (PC), ein Tablet-PC, eine Set-Top-Box (STB), ein Personal Digital Assistant (PDA), ein Mobiltelefon, eine Web-Anwendung, ein Server, ein Netzwerk-Router, ein Switch oder eine Bridge oder eine beliebige Maschine sein, die in der Lage ist, einen Satz von Instruktionen (sequenziell oder anderweitig) auszuführen, die die von dieser Maschine auszuführenden Aktionen spezifizieren. Auch wenn eine einzelne Maschine abgebildet ist, umfasst der Begriff „Maschine“ auch eine beliebige Sammlung von Maschinen, die einzeln oder gemeinsam einen Satz (oder mehrere Sätze) von Anweisungen ausführen, um eine oder mehrere der hier erörterten Verfahren durchzuführen.
  • Das beispielhafte Computersystem 500 umfasst eine Verarbeitungsvorrichtung 502, einen Hauptspeicher 504 (z.B. Festwertspeicher (ROM), Flash-Speicher, dynamische Direktzugriffsspeicher (DRAM), wie zum Beispiel synchrone DRAM (SDRAM) oder Rambus DRAM (RDRAM), usw.), einen statischen Speicher 506 (z.B. Flash-Speicher, statische Direktzugriffsspeicher (SRAM), usw.) und ein Datenspeichersystem 518, die über einen Bus 530 miteinander kommunizieren.
  • Die Verarbeitungsvorrichtung 502 stellt eine oder mehrere Mehrzweck-Verarbeitungsvorrichtungen dar, wie zum Beispiel einen Mikroprozessor, eine zentrale Verarbeitungseinheit oder ähnliches. Insbesondere kann die Verarbeitungsvorrichtung ein CISC-Mikroprozessor (Complex Instruction Set Computing Mikroprozessor), ein RISC-Mikroprozessor (Reduced Instruction Set Computing Mikroprozessor), ein VLIW-Mikroprozessor (Very Long Instruction Word Mikroprozessor) oder ein Prozessor sein, der andere Sätze von Instruktionen implementiert, oder ein Prozessor, der eine Kombination von Sätzen von Instruktionen implementiert. Bei der Verarbeitungsvorrichtung 502 kann es sich auch um eine oder mehrere spezielle Verarbeitungsvorrichtungen handeln, wie zum Beispiel eine anwendungsspezifische integrierte Schaltung (ASIC), ein feldprogrammierbares Gate-Array (FPGA), ein digitaler Signalprozessor (DSP), ein Netzwerkprozessor oder Ähnliches. Die Verarbeitungsvorrichtung 502 ist ausgestaltet, um Instruktionen 526 zur Durchführung der hier besprochenen Operationen und Schritte auszuführen. Das Computersystem 500 kann ferner eine Netzwerk-Schnittstellenvorrichtung 508 zur Kommunikation über das Netzwerk 520 umfassen.
  • Das Datenspeichersystem 518 kann ein maschinenlesbares Speichermedium 524 (auch als computerlesbares Medium bekannt) enthalten, auf dem ein oder mehrere Sätze von Instruktionen 526 oder Software gespeichert sind, die eine oder mehrere der hier beschriebenen Verfahren oder Funktionen verkörpern. Die Instruktionen 526 können sich auch vollständig oder zumindest teilweise in dem Hauptspeicher 504 und/oder in der Verarbeitungsvorrichtung 502 befinden, während sie von dem Computersystem 500 ausgeführt werden, wobei der Hauptspeicher 504 und die Verarbeitungsvorrichtung 502 ebenfalls maschinenlesbare Speichermedien darstellen. Das maschinenlesbare Speichermedium 524, das Datenspeichersystem 518 und/oder der Hauptspeicher 504 können dem Speicher-Untersystem 110 aus 1 entsprechen.
  • In einer Ausführungsform enthalten die Instruktionen 526 Instruktionen zum Implementieren von Funktionen, die dem Speicheroperations-Controller 113 aus 1 entsprechen. Obwohl das maschinenlesbare Speichermedium 524 in einem Ausführungsbeispiel als ein einzelnes Medium dargestellt ist, sollte der Begriff „maschinenlesbares Speichermedium“ so verstanden werden, dass er ein einzelnes Medium oder mehrere Medien umfasst, die den einen oder mehrere Sätze von Instruktionen speichern. Der Begriff „maschinenlesbares Speichermedium“ soll auch jedes Medium umfassen, das in der Lage ist, einen Satz von Instruktionen zur Ausführung durch die Maschine zu speichern oder zu kodieren, und die Maschine veranlasst, eine oder mehrere der Verfahren der vorliegenden Erfindung durchzuführen. Der Begriff „maschinenlesbares Speichermedium“ soll daher Solid-State-Speicher, optische Medien und magnetische Medien umfassen, aber nicht hierauf beschränkt.
  • Einige Teile der vorangehenden detaillierten Beschreibungen wurden in Form von Algorithmen und symbolischen Darstellungen von Operationen an Datenbits in einem Computerspeicher dargestellt. Diese algorithmischen Beschreibungen und Darstellungen werden von Fachleuten auf dem Gebiet der Datenverarbeitung verwendet, um anderen Fachleuten den Inhalt ihrer Arbeit am effektivsten zu vermitteln. Ein Algorithmus wird hier und im Allgemeinen als eine in sich konsistente Folge von Operationen verstanden, die zu einem gewünschten Ergebnis führt. Bei den Operationen handelt es sich um solche, die physikalische Manipulationen von physikalischen Größen erfordern. Normalerweise, wenn auch nicht notwendigerweise, haben diese Größen die Form von elektrischen oder magnetischen Signalen, die gespeichert, kombiniert, verglichen und anderweitig manipuliert werden können. Zuweilen hat es sich als zweckmäßig erwiesen, diese Signale als Bits, Werte, Elemente, Symbole, Zeichen, Begriffe, Zahlen oder Ähnliches zu bezeichnen, hauptsächlich aus Gründen des allgemeinen Sprachgebrauchs.
  • Es sollte jedoch bedacht werden, dass alle diese und ähnliche Begriffe mit den entsprechenden physikalischen Größen in Verbindung gebracht werden müssen und lediglich praktische Bezeichnungen für diese Größen sind. Die vorliegende Erfindung kann sich auf die Aktionen und Prozesse eines Computersystems oder eines ähnlichen elektronischen Rechengeräts beziehen, das Daten, die als physikalische (elektronische) Größen in den Registern und Speichern des Computersystems dargestellt werden, manipuliert und in andere Daten umwandelt, die in ähnlicher Weise als physikalische Größen in den Speichern oder Registern des Computersystems oder in anderen derartigen Informationsspeichersystemen dargestellt werden.
  • Die vorliegende Erfindung bezieht sich auch auf eine Vorrichtung zum Durchführen der hier beschriebenen Operationen. Diese Vorrichtung kann speziell für die beabsichtigten Zwecke konstruiert sein, oder sie kann einen Allzweckcomputer umfassen, der durch ein im Computer gespeichertes Computerprogramm selektiv aktiviert oder neu konfiguriert wird. Ein solches Computerprogramm kann in einem computerlesbaren Speichermedium gespeichert werden, wie zum Beispiel, aber nicht beschränkt auf, jede Art von Diskette, einschließlich Disketten, optische Disketten, CD-ROMs und magnetisch-optische Disketten, Festwertspeicher (ROMs), Direktzugriffsspeicher (RAMs), EPROMs, EEPROMs, magnetische oder optische Karten oder jede Art von Medien, die zum Speichern elektronischer Instruktionen geeignet sind und jeweils mit einem Computersystembus verbunden sind.
  • Die hier vorgestellten Algorithmen und Anzeigen sind nicht von Natur aus an einen bestimmten Computer oder ein anderes Gerät gebunden. Verschiedene Mehrzwecksysteme können mit Programmen gemäß den hier enthaltenen Lehren verwendet werden, oder es kann sich als zweckmäßig erweisen, ein spezielleres Gerät zum Durchführen des Verfahrens zu konstruieren. Die Struktur für eine Vielzahl dieser Systeme wird in der folgenden Beschreibung dargestellt. Darüber hinaus wird die vorliegende Erfindung nicht unter Bezugnahme auf eine bestimmte Programmiersprache beschrieben. Es ist offensichtlich, dass eine Vielzahl von Programmiersprachen verwendet werden kann, um die Lehren der Erfindung, wie hier beschrieben, zu implementieren.
  • Die vorliegende Erfindung kann als Computerprogrammprodukt oder Software bereitgestellt werden, die ein maschinenlesbares Medium mit darauf gespeicherten Instruktionen umfassen kann, die zur Programmierung eines Computersystems (oder anderer elektronischer Geräte) zur Durchführung eines Verfahrens gemäß der vorliegenden Erfindung verwendet werden können. Ein maschinenlesbares Medium umfasst jeden Mechanismus zum Speichern von Informationen in einer Form, die von einer Maschine (z.B. einem Computer) gelesen werden kann. In einigen Ausführungsformen umfasst ein maschinenlesbares (z.B. computerlesbares) Medium ein maschinenlesbares (z.B. computerlesbares) Speichermedium, wie zum Beispiel einen Festwertspeicher („ROM“), einen Direktzugriffsspeicher („RAM“), Magnetplatten-Speichermedien, optische Speichermedien, Flash-Speicherkomponenten, usw.
  • Die Worte „Beispiel“ oder „beispielhaft“ werden hier verwendet, um als Beispiele, Instanzen oder Illustrationen zu dienen. Jeder Aspekt oder jedes Design, das hier als „Beispiel“ oder „beispielhaft“ beschrieben wird, ist nicht unbedingt als bevorzugt oder vorteilhaft gegenüber anderen Aspekten oder Designs zu verstehen. Vielmehr soll die Verwendung der Worte „Beispiel“ oder „beispielhaft“ dazu dienen, Konzepte in einer konkreten Weise darzustellen. Wie in dieser Anmeldung verwendet, soll der Begriff „oder“ eher ein einschließendes „oder“ bedeuten als ein ausschließendes „oder“. Das heißt, sofern nicht anders angegeben oder aus dem Kontext ersichtlich, ist mit „X umfasst A oder B“ jede der natürlichen einschließenden Permutationen gemeint. Das heißt, wenn X umfasst A; X umfasst B; oder X umfasst sowohl A als auch B, dann gilt „X umfasst A oder B“ in allen der vorgenannten Fälle. Darüber hinaus können die Artikel „ein“ und „eine“, wie sie in dieser Anmeldung und den beigefügten Ansprüchen verwendet werden, im Allgemeinen so ausgelegt werden, dass sie „ein oder mehrere“ bedeuten, es sei denn, es ist etwas anderes angegeben oder aus dem Kontext geht eindeutig hervor, dass sie sich auf eine Singularform beziehen. Darüber hinaus ist die Verwendung des Begriffs „eine Implementierung“ oder „die eine Implementierung“ oder „eine Ausführungsform“ oder „die eine Ausführungsform“ oder dergleichen nicht so zu verstehen, dass damit dieselbe Implementierung oder Ausführungsform gemeint ist, es sei denn, sie wird als solche beschrieben. Eine oder mehrere der hier beschriebenen Implementierungen oder Ausführungsformen können in einer bestimmten Implementierung oder Ausführungsform kombiniert werden. Die hier verwendeten Begriffe „erste“, „zweite“, „dritte“, „vierte“, usw. sind als Kennzeichnungen zur Unterscheidung zwischen verschiedenen Elementen zu verstehen und haben nicht unbedingt eine ordinale Bedeutung entsprechend ihrer numerischen Bezeichnung.
  • In der vorangehenden Beschreibung wurden Ausführungsformen der Erfindung unter Bezugnahme auf spezifische Ausführungsbeispiele beschrieben. Es ist offensichtlich, dass verschiedene Modifikationen daran vorgenommen werden können, ohne dass der breitere Geist und Umfang der Ausführungsformen der Erfindung, wie in den folgenden Ansprüchen dargelegt, verlassen wird. Die Beschreibung und die Zeichnungen sind dementsprechend eher in einem illustrativen als in einem einschränkenden Sinne zu verstehen.

Claims (20)

  1. System, umfassend: eine Speichervorrichtung; und eine Verarbeitungsvorrichtung, die funktional mit der Speichervorrichtung gekoppelt ist, zum: Empfangen einer Anforderung zum Lesen von Daten an der Speichervorrichtung; Durchführen einer ersten Lese-Operation zum Lesen der Daten an der Speichervorrichtung unter Verwendung einer ersten Lese-Schwellenspannung; Bestimmen, dass die an der Speichervorrichtung unter Verwendung der ersten Lese-Schwellenspannung gelesenen Daten mit einer ersten erfolglosen Korrektur eines Fehlers in Beziehung stehen; und als Reaktion auf das Bestimmen, dass die an der Speichervorrichtung unter Verwendung der ersten Lese-Schwellenspannung gelesenen Daten mit der ersten erfolglosen Korrektur des Fehlers in Beziehung stehen, Speichern einer zweiten Lese-Schwellenspannung an einem Register, um eine zuvor an dem Register, das mit der Speichervorrichtung in Beziehung steht, gespeicherte Vor-Lese-Schwellenspannung zu ersetzen, wobei die Vor-Lese-Schwellenspannung zuvor verwendet wurde, um eine Vor-Lese-Operation an der Speichervorrichtung durchzuführen, und Durchführen einer zweiten Lese-Operation zum Lesen der Daten an der Speichervorrichtung unter Verwendung der zweiten Lese-Schwellenspannung.
  2. System nach Anspruch 1, wobei, als Reaktion auf das Bestimmen, dass die an der Speichervorrichtung unter Verwendung der ersten Lese-Schwellenspannung gelesenen Daten mit der ersten erfolglosen Korrektur des Fehlers in Beziehung stehen, die Verarbeitungsvorrichtung ferner ausgestaltetet ist zum: Durchführen einer dritten Lese-Operation zum Lesen der Daten an der Speichervorrichtung unter Verwendung einer dritten Lese-Schwellenspannung, und Bestimmen, dass die an der Speichervorrichtung unter Verwendung der dritten Lese-Schwellenspannung gelesenen Daten mit einer zweiten erfolglosen Korrektur des Fehlers in Beziehung stehen, wobei die dritte Lese-Operation vor der zweiten Lese-Operation durchgeführt wird, und wobei das Durchführen der zweiten Lese-Operation auf das Bestimmen, dass die an der Speichervorrichtung unter Verwendung der ersten Lese-Schwellenspannung gelesenen Daten mit der ersten erfolglosen Korrektur des Fehlers in Beziehung stehen, und auf das Bestimmen reagiert, dass die an der Speichervorrichtung unter Verwendung der dritten Lese-Schwellenspannung gelesenen Daten mit der zweiten erfolglosen Korrektur des Fehlers in Beziehung stehen.
  3. System nach Anspruch 2, wobei mindestens eine von der ersten Lese-Schwellenspannung oder der zweiten Lese-Schwellenspannung an einem entsprechenden Register, das mit der Speichervorrichtung in Beziehung steht, vor dem Empfangen der Anforderung, Daten an der Speichervorrichtung zu lesen, vorgeladen wurde.
  4. System nach Anspruch 1, wobei die Verarbeitungsvorrichtung ferner ausgestaltet ist: um, als Reaktion auf das Durchführen der zweiten Lese-Operation zum Lesen der Daten an der Speichervorrichtung unter Verwendung der zweiten Lese-Schwellenspannung, die Vor-Lese-Schwellenspannung an dem mit der Speichervorrichtung in Beziehung stehenden Register zu speichern.
  5. System nach Anspruch 4, wobei die Daten erste Daten sind, und wobei die Verarbeitungsvorrichtung ferner ausgestaltet ist zum: Empfangen einer Anforderung zum Schreiben zweiter Daten an der Speichervorrichtung; als Reaktion auf das Empfangen der Anforderung zum Schreiben der zweiten Daten an die Speichervorrichtung, Durchführen einer ersten Vor-Lese-Operation zum Lesen dritter Daten an der Speichervorrichtung unter Verwendung der Vor-Lese-Schwellenspannung, die an dem Register geladen ist; Bestimmen von Datenwerten einer ersten Teilmenge der zweiten Daten, die mit Datenwerten einer ersten Teilmenge der dritten Daten übereinstimmen, und von Datenwerten einer zweiten Teilmenge der zweiten Daten, die sich von Datenwerten einer zweiten Teilmenge der dritten Daten unterscheiden, auf Basis der Vor-Lese-Operation; und Durchführen einer Schreib-Operation, die die Datenwerte der zweiten Teilmenge der zweiten Daten, die sich von Datenwerten der zweiten Teilmenge unterscheiden, schreibt und davon absieht, die Datenwerte der ersten Teilmenge der dritten Daten, die mit den Datenwerten der ersten Teilmenge der dritten Daten übereinstimmen, neu zu schreiben.
  6. System nach Anspruch 1, wobei die Verarbeitungsvorrichtung ferner ausgestaltet ist zum: vor dem Empfangen der Anforderung zum Lesen von Daten an der Speichervorrichtung, Bestimmen, ob eine Standardspannung, die an dem Register gespeichert ist, das mit der Speichervorrichtung in Beziehung steht, die zweite Lese-Schwellenspannung ist; und als Reaktion auf das Bestimmen, dass die Standardspannung für das Register, das mit Speichervorrichtung in Beziehung steht, die zweite Lese-Schwellenspannung ist, Speichern der Vor-Lese-Schwellenspannung an dem Register, um die zuvor in dem Register gespeicherte Standardspannung zu ersetzen.
  7. System nach Anspruch 1, wobei das Register ein On-Die-Register ist, das mit einem Speicherelemente der Speichervorrichtung in Beziehung steht, wobei die Speichervorrichtung einen Kreuzpunkt-Array-Speicher umfasst, wobei die erste Lese-Schwellenspannung kleiner als die zweite Lese-Schwellenspannung ist.
  8. System, umfassend: eine Speichervorrichtung; und eine Verarbeitungsvorrichtung, die funktional mit der Speichervorrichtung gekoppelt ist, zum: Durchführen einer Lese-Operation zum Lesen erster Daten an der Speichervorrichtung unter Verwendung einer Lese-Schwellenspannung aus einer Mehrzahl von Lese-Schwellenspannungen, wobei die Mehrzahl von Lese-Schwellenspannungen zum Durchführen von Lese-Operationen an der Speichervorrichtung verwendet werden; Empfangen einer Anforderung zum Durchführen einer Schreib-Operation zum Schreiben zweiter Daten an die Speichervorrichtung; und als Reaktion auf das Empfangen der Anforderung zum Schreiben der zweiten Daten an die Speichervorrichtung, Durchführen einer Vor-Lese-Operation zum Lesen dritter Daten an der Speichervorrichtung unter Verwendung einer ersten Vor-Lese-Schwellenspannung, die sich von einer der Mehrzahl von Lese-Schwellenspannungen unterscheidet, Durchführen einer Schreib-Operation, die eine Teilmenge der zweiten Daten an die Speichervorrichtung auf Basis der Vor-Lese-Operation schreibt.
  9. System nach Anspruch 8, wobei die Teilmenge der zweiten Daten eine zweite Teilmenge der zweiten Daten ist, wobei, zum Durchführen der Vor-Lese-Operation, die Verarbeitungsvorrichtung ferner ausgestaltet ist zum: Bestimmen von Datenwerten einer ersten Teilmenge der zweiten Daten, die mit Datenwerten einer ersten Teilmenge der dritten Daten übereinstimmen, und von Datenwerten der zweiten Teilmenge der zweiten Daten, die sich von Datenwerten einer zweiten Teilmenge der dritten Daten unterscheiden.
  10. System nach Anspruch 9, wobei die Verarbeitungsvorrichtung zum Durchführen der Schreib-Operation ferner ausgestaltet ist zum: Absehen vom Neuschreiben der Datenwerte der ersten Teilmenge der dritten Daten, die mit den Datenwerten der ersten Teilmenge der dritten Daten übereinstimmen.
  11. System nach Anspruch 8, wobei die Lesespannung der Mehrzahl von Lese-Schwellenspannungen eine erste Lese-Schwellenspannung ist, und die Verarbeitungsvorrichtung ferner ausgestaltet ist zum: Bestimmen, dass die ersten Daten, die an der Speichervorrichtung unter Verwendung der ersten Lese-Schwellenspannung gelesen werden, mit einer ersten erfolglosen Korrektur eines Fehlers in Beziehung stehen; und als Reaktion auf das Bestimmen, dass die ersten Daten, die an der Speichervorrichtung unter Verwendung der ersten Lese-Schwellenspannung gelesen werden, mit der ersten erfolglosen Korrektur des Fehlers in Beziehung stehen, Speichern einer zweiten Lese-Schwellenspannung an einem Register, um eine erste Vor-Lese-Schwellenspannung zu ersetzen, die zuvor an dem Register gespeichert wurde, das mit der Speichervorrichtung in Beziehung steht, wobei die erste Vor-Lese-Schwellenspannung zuvor verwendet wurde, um eine Vor-Lese-Operation an der Speichervorrichtung durchzuführen, und Durchführen einer zweiten Lese-Operation zum Lesen der Daten an der Speichervorrichtung unter Verwendung der zweiten Lese-Schwellenspannung.
  12. System nach Anspruch 11, wobei, als Reaktion auf das Bestimmen, dass die ersten Daten, die unter Verwendung der ersten Lese-Schwellenspannung an der Speichervorrichtung gelesen wurden, mit der ersten erfolglosen Korrektur des Fehlers in Beziehung stehen, die Verarbeitungsvorrichtung ferner ausgestaltet ist zum: Durchführen einer dritten Lese-Operation zum Lesen der ersten Daten an der Speichervorrichtung unter Verwendung einer dritten Lese-Schwellenspannung aus der Mehrzahl von Lese-Schwellenspannungen, und Bestimmen, dass die ersten Daten, die an der Speichervorrichtung unter Verwendung der dritten Lese-Schwellenspannung gelesen werden, mit einer zweiten erfolglosen Korrektur des Fehlers in Beziehung stehen, wobei die dritte Lese-Operation vor der zweiten Lese-Operation durchgeführt wird, und wobei das Durchführen der zweiten Lese-Operation auf das Bestimmen, dass die Daten, die an der Speichervorrichtung unter Verwendung der ersten Lese-Schwellenspannung gelesen werden, mit der ersten erfolglosen Korrektur des Fehlers in Beziehung stehen, und auf das Bestimmen reagiert, dass die Daten, die an der Speichervorrichtung unter Verwendung der dritten Lese-Schwellenspannung gelesen werden, mit der zweiten erfolglosen Korrektur des Fehlers in Beziehung stehen.
  13. System nach Anspruch 8, wobei die Vor-Lese-Operation eine erste Vor-Lese-Operation ist, und wobei die Verarbeitungsvorrichtung ferner ausgestaltet ist zum: Durchführen einer zweiten Vor-Lese-Operation zum Lesen der dritten Daten an der Speichervorrichtung unter Verwendung einer zweiten Vor-Lese-Schwellenspannung, wobei die zweite Vor-Lese-Schwellenspannung eine gleiche Schwellenspannung wie eine der Mehrzahl von Lese-Schwellenspannungen und eine andere Schwellenspannung als die erste Vor-Lese-Schwellenspannung ist.
  14. System nach Anspruch 13, wobei die erste Vor-Lese-Schwellenspannung größer ist als die zweite Vor-Lese-Schwellenspannung.
  15. Verfahren, umfassend: Empfangen einer Anforderung zum Lesen von Daten an einer Speichervorrichtung; Durchführen einer ersten Lese-Operation zum Lesen der Daten an der Speichervorrichtung unter Verwendung einer ersten Lese-Schwellenspannung; Bestimmen, dass die an der Speichervorrichtung unter Verwendung der ersten Lese-Schwellenspannung gelesenen Daten mit einer ersten erfolglosen Korrektur eines Fehlers in Beziehung stehen; und als Reaktion auf das Bestimmen, dass die an der Speichervorrichtung unter Verwendung der ersten Lese-Schwellenspannung gelesenen Daten mit der ersten erfolglosen Korrektur des Fehlers in Beziehung stehen, Speichern einer zweiten Lese-Schwellenspannung an einem Register, um eine zuvor an dem Register, das der Speichervorrichtung in Beziehung steht, gespeicherte Vor-Lese-Schwellenspannung zu ersetzen, wobei die Vor-Lese-Schwellenspannung zuvor verwendet wurde, um eine Vor-Lese-Operation an der Speichervorrichtung durchzuführen, und Durchführen einer zweiten Lese-Operation zum Lesen der Daten an der Speichervorrichtung unter Verwendung der zweiten Lese-Schwellenspannung.
  16. Verfahren nach Anspruch 15, ferner umfassend: als Reaktion auf das Bestimmen, dass die an der Speichervorrichtung unter Verwendung der ersten Lese-Schwellenspannung gelesenen Daten mit der ersten erfolglosen Korrektur des Fehlers in Beziehung stehen, Durchführen einer dritten Lese-Operation zum Lesen der Daten an der Speichervorrichtung unter Verwendung einer dritten Lese-Schwellenspannung, und Bestimmen, dass die an der Speichervorrichtung unter Verwendung der dritten Lese-Schwellenspannung gelesenen Daten mit einer zweiten erfolglosen Korrektur des Fehlers in Beziehung stehen, wobei die dritte Lese-Operation vor dem zweiten Lese-Operation durchgeführt wird, und wobei das Durchführen der zweiten Lese-Operation auf das Bestimmen, dass die an der Speichervorrichtung unter Verwendung der ersten Lese-Schwellenspannung gelesenen Daten mit der ersten erfolglosen Korrektur des Fehlers in Beziehung stehen, und auf das Bestimmen reagiert, dass die an der Speichervorrichtung unter Verwendung der dritten Lese-Schwellenspannung gelesenen Daten mit der zweiten erfolglosen Korrektur des Fehlers in Beziehung stehen.
  17. Verfahren nach Anspruch 16, wobei mindestens eine von der ersten Lese-Schwellenspannung oder der zweiten Lese-Schwellenspannung an einem entsprechenden Register, das mit der Speichervorrichtung in Beziehung steht, vor dem Empfangen der Anforderung, Daten an der Speichervorrichtung zu lesen, vorgeladen wurde.
  18. Verfahren nach Anspruch 15, ferner umfassend: als Reaktion auf das Durchführen der zweiten Lese-Operation zum Lesen der Daten an der Speichervorrichtung unter Verwendung der zweiten Lese-Schwellenspannung, Speichern der Vor-Lese-Schwellenspannung an dem mit der Speichervorrichtung in Beziehung stehenden Register.
  19. Verfahren nach Anspruch 15, ferner umfassend: vor dem Empfangen der Anforderung zum Lesen von Daten an der Speichervorrichtung, Bestimmen, ob eine Standardspannung, die an dem Register gespeichert ist, das mit der Speichervorrichtung in Beziehung steht, die zweite Lese-Schwellenspannung ist; und als Reaktion auf das Bestimmen, dass die Standardspannung für das der Register, das mit der Speichervorrichtung in Beziehung steht, die zweite Lese-Schwellenspannung ist, Speichern der Vor-Lese-Schwellenspannung an dem Register, um die zuvor in dem Register gespeicherte Standardspannung zu ersetzen.
  20. Verfahren nach Anspruch 15, wobei das Register ein On-Die-Register ist, das mit einem Speicherelemente der Speichervorrichtung in Beziehung steht, wobei die Speichervorrichtung einen Kreuzpunkt-Array-Speicher umfasst, wobei die erste Lese-Schwellenspannung kleiner als die zweite Lese-Schwellenspannung ist.
DE112020006139.6T 2019-12-16 2020-12-15 Vor-lese-und lese-schwellenspannungsoptimierung Granted DE112020006139T5 (de)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US16/715,639 US10950315B1 (en) 2019-12-16 2019-12-16 Preread and read threshold voltage optimization
US16/715,639 2019-12-16
PCT/US2020/065167 WO2021126885A1 (en) 2019-12-16 2020-12-15 Preread and read threshold voltage optimization

Publications (1)

Publication Number Publication Date
DE112020006139T5 true DE112020006139T5 (de) 2022-11-03

Family

ID=74870311

Family Applications (1)

Application Number Title Priority Date Filing Date
DE112020006139.6T Granted DE112020006139T5 (de) 2019-12-16 2020-12-15 Vor-lese-und lese-schwellenspannungsoptimierung

Country Status (6)

Country Link
US (3) US10950315B1 (de)
JP (1) JP2022551344A (de)
KR (1) KR20220104240A (de)
CN (1) CN114981892A (de)
DE (1) DE112020006139T5 (de)
WO (1) WO2021126885A1 (de)

Families Citing this family (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10950315B1 (en) * 2019-12-16 2021-03-16 Micron Technology, Inc. Preread and read threshold voltage optimization
US11294598B2 (en) 2020-04-24 2022-04-05 Western Digital Technologies, Inc. Storage devices having minimum write sizes of data
US11537510B2 (en) * 2020-04-24 2022-12-27 Western Digital Technologies, Inc. Storage devices having minimum write sizes of data
US11880571B2 (en) 2020-05-13 2024-01-23 Micron Technology, Inc. Counter-based methods and systems for accessing memory cells
US11367484B1 (en) * 2021-01-21 2022-06-21 Micron Technology, Inc. Multi-step pre-read for write operations in memory devices
US11514983B2 (en) 2021-04-02 2022-11-29 Micron Technology, Inc. Identify the programming mode of memory cells based on cell statistics obtained during reading of the memory cells
US11615854B2 (en) 2021-04-02 2023-03-28 Micron Technology, Inc. Identify the programming mode of memory cells during reading of the memory cells
US11664073B2 (en) 2021-04-02 2023-05-30 Micron Technology, Inc. Adaptively programming memory cells in different modes to optimize performance
US11664074B2 (en) 2021-06-02 2023-05-30 Micron Technology, Inc. Programming intermediate state to store data in self-selecting memory cells
US11694747B2 (en) 2021-06-03 2023-07-04 Micron Technology, Inc. Self-selecting memory cells configured to store more than one bit per memory cell

Family Cites Families (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8693257B2 (en) * 2011-10-18 2014-04-08 Seagate Technology Llc Determining optimal read reference and programming voltages for non-volatile memory using mutual information
US9396132B2 (en) * 2012-01-12 2016-07-19 Sony Corporation Storage control device and system to improve data retention in variable resistance memory cells
US9454420B1 (en) * 2012-12-31 2016-09-27 Sandisk Technologies Llc Method and system of reading threshold voltage equalization
US9818488B2 (en) * 2015-10-30 2017-11-14 Seagate Technology Llc Read threshold voltage adaptation using bit error rates based on decoded data
KR20150074655A (ko) * 2013-12-24 2015-07-02 에스케이하이닉스 주식회사 메모리 시스템
US9672102B2 (en) * 2014-06-25 2017-06-06 Intel Corporation NAND memory devices systems, and methods using pre-read error recovery protocols of upper and lower pages
US9899102B2 (en) * 2015-03-31 2018-02-20 SK Hynix Inc. Semiconductor device and operating method thereof
KR20180040288A (ko) * 2016-10-12 2018-04-20 삼성전자주식회사 비휘발성 메모리 장치의 리클레임 제어 방법, 상기 비휘발성 메모리 장치를 포함하는 저장 장치의 동작 방법 및 저장 장치
US10839862B2 (en) * 2018-04-25 2020-11-17 Micron Technology, Inc. Cross point array memory in a non-volatile dual in-line memory module
US10761754B2 (en) * 2018-08-07 2020-09-01 Micron Technology, Inc. Adjustment of a pre-read operation associated with a write operation
US10811091B2 (en) * 2018-10-12 2020-10-20 Western Digital Technologies, Inc. Adaptive processing for read threshold voltage calibration
US11455194B2 (en) * 2019-07-12 2022-09-27 Micron Technology, Inc. Management of unmapped allocation units of a memory sub-system
US10950315B1 (en) * 2019-12-16 2021-03-16 Micron Technology, Inc. Preread and read threshold voltage optimization

Also Published As

Publication number Publication date
US11763896B2 (en) 2023-09-19
JP2022551344A (ja) 2022-12-08
CN114981892A (zh) 2022-08-30
WO2021126885A1 (en) 2021-06-24
US11501838B2 (en) 2022-11-15
US10950315B1 (en) 2021-03-16
KR20220104240A (ko) 2022-07-26
US20230017981A1 (en) 2023-01-19
US20210183454A1 (en) 2021-06-17

Similar Documents

Publication Publication Date Title
DE112020006139T5 (de) Vor-lese-und lese-schwellenspannungsoptimierung
DE102008003113B4 (de) ECC-Steuereinheit, Speichersystem und Verfahren zur Korrektur eines Fehlers
DE102019123709A1 (de) Verwendung verschachtelter schreibvorgänge zur trennung von die-ebenen
DE112016004760T5 (de) System und Verfahren für direktes Schreiben auf einen MLC-Speicher
DE112020006215T5 (de) Blockfamilien-basierte Fehlervermeidung für Speichervorrichtungen
DE112015000378T5 (de) Selektives Rückkopieren für einen auf einem Chipplättchen gepufferten nichtflüchtigen Speicher
DE112021000776T5 (de) Verwaltung von schreib-operationen in einer nichtflüchtigen speichervorrichtung unter verwendung eines variablen vor-lese-spannungspegels
DE102012112354A1 (de) Speichervorrichtung und nichtflüchtige Speichervorrichtung sowie Betriebsverfahren davon
DE102010037290A1 (de) Speichersysteme und Verfahren zur Erfassung einer Verteilung von instabilen Speicherzellen
DE102017128941A1 (de) Speichersystem und Verfahren zur prädiktiven Blockzuweisung zur effizienten Speicherbereinigung
DE102021115373A1 (de) Identifizierte zonen für zonen mit optimaler paritätsteilung
DE112020005787T5 (de) Verbesserte dateisystem-unterstützung für zonen-namespace-speicher
DE112019000161T5 (de) Speicher-cache-verwaltung
DE112020005502T5 (de) Dynamische überprovisionierungszuweisung für zweckbestimmte blöcke
DE102018123961A1 (de) Gruppen-leseaktualisierung
DE112020005157T5 (de) Leistungsdeaktivierung eines speicher-untersystems
DE112020005395T5 (de) Kapazitätserweiterung für speicher-untersysteme
DE102021107436A1 (de) Speichersystem und Verfahren zum direkten Quad-Level-Cell-Programmieren (QLC-Programmieren)
DE112019005506T5 (de) Systeme und verfahren zum finden einer letzten guten seite in einem offenen nand-block
DE112021000474T5 (de) Durchführung einer Medienverwaltungsoperation basierend auf einer Änderung eines Schreibmodus eines Datenblocks in einem Cache
DE112019007666T5 (de) Schreibpuffersteuerung in einem verwalteten Speichersystem
DE112021001848T5 (de) Mehrere pinkonfigurationen von speichervorrichtungen
DE112020006053T5 (de) Aktiver eingabe/ausgabe-expander eines speicher-untersystems
DE112020004442T5 (de) Cache mit geringer latenz für nichtflüchtigen speicher in einem hybriden dimm
DE102022004129A1 (de) Zurückkopier-lösch-befehl zur durchführung einer scan- und leseoperation in einer speichervorrichtung

Legal Events

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