DE112015004531T5 - Latch-Initialisierung für eine Datenspeichervorrichtung - Google Patents

Latch-Initialisierung für eine Datenspeichervorrichtung Download PDF

Info

Publication number
DE112015004531T5
DE112015004531T5 DE112015004531.7T DE112015004531T DE112015004531T5 DE 112015004531 T5 DE112015004531 T5 DE 112015004531T5 DE 112015004531 T DE112015004531 T DE 112015004531T DE 112015004531 T5 DE112015004531 T5 DE 112015004531T5
Authority
DE
Germany
Prior art keywords
memory
bits
latch
page
storage device
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Withdrawn
Application number
DE112015004531.7T
Other languages
English (en)
Inventor
Menahem Lasser
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
SanDisk Technologies LLC
Original Assignee
SanDisk Technologies LLC
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by SanDisk Technologies LLC filed Critical SanDisk Technologies LLC
Publication of DE112015004531T5 publication Critical patent/DE112015004531T5/de
Withdrawn 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
    • G11C16/20Initialising; Data preset; Chip identification
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C7/00Arrangements for writing information into, or reading information out from, a digital store
    • G11C7/10Input/output [I/O] data interface arrangements, e.g. I/O data control circuits, I/O data buffers
    • G11C7/1006Data managing, e.g. manipulating data before writing or reading out, data bus switches or control circuits therefor
    • 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/5614Digital 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 conductive bridging RAM [CBRAM] or programming metallization cells [PMC]
    • 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
    • G11C13/00Digital stores characterised by the use of storage elements not covered by groups G11C11/00, G11C23/00, or G11C25/00
    • G11C13/0002Digital stores characterised by the use of storage elements not covered by groups G11C11/00, G11C23/00, or G11C25/00 using resistive RAM [RRAM] elements
    • G11C13/0021Auxiliary circuits
    • G11C13/0033Disturbance prevention or evaluation; Refreshing of disturbed memory data
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C13/00Digital stores characterised by the use of storage elements not covered by groups G11C11/00, G11C23/00, or G11C25/00
    • G11C13/0002Digital stores characterised by the use of storage elements not covered by groups G11C11/00, G11C23/00, or G11C25/00 using resistive RAM [RRAM] elements
    • G11C13/0021Auxiliary circuits
    • G11C13/0069Writing or programming circuits or methods
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C16/00Erasable programmable read-only memories
    • G11C16/02Erasable programmable read-only memories electrically programmable
    • G11C16/06Auxiliary circuits, e.g. for writing into memory
    • G11C16/10Programming or data input circuits
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C16/00Erasable programmable read-only memories
    • G11C16/02Erasable programmable read-only memories electrically programmable
    • G11C16/06Auxiliary circuits, e.g. for writing into memory
    • G11C16/34Determination of programming status, e.g. threshold voltage, overprogramming or underprogramming, retention
    • G11C16/3418Disturbance prevention or evaluation; Refreshing of disturbed memory data
    • G11C16/3427Circuits or methods to prevent or reduce disturbance of the state of a memory cell when neighbouring cells are read or written
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C7/00Arrangements for writing information into, or reading information out from, a digital store
    • G11C7/10Input/output [I/O] data interface arrangements, e.g. I/O data control circuits, I/O data buffers
    • G11C7/1006Data managing, e.g. manipulating data before writing or reading out, data bus switches or control circuits therefor
    • G11C7/1009Data masking during input/output
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C7/00Arrangements for writing information into, or reading information out from, a digital store
    • G11C7/20Memory cell initialisation circuits, e.g. when powering up or down, memory clear, latent image memory
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C11/00Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor
    • G11C11/56Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using storage elements with more than two stable states represented by steps, e.g. of voltage, current, phase, frequency
    • G11C11/5671Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using storage elements with more than two stable states represented by steps, e.g. of voltage, current, phase, frequency using charge trapping in an insulator
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C7/00Arrangements for writing information into, or reading information out from, a digital store
    • G11C7/10Input/output [I/O] data interface arrangements, e.g. I/O data control circuits, I/O data buffers
    • G11C7/1078Data input circuits, e.g. write amplifiers, data input buffers, data input registers, data input level conversion circuits
    • G11C7/1087Data input latches

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Read Only Memory (AREA)

Abstract

Eine Datenspeichervorrichtung kann einen Speicher-Die umfassen. Der Speicher-Die umfasst einen Speicher und ein Latch. Ein Verfahren kann das Empfangen eines Befehls umfassen, welcher einer Schreiboperation entspricht, um Informationen in den Speicher zu schreiben. Das Verfahren kann ferner das Laden eines Satzes von Bits in das Latch umfassen, bevor die Informationen am Speicher-Die empfangen werden. Der Satz von Bits umfasst wenigstens ein erstes Bit mit einem ersten Wert und ein zweites Bit mit einem zweiten Wert, welcher sich vom ersten Wert unterscheidet. Das Verfahren umfasst ferner das Empfangen der Informationen am Speicher-Die und das Überschreiben von wenigstens einem Teil des Satzes von Bits am Latch mit den Informationen.

Description

  • GEBIET DER OFFENBARUNG
  • Die vorliegende Offenbarung betrifft im Allgemeinen Datenspeichervorrichtungen und insbesondere die Latch-Initialisierung für Datenspeichervorrichtungen.
  • Hintergrund
  • Nichtflüchtige Datenspeichervorrichtungen weisen eine erhöhte Portabilität von Daten und Softwareanwendungen auf. Beispielsweise können Multi-Level-Cell(MLC)-Speicherelemente einer Speichervorrichtung jeweils einen Wert speichern, welcher mehrere Datenbits anzeigt, wodurch die Datenspeicherdichte im Vergleich zu Single-Level-Cell(SLC)-Speichervorrichtungen verbessert wird. Folglich können Speichervorrichtungen Benutzern ermöglichen, eine große Menge an Daten zu speichern und darauf zuzugreifen. In einigen Fällen können die Daten Sequenzen von aufeinanderfolgenden Werten umfassen (z. B. eine Zeichenfolge von logischen „0”-Werten oder eine Zeichenfolge von logischen „1”-Werten).
  • Das Speichern eines gemeinsamen Werts in mehreren benachbarten Speicherelementen kann die Leistung einer Speichervorrichtung beeinträchtigen, beispielsweise durch Verursachen eines großen Leckstroms in einigen Speichervorrichtungen. Zur Veranschaulichung kann in einem resistiven Direktzugriffsspeicher (Resistive Random Access Memory, ReRAM) das Programmieren einer Spalte von Speicherelementen auf einen Zustand mit niedrigem Widerstand einen großen Leckstrom erzeugen. Ferner kann das Speichern eines gemeinsamen Werts in mehreren benachbarten Speicherelementen in einigen Speichervorrichtungen Störungseffekte verursachen. Beispielsweise können Speicherelemente einer Flash-Speichervorrichtung anfälliger für Kreuzkopplungseffekte (und somit Lesefehler und Decodierungsfehler) sein, falls benachbarte Speicherelemente auf einen gemeinsamen Wert programmiert sind.
  • Um die Programmierung eines gemeinsamen Werts zu benachbarten Speicherelementen zu vermeiden, scrambeln oder formen einige Speichervorrichtungen zu speichernde Daten. In einigen Fällen kann eine solche Technik immer noch zu einer Programmierung eines gemeinsamen Werts zu benachbarten Speicherelementen führen, wie beispielsweise falls eine „Lücke” in zu schreibenden Daten existiert (in diesem Fall kann eine wiederholte Sequenz von „standardmäßigen” Werten statt der Lücke geschrieben werden, wie beispielsweise eine Sequenz von logischen „0”-Werten oder von logischen „1”-Werten). Einige Speichervorrichtungen können Dummy-Daten in eine derartige Lücke einfügen, um die Programmierung einer Standardsequenz eines gemeinsamen Werts zu vermeiden. Das Senden der Dummy-Daten von einem Controller zu einem Speicher kann jedoch eine große Menge an Ressourcen an einer Speichervorrichtung verwenden (z. B. unter Verwendung von Leistung, um die Dummy-Daten über einen Bus zwischen dem Controller und dem Speicher zu übertragen).
  • KURZFASSUNG
  • Eine Datenspeichervorrichtung umfasst einen Speicher-Die. Der Speicher-Die kann einen Speicher, ein Latch und Initialisierungsschaltungen umfassen, welche das Latch für eine Schreiboperation initialisieren, die Informationen in den Speicher schreibt. Das Latch kann unter Verwendung eines Satzes von Bits (z. B. einer randomisierten Bitsequenz oder eines Musters) mit mehreren Bitwerten (z. B. einem ersten Bitwert und einem zweiten Bitwert, welcher sich vom ersten Bitwert unterscheidet) initialisiert werden. Beispielsweise kann der Satz von Bits eine zufällige oder pseudozufällige Bitsequenz sein, welche vom Speicher-Die generiert oder aus diesem abgerufen wird. Nachdem der Satz von Bits in das Latch geladen ist, können die Informationen, welche in den Speicher geschrieben werden sollen, dem Latch durch einen Controller der Datenspeichervorrichtung oder durch eine Host-Vorrichtung bereitgestellt werden (z. B. zum Überschreiben des Satzes von Bits). Die Informationen können dann in den Speicher programmiert werden, wie beispielsweise unter Verwendung von Lese-/Schreibschaltungen des Speicher-Die.
  • Falls eine Bitlänge der Informationen kleiner als eine Speichergröße des Latch ist, kann eine „Lücke” existieren, wenn die im Speicher zu speichernden Informationen in das Latch geladen werden. In diesem Fall kann das Initialisieren des Latch unter Verwendung eines Satzes von Bits mit mehreren Werten die Programmierung einer Sequenz von gemeinsamen Werten in den Speicher (z. B. einer Standardsequenz von logischen ”0”-Werten oder logischen ”1”-Werten) umgehen, wodurch Leckstrom und/oder Lesestörungseffekte am Speicher reduziert werden (z. B. falls eine randomisierte Bitsequenz oder ein Muster mit 1en und 0en zu den benachbarten Speicherelementen programmiert wird, anstatt einen gemeinsamen Wert zu den benachbarten Speicherelementen zu programmieren). In einigen Implementierungen kann der Speicher eine Multi-Level-Cell(MLC)-Konfiguration aufweisen, und die Informationen, welche in den Speicher geschrieben werden sollen, können mehrere logische Seiten umfassen, die in mehrere Latches des Speichers gelatcht werden. In diesem Fall kann eine andere randomisierte Bitsequenz verwendet werden, um jedes der Latches zu initialisieren, bevor die mehreren logischen Seiten in den mehreren Latches gespeichert werden. Weitere Beispiele werden nachfolgend unter Bezugnahme auf die Zeichnungen beschrieben.
  • KURZE BESCHREIBUNG DER ZEICHNUNGEN
  • 1 ist ein Blockschaltbild einer bestimmten veranschaulichenden Ausführungsform eines Systems, welches eine Datenspeichervorrichtung umfasst, die ausgelegt sein kann, um ein Latch unter Verwendung eines Satzes von Bits mit mehreren Werten zu initialisieren;
  • 2 ist eine Darstellung einer veranschaulichenden Ausführungsform eines Teils eines Speicher-Die, welcher in der Datenspeichervorrichtung aus 1 eingeschlossen sein kann;
  • 3 ist eine Darstellung einer weiteren veranschaulichenden Ausführungsform eines Teils eines Speicher-Die, welcher in der Datenspeichervorrichtung aus 1 eingeschlossen sein kann; und
  • 4 ist ein Flussdiagramm einer veranschaulichenden Ausführungsform eines Verfahrens zum Betrieb der Datenspeichervorrichtung aus 1.
  • DETAILLIERTE BESCHREIBUNG
  • Ein Schreibprozess, welcher von einem nichtflüchtigen Speicher verwendet wird, kann einen mehrstufigen Schreibprozess verwenden, um eine Seite von Daten in den nichtflüchtigen Speicher zu schreiben. Beispielsweise kann der Schreibprozess das Senden (z. B. durch einen Speicher-Controller oder durch einen Host-Computer) eines Schreib-Opcodes an den Speicher-Die umfassen. Der Speicher-Die kann ein seitengroßes flüchtiges Latch zum Empfangen von Daten initialisieren, welche in den nichtflüchtigen Speicher geschrieben werden sollen. Beispielsweise kann die Initialisierung alle Bits des Latch auf einen logischen „1”-Zustand oder auf einen logischen „0”-Zustand setzen. In einigen Implementierungen wird das Initialisieren des Latch nach dem Senden einer Zieladresse, welche mit den Daten assoziiert ist, zum Speicher-Die durchgeführt.
  • Der Speicher-Controller oder der Host-Computer kann ein oder mehrere Bytes senden, welche die Adresse der Schreiboperation angeben. Die Adresse kann zwei Elemente umfassen: eine Identifizierung der zu schreibenden Seite (z. B. Die-Nummer, Ebenennummer innerhalb des Die, Blocknummer innerhalb der Ebene und/oder Seitennummer innerhalb des Blocks) und eine Identifizierung der Startposition innerhalb der Seite (z. B. eine Byte-Nummer innerhalb der Seite, auch als Spaltennummer bezeichnet). Bei einigen Vorrichtungen beginnt das Schreiben am Anfang der Seite und die Spaltennummer ist null.
  • Der Speicher-Controller oder der Host-Computer kann eine Sequenz von Datenbytes senden, welche in den nichtflüchtigen Speicher geschrieben werden sollen. (In einigen Speichern beträgt die Busbreite 16 Bits (z. B. zwei Bytes oder ein Wort), so dass eine Sequenz von Wörtern statt einer Sequenz von Bytes gesendet werden kann.) Die Länge der Datensequenz kann einer Menge an Platz zwischen der Startposition innerhalb der Seite (wie von der empfangenen Adresse angegeben) und dem Ende der Seite entsprechen (z. B. dadurch begrenzt sein).
  • Der Speicher-Die kann die eingehenden Datenbytes in das initialisierte Latch einfügen, angefangen bei der Spalte, welche durch die empfangene Adresse angegeben ist. Falls die Sequenz von geschriebenen Datenbytes vor dem Ende des Latch endet (d. h. falls eine Bitlänge der Daten kleiner als eine Kapazität des Latch ist), bleibt der Endabschnitt des Latch im initialisierten Zustand. Ähnlich, falls die Spaltennummer größer als null ist und das Einfügen nicht am ersten Byte beginnt, bleibt der Kopfabschnittsteil des Latch im initialisierten Zustand.
  • Nach dem Einfügen der Daten in das initialisierte Latch kann der Speicher-Controller oder der Host-Computer einen Opcode senden, welcher anzeigt, dass das Ende der Datensequenz erreicht worden ist und dass die Programmierung der Daten in das Array von nichtflüchtigen Speicherzellen durchgeführt werden soll. In einigen Fällen kann die Programmierung beginnen, bevor alle Daten in das Latch eingefügt sind. Der Speicher-Die kann autonom zusätzliche Operationen durchführen, um die Inhalte des Latch in der von der empfangenen Adresse angegebenen Seite zu speichern (z. B. unter Verwendung von Lese-/Schreibschaltungen des Speicher-Die, um die Inhalte des Latch zur Seite des Speicher-Arrays zu schreiben). Solche Operationen können an einem zweidimensionalen (2D) Speicher-Array oder an einem dreidimensionalen (3D) Speicher-Array durchgeführt werden.
  • Zur Vereinfachung der Darstellung wird dieser beispielhafte Schreibprozess für den Fall beschrieben, in dem die Daten in sequentielle Positionen innerhalb einer Zielseite geschrieben werden sollen. Bei anderen Schreibprozessen können die Daten möglicherweise nicht vollständig sequentiell sein. Beispielsweise können die Daten eine oder mehrere Lücken umfassen. In diesem Fall können die Daten nach einem oder mehreren Bytes (z. B. nach einer Teilsequenz von sequentiellen Bytes) ein oder mehrere Bytes in der Seite „überspringen” oder „auslassen”, gefolgt von einer anderen Datensequenz oder -teilsequenz. Der Einfachheit halber wird, obgleich bestimmte Beispiele mit Bezug auf den Fall „ohne Lücken” beschrieben werden, darauf hingewiesen, dass hierin beschriebene Techniken auch auf Datensequenzen mit einer oder mehreren „Lücken” anwendbar sind.
  • Einige resistive Direktzugriffsspeicher(Resistive Random Access Memory, ReRAM)-Vorrichtungen repräsentieren einen logischen Wert von „1” durch eine entsprechende Speicherzelle, welche auf einen Zustand mit niedrigem Widerstand programmiert ist, und einen logischen Wert von „0” durch eine entsprechende Speicherzelle, welche auf einen Zustand mit hohem Widerstand programmiert ist. Eine Zelle in einem Zustand mit niedrigem Widerstand kann im Vergleich zu einer Zelle in einem Zustand mit hohem Widerstand einen hohen Leckstrom bewirken (wenn auf benachbarte Zellen zugegriffen wird). Daher wird bei einer großen Anzahl von ReRAM-Zellen in einem Zustand mit niedrigem Widerstand Leistung verbraucht. Zusätzlich können Flash-Speicher für Störungen (und folglich für Datenlesefehler) anfällig sein, wenn benachbarte Zellen einen gemeinsamen Zustand aufweisen. Daher kann eine große Anzahl von Zellen entweder in einem gelöschten Zustand oder in einem logisch hohen Zustand die Leistung einer Flash-Speichervorrichtung reduzieren (z. B. durch Verursachen von Störungen und Lesefehlern).
  • Um einen hohen Leistungsverbrauch oder eine reduzierte Leistung, welche(r) mit der Programmierung eines gemeinsamen Zustands zu benachbarten Speicherzellen assoziiert ist, zu vermeiden, kann ein Speicher-Controller oder ein Host-Computer Benutzerdaten, die vor dem Programmieren der Daten in das Array von Speicherzellen geschrieben werden sollen, randomisieren (oder scrambeln). Jedoch kann selbst nach der Randomisierung von Benutzerdaten die Programmierung der Benutzerdaten immer noch zu einer großen Anzahl von benachbarten Speicherelementen mit einem gemeinsamen Zustand führen, wie beispielsweise wenn die Benutzerdaten eine oder mehrere „Lücken” umfassen. Falls beispielsweise ein Teil eines Latch auf einen Zustand (z. B. einen logischen „1”-Zustand) initialisiert wird und nicht durch die Schreiboperation verändert wird (z. B. nicht durch die Benutzerdaten aufgrund einer „Lücke” in den Benutzerdaten überschrieben wird), dann können mehrere benachbarte Speicherzellen auf einen gemeinsamen Zustand (z. B. den logischen „1”-Zustand) programmiert werden. Die benachbarten Speicherzellen können in einem Endabschnittsteil der Seite (falls die Benutzerdaten vor dem Ende der Seite enden) oder in einem Kopfabschnittsteil der Seite (falls die Benutzerdaten nicht am Anfang der Seite starten) eingeschlossen sein. In anderen Fällen können die benachbarten Speicherzellen in einer Mitte der Seite eingeschlossen sein (z. B. falls eine „Lücke” in der Mitte der Daten existiert).
  • Einige Speicher-Controller fügen randomisierte „Dummy”-Daten innerhalb Benutzerdaten ein, so dass nicht verwendete Teile einer Seite mit den Dummy-Daten programmiert werden (anstatt einen gemeinsamen Zustand zu den nicht verwendeten Teilen der Seite zu programmieren). Beispielsweise kann ein nicht verwendeter Kopf- oder Endabschnitt einer Seite mit Dummy-Daten programmiert werden (anstatt basierend auf dem initialisierten Zustand des Latch programmiert zu werden). Die Dummy-Daten können in das Latch gelatcht und mit den Benutzerdaten in den nichtflüchtigen Speicher programmiert werden.
  • Die Verwendung von Dummy-Daten kann mit zusätzlicher Komplexität verbunden sein und kann zusätzliche Verarbeitungsressourcen, Leistung und/oder Hardware nutzen. Ferner kann das Übertragen der Dummy-Daten über einen Bus zwischen dem Speicher-Die und dem Speicher-Controller oder dem Host-Computer Leistung und Übertragungszeit nutzen. Beispielsweise kann eine Tabelle an den Speicher-Die zum Speichern im nichtflüchtigen Speicher übertragen werden. Die Tabelle kann mehrere Einträge mit jeweils 512 Bytes umfassen. Jeder Eintrag kann eine Seite belegen, wobei eine Seitengröße 4 Kilobytes (kB) beträgt. Somit kann der Speicher-Controller für jedes Byte von Benutzerdaten, welche an den Speicher-Die übertragen werden, 8 Bytes über den Bus an den Speicher-Die übertragen (ein Byte von Benutzerdaten und sieben Bytes von Dummy-Daten), was ineffizient sein kann. Daher ist es zweckmäßig, dass vermieden wird, dass der Speicher-Controller oder der Host-Computer Dummy-Daten für nicht verwendete Teile einer Speicherseite überträgt, während weiterhin eine „Randomisierung” der Zustände der Speicherzellen, welche den nicht verwendeten Teilen entsprechen, ermöglicht wird.
  • Gemäß der vorliegenden Offenbarung wird ein Eingangs-Latch eines Speicher-Die auf ein zufälliges Muster statt auf ein Muster von identischen Bits initialisiert. Die Initialisierung auf ein zufälliges Muster kann die „standardmäßige” Option sein, so dass sie standardmäßig für jede Schreiboperation erfolgt. Alternativ dazu kann der Speicher-Die sowohl die Initialisierung auf ein zufälliges Muster als auch die Initialisierung aller Bits auf einen gemeinsamen Wert (wie beispielsweise „1”) unterstützen. Beispielsweise kann der Speicher-Controller oder der Host-Computer zwischen der Initialisierung auf ein zufälliges Muster und der Initialisierung auf einen gemeinsamen Wert auswählen.
  • Die Auswahl zwischen den beiden Optionen (d. h. zwischen der Initialisierung auf ein zufälliges Muster oder auf einen gemeinsamen Wert) kann unter Verwendung von einer oder mehreren Techniken durchgeführt werden. Als Beispiel kann jede Option mit einem entsprechenden Schreib-Opcode assoziiert sein. Als weiteres Beispiel wird eine Option als Standard ausgewählt, und die andere Option kann durch Einfügen eines Präfix vor dem Schreib-Opcode designiert werden. Als weiteres Beispiel kann der Speicher-Die ein globales Flag speichern, welches anzeigt, welche der beiden Optionen aktuell in Kraft ist. In diesem Beispiel kann das Latch für jede Schreiboperation gemäß dem Zustand des Flags zu dem Zeitpunkt initialisiert werden, an dem die Schreiboperation initiiert wird. Befehle können vom Speicher-Controller oder vom Host-Computer verwendet werden, um den Zustand des Flags zu ändern.
  • Gemäß der vorliegenden Offenbarung können Daten, welche in einem beliebigen ungeschriebenen Teil einer Seite (wie beispielsweise einem Kopfabschnittsteil oder einem Endabschnittsteil der Seite) gespeichert sind, randomisiert werden, ohne zu erfordern, dass Dummy-Daten in den Speicher-Die gesendet werden, und ohne Energie und Zeit zu verbrauchen, die mit dem Übertragen der Dummy-Daten assoziiert sind.
  • Der Speicher-Die kann Hardware und/oder Anweisungen umfassen, um eine zufällige Sequenz von Bits zu generieren und/oder zu speichern, welche in das Eingangs-Latch eingefügt werden sollen. Bestimmte Beispiele werden nachfolgend zur Veranschaulichung beschrieben und sollen nicht einschränkend sein.
  • In einem ersten Beispiel kann ein vorbestimmtes Muster von Bits am Speicher-Die aufrechterhalten werden. Das Muster kann größenmäßig gleich der Länge einer Seite sein, und das Muster kann in das Eingangs-Latch kopiert werden, wann immer das Eingangs-Latch initialisiert werden soll.
  • In einem zweiten Beispiel wird ein vorbestimmtes Muster von zufälligen Bits am Speicher-Die aufrechterhalten, und das Muster ist größenmäßig kleiner als eine Seite. In diesem Beispiel kann das Muster mehrmals in das Eingangs-Latch kopiert werden, wann immer das Eingangs-Latch initialisiert werden soll. Falls die Seitengröße beispielsweise 8 kB beträgt, kann der Speicher-Die ein vorbestimmtes Muster von 2 kB speichern und kann vier Kopien des Musters in das Latch laden. Das zweite Beispiel kann einen Siliziumbereich des Speicher-Die im Vergleich zum ersten Beispiel speichern (da ein kleineres Muster im Speicher-Die gespeichert wird).
  • In einem dritten Beispiel können mehrere Bitmuster für verschiedene logische Seiten eines Multi-Level-Cell(MLC)-Speichers (z. B. obere, untere und/oder mittlere Seiten) aufrechterhalten werden. Zur Veranschaulichung kann es in einem MLC-Speicher unerwünscht sein, dass verschiedene logische Seiten, welche mit einer gemeinsamen Wortleitung assoziiert sind, das gleiche vorbestimmte Muster verwenden. Dementsprechend können mehrere vorbestimmte Muster genutzt werden, wobei jedes Muster für eine bestimmte logische Seite verwendet wird (z. B. für obere Seiten, für untere Seiten oder für mittlere Seiten).
  • Zur weiteren Veranschaulichung kann in Verbindung mit einem Zwei-Bit-pro-Zelle-Speicher ein Muster mit unteren Seiten assoziiert sein, und ein anderes Muster kann mit oberen Seiten assoziiert sein. In diesem Fall kann der Speicher 104 eine Zwei-Bit-pro-Zelle-MLC-Architektur aufweisen, eine Schreiboperation kann zum Schreiben einer oberen Seite oder einer unteren Seite in den Speicher 104 sein und der Satz von Bits 116 kann aus mehreren Sätzen von Bits ausgewählt werden, welche mit oberen Seiten und unteren Seiten assoziiert sind. Für einen Drei-Bit-pro-Zelle-Speicher kann ein erstes Muster mit unteren Seiten assoziiert sein, ein zweites Muster kann mit mittleren Seiten assoziiert sein und ein drittes Muster kann mit oberen Seiten assoziiert sein. In diesem Fall kann der Speicher 104 eine Drei-Bit-pro-Zelle-MLC-Architektur aufweisen, eine Schreiboperation kann zum Schreiben einer oberen Seite, einer mittleren Seite oder einer unteren Seite in den Speicher 104 sein und der Satz von Bits 116 kann aus mehreren Sätzen von Bits ausgewählt werden, welche mit oberen Seiten, mittleren Seiten und unteren Seiten assoziiert sind.
  • In einem vierten Beispiel werden mehrere unkorrelierte Muster für Wortleitungen des Speichers verwendet. Zur Veranschaulichung ist es in einigen Speichern unerwünscht, Korrelationen von Bitwerten entlang von Bitleitungen zu haben, da die korrelierten Bitwerte Störungen und andere unerwünschte Effekte verursachen können. In diesem Fall kann die Verwendung des einzelnen vorbestimmten Musters für alle Wortleitungen zu einer schlechten Leistung führen. Gemäß dem vierten Beispiel können mehrere unterschiedliche vorbestimmte Muster verwendet werden, welche nicht miteinander korreliert sind, wobei jedes Muster einer anderen Wortleitung eines Blocks zugeordnet ist. In einer beispielhaften Implementierung können die Muster kleiner als die Seitengröße sein, und ein Muster kann mehrmals innerhalb eines Latch kopiert werden, wie beispielsweise unter Bezugnahme auf das zweite Beispiel beschrieben.
  • In einem fünften Beispiel kann eine Anzahl von Mustern (und folglich die Kosten der Speicherung der Muster) reduziert werden, indem nur wenige Muster im Speicher gespeichert werden und ein Muster mehrmals innerhalb eines Blocks wiederholt wird. Falls beispielsweise ein Block 64 Wortleitungen enthält und 8 Muster verwendet werden, dann kann ein erstes Muster für Wortleitungen 0, 8, 16, 24, 32, 40, 48 und 56 verwendet werden, ein zweites Muster wird für Wortleitungen 1, 9, 17, 25, 33, 41, 49 und 57 verwendet und so weiter. Die Anzahl der Muster kann groß genug sein, um eine Korrelation zwischen zwei aufeinanderfolgenden Verwendungen des gleichen Musters zu vermeiden, um unerwünschte Effekte im Speicher zu vermeiden.
  • In einem sechsten Beispiel kann ein Muster, welches in einer Wortleitung verwendet werden soll, zufällig oder pseudozufällig durch den Speicher ausgewählt werden. Für jede Schreiboperation kann ein Muster zufällig aus einer Liste von vorbestimmten Mustern ausgewählt werden.
  • In einem siebten Beispiel kann ein Muster, welches in einer Wortleitung verwendet werden soll, durch den Speicher-Controller oder den Host-Computer ausgewählt werden. Für jede Schreiboperation kann ein Muster durch den Speicher-Controller oder den Host-Computer aus einer Liste von vorbestimmten Mustern ausgewählt werden. Der Speicher-Controller oder der Host-Computer kann die Auswahl anzeigen, indem einer von mehreren Schreib-Opcodes ausgegeben wird, welche mit entsprechenden unterschiedlichen Mustern assoziiert sind, wie beispielsweise durch Hinzufügen von verschiedenen Präfixen vor den Schreibbefehlen, durch Hinzufügen eines Parameters zu den Schreibbefehlen, durch Steuern eines globalen Parameters, welcher das zu verwendende aktuelle Muster anzeigt, oder durch eine beliebige andere Technik.
  • In einem achten Beispiel kann ein Speicher vermeiden, vorbestimmte Muster zu speichern, und stattdessen generiert der Speicher ein neues zufälliges Muster pro jedem Schreibbefehl. In diesem Beispiel kann ein Muster in Reaktion auf jeden Schreibbefehl zufällig oder pseudozufällig on-the-fly im Speicher-Die generiert werden.
  • Es ist anzumerken, dass bestimmte Speicher eingebaute On-Board-Scrambling-Schaltungen umfassen können, welche Benutzerdaten, die in einem Eingangs-Latch gespeichert sind, randomisieren und derandomisieren können, was sich vom Initialisieren des Eingangs-Latch für einen Schreibprozess vor dem Laden von Informationen in das Eingangs-Latch unterscheidet. Scrambling und Descrambling innerhalb eines Speicher-Die ist langsamer als Scrambling und Descrambling in einem Speicher-Controller. Beispielsweise ist die Randomisierung typischerweise ein sequentieller Prozess, bei dem vorherige Bits entlang einer Seite Werte von späteren Bits beeinflussen, was komplex in einem Speicher-Die zu implementieren sein kann. Latch-Operationen innerhalb eines Speicher-Die können der Natur nach parallel sein (z. B. Kopieren von Daten von einem Latch zu einem anderen Latch, was für alle Bits in einer Seite parallel durchgeführt werden kann). Das Scrambling und Descrambling von Bits innerhalb eines Speicher-Die kann eine dedizierte sequentielle Verarbeitung von Bits verwenden, was eine große Anzahl von Operationen verwenden kann, wie beispielsweise für eine Seite mit einer langen Seitenlänge. Falls das Scrambling oder Descrambling in einem Speicher-Controller durchgeführt wird, können die Operationen on-the-fly durchgeführt werden, während die Daten für andere Zwecke sequentiell verarbeitet werden. Beispielsweise können Daten gescrambelt werden, während die Daten zu einem Fehlerkorrektur-Codierungsmodul bewegt und von diesem verarbeitet werden, oder Daten können descrambelt werden, während die Daten sequentiell von einem Flash-Bus abgerufen werden. Zusätzlich kann das Scrambling für Speicher, welche die Daten entlang der Bitleitungsachse randomisieren, komplexer werden und kann besser im Speicher-Controller als im Speicher-Die implementiert werden. Somit kann die Verwendung von On-Board-Scrambling und -Descrambling an einem Speicher-Die, um Daten an einem Latch zu randomisieren, ineffizient sein. Ein Latch-Initialisierungsprozess gemäß der vorliegenden Offenbarung kann Daten unter Verwendung eines vordefinierten Satzes von Bits mit mehreren Werten (z. B. einer randomisierten Bitsequenz) randomisieren und kann große Schaltungen und komplexe Operationen zum Randomisieren von Daten (wie bei einigen On-Board-Scrambling- und -Descrambling-Schemata) vermeiden.
  • Bezug nehmend auf 1 wird ein veranschaulichendes Beispiel eines Systems dargestellt und allgemein mit 100 bezeichnet. Das System 100 umfasst eine Datenspeichervorrichtung 102 und eine Host-Vorrichtung 154. Die Datenspeichervorrichtung 102 und die Host-Vorrichtung 154 können betriebsfähig über eine Verbindung, wie beispielsweise einen Bus oder eine drahtlose Verbindung, gekoppelt sein. Die Datenspeichervorrichtung 102 kann innerhalb der Host-Vorrichtung 154 eingebettet sein, wie beispielsweise gemäß einer Joint Electron Devices Engineering Council (JEDEC) Solid State Technology Association Universal Flash Storage(UFS)-Konfiguration. Alternativ dazu kann die Datenspeichervorrichtung 102 von der Host-Vorrichtung 154 entfernbar sein (d. h. mit der Host-Vorrichtung 154 „entfernbar” gekoppelt sein). Als ein Beispiel kann die Datenspeichervorrichtung 102 mit der Host-Vorrichtung 154 gemäß einer entfernbaren universellen seriellen Bus(USB)-Konfiguration entfernbar gekoppelt sein.
  • Die Datenspeichervorrichtung 102 kann einen Speicher-Die 103 und einen Controller 130 umfassen. Der Speicher-Die 103 und der Controller 130 können über einen oder mehrere Busse, eine oder mehrere Schnittstellen und/oder eine andere Struktur gekoppelt sein. Eine Schnittstelle kann verdrahtet (z. B. eine Busstruktur) oder drahtlos (z. B. eine drahtlose Kommunikationsschnittstelle) sein. Obwohl 1 der Einfachheit halber einen einzelnen Speicher-Die (den Speicher-Die 103) darstellt, versteht es sich, dass die Datenspeichervorrichtung 102 eine andere Anzahl von Speicher-Dies umfassen kann, welche dem Speicher-Die 103 entsprechen (z. B. zwei Speicher-Dies, acht Speicher-Dies oder eine andere Anzahl von Speicher-Dies). Ferner, obwohl 1 veranschaulicht, dass die Datenspeichervorrichtung 102 den Controller 130 umfasst, kann der Speicher-Die 103 in anderen Implementierungen direkt mit der Host-Vorrichtung 154 gekoppelt sein (z. B. kann die Host-Vorrichtung 154 einen Controller oder eine andere Vorrichtung umfassen, welche(r) auf den Speicher-Die 103 zugreift).
  • Der Speicher-Die 103 umfasst einen Speicher 104, wie beispielsweise einen nichtflüchtigen Speicher. Beispielsweise kann der Speicher 104 als veranschaulichende Beispiele einen Flash-Speicher, wie beispielsweise einen NAND-Flash-Speicher, oder einen resistiven Speicher, wie beispielsweise einen resistiven Direktzugriffsspeicher (Resistive Random Access Memory, ReRAM), umfassen. Der Speicher 104 kann eine dreidimensionale (3D) Speicherkonfiguration aufweisen. Als Beispiel kann der Speicher 104 eine 3D vertikale Bitleitung(Vertical Bit Line, VBL)-Konfiguration aufweisen. In einer bestimmten Implementierung ist der Speicher 104 ein nichtflüchtiger Speicher mit einer 3D-Speicherkonfiguration, welche monolithisch in einem oder mehreren physischen Levels von Arrays von Speicherzellen mit einem aktiven Bereich, der oberhalb eines Siliziumsubstrats angeordnet ist, ausgebildet ist. Alternativ dazu kann der Speicher 104 eine andere Konfiguration aufweisen, wie beispielsweise eine zweidimensionale (2D) Speicherkonfiguration oder eine nicht monolithische 3D-Speicherkonfiguration (z. B. eine gestapelte Die-3D-Speicherkonfiguration).
  • Der Speicher 104 kann einen oder mehrere Blöcke von Speicherelementen (hierin auch als Speicherzellen bezeichnet), wie beispielsweise eine oder mehrere Löschgruppen von Speicherelementen, umfassen. Ein Block kann eine Vielzahl von Bitleitungen und Wortleitungen umfassen, welche die Speicherelemente verbinden. Zur Veranschaulichung kann der Speicher 104 eine Speicherregion 106 umfassen, welche als veranschaulichende Beispiele einem oder mehreren Blöcken oder einer oder mehreren Wortleitungen von Speicherelementen entsprechen kann. Die Speicherregion 106 kann mehrere Speicherelemente, wie beispielsweise ein repräsentatives Speicherelement 108, umfassen. Jedes Speicherelement der Speicherregion 106 (z. B. das Speicherelement 108) kann auf einen Zustand (z. B. eine Schwellenspannung oder einen resistiven Zustand) programmiert werden, welcher einen oder mehrere Bitwerte anzeigt.
  • Der Speicher-Die 103 kann ferner ein oder mehrere Latches (z. B. ein oder mehrere Daten-Latches und/oder ein oder mehrere Steuer-Latches) umfassen. Beispielsweise kann der Speicher-Die 103 ein Latch 110 umfassen. Das Latch 110 kann einem Daten-Latch entsprechen, welches ausgelegt ist, um Informationen vom Controller 130 für Schreiboperationen zum Speicher 104 zu empfangen. Das Latch 110 kann eine bestimmte Speichergröße oder -kapazität aufweisen, welche einer Speichergröße von jeder Wortleitung des Speichers 104 entsprechen kann. Es ist anzumerken, dass der Speicher-Die 103 mehr als ein Latch umfassen kann. Beispielsweise kann der Speicher-Die 103 in einer MLC-Konfiguration als veranschaulichende Beispiele zwei Latches (z. B. für eine Zwei-Bit-pro-Zelle-Implementierung) oder drei Latches (z. B. für eine Drei-Bit-pro-Zelle-Implementierung) umfassen. In einigen Konfigurationen kann eine Anzahl von Latches des Speicher-Die 103 größer oder kleiner als eine Anzahl von Bits sein, welche pro Zelle gespeichert werden (z. B. vier Latches in Verbindung mit einer Drei-Bit-pro-Zelle-Implementierung als veranschaulichendes Beispiel). Das Latch 110 kann flüchtige Speicherelemente umfassen, wie beispielsweise flüchtige Direktzugriffsspeicher(Random Access Memory, RAM)-Speicherelemente. 1 veranschaulicht auch, dass der Speicher-Die 103 ferner Lese-/Schreibschaltungen 112 und Initialisierungsschaltungen 114 umfassen kann. Die Lese-/Schreibschaltungen 112 und die Initialisierungsschaltungen 114 können mit dem Latch 110 gekoppelt sein.
  • Der Controller 130 kann eine Fehlerkorrekturcode(Error Correcting Code, ECC)-Engine 132 und eine Host-Schnittstelle 148 umfassen. Der Controller 130 kann über die Host-Schnittstelle 148 mit der Host-Vorrichtung 154 gekoppelt sein.
  • Der Controller 130 ist ausgelegt, um Daten und Anweisungen von der Host-Vorrichtung 154 zu empfangen und Daten an die Host-Vorrichtung 154 zu senden. Beispielsweise kann der Controller 130 über die Host-Schnittstelle 148 Daten von der Host-Vorrichtung 154 empfangen und kann über die Host-Schnittstelle 148 Daten an die Host-Vorrichtung 154 senden.
  • Der Controller 130 ist ausgelegt, um Daten und Befehle an den Speicher 104 zu senden und Daten aus dem Speicher 104 zu empfangen. Beispielsweise ist der Controller 130 ausgelegt, um Daten und einen Schreibbefehl zu senden, um zu bewirken, dass der Speicher 104 die Daten an einer angegebenen Adresse des Speichers 104 speichert. Der Schreibbefehl kann eine physische Adresse eines Teils des Speichers 104 angeben, welcher die Daten speichern soll. Der Controller 130 ist ausgelegt, um einen Lesebefehl an den Speicher 104 zu senden, um auf Daten von einer angegebenen Adresse des Speichers 104 zuzugreifen. Der Lesebefehl kann die physische Adresse eines Teils des Speichers 104 angeben.
  • Die ECC-Engine 132 kann ausgelegt sein, um Daten zu empfangen und ein oder mehrere ECC-Codewörter basierend auf den Daten zu generieren. Die ECC-Engine 132 kann einen Hamming-Codierer, einen Reed-Solomon(RS)-Codierer, einen Bose-Chaudhuri-Hocquenghem(BCH)-Codierer, einen Low-Density-Parity-Check(LDPC)-Codierer, einen Turbo-Codierer, einen Codierer, welcher ausgelegt ist, um Daten gemäß einem oder mehreren anderen ECC-Schemata zu codieren, oder eine Kombination davon umfassen. Die ECC-Engine 132 kann ausgelegt sein, um Daten zu decodieren, auf die vom Speicher 104 zugegriffen wird. Beispielsweise kann die ECC-Engine 132 ausgelegt sein, um Daten zu decodieren, auf die vom Speicher 104 zugegriffen wird, um einen oder mehrere Fehler zu erkennen und zu korrigieren, welche in den Daten vorhanden sein können, bis zu einer Fehlerkorrekturkapazität des jeweiligen ECC-Schemas. Die ECC-Engine 132 kann einen Hamming-Decodierer, einen RS-Decodierer, einen BCH-Decodierer, einen LDPC-Decodierer, einen Turbo-Decodierer, einen Decodierer, welcher ausgelegt ist, um Daten gemäß einem oder mehreren anderen FCC-Schemata zu decodieren, oder eine Kombination davon umfassen.
  • In einer besonderen Ausführungsform umfasst die Datenspeichervorrichtung 102 einen Scrambler, welcher ausgelegt ist, um Werte von Daten zu „scrambeln”, die in den Speicher 104 geschrieben werden sollen. Der Scrambler kann als veranschaulichende Beispiele im Controller 130 oder im Speicher-Die 103 eingeschlossen sein. Beispielsweise kann der Controller 130 einen Scrambler umfassen, welcher Daten scrambelt, bevor der Controller 130 die Daten zum Speichern an den Speicher-Die 103 sendet. Als weiteres Beispiel kann der Speicher-Die 103 einen Scrambler umfassen, welcher Daten nach dem Latchen der Daten am Latch 110 scrambelt.
  • Die Host-Vorrichtung 154 kann einem Mobiltelefon, einem Computer (z. B. einem Laptop, einem Tablet oder einem Notebook-Computer), einem Musikplayer, einem Videoplayer, einer Gaming-Vorrichtung oder -Konsole, einem elektronischen Buchleser, einem persönlichen digitalen Assistenten (PDA), einer tragbaren Navigationsvorrichtung, einer anderen elektronischen Vorrichtung oder einer Kombination davon entsprechen. Die Host-Vorrichtung 154 kann über einen Host-Controller kommunizieren, wodurch der Host-Vorrichtung 154 ermöglicht werden kann, mit der Datenspeichervorrichtung 102 zu kommunizieren. Die Host-Vorrichtung 154 kann in Übereinstimmung mit einer JEDEC Solid State Technology Association-Industriespezifikation, wie beispielsweise einer Embedded MultiMedia Card(eMMC)-Spezifikation oder einer Universal Flash Storage (UFS) Host Controller Interface-Spezifikation, arbeiten. Die Host-Vorrichtung 154 kann in Übereinstimmung mit einer oder mehreren anderen Spezifikationen arbeiten, wie beispielsweise einer Secure Digital (SD) Host Controller-Spezifikation als veranschaulichendes Beispiel. Alternativ dazu kann die Host-Vorrichtung 154 mit der Datenspeichervorrichtung 102 gemäß einem anderen Kommunikationsprotokoll kommunizieren.
  • Während des Betriebs kann der Controller 130 Daten 150 und eine Anforderung für einen Schreibzugriff auf den Speicher 104 von der Host-Vorrichtung 154 empfangen. Der Controller 130 kann die Daten 150 in die ECC-Engine 132 eingeben. Die ECC-Engine 132 kann die Daten 150 codieren, um Informationen 122 (z. B. ein oder mehrere ECC-Codewörter) zu generieren.
  • Vor dem Senden der Informationen 122 an den Speicher-Die 103 zum Speichern im Speicher 104 kann die Datenspeichervorrichtung 102 einen Initialisierungsprozess initiieren. Die Initialisierungsschaltungen 114 können ausgelegt sein, um den Initialisierungsprozess durchzuführen, um das Latch 110 zu initialisieren. Beispielsweise können die Initialisierungsschaltungen 114 ausgelegt sein, um einen Satz von Bits 116 in das Latch 110 zu laden. Der Satz von Bits 116 umfasst wenigstens ein erstes Bit mit einem ersten Wert und ein zweites Bit mit einem zweiten Wert, welcher sich vom ersten Wert unterscheidet. Beispielsweise kann der Satz von Bits 116 ein oder mehrere logische „0”-Bits umfassen und kann ferner ein oder mehrere logische „1”-Bits umfassen.
  • Der Satz von Bits 116 kann eine zufällige oder eine pseudozufällige Bitsequenz sein, welche vom Speicher-Die 103 abgerufen oder generiert wird, bevor die Informationen 122 empfangen werden (und bevor Daten, welche mit dem Befehl 120 assoziiert sind, wie beispielsweise die Informationen 122, in den Speicher 104 geschrieben werden). In diesem Fall kann der Satz von Bits 116 eine zufällige oder pseudozufällige Anordnung von logischen „0”-Bits und logischen „1”-Bits umfassen. Der Satz von Bits 116 kann aus dem Speicher 104 oder aus einer anderen Stelle des Speicher-Die 103, wie beispielsweise einem Nur-Lese-Speicher (Read-Only Memory, ROM) (nicht in 1 gezeigt), welcher den Satz von Bits 116 speichert, abgerufen werden. Beispielsweise können die Initialisierungsschaltungen 114 ausgelegt sein, um den Satz von Bits 116 (vor dem Laden des Satzes von Bits 116 in das Latch 110) aus dem Speicher-Die 103 abzurufen und den Satz von Bits 116 nach dem Abrufen des Satzes von Bits 116 in das Latch 110 zu laden. Der Satz von Bits 116 kann einem „standardmäßigen” Zustand des Latch 110 entsprechen, bevor Informationen empfangen werden, welche mit einer Schreiboperation assoziiert sind, und die Initialisierungsschaltungen 114 können das Latch 110 vor der Schreiboperation auf den „standardmäßigen” Zustand initialisieren.
  • Die Initialisierungsschaltungen 114 können ausgelegt sein, um den Initialisierungsprozess in Reaktion auf das Empfangen eines Befehls 120 vom Controller 130 durchzuführen. Der Befehl 120 zeigt an, dass ein Schreibprozess, welcher die Informationen 122 in den Speicher 104 schreibt, erfolgen soll. Beispielsweise kann der Befehl 120 anzeigen, dass der Schreibprozess geplant ist zu erfolgen und dass der Speicher-Die 103 das Latch 110 initialisieren soll, um die Informationen 122 zu empfangen. Der Befehl 120 kann eine Adresse anzeigen, welche mit der Schreiboperation assoziiert ist, die die Informationen 122 in den Speicher 104 schreiben soll (z. B. eine physische Adresse einer Seite des Speichers 104, wie beispielsweise einen Seitenindex, der mit der Seite assoziiert ist). Alternativ dazu oder zusätzlich kann der Befehl 120 einen Schreib-Opcode anzeigen, welcher mit der Schreiboperation assoziiert ist.
  • Die Initialisierungsschaltungen 114 können ausgelegt sein, um den Befehl 120 (z. B. durch Erkennen der Adresse und/oder des Schreib-Opcodes) zu erkennen und das Latch 110 unter Verwendung des Satzes von Bits zu initialisieren, bevor die Informationen 122 empfangen werden. Abhängig von der bestimmten Implementierung kann der Initialisierungsprozess unter Verwendung bestimmter Strukturen und Operationen durchgeführt werden, welche basierend auf der jeweiligen Anwendung ausgewählt werden können. Bestimmte Beispiele für Initialisierungsprozesse werden nachfolgend zur Veranschaulichung beschrieben. Es versteht sich, dass die Beispiele veranschaulichend sind und nicht als erschöpfend oder einschränkend gedacht sind.
  • Gemäß einem ersten Beispiel weist der Satz von Bits 116 eine Bitlänge (d. h. eine Anzahl von Bits) auf, welche gleich einer Seitenlänge ist, die mit einer Seite des Speichers 104 assoziiert ist. Beispielsweise kann eine Speichergröße jeder Wortleitung des Speichers 104 mit der Seitenlänge assoziiert sein (d. h. kann ausgelegt sein, um Seiten mit der Seitenlänge zu speichern). In diesem Beispiel können die Informationen 122 einer einzelnen Seite entsprechen, welche in den Speicher 104 geschrieben werden soll, und der Satz von Bits 116 und die Informationen 122 können eine gemeinsame Bitlänge aufweisen.
  • Gemäß einem zweiten Beispiel umfasst der Satz von Bits 116 mehrere Kopien eines bestimmten Bitmusters, und das bestimmte Bitmuster weist eine Bitlänge auf, welche kleiner als eine Seitenlänge ist, die mit dem Speicher 104 assoziiert ist. In diesem Beispiel können die Initialisierungsschaltungen 114 ausgelegt sein, um das bestimmte Bitmuster eine positive Anzahl von n-mal zu „kopieren”, um den Satz von Bits 116 zu erzeugen. Zur Veranschaulichung, falls die Seitenlänge (oder Wortleitungsgröße) gleich einer positiven ganzzahligen Anzahl von x Bits und die Bitlänge des bestimmten Bitmusters gleich x/n ist, können die Initialisierungsschaltungen 114 ausgelegt sein, um das bestimmte Bitmuster n-mal zu kopieren (z. B. zu verketten), um den Satz von Bits 116 zu erzeugen.
  • In anderen Beispielen ist die Datenspeichervorrichtung 102 ausgelegt, um mehrere Sätze von Bits zu speichern. Beispielsweise kann der Speicher-Die 103 optional einen zweiten Satz von Bits 117 und einen dritten Satz von Bits 118 zusätzlich zum Satz von Bits 116 speichern. Jeder der Sätze von Bits 116, 117 und 118 kann eine andere (z. B. eindeutige) Bitsequenz umfassen. Der Satz von Bits 117 kann wenigstens ein erstes Bit mit einem ersten Wert und ein zweites Bit mit einem zweiten Wert umfassen, welcher sich vom ersten Wert unterscheidet. Beispielsweise kann der Satz von Bits 117 ein oder mehrere logische „0”-Bits umfassen und kann ferner ein oder mehrere logische „1”-Bits umfassen. Der Satz von Bits 118 kann wenigstens ein erstes Bit mit einem ersten Wert und ein zweites Bit mit einem zweiten Wert umfassen, welcher sich vom ersten Wert unterscheidet. Beispielsweise kann der Satz von Bits 118 ein oder mehrere logische „0”-Bits umfassen und kann ferner ein oder mehrere logische „1”-Bits umfassen. Der Speicher-Die 103 kann ausgelegt sein, um zwischen den Sätzen von Bits 116, 117 und 118 auszuwählen, wie nachfolgend mit zusätzlichen Beispielen weiter beschrieben.
  • Gemäß einem dritten Beispiel weist der Speicher 104 eine MLC-Architektur auf, und die Informationen 122 umfassen eine obere Seite, eine mittlere Seite und/oder eine untere Seite. Falls beispielsweise der Speicher 104 eine Zwei-Bit-pro-Zelle-Architektur aufweist, können die Informationen 122 zwei logische Seiten (eine obere Seite und eine mittlere Seite) umfassen. Die zwei logischen Seiten können auf eine gemeinsame Wortleitung des Speichers 104 geschrieben sein. Als ein anderes Beispiel, falls der Speicher 104 eine Drei-Bit-pro-Zelle-Architektur aufweist, können die Informationen 122 drei logische Seiten (eine obere Seite, eine mittlere Seite und eine untere Seite) umfassen. Die drei logischen Seiten können auf eine gemeinsame Wortleitung des Speichers 104 geschrieben sein. Die Initialisierungsschaltungen 114 können ausgelegt sein, um den Satz von Bits 116 aus mehreren Sätzen von Bits auszuwählen, die im Speicher-Die 103 gespeichert sind. Die mehreren Sätze von Bits können einen ersten Satz von Bits, welche oberen Seiten entsprechen (z. B. den Satz von Bits 116, die ein erstes Latch initialisieren können, um eine obere Seite der Informationen 122 zu empfangen), einen zweiten Satz von Bits, welche unteren Seiten entsprechen (z. B. den Satz von Bits 117, die ein zweites Latch initialisieren können, um eine mittlere Seite der Informationen 122 zu empfangen), und/oder einen dritten Satz von Bits, welche mittleren Seiten entsprechen (z. B. den Satz von Bits 118, die ein drittes Latch initialisieren können, um eine untere Seite der Informationen 122 zu empfangen), umfassen. Alternativ dazu kann ein gemeinsames Latch für untere Seiten, obere Seiten und mittlere Seiten verwendet werden, welche jeweils mit einem anderen Satz von Bits (z. B. dem Satz von Bits 116, dem Satz von Bits 117 oder dem Satz von Bits 118) initialisiert werden.
  • Gemäß einem vierten Beispiel zeigt der Befehl 120 eine Adresse des Speichers 104 an, und die Initialisierungsschaltungen 114 sind ausgelegt, um den Satz von Bits 116 aus mehreren Sätzen von Bits basierend auf der durch den Befehl 120 angezeigten Adresse auszuwählen. Zur Veranschaulichung kann die Adresse einen Seitenindex umfassen, welcher eine bestimmte Seite (z. B. Wortleitungsgruppe von Speicherelementen) innerhalb eines bestimmten Blocks des Speichers 104 anzeigt. Der bestimmte Block kann der Speicherregion 106 oder einer anderen Region des Speichers 104 entsprechen. Jede Seite des Blocks kann mit einem jeweiligen Satz von Bits der mehreren Sätze von Bits (z. B. einem von einer positiven ganzzahligen Anzahl von k Sätzen von Bits von k Seiten des Blocks) assoziiert sein. In diesem Fall können die Initialisierungsschaltungen 114 ausgelegt sein, um aus den Sätzen von Bits basierend auf dem Seitenindex auszuwählen. In einer 3D-Speicherimplementierung des Speicher-Die 103 kann jede Seite des Blocks mit einem anderen „Level” des Speicher-Die 103 assoziiert sein (z. B. Abstand von einem Substrat des Speicher-Die 103).
  • Gemäß einem fünften Beispiel entsprechen die mehreren Sätze von Bits Teilmengen von Seiten des jeweiligen Blocks (z. B. anstelle einer Eins-zu-Eins-Korrespondenz von Sätzen von Bits zu Seiten, wie im vierten Beispiel). In diesem Fall können die mehreren Sätze von Bits Sätze von Bits umfassen, welche für entsprechende Seiten des Speichers 104 reserviert sind. Beispielsweise können die mehreren Sätze von Bits einen ersten Satz von Bits umfassen, welche für eine erste Teilmenge von Seiten reserviert sind, die mit einem ersten Satz von Seitenindizes assoziiert sind, und können ferner einen zweiten Satz von Bits umfassen, welche für eine zweite Teilmenge von Seiten reserviert sind, die mit einem zweiten Satz von Seitenindizes assoziiert sind. Beispielsweise kann der erste Satz Seiten umfassen, welche mit geradzahligen Indizes assoziiert sind, und der zweite Satz kann Seiten umfassen, welche mit ungeradzahligen Indizes assoziiert sind, als veranschaulichendes Beispiel.
  • Gemäß einem sechsten Beispiel sind die Initialisierungsschaltungen 114 ausgelegt, um den Satz von Bits 116 zufällig oder pseudozufällig aus mehreren Sätzen von Bits in Reaktion auf das Empfangen des Befehls 120 auszuwählen. In einer veranschaulichenden Implementierung können die Initialisierungsschaltungen 114 einen Pseudozufallszahlengenerator (Pseudorandom Number Generator, PRNG) umfassen, welcher ausgelegt ist, um eine Zahl zu generieren. Die Initialisierungsschaltungen 114 können einen der mehreren Sätze von Bits basierend auf der Zahl auswählen.
  • Gemäß einem siebten Beispiel umfasst der Befehl 120 eine Anzeige, welche den Satz von Bits 116 aus mehreren Sätzen von Bits identifiziert. In diesem Fall kann der Controller 130 (oder die Host-Vorrichtung 154) den Satz von Bits 116 auswählen. Die Initialisierungsschaltungen 114 können ausgelegt sein, um den Satz von Bits 116 basierend auf der Anzeige aus mehreren Sätzen von Bits auszuwählen. Abhängig von der jeweiligen Implementierung kann die Anzeige (und der Befehl 120) entweder vom Controller 130 oder von der Host-Vorrichtung 154 empfangen werden.
  • Gemäß einem achten Beispiel sind die Initialisierungsschaltungen 114 ausgelegt, um den Satz von Bits in Reaktion auf das Empfangen des Befehls 120 zufällig oder pseudozufällig zu generieren. In diesem Beispiel können die Initialisierungsschaltungen 114 einen PRNG umfassen, welcher ausgelegt ist, um den Satz von Bits 116 in Reaktion auf das Empfangen des Befehls 120 zufällig oder pseudozufällig zu generieren.
  • In jedem der vorstehenden Beispiele können die Initialisierungsschaltungen 114 ausgelegt sein, um das Latch 110 zu initialisieren, indem der Satz von Bits 116 in Reaktion auf das Empfangen des Befehls 120 in das Latch 110 geladen wird. Nachdem die Initialisierungsschaltungen 114 das Latch 110 initialisiert haben (z. B. nach Abschluss des Initialisierungsprozesses), kann der Controller 130 eine Schreiboperation am Speicher-Die 103 initiieren. Beispielsweise kann der Speicher-Die 103 eine Nachricht (z. B. in Form eines „Bereit”-Signals) an den Controller 130 senden, welche anzeigt, dass das Latch 110 bereit ist, Informationen zu empfangen (z. B. die anzeigen, dass der Initialisierungsprozess abgeschlossen ist). In anderen Implementierungen kann der Controller 130 den Speicher-Die 103 abfragen, ob der Initialisierungsprozess abgeschlossen ist, oder der Controller 130 kann die Schreiboperation eine bestimmte Zeitperiode nach dem Senden des Befehls 120 (z. B. eine bestimmte Anzahl von Taktzyklen nach dem Senden des Befehls 120) initiieren. Der Controller 130 kann die Schreiboperation durch Senden der Informationen 122 an den Speicher-Die 103 initiieren. Die Informationen 122 können wenigstens einen Teil des Satzes von Bits 116 im Latch 110 überschreiben (z. B. durch Ändern eines oder mehrerer Werte des Satzes von Bits 116, die im Latch 110 gespeichert sind).
  • Nachdem der Speicher-Die 103 die Informationen 122 empfangen hat, können die Lese-/Schreibschaltungen 112 die Informationen 122 (oder eine Repräsentation der Informationen 122) vom Latch 110 zum Speicher 104 speichern. Beispielsweise können die Informationen 122 in der Speicherregion 106 gespeichert werden. Die Lese-/Schreibschaltungen 112 können die Informationen 122 in der Speicherregion 106 speichern, nachdem die Informationen 122 am Latch 110 empfangen wurden und nachdem die Informationen 122 wenigstens einen Teil des Satzes von Bits 116 am Latch 110 überschrieben haben. Der Speicher-Die 103 kann ein Statussignal an den Controller 130 zurückgeben, welches einen Status der Schreiboperation anzeigt (z. B. einen Bestanden-Status, falls die Schreiboperation erfolgreich war, oder einen Nichtbestanden-Status, falls die Schreiboperation nicht erfolgreich war, wie beispielsweise im Falle einer Stromunterbrechung oder eines anderen Fehlers).
  • In einigen Implementierungen wird ein Satz von Bits mit mehreren Werten (z. B. der Satz von Bits 116) verwendet, um das Latch 110 für jede Schreiboperation in den Speicher 104 zu initialisieren. In anderen Implementierungen kann die Auswahl zwischen einem oder mehreren Sätzen von Bits mit unterschiedlichen Werten und einem Satz von Bits mit einem gemeinsamen Wert (z. B. einem Satz von „0”-Bits oder einem Satz von „1”-Bits) getroffen werden, mit dem das Latch 110 initialisiert werden soll. Beispielsweise kann der Speicher-Die 103 einen zweiten Satz von Bits (zusätzlich zum Satz von Bits 116) speichern, wobei jedes Bit im zweiten Satz von Bits einen gemeinsamen Wert aufweist. Für jede Schreiboperation kann eine Auswahl zwischen dem Satz von Bits 116 oder dem zweiten Satz von Bits getroffen werden. Beispielsweise kann ein erster Schreib-Opcode vom Controller 130 (oder von der Host-Vorrichtung 154) ausgegeben werden, um die Initialisierungsschaltungen 114 anzuweisen, den Satz von Bits 116 zu verwenden, und ein zweiter Schreib-Opcode kann vom Controller 130 (oder von der Host-Vorrichtung 154) ausgegeben werden, um die Initialisierungsschaltungen 114 anzuweisen, den zweiten Satz von Bits zu verwenden. Als weiteres Beispiel können die Initialisierungsschaltungen 114 ausgelegt sein, um den Satz von Bits 116 standardmäßig in Reaktion auf einen Schreib-Opcode zu verwenden, und der zweite Satz von Bits kann in Reaktion auf eine Modifikation des Schreib-Opcodes ausgewählt werden (z. B. falls ein Präfix vor dem Schreib-Opcode eingefügt wird). Als weiteres Beispiel kann der Speicher-Die 103 ein globales Flag speichern, welches anzeigt, ob der Satz von Bits 116 oder der zweite Satz von Bits verwendet werden soll, um das Latch 110 zu initialisieren. In diesem Beispiel kann das Latch 110 für jede Schreiboperation basierend auf einem Wert des Flags zu dem Zeitpunkt initialisiert werden, an dem die Schreiboperation initiiert wird. Der Controller 130 (oder die Host-Vorrichtung 154) kann ausgelegt sein, um den Wert des Flags anzupassen (z. B. durch Senden eines Befehls, der einen Wert des Flags anzeigt oder der anzeigt, den Wert des Flags zu ändern).
  • Die Beispiele aus 1 können eine Reduzierung des Leckstroms und/oder der Störungseffekte im Speicher 104 durch Reduzieren oder Vermeiden der Programmierung eines gemeinsamen Werts zu benachbarten Speicherelementen des Speichers 104 ermöglichen. Falls eine Bitlänge der Informationen 122 beispielsweise kleiner als eine Speichergröße des Latch 110 ist, kann eine „Lücke” existieren, wenn die Informationen 122 in das Latch 110 geladen werden. Das Initialisieren des Latch 110 unter Verwendung eines Satzes von Bits mit mehreren Werten (z. B. unter Verwendung des Satzes von Bits 116) kann die Möglichkeit reduzieren oder eliminieren, dass die „Lücke” zur Programmierung einer Sequenz von gemeinsamen Werten in den Speicher 104 führt, wodurch Leckstrom und/oder Lesestörungseffekte am Speicher 104 reduziert werden.
  • Obwohl bestimmte Aspekte von 1 zur Vereinfachung separat beschrieben werden, versteht es sich, dass bestimmte Beispiele durch Fachleute auf dem Gebiet basierend auf der jeweiligen Anwendung kombiniert werden können. Zur Veranschaulichung können das zweite Beispiel und das dritte Beispiel kombiniert werden, indem ein Bitmuster für jedes Latch mehrmals in ein Latch kopiert wird (falls das Bitmuster eine Bitlänge aufweist, die kleiner als eine Speichergröße des Latch ist). Somit kann in diesem Beispiel ein anderes Bitmuster für jedes Latch für eine MLC-Schreiboperation verwendet werden, und jedes Bitmuster kann mehrmals in ein Latch kopiert werden. Andere Kombinationen und Modifikationen können vorgenommen werden, ohne vom Schutzbereich der Offenbarung abzuweichen.
  • 2 veranschaulicht einen Teil eines Speicher-Die 200 mit einer NAND-Flash-Konfiguration. Der Speicher-Die 200 kann in der Datenspeichervorrichtung 102 aus 1 eingeschlossen sein. Beispielsweise kann der Speicher-Die 200 dem Speicher-Die 103 aus 1 entsprechen. Der Speicher-Die 200 kann mit dem Controller 130 aus 1 (oder der Host-Vorrichtung 154 aus 1) gekoppelt sein.
  • Der Speicher-Die 200 umfasst Initialisierungsschaltungen 202, Lese-/Schreibschaltungen 204 und ein oder mehrere Latches (z. B. ein Latch 205). Die Initialisierungsschaltungen 202 können ausgelegt sein, um das Latch 205 für eine Schreiboperation zu initialisieren, wobei ein Satz von Bits 203 mit mehreren Werten verwendet wird. Die Initialisierungsschaltungen 202 können den Initialisierungsschaltungen 114 aus 1 entsprechen, die Lese-/Schreibschaltungen 204 können den Lese-/Schreibschaltungen 112 aus 1 entsprechen und das Latch 205 kann dem Latch 110 aus 1 entsprechen. Der Satz von Bits 203 kann einem beliebigen der Sätze von Bits 116, 117 und 118 aus 1 entsprechen.
  • Der Speicher-Die 200 umfasst mehrere physische Schichten, wie beispielsweise eine Gruppe von physischen Schichten 290. Die mehreren physischen Schichten sind monolithisch über einem Substrat 294, wie beispielsweise einem Siliziumsubstrat, ausgebildet. Speicherelemente (z. B. Speicherzellen), wie beispielsweise eine repräsentative Speicherzelle 210, sind in Arrays in den physischen Schichten angeordnet.
  • Die repräsentative Speicherzelle 210 umfasst eine Charge-Trap-Struktur 214 zwischen einer Wortleitung/Steuer-Gate (WL4) 228 und einem leitfähigen Kanal 212. Eine Ladung kann mittels Vorspannen des leitfähigen Kanals 212 relativ zur Wortleitung 228 in die Charge-Trap-Struktur 214 injiziert oder von dieser abgeflossen werden. Beispielsweise kann die Charge-Trap-Struktur 214 Siliziumnitrid umfassen und kann von der Wortleitung 228 und dem leitfähigen Kanal 212 durch ein Gate-Dielektrikum, wie beispielsweise Siliziumoxid, getrennt sein. Eine Ladungsmenge in der Charge-Trap-Struktur 214 beeinflusst eine Strommenge durch den leitfähigen Kanal 212 während einer Leseoperation der Speicherzelle 210 und zeigt einen oder mehrere Bitwerte an, welche in der Speicherzelle 210 gespeichert sind.
  • Der Speicher-Die 200 umfasst mehrere Löschblöcke, einschließlich eines ersten Blocks (Block 0) 250, eines zweiten Blocks (Block 1) 252 und eines dritten Blocks (Block 2) 254. Jeder Block 250254 umfasst eine „vertikale Scheibe” der physischen Schichten 290, welche einen Stapel von Wortleitungen umfasst, veranschaulicht als eine erste Wortleitung (WL0) 220, eine zweite Wortleitung (WL1) 222, eine dritte Wortleitung (WL2) 224, eine vierte Wortleitung (WL3) 226 und eine fünfte Wortleitung (WL4) 228. Mehrere leitfähige Kanäle (mit einer im Wesentlichen vertikalen Orientierung in Bezug auf 2) erstrecken sich durch den Stapel von Wortleitungen. Jeder leitfähige Kanal ist mit einem Speicherelement in jeder Wortleitung 220228 gekoppelt, wodurch ein NAND-String von Speicherelementen ausgebildet wird. 2 veranschaulicht zur Klarheit der Darstellung drei Blöcke 250254, fünf Wortleitungen 220228 in jedem Block und drei leitfähige Kanäle in jedem Block. Der Speicher-Die 200 kann jedoch mehr als drei Blöcke, mehr als fünf Wortleitungen pro Block und mehr als drei leitfähige Kanäle pro Block aufweisen.
  • Die Lese-/Schreibschaltungen 204 sind über mehrere leitfähige Leitungen mit den leitfähigen Kanälen gekoppelt, veranschaulicht als eine erste Bitleitung (BL0) 230, eine zweite Bitleitung (BL1) 232 und eine dritte Bitleitung (BL2) 234 an einem „oberen” Ende der leitfähigen Kanäle (z. B. weiter vom Substrat 294) und eine erste Source-Leitung (SL0) 240, eine zweite Source-Leitung (SL1) 242 und eine dritte Source-Leitung (SL2) 244 an einem „unteren” Ende der leitfähigen Kanäle (z. B. näher am oder innerhalb des Substrats 294). Die Lese-/Schreibschaltungen 204 sind so veranschaulicht, dass sie über „P” Steuerleitungen mit den Bitleitungen 230234 gekoppelt sind, über „M” Steuerleitungen mit den Source-Leitungen 240244 gekoppelt sind und über „N” Steuerleitungen mit den Wortleitungen 220228 gekoppelt sind. Jedes von P, M und N kann einen positiven ganzzahligen Wert basierend auf der speziellen Konfiguration des Speicher-Die 200 aufweisen. Im veranschaulichenden Beispiel aus 2 ist P = 3, M = 3 und N = 5.
  • In einer besonderen Ausführungsform kann jede der Bitleitungen und jede der Source-Leitungen mit dem gleichen Ende (z. B. dem oberen Ende oder dem unteren Ende) von verschiedenen leitfähigen Kanälen gekoppelt sein. Beispielsweise kann eine bestimmte Bitleitung mit dem oberen Teil eines leitfähigen Kanals 292 gekoppelt sein, und eine bestimmte Source-Leitung kann mit dem oberen Teil des leitfähigen Kanals 212 gekoppelt sein. Der untere Teil des leitfähigen Kanals 292 kann mit dem unteren Teil des leitfähigen Kanals 212 gekoppelt (z. B. elektrisch gekoppelt) sein. Dementsprechend können der leitfähige Kanal 292 und der leitfähige Kanal 212 in Reihe gekoppelt sein und können mit der bestimmten Bitleitung und der bestimmten Source-Leitung gekoppelt sein.
  • Während einer Leseoperation kann der Controller 130 aus 1 eine Anforderung von einer Host-Vorrichtung, wie beispielsweise der Host-Vorrichtung 154 aus 1, empfangen. Der Controller 130 kann veranlassen, dass die Lese-/Schreibschaltungen 204 Bits von bestimmten Speicherelementen des Speicher-Die 200 lesen, indem geeignete Signale an die Steuerleitungen angelegt werden, um zu bewirken, dass Speicherelemente einer ausgewählten Wortleitung erfasst werden. Dementsprechend kann der Speicher-Die 200 ausgelegt sein, um Daten von einem oder mehreren Speicherelementen zu lesen und zu diesen schreiben.
  • Während einer Schreiboperation kann der Controller 130 aus 1 eine Anforderung von einer Host-Vorrichtung, wie beispielsweise der Host-Vorrichtung 154 aus 1, empfangen. Die Anforderung kann Daten umfassen (z. B. die Daten 150 aus 1), welche zu Speicherelementen des Speicher-Die 200 geschrieben werden sollen. Der Controller 130 kann einen Befehl an den Speicher-Die 200 senden, um zu veranlassen, dass der Speicher-Die 200 für die Schreiboperation initialisiert wird. Beispielsweise kann der Controller 130 den Befehl 120 an den Speicher-Die 200 senden, und der Befehl 120 kann die Initialisierungsschaltungen 202 veranlassen, einen oder mehrere Sätze von Bits (z. B. den Satz von Bits 203) in das Latch 205 zu laden.
  • Nachdem die Initialisierungsschaltungen 202 das Latch 205 initialisiert haben, kann der Controller 130 Daten (z. B. die Informationen 122) an den Speicher-Die 200 senden, die zu Speicherelementen des Speicher-Die 200 geschrieben werden sollen. Beispielsweise kann der Controller 130 die Daten durch Überschreiben des Satzes von Bits 203 im Latch 205 mit den Daten in das Latch 205 latchen.
  • Die Lese-/Schreibschaltungen 204 können ausgelegt sein, um auf die Daten im Latch 205 zuzugreifen und die Daten zu Speicherelementen des Speicher-Die 200 zu programmieren. Beispielsweise können die Lese-/Schreibschaltungen 204 ausgelegt sein, um Auswahlsignale an Steuerleitungen anzulegen, welche mit den Wortleitungen 220228, den Bitleitungen 230234 und den Source-Leitungen 240242 gekoppelt sind, um zu bewirken, dass eine Programmierspannung (z. B. ein Spannungsimpuls oder eine Reihe von Spannungsimpulsen) über ein oder mehrere ausgewählte Speicherelemente der ausgewählten Wortleitung (z. B. der vierten Wortleitung 228 als veranschaulichendes Beispiel) angelegt wird.
  • 3 veranschaulicht einen Teil eines Speicher-Die 300 mit einer ReRAM-Konfiguration. Der Speicher-Die 300 kann in der Datenspeichervorrichtung 102 aus 1 eingeschlossen sein. Beispielsweise kann der Speicher-Die 300 dem Speicher-Die 103 aus 1 entsprechen. Der Speicher-Die 300 kann mit dem Controller 130 aus 1 (oder der Host-Vorrichtung 154 aus 1) gekoppelt sein.
  • Der Speicher-Die 300 umfasst Initialisierungsschaltungen 302, Lese-/Schreibschaltungen 304 und ein oder mehrere Latches (z. B. ein Latch 305). Die Initialisierungsschaltungen 302 können ausgelegt sein, um das Latch 305 für eine Schreiboperation zu initialisieren, wobei ein Satz von Bits 303 mit mehreren Werten verwendet wird. Die Initialisierungsschaltungen 302 können den Initialisierungsschaltungen 114 aus 1 entsprechen, die Lese-/Schreibschaltungen 304 können den Lese-/Schreibschaltungen 112 aus 1 entsprechen und das Latch 305 kann dem Latch 110 aus 1 entsprechen. Der Satz von Bits 303 kann einem beliebigen der Sätze von Bits 116, 117 und 118 aus 1 entsprechen.
  • In dem Beispiel aus 3 umfasst der Speicher-Die 300 ein VBL(vertikale Bitleitung)-ReRAM mit einer Vielzahl von leitfähigen Leitungen in physischen Schichten über einem Substrat (z. B. im Wesentlichen parallel zu einer Oberfläche des Substrats), wie beispielsweise repräsentative Wortleitungen 320, 321, 322 und 323 (von denen nur ein Teil in 3 gezeigt ist), und einer Vielzahl von vertikalen leitfähigen Leitungen durch die physischen Schichten, wie beispielsweise repräsentative Bitleitungen 310, 311, 312 und 313. Die Wortleitung 322 kann eine erste Gruppe von physischen Schichten umfassen oder dieser entsprechen, und die Wortleitungen 320, 321 können eine zweite Gruppe von physischen Schichten umfassen oder dieser entsprechen.
  • Der Speicher-Die 300 umfasst auch eine Vielzahl von widerstandsbasierten Speicherelementen (z. B. Speicherzellen), wie beispielsweise repräsentative Speicherelemente 330, 331, 332, 340, 341 und 342. Jedes der Speicherelemente 330, 331, 332, 340, 341 und 342 ist mit einer Bitleitung und einer Wortleitung in Arrays von Speicherzellen in mehreren physischen Schichten über dem Substrat (z. B. einem Siliziumsubstrat) gekoppelt (oder assoziiert).
  • In dem Beispiel aus 3 umfasst jede Wortleitung eine Vielzahl von Fingern. Zur Veranschaulichung umfasst die Wortleitung 320 die Finger 324, 325, 326 und 327. Jeder Finger kann mit mehr als einer Bitleitung gekoppelt sein. Beispielsweise ist der Finger 324 der Wortleitung 320 mit der Bitleitung 310 über das Speicherelement 330 an einem ersten Ende des Fingers 324 gekoppelt, und der Finger 324 ist ferner mit der Bitleitung 311 über das Speicherelement 340 an einem zweiten Ende des Fingers 324 gekoppelt.
  • In dem Beispiel aus 3 kann jede Bitleitung mit mehr als einer Wortleitung gekoppelt sein. Zur Veranschaulichung ist die Bitleitung 310 mit der Wortleitung 320 über das Speicherelement 330 gekoppelt, und die Bitleitung 310 ist ferner mit der Wortleitung 322 über das Speicherelement 332 gekoppelt.
  • Während einer Schreiboperation kann der Controller 130 aus 1 Daten (z. B. die Daten 150 aus 1) von einer Host-Vorrichtung, wie beispielsweise der Host-Vorrichtung 154 aus 1, empfangen. Der Controller 130 kann einen Befehl an den Speicher-Die 300 senden, um zu veranlassen, dass der Speicher-Die 300 für die Schreiboperation initialisiert wird. Beispielsweise kann der Controller 130 den Befehl 120 an den Speicher-Die 300 senden, und der Befehl 120 kann die Initialisierungsschaltungen 302 veranlassen, einen oder mehrere Sätze von Bits (z. B. den Satz von Bits 303) in das Latch 305 zu laden.
  • Nachdem die Initialisierungsschaltungen 302 das Latch 305 initialisiert haben, kann der Controller 130 Daten (z. B. die Informationen 122) an den Speicher-Die 300 senden, die zu Speicherelementen des Speicher-Die 300 geschrieben werden sollen. Beispielsweise kann der Controller 130 die Daten durch Überschreiben des Satzes von Bits 303 im Latch 305 mit den Daten in das Latch 305 latchen.
  • Die Lese-/Schreibschaltungen 304 können ausgelegt sein, um auf die Daten im Latch 305 zuzugreifen und die Daten zu Speicherelementen zu programmieren, welche dem Datenziel entsprechen. Beispielsweise können die Lese-/Schreibschaltungen 304 Auswahlsignale auf Auswahlsteuerleitungen anlegen, welche mit den Wortleitungstreibern 308 und den Bitleitungstreibern 306 gekoppelt sind, um zu bewirken, dass eine Schreibspannung über ein ausgewähltes Speicherelement angelegt wird. Als veranschaulichendes Beispiel können die Lese-/Schreibschaltungen 304, um das Speicherelement 330 auszuwählen, die Wortleitungstreiber 308 und die Bitleitungstreiber 306 aktivieren, um einen Programmierstrom (auch als Schreibstrom bezeichnet) durch das Speicherelement 330 anzusteuern. Zur Veranschaulichung kann ein erster Schreibstrom verwendet werden, um einen ersten logischen Wert (z. B. einen Wert, der einem Zustand mit hohem Widerstand entspricht) zum Speicherelement 330 zu schreiben, und ein zweiter Schreibstrom kann verwendet werden, um einen zweiten logischen Wert (z. B. einen Wert, der einem Zustand mit niedrigem Widerstand entspricht) zum Speicherelement 330 zu schreiben. Der Programmierstrom kann angelegt werden, indem eine Programmierspannung über dem Speicherelement 330 generiert wird, indem eine erste Spannung an die Bitleitung 310 und an andere Wortleitungen als die Wortleitung 320 angelegt wird und eine zweite Spannung an die Wortleitung 320 angelegt wird. In einer besonderen Ausführungsform wird die erste Spannung an andere Bitleitungen (z. B. die Bitleitungen 314, 315) angelegt, um den Leckstrom im Speicher-Die 300 zu reduzieren.
  • Während einer Leseoperation kann der Controller 130 eine Anforderung von einer Host-Vorrichtung, wie beispielsweise der Host-Vorrichtung 154 aus 1, empfangen. Der Controller 130 kann einen Befehl an den Speicher-Die 300 ausgeben, welcher eine oder mehrere physische Adressen des Speicher-Die 300 angibt.
  • Der Speicher-Die 300 kann die Lese-/Schreibschaltungen 304 veranlassen, Bits von bestimmten Speicherelementen des Speicher-Die 300 zu lesen, wie beispielsweise durch Anlegen von Auswahlsignalen an Auswahlsteuerleitungen, welche mit den Wortleitungstreibern 308 und den Bitleitungstreibern 306 gekoppelt sind, um zu bewirken, dass eine Lesespannung über ein ausgewähltes Speicherelement angelegt wird. Um beispielsweise das Speicherelement 330 auszuwählen, können die Lese-/Schreibschaltungen 304 die Wortleitungstreiber 308 und die Bitleitungstreiber 306 aktivieren, um eine erste Spannung (z. B. 0,7 Volt (V)) an die Bitleitung 310 und an andere Wortleitungen als die Wortleitung 320 anzulegen. Eine niedrigere Spannung (z. B. 0 V) kann an die Wortleitung 320 angelegt werden. Somit wird eine Lesespannung über das Speicherelement 330 angelegt, und ein Lesestrom, welcher der Lesespannung entspricht, kann an einem Leseverstärker der Lese-/Schreibschaltungen 304 erkannt werden. Der Lesestrom entspricht (mittels Ohmsches Gesetz) einem Widerstandszustand des Speicherelements 330, welcher einem im Speicherelement 330 gespeicherten logischen Wert entspricht. Der logische Wert, welcher vom Speicherelement 330 gelesen wird, und andere Elemente, welche während der Leseoperation gelesen werden, können an den Controller 130 aus 1 bereitgestellt werden (z. B. über das Latch 305).
  • Bezug nehmend auf 4 wird ein veranschaulichendes Beispiel eines Verfahrens dargestellt und allgemein mit 400 bezeichnet. Das Verfahren 400 kann an einer Datenspeichervorrichtung (z. B. der Datenspeichervorrichtung 102) durchgeführt werden, welche einen Speicher-Die (z. B. einen beliebigen der Speicher-Dies 103, 200 und 300) umfasst. Der Speicher-Die kann einen Speicher (z. B. den Speicher 104) und ein Latch (z. B. ein beliebiges der Latches 110, 205 und 305) umfassen.
  • Das Verfahren 400 kann bei 402 das Empfangen eines Befehls umfassen, welcher einer Schreiboperation entspricht, um Informationen in den Speicher zu schreiben. Beispielsweise kann der Befehl dem Befehl 120 entsprechen, welcher die Initialisierungsschaltungen 114 aus 1 veranlasst, einen Initialisierungsprozess zu initiieren oder durchzuführen.
  • Das Verfahren 400 kann ferner bei 404 das Laden eines Satzes von Bits in das Latch umfassen, bevor die Informationen am Speicher-Die empfangen werden. Der Satz von Bits umfasst wenigstens ein erstes Bit mit einem ersten Wert und ein zweites Bit mit einem zweiten Wert, welcher sich vom ersten Wert unterscheidet. Beispielsweise kann der Satz von Bits einem beliebigen der Sätze von Bits 116, 117 und 118 aus 1 entsprechen.
  • Das Verfahren 400 kann ferner bei 406 das Empfangen der Informationen am Speicher-Die umfassen. Beispielsweise kann der Speicher-Die 103 die Informationen 122 vom Controller 130 aus 1 empfangen. Die Informationen 122 können in Verbindung mit einer Schreiboperation empfangen werden, um die Informationen 122 in den Speicher 104 zu schreiben.
  • Das Verfahren 400 kann ferner bei 408 das Überschreiben von wenigstens einem Teil des Satzes von Bits am Latch mit den Informationen umfassen. Beispielsweise können die Informationen 122 im Latch 110 gespeichert werden, und die Informationen 122 können einen oder mehrere Werte des Satzes von Bits 116 am Latch 110 überschreiben. Das Überschreiben von einem oder mehreren Werten des Satzes von Bits 116 kann das Ändern von einem oder mehreren Bitwerten des Satzes von Bits 116 basierend auf einem oder mehreren Bits der Informationen 122 umfassen, wie beispielsweise durch Ändern von einem oder mehreren „0”-Bits des Satzes von Bits 116 zu einem oder mehreren „1”-Bits der Informationen 122. Alternativ dazu oder zusätzlich kann das Überschreiben von einem oder mehreren Werten des Satzes von Bits 116 das Ändern von einem oder mehreren „1”-Bits des Satzes von Bits 116 zu einem oder mehreren „0”-Bits der Informationen 122 umfassen. Nach dem Laden der Informationen 122 in das Latch 110 kann der Speicher-Die 103 die Informationen 122 zum Speicher 104 programmieren, wie beispielsweise durch Bewirken, dass die Lese-/Schreibschaltungen 112 Werte, welche im Latch 110 gespeichert sind, zu Speicherelementen des Speichers 104 schreiben (z. B. basierend auf einer physischen Adresse, die durch den Befehl 120 angezeigt wird).
  • Das Beispiel aus 4 veranschaulicht, dass ein Latch für einen Schreibprozess initialisiert werden kann, indem ein Satz von Bits (z. B. eine vorbestimmte randomisierte Bitsequenz) in das Latch geladen wird. Das Verfahren 400 kann verwendet werden, um Informationen zu „randomisieren”, während gleichzeitig das Senden einer großen Menge von „Dummy”-Daten zwischen einem Controller und einem Speicher vermieden wird. Das Verfahren 400 kann auch einem Speicher ermöglichen, Scrambling-Operationen auf dem Speicher zu reduzieren oder zu vermeiden, während weiterhin die „Randomisierung” von Daten, welche in den Speicher programmiert werden, ermöglicht wird.
  • Obwohl der Controller 130 und bestimmte andere Komponenten, welche hierin beschrieben sind, als Blockkomponenten veranschaulicht und allgemein beschrieben werden, können derartige Komponenten eine(n) oder mehrere Mikroprozessoren, Zustandsmaschinen und/oder andere Schaltungen umfassen, welche ausgelegt sind, um der Datenspeichervorrichtung 102 (oder einer oder mehreren Komponenten davon) zu ermöglichen, hierin beschriebene Operationen durchzuführen. Die hierin beschriebenen Komponenten können unter Verwendung von einem oder mehreren Knoten, einem oder mehreren Bussen (z. B. Datenbussen und/oder Steuerbussen), einer oder mehreren anderen Strukturen oder einer Kombination davon betriebsfähig miteinander gekoppelt sein. Eine oder mehrere hierin beschriebene Komponenten (z. B. die Initialisierungsschaltungen 114) können eine oder mehrere physische Komponenten, wie beispielsweise Hardware-Controller, Zustandsmaschinen, Logikschaltungen, eine oder mehrere andere Strukturen oder eine Kombination davon umfassen, um der Datenspeichervorrichtung 102 zu ermöglichen, eine oder mehrere der hierin beschriebenen Operationen durchzuführen.
  • Alternativ dazu oder zusätzlich können ein oder mehrere Aspekte der Datenspeichervorrichtung 102 unter Verwendung eines Mikroprozessors oder eines Mikrocontrollers implementiert werden, welcher programmiert ist (z. B. durch Ausführen von Anweisungen), um hierin beschriebene Operationen durchzuführen, wie beispielsweise eine oder mehrere Operationen des Verfahrens 400 aus 4. Eine oder mehrere Operationen, welche mit Bezug auf die Initialisierungsschaltungen 114 beschrieben sind, können unter Verwendung eines Prozessors implementiert werden, der Anweisungen ausführt. In einer besonderen Ausführungsform umfasst die Datenspeichervorrichtung 102 einen Prozessor, welcher Anweisungen (z. B. Firmware) ausführt, die aus dem Speicher 104 abgerufen werden. Alternativ dazu oder zusätzlich können Anweisungen, welche durch den Prozessor ausgeführt werden, von einer separaten Speicherposition abgerufen werden, die nicht Teil des Speichers 104 ist, wie beispielsweise in einem Nur-Lese-Speicher (Read-Only Memory, ROM).
  • Ebenfalls wird angemerkt, dass bestimmte Eigenschaften der Datenspeichervorrichtung 102 modifiziert werden können, beispielsweise unter Verwendung eines Firmware-Updates oder eines anderen Updates. Zur Veranschaulichung, wenn die Datenspeichervorrichtung 102 betrieben wird, können sich die physischen Eigenschaften der Datenspeichervorrichtung 102 ändern (z. B. können Speicherelemente des Speichers 104 einer physischen Verschlechterung oder einem physischen Verschleiß unterliegen). Eine Änderung der physischen Eigenschaften kann zu einem unterschiedlichen Betrieb der Datenspeichervorrichtung 102 führen, wie beispielsweise erhöhtem Leckstrom. Die hierin beschriebenen Techniken können aktualisiert werden (z. B. mittels einer Firmware-Aktualisierung), wie beispielsweise durch Erhöhen einer Anzahl von Sätzen von Bits, welche verwendet werden, um das Latch 110 aus 1 zu initialisieren (z. B. unter Verwendung von vier oder fünf oder mehr Sätzen von Bits, um die Korrelation von Werten zwischen Speicherelementen des Speichers 104 weiter zu verringern).
  • Es versteht sich, dass eine oder mehrere Operationen, welche hierin als vom Controller 130 durchgeführt beschrieben werden, am Speicher 104 durchgeführt werden können. Als veranschaulichendes Beispiel können ECC-Operationen „im Speicher” am Speicher-Die 103 alternativ dazu oder zusätzlich zum Durchführen derartiger Operationen am Controller 130 durchgeführt werden.
  • Die Datenspeichervorrichtung 102 kann an einer oder mehreren Host-Vorrichtungen angebracht oder darin eingebettet sein, wie beispielsweise innerhalb eines Gehäuses einer Host-Kommunikationsvorrichtung (z. B. der Host-Vorrichtung 154). Beispielsweise kann die Datenspeichervorrichtung 102 innerhalb eines Geräts, wie beispielsweise in einem Mobiltelefon, einem Computer (z. B. einem Laptop, einem Tablet oder einem Notebook-Computer), einem Musikplayer, einem Videoplayer, einer Gaming-Vorrichtung oder -Konsole, einem elektronischen Buchleser, einem persönlichen digitalen Assistenten (PDA), einer tragbaren Navigationsvorrichtung oder einer anderen Vorrichtung, welche internen nichtflüchtigen Speicher verwendet, integriert sein. Jedoch kann die Datenspeichervorrichtung 102 in anderen Ausführungsformen in einer tragbaren Vorrichtung implementiert sein, welche ausgelegt ist, um selektiv mit einer oder mehreren externen Vorrichtungen, wie beispielsweise der Host-Vorrichtung 154, gekoppelt zu werden.
  • Zur weiteren Veranschaulichung kann die Datenspeichervorrichtung 102 ausgelegt sein, um mit der Host-Vorrichtung 154 als eingebetteter Speicher gekoppelt zu werden, wie beispielsweise in Verbindung mit einer Embedded MultiMedia Card(eMMC®)(Warenzeichen der JEDEC Solid State Technology Association, Arlington, Virginia)-Konfiguration, als veranschaulichendes Beispiel. Die Datenspeichervorrichtung 102 kann einer eMMC-Vorrichtung entsprechen. Als weiteres Beispiel kann die Datenspeichervorrichtung 102 einer Speicherkarte entsprechen, wie beispielsweise einer Secure Digital(SD®)-Karte, einer microSD®-Karte, einer miniSDTM-Karte (Warenzeichen der SD-3C LLC, Wilmington, Delaware), einer MultiMediaCardTM(MMCTM)-Karte (Warenzeichen der JEDEC Solid State Technology Association, Arlington, Virginia) oder einer CompactFlash®(CF)-Karte (Warenzeichen der SanDisk Corporation, Milpitas, Kalifornien). Die Datenspeichervorrichtung 102 kann in Übereinstimmung mit einer JEDEC-Industriespezifikation arbeiten. Beispielsweise kann die Datenspeichervorrichtung 102 in Übereinstimmung mit einer JEDEC eMMC-Spezifikation, einer JEDEC Universal Flash Storage(UFS)-Spezifikation, einer oder mehreren anderen Spezifikationen oder einer Kombination davon arbeiten.
  • Der Speicher 104 kann einen dreidimensionalen (3D) Speicher, wie beispielsweise einen resistiven Direktzugriffsspeicher (Resistive Random Access Memory, ReRAM), einen Flash-Speicher (z. B. einen NAND-Speicher, einen NOR-Speicher, einen Single-Level-Cell(SLC)-Flash-Speicher, einen Multi-Level-Cell(MLC)-Flash-Speicher, einen NOR-Speicher mit geteilter Bitleitung (Divided Bit-Line NOR, DINOR), einen AND-Speicher, eine Vorrichtung mit hochkapazitivem Kopplungsverhältnis (High Capacitive Coupling Ratio, HiCR), eine Vorrichtung mit asymmetrischem kontaktlosem Transistor (Asymmetrical Contactless Transistor, ACT) oder einen anderen Flash-Speicher), einen löschbaren programmierbaren Nur-Lese-Speicher (Erasable Programmable Read-Only Memory, EPROM), einen elektrisch löschbaren programmierbaren Nur-Lese-Speicher (Electrically Erasable Programmable Read-Only Memory, EEPROM), einen Nur-Lese-Speicher (Read-Only Memory, ROM), einen einmal programmierbaren (One-Time Programmable, OTP) Speicher oder eine Kombination davon umfassen. Alternativ dazu oder zusätzlich kann der Speicher 104 eine andere Art von Speicher umfassen. Der Speicher 104 kann eine Halbleiterspeichervorrichtung umfassen.
  • Halbleiterspeichervorrichtungen umfassen flüchtige Speichervorrichtungen, wie beispielsweise dynamische Direktzugriffsspeicher(Dynamic Random Access Memory, „DRAM”)- oder statische Direktzugriffsspeicher(Static Random Access Memory, „SRAM”)-Vorrichtungen, nichtflüchtige Speichervorrichtungen, wie beispielsweise resistiven Direktzugriffsspeicher (Resistive Random Access Memory, „ReRAM”), elektrisch löschbaren programmierbaren Nur-Lese-Speicher (Electrically Erasable Programmable Read-Only Memory, „EEPROM”), Flash-Speicher (der auch als Teilmenge von EEPROM betrachtet werden kann), ferroelektrischen Direktzugriffsspeicher (Ferroelectric Random Access Memory, „FRAM”) und andere Halbleiterelemente, welche Informationen speichern können. Jede Art von Speichervorrichtung kann unterschiedliche Konfigurationen aufweisen. Beispielsweise können Flash-Speichervorrichtungen in einer NAND- oder einer NOR-Konfiguration ausgelegt sein.
  • Die Speichervorrichtungen können aus passiven und/oder aktiven Elementen in beliebigen Kombinationen ausgebildet sein. Als nicht einschränkendes Beispiel umfassen passive Halbleiterspeicherelemente ReRAM-Vorrichtungselemente, welche in einigen Ausführungsformen ein Widerstandsschaltspeicherelement, wie beispielsweise ein Anti-Fuse-Phasenänderungsmaterial usw., und optional ein Lenkelement, wie beispielsweise eine Diode usw., umfassen. Ferner umfassen als nicht einschränkendes Beispiel aktive Halbleiterspeicherelemente EEPROM- und Flash-Speichervorrichtungselemente, welche in einigen Ausführungsformen Elemente umfassen, die eine Ladungsspeicherregion enthalten, wie beispielsweise ein Floating-Gate, leitfähige Nanopartikel oder ein Ladungsspeicher-Dielektrikummaterial.
  • Mehrere Speicherelemente können ausgelegt sein, so dass sie in Reihe verbunden sind oder so dass auf jedes Element einzeln zugegriffen werden kann. Als nicht einschränkendes Beispiel umfassen Flash-Speichervorrichtungen in einer NAND-Konfiguration (NAND-Speicher) typischerweise in Reihe verbundene Speicherelemente. Ein NAND-Speicher-Array kann so ausgelegt sein, dass das Array aus mehreren Strings von Speicher besteht, wobei ein String aus mehreren Speicherelementen besteht, welche eine einzelne Bitleitung teilen und auf die als Gruppe zugegriffen wird. Alternativ können Speicherelemente so ausgelegt sein, dass auf jedes Element einzeln zugegriffen werden kann, z. B. ein NOR-Speicher-Array. NAND- und NOR-Speicherkonfigurationen sind beispielhaft, und Speicherelemente können anderweitig ausgelegt sein.
  • Die Halbleiterspeicherelemente, welche innerhalb und/oder über einem Substrat angeordnet sind, können in zwei oder drei Dimensionen angeordnet sein, wie beispielsweise in einer zweidimensionalen Speicherstruktur oder in einer dreidimensionalen Speicherstruktur. In einer zweidimensionalen Speicherstruktur sind die Halbleiterspeicherelemente in einer einzelnen Ebene oder einem einzelnen Speichervorrichtungslevel angeordnet. Typischerweise sind Speicherelemente in einer zweidimensionalen Speicherstruktur in einer Ebene (z. B. in einer Ebene in der x-z-Richtung) angeordnet, welche sich im Wesentlichen parallel zu einer Hauptoberfläche eines Substrats erstreckt, das die Speicherelemente unterstützt. Das Substrat kann ein Wafer sein, über oder in dem die Schicht der Speicherelemente ausgebildet wird, oder es kann ein Trägersubstrat sein, welches an den Speicherelementen angebracht wird, nachdem sie ausgebildet wurden. Als nicht einschränkendes Beispiel kann das Substrat einen Halbleiter wie Silizium umfassen.
  • Die Speicherelemente können im einzelnen Speichervorrichtungslevel in einem geordneten Array angeordnet sein, beispielsweise in einer Vielzahl von Zeilen und/oder Spalten. Die Speicherelemente können jedoch in nicht regulären oder nicht orthogonalen Konfigurationen angeordnet sein. Die Speicherelemente können jeweils zwei oder mehr Elektroden oder Kontaktleitungen, wie beispielsweise Bitleitungen und Wortleitungen, aufweisen.
  • Ein dreidimensionales Speicher-Array ist so angeordnet, dass Speicherelemente mehrere Ebenen oder mehrere Speichervorrichtungslevels einnehmen, wodurch eine Struktur in drei Dimensionen ausgebildet wird (d. h. in den x-, y- und z-Richtungen, wobei die y-Richtung im Wesentlichen senkrecht und die x- und z-Richtungen im Wesentlichen parallel zur Hauptoberfläche des Substrats sind). Als nicht einschränkendes Beispiel kann eine dreidimensionale Speicherstruktur vertikal als ein Stapel von mehreren zweidimensionalen Speichervorrichtungslevels angeordnet sein. Als weiteres nicht einschränkendes Beispiel kann ein dreidimensionales Speicher-Array als mehrere vertikale Spalten angeordnet sein (z. B. Spalten, die sich im Wesentlichen senkrecht zur Hauptoberfläche des Substrats, d. h. in der y-Richtung, erstrecken), wobei jede Spalte mehrere Speicherelemente in jeder Spalte aufweist. Die Spalten können in einer zweidimensionalen Konfiguration, z. B. in einer x-z-Ebene, angeordnet sein, was zu einer dreidimensionalen Anordnung von Speicherelementen mit Elementen auf mehreren vertikal gestapelten Speicherebenen führt. Andere Konfigurationen von Speicherelementen in drei Dimensionen können auch ein dreidimensionales Speicher-Array darstellen.
  • Als nicht einschränkendes Beispiel können die Speicherelemente in einem dreidimensionalen NAND-Speicher-Array miteinander gekoppelt sein, um einen NAND-String innerhalb eines einzelnen horizontalen (z. B. x-z) Speichervorrichtungslevels auszubilden. Alternativ dazu können die Speicherelemente miteinander gekoppelt sein, um einen vertikalen NAND-String auszubilden, welcher mehrere horizontale Speichervorrichtungslevels durchquert. Andere dreidimensionale Konfigurationen sind vorstellbar, bei denen einige NAND-Strings Speicherelemente in einem einzelnen Speicherlevel enthalten, während andere Strings Speicherelemente enthalten, welche sich durch mehrere Speicherlevels erstrecken. Dreidimensionale Speicher-Arrays können auch in einer NOR-Konfiguration und in einer ReRAM-Konfiguration entworfen werden.
  • Typischerweise werden in einem monolithischen dreidimensionalen Speicher-Array ein oder mehrere Speichervorrichtungslevels über einem einzelnen Substrat ausgebildet. Optional kann das monolithische dreidimensionale Speicher-Array auch eine oder mehrere Speicherschichten wenigstens teilweise innerhalb des einzelnen Substrats aufweisen. Als nicht einschränkendes Beispiel kann das Substrat einen Halbleiter wie Silizium umfassen. In einem monolithischen dreidimensionalen Array werden die Schichten, welche jeden Speichervorrichtungslevel des Arrays bilden, typischerweise auf den Schichten des darunter liegenden Speichervorrichtungslevels des Arrays ausgebildet. Jedoch können Schichten von benachbarten Speichervorrichtungslevels eines monolithischen dreidimensionalen Speicher-Arrays gemeinsam genutzt werden oder dazwischen liegende Schichten zwischen Speichervorrichtungslevels aufweisen.
  • Alternativ dazu können zweidimensionale Arrays separat ausgebildet werden und dann zusammen in ein Package gepackt werden, um eine nicht monolithische Speichervorrichtung mit mehreren Speicherschichten auszubilden. Beispielsweise können nicht monolithische gestapelte Speicher konstruiert werden, indem Speicherlevels auf separaten Substraten ausgebildet werden und die Speicherlevels dann aufeinander gestapelt werden. Die Substrate können vor dem Stapeln gedünnt oder aus den Speichervorrichtungslevels entfernt werden, aber da die Speichervorrichtungslevels anfänglich über separaten Substraten ausgebildet werden, sind die resultierenden Speicher-Arrays keine monolithischen dreidimensionalen Speicher-Arrays. Ferner können mehrere zweidimensionale Speicher-Arrays oder dreidimensionale Speicher-Arrays (monolithisch oder nicht monolithisch) auf separaten Chips ausgebildet und dann zusammen in ein Package gepackt werden, um eine Speichervorrichtung mit gestapelten Chips auszubilden.
  • Assoziierte Schaltungen sind typischerweise für den Betrieb der Speicherelemente und für die Kommunikation mit den Speicherelementen erforderlich. Als nicht einschränkende Beispiele können Speichervorrichtungen Schaltungen aufweisen, welche zum Steuern und Ansteuern von Speicherelementen verwendet werden, um Funktionen wie beispielsweise Programmieren und Lesen auszuführen. Diese assoziierten Schaltungen können auf dem gleichen Substrat wie die Speicherelemente und/oder auf einem separaten Substrat liegen. Beispielsweise kann ein Controller für Speicher-Lese-/Schreiboperationen auf einem separaten Controllerchip und/oder auf dem gleichen Substrat wie die Speicherelemente angeordnet sein.
  • Fachleute auf dem Gebiet werden erkennen, dass diese Offenbarung nicht auf die beschriebenen zweidimensionalen und dreidimensionalen beispielhaften Strukturen beschränkt ist, sondern alle relevanten Speicherstrukturen innerhalb des Wesens und Schutzbereichs der Offenbarung, wie hierin beschrieben und wie von Fachleuten auf dem Gebiet verstanden, abdeckt. Die Veranschaulichungen der hierin beschriebenen Ausführungsformen sollen ein allgemeines Verständnis der verschiedenen Ausführungsformen ermöglichen. Andere Ausführungsformen können verwendet und aus der Offenbarung abgeleitet werden, so dass strukturelle und logische Substitutionen und Änderungen vorgenommen werden können, ohne vom Schutzbereich der Offenbarung abzuweichen. Diese Offenbarung soll alle nachfolgenden Adaptationen oder Variationen verschiedener Ausführungsformen abdecken. Fachleute auf dem Gebiet werden erkennen, dass derartige Modifikationen innerhalb des Schutzbereichs der vorliegenden Offenbarung liegen.
  • Der oben offenbarte Gegenstand ist als veranschaulichend und nicht einschränkend zu betrachten, und die beigefügten Ansprüche sollen alle derartigen Modifikationen, Verbesserungen und andere Ausführungsformen abdecken, welche in den Schutzbereich der vorliegenden Offenbarung fallen. Demzufolge soll der Schutzbereich der vorliegenden Erfindung, soweit gesetzlich zulässig, durch die weitestgehende zulässige Auslegung der folgenden Ansprüche und ihrer Entsprechungen bestimmt werden und soll nicht durch die vorhergehende detaillierte Beschreibung beschränkt oder begrenzt sein.

Claims (34)

  1. Verfahren, umfassend: in einer Datenspeichervorrichtung, welche einen Speicher-Die umfasst, wobei der Speicher-Die einen Speicher und ein Latch umfasst, Durchführen am Speicher-Die: Empfangen eines Befehls, welcher einer Schreiboperation entspricht, um Informationen in den Speicher zu schreiben; vor dem Empfangen der Informationen am Speicher-Die Laden eines Satzes von Bits in das Latch, wobei der Satz von Bits wenigstens ein erstes Bit mit einem ersten Wert und ein zweites Bit mit einem zweiten Wert umfasst, welcher sich vom ersten Wert unterscheidet; Empfangen der Informationen am Speicher-Die; und Überschreiben von wenigstens einem Teil des Satzes von Bits am Latch mit den Informationen.
  2. Verfahren nach Anspruch 1, wobei der Satz von Bits eine zufällige oder eine pseudozufällige Bitsequenz umfasst.
  3. Verfahren nach Anspruch 1, wobei der Satz von Bits aus dem Speicher-Die abgerufen wird.
  4. Verfahren nach Anspruch 1, wobei der Satz von Bits eine Bitlänge aufweist, welche gleich einer Seitenlänge ist, die mit einer Seite des Speichers assoziiert ist.
  5. Verfahren nach Anspruch 1, wobei der Satz von Bits mehrere Kopien eines bestimmten Bitmusters umfasst, wobei das bestimmte Bitmuster eine Bitlänge aufweist, welche kleiner als eine Seitenlänge ist, die mit dem Speicher assoziiert ist.
  6. Verfahren nach Anspruch 1, wobei der Speicher eine Drei-Bit-pro-Zelle-Multi-Level-Cell(MLC)-Architektur aufweist, wobei die Schreiboperation zum Schreiben einer oberen Seite, einer mittleren Seite oder einer unteren Seite ist, und wobei der Satz von Bits aus mehreren Sätzen von Bits ausgewählt wird, welche mit oberen Seiten, mittleren Seiten und unteren Seiten assoziiert sind.
  7. Verfahren nach Anspruch 1, wobei der Speicher eine Zwei-Bit-pro-Zelle-Multi-Level-Cell(MLC)-Architektur aufweist, wobei die Schreiboperation zum Schreiben einer oberen Seite oder einer unteren Seite ist, und wobei der Satz von Bits aus mehreren Sätzen von Bits ausgewählt wird, welche mit oberen Seiten und unteren Seiten assoziiert sind.
  8. Verfahren nach Anspruch 1, wobei der Befehl eine Adresse des Speichers anzeigt, und ferner umfassend Auswählen des Satzes von Bits aus mehreren Sätzen von Bits basierend auf der Adresse.
  9. Verfahren nach Anspruch 8, wobei die Adresse einen Seitenindex umfasst, welcher eine bestimmte Seite innerhalb eines bestimmten Blocks des Speichers anzeigt, und wobei jede Seite des Blocks mit einem jeweiligen der mehreren Sätze von Bits assoziiert ist.
  10. Verfahren nach Anspruch 8, wobei die mehreren Sätze von Bits einen ersten Satz von Bits umfassen, welche für eine erste Teilmenge von Seiten reserviert sind, die mit einem ersten Satz von Seitenindizes assoziiert sind, und ferner einen zweiten Satz von Bits umfassen, welche für eine zweite Teilmenge von Seiten reserviert sind, die mit einem zweiten Satz von Seitenindizes assoziiert sind.
  11. Verfahren nach Anspruch 1, ferner umfassend zufälliges oder pseudozufälliges Auswählen des Satzes von Bits aus mehreren Sätzen von Bits in Reaktion auf das Empfangen des Befehls.
  12. Verfahren nach Anspruch 1, wobei der Befehl eine Anzeige umfasst, welche den Satz von Bits aus mehreren Sätzen von Bits identifiziert.
  13. Verfahren nach Anspruch 12, wobei die Anzeige von einem Controller, welcher mit dem Speicher-Die gekoppelt ist, oder von einer Host-Vorrichtung empfangen wird.
  14. Verfahren nach Anspruch 1, ferner umfassend Generieren des Satzes von Bits in Reaktion auf das Empfangen des Befehls.
  15. Verfahren nach Anspruch 14, wobei der Satz von Bits zufällig oder pseudozufällig generiert wird.
  16. Verfahren nach Anspruch 1, wobei der Speicher eine dreidimensionale (3D) Speicherkonfiguration aufweist, welche monolithisch in einem oder mehreren physischen Levels von Arrays von Speicherzellen mit einem aktiven Bereich oberhalb eines Siliziumsubstrats ausgebildet ist, und wobei der Speicher-Die Schaltungen umfasst, welche mit dem Betrieb der Speicherzellen assoziiert sind.
  17. Datenspeichervorrichtung, umfassend: einen Speicher; ein Latch; Initialisierungsschaltungen, wobei die Initialisierungsschaltungen ausgelegt sind, um einen Satz von Bits in das Latch zu laden, um das Latch für einen Schreibprozess zu initialisieren, und wobei der Satz von Bits wenigstens ein erstes Bit mit einem ersten Wert und ein zweites Bit mit einem zweiten Wert umfasst, welcher sich vom ersten Wert unterscheidet; und Lese-/Schreibschaltungen, wobei die Lese-/Schreibschaltungen ausgelegt sind, um den Schreibprozess am Speicher durchzuführen, nachdem Informationen am Latch empfangen wurden und nachdem die Informationen wenigstens einen Teil des Satzes von Bits am Latch überschreiben.
  18. Datenspeichervorrichtung nach Anspruch 17, ferner umfassend einen Controller, welcher ausgelegt ist, um einen Befehl an die Initialisierungsschaltungen zu senden, wobei die Initialisierungsschaltungen ferner ausgelegt sind, um den Satz von Bits in Reaktion auf das Empfangen des Befehls in das Latch zu laden.
  19. Datenspeichervorrichtung nach Anspruch 17, wobei die Initialisierungsschaltungen ferner ausgelegt sind, um den Satz von Bits in Reaktion auf das Empfangen eines Befehls von einer Host-Vorrichtung in das Latch zu laden.
  20. Datenspeichervorrichtung nach Anspruch 19, wobei die Initialisierungsschaltungen ferner ausgelegt sind, um den Satz von Bits abzurufen, bevor der Satz von Bits in das Latch geladen wird.
  21. Datenspeichervorrichtung nach Anspruch 17, wobei der Satz von Bits eine zufällige oder eine pseudozufällige Bitsequenz umfasst.
  22. Datenspeichervorrichtung nach Anspruch 17, wobei der Satz von Bits eine Bitlänge aufweist, welche gleich einer Seitenlänge ist, die mit einer Seite des Speichers assoziiert ist.
  23. Datenspeichervorrichtung nach Anspruch 17, wobei der Satz von Bits mehrere Kopien eines bestimmten Bitmusters umfasst, wobei das bestimmte Bitmuster eine Bitlänge aufweist, welche kleiner als eine Seitenlänge ist, die mit dem Speicher assoziiert ist.
  24. Datenspeichervorrichtung nach Anspruch 17, wobei der Speicher eine Drei-Bit-pro-Zelle-Multi-Level-Cell(MLC)-Architektur aufweist, wobei der Schreibprozess zum Schreiben einer oberen Seite, einer mittleren Seite oder einer unteren Seite ist, und wobei die Initialisierungsschaltungen ferner ausgelegt sind, um den Satz von Bits aus mehreren Sätzen von Bits auszuwählen, welche mit oberen Seiten, mittleren Seiten und unteren Seiten assoziiert sind.
  25. Datenspeichervorrichtung nach Anspruch 17, wobei der Speicher eine Zwei-Bit-pro-Zelle-Multi-Level-Cell(MLC)-Architektur aufweist, wobei der Schreibprozess zum Schreiben einer oberen Seite oder einer unteren Seite ist, und wobei die Initialisierungsschaltungen ferner ausgelegt sind, um den Satz von Bits aus mehreren Sätzen von Bits auszuwählen, welche mit oberen Seiten und unteren Seiten assoziiert sind.
  26. Datenspeichervorrichtung nach Anspruch 17, wobei die Initialisierungsschaltungen ferner ausgelegt sind, um den Satz von Bits aus mehreren Sätzen von Bits basierend auf einer Adresse des Speichers auszuwählen, welche mit dem Schreibprozess assoziiert ist.
  27. Datenspeichervorrichtung nach Anspruch 26, wobei die Adresse einen Seitenindex umfasst, welcher eine bestimmte Seite innerhalb eines bestimmten Blocks des Speichers anzeigt, und wobei jede Seite des Blocks mit einem jeweiligen der mehreren Sätze von Bits assoziiert ist.
  28. Datenspeichervorrichtung nach Anspruch 26, wobei die mehreren Sätze von Bits einen ersten Satz von Bits umfassen, welche für eine erste Teilmenge von Seiten reserviert sind, die mit einem ersten Satz von Seitenindizes assoziiert sind, und ferner einen zweiten Satz von Bits umfassen, welche für eine zweite Teilmenge von Seiten reserviert sind, die mit einem zweiten Satz von Seitenindizes assoziiert sind.
  29. Datenspeichervorrichtung nach Anspruch 17, wobei die Initialisierungsschaltungen ferner ausgelegt sind, um den Satz von Bits aus mehreren Sätzen von Bits zufällig oder pseudozufällig auszuwählen.
  30. Datenspeichervorrichtung nach Anspruch 17, wobei die Initialisierungsschaltungen ferner ausgelegt sind, um eine Anzeige zu empfangen, welche den Satz von Bits aus mehreren Sätzen von Bits identifiziert.
  31. Datenspeichervorrichtung nach Anspruch 30, wobei die Anzeige entweder von einem Controller oder von einer Host-Vorrichtung empfangen wird.
  32. Datenspeichervorrichtung nach Anspruch 17, wobei die Initialisierungsschaltungen ferner ausgelegt sind, um den Satz von Bits zu generieren.
  33. Datenspeichervorrichtung nach Anspruch 32, wobei die Initialisierungsschaltungen ferner ausgelegt sind, um den Satz von Bits zufällig oder pseudozufällig zu generieren.
  34. Datenspeichervorrichtung nach Anspruch 17, wobei der Speicher eine dreidimensionale (3D) Speicherkonfiguration aufweist, welche monolithisch in einem oder mehreren physischen Levels von Arrays von Speicherzellen mit einem aktiven Bereich oberhalb eines Siliziumsubstrats ausgebildet ist, und wobei die Lese-/Schreibschaltungen mit dem Betrieb der Speicherzellen assoziiert sind.
DE112015004531.7T 2014-10-01 2015-09-01 Latch-Initialisierung für eine Datenspeichervorrichtung Withdrawn DE112015004531T5 (de)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US14/504,268 2014-10-01
US14/504,268 US9355732B2 (en) 2014-10-01 2014-10-01 Latch initialization for a data storage device
PCT/US2015/047967 WO2016053553A1 (en) 2014-10-01 2015-09-01 Latch initialization for a data storage device

Publications (1)

Publication Number Publication Date
DE112015004531T5 true DE112015004531T5 (de) 2017-06-14

Family

ID=54073045

Family Applications (1)

Application Number Title Priority Date Filing Date
DE112015004531.7T Withdrawn DE112015004531T5 (de) 2014-10-01 2015-09-01 Latch-Initialisierung für eine Datenspeichervorrichtung

Country Status (4)

Country Link
US (1) US9355732B2 (de)
CN (1) CN106716536B (de)
DE (1) DE112015004531T5 (de)
WO (1) WO2016053553A1 (de)

Families Citing this family (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10521338B2 (en) 2017-06-05 2019-12-31 Arm Ltd. Method, system and device for memory device operation
US10153021B1 (en) 2017-06-09 2018-12-11 Micron Technology, Inc. Time-based access of a memory cell
US10153022B1 (en) 2017-06-09 2018-12-11 Micron Technology, Inc Time-based access of a memory cell
KR20190006680A (ko) * 2017-07-11 2019-01-21 에스케이하이닉스 주식회사 데이터 저장 장치 및 그것의 동작 방법
TWI640996B (zh) * 2017-12-21 2018-11-11 新唐科技股份有限公司 記憶體電路及其測試方法
US20190214087A1 (en) * 2018-01-09 2019-07-11 Western Digital Technologies, Inc. Non-volatile storage system with decoupling of write transfers from write operations
KR20200052150A (ko) * 2018-11-06 2020-05-14 에스케이하이닉스 주식회사 메모리 시스템 및 그것의 동작방법

Family Cites Families (18)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3740212B2 (ja) * 1996-05-01 2006-02-01 株式会社ルネサステクノロジ 不揮発性半導体記憶装置
US7134069B1 (en) * 1999-06-16 2006-11-07 Madrone Solutions, Inc. Method and apparatus for error detection and correction
US6966017B2 (en) * 2001-06-20 2005-11-15 Broadcom Corporation Cache memory self test
DE10154066B4 (de) * 2001-11-02 2004-02-12 Infineon Technologies Ag Integrierter Speicher und Verfahren zum Betrieb eines integrierten Speichers
JP3935151B2 (ja) * 2004-01-26 2007-06-20 株式会社東芝 半導体集積回路装置
US20070150644A1 (en) * 2005-12-28 2007-06-28 Yosi Pinto System for writing non-volatile memories for increased endurance
TWI380311B (en) * 2006-12-29 2012-12-21 Sandisk Technologies Inc Systems and methods for margined neighbor reading for non-volatile memory read operations including coupling compensation
US8065585B1 (en) * 2007-08-30 2011-11-22 L-3 Communications Corporation High data throughput turbo product encoder
US8151034B2 (en) * 2007-09-12 2012-04-03 Sandisk Technologies Inc. Write abort and erase abort handling
US8713330B1 (en) 2008-10-30 2014-04-29 Apple Inc. Data scrambling in memory devices
JP2010123156A (ja) * 2008-11-17 2010-06-03 Elpida Memory Inc 半導体記憶装置及びその制御方法
KR101358548B1 (ko) * 2008-11-26 2014-02-05 샤프 가부시키가이샤 불휘발성 반도체 기억 장치 및 그 구동 방법
KR20100111990A (ko) 2009-04-08 2010-10-18 삼성전자주식회사 플래시 메모리 장치 및 그것의 데이터 랜덤화 방법
JP5492679B2 (ja) 2009-06-30 2014-05-14 パナソニック株式会社 記憶装置およびメモリコントローラ
JP5443420B2 (ja) 2011-03-23 2014-03-19 株式会社東芝 半導体記憶装置
US9251900B2 (en) 2011-11-15 2016-02-02 Sandisk Technologies Inc. Data scrambling based on transition characteristic of the data
US9443615B2 (en) * 2012-12-04 2016-09-13 Micron Technology, Inc. Methods and apparatuses for memory testing with data compression
US8902672B2 (en) * 2013-01-01 2014-12-02 Memoir Systems, Inc. Methods and apparatus for designing and constructing multi-port memory circuits

Also Published As

Publication number Publication date
CN106716536A (zh) 2017-05-24
CN106716536B (zh) 2019-06-28
US20160099065A1 (en) 2016-04-07
US9355732B2 (en) 2016-05-31
WO2016053553A1 (en) 2016-04-07

Similar Documents

Publication Publication Date Title
DE102018105529B4 (de) Managementschema zur Vermeidung einer Lösch- und Programmierstörung von Subblöcken im nichtflüchtigen Datenspeicher
DE102014101267B4 (de) Speichersystem mit nichtflüchtiger Speichervorrichtung und Programmierverfahren davon
DE112015004531T5 (de) Latch-Initialisierung für eine Datenspeichervorrichtung
DE102014204716B4 (de) Nichtflüchtiges Speicherbauelement und Programmierverfahren für ein Betriebssystem(OS)-Image
DE102018106154A1 (de) Faltungsoperationen in datenspeichersystemen mit einzeladressenaktualisierungen
DE102018123891A1 (de) Handhabung nichtabgestimmter Schreibvorgänge
DE112017002776T5 (de) Nichtflüchtiger Speicher mit angepasster Steuerung vom Typ der Störinjektion während der Programmüberprüfung für eine verbesserte Programmleistung
CN107195326B (zh) 半导体存储装置及存储系统
DE102017104257A1 (de) Auf Zellenstrom basierende Bitleitungsspannung
DE102015108143A1 (de) Nand-Vorab-Lese-Fehlerkorrektur
KR101731408B1 (ko) 플래시 메모리에 데이터를 기록하는 방법 및 관련 메모리 장치 및 플래시 메모리
DE112015003147T5 (de) Selektive Leseverstärkeraktivierung
DE112016004148T5 (de) Systeme und Verfahren zur Befehlsautorisierung
DE102008005338A1 (de) Integrierter Schaltkreis mit einer Speicherzellenanordnung und Verfahren zum Lesen eines Speicherzellenzustands unter Verwendung einer Mehrzahl von Teil-Leseoperationen
DE112018000230T5 (de) System und Verfahren zur spekulativen Befehlsausführung unter Verwendung des Steuerungsspeicherpuffers
DE102019124668A1 (de) Transistorschwellenspannungshaltung in 3d-speicher
DE102018123494A1 (de) Speichervorrichtung, die zum aktualisieren einesfeldprogrammierbaren gate-arrays ausgestaltetist, und betriebsverfahren dafür
DE112019000161T5 (de) Speicher-cache-verwaltung
DE102013108456A1 (de) Nichtflüchtige Speichervorrichtung und Programmierverfahren
DE112020000159T5 (de) Systeme und verfahren zum definieren von speicher-unterblöcken
DE112020005395T5 (de) Kapazitätserweiterung für speicher-untersysteme
DE102017120971A1 (de) Pipelineverzögerungsdetektion während des Decodierens durch eine Datenspeichereinrichtung
DE112021001848T5 (de) Mehrere pinkonfigurationen von speichervorrichtungen
DE102022004129A1 (de) Zurückkopier-lösch-befehl zur durchführung einer scan- und leseoperation in einer speichervorrichtung
DE102022212920A1 (de) Speichervorrichtung und verfahren zum betreiben der speichervorrichtung

Legal Events

Date Code Title Description
R012 Request for examination validly filed
R119 Application deemed withdrawn, or ip right lapsed, due to non-payment of renewal fee