-
Bereich der Erfindung
-
Die
vorliegende Erfindung betrifft im Allgemeinen eine Technologie für
nicht flüchtige Speicher.
-
Hintergrund der Erfindung
-
Nicht
flüchtige Halbleiterspeichervorrichtungen werden weithin
als Speicher in Computern und anderen elektronischen Vorrichtungen
eingesetzt. Bei ”Single-Level Cell” (SLC)-Speichervorrichtungen ist
ein eine Ladung haltendes Gate in jeder Speicherzelle der Vorrichtung
derart entworfen, dass das Gate eine Ladung hält, so dass
das Gate entweder in einem geladenen Zustand oder in einem gelöschten Zustand
vorliegen kann. Jede Speicherzelle kann daher ein einzelnes Datenbit
speichern, wobei ein Zustand einer logischen ”1” (was
typischerweise mit dem gelöschten Zustand gleichgesetzt
wird) und der andere Zustand einer logischen ”0” (was
typischerweise mit dem geladenen Zustand gleichgesetzt wird) entspricht.
-
Bei
einem ”Multi-Level Cell” (MLC)-Speicher kann das
Gate in jeder Speicherzelle auf vier oder mehr verschiedene Spannungszustände
oder Spannungsbereiche eingestellt werden, wodurch für
eine Datendichte von zwei oder mehr Datenbits pro Zelle gesorgt
wird. Ein MLC-Speicher ist beispielsweise in dem
US-Patent 5,043,940 von Harari und
in dem
US-Patent 5,172,338 von
Mehrotra und anderen beschrieben, welche durch Bezugnahme mit aufgenommen
werden.
-
Je
höher die Datendichte einer MLC-Vorrichtung ist, desto
begrenzter bzw. kleiner werden notwendigerweise die Bereiche, welche
die Spannungszustände definieren. Daher verringert sich
die Toleranz bezüglich tatsächlichen und vorhandenen
Verschiebungen bei Zellspannungen. Bei einem Flash-Speicher können
aufgrund einer elektrischen Kopplung zwischen den Zellen wie auch
aufgrund von Leckströmen durch das Oxid, welches das Gate der
Zelle isoliert, bei langen Speicherzeiten tatsächlich Verschiebungen
bzw. Veränderungen bei der Ladung auftreten, welche in
einer Zelle gespeichert ist, wenn eine benachbarte Zelle gelesen,
programmiert oder gelöscht wird. Veränderungen
können auch aufgrund einer Kopp lung von Feldern zwischen
den Zellen auftreten, ein Effekt, welcher in dem
US-Patent 5,867,429 von Cheng und
anderen und in dem
US-Patent
5,930,167 von Lee und anderen, welche durch Bezugnahme
mit aufgenommen werden, beschrieben worden ist. Das
US-Patent 5,930,167 beschreibt darüber
hinaus ein selektives Programmieren von Abschnitten eines Multi-State-Speichers
als Cache-Speicher bei nur zwei Zuständen oder mit einer
verringerten Spanne, um die Zeitspanne, welche notwendig ist, um
die Daten anfänglich zu programmieren, zu verkürzen.
Diese Daten werden später mit mehr als zwei Zuständen
oder mit erweiterten Spannen in dem Speicher gelesen und erneut
programmiert.
-
Bei
bestimmten Typen eines MLC-Speichers werden gleichzeitig mehrere
Bits in einer Zelle gespeichert, wohingegen bei anderen Typen Bits
inkrementell gespeichert werden können. In dem letztgenannten
Fall wird ein erstes Bit in das niederwertigste Bit (LSB (”Least
Significant Bit”)) der Zelle geschrieben (oder programmiert),
indem die Ladung der Zelle um eine erste Schrittgröße
erhöht wird. Ein zweites Bit kann dann für das
höchstwertigste Bit oder MSB (”Most Significant
Bit”) in einer 2-Bit-Zelle gespeichert werden, indem die
Ladung um eine weitere Schrittgröße erhöht
wird. Die Offenlegungsschrift der US-Patentanmeldung 2007/0133249
von Roohparvar, welche durch Bezugnahme mit aufgenommen wird, beschreibt
ein Speichern eines einzigen Bits in einer Zelle einer MLC-Vorrichtung.
Die zu programmierenden Zellen werden anfänglich mit den
erwünschten Daten entweder für das niederwertigste oder
für das höchstwertigste Bit der Zelle programmiert.
Ein zweiter Programmiervorgang programmiert verstärkende
Daten, welche das Schwellenwertniveau der Zelle auf das angemessene
Niveau für die angestrebten Daten einstellt.
-
Die
Offenlegungsschrift der US-Patentanmeldung 2006/0171210 von Nagashima
und anderen, welche durch Bezugnahme mit aufgenommen wird, beschreibt
ein Speichern eines Flags für jeden Zellenblock einer MLC-Vorrichtung.
Das Flag zeigt an, ob die Zellen des Blocks als SLC-Zellen oder
als MLC-Zellen zu programmieren sind.
-
Das
US-Patent 7,164,601 von
Mitani und anderen, welches durch Bezugnahme mit aufgenommen wird,
beschreibt ein Einstellen eines Bits einer Speicheradressenbezeichnung,
um so zu entscheiden, ob die Daten durch einen SLC-Vorgang oder durch
einen MLC-Vorgang gespeichert werden.
-
Zusammenfassung der Erfindung
-
Ausführungsformen
der vorliegenden Erfindung stellen Vorrichtungen und Verfahren zum
Speichern von Eingangsdaten in eine Gruppe von Zellen in einer MLC-Speichervorrichtung
mit einer (Speicher-)Dichte bereit, welche geringer als die ausgewiesene
Dichte der Vorrichtung ist. Dummy-Daten werden in ein oder in mehrere
Bits von allen Zellen in der Gruppe gespeichert, um dadurch die
Anzahl der Bits in jeder Zelle, in welche tatsächlich Eingangsdaten
geschrieben werden können, zu verringern. Die Dummy-Daten
sind von den Eingangsdaten unabhängig und weisen typischerweise
den gleichen Bitwert auf, welcher derart gewählt wird,
dass ein Unterschied zwischen Spannungszuständen, welche
von den Zellen in der Gruppe angenommen werden, maximiert wird.
Die vergrößerte Differenz zwischen Spannungszuständen
kann die Zuverlässigkeit einer Datenspeicherung verbessern.
-
Daher
wird entsprechend einer erfindungsgemäßen Ausführungsform
ein Verfahren zum Speichern von Daten bereitgestellt, welches umfasst:
In
einem Speicherfeld, welches Zellen aufweist, die zum Schreiben einer
ersten Anzahl von Bits pro Zelle ausgestaltet sind, wird eine Gruppe
der Zellen bestimmt, in welche in eine zweite Anzahl von Bits pro Zelle,
welche kleiner als die erste Anzahl ist, Eingangsdaten zu schreiben
sind;
Speichern von Dummy-Daten, welche unabhängig von
den Eingangsdaten sind, in einen ersten Satz von einem oder von
mehreren Bits der Zellen in der Gruppe; und
Schreiben der Eingangsdaten
in einen zweiten Satz von mindestens einem anderen Bit der Zellen
in der Gruppe.
-
Bei
den offenbarten Ausführungsformen umfassen die Dummy-Daten
den gleichen Bit-Wert, welcher in mindestens einem der Bits in dem
ersten Satz in allen Zellen in der Gruppe gespeichert wird. Typischerweise
weisen die Zellen in dem Speicherfeld einen vorbestimmten Satz von
Spannungszuständen auf, und die Dummy-Daten werden derart
ausgewählt, dass ein Abstand zwischen den Spannungszuständen
maximiert wird, welcher sich durch das Speichern der Dummy-Daten
und das Schreiben der Eingangsdaten ergibt.
-
Gemäß einer
Ausführungsform ist die erste Anzahl gleich Zwei und die
zweite Anzahl gleich Eins. Bei einer anderen Ausführungsform
ist die erste Anzahl größer als Zwei, während
die zweite Anzahl größer als Eins sein kann.
-
Die
Dummy-Daten können in das Speicherfeld geschrieben werden,
bevor die Eingangsdaten geschrieben werden. Alternativ kann das
Speichern der Dummy-Daten eine Weiterleitung eines Befehls von einer
Steuerung zu einer Vorrichtung, welche das Speicherfeld umfasst,
umfassen, wobei die Vorrichtung angewiesen wird, dass eine oder
die mehreren Bits auf einen Dummy-Wert zu setzen, ohne dass die Dummy-Daten
von der Steuerung an die Vorrichtung übertragen werden.
-
Darüber
hinaus wird gemäß einer erfindungsgemäßen
Ausführungsform ein Verfahren zum Speichern von Daten bereitgestellt,
welches umfasst:
In einem Speicherfeld, welches Zellen aufweist,
die zum Schreiben einer ersten Anzahl von Bits pro Zelle ausgestaltet
sind, welche einen vorbestimmten Satz von Multi-Bit-Codes darstellen,
die zumindest ein erstes und ein zweites Bit umfassen und verschiedenen,
entsprechenden Spannungszuständen der Zellen entsprechen,
wird eine Gruppe der Zellen bestimmt, in welche in eine zweite Anzahl
von Bits pro Zelle, welche kleiner als die erste Anzahl ist, die
Daten zu schreiben sind;
Speichern von Dummy-Daten in den Zellen
in der Gruppe, wobei die Dummy-Daten einen gleichen Bitwert aufweisen,
welcher als das erste Bit von allen Zellen in der Gruppe gespeichert
wird und derart ausgewählt wird, dass ein Spannungsunterschied
zwischen den Spannungszuständen maximiert wird, welche
den Multi-Bit-Codes entsprechen, die den ausgewählten Bitwert
als das erste Bit enthalten;
Empfangen von Eingangsdaten zum
Speichern in der bestimmten Gruppe der Zellen; und
Schreiben
der Eingangsdaten in das zweite Bit der Zellen in der Gruppe.
-
Darüber
hinaus wird gemäß einer erfindungsgemäßen
Ausführungsform eine Datenspeicher-Vorrichtung bereitgestellt,
welche umfasst:
ein Speicherfeld, welches Zellen umfasst, welche zum
Schreiben einer ersten Anzahl von Bits pro Zelle ausgestaltet sind;
und
eine Speichersteuerung, welche derart ausgestaltet ist,
dass sie Eingangsdaten in einer bestimmten Gruppe der Zellen in
einer zweiten Anzahl von Bits pro Zelle speichert, welche kleiner
als die erste Anzahl ist, indem Dummy-Daten, welche unabhängig von
den Eingangsdaten sind, in einem ersten Satz von einem oder von
mehreren Bits der Zellen in der Gruppe gespeichert werden und die
Ein gangsdaten in einen zweiten Satz von mindestens einem Bit der Zellen
in der Gruppe geschrieben werden.
-
Im
Folgenden wird die vorliegende Erfindung anhand von Ausführungsformen
mit Bezug zu den Figuren im Detail erläutert.
-
Kurze Beschreibung der Figuren
-
1 ist
ein Blockdiagramm, welches schematisch ein System gemäß einer
erfindungsgemäßen Ausführungsform darstellt,
um Daten in eine MLC-Speichervorrichtung mit einer geringeren Dichte
als der ausgelegten Dichte der Vorrichtung zu schreiben;
-
2A und 2B sind
Graphen, welche schematisch Spannungszustände von Zellen
einer MLC-Speichervorrichtung gemäß einer erfindungsgemäßen
Ausführungsform darstellen; und
-
3 ist
ein Flussplan, welcher schematisch ein Verfahren gemäß einer
erfindungsgemäßen Ausführungsform darstellt,
um Daten in eine Gruppe von Speicherzellen einer MLC-Speichervorrichtung
mit einer geringeren Dichte als der ausgelegten Dichte der Vorrichtung
zu schreiben.
-
Detaillierte Beschreibung
von Ausführungsformen
-
Im
Folgenden wird Bezug auf die 1 genommen,
welche ein Blockdiagramm ist, welches schematisch ein System 20 gemäß einer
erfindungsgemäßen Ausführungsform darstellt,
um Daten in einen Abschnitt eines Speicherzellenfelds 22 einer MLC-Speichervorrichtung 24 zu
speichern. Erfindungsgemäße Ausführungsformen,
welche im Folgenden beschrieben werden, beziehen sich auf einen
nicht flüchtigen Speicher und insbesondere auf einen Flash-Speicher,
aber die Prinzipien der vorliegenden Erfindung können auch
entsprechend auf andere Typen eines MLC-Speichers angewendet werden.
-
Ein
Speicherzellenfeld 22 umfasst Speicherzellen 26,
welche derart entworfen sind, dass sie vier oder mehr verschiedene
Spannungszustände aufweisen, so dass Daten mit zumindest
zwei Bits in jeder Zelle gespeichert werden können. Bei
der im Folgenden beschriebenen Ausführungsform weisen die Zellen 26 eine Dichte
bzw. Speicherdichte von zwei Bits auf, so dass ein Bit jeder Zelle
das niederwertigste Bit (LSB) und das andere Bit das höchstwertigste Bit
(MSB) ist. Alternativ können die Prinzipien der vorliegenden
Erfindung auf Speichervorrichtungen angewendet werden, welche derart
entworfen sind, das sie drei oder mehr Bits pro Zelle speichern.
-
Signale
zur Steuerung eines Lesens, eines Programmierens und eines Löschens
von Zellen 26 werden durch eine Verwaltungsschaltung 28 erzeugt und über
Steuerleitungen 30 innerhalb der Vorrichtung 24 zu
dem Feld 22 übertragen. Wenn da 3 Speicherzellenfeld 22 eine
NAND-Flash-Architektur aufweist, umfassen die Steuerleitungen 30 Wortleitungen
und Bitauswahlleitungen. Diese Signale wie auch eine weitere Funktion,
welche in der Verwaltungsschaltung enthalten sein kann, wie beispielsweise
eine Lese-/Schreib-Schaltung, eine Adress-Dekodier-Schaltung und
eine Spannungssteuerungsschaltung, sind im Detail in der US-Patentanmeldung
11/618,569 von Mokhlesi, eingereicht am 29. Dezember 2006, beschrieben,
welche auf den Rechtsnachfolger der vorliegenden Anmeldung übertragen
ist und welche durch Bezugnahme mit aufgenommen wird.
-
Bei
dieser Ausführungsform stellt die MLC-Speichervorrichtung 24 einen
Speicher für einen Host-Prozessor 32 bereit. Befehle
zum Lesen und Schreiben von Daten werden von dem Host-Prozessor 32 an
die MLC-Speichervorrichtung 24 über eine Steuerung 34,
wie beispielsweise eine Zugriffssteuerung mit logischer Blockadressierung
(LBA (”Logical Block Adressing”)), übertragen.
Die Steuerung 34 ist typischerweise als eine getrennte
integrierte Schaltungskomponente von der Vorrichtung 24 implementiert
und dient als eine standardisierte Schnittstelle zwischen dem Host-Prozessor 32 und der
MLC-Speichervorrichtung. Bei einigen Ausführungsformen
können jedoch zumindest einige der Funktionen der Steuerung 34 innerhalb
einer einzigen Halbleitervorrichtung vorhanden sein, welche ebenso
die MLC-Speichervorrichtung umfasst. Alternativ oder darüber
hinaus kann der Host-Prozessor 32 derart ausgestaltet sein,
dass er einige oder alle der Funktionen der Steuerung ausführt.
-
Bei
der vorliegenden Ausführungsform sei angenommen, dass die
Steuerung 34 Eingangsdaten, welche in die MLC-Speichervorrichtung
zu schreiben sind, von dem Host-Prozessor 32 empfängt.
Die Steuerung 34 unterteilt die Eingangsdaten typischerweise
in Segmente, welche als Seiten bezeichnet werden, und bestimmt entsprechende
Seitenadressen in dem Speicherfeld 22, unter welchen die
Daten zu schreiben sind. Eine typische Seitengröße
beträgt 2.048 Byte.
-
Innerhalb
des Speicherfeldes 22 werden die Seiten typischerweise
als Bitschichten gespeichert, welche sich über mehrere
Speicherzellen erstrecken. Zum Beispiel können die Bits
einer Seite in dem niederwertigsten Bit (LSB) von allen Zellen in
einer Gruppe von Zellen gespeichert werden, während die Bits
einer zweiten Seite in einem anderen Bit von all diesen Zellen in
derselben Gruppe der Zellen gespeichert werden. Die Anzahl der Bitschichten,
welche einer Gruppe von Zellen zugeordnet werden, entspricht der
Anzahl der Bits, welche in jeder Zelle gespeichert werden kann.
Eine beispielhafte Gruppe von Zellen ist in 1 als Gruppe 36 gekennzeichnet.
Wenn die Dichte der MLC-Speichervorrichtung zwei Bits pro Zelle
beträgt, werden zwei Seiten in der Gruppe 36 gespeichert.
Eine Seite, welche durch die Steuerung 34 als die ”untere
Seite” bestimmt werden kann, wird in dem LSB von jeder
Zelle in der Gruppe gespeichert, und die Bits der zweiten Seite,
welche als die ”obere Seite” bezeichnet wird,
werden in dem höchstwertigsten Bit (MSB) von jeder Zelle
gespeichert.
-
Zusätzlich
zu einer Unterteilung des Speicherzellenfeldes 22 in Gruppen
von Zellen zur Seiten-Kodierung wird im Allgemeinen ebenfalls in
Blöcke von Zellen unterteilt, was in 1 beispielhaft durch
einen Block 38 dargestellt ist. Blocklöschsignale,
welche durch die Verwaltungsschaltung 28 erzeugt werden,
sorgen dafür, dass alle Zellen in einem gegebenen Block
auf einen niedrigsten Ladungszustand gesetzt werden. Die Größe
eines Blocks ist typischerweise viel größer als
die Seitengröße. Implementierungen eines Blocklöschens
und einer Seitenkodierung sind weiter in der oben erwähnten
US-Patentanmeldung 11/618,569 beschrieben.
-
Obwohl
die Steuerung 34 im Allgemeinen zwei Datenbits in jede
Zelle in dem Feld 22 schreibt, kann die Steuerung in einigen
Fällen entscheiden, dass bestimmte Daten nur mit einem
Bit pro Zelle in eine Gruppe von Zellen in dem Feld geschrieben werden
sollten. Die Entscheidung, Daten mit einer verringerten Dichte zu
schreiben, kann von der Steuerung selbst getroffen werden oder es
kann von außerhalb, beispielsweise durch den Host-Prozessor, veranlasst
werden. In solchen Fällen kann die Steuerung veranlassen,
das Dummy-Daten in einem der Bits in einer Gruppe der Zellen gespeichert
werden und kann die tatsächlichen Daten in das andere Bit schreiben.
Der Wert der Dummy-Daten ist unabhängig von den tatsächlichen
Daten und wird derart gewählt, wie es im Folgenden erläutert
wird, um die Zuverlässigkeit der Speicherung der Daten,
welche mit nur einem Bit pro Zelle gespeichert sind, zu erhöhen.
-
2A und 2B sind
Graphen, welche Spannungszustände von Zellen einer MLC-Speichervorrichtung
gemäß einer erfindungsgemäßen
Ausführungsform darstellen. 2A ist
ein Graph 200, welcher alle möglichen Spannungszustände
von Zellen einer MLC-Speichervorrichtung darstellt, welche eine
Dichte von zwei Bits pro Zelle aufweist. Vier Spannungszustände 202 sind
dargestellt, welche mit E, A, B und C gekennzeichnet sind. Die Spannungszustände
sind anhand der Spannungsschwellenwerte der Zelle entlang der x-Achse
aufgetragen. Die y-Achse repräsentiert eine statistische
Frequenz eines vorgegebenen Schwellenwerts für jede Zelle.
-
Der
niedrigste Zustand E, welcher dem gelöschten Zustand einer
Zelle entspricht, wird typischerweise durch den binären
Zweibit-Code 11 dargestellt. Ein höherer Spannungszustand
A kann durch den Binärcode 10 dargestellt werden, was bedeutet,
dass 0 in dem LSB (dem zuerst geschriebenen Bit) und 1 in dem MSB
gespeichert ist. Rechts neben dem Zustand A sind die Spannungszustände B
bzw. C dargestellt, welche den Binärcodes 01 bzw. 00 entsprechen.
Andere Binärcode Kombinationen können ebenfalls
implementiert werden.
-
Wie
durch den Graph 200 dargestellt ist, überdecken
die Spannungszustände 202 im Allgemeinen einen
Bereich von Spannungsschwellenwerten. Da sich diese Bereiche nicht überlappen,
können diese Bereiche durch Referenzspannungen, welche durch
Vra, Vrb und Vrc gekennzeichnet sind, unterschieden werden. Typische
Werte für diese Referenzspannungen sind beispielsweise
0 V, 1,25 V und 2,5 V.
-
Wie
vorab als Hintergrund der Erfindung beschrieben worden ist, können
mit der Zeit Verschiebungen oder Veränderungen bei dem
Spannungsniveau einer Zelle auftreten, was dazu führt,
dass sich die Spannungsbereiche verlaufen bzw. verändern. Spannungszustände 204,
welche durch gestrichelte Linien dargestellt sind, stellen ein mögliches
Verlaufen der Spannungszustände 202 dar. Aufgrund
dieses Verlaufens, Auseinander-Driftens oder Verschiebens können
die Bereiche überlappen, was zu Lesefehlern führt.
-
Wenn
die Steuerung 34 angewiesen wird, ein Bit pro Zelle in
eine ausgewählte Gruppe von Zellen in dem Feld 22 zu
schreiben, ohne dabei Dummy-Daten zu schreiben, werden die Daten
in das LSB der entsprechenden Zellen geschrieben, während das
nicht beschriebene MSB den Default-Wert 1 aufweist. In solch einem
Fall befinden sich die Zellen abhängig von dem gespeicherten
Datenwert entweder in dem Zustand E oder in dem Zustand A. Eine
Spannungsverschiebung könnte daher zu Lesefehlern zwischen
den Zuständen führen, während die weiter entfernt
liegenden Zustände B und C unbenutzt bleiben.
-
2B ist
ein Graph 210, welcher gemäß einer erfindungsgemäßen
Ausführungsform Spannungszustände 212 von
Zellen darstellt, welche mit einem Bit der Eingangsdaten und mit
einem Bit von Dummy-Daten programmiert werden. Ein Verfahren zur
Kodierung bzw. Programmierung der Dummy-Daten bei der MLC-Speichervorrichtung
wird im Folgenden mit Bezug auf 3 beschrieben.
In diesem Fall wird das LSB von jeder Zelle auf einen Dummy-Wert
von ”0” gesetzt. Nach der Programmierung oder
Kodierung mit den eigentlichen Eingangsdaten nehmen die Zellen zwei
mögliche Spannungszustände an: Zustand A, welcher
dem Binärcode 10 entspricht, und Zustand C, welcher dem
Binärcode 00 entspricht, wobei dies von dem Datenwert,
welcher in die jeweilige Zelle zu schreiben ist, abhängt.
Die Zellen sind effektiv auf eine Dichte von einem Bit pro Zelle
eingestellt, obwohl sie für eine Dichte der MLC-Speichervorrichtung
von zwei Bit pro Zelle entworfen sind, aber die möglichen
Spannungszustände liegen nun weiter auseinander als in
dem in 2A dargestellten Beispiel.
-
Gestrichelte
Linien in der 2B geben eine mögliche
Niveauverschiebung der Zustände 212 und 214 an.
Man erkennt, dass sogar nach einem Auftreten einer Niveauverschiebung
die Spannungsbereiche nicht überlappen und nicht erlaubte
Zustände vorliegen, welche die erlaubten Zustände
trennen und deutlicher unterscheiden.
-
Bei
dem vorab beschriebenen Beispiel ist ein Dummy-Bitwert von 0 in
der LSB-Position sinnvoll, um die Spannungszustände auseinanderzuschieben,
wie es in 2B dargestellt ist, was an der
Art und Weise liegt, in welcher die Zweibit-Datenwerte (11, 10,
01 und 00) den Spannungsbereichen in der Speichervorrichtung 24 zugeordnet
werden. Bei anderen Vorrichtungen mit einer anderen Zuordnung kann
es jedoch vorteilhaft sein, die Dummy-Daten in das MSB, und nicht
in das LSB, zu schreiben. Bei einem MLC-Speicher mit einer Dichte
von mehr als zwei Bits können dann Dummy-Daten in eine
oder in mehrere Bits geschrieben werden, so dass die eigentlichen
Daten in einem Bit pro Zelle oder in eine größere Anzahl
von Bits pro Zelle, welche geringer als die vorgesehene Kapazität
des Speichers ist, gespeichert werden. Die Dummy-Daten werden entsprechend
gewählt, um die Spannungszustände, welche eingesetzt
werden, um die eigentlichen Daten zu speichern, auseinander zu ziehen.
-
3 ist
ein Flussplan, welcher ein Verfahren 300 zur Programmierung
einer Gruppe von Zellen eines MLC-Speicherfelds 22, wie
beispielsweise der Gruppe von Zellen in dem Block 38, mit
einer geringeren Datendichte als der vorgesehenen Dichte des Feldes
darstellt. Die Gruppe 36 kann irgendeine Anzahl von Zellen
in dem Feld 22 umfassen, wobei allerdings ein Flash-Speicher
Reihen oder Seiten umfasst, welche fest vorgegeben sind.
-
In
einem ersten Schritt 302 wird der Zellenblock 38 durch
ein Blocklöschsignal, welches von der Verwaltungsschaltung 28 ausgegeben
wird, initialisiert. Alle Zellen in dem Block 38 werden
typischerweise auf einen gelöschten Zustand, welcher einem Binärcodewert
von 11 entspricht, initialisiert.
-
Anschließend
gibt der Host-Prozessor in einem Speicheranforderungs-Schritt 304 eine
Anforderung aus, dass bestimmte Daten mit einer geringeren Datendichte
zu speichern sind. Der Host kann eine solche Anforderung zum Beispiel
ausgeben, wenn ein Programmcode gespeichert wird, da ein solcher Code
sogar durch einen einzigen Datenfehler ernsthaft beeinflusst wird.
Dagegen kann eine geringe Anzahl von Fehlern einen vernachlässigbaren
Effekt bei anderen Datentypen, wie beispielsweise bei Daten, welche
einen Audioinhalt oder einen visuellen Inhalt umfassen, aufweisen.
Bei einem MLC-Speicher mit einer Dichte von mehr als zwei Bits kann
der Host-Prozessor ein erwünschtes Dichteniveau spezifizieren.
-
Die
Anforderung von dem Host wird von der Steuerung 34 empfangen.
In einem Seitenbestimmungsschritt 306 bricht die Steuerung 34 die
Eingangsdaten auf Seiten zur Speicherung in der MLC-Speichervorrichtung
herunter. Um die Anforderung nach einer Speicherung mit einer geringeren Dichte
zu implementieren, erzeugt die Steuerung 34 auch Seiten
von Dummy-Daten. Zum Beispiel erzeugt die Steuerung 34 bei
einer MLC-Speichervorrichtung mit einer ausgelegten Dichte von zwei
Bits pro Zelle eine Seite von Dummy-Daten für jede Seite der
Eingangsdaten, so dass die Dichte der Datenspeicherung effektiv
auf ein Bit pro Zelle verringert wird, wie es vorab mit Bezug auf 2B beschrieben ist.
Wie vorab beschrieben ist, sind die Dummy-Datenwerte unabhängig
von den eigentlichen Da tenwerten, und daher besteht keine Notwendigkeit
für die Steuerung 34 oder für die Verwaltungsschaltung 28,
die eigentlichen Datenwerte zu verarbeiten, um die Dummy-Daten zu
bestimmen, welche in jede Zelle zu schreiben sind. Folglich ist
es für die Steuerung auch möglich, die Dummy-Daten
in die entsprechenden Seiten der Speichervorrichtung zu schreiben,
bevor die eigentlichen Daten, welche in diese Seiten zu schreiben
sind, geschrieben werden (oder sogar empfangen werden).
-
Typischerweise
schreibt die Steuerung Dummy-Datenseiten auf niedrige Seiten-Adressen,
welche einem oder mehreren niedrigeren Bits der Zellen in der Gruppe
(d. h. den niedrigeren Bitschichten) entsprechen und schreibt die
eigentlichen Eingangsdaten auf obere Seitenadressen, welche einem
oder mehreren der höheren Bits entsprechen. Im Allgemeinen
wird die Seitenadressierung (d. h. die Auswahl der Bitschicht) wie
auch der Wert der zu schreibenden Dummy-Daten entsprechend der Spezifikationen
der MLC-Speichervorrichtung eingestellt, um den Abstand zwischen
den Spannungszuständen der Zellen zu maximieren. Die Adressierung
der Bitschichten und die Werte der Dummy-Daten hängen von
dem Design der Speichervorrichtung selbst ab und sind nicht von
den Werten der Eingangsdaten abhängig.
-
Typischerweise überträgt
die Steuerung sowohl die Eingangsdatenseiten und die Dummy-Datenseiten
zu der MLC-Speichervorrichtung. Wenn die Eingangsdaten nicht eine
gesamte Seite füllen, kann die Steuerung einen Teil der
Seite mit den Eingangsdaten füllen und einen entsprechenden
Teil mit Dummy-Daten füllen. Bei einer alternativen Ausführungsform
ist die Verwaltungsschaltung 28 derart ausgestaltet, dass
sie eine Anweisung implementiert, welche alle Bits in einer Seite
auf einen vorbestimmten Wert setzt. Die Steuerung kann dann derart
ausgestaltet sein, dass sie diese Anweisung ausgibt, durch welche
der einzustellende Dummy-Bitwert bezeichnet wird, anstatt dass die
gesamten Seiten von Dummy-Daten gesendet werden.
-
In
Schritten 308 und 310 empfängt die Verwaltungsschaltung 28 die
Dummy-Daten- bzw. die Eingangsdaten-Seiten von der Steuerung und
speichert beide Arten von Seiten auf den spezifizierten Seitenadressen.
Jede Seite, unabhängig davon ob es eine Seite von Eingangsdaten
oder von Dummy-Daten ist, wird unter Verwendung derselben Prozedur
gespeichert, welche bei einem normalen Betrieb der Vorrichtung mit
der ausgelegten Dichte eingesetzt würde. Da jedoch die
Dum my-Daten eine oder mehrere Bitschichten in Gruppen von Zellen
füllen, wie es vorab beschrieben ist, werden die Eingangsdaten
effektiv mit einer geringeren Dichte gespeichert. Die Spannungszustände
sind durch größere Abstände getrennt,
wodurch die Datenzuverlässigkeit. verbessert wird. Diese
Schritte können ohne Modifikation mit einer herkömmlichen
MLC-Speichervorrichtung ausgeführt werden. Alternativ kann,
wie es vorab angemerkt ist, die Verwaltungsschaltung eine spezielle
Anweisung von der Steuerung implementieren, eine gesamte Seite auf
einen bestimmten Dummy-Bitwert zu setzen.
-
In
einem Leseschritt 312 empfängt die Steuerung 34 Daten,
welche von dem Host-Prozessor angefordert sind. Typischerweise liest
die Steuerung 34 nur die Eingangsdatenseiten, wobei die
Dummy-Datenseiten, welche vorher in der MLC-Speichervorrichtung
gespeichert worden sind, ignoriert werden. Alternativ kann die Steuerung
auch Dummy-Datenseiten lesen, um dadurch die Datengültigkeit
zu bestätigen. Wenn irgendein Bit einer Dummy-Seite nicht
auf den richtigen Dummy-Bitwert gesetzt ist, ist ein Datenfehler
erfasst worden. Bei einer weiteren Ausführungsform kann
die Steuerung derart ausgestaltet sein, dass sie ein Bit der Eingangsdaten
abhängig von einem in einem Dummy-Bit erfassten Fehler
korrigiert.
-
Wie
vorab angemerkt ist, können die Prinzipien der vorliegenden
Erfindung in ähnlicher Weise bei einem MLC-Speicher angewendet
werden, welcher derart entworfen ist, dass er drei oder mehr Bits pro
Zelle speichert. Zum Beispiel kann ein Speicher mit einer Dichte
von drei Bits pro Zelle eingesetzt werden, um zwei Bits pro Zelle
zu speichern, wobei Dummy-Daten in dem dritten Bit jeder Zelle gespeichert
werden. Alternativ könnte ein solcher Speicher eingesetzt
werden, um nur ein Bit pro Zelle zu speichern, wobei Dummy-Daten
in einem oder in beiden der restlichen Bits in jeder Zelle gespeichert
werden. Die Dummy-Daten werden derart gewählt, wie es beispielhaft
vorab in 2B dargestellt ist, so dass
die Spannungszustände, welche zum Speichern der eigentlichen
Daten vorhanden sind, auseinandergezogen sind, so dass die Speicherzuverlässigkeit
erhöht wird. Andererseits sind die Dummy-Daten über
der Gruppe der infrage kommenden Zellen gleich und unabhängig
von den eigentlichen Daten, welche in dem anderen Bit oder in den
anderen Bits gespeichert werden. Im Allgemeinen können
Dummy-Daten auf diese Weise in jeder Situation eingesetzt werden,
in welcher n-Bit-MLC-Zellen eingesetzt werden, um Daten mit m Bits
pro Zelle zu speichern, wobei m < n
gilt.
-
Als
Beispiel sei angenommen, dass nur ein Bit pro Zelle in einem Speicher
mit einer Dichte von drei Bits pro Zelle zu speichern ist, wobei
die acht möglichen Zustände den Datenwerten {111,
101, 110, 010, 011, 100, 000, 001} entsprechen, welche von links
nach rechts auf der Spannungsachse angeordnet sind, wie es in 2A dargestellt
ist. Indem einfach zwei Bits in jeder Zelle übersprungen
werden und die Daten nur in das dritte Bit geschrieben werden, wird
für eine Trennung von mindestens vier Zuständen
zwischen den Datenzuständen gesorgt. Wenn andererseits
der Dummy-Datenwert 01 in die zwei niederwertigsten Bits von allen
Zellen geschrieben wird und die Eingangsdaten nur in ein Bit hinzugefügt
werden, ergeben sich die Zustände 101 und 001 für
eine Speicherung mit einer Dichte von einem Bit pro Zelle. Diese
Daten-Zustände sind durch ein Intervall von sechs Zuständen
getrennt, während die Dummy-Bits festliegen und unabhängig
von den Eingangsdaten sind.
-
Obwohl
die vorab beschriebenen Ausführungsformen hauptsächlich
bestimmte Typen eines Flash-Speichers betreffen, können
die Prinzipien der vorliegenden Erfindung in ähnlicher
Weise auch auf andere Typen eines MLC-Speichers angewendet werden.
Die vorab beschriebenen Ausführungsformen sind daher als
Beispiel anzusehen, und die vorliegende Erfindung ist nicht auf
das beschränkt, was vorab dargestellt und beschrieben worden
ist. Stattdessen umfasst der Umfang der vorliegenden Erfindung sowohl
Kombinationen als auch Unterkombinationen der verschiedenen Merkmale,
welche vorab beschrieben worden sind, wie auch Variationen und Modifikationen
davon, welche dem Fachmann beim Lesen der vorab stehende Schreibung
einfallen und welche nicht im Stand der Technik offenbart sind.
-
ZUSAMMENFASSUNG
-
EINSATZ EINES MLC-FLASH ALS
SLC DURCH SCHREIBEN VON DUMMY-DATEN
-
Ein
Verfahren zum Speichern von Daten umfasst in einem Speicherfeld
(22), welches Zellen (26) umfasst, welche ausgestaltet
sind, um eine erste Anzahl von Bits pro Zelle zu schreiben, ein
Bestimmen einer Gruppe (36) der Zellen, in welche Eingangsdaten
in eine zweite Anzahl von Bits pro Zelle zu schreiben sind, welche
kleiner als die erste Anzahl ist. Dummy-Daten, welche unabhängig
von den Eingangsdaten sind, werden in einen ersten Satz von einem
oder von mehreren Bits der Zellen in der Gruppe geschrieben. Die
Eingangsdaten werden in einen zweiten Satz des mindestens einen
anderen Bits der Zellen in der Gruppe geschrieben.
-
ZITATE ENTHALTEN IN DER BESCHREIBUNG
-
Diese Liste
der vom Anmelder aufgeführten Dokumente wurde automatisiert
erzeugt und ist ausschließlich zur besseren Information
des Lesers aufgenommen. Die Liste ist nicht Bestandteil der deutschen
Patent- bzw. Gebrauchsmusteranmeldung. Das DPMA übernimmt
keinerlei Haftung für etwaige Fehler oder Auslassungen.
-
Zitierte Patentliteratur
-
- - US 5043940 [0003]
- - US 5172338 [0003]
- - US 5867429 [0004]
- - US 5930167 [0004, 0004]
- - US 7164601 [0007]