DE112021000776T5 - Verwaltung von schreib-operationen in einer nichtflüchtigen speichervorrichtung unter verwendung eines variablen vor-lese-spannungspegels - Google Patents

Verwaltung von schreib-operationen in einer nichtflüchtigen speichervorrichtung unter verwendung eines variablen vor-lese-spannungspegels Download PDF

Info

Publication number
DE112021000776T5
DE112021000776T5 DE112021000776.9T DE112021000776T DE112021000776T5 DE 112021000776 T5 DE112021000776 T5 DE 112021000776T5 DE 112021000776 T DE112021000776 T DE 112021000776T DE 112021000776 T5 DE112021000776 T5 DE 112021000776T5
Authority
DE
Germany
Prior art keywords
write
segment
data
time interval
read
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
DE112021000776.9T
Other languages
English (en)
Inventor
Ying Yu Tai
Jiangli Zhu
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 DE112021000776T5 publication Critical patent/DE112021000776T5/de
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C16/00Erasable programmable read-only memories
    • G11C16/02Erasable programmable read-only memories electrically programmable
    • G11C16/06Auxiliary circuits, e.g. for writing into memory
    • G11C16/10Programming or data input circuits
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/0604Improving or facilitating administration, e.g. storage management
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/0614Improving the reliability of storage systems
    • G06F3/0619Improving the reliability of storage systems in relation to data integrity, e.g. data losses, bit errors
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0653Monitoring storage devices or systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0655Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
    • G06F3/0659Command handling arrangements, e.g. command buffers, queues, command scheduling
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0673Single storage device
    • G06F3/0679Non-volatile semiconductor memory device, e.g. flash memory, one time programmable memory [OTP]
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C11/00Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor
    • G11C11/56Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using storage elements with more than two stable states represented by steps, e.g. of voltage, current, phase, frequency
    • G11C11/5621Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using storage elements with more than two stable states represented by steps, e.g. of voltage, current, phase, frequency using charge storage in a floating gate
    • G11C11/5628Programming or writing circuits; Data input circuits
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C16/00Erasable programmable read-only memories
    • G11C16/02Erasable programmable read-only memories electrically programmable
    • G11C16/06Auxiliary circuits, e.g. for writing into memory
    • G11C16/34Determination of programming status, e.g. threshold voltage, overprogramming or underprogramming, retention
    • G11C16/3436Arrangements for verifying correct programming or erasure
    • G11C16/3454Arrangements for verifying correct programming or for detecting overprogrammed cells
    • G11C16/3459Circuits or methods to verify correct programming of nonvolatile memory cells
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C16/00Erasable programmable read-only memories
    • G11C16/02Erasable programmable read-only memories electrically programmable
    • G11C16/06Auxiliary circuits, e.g. for writing into memory
    • G11C16/34Determination of programming status, e.g. threshold voltage, overprogramming or underprogramming, retention
    • G11C16/349Arrangements for evaluating degradation, retention or wearout, e.g. by counting erase cycles
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C16/00Erasable programmable read-only memories
    • G11C16/02Erasable programmable read-only memories electrically programmable
    • G11C16/04Erasable programmable read-only memories electrically programmable using variable threshold transistors, e.g. FAMOS
    • G11C16/0483Erasable programmable read-only memories electrically programmable using variable threshold transistors, e.g. FAMOS comprising cells having several storage transistors connected in series
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C2207/00Indexing scheme relating to arrangements for writing information into, or reading information out from, a digital store
    • G11C2207/22Control and timing of internal memory operations
    • G11C2207/2263Write conditionally, e.g. only if new data and old data differ

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Human Computer Interaction (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Hardware Design (AREA)
  • Read Only Memory (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)
  • Microelectronics & Electronic Packaging (AREA)
  • Memory System (AREA)

Abstract

Eine Verarbeitungsvorrichtung, die funktional mit einer Speichervorrichtung gekoppelt ist, ist ausgestaltet, um eine Schreib-Anforderung zu empfangen, um Daten zu identifizieren, die in einem Segment der Speichervorrichtung zu speichern sind. Die Verarbeitungsvorrichtung bestimmt ein Schreiben-zu-Schreiben-Zeitintervall (W2W-Zeitintervall) für das Segment und bestimmt, ob das W2W-Zeitintervall in einen ersten W2W-Zeitintervall-Bereich fällt, wobei der erste W2W-Zeitintervall-Bereich einem ersten Vor-Lese-Spannungspegel entspricht. Als Reaktion darauf, dass das W2W-Zeitintervall für das Segment in den ersten W2W-Intervall-Bereich fällt, führt die Verarbeitungsvorrichtung eine Vor-Lese-Operation an dem Segment unter Verwendung des ersten Vor-Lese-Spannungspegels durch. Die Verarbeitungsvorrichtung identifiziert eine Teilmenge der in dem Segment zu speichernden Daten, die Bits von Daten umfasst, die sich von den entsprechenden Bits der in dem Segment gespeicherten Daten unterscheiden. Die Verarbeitungsvorrichtung führt ferner eine Schreib-Operation durch, um die Teilmenge der Daten in dem Segment zu speichern.

Description

  • TECHNISCHES FELD
  • Die vorliegende Erfindung bezieht sich allgemein auf Speicher-Untersysteme, und betrifft insbesondere das Verwalten von Schreib-Operationen in einer nichtflüchtigen Speichervorrichtung unter Verwendung eines variablen Vor-Lese-Spannungspegels.
  • HINTERGRUND
  • Ein Speicher-Untersystem kann eine oder mehrere Speichervorrichtungen enthalten, die Daten speichern. Bei den Speichervorrichtungen kann es sich beispielsweise um nichtflüchtige Speichervorrichtungen und flüchtige Speichervorrichtungen handeln. Im Allgemeinen kann ein Host-System ein Speicher-Untersystem verwenden, um Daten in den Speichervorrichtungen zu speichern und um Daten aus den Speichervorrichtungen abzurufen.
  • Figurenliste
  • Die vorliegende Erfindung wird anhand der nachstehenden detaillierten Beschreibung und der beigefügten Zeichnungen verschiedener Ausführungsformen der Erfindung vollständiger verstanden.
    • 1 zeigt ein beispielhaftes Computersystem zum Unterstützen von Schreib-Operationen in einer nichtflüchtigen Speichervorrichtung unter Verwendung eines variablen Vor-Lese-Spannungspegels gemäß einigen Ausführungsformen der vorliegenden Erfindung.
    • 2 ist eine Darstellung, die die Bitfehlerrate (BER) als eine Funktion von Schreiben-zu-Schreiben-Zeitintervallen (Write-to-Write-Zeitintervalle bzw. W2W-Zeitintervalle) für zwei Vor-Lese-Spannungspegel gemäß einigen Ausführungsformen der vorliegenden Erfindung zeigt.
    • 3 ist ein Blockdiagramm, das den Prozess zum Verwalten von Zeitstempeln für Datenblöcke auf Basis, wann Daten zuletzt in Dateneinheiten einer Speichervorrichtung geschrieben wurden, gemäß einigen Ausführungsformen der vorliegenden Erfindung zeigt.
    • 4 ist ein Flussdiagramm eines beispielhaften Verfahrens zum Verwalten von Vor-Lese-Operationen unter Verwendung variabler Vor-Lese-Spannungspegel in einem Speicher-Untersystem gemäß einigen Ausführungsformen der vorliegenden Erfindung.
    • 5 ist ein Flussdiagramm eines beispielhaften Verfahrens zum Durchführen einer Vor-Lese-Operation unter Verwendung eines variablen Vor-Lese-Spannungspegels in einem Speicher-Untersystem gemäß einigen Ausführungsformen der vorliegenden Erfindung.
    • 6 ist ein Blockdiagramm eines beispielhaften Computersystems, in dem Ausführungsformen der vorliegenden Erfindung ausgeführt werden können.
  • DETAILLIERTE BESCHREIBUNG
  • Aspekte der vorliegenden Erfindung sind darauf gerichtet, einen variablen Vor-Lese-Spannungspegel zu verwalten, wenn eine Vor-Lese-Operation durchgeführt wird, die einer Schreib-Operation von Daten in Speichervorrichtungen eines Speicher-Untersystems vorausgeht. 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, um in dem Speicher-Untersystem gespeichert zu werden, und kann Daten anfordern, um aus dem Speicher-Untersystem abgerufen zu werden.
  • Ein Speicher-Untersystem kann mehrere Speichervorrichtungen enthalten, die Daten von einem Host-System speichern können. Eine Speichervorrichtung kann eine nichtflüchtige Speichervorrichtung sein. Eine nichtflüchtige Speichervorrichtung ist ein Paket aus einem oder mehreren Speicherbausteinen (Speicherwürfel). Bei den Speichervorrichtungen kann es sich um nichtflüchtige Speichervorrichtungen handeln, wie zum Beispiel um dreidimensionale Kreuzpunkt-Speichervorrichtungen („3D-Kreuzpunkt“-Speichervorrichtungen‟), die ein Kreuzpunkt-Array aus nichtflüchtigen Speichern sind, die eine Bitspeicherung auf Basis einer Änderung des Bahnwiderstands durchführen können, und zwar in Verbindung mit einem stapelbaren Kreuzgitter-Datenzugriffs-Array. Ein weiteres Beispiel für eine nichtflüchtige Speichervorrichtung ist ein Negativ-Und-Speichervorrichtung (NAND-Speichervorrichtung). Weitere Beispiele nichtflüchtiger Speichervorrichtungen werden nachfolgend in Verbindung mit 1 beschrieben. Die Speicherbausteine (Dice) in den Paketen können einem oder mehreren Kanälen für die Kommunikation mit einem Speicher-Untersystem-Controller zugewiesen werden. Jedes Speicherelement bzw. Speicherbaustein (Die) kann eine oder mehrere Ebenen aufweisen. Die Ebenen können zu Logikeinheiten (LUN) gruppiert sein. Bei einigen Typen von nichtflüchtigen Speichervorrichtungen (z.B. NAND-Speichervorrichtungen) umfasst jede Ebene einen Satz von physischen Blöcken, die Gruppen von Speicherzellen zum Speichern von Daten sind. Eine Zelle ist eine elektronische Schaltung, die Informationen speichert.
  • Nichtflüchtige Speichervorrichtungen (NVM-Vorrichtungen) werden aufgrund ihrer verbesserten Lese-/Schreib-Leistungsfähigkeit und ihrer minimalen Latenz häufig verwendet. Aufgrund ihrer Lese-/Schreib-Latenz-Leistungsfähigkeit sind sie auch für Speicher und Speichersysteme sehr beliebt. Ein Typ von NVM-Vorrichtung ermöglicht einen ortsfesten Datenaustauch („In-Place Data Replacement“), wie zum Beispiel Phasenänderungsspeicher (PCM), wobei vorhandene Daten durch neue Daten ersetzt werden können, ohne dass eine Lösch-Operation erforderlich ist. Eine Möglichkeit, die Leistungsfähigkeit in einer NVM-Vorrichtung zu erhöhen, besteht darin, nur die Teilmenge der neuen Daten zu schreiben, die sich von den bereits in derselben Speichereinheit gespeicherten Daten unterscheidet. Um die aktuell in der Speichereinheit gespeicherten Daten zu bestimmen, kann das Speicher-Untersystem vor der Schreib-Operation eine Vor-Lese-Operation durchführen. Das Speicher-Untersystem kann die während des Vor-Lese-Operation erhaltenen Daten mit den neuen Daten vergleichen, die während der Schreib-Operation gespeichert werden sollen. Daher ist die Genauigkeit der Vor-Lese-Operation entscheidend für die Genauigkeit der Schreib-Operation und die Zuverlässigkeit der gesamten Speichervorrichtung.
  • Ähnlich wie eine Lese-Operation werden Vor-Lese-Operationen unter Verwendung eines Vor-Lese-Spannungspegels durchgeführt, der die Fehlerrate der durch die Vor-Lese-Operation erhaltenen Daten beeinflussen kann. Bei bestimmten Speichertypen (d.h. bei Speicher-Untersystemen, die bestimmte Typen von Speichermedien verwenden) kann die Fehlerrate im Laufe der Zeit variieren. Insbesondere haben einige nichtflüchtige Speicher Schwellenspannungsverteilungen (Vt-Verteilungen), die sich in Abhängigkeit von der Zeit verändern. Wenn sich die Vt-Verteilungen bei einem bestimmten Vor-Lese-Pegel (d.h. der Spannung, die als Teil einer Vor-Lese-Operation an eine Speicherzelle angelegt wird) verschieben, können auch bestimmte Zuverlässigkeitsstatistiken beeinflusst werden. Ein Beispiel für eine Zuverlässigkeitsstatistik ist die Rohbit-Fehlerrate (RBER). Die RBER kann als das Verhältnis der Anzahl fehlerhafter Bits zur Anzahl aller Datenbits definiert werden, die in einer Dateneinheit des Speicher-Untersystems gespeichert sind, wobei die Dateneinheit das gesamte Speicher-Untersystem, ein Speicherelement einer Speichervorrichtung, eine Sammlung von Code-Wörtern, eine Sammlung von Speichervorrichtungsseiten, eine Sammlung von Speichervorrichtungsblöcken oder ein anderer sinnvoller Teil des Speicher-Untersystems sein kann. Für jede Vt-Verteilung zu einem bestimmten Zeitpunkt kann es einen optimalen Vor-Lese-Spannungspegel (oder einen Vor-Lese-Spannungsbereich) geben, durch den der erwartete RBER minimiert wird. Insbesondere können die Vt-Verteilung und die RBER eine Funktion der Zeit sein, die seit der Programmierung der Dateneinheit verstrichen ist (d.h. die Zeitperiode, die verstrichen ist, seit Daten in die Dateneinheit geschrieben wurden). Aufgrund dieser zeitlich variierenden Natur der RBER sowie anderer Rauschmechanismen im Speicher reicht ein einziger Vor-Lese-Spannungspegel möglicherweise nicht aus, um eine Fehlerrate zu erreichen, die bestimmte Systemzuverlässigkeitsziele erfüllt.
  • Üblicherweise werden Vor-Lese-Operationen unter Verwendung eines festen Vor-Lese-Spannungspegels durchgeführt. Der Vor-Lese-Spannungspegel kann zum Beispiel korrekte Daten liefern, wenn die Daten innerhalb von Millisekunden nach der Programmierung der Daten in die Dateneinheit gelesen werden. Da der Vor-Lese-Spannungspegel jedoch nicht aktualisiert wird, liefert er möglicherweise keine akzeptablen Lese-Ergebnisse, wenn die Vor-Lese-Operation Minuten oder Stunden nach der Programmierung der Daten in der Dateneinheit erfolgt. In diesem Fall besteht eine herkömmliche Lösung darin, die Daten aus der Speichervorrichtung auszulesen und sie an den Controller des Speicher-Untersystems zu übertragen. Der Controller kann dann Fehlerhandhabungsmechanismen verwenden, um Fehler in den Daten zu dekodieren und zu korrigieren, die durch die Vor-Lese-Operation entstanden sind. Der Controller kann dann die dekodierten Daten mit den neuen Daten vergleichen und die Datenbits bestimmen, die unterschiedlich sind. Obwohl mit diesem Ansatz Daten korrigiert werden können, die aufgrund der Verwendung eines ungeeigneten Spannungspegels für die Vor-Lese-Operation Fehler enthalten, kann dieser Ansatz aufgrund der zusätzlichen Verarbeitung durch den Controller des Speicher-Untersystems zu einem Mehraufwand für den Controller führen. Außerdem kann sich die Latenz der Speichervorrichtung aufgrund der zusätzlichen Schritte der Datenübertragung zu dem Controller erhöhen, was die Bandbreite des Controllers weiter beansprucht und zu einem Rückgang des Controller-Durchsatzes führt.
  • Aspekte der vorliegenden Erfindung beheben die obigen und andere Mängel, indem Schreib-Operationen für Dateneinheiten in einer nichtflüchtigen Speichervorrichtung basierend auf einem variablen Vor-Lese-Spannungspegel für Vor-Lese-Operationen unterstützt werden. In Implementierungen kann das Speicher-Untersystem, wenn das Speicher-Untersystem eine Schreib-Anforderung empfängt, um neue Daten in ein Segment einer Speichervorrichtung zu speichern, eine Vor-Lese-Operation durchführen, bevor die Schreib-Operation durchgeführt wird. Das Speicher-Untersystem kann die Vor-Lese-Operation durchführen, um die aktuell in dem Segment gespeicherten Daten zu erhalten, die aktuell gespeicherten Daten und die mit der Schreib-Anforderung empfangenen Daten zu vergleichen, und dann nur die Datenbits zu schreiben, die sich von den bereits in dem Segment gespeicherten Daten unterscheiden. Das Segment kann sich auf eine oder mehrere Dateneinheiten der Speichervorrichtung beziehen, und jede Dateneinheit kann die kleinste Menge an Speicher darstellen, bei der eine Schreib-Operation durchgeführt werden kann.
  • In einer Implementierung kann die Vor-Lese-Operation unter Verwendung eines Vor-Lese-Spannungspegels durchgeführt werden, der auf Basis des letzten Zeitpunkts bestimmt werden kann, zu dem Daten in dem Segment programmiert oder gespeichert wurden. In diesem Fall kann das Speicher-Untersystem ein Schreiben-zu-Schreiben-Zeitintervall für das Segment bestimmen, und kann einen entsprechenden Vor-Lese-Spannungspegel bestimmen, der beim Durchführen der Vor-Lese-Operation zu verwenden ist. Das Schreiben-zu-Schreiben-Zeitintervall kann sich auf ein Zeitintervall zwischen dem letzten Zeitpunkt, zu dem Daten in das Segment geschrieben wurden (z.B. durch Lesen eines mit dem Segment in Beziehung stehenden Zeitstempels), und dem Zeitpunkt, zu dem die Schreib-Anforderung für das Segment empfangen wurde, beziehen.
  • Wenn das Schreiben-zu-Schreiben-Zeitintervall (W2W-Zeitintervall) für das Segment bestimmt ist, kann das Speicher-Untersystem einen Vor-Lese-Spannungspegel bestimmen, indem bestimmt wird, ob das W2W-Zeitintervall in einen ersten Bereich von W2W-Zeitintervallen mit einem entsprechenden ersten Vor-Lese-Spannungspegel der Speichervorrichtung fällt. In einer Implementierung kann die Speichervorrichtung mehrere Bereiche von W2W-Zeitintervallen haben, wobei jeder Bereich mit einem entsprechenden Vor-Lese-Spannungspegel in Beziehung steht. Wenn das W2W-Zeitintervall des Segments in den ersten Bereich von W2W-Zeitintervallen fällt, kann die erste Vor-Lese-Spannung zum Durchführen der Vor-Lese-Operation verwendet werden.
  • Wenn der Vor-Lese-Spannungspegel auf Basis des W2W-Zeitintervalls des Segments bestimmt ist, kann das Speicher-Untersystem die Vor-Lese-Operation unter Verwendung der bestimmten Vor-Lese-Spannung durchführen, um die aktuell in dem Segment gespeicherten Daten zu erhalten. Das Speicher-Untersystem kann dann die erhaltenen Daten mit den neuen Daten vergleichen, die mit der Schreib-Anforderung empfangen wurden, um in dem Segment gespeichert zu werden. Das Speicher-Untersystem kann dann damit fortfahren, die Bits der neuen Daten in das Segment zu schreiben, die sich von den entsprechenden Bits der bestehenden Daten unterscheiden, die aktuell in dem Segment gespeichert sind.
  • Die hier beschriebenen Techniken zum Unterstützen eines variablen Vor-Lese-Spannungspegels beim Durchführen einer Vor-Lese-Operation vor dem Durchführen einer Schreib-Operation ermöglichen eine verbesserte Gesamtleistungsfähigkeit der NVM-Vorrichtungen. In Speichervorrichtungen, bei denen sich die Spannungsverteilung der Speicherzellen häufig ändert, kann der vorbeigehende Vor-Lese-Spannungspegel basierend auf der Zeit, zu der eine Dateneinheit programmiert wurde, erheblich variieren. Durch einen variablen Vor-Lese-Spannungspegel für Vor-Lese-Operationen einer Dateneinheit, der auf der Zeit basiert, die seit dem Programmieren der Dateneinheit verstrichen ist, können daher die Zuverlässigkeit und Genauigkeit der Vor-Lese-Operation erheblich gesteigert werden, ohne dass ein zeitraubendes Modul zur Handhabung von Lese-Fehlern ausgelöst werden muss, um den Vor-Lese-Spannungspegel so oft zu korrigieren. Da dieser Ansatz in der Speichervorrichtung implementiert werden kann, müssen außerdem keine Daten an den Controller des Speicher-Untersystems übertragen werden, um Fehlerkorrekturmechanismen durchzuführen. Durch das Eliminieren des Datenübertragungsschritts entfällt der zusätzliche Verarbeitungsaufwand des Controllers, und die Verminderung an Bandbreite des Controllers, die durch die Hin- und Her-Übertragung von Daten zwischen dem Controller und der Speichervorrichtung bei jeder Schreib-Operation entstehen kann, wird reduziert. Daher reduzieren die hierin beschriebenen Techniken zum Unterstützen eines variablen Vor-Lese-Spannungspegels, basierend auf der letzten Programmierzeit einer Dateneinheit, beim Durchführen einer Vor-Lese-Operation der Dateneinheit den Overhead der zusätzlichen Verarbeitung durch den Controller, während die Zuverlässigkeit der differentiellen Schreib-Operation in nichtflüchtigen Speichervorrichtungen verbessert wird, wodurch die Gesamtleistungsfähigkeit des Speicher-Untersystems verbessert wird.
  • 1 zeigt ein beispielhaftes Computersystem 100, das ein Speicher-Untersystem 110 gemäß einigen Ausführungsformen der vorliegenden Erfindung enthält. 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 umfassen 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 verschiedene Typen von nichtflüchtigen Dual-Inline-Speichermodulen (NVDIMMs).
  • Das Computersystem 100 kann ein Computer-Vorrichtung 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 „Internet der Dinge“ fähige Vorrichtung (loT-fähige Vorrichtung), ein eingebetteter Computer (z.B. ein solcher, der in einem Fahrzeug, in einer Industrieanlage oder in einer vernetzten kommerziellen Vorrichtung enthalten ist) oder eine solche Computer-Vorrichtung, 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 Typen 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 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 Verbindungen, usw.
  • 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. PCIe-Controller, SATA-Controller) enthalten. Das Host-System 120 verwendet das Speicher-Untersystem 110, um beispielsweise Daten in das Speicher-Untersystem 110 zu schreiben und um 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 sind unter anderem eine SATA-Schnittstelle (Serial Advanced Technology Attachment Schnittstelle), eine PCIe-Schnittstelle (Peripheral Component Interconnect Express Schnittstelle), eine USB-Schnittstelle (Universal Serial Bus Schnittstelle), ein Fibre Channel, ein SAS (Serial Attached SCSI), ein DDR-Speicherbus (Double Data Rate Speicherbus), ein SCSI (Small Computer System Interface), 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 außerdem eine NVM Express Schnittstelle (NVMe-Schnittstelle) verwenden, um auf Komponenten (z.B. Speichervorrichtung 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 zum Weiterleiten von Steuer-, Adressen-, Daten- und anderen Signalen zwischen dem Speicher-Untersystem 110 und dem Host-System 120 bereitstellen. In 1 ist ein Speicher-Untersystem 110 als ein Beispiel dargestellt. Allgemein kann das Host-System 120 über eine gemeinsame Kommunikationsverbindung, mehrere separate Kommunikationsverbindungen und/oder eine Kombination von Kommunikationsverbindungen auf mehrere Speicher-Untersysteme zugreifen.
  • Die Speichervorrichtungen 130, 140 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 um Direktzugriffsspeicher (RAM) handeln, wie z.B. dynamische Direktzugriffsspeicher (DRAM) und synchrone dynamische Direktzugriffsspeicher (SDRAM), ohne darauf beschränkt zu sein.
  • Einige Beispiele für nichtflüchtige Speichervorrichtungen (z.B. Speichervorrichtung 130) umfassen Flash-Speicher vom Typ Negative-Und (NAND) und Write-in-Place-Speicher, wie zum Beispiel dreidimensionale Kreuzpunkt-Speicher („3D-Kreuzpunkt“-Speicher). Bei einem 3D-Kreuzpunkt-Speicher handelt es sich um ein Kreuzpunkt-Array aus nichtflüchtiger Speicherzellen, die in Verbindung mit einer stapelbaren Kreuzgitter-Datenzugriffsanordnung eine Bitspeicherung auf Basis einer Änderung des Bahnwiderstands durchführen kann. Darüber hinaus kann ein nichtflüchtiger Kreuzpunkt-Speicher im Gegensatz zu vielen Flash-Speichern eine Write-in-Place-Operation durchführen, bei der eine nichtflüchtige Speicherzelle programmiert werden kann, ohne dass die nichtflüchtige Speicherzelle zuvor gelöscht wurde. Flash-Speicher vom Typ NAND umfassen beispielsweise zweidimensionale NAND (2D NAND) und dreidimensionale NAND (3D NAND).
  • Jede der Speichervorrichtungen 130 kann ein oder mehrere Arrays aus Speicherzellen enthalten. Ein Typ von Speicherzelle, zum Beispiel Single-Level-Zellen (SLC), kann ein Bit pro Zelle speichern. Andere Typen von Speicherzellen, wie zum Beispiel Multi-Level-Zellen (MLCs), Triple-Level-Zellen (TLCs) und Quad-Level-Zellen (QLCs), können mehrere Bits pro Zelle speichern. In einigen Ausführungsformen kann jede der Speichervorrichtungen 130 ein oder mehrere Arrays aus Speicherzellen enthalten, wie zum Beispiel SLCs, MLCs, TLCs, QLCs oder eine beliebige Kombination davon. 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 Typen von Speichern (z.B. NAND) können Seiten zu Blöcken gruppiert werden. Bei einigen Typen von Speichern, wie zum Beispiel 3D-Kreuzpunkt, können Seiten über Speicherelemente (Dice) und Kanäle hinweg gruppiert werden, um Verwaltungseinheiten (MUs) zu bilden.
  • Obwohl nichtflüchtige Speicherkomponenten, wie zum Beispiel ein 3D-Kreuzpunkt-Array aus nichtflüchtigen Speicherzellen und NAND-Flash-Speicher (z.B., 2D NAND, 3D NAND) beschrieben werden, kann die Speichervorrichtung 130 auf jedem anderen Typ von nichtflüchtigen Speichern basieren, wie zum Beispiel Festwertspeicher (ROM), Phasenänderungsspeicher (PCM), selbstselektierende Speicher, andere Chalcogenid-basierte Speicher, ferroelektrische Direktzugriffsspeicher (FeRAM), ferroelektrische Transistor-Direktzugriffsspeicher (FeTRAM), STT-MRAM (Spin Transfer Torque MRAM), CBRAM (Conductive Bridging RAM), resistive Direktzugriffsspeicher (RRAM), Oxidbasierte RRAM (OxRAM), Negativ-Oder Flash-Memory (NOR Flash-Memory) und elektrisch löschbare programmierbare Festwertspeicher (EEPROM).
  • Ein Speicher-Untersystem-Controller 115 (oder der Einfachheit halber: ein Controller 115) kann mit den Speichervorrichtungen 130 kommunizieren, um Operationen, wie zum Beispiel Lesen von Daten, Schreiben von Daten oder Löschen von Daten in den Speichervorrichtungen 130, und andere solche Operationen durchzuführen. 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 davon. Die Hardware kann eine digitale Schaltung mit dedizierter (d.h. hartkodierter) Logik enthalten, um die hier beschriebenen Operationen durchzuführen. Der Speicher-Untersystem-Controller 115 kann ein Mikrocontroller, eine Logik-Schaltung für spezielle Zwecke (z.B. ein feldprogrammierbares Gate-Array (FPGA), eine anwendungsspezifische integrierte Schaltung (ASIC), usw.) oder ein anderer geeigneter Prozessor sein.
  • Der Speicher-Untersystem-Controller 115 kann einen Prozessor 117 (z.B. eine Verarbeitungsvorrichtung) enthalten, der ausgestaltet ist, um Instruktionen auszuführen, die in dem lokalen Speicher 119 gespeichert sind. In dem gezeigten 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, durch die der Betrieb des Speicher-Untersystems 110 gesteuert wird, einschließlich der Handhabung von Kommunikationen zwischen dem Speicher-Untersystem 110 und dem Host-System 120.
  • In einigen Ausführungsformen kann der lokale Speicher 119 Speicherregister zum Speichern von Speicherzeigern, abgerufenen Daten, usw. enthalten. 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 ist, dass es den Speicher-Untersystem-Controller 115 enthält, kann in einer anderen Ausführungsform der vorliegenden Erfindung ein Speicher-Untersystem 110 keinen Speicher-Untersystem-Controller 115 enthalten und stattdessen auf eine externe Steuerung angewiesen sein (z.B. bereitgestellt durch einen externen Host oder durch einen von dem Speicher-Untersystem getrennten Prozessor oder Controller).
  • Allgemein kann der Speicher-Untersystem-Controller 115 Befehle oder Operationen von dem Host-System 120 empfangen und kann die Befehle oder Operationen in Instruktionen oder geeignete Befehle umwandeln, um die gewünschten Zugriffe auf die Speichervorrichtungen 130 zu erreichen. Der Speicher-Untersystem-Controller 115 kann für andere Operationen verantwortlich sein, 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), die mit den Speichervorrichtungen 130 in Beziehung stehen. Der Speicher-Untersystem-Controller 115 kann außerdem 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 weitere Schaltungen oder Komponenten enthalten, die nicht dargestellt sind. In einigen Ausführungsformen kann das Speicher-Untersystem 110 einen Cache oder einen Puffer (z.B. DRAM) sowie Adressenschaltungen (z.B. einen Zeilen-Dekodierer und einen Spalten-Dekodierer) 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 Speichervorrichtungspakets kombiniert ist. Ein Beispiel für eine verwaltete Speichervorrichtung ist eine verwaltete NAND-Vorrichtung (MNAND).
  • Das Speicher-Untersystem 110 umfasst eine Vor-Lese-Operationsverwaltungskomponente 113, die verwendet werden kann, um Schreib-Operationen für Dateneinheiten in einer nichtflüchtigen Speichervorrichtung auf Basis eines variablen Vor-Lese-Spannungspegels für Vor-Lese-Operationen zu unterstützen. In Implementierungen, wenn das Host-System 120 eine Schreib-Anforderung an das Speicher-Untersystem 110 sendet, um bestimmte Daten in einem Segment der Speichervorrichtungen 130-140 zu speichern, kann das Speicher-Untersystem 110 eine Vor-Lese-Operation durchführen, bevor die angeforderte Schreib-Operation ausgeführt wird. Das Segment kann ein beliebiger physischer oder logischer Bereich der Speichervorrichtung sein, wie zum Beispiel eine Sammlung von Code-Wörtern oder eine Verwaltungseinheit. Das Segment kann sich ferner auf eine oder mehrere Dateneinheiten der Speichervorrichtung beziehen, und jede Dateneinheit kann die kleinste Menge an Speicher darstellen, hinsichtlich derer eine Schreib-Operation durchgeführt werden kann.
  • In bestimmten Implementierungen kann die Vor-Lese-Operation verwendet werden, um Daten zu erhalten, die aktuell in dem Segment gespeichert sind, so dass die aktuellen Daten mit den neuen Daten verglichen werden können, deren Speicherung angefordert wird, um Bits der neuen Daten zu bestimmen, die sich von entsprechenden Bits der aktuell gespeicherten Daten unterscheiden. In diesem Fall kann das Speicher-Untersystem 110 nur die Datenbits schreiben, die sich von den aktuell in dem Segment gespeicherten Daten unterscheiden. Nach Bestimmen der Bits der neuen Daten, die sich von den bereits in dem Segment gespeicherten Daten unterscheiden, kann das Speicher-Untersystem 110 eine Schreib-Operation durchführen, um die bestimmten Bits der neuen Daten in dem Segment zu speichern.
  • In einer Implementierung kann die Vor-Lese-Operation unter Verwendung eines bestimmten Vor-Lese-Spannungspegels durchgeführt werden, der durch die Vor-Lese-Operationsverwaltungskomponente 113 auf Basis des letzten Zeitpunkts, zu dem Daten in dem Segment programmiert oder gespeichert wurden, bestimmt werden kann. Beispielsweise kann die Vor-Lese-Operationsverwaltungskomponente 113 ein Schreiben-zu-Schreiben-Zeitintervall für das Segment bestimmen und kann einen entsprechenden Vor-Lese-Spannungspegel bestimmen, der beim Durchführen der Vor-Lese-Operation zu verwenden ist. In bestimmten Implementierungen kann sich ein Schreiben-zu-Schreiben-Zeitintervall auf ein Zeitintervall zwischen dem letzten Zeitpunkt, zu dem Daten in das Segment geschrieben wurden, und dem Zeitpunkt, zu dem die Schreib-Anforderung für das Segment empfangen wurde, beziehen. Beispielsweise kann die Vor-Lese-Operationsverwaltungskomponente 113 einen Zeitstempelwert speichern, der den letzten Zeitpunkt angibt, zu dem Daten in das Segment oder in eine Gruppe von Segmenten geschrieben wurden, um das W2W-Zeitintervall für das Segment zu bestimmen.
  • Wenn das Schreiben-zu-Schreiben-Zeitintervall (W2W-Zeitintervall) für das Segment bestimmt ist, kann die Vor-Lese-Operationsverwaltungskomponente 113 einen Vor-Lese-Spannungspegel bestimmen, indem bestimmt wird, ob das W2W-Zeitintervall in einen ersten Bereich von W2W-Zeitintervallen mit einem entsprechenden ersten Vor-Lese-Spannungspegel einer Speichervorrichtung 130-140 fällt. In einer Implementierung kann die Speichervorrichtung 130 zwei Bereiche von W2W-Zeitintervallen haben, wobei jeder Bereich eine Spannungsverteilung darstellt, die zu einer minimalen Fehlerrate führt, wenn der entsprechende Vor-Lese-Spannungspegel für eine Lese-Operation verwendet wird. In diesem Fall, wenn das W2W-Zeitintervall des Segments in den ersten Bereich der W2W-Zeitintervalle fällt, kann die erste Vor-Lese-Spannung für die Durchführung der Vor-Lese-Operation verwendet werden. Wenn andererseits das W2W-Zeitintervall des Segments in den zweiten Bereich der W2W-Zeitintervalle fällt, kann die zweite Vor-Lese-Spannung für die Durchführung der Vor-Lese-Operation verwendet werden.
  • Wenn der Vor-Lese-Spannungspegel auf Basis des W2W-Zeitintervalls des Segments bestimmt ist, kann die Vor-Lese-Operationsverwaltungskomponente 113 eine Vor-Lese-Operation unter Verwendung der bestimmten Vor-Lese-Spannung durchführen, um die aktuell in dem Segment gespeicherten Daten zu erhalten. Die Vor-Lese-Operationsverwaltungskomponente 113 kann dann die erhaltenen Daten mit den neuen Daten vergleichen, die mit der Schreib-Anforderung empfangen wurden, um in dem Segment gespeichert zu werden. In bestimmten nichtflüchtigen Speichervorrichtungen (z.B. ein 3D-Kreuzpunkt-Speicher) kann die Schreib-Operation so durchgeführt werden, dass nur Daten geschrieben werden können, die sich von den aktuell in dem Speichersegment gespeicherten Daten unterscheiden. In einem Beispiel kann die Vor-Lese-Operationsverwaltungskomponente 113 jedes Bit der aktuell in dem Segment gespeicherten Daten mit einem entsprechenden Bit der neuen Daten, die in dem Segment gespeichert werden sollen, vergleichen, und, wenn die beiden Bits unterschiedlich sind, kann das entsprechende Bit der neuen Daten als unterschiedlich markiert werden. Wenn die beiden Bits identisch sind, kann das entsprechende Bit der neuen Daten als identisch gekennzeichnet werden. Wenn alle Bits verglichen und als relevant markiert sind, können nur die Bits der neuen Daten, die als unterschiedlich markiert wurden, in das Segment geschrieben werden.
  • 2 ist eine Darstellung 200, die die Bitfehlerrate (BER) als Funktion der Schreiben-zu-Schreiben-Zeitintervalle (W2W-Zeitintervalle) für zwei Vor-Lese-Spannungspegel gemäß einigen Ausführungsformen der vorliegenden Erfindung zeigt. Wie hierin beschrieben, können sich Vt-Verteilungen im Laufe der Zeit verschieben. Beispielsweise kann sich für einen bestimmten Vor-Lese-Spannungspegel, wie zum Beispiel Vor-Lese-Spannungspegel 1, die Bitfehlerrate, die auftritt, wenn Vor-Lese-Operationen unter Verwendung dieses Vor-Lese-Spannungspegels durchgeführt werden, als eine Funktion der Zeit aufgrund der inhärenten Bewegung der Vt-Verteilungen ändern. In ähnlicher Weise können sich auch die entsprechenden Bitfehlerraten von Vor-Lese-Spannungspegel 2 als Funktion der Zeit ändern. In diesen oder anderen Situationen können die Vt-Verteilung und die Bitfehlerrate eine Funktion des W2W-Zeitintervalls sein, das die Zeit darstellt, die seit dem letzten Programmieren einer bestimmten Dateneinheit verstrichen ist. Die Darstellung 200 zeigt, dass jeder der beiden Vor-Lese-Spannungspegel einem anderen Bereich von W2W-Zeiten entspricht, wie zum Beispiel der W2W-Bereich 210 und der W2W-Bereich 220, bei denen es sich um Entwurfsziele aus den Spezifikationen des Speicher-Untersystems handeln kann. In anderen Ausführungsformen kann es eine beliebige andere Anzahl von Bereichen von W2W-Zeitintervallen und zugehörigen Vor-Lese-Spannungspegeln geben.
  • In Darstellung 200 wird die gemessene BER für Vor-Lese-Operationen angezeigt, die unter Verwendung eines bestimmten Vor-Lese-Spannungspegels durchgeführt werden. Beispielsweise stellt die BER-Kurve 212 die BER dar, die für Vor-Lese-Operationen gemessen wurde, die unter Verwendung des Vor-Lese-Spannungspegels 1 bei Segmenten unterschiedlicher W2W-Zeitintervalle durchgeführt wurden, und die BER-Kurve 222 stellt die BER dar, die für Vor-Lese-Operationen gemessen wurden, die unter Verwendung des Vor-Lese-Spannungspegels 2 bei Segmenten unterschiedlicher W2W-Zeitintervalle durchgeführt wurden. Aus der Darstellung 200 ist ersichtlich, dass die Verwendung des Vor-Lese-Spannungspegels 1 zu einer niedrigeren BER für Vor-Lese-Operationen führt, die bei Segmenten der Speicherkomponente mit W2W-Zeitintervallen durchgeführt werden, die in den W2W-Bereich 210 fallen, und dass die Verwendung des Vor-Lese-Spannungspegels 2 zu einer niedrigeren BER für Vor-Lese-Operationen führt, die bei Segmenten der Speichervorrichtung mit W2W-Zeitintervallen durchgeführt werden, die in den W2W-Bereich 220 fallen. In einem anschaulichen Beispiel kann der W2W-Bereich 210 Zeitintervalle zwischen T1L (z.B. 1 Millisekunde) und T1R (z.B. 1 Minute) umfassen. In diesem Fall können Segmente, die vor 1 Millisekunde bis 1 Minute programmiert wurden, den Vor-Lese-Spannungspegel 1 für die Durchführung der Vor-Lese-Operation verwenden. Andererseits kann der W2W-Bereich 220 Zeitintervalle zwischen T2L (z.B. 1 Sekunde) und T1 R (z.B. 10 Stunden) umfassen. In diesem Fall können Segmente, die vor 1 Sekunde bis 10 Stunden programmiert wurden, den Vor-Lese-Spannungspegel 2 für die Durchführung der Vor-Lese-Operation verwenden. In diesem Beispiel kann das Speicher-Untersystem 110 ausgestaltet werden, um alle 10 Stunden eine Schreib-Anforderung für Segmente auszulösen, so dass jedes Segment ein maximales W2W-Zeitintervall von 10 Stunden haben kann. Wenn ein gegebenes W2W-Zeitintervall für ein Segment eine Zeit ist, die in beide W2W-Bereiche fällt (z.B. wenn das W2W-Zeitintervall mehr als 1 Sekunde UND weniger als 1 Minute beträgt), kann das Speicher-Untersystem 110 außerdem bestimmen, dass entweder der Vor-Lese-Spannungspegel 1 oder der Vor-Lese-Spannungspegel 2 für die Vor-Lese-Operation des Segments verwendet werden kann, da jeder Vor-Lese-Spannungspegel zu einer akzeptablen BER führen kann. Eine akzeptable BER kann sich zum Beispiel auf eine Fehlerrate beziehen, die innerhalb der ECC-Fähigkeiten (Error-Control-Coding-Fähigkeiten) der Speichervorrichtung liegt. Das Speicher-Untersystem 110 kann dann entweder den Vor-Lese-Spannungspegel 1 oder den Vor-Lese-Spannungspegel 2 verwenden, um die Vor-Lese-Operation für das Segment durchzuführen.
  • Die Darstellung 200 veranschaulicht ferner, dass für einen einzelnen Vor-Lese-Spannungspegel (z.B. Vor-Lese-Spannungspegel 2) die BER bei niedrigeren W2W-Zeitintervallen (d.h. W2W-Zeiten < T2L) und bei höheren W2W-Zeitintervallen (d.h. W2W-Zeiten > T2R) zunimmt. In einer Implementierung ist der Vor-Lese-Spannungspegel 1 die niedrigste Spannung, und der Vor-Lese-Spannungspegel 2 hat eine höhere Spannung als der Vor-Lese-Spannungspegel 1. Die Werte von Vor-Lese-Spannungspegel 1 und Vor-Lese-Spannungspegel 2 können während der Herstellung der Speichervorrichtung festgelegt werden, können aber optional während der Lebensdauer der Speichervorrichtung angepasst werden.
  • 3 ist ein Blockdiagramm 300, das den Prozess des Verwaltens von Zeitstempeln für Datenblöcke auf Basis des Zeitpunkts, zu dem Daten zuletzt in Dateneinheiten einer Speichervorrichtung geschrieben wurden, gemäß einigen Ausführungsformen der vorliegenden Erfindung veranschaulicht. In einer Implementierung kann die Speichervorrichtung 130 Datenblöcke 310, 350 enthalten. Ein Datenblock kann sich auf einen Satz von Dateneinheiten innerhalb der Speichervorrichtung 130 beziehen. Ein Datenblock kann zum Beispiel eine Speicherregion mit 4000 Dateneinheiten darstellen. In diesem Beispiel kann eine Dateneinheit ein 4000-Byte-Stück des Speichers darstellen. In anderen Implementierungen kann sich eine Dateneinheit auf eine Einheit einer Speichervorrichtung beziehen, die zum Speichern von Daten verwendet wird, und eine oder mehrere Speicherseiten, eine oder mehrere Speicherzellen oder eine oder mehrere Wortleitungen umfassen kann. Jede Dateneinheit kann zu einem anderen Zeitpunkt programmiert werden.
  • Der Datenblock 310 umfasst Dateneinheiten 311, 313, und der Datenblock 350 umfasst Dateneinheiten 351, 353. Die Speichervorrichtung 130 kann ferner einen Zeitstempel 340 enthalten, der verwendet werden kann, um die Zeit der letzten Schreib-Operation zu verfolgen, die an einer Dateneinheit des Datenblocks 310 durchgeführt wurde. Die Speichervorrichtung 130 kann auch einen Zeitstempel 360 enthalten, der verwendet werden kann, um die Zeit der letzten Schreib-Operation zu verfolgen, die an einer Dateneinheit des Datenblocks 350 durchgeführt wurde.
  • Bei Operation 331 kann die Verarbeitungslogik eine Schreib-Anforderung empfangen, um die Dateneinheit 311 zu identifizieren. Die Schreib-Anforderung kann neue Daten enthalten, die in die Dateneinheit 311 geschrieben werden sollen. Die Verarbeitungslogik kann dann die Schreib-Operation durchführen und bestimmen, dass die Dateneinheit 311 mit dem Datenblock 310 in Beziehung steht, der wiederum mit dem Zeitstempel 340 in Beziehung steht. Bei Operation 332 kann die Verarbeitungslogik den Zeitstempel 340 aktualisieren, um den Zeitpunkt anzugeben, zu dem die Schreib-Operation 331 in der Speichervorrichtung 130 empfangen wurde. Folglich kann die Verarbeitungslogik, wenn eine Vor-Lese-Operation bereit ist, bezüglich einer beliebigen Dateneinheit des Datenblocks 310 durchgeführt zu werden, den Zeitstempel 340 lesen, um das W2W-Zeitintervall der Dateneinheit als die Zeit zu bestimmen, die seit der im Zeitstempel 340 aufgezeichneten Zeit verstrichen ist (z.B. W2W-Zeitintervall = aktuelle Zeit - im Zeitstempel 340 gespeicherte Zeit).
  • Bei Operation 333 kann die Verarbeitungslogik eine Schreib-Anforderung empfangen, die die Dateneinheit 313 identifiziert und neue Daten enthält, die in die Dateneinheit 313 geschrieben werden sollen. Die Verarbeitungslogik kann dann die Schreib-Operation durchführen und bestimmen, dass die Dateneinheit 313 mit dem Datenblock 310 in Beziehung steht. Ähnlich wie bei den Schritten, die in Operation 332 durchgeführt werden, kann die Verarbeitungslogik in Operation 334 den Zeitstempel 340 aktualisieren, um den Zeitpunkt anzugeben, zu dem die Schreib-Operation 333 in der Speichervorrichtung 130 empfangen wurde, wodurch angegeben wird, dass der Zeitstempel 340 die jüngste Schreib-Operation widerspiegeln kann, die an einer Dateneinheit des Datenblocks 310 durchgeführt wurde.
  • Bei Operation 335 kann die Verarbeitungslogik eine Schreib-Anforderung empfangen, die die Dateneinheit 351 des Datenblocks 350 identifiziert. Die Schreib-Anforderung kann neue Daten enthalten, die in die Dateneinheit 351 geschrieben werden sollen. Die Verarbeitungslogik kann dann die Schreib-Operation durchführen und bestimmen, dass die Dateneinheit 351 mit dem Datenblock 350 in Beziehung steht, der wiederum mit dem Zeitstempel 360 in Beziehung steht. Bei der Operation 336 kann die Verarbeitungslogik den Zeitstempel 360 aktualisieren, um die Zeit anzugeben, zu der die Schreib-Operation 335 in der Speichervorrichtung 130 empfangen wurde. Folglich kann die Verarbeitungslogik, wenn eine Vor-Lese-Operation bereit ist, an einer beliebigen Dateneinheit des Datenblocks 350 durchgeführt zu werden, den Zeitstempel 360 lesen, um das W2W-Zeitintervall der Dateneinheit als die Zeit zu bestimmen, die seit der im Zeitstempel 360 aufgezeichneten Zeit verstrichen ist (z.B. W2W-Zeitintervall = aktuelle Zeit - im Zeitstempel 360 gespeicherte Zeit).
  • Bei Operation 337 kann die Verarbeitungslogik eine Schreib-Anforderung empfangen, die die Dateneinheit 353 identifiziert und neue Daten enthält, die in die Dateneinheit 353 geschrieben werden sollen. Die Verarbeitungslogik kann dann die Schreib-Operation durchführen und bestimmen, dass die Dateneinheit 353 mit dem Datenblock 350 in Beziehung steht. Ähnlich wie bei den Schritten, die in Operation 335 durchgeführt werden, kann die Verarbeitungslogik in Operation 338 den Zeitstempel 360 aktualisieren, um die Zeit anzugeben, zu der die Schreib-Operation 337 in der Speichervorrichtung 130 empfangen wurde, und dadurch angeben, dass der Zeitstempel 360 die jüngste Schreib-Operation widerspiegeln kann, die an einer Dateneinheit des entsprechenden Datenblocks 350 durchgeführt wurde. In Implementierungen kann die Verarbeitungslogik, wenn der Datenblock 310 gelöscht wird, den Wert des Zeitstempels 340 auf einen Standardwert zurücksetzen, wodurch angegeben wird, dass derzeit keine Daten in dem Datenblock 310 programmiert sind, und folglich angegeben wird, dass das W2W-Zeitintervall für eine Einheit innerhalb des Datenblocks 310 ein minimaler Wert sein sollte. In ähnlicher Weise kann die Verarbeitungslogik den Wert des Zeitstempels 360 auf einen Standardwert zurücksetzen, wenn der Datenblock 350 gelöscht wird, wodurch angegeben wird, dass derzeit keine Daten in dem Datenblock 350 programmiert sind.
  • 4 ist ein Flussdiagramm eines beispielhaften Verfahrens zum Verwalten von Vor-Lese-Operationen unter Verwendung variabler Vor-Lese-Spannungspegel in einem Speicher-Untersystem gemäß einigen Ausführungsformen der vorliegenden Erfindung. Das Verfahren 400 kann von einer Verarbeitungslogik durchgeführt werden, die Hardware (z.B. Verarbeitungsvorrichtung, Schaltungen, dedizierte Logik, programmierbare Logik, Mikro-Code, Hardware einer Vorrichtung, integrierte Schaltungen, usw.), Software (z.B. Instruktionen, die auf einer Verarbeitungsvorrichtung ausgeführt werden) oder eine Kombination davon umfassen kann. In einigen Ausführungsformen wird das Verfahren 400 von der Vor-Lese-Operationsverwaltungskomponente 113 aus 1 durchgeführt. Obwohl in einer bestimmten Abfolge oder Reihenfolge dargestellt, kann die Reihenfolge der Prozesse, 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.
  • Bei Operation 410 empfängt die Verarbeitungslogik eine Schreib-Anforderung von einem Host-System, wobei die Schreib-Anforderung Daten identifiziert, die in einem Segment der Speichervorrichtung gespeichert werden sollen. In Implementierungen kann die Verarbeitungslogik vor der Ausführung der Schreib-Operation eine Vor-Lese-Operation ausführen, um die Teilmenge der zu speichernden Daten zu identifizieren, die sich von den aktuell in dem Segment gespeicherten Daten unterscheidet, wie hier ausführlicher erläutert wird. Um die Vor-Lese-Operation durchzuführen, kann die Verarbeitungslogik einen Vor-Lese-Spannungspegel bestimmen, der dem letzten Zeitpunkt entspricht, zu dem Daten in das Segment geschrieben wurden.
  • Bei Operation 420 bestimmt die Verarbeitungslogik ein Schreiben-zu-Schreiben-Intervall (W2W-Intervall) für das Segment. In Implementierungen kann sich das W2W-Zeitintervall auf ein Zeitintervall zwischen dem letzten Zeitpunkt, zu dem Daten in das Segment geschrieben wurden, und dem Zeitpunkt, zu dem die Schreib-Anforderung für das Segment empfangen wurde, beziehen. In einem Beispiel kann der letzte Zeitpunkt, zu dem Daten geschrieben wurden, anhand eines in der Speichervorrichtung gespeicherten Zeitstempelwerts bestimmt werden, der den letzten Zeitpunkt angibt, zu dem Daten in das Segment geschrieben wurden. In anderen Implementierungen kann sich das W2W-Zeitintervall auf ein Zeitintervall zwischen dem letzten Zeitpunkt, zu dem Daten in eine beliebige Dateneinheit einer Gruppe von Dateneinheiten (z.B. ein mit der Dateneinheit in Beziehung stehender Datenblock) geschrieben wurden, und dem Zeitpunkt des Empfangs der Schreib-Anforderung für die Dateneinheit beziehen. In Implementierungen kann eine Speichervorrichtung mehrere Datenblöcke enthalten, und jeder Datenblock kann mehrere Dateneinheiten enthalten. Für jeden Datenblock kann die Verarbeitungslogik einen entsprechenden Zeitstempelwert speichern, der den letzten Zeitpunkt angibt, zu dem Daten in eine Dateneinheit innerhalb des Datenblocks geschrieben wurden.
  • Bei Operation 430 bestimmt die Verarbeitungsvorrichtung einen Vor-Lese-Spannungspegel, indem bestimmt wird, ob das W2W-Zeitintervall des Segments in einen ersten Bereich von W2W-Zeitintervallen mit einem entsprechenden ersten Vor-Lese-Spannungspegel fällt. In einer Implementierung kann die Speichervorrichtung mehrere Bereiche von W2W-Zeitintervallen haben, wobei jeder Bereich eine Spannungsverteilung darstellt, die zu einer minimalen Fehlerrate führt, wenn der entsprechende Vor-Lese-Spannungspegel für eine Vor-Lese-Operation verwendet wird, wie vorstehend im Detail erläutert.
  • Bei Operation 440, wenn festgestellt wird, dass das W2W-Zeitintervall des Segments in den ersten Bereich von W2W-Zeitintervallen fällt, verwendet die Verarbeitungslogik die erste Vor-Lese-Spannung des ersten Bereichs von W2W-Intervallen, um die Vor-Lese-Operation durchzuführen, um Daten zu erhalten, die aktuell in dem Segment gespeichert sind, wie hier weiter oben näher erläutert ist. In bestimmten Implementierungen kann die Verarbeitungslogik ein Fehlerhandhabungsmodul mit den von der Vor-Lese-Operation erhaltenen Daten ausführen, um Fehler zu korrigieren, die in den während der Vor-Lese-Operation gelesenen Daten vorhanden sein können. Beispielsweise kann das Fehlerhandhabungsmodul die Vor-Lese-Operation erneut durchführen, wobei ein anderer Vor-Lese-Spannungspegel verwendet wird, der von dem Fehlerhandhabungsmodul bestimmt wird, um eine bessere Fehlerrate für die Vor-Lese-Operation zu erzielen. Die Verarbeitungslogik kann dann den Vor-Lese-Spannungspegel des ersten Bereichs von W2W-Intervallen aktualisieren, um den vom Fehlerhandhabungsmodul bestimmten Vor-Lese-Spannungspegel wiederzugeben.
  • Bei Operation 450 identifiziert die Verarbeitungsvorrichtung eine Teilmenge der neuen Daten, die in dem Segment gespeichert werden sollen, und schreibt nur die Teilmenge in das Segment. Die Teilmenge der Daten stellt den Bereich der neuen Daten dar, die sich von den aktuell in dem Segment gespeicherten Daten unterscheiden. In einem Beispiel kann die Verarbeitungslogik jedes Bit der aktuell in dem Segment gespeicherten Daten mit einem entsprechenden Bit der in dem Segment zu speichernden neuen Daten vergleichen und nur die Bits der neuen Daten in das Segment schreiben, die sich von den entsprechenden Bits der aktuell in dem Segment gespeicherten Daten unterscheiden, wie hier ausführlicher erläutert wird.
  • Bei Operation 460 führt die Verarbeitungslogik eine Schreib-Operation durch, um in dem Segment die Teilmenge der neuen Daten zu speichern, die sich von den aktuell in dem Segment gespeicherten Daten unterscheiden, und zwar auf Basis des vorstehend beschriebenen Vergleichs, wie hier ausführlicher erläutert wird.
  • 5 ist ein Flussdiagramm eines beispielhaften Verfahrens zur Durchführung einer Vor-Lese-Operation unter Verwendung eines variablen Vor-Lese-Spannungspegels in einem Speicher-Untersystem gemäß einigen Ausführungsformen der vorliegenden Erfindung. Das Verfahren 500 kann von einer Verarbeitungslogik durchgeführt werden, die Hardware (z.B. Verarbeitungsvorrichtung, Schaltungen, dedizierte Logik, programmierbare Logik, Mikro-Code, Hardware einer Vorrichtung, integrierte Schaltungen, usw.), Software (z.B. Instruktionen, die auf einer Verarbeitungsvorrichtung ausgeführt werden) oder eine Kombination davon umfassen kann. In einigen Ausführungsformen wird das Verfahren 500 von der Vor-Lese-Operationsverwaltungskomponente 113 aus 1 durchgeführt. Obwohl in einer bestimmten Abfolge oder Reihenfolge dargestellt, kann die Reihenfolge der Prozesse, 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.
  • Bei Operation 510 bestimmt die Verarbeitungslogik ein Schreiben-zu-Schreiben-Zeitintervall (W2W-Zeitintervall) für ein Segment der Speichervorrichtung, um beispielsweise eine Vor-Lese-Operation durchzuführen, um Daten zu erhalten, die in dem Segment gespeichert sind, bevor eine Schreib-Operation durchgeführt wird, wie hier im Detail erklärt wird. In Implementierungen kann das W2W-Zeitintervall verwendet werden, um einen Vor-Lese-Spannungspegel zu bestimmen, der für die Durchführung der Vor-Lese-Operation verwendet wird. In anderen Implementierungen kann die Verarbeitungslogik zur Durchführung der Vor-Lese-Operation auf dem Segment einen Vor-Lese-Spannungspegel bestimmen, der ein Vor-Lese-Spannungspegel-Kriterium erfüllt. Das Vor-Lese-Spannungspegel-Kriterium kann sein, ob das W2W-Zeitintervall des Segments in einen Bereich von W2W-lntervallen fällt, der mit dem Vor-Lese-Spannungspegel in Beziehung steht.
  • Bei Operation 515 bestimmt die Verarbeitungslogik, ob das W2W-Intervall in einen ersten Bereich von W2W-Intervallen fällt. In einer Implementierung kann die Speichervorrichtung mehrere Bereiche von W2W-Intervallen enthalten, wobei jeder Bereich einem entsprechenden Vor-Lese-Spannungspegel entspricht, wie hier im Detail erläutert. Bei Operation 530, wenn die Verarbeitungslogik bestimmt, dass das W2W-Intervall in den ersten Bereich von W2W-Intervallen fällt, kann die Verarbeitungslogik die erste Vor-Lese-Spannung des ersten Bereichs von W2W-Intervallen verwenden, um die Vor-Lese-Operation durchzuführen. Die Verarbeitungslogik führt dann die Vor-Lese-Operation unter Verwendung des ersten Vor-Lese-Spannungspegels durch, um die aktuell in dem Segment gespeicherten Daten zu erhalten, wie oben im Detail erläutert.
  • Wenn die Verarbeitungslogik bei Operation 535 bestimmt, dass das W2W-Intervall des Segments nicht in den ersten Bereich von W2W-Intervallen fällt, kann die Verarbeitungslogik bei Operation 540 zum nächsten Bereich der mehreren Bereiche von W2W-Intervallen der Speichervorrichtung weitergehen und bestimmen, ob das W2W-Intervall in den nächsten Bereich von W2W-Intervallen fällt. Wenn die Verarbeitungslogik bei Operation 550 bestimmt, dass das W2W-Intervall des Segments in den nächsten Bereich von W2W-Intervallen fällt, kann die Verarbeitungslogik die Vor-Lese-Operation unter Verwendung des Vor-Lese-Spannungspegels des nächsten Bereichs von W2W-Intervallen durchführen, um die aktuell in dem Segment gespeicherten Daten zu erhalten, wie vorstehend im Detail erläutert.
  • Wenn die Verarbeitungslogik feststellt, dass das W2W-Intervall des Segments nicht in den nächsten Bereich von W2W-Intervallen fällt, kann die Verarbeitungslogik zum nächsten (z.B. dritten) Bereich von W2W-Intervallen der mehreren Bereiche von W2W-Intervallen der Speichervorrichtung bei Operation 535 weitergehen. Die Verarbeitungslogik kann mit dem Durchlaufen der mehreren Bereiche von W2W-Intervallen fortfahren, bis ein Bereich von W2W-Intervallen gefunden ist, der das W2W-Intervall des Segments enthält. Die Verarbeitungslogik kann dann fortfahren, die Vor-Lese-Spannung des gefundenen Bereichs von W2W-Intervallen zu verwenden, um die Vor-Lese-Operation durchzuführen.
  • 6 zeigt eine beispielhafte Maschine eines Computersystems 600, in dem ein Satz von Instruktionen ausgeführt werden kann, um die Maschine zu veranlassen, eine oder mehrere der hier besprochenen Verfahren durchzuführen. In einigen Ausführungsformen kann das Computersystem 600 einem Host-System entsprechen (z.B. dem Host-System 120 von 1), das ein Speicher-Untersystem (z.B. das Speicher-Untersystem 110 von 1) enthält, mit diesem gekoppelt ist oder dieses nutzt, oder es kann verwendet werden, um die Operationen eines Controllers auszuführen (um z.B. ein Betriebssystem auszuführen, um Operationen durchzuführen, die der Vor-Lese-Operationsverwaltungskomponente 113 von 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.
  • Bei der Maschine kann es sich um einen Personal Computer (PC), einen Tablet-PC, eine Set-Top-Box (STB), einen Personal Digital Assistant (PDA), ein Mobiltelefon, eine Web-Anwendung, einen Server, einen Netzwerk-Router, einen Switch oder eine Bridge oder eine beliebige Maschine handeln, die in der Lage ist, einen Satz von Instruktionen (sequentiell oder anderweitig) auszuführen, die die von dieser Maschine auszuführenden Aktionen spezifizieren. Auch wenn eine einzelne Maschine dargestellt ist, umfasst der Begriff „Maschine“ auch eine beliebige Sammlung von Maschinen, die einzeln oder gemeinsam einen Satz (oder mehrere Sätze) von Instruktionen ausführen, um eine oder mehrere der hier erörterten Verfahren durchzuführen.
  • Das beispielhafte Computersystem 600 umfasst eine Verarbeitungsvorrichtung 602, einen Hauptspeicher 604 (z.B. Festwertspeicher (ROM), Flash-Speicher, dynamische Direktzugriffsspeicher (DRAM), wie zum Beispiel synchrone DRAM (SDRAM) oder Rambus DRAM (RDRAM), usw.), einen statischen Speicher 606 (z.B. Flash-Speicher, statische Direktzugriffsspeicher (SRAM), usw.) und ein Datenspeichersystem 618, die über einen Bus 630 miteinander kommunizieren.
  • Die Verarbeitungsvorrichtung 602 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 602 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 Netzwerk-Prozessor oder Ähnliches. Die Verarbeitungsvorrichtung 602 ist ausgestaltet, um Befehle 626 zur Durchführung der hier besprochenen Operationen und Schritte auszuführen. Das Computersystem 600 kann ferner eine Netzwerk-Schnittstellenvorrichtung 608 zur Kommunikation über das Netzwerk 620 umfassen.
  • Das Datenspeichersystem 618 kann ein maschinenlesbares Speichermedium 624 (auch als computerlesbares Medium bekannt) enthalten, auf dem ein oder mehrere Sätze von Instruktionen 626 oder Software gespeichert sind, die eine oder mehrere der hier beschriebenen Methoden oder Funktionen verkörpern. Die Instruktionen 626 können sich auch vollständig oder zumindest teilweise im Hauptspeicher 604 und/oder in der Verarbeitungsvorrichtung 602 befinden, während sie von dem Computersystem 600 ausgeführt werden, wobei der Hauptspeicher 604 und die Verarbeitungsvorrichtung 602 ebenfalls maschinenlesbare Speichermedien darstellen. Das maschinenlesbare Speichermedium 624, das Datenspeichersystem 618 und/oder der Hauptspeicher 604 können dem Speicher-Untersystem 110 von 1 entsprechen.
  • In einer Ausführungsform enthalten die Instruktionen 626 Instruktionen zum Implementieren einer Funktionalität, die der Vor-Lese-Operationsverwaltungskomponente 113 von 1 entspricht. Obwohl das maschinenlesbare Speichermedium 624 in einem Ausführungsbeispiel als ein einzelnes Medium dargestellt ist, soll 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 das die Maschine veranlasst, eine oder mehrere der Verfahren der vorliegenden Erfindung durchzuführen. Der Begriff „maschinenlesbares Speichermedium“ soll folglich Solid-State-Speicher, optische Medien und magnetische Medien umfassen, ist aber nicht darauf 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 vor allem aus Gründen des allgemeinen Sprachgebrauchs als Bits, Werte, Elemente, Symbole, Zeichen, Begriffe, Zahlen oder dergleichen zu bezeichnen.
  • 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 einer ähnlichen elektronischen Computervorrichtung beziehen, die 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 zur Durchführung der hier beschriebenen Operationen. Diese Vorrichtung kann speziell für die beabsichtigten Zwecke konstruiert sein, oder sie kann einen Mehrzweckcomputer umfassen, der durch ein im Computer gespeichertes Computerprogramm selektiv aktiviert oder rekonfiguriert wird. Ein solches Computerprogramm kann in einem computerlesbaren Speichermedium gespeichert werden, wie zum Beispiel, aber nicht beschränkt auf, jede Art von Disketten, 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 zur Speicherung elektronischer Instruktionen geeignet sind und jeweils mit einem Computer-Systembus 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 zur Durchführung der Verfahren 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 Vorrichtungen) 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“), Magnetplattenspeichermedien, optische Speichermedien, Flash-Speicherkomponenten, usw.
  • In der vorstehenden 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 vom Grundgedanken und vom Umfang der Ausführungsformen der Erfindung, wie sie in den folgenden Ansprüchen dargelegt sind, abzuweichen. 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, um Operationen durchzuführen, die umfassen: Empfangen einer Schreib-Anforderung von einem Host-System, wobei die Schreib-Anforderung Daten identifiziert, die in einem Segment der Speichervorrichtung zu speichern sind; Bestimmen eines Schreiben-zu-Schreiben-Zeitintervalls für das Segment der Speichervorrichtung; Bestimmen, ob das Schreiben-zu-Schreiben-Zeitintervall für das Segment in einen ersten Schreiben-zu-Schreiben-Zeitintervall-Bereich einer Mehrzahl von Schreiben-zu-Schreiben-Zeitintervall-Bereichen für die Speichervorrichtung fällt, wobei der erste Schreiben-zu-Schreiben-Zeitintervall-Bereich eine erste Mehrzahl von Schreiben-zu-Schreiben-Zeitintervallen darstellt, die einem ersten Vor-Lese-Spannungspegel entsprechen; als Reaktion darauf, dass das Schreiben-zu-Schreiben-Zeitintervall für das Segment in den ersten Schreiben-zu-Schreiben-Zeitintervall-Bereich fällt, Durchführen einer Vor-Lese-Operation an dem Segment der Speichervorrichtung unter Verwendung des ersten Vor-Lese-Spannungspegels, um die aktuell in dem Segment gespeicherten Daten zu bestimmen; Identifizieren einer Teilmenge der in der Schreib-Anforderung identifizierten Daten, die in dem Segment der Speichervorrichtung zu speichern sind, wobei die Teilmenge der Daten Bits von Daten darstellen, die sich von entsprechenden Bits von Daten unterscheiden, die aktuell in dem Segment gespeichert sind und während der Vor-Lese-Operation gelesen werden; und Durchführen einer Schreib-Operation, um die Teilmenge der Daten in dem Segment der Speichervorrichtung zu speichern.
  2. System nach Anspruch 1, wobei das Bestimmen des Schreiben-zu-Schreiben-Zeitintervalls für das Segment der Speichervorrichtung umfasst: Lesen eines Zeitstempels, der mit den Daten in dem Segment der Speichervorrichtung in Beziehung steht, wobei der Zeitstempel einen letzten Zeitpunkt angibt, zu dem Daten in das Segment geschrieben wurden; und Bestimmen des Schreiben-zu-Schreiben-Zeitintervalls als die seit dem Zeitstempel verstrichene Zeit.
  3. System nach Anspruch 1, wobei das Segment der Speichervorrichtung eine Mehrzahl von Dateneinheiten umfasst, wobei eine Dateneinheit eine kleinste Menge an Speicher umfasst, an der eine Schreib-Operation durchgeführt wird.
  4. System nach Anspruch 3, wobei das Schreiben-zu-Schreiben-Zeitintervall für das Segment auf Basis eines Zeitstempels bestimmt wird, der mit einer Dateneinheit der Mehrzahl von Dateneinheiten des Segments in Beziehung steht, wobei die Dateneinheit eine zuletzt geschriebene Dateneinheit der Mehrzahl von Dateneinheiten ist.
  5. System nach Anspruch 1, wobei die Verarbeitungsvorrichtung ferner ausgestaltet ist, um Operationen durchzuführen, die umfassen: als Reaktion darauf, dass das Schreiben-zu-Schreiben-Zeitintervall für das Segment nicht in den ersten Schreiben-zu-Schreiben-Zeitintervall-Bereich fällt, Durchführen der Vor-Lese-Operation an dem Segment der Speichervorrichtung unter Verwendung eines zweiten Vor-Lese-Spannungspegels, der mit einem zweiten Schreiben-zu-Schreiben-Zeitintervall-Bereich in Beziehung steht, wobei der zweite Schreiben-zu-Schreiben-Zeitintervall-Bereich eine zweite Mehrzahl von Schreiben-zu-Schreiben-Zeitintervallen darstellt, die dem zweiten Vor-Lese-Spannungspegel entsprechen.
  6. System nach Anspruch 1, wobei der erste Vor-Lese-Spannungspegel ein niedrigster Vor-Lese-Spannungspegel aus einer Mehrzahl von Vor-Lese-Spannungspegeln ist, die mit der Speichervorrichtung in Beziehung stehen.
  7. System nach Anspruch 1, wobei das Identifizieren der Teilmenge der Daten, die in dem Segment der Speichervorrichtung zu speichern sind, umfasst: Vergleichen eines ersten Satzes von Bits der Daten, die aktuell in dem Segment gespeichert sind und während der Vor-Lese-Operation gelesen werden, mit einem zweiten Satz von Bits der in der Schreib-Anforderung identifizierten Daten, die in dem Segment der Speichervorrichtung zu speichern sind; und Markieren von Bits des zweiten Satzes von Bits, die nicht mit entsprechenden Bits des ersten Satzes von Bits übereinstimmen, als die Teilmenge der in dem Segment zu speichernden Daten.
  8. Verfahren, umfassend: Empfangen einer Schreib-Anforderung von einem Host-System, wobei die Schreib-Anforderung Daten identifiziert, die in einem Segment einer Speichervorrichtung zu speichern sind; Bestimmen eines Schreiben-zu-Schreiben-Zeitintervalls für das Segment der Speichervorrichtung; Bestimmen, ob das Schreiben-zu-Schreiben-Zeitintervall für das Segment in einen ersten Schreiben-zu-Schreiben-Zeitintervall-Bereich einer Mehrzahl von Schreiben-zu-Schreiben-Zeitintervall-Bereichen für die Speichervorrichtung fällt, wobei der erste Schreiben-zu-Schreiben-Zeitintervall-Bereich eine erste Mehrzahl von Schreiben-zu-Schreiben-Zeitintervallen darstellt, die einem ersten Vor-Lese-Spannungspegel entsprechen; als Reaktion darauf, dass das Schreiben-zu-Schreiben-Zeitintervall für das Segment in den ersten Schreiben-zu-Schreiben-Zeitintervall-Bereich fällt, Durchführen einer Vor-Lese-Operation an dem Segment der Speichervorrichtung unter Verwendung des ersten Vor-Lese-Spannungspegels, um die aktuell in dem Segment gespeicherten Daten zu bestimmen; Identifizieren einer Teilmenge der in der Schreib-Anforderung identifizierten Daten, die in dem Segment der Speichervorrichtung zu speichern sind, wobei die Teilmenge der Daten Bits der Daten darstellen, die sich von entsprechenden Bits der Daten unterscheiden, die aktuell in dem Segment gespeichert sind und während der Vor-Lese-Operation gelesen werden; und Durchführen einer Schreib-Operation, um die Teilmenge der Daten in dem Segment der Speichervorrichtung zu speichern.
  9. Verfahren nach Anspruch 8, wobei das Bestimmen des Schreiben-zu-Schreiben-Zeitintervalls für das Segment der Speichervorrichtung ferner umfasst: Lesen eines Zeitstempels, der mit den Daten in dem Segment der Speichervorrichtung in Beziehung steht, wobei der Zeitstempel einen letzten Zeitpunkt angibt, zu dem Daten in das Segment geschrieben wurden; und Bestimmen des Schreiben-zu-Schreiben-Zeitintervalls als die Zeit, die seit dem Zeitstempel verstrichen ist.
  10. Verfahren nach Anspruch 8, wobei das Segment der Speichervorrichtung eine Mehrzahl von Dateneinheiten umfasst, wobei eine Dateneinheit eine kleinste Menge an Speicher umfasst, an der eine Schreib-Operation durchgeführt wird.
  11. Verfahren nach Anspruch 10, wobei das Schreib-zu-Schreib-Zeitintervall für das Segment auf der Grundlage eines Zeitstempels bestimmt wird, der mit einer Dateneinheit der Vielzahl von Dateneinheiten des Segments verbunden ist, wobei die Dateneinheit eine zuletzt geschriebene Dateneinheit der Vielzahl von Dateneinheiten ist.
  12. Verfahren nach Anspruch 8, ferner umfassend: als Reaktion darauf, dass das Schreiben-zu-Schreiben-Zeitintervall für das Segment nicht in den ersten Schreiben-zu-Schreiben-Zeitintervall-Bereich fällt, Durchführen der Vor-Lese-Operation an dem Segment der Speichervorrichtung unter Verwendung eines zweiten Vor-Lese-Spannungspegels, der mit einem zweiten Schreiben-zu-Schreiben-Zeitintervall-Bereich in Beziehung steht, wobei der zweite Schreiben-zu-Schreiben-Zeitintervall-Bereich eine zweite Mehrzahl von Schreiben-zu-Schreiben-Zeitintervallen darstellt, die dem zweiten Vor-Lese-Spannungspegel entsprechen.
  13. Verfahren nach Anspruch 8, wobei der erste Vor-Lese-Spannungspegel ein niedrigster Vor-Lese-Spannungspegel aus einer Mehrzahl von Vor-Lese-Spannungspegeln ist, die mit der Speichervorrichtung in Beziehung stehen.
  14. Verfahren nach Anspruch 8, wobei das Identifizieren der Teilmenge der in dem Segment der Speichervorrichtung zu speichernden Daten ferner umfasst: Vergleichen eines ersten Satzes von Bits der Daten, die aktuell in dem Segment gespeichert sind und während der Vor-Lese-Operation gelesen werden, mit einem zweiten Satz von Bits der in der Schreib-Anforderung identifizierten Daten, die in dem Segment der Speichervorrichtung zu speichern sind; und Markieren von Bits des zweiten Satzes von Bits, die nicht mit entsprechenden Bits des ersten Satzes von Bits übereinstimmen, als die Teilmenge der in dem Segment zu speichernden Daten.
  15. Nichttransitorisches computerlesbares Speichermedium, das Instruktionen enthält, die, wenn sie von einer Verarbeitungsvorrichtung ausgeführt werden, die Verarbeitungsvorrichtung veranlassen, zum: Durchführen eine Vor-Lese-Operation an einem Segment einer Speichervorrichtung unter Verwendung eines ersten Vor-Lese-Spannungspegels, um erste Daten, die in dem Segment der Speichervorrichtung gespeichert sind, zu identifizieren, wobei der Vor-Lese-Spannungspegel ein Vor-Lese-Spannungspegel-Kriterium erfüllt; Vergleichen der ersten Daten, die in dem Segment der Speichervorrichtung gespeichert sind und während der Vor-Lese-Operation gelesen werden, mit zweiten Daten, die mit einer auf dem Segment der Speichervorrichtung auszuführenden Schreib-Operation in Beziehung stehen, um mindestens einen Bereich der zweiten Daten zu identifizieren, die sich von den ersten Daten unterscheiden; und Schreiben von zumindest dem Bereich der zweiten Daten, die mit der Schreib-Operation in Beziehung stehen, in das Segment der Speichervorrichtung.
  16. Nichttransitorisches computerlesbares Speichermedium nach Anspruch 15, wobei sich das Vor-Lese-Spannungspegel-Kriterium auf ein Schreiben-zu-Schreiben-Zeitintervall für das Segment der Speichervorrichtung bezieht, und wobei das Bestimmen, dass der Vor-Lese-Spannungspegel das Vor-Lese-Spannungspegel-Kriterium erfüllt, das Bestimmen umfasst, dass das Schreiben-zu-Schreiben-Zeitintervall für das Segment in einen ersten Schreiben-zu-Schreiben-Intervall-Bereich einer Mehrzahl von Schreiben-zu-Schreiben-Intervall-Bereichen für die Speichervorrichtung fällt, wobei der erste Schreiben-zu-Schreiben-Intervall-Bereich eine erste Mehrzahl von Schreiben-zu-Schreiben-Zeitintervallen darstellt, der dem ersten Vor-Lese-Spannungspegel entspricht.
  17. Nichttransitorisches computerlesbares Speichermedium nach Anspruch 16, wobei die Verarbeitungsvorrichtung zum Bestimmen des Schreiben-zu-Schreiben-Zeitintervalls für das Segment der Speichervorrichtung ferner ausgestaltet ist, zum: Lesen eines Zeitstempels, der mit den Daten in dem Segment der Speichervorrichtung in Beziehung steht, wobei der Zeitstempel einen letzten Zeitpunkt angibt, zu dem Daten in das Segment geschrieben wurden; und Bestimmen des Schreiben-zu-Schreiben-Zeitintervalls als die Zeit, die seit dem Zeitstempel verstrichen ist.
  18. Nichttransitorisches computerlesbares Speichermedium nach Anspruch 15, wobei das Segment der Speichervorrichtung eine Mehrzahl von Dateneinheiten umfasst, wobei eine Dateneinheit eine kleinste Menge an Speicher umfasst, an der eine Schreib-Operation durchgeführt wird.
  19. Nichttransitorisches computerlesbares Speichermedium nach Anspruch 15, wobei sich der erste Schreiben-zu-Schreiben-Zeitintervall-Bereich mit dem zweiten Schreiben-zu-Schreiben-Zeitintervall-Bereich überlappt.
  20. Nichttransitorisches computerlesbares Speichermedium nach Anspruch 17, wobei zum Identifizieren der Teilmenge der Daten, die in dem Segment der Speichervorrichtung zu speichern sind, die Verarbeitungsvorrichtung ferner ausgestaltet ist, zum: Vergleichen eines ersten Satzes von Bits der Daten, die aktuell in dem Segment gespeichert sind und während der Vor-Lese-Operation gelesen werden, mit einem zweiten Satz von Bits der in der Schreib-Anforderung identifizierten Daten, die in dem Segment der Speichervorrichtung zu speichern sind; und Markieren von Bits des zweiten Satzes von Bits, die nicht mit entsprechenden Bits des ersten Satzes von Bits übereinstimmen, als die Teilmenge der in dem Segment zu speichernden Daten.
DE112021000776.9T 2020-01-30 2021-01-29 Verwaltung von schreib-operationen in einer nichtflüchtigen speichervorrichtung unter verwendung eines variablen vor-lese-spannungspegels Pending DE112021000776T5 (de)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US16/777,766 US11199999B2 (en) 2020-01-30 2020-01-30 Management of write operations in a non-volatile memory device using a variable pre-read voltage level
US16/777,766 2020-01-30
PCT/US2021/015889 WO2021155275A1 (en) 2020-01-30 2021-01-29 Management of write operations in a non-volatile memory device using a variable pre-read voltage level

Publications (1)

Publication Number Publication Date
DE112021000776T5 true DE112021000776T5 (de) 2022-12-01

Family

ID=77062045

Family Applications (1)

Application Number Title Priority Date Filing Date
DE112021000776.9T Pending DE112021000776T5 (de) 2020-01-30 2021-01-29 Verwaltung von schreib-operationen in einer nichtflüchtigen speichervorrichtung unter verwendung eines variablen vor-lese-spannungspegels

Country Status (6)

Country Link
US (2) US11199999B2 (de)
JP (1) JP2023512246A (de)
KR (1) KR20220129626A (de)
CN (1) CN115428083A (de)
DE (1) DE112021000776T5 (de)
WO (1) WO2021155275A1 (de)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
TWI696074B (zh) * 2019-01-24 2020-06-11 慧榮科技股份有限公司 管理快閃記憶體模組的方法及相關的快閃記憶體控制器與電子裝置
CN113496719B (zh) * 2020-04-08 2023-06-23 长鑫存储技术有限公司 半导体存储器的训练方法及相关设备
DE112020007189T5 (de) 2020-05-13 2023-04-20 Micron Technology, Inc. Zählerbasierte verfahren und systeme zum zugreifen auf speicherzellen
US11367484B1 (en) * 2021-01-21 2022-06-21 Micron Technology, Inc. Multi-step pre-read for write operations in memory devices

Family Cites Families (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8171380B2 (en) 2006-10-10 2012-05-01 Marvell World Trade Ltd. Adaptive systems and methods for storing and retrieving data to and from memory cells
CN104040634A (zh) * 2012-01-12 2014-09-10 索尼公司 存储控制装置、存储装置、信息处理系统及其处理方法
JP5853899B2 (ja) * 2012-03-23 2016-02-09 ソニー株式会社 記憶制御装置、記憶装置、情報処理システム、および、それらにおける処理方法
KR102210964B1 (ko) * 2014-05-13 2021-02-03 삼성전자주식회사 스토리지 장치, 스토리지 장치의 동작 방법, 그리고 스토리지 장치를 액세스하는 액세스 방법
US9384831B2 (en) 2014-05-29 2016-07-05 Intel Corporation Cross-point memory single-selection write technique
US10446210B2 (en) 2016-09-27 2019-10-15 Spin Memory, Inc. Memory instruction pipeline with a pre-read stage for a write operation for reducing power consumption in a memory device that uses dynamic redundancy registers
KR102648785B1 (ko) 2017-01-11 2024-03-19 에스케이하이닉스 주식회사 반도체 메모리 장치 및 그 동작 방법
US10026486B1 (en) 2017-03-06 2018-07-17 Sandisk Technologies Llc First read countermeasures in memory
TWI623878B (zh) * 2017-07-07 2018-05-11 大心電子(英屬維京群島)股份有限公司 資料讀取方法以及儲存控制器
JP2019149219A (ja) * 2018-02-28 2019-09-05 東芝メモリ株式会社 メモリシステム
KR102671736B1 (ko) * 2019-05-31 2024-06-04 에스케이하이닉스 주식회사 메모리 시스템 및 메모리 시스템의 동작방법

Also Published As

Publication number Publication date
US20220035572A1 (en) 2022-02-03
KR20220129626A (ko) 2022-09-23
JP2023512246A (ja) 2023-03-24
US11199999B2 (en) 2021-12-14
WO2021155275A1 (en) 2021-08-05
US20210240385A1 (en) 2021-08-05
US11620085B2 (en) 2023-04-04
CN115428083A (zh) 2022-12-02

Similar Documents

Publication Publication Date Title
DE112020006139B4 (de) Vor-lese-und lese-schwellenspannungsoptimierung
DE112020006215T5 (de) Blockfamilien-basierte Fehlervermeidung für Speichervorrichtungen
DE112021000776T5 (de) Verwaltung von schreib-operationen in einer nichtflüchtigen speichervorrichtung unter verwendung eines variablen vor-lese-spannungspegels
DE102017128939A1 (de) System und Verfahren zum dynamischen und adaptiven Zusammenführen von Interrupts
DE112020005787T5 (de) Verbesserte dateisystem-unterstützung für zonen-namespace-speicher
DE112016002631B4 (de) Speicherfunktionszustandsüberwachung
DE102021115763A1 (de) Identifizierung und klassifizierung der schreibstrompriorität
DE112020001937T5 (de) Vorausschauender datenvorabruf in einer datenspeicher-vorrichtung
DE102021115373A1 (de) Identifizierte zonen für zonen mit optimaler paritätsteilung
DE102021006246A1 (de) Doppelt verschachtelte Programmierung einer Speichervorrichtung in einem Speicher-Untersystem
DE112019000161T5 (de) Speicher-cache-verwaltung
DE102018115199A1 (de) Verfahren zur maximierung der frequenz während einer datenintegritätsprüfung auf einem physischen schnittstellenbus
DE102021118940A1 (de) Speichersteuerung und speichereinrichtung mit derselben
DE102019134290A1 (de) Verfahren und System zum Verbessern der Leistung einer Speichervorrichtung unter Verwendung einer asynchronen, unabhängigen Ebenenlesefunktionalität
DE112020006053T5 (de) Aktiver eingabe/ausgabe-expander eines speicher-untersystems
DE112020005395T5 (de) Kapazitätserweiterung für speicher-untersysteme
DE102018123961A1 (de) Gruppen-leseaktualisierung
DE112020005502T5 (de) Dynamische überprovisionierungszuweisung für zweckbestimmte blöcke
DE112019005506T5 (de) Systeme und verfahren zum finden einer letzten guten seite in einem offenen nand-block
DE102021005946A1 (de) Verwaltung der digital gesteuerten ladungspumpen-operation in einem speicher-untersystem
DE112021000474T5 (de) Durchführung einer Medienverwaltungsoperation basierend auf einer Änderung eines Schreibmodus eines Datenblocks in einem Cache
DE112021001848T5 (de) Mehrere pinkonfigurationen von speichervorrichtungen
DE112020004452T5 (de) Verwalten von daten-abhängigkeiten für nicht-sequentielle verarbeitung in einem hybriden dimm
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