-
Flash-Speicher
werden immer weiter zu kleiner und kleiner werdenden Dimensionen
hin skaliert. Obwohl das Herunterskalieren es ermöglicht,
eine größere Menge
an Speicher auf derselben Fläche unterzubringen,
können
Probleme auftreten, wenn Speicherzellen herunterskaliert werden.
Beispielsweise zeigen Speicherzellen bei einer ausreichend geringen
Größe ungleichmäßiges Verhalten.
-
Ein
ungleichmäßiges Verhalten
ist insbesondere problematisch, wenn eine Flash-Speichereinrichtung
ein Block-Löschen
durchführt.
Bei einem Block-Löschen
werden eine große
Anzahl von Zellen einer elektrischen Ladung ausgesetzt, so dass
ein „Block” eines
Speichers gelöscht
wird, indem versucht wird, die Zellen innerhalb einer Schwellenspannungsverteilung
(d. h., die Lösch-Verteilung)
zu platzieren. Typischerweise wird die Schwellenspannung einer Zelle
geändert,
womit die Zelle gelöscht
wird, indem die Menge der Floating-Gate-Ladung innerhalb der Zelle
verändert
wird. Einige Zellen innerhalb eines Blocks sind langsamer zu löschen als
andere, teilweise aufgrund unterschiedlicher Floating-Gate-Ladungen
auf den Zellen vor dem Block-Löschen,
sowie aufgrund von intrinsischen Qualitäten von Flash-Speicherzellen.
Wenn ein Block-Löschen
auftritt, dann kann sich eine Verteilungskurve von Schwellenspannungen
ergeben, wobei einige der am schnellsten zu löschenden Zellen außerhalb
der gewünschten
Lösch-Verteilung
liegen. Da die Schwellenspannung der am schnellsten gelöschten Zellen
unterhalb der unteren Schranke der Lösch-Verteilung liegt, sind
diese Zellen in einem Über-Gelöscht-Zustand. Über-gelöschte Zellen
sind unerwünscht,
da sie fehlerhafte Daten-Lesevorgänge bewirken für elektrisch
gekoppelte Zellen. Beispielsweise können nunmehr Zellen, die eine
Bitleitung mit einer über-gelöschten Zelle
gemeinsam nutzen (teilen) und auf eine logische „1” programmiert sind, als eine
logische „0” gelesen
werden. Dies ist darin begründet,
dass die über-gelöschten Zellen
konstant Strom ziehen, auch wenn sie nicht ausgewählt worden
sind und somit virtuell die Schwellenspannungen der anderen Zellen
verringern. In schlimmen Fällen kann
eine einzelne über-gelöschte Zelle
eine gesamte Bitleitung, anders ausgedrückt alle Speicherzellen, die
mit derselben Bitleitung verbunden sind wie die einzelne über-gelöschte Zelle,
untauglich machen. In einem anderen Fall können viele Zellen leicht über-gelöscht sein,
was in einem kumulierten Bitleitungs-Leckstrom resultiert.
-
Verschiedene
Ausführungsbeispiele
der Erfindung stellen Verfahren und Flash-Speichereinrichtungen
bereit, welche über-gelöschte Speicherzellen korrigieren.
Die Flash-Speichereinrichtungen
weisen Flash-Speicherzellen auf, sowie einen Lösch-Schaltkreis, einen Mess-Schaltkreis,
und einen Pulsgenerator. Die Verfahren weisen auf ein Durchführen einer Lösch-Operation
auf eine erste Mehrzahl von Speicherzellen, ein Messen von mindestens
einer Speicherzelle einer zweiten Mehrzahl von Speicherzellen, und,
wenn eine oder mehrere über-gelöschte Zellen ermittelt
werden bei der Messung der zweiten Mehrzahl von Speicherzellen,
ein Anlegen von einem Programmierpuls oder mehreren Programmierpulsen
an die eine Zelle oder die mehreren über-gelöschten Zellen, wobei der eine
Programmierpuls oder die mehreren Programmierpulse insgesamt ausreichend ist
oder sind zum Korrigieren einer Zelle in einen Maximum-Über-Gelöscht-Zustand.
-
Verschiedene
Ausführungsbeispiele
stellen ferner bereit ein Verfahren, gemäß dem eine Serie von Fehlern
in einem Flash-Speicher
korrigiert wird. Das Verfahren weist auf ein Ermitteln einer über-gelöschten Zelle,
wobei die über-gelöschte Zelle
verhindert, dass mindestens eine andere Zelle korrekt gelesen wird,
und ein Anlegen von einem Programmierpuls oder mehreren Programmierpulsen
an die über- gelöschte Zelle,
wobei der eine Programmierpuls oder die mehreren Programmierpulse
insgesamt ausreichend ist oder sind zum Korrigieren einer Zelle in
einen Maximum-Über-Gelöscht-Zustand.
-
Verschiedene
Ausführungsbeispiele
stellen ferner ein Verfahren bereit zum Korrigieren von über-gelöschten Speicherzellen.
Das Verfahren weist auf ein Durchführen einer Lösch-Operation
auf eine erste Mehrzahl von Zellen; ein Messen von mindestens einer
Zelle einer zweiten Mehrzahl von Zellen; wenn eine über-gelöschte Zelle
oder mehrere über-gelöschte Zellen
bei dem Messen der zweiten Mehrzahl von Zellen ermittelt worden
ist oder sind, ein Registrieren der einen über-gelöschten Zelle oder der mehreren über-gelöschten Zellen
zum Programmieren; und ein Anlegen von einem Programmierpuls oder
mehreren Programmierpulsen an die registrierte über-gelöschte Zelle oder die registrierten über-gelöschten Zellen,
wobei der eine Programmierpuls oder die mehreren Programmierpulse
insgesamt ausreichend ist oder sind zum Korrigieren einer Zelle in
einen Maximum-Über-Gelöscht-Zustand.
-
Ausführungsbeispiele
der Erfindung sind in den Figuren dargestellt und werden im Folgenden näher erläutert.
-
In
den Figuren werden gleiche Bezugszeichen im Allgemeinen verwendet
zum Bezeichnen gleicher oder ähnlicher
Elemente über
alle Figuren hinweg. Die Figuren sind nicht notwendigerweise maßstabsgetreu,
es wurde stattdessen Wert darauf gelegt die Prinzipien der verschiedenen
Ausführungsbeispiele
zu erläutern.
In der folgenden Beschreibung sind verschieden Ausführungsbeispiel beschrieben
unter Bezugnahme auf die folgenden Figuren, in denen:
-
1 eine
graphische Repräsentation
von Schwellenspannungsverteilungen von Speicherzellen zeigt.
-
2A ein
Ablaufdiagramm ist eines Prozesses zum Korrigieren von über-gelöschten Speicherzellen
gemäß einem
Ausführungsbeispiel
der Erfindung.
-
2B ein
Ablaufdiagramm ist eines Prozesses zum Auslesen von Speicherzellen
gemäß einem
Ausführungsbeispiel
der Erfindung.
-
3 ein
vereinfachtes Diagramm eines typischen Flash-Speicherarrays gemäß einem Ausführungsbeispiel
der Erfindung zeigt.
-
4 ein
Ablaufdiagramm ist eines Prozesses zum Korrigieren von über-gelöschten Speicherzellen
gemäß einem
Ausführungsbeispiel
der Erfindung.
-
5 ein
Ablaufdiagramm ist eines Prozesses von über-gelöschten
Speicherzellen gemäß einem
Ausführungsbeispiel
der Erfindung.
-
6A und 6B Ablaufdiagramme
sind von Prozessen von über-gelöschten Speicherzellen gemäß einem
Ausführungsbeispiel
der Erfindung.
-
7 ein
Blockdiagramm zeigt eines Ausführungsbeispiels
eines elektronischen Systems gemäß einem
Ausführungsbeispiel
der Erfindung.
-
Wie
oben beschrieben worden ist verhalten sich Flash-Speicherzellen (auch bezeichnet als „Speicherzellen” oder „Zellen”) in einer
ungleichförmigen
oder ungleichmäßigen Weise
während
eines Block-Löschens.
Dies ist mittels des Graphen von 1 gezeigt.
Wenn ein Block-Löschen
auftritt, so werden Schwellenspannungen von Flash-Speicherzellen
innerhalb einer Lösch-Verteilung 102 platziert bzw.
angeordnet. Wenn eine Lesespannung Vlese 103 an
die Zelle angelegt wird, wird Strom geführt bzw. geleitet, womit ein
logisches Bit „1” oder „0” angezeigt wird.
Idealerweise sollten alle gelöschten
Zellen innerhalb der Lösch-Verteilung 102 fallen
bzw. liegen; jedoch können
einige Zellen über-gelöscht sein,
wie in dem Fall einer Über-Gelöscht-Verteilung 106.
-
Eine
herkömmliche
Technik zum Reduzieren der Anzahl von über-gelöschten
Zellen von einem Block-Löschen
ist ein Vor-Programmieren
von Zellen vor einer Lösch-Operation,
so dass alle Zellen, die gelöscht
werden sollen, dieselbe oder eine ähnliche Schwellenspannung aufweisen.
Diese Technik limitiert zwar, verhindert jedoch nicht, über-gelöschte Zellen.
Ein Weich-Programmieren (Soft-Programmieren), ist eine andere herkömmliche
Technik, welche die Über-Gelöscht-Verteilung 106 neu
ausbildet, indem Programmierpulse zu einer über-gelöschten Zelle
gesendet werden, bis eine gemessene Schwellenspannung der Zelle
innerhalb der Lösch-Verteilung 102 liegt.
Diese Technik erhöht
die Block-Löschzeit
einer Flash-Speichereinrichtung erheblich, da die Zellen schrittweise
korrigiert und geprüft
werden. Gemäß einer
anderen herkömmlichen
Technik wird eine negative Spannung an die Zellen angelegt, die
nicht ausgelesen werden, um zu verhindern, dass Ströme von über-gelöschten Zellen
die ausgelesenen Zellen beeinflussen. Diese Technik erfordert zusätzliche
Energie und zusätzliche
Schaltkreise. Gemäß einer
anderen herkömmlichen
Technik werden Zellen in Sektoren organisiert, wobei jeder Sektor
elektronisch von den anderen Sektoren isoliert ist. Diese Technik
erfordert zusätzliche
Fläche
zum Implementieren und voneinander Isolieren der Sektoren und korrigiert nicht über-gelöschte Zellen.
-
Fehlerkorrekturcodes
bilden eine andere herkömmliche
Technik, die verwendet werden kann in Kombination mit den oben beschriebenen
Techniken. Fehlerkorrekturcodes (auch bezeichnet als „ECC”) sind
beschränkt
in der Anzahl von fehlerhaften Bits, welche sie korrigieren können. Wenn
eine über-gelöschte Zelle
ein falsches Auslesen bewirkt für
elektrisch gekoppelte Zellen, so steigt die Fehlerrate signifikant
an und übersteigt
möglicherweise
die Fehlerkorrigier-Fähigkeit
eines Fehlerkorrekturcodes aufgrund eines einzelnen fehlerhaften über-gelöschten Bits.
-
Gemäß verschiedenen
Ausführungsbeispielen
der Erfindung ist es möglich,
Größen-Strafen
zu vermeiden, und dennoch eine kurze Löschzeit und einen niedrigen
Energieverbrauch zu erreichen, wenn über-gelöschte Zellen korrigiert werden.
Es ist ebenfalls möglich,
eine Erhöhung
der Fehlerrate aufgrund einer über-gelöschten Zelle
zu vermeiden, wobei in einigen Ausführungsbeispielen ein Fehlerkorrekturcode
weniger fehlerhafte Bits korrigieren kann. Wie im Folgenden näher erläutert wird
stellen Ausführungsbeispiele
der Erfindung ein Verfahren bereit zum Löschen eines Flash-Speichers,
gemäß dem ein Programmierpuls
oder mehrere Programmierpulse angelegt wird oder werden, wobei der
eine Programmierpuls oder die mehreren Programmierpulse insgesamt
ausreichend ist oder sind zum Korrigieren einer Zelle in einen Maximum-Über-Gelöscht-Zustand.
-
Ein
Beispiel eines Maximum-Über-Gelöscht-Zustands
ist in 1 gezeigt. Eine minimale Schwellenspannung 107 markiert
den Maximum-Über-Gelöscht-Zustand,
die eine Zelle erreichen kann. Je mehr eine Zelle über-gelöscht ist,
desto niedriger wird ihre Schwellenspannung. Ein Maximum-Über-Gelöscht-Zustand kann ermittelt
werden mittels vieler Variablen welche enthalten können eine physikalische
Größe einer
Zelle, eine Dauer und Amplitude eines Löschsignals, und die Geschichte
der Zelle (beispielsweise die Anzahl der Zyklen, welchen die Zelle
unterzogen worden ist, oder die Schwellenspannung der Zelle vor
einer Lösch-Operation).
Mittels empirischen Testens oder mittels Modellierens kann ein Maximum-Über-Gelöscht-Zustand ermittelt werden
für einen
Flash-Speicher und/oder eine Block-Lösch-Operation. In einigen Ausführungsbeispielen
wird der Maximum-Über-Gelöscht-Zustand ermittelt
werden mittels der Flash-Einrichtung selbst, wobei die Flash-Einrichtung ihre
Definition eines Maximum-Über-Gelöscht-Zustands aktualisieren
kann zum Berücksichtigen
beispielsweise von sich verändernden
Speicherzell-Charakteristika
oder Lösch-Operation.
-
Eine über-gelöschte Zelle
kann aufweisen eine Schwellenspannung überall innerhalb der Über-Gelöscht-Verteilung 106.
Mittels Anlegens eines Programmierpulses, der ausreichend ist zum Korrigieren
einer Zelle in einen Maxium-Über-Gelöscht-Zustand
wird eine Zelle aus dem Über-Gelöscht-Zustand, egal wo
eine Schwellenspannung einer Zelle sich innerhalb der Über-Gelöscht-Verteilung befindet.
Da nur ein einzelner Puls angelegt wird, der in der Lage ist zum
Korrigieren selbst des am höchsten über-gelöschten Bits,
wird ein schneller und leistungseffizienter Prozess erreicht.
-
Wenn
der Programmierpuls angelegt wird kann eine Schwellenspannung einer
Zelle in einem Zustand von drei Zuständen resultieren. Erstens kann
eine Schwellenspannung fallen innerhalb einer Lösch-Verteilung 102,
wie für
Zelle 108 dargestellt. Zweitens kann eine Schwellenspannung
fallen in einen Bereich zwischen der Lösch-Verteilung 102 und einer
Programmiert-Verteilung 104, wie für Zelle 110 gezeigt.
Drittens kann eine Schwellenspannung fallen in eine Programmiert-Verteilung 104,
wie für
Zelle 112 gezeigt. Obwohl ein Anlegen einer solchen Programmierspannung
einen einzelnen Fehler verursachen kann mittels Über-programmierens einer zuvor irgendwann über-gelöschten Zelle
zu einer Zelle mit einer Schwellenspannung oberhalb einer Lösch-Verteilung,
fällt die
Gesamt-Fehlerrate erheblich. Die „korrigierte” über-programmierte
Zelle reduziert nicht länger
die Schwellenspannung(en) von elektrisch gekoppelten Zellen, was
Fehler bewirken würde,
wenn solche Zellen ausgelesen würden.
-
2A ist
ein Ablaufdiagramm eines Prozesses zum Korrigieren von über-gelöschten Zellen gemäß einem
Ausführungsbeispiel der
Erfindung. Der Prozess 200 startet in 202. In 204 wird
gemäß dem Prozess 200 eine
Lösch-Operation
auf einer Mehrzahl von Zellen ausgeführt. Die Lösch-Operation kann ein Block-Löschen sein oder irgendeine
andere Art einer Lösch-Technik
für Flash-Speicherzellen.
In 206 wird eine Mehrzahl von Zellen gemessen zum Ermitteln
einer über-gelöschten Zelle.
Die zweite Mehrzahl von Zellen kann dieselbe Mehrzahl sein wie die
erste Mehrzahl von Zellen, sie kann unterschiedlich sein von der
ersten Mehrzahl von Zellen, oder sie kann sich mit der ersten Mehrzahl
von Zellen (teilweise oder vollständig) überlappen. In einem Ausführungsbeispiel
kann das Messen aufweisen ein direktes Messen der gelöschten Zellen
oder ein indirektes Messen von benachbarten Zellen zum Ermitteln
einer über-gelöschten Zelle.
Wenn beispielsweise eine erste Zelle einen zuvor bekannten Zustand hatte
vor einer Lösch-Prozedur,
so tritt eine Lösch-Prozedur
in einer zweiten Zelle auf, die elektrisch gekoppelt ist mit der
ersten Zelle, wobei die erste Zelle gemessen werden kann zum Ermitteln,
ob sich ihr Zustand verändert
hat. Wenn dies der Fall ist, so ist es wahrscheinlich, dass die
zweite Zelle über-gelöscht ist.
-
In 208 wird
eine Prüfung
durchgeführt
zum Ermitteln, ob im Schritt 206 eine über-gelöschte Zelle oder mehrere über-gelöschte Zellen
ermittelt worden ist oder sind. Wenn zumindest eine über-gelöschte Zelle
ermittelt worden ist, dann wird in 209 gemäß dem Prozess 200 ein
Programmierpuls an die ermittelte über-gelöschte Zelle oder die über-gelöschten Zellen
angelegt, der ausreichend ist zum Korrigieren einer Zelle in einen
Maximum-Über-Gelöscht-Zustand,
wie er oben mit Bezug auf 1 diskutiert worden
ist. Der Prozess endet in 210, nachdem entweder keine über-gelöschte Zelle
gefunden worden ist oder nachdem der Programmierpuls oder die Programmierpulse
angelegt worden ist oder sind.
-
In
einigen Ausführungsbeispielen
kann der Programmierpuls ein einzelner Programmierpuls sein mit
einer elektrischen Energie, die ausreichend ist zum Korrigieren
einer Zelle in einen Maximum-Über-Gelöscht-Zustand.
Es ist jedoch in dem Bereich der Erfindung, einen Programmierpuls
oder mehrere Programmierpulse an die über-gelöschte Zelle anzulegen. In solchen
Ausführungsbeispielen kann
oder können
der eine oder die mehreren Programmierpulse sich addieren zu einer
kumulierten elektrischen Energie, die ausreichend ist zum Korrigieren
einer Zelle in einen Maximum-Über-Gelöscht-Zustand. In einigen
Ausführungsbeispielen
ist die Anzahl des einen Programmierpulses oder der mehreren Programmierpulse
vorbestimmt.
-
2B ist
ein Ablaufdiagramm eines Prozesses zum Auslesen von Speicherzellen
gemäß einem
Ausführungsbeispiel
der Erfindung. Der Prozess 220 startet in 211.
Ein Signal wird erzeugt basierend auf den logischen Zuständen (anders
ausgedrückt den
Logikzuständen)
der ersten Mehrzahl von Zellen und der zweiten Mehrzahl von Zellen
(„1” oder „0”, oder
in Multi-Bit-Ausführungsbeispielen „01”, „10” etc.)
in 212. Dies kann passieren, wenn eine Steuerung (beispielsweise
ein Controller) eine Datenausgabe von dem Flash-Speicher anfordert.
-
In 214 wird
das Signal verarbeitet mittels eines Fehlerkorrekturcodes. Ausführungsbeispiele
der Erfindung weisen als Beispiele von Fehlerkorrekturcodes auf
sowohl Lochungscodes als auch Blockcodes. Obwohl gemäß dem Prozess 200 eine über-gelöschte Zelle über-korrigiert
werden kann, so dass sie als eine logische „1” anstelle einer logischen „0” in 209 ausgelesen
wird oder würde,
ermöglicht das
Verfahren 200 einen einfachen Fehlererkennungscode in 214,
da der Code in einigen Fällen
nur ein Bit zu korrigieren braucht. Einige über-gelöschte Zellen können ein
fehlerhaftes Auslesen einer gesamten Spalte (oder Bitleitung) eines
Speicherfeldes (Speicherarray) verursachen, womit bewirkt wird, dass
die Anzahl von Fehlern über
die Korrekturfähigkeit
eines Fehlerkorrekturcodes hinaus ansteigt. Mittels Anlegens eines einzigen
Programmierpulses an die über-gelöschten Zellen
in 209 kann eine gesamte Bitleitung von Fehlern reduziert
werden auf einen Fehler oder auf keinen Fehler. Nach einer Fehlerkorrektur
in 214 endet der Prozess 200 in 216.
-
3 zeigt
ein vereinfachtes Flash-Speicherfeld 300, welches gleich
einem herkömmlichen NOR-Flash-Speicher
angeordnet ist. Der Speicher 300 besteht aus einem oder
weist auf ein Feld (Array) von Zellen 302, welche in Zeilen
und Spalten angeordnet sind. Alle Zellen 302 weisen auf
ein Floating Gate zum Halten einer Ladung welches eine Steuerung
und eine Veränderung
der Schwellenspannung einer Zelle ermöglicht. Zellen, welche dasselbe
Gate miteinander teilen bilden Wortleitungen WL0–WLy. Zellen, welche dieselbe
Drainelektrode miteinander teilen, bilden Bitleitungen BL0–BL2. Die
Sourceelektrode 304 ist allen Zellen 302 gemein.
Die Zellen 302 sind ferner gekoppelt mit einem Leseverstärker. Der Leseverstärker vergleicht
Spannungen und/oder Ströme
von einer Zelle mit einer Referenz, womit ermittelt wird, ob eine
Zelle gelöscht
ist, über-gelöscht ist,
unter-gelöscht
ist, programmiert ist, oder über-programmiert ist.
-
Das
Flash-Speicherfeld 300 wird lediglich zu erläuternden
Zwecken verwendet. Die Erfindung ist nicht beschränkt auf
einen NOR-Flash-Speicher oder einen NOR-artigen Flash-Speicher. Alternative
Ausführungsbeispiele
enthalten andere Arten von Flash-Speicher.
-
4 zeigt
ein Ablaufdiagramm eines Verfahrens gemäß einem Ausführungsbeispiel
der Erfindung, welches angewendet werden kann auf das Flash-Speicherfeld 300 gemäß 3.
In 402 startet das Verfahren 400. In 404 werden
n und m auf den Wert „0” gesetzt.
n zeigt an, welche Wortleitung gemäß zum Verfahren 400 verarbeitet
wird, und m zeigt an, welche Zelle gemäß dem Verfahren verarbeitet wird.
Somit wird gemäß dem Verfahren 400 mit WL(0)
von 3 begonnen. Es ist jedoch anzumerken, dass es
im Bereich der Erfindung ist, mit jeder beliebigen Wortleitung zu
beginnen.
-
In 406 werden
die Zellen an der Wortleitung WL(n) gelöscht. In 408 wird
eine Spannung von beispielsweise 1,8 Volt angelegt an die gelöschte Wortleitung
zum Messen des Stroms, der durch eine gelöschte Speicherzelle fließt. Wenn
eine Zelle über-gelöscht ist,
so wird sie mehr Strom führen
als eine Zelle mit einer Schwellenspannung innerhalb der Lösch-Verteilung. In 410 wird
die Zelle, welche an WL(n), BL(m) angeordnet bzw. gekoppelt ist,
gemessen. In 412 wird eine Prüfung durchgeführt zum
Ermitteln, ob die gemessene Zelle über-gelöscht ist. In einem Ausführungsbeispiel
wird der Strom, welcher durch die Zelle geleitet bzw. geführt wird,
verglichen mit einem Referenzwert. Wenn der Strom größer ist als
ein bestimmter Schwellenwert des Referenzwerts, so ist die Zelle über-gelöscht. In
einem alternativen Ausführungsbeispiel,
welches im Folgenden näher
beschrieben wird, können
Zellen, welche mit benachbarten Wortleitungen gekoppelt sind, gemessen
werden, wobei die Messung des Zellenstroms nach dem Löschen verglichen
wird mit dem Zellenstrom vor dem Löschen. Wenn eine Differenz
auftritt, dann existiert eine über-gelöschte Zelle
an derselben Bitleitung.
-
Wenn
eine Zelle über-gelöscht ist,
dann wird in 414 ein Programmierpuls an die Zelle angelegt,
der ausreichend ist, um eine Zelle in einen Maximum-Über-Gelöscht-Zustand
zu korrigieren. Entweder nach dem Anlegen des Programmierpulses
in 414, wenn die Zelle über-gelöscht ist,
oder nach der Prüfung
in 412, wenn die Zelle nicht über-gelöscht ist, wird m um den Wert „1” in 416 erhöht, so dass
die nächste
Zelle an der Wortleitung geprüft
wird. In 418 wird eine Prüfung durchgeführt zum
Ermitteln, ob m kleiner oder gleich X ist. X ist die Anzahl von
Zellen an einer Wortleitung. Wenn m kleiner oder gleich X ist, dann
wird gemäß dem Verfahren 400 zu 410 zurückgekehrt,
so dass die nächste
Zelle an der Wortleitung gemessen wird. Wenn m nicht kleiner oder gleich
X ist, dann wird der Wert m um den Wert „1” erhöht. Eine Prüfung wird in 422 durchgeführt zum
Ermitteln, ob n kleiner oder gleich Y ist. Y ist die Anzahl von
Wortleitung, welche gelöscht
werden sollen während
einer Lösch-Operation.
Diese Anzahl kann liegen in einem Bereich von 1 bis zu der gesamten
Anzahl von Wortleitungen, die ein Speicherfeld enthalten kann. Wenn
n kleiner oder gleich Y ist, dann wird gemäß dem Verfahren 400 zu 406 zurückgekehrt zum
Löschen
einer anderen Wortleitung. Wenn n nicht kleiner oder gleich Y ist,
dann endet das Verfahren in 424.
-
5 zeigt
ein Ablaufdiagramm eines Verfahrens eines anderen Ausführungsbeispiels
der Erfindung, welches auf das Flash-Speicherfeld 300 von 3 angewendet
werden kann. In 502 startet das Verfahren 500.
In 504 werden n und m auf den Wert „0” gesetzt. n zeigt an, welche
Wortleitung gemäß dem Verfahren 500 verarbeitet
wird und m zeigt an welche Zelle gemäß dem Verfahren 500 verarbeitet wird.
Somit startet das Verfahren 500 mit WL(0) von 3.
Es ist anzumerken, dass es im Rahmen der Erfindung liegt, mit jeder
beliebigen Wortleitung zu beginnen.
-
In 506 werden
die Zellen an WL(n) gelöscht. In 508 wird
eine Spannung von beispielsweise 1,8 Volt an eine Wortleitung angelegt,
die entweder oberhalb oder unterhalb der derzeit gelöschten Wortleitung
liegt. Da gemäß dem Verfahren 500 geprüft wird auf über-gelöschte Zellen
nach einem Löschen
einer jeden Wortleitung, wenn eine Zelle oberhalb oder unterhalb
der gelöschten
Wortleitung abweicht von einem zuvor bekannten Wert, dann ist eine
Zelle auf der entsprechenden Bitleitung der gelöschten Wortleitung über-gelöscht. In 510 wird
die Zelle, die sich an WL(n +/– x),
BL(m) befindet, gemessen, wobei x größer oder gleich „1” ist. In 512 wird
eine Prüfung durchgeführt zum
Ermitteln, ob die Schwellenspannung, der Zustand (gelöscht oder
programmiert), oder irgendein anderer Wert der gemessenen Zelle mit
ihrem zuvor bekannten Wert übereinstimmt,
bevor die Wortleitung gelöscht
worden ist. Wenn ein Unterschied auftritt, dann existiert eine über-gelöschte Zelle
auf derselben Bitleitung der gelöschten
Wortleitung.
-
Wenn
eine Zelle über-gelöscht ist,
dann wird ein Programmierpuls an die Zelle angelegt, der ausreichend
ist zum Korrigieren einer Zelle in einen Maximum-Über-Gelöscht-Zustand. In diesem
Ausführungsbeispiel
beträgt
ein solcher Puls beispielsweise 12 Volt für eine Dauer von 150 μs. Entweder
nach dem Anlegen des Programmierpulses in 514, wenn die
Zelle über-gelöscht ist,
oder nach der Prüfung
in 512, wenn die Zelle nicht über-gelöscht ist, wird m um den Wert „1” in 516 erhöht, so dass
die nächste
Zelle an der Wortleitung geprüft
wird. In 518 wird eine Prüfung durchgeführt zum
Ermitteln, ob m kleiner oder gleich X ist. X ist die Anzahl von
Zellen an einer Wortleitung. Wenn m kleiner oder gleich X ist, dann
wird gemäß dem Verfahren 500 zu 510 zurückgekehrt,
so dass die nächste
Zelle an der Wortleitung gemessen wird. Wenn m nicht kleiner oder
gleich X ist, dann wird n um den Wert „1” erhöht. Eine Prüfung wird in 522 durchgeführt zum
Ermitteln, ob n kleiner oder gleich Y ist. Y ist die Anzahl von
Wortleitung, die während
einer Lösch-Operation
zu Löschen
sind. Diese Anzahl kann liegen in einem Bereich von „1” bis hin zu
der gesamten Anzahl von Wortleitungen, die ein Speicherfeld enthalten
kann. Wenn n kleiner oder gleich Y ist, dann wird gemäß dem Verfahren 500 zu 506 zurückgekehrt,
so dass eine andere Wortleitung. gelöscht wird. Wenn n nicht kleiner
oder gleich Y ist, dann endet das Verfahren in 524.
-
6A und 6B zeigen
Ablaufdiagramme von Verfahren gemäß Ausführungsbeispielen der Erfindung,
welche angewendet werden können
auf das Flash-Speicherfeld 300 von 3. In 6A beginnt
ein Verfahren 600 in 610. In 610 wird
die Zelle gemessen, die sich bei WL(n), BL(m) befindet. In 612 wird
eine Prüfung
durchgeführt
zum Ermitteln, ob die gemessene Zelle über-gelöscht ist. Wenn eine Zelle über-gelöscht ist,
dann wird in 614 die über-gelöschte Zelle
zum Programmieren beispielsweise in einer Steuerung oder in einem
Controller registriert. In 616 wird m um den Wert „1” erhöht.
-
In 618 wird
eine Prüfung
durchgeführt
zum Ermitteln, ob m kleiner oder gleich X ist. X ist die Anzahl
von Zellen an einer Wortleitung. Wenn m kleiner oder gleich X ist,
dann wird gemäß dem Verfahren 600 zu 610 zurückgekehrt,
so dass die nächste
Zelle an der Wortleitung gemessen wird. Wenn m nicht kleiner oder
gleich X ist, dann sind alle Zellen an WL(m) gemessen worden. In 619 wird
ein Programmierpuls an alle registrierten über-gelöschten Zellen der aktuellen
Wortleitung WL(m) angelegt, der ausreichend groß ist zum Korrigieren einer
Zelle in einen Maximum-Über-Gelöscht-Zustand. Somit werden
die über-gelöschten Zellen
parallel, anders ausgedrückt gleichzeitig,
programmiert.
-
6B zeigt
ein anderes Verfahren gemäß Ausführungsbeispielen
der Erfindung. In 6B beginnt das Verfahren 640 in 620.
In 620 wird die Zelle gemessen, welche sich an WL(n +/– x), BL(m)
befindet, wobei x größer oder
gleich 1 ist. In 622 wird eine Prüfung durchgeführt zum
Ermitteln, ob die Schwellenspannung, der Zustand (gelöscht oder
programmiert) oder irgendein anderer Wert der gemessenen Zelle übereinstimmt
mit einem zuvor bekannten Wert, bevor die Wortleitung gelöscht worden
ist.
-
Wenn
ein Unterschied oder eine Differenz ermittelt wird, dann existiert
eine über-gelöschte Zelle an
derselben Bitleitung der gelöschten
Wortleitung und gemäß dem Verfahren 640 wird
an die über-gelöschte Zelle
ein Programmierpuls angelegt, der ausreichend ist zum Korrigieren
einer Zelle in einen Maximum-Über-Gelöscht-Zustand
in 628. Wenn keine Differenz ermittelt wird, so ist es
dennoch möglich, dass
eine über-gelöschte Zelle
an der aktuellen Bitleitung liegt, da die über-gelöschte
Zelle nur leicht über-gelöscht sein
kann und den Wert der gemessenen Zelle nicht beeinflussen kann.
Da es möglich
ist, dass eine über-gelöschte Zelle
einen Vor-Lösch-Wert einer anderen
Zelle an der aktuellen Bitleitung beeinflusst, wird in 624 eine
Prüfung
durchgeführt
zum Entscheiden, ob eine andere Zelle an der Bitleitung gemessen
werden soll, oder ob zu einer anderen Bitleitung weitergegangen
werden soll. In 626 wird x um den Wert „1” erhöht und gemäß dem Verfahren 640 wird
zu 620 zurückgekehrt,
so dass eine andere Zelle an BL(m) gemessen wird. In 629 wird
m um den Wert „1” erhöht, wobei
gemäß dem Verfahren 640 eine
andere Bitleitung gemessen wird.
-
Die
in 1 bis 6 angegebenen
Werte sind lediglich erläuternd.
Wie in der vorliegenden Anmeldung beansprucht sind die Wortleitung-Lesespannungen
und die Programmierpuls-Spannung und
deren Dauer nicht beschränkt
auf die oben gegebenen Werte. Ferner sind alternative Ausführungsbeispiele
zu den obigen Figuren ebenfalls innerhalb des Bereichs der vorliegenden
Anmeldung. Beispielsweise kann ein Flash-Speicherfeld von 3 auch gebildet
werden von Multi-Bit-Zellen
oder Multi-Level-Zellen.
-
7 zeigt
ein funktionales Blockdiagramm einer Speichereinrichtung 704 gemäß einem
Ausführungsbeispiel
der Erfindung, welches direkt oder indirekt (beispielsweise mittels
eines Busses oder eines Speicher-Controllers) mit einem Prozessor 702 gekoppelt
sein kann. Die Kopplung kann dauerhaft oder temporär sein.
Der Prozessor 702 kann ein Mikroprozessor sein, ein Prozessor
oder irgendeine andere Art eines Steuer-Schaltkreises. Die Speichereinrichtung 704 und
der Prozessor 702 bilden einen Teil eines elektronischen
Systems 700. Die Speichereinrichtung 704 weist
ein Speicherfeld 720 auf. In einem Ausführungsbeispiel sind Speicherzellen
(nicht gezeigt) des Speicherfeldes 720 nichtflüchtige Floating Gate-Speicherzellen,
und sie sind in Feldern von Spalten und Zeilen angeordnet. Adressier-Schaltkreise 716 akzeptieren
Adresssignale, welche an Adress- Eingangsverbindungen 708 bereitgestellt sind.
Adresssignale werden empfangen und dekodiert mittels eines Zeilen-Dekoders 718 und
eines Spalten-Dekoders 722 zum Zugreifen auf das Speicherfeld 720.
-
Ein
Leseschaltkreis 726 liest in dem Speicherfeld 720 gespeicherte
Daten aus. Eine digitale Signalausgabe von dem Lese-Schaltkreis 726 wird akzeptiert
mittels eines Fehlerkorrekturschaltkreises 728, welcher
Fehler in dem Datensignal erfasst und korrigiert. Ausführungsbeispiele
enthalten einen Fehlerkorrekturschaltkreis, der eingerichtet sein
kann zum Implementieren einer beliebigen Anzahl von Fehlererkennungs-
und Fehlerkorrekturschemata, aufweisend, jedoch nicht beschränkt auf
Prüfsummen,
zyklische Redundanz-Prüfung (cyclic
redundancy check), Hamming-Code, Reed-Solomon-Code, BCH-Code, sowie andere
Lochungscodes und Block-Codes.
Codes können
verwendet werden einzeln oder in Kombination miteinander. In einigen
Ausführungsbeispielen
kann der Fehlerkorrekturschaltkreis 728 in dem Lese-Schaltkreis 726 eingebettet sein.
In einigen Ausführungsbeispielen
können
die Fehlererkennung und die Fehlerkorrektur durchgeführt werden
mittels einer CPU 702.
-
Der
Dateneingabe- und Ausgabe-Schaltkreis 730 ist enthalten
und eingerichtet zur bidirektionalen Datenkombination mittels einer
Mehrzahl von Datenverbindungen 710 mit dem Prozessor 702.
Ein Schreib-Schaltkreis 724 ist vorgesehen zum Schreiben
von Daten in das Speicherfeld 720. In einem Ausführungsbeispiel
ist ein Pulsgeneratorschaltkreis 725 innerhalb des Schreib-Schaltkreises 724 angeordnet.
Der Pulsgeneratorschaltkreis 725 ist eingerichtet zum Bereitstellen
eines Programmierpulses, der ausreichend ist zum Korrigieren einer
Zelle in einen Maximum-Über-Gelöscht-Zustand.
-
In
einigen Ausführungsbeispielen
ermittelt der Steuer-Schaltkreis 712 den
Maximum-Über-Gelöscht-Zustand
der Speichereinrichtung 704. In einigen Ausführungsbeispielen
kann der Steuer-Schaltkreis 712 seine Definition des Maximum-Über-Gelöscht-Zustands aktualisieren,
so dass beispielsweise veränderte
oder sich ändernde
Speicherzellen-Charakteristika oder Lösch-Operationen mit berücksichtigt
werden können.
-
In
einem Ausführungsbeispiel
führt der
Steuer-Schaltkreis 712 die Löschverfahren gemäß der Erfindung
durch. Beispielsweise registriert in einigen Ausführungsbeispielen
der Steuer-Schaltkreis 712 eine
oder mehr über-gelöschte Zellen
zum Programmieren und instruiert den Pulsgeneratorschaltkreis 726 zum
Anlegen eines oder mehr Programmierpulse an die registrierten über-gelöschten Zellen.
Der Steuer-Schaltkreis 712 kann ein Zustandsautomat sein,
ein Sequenzer, oder irgendeine andere Art einer Steuerung oder eines
Controllers.
-
Obwohl
die Erfindung vor allem im Zusammenhang mit spezifischen Ausführungsbeispielen gezeigt
und beschrieben worden ist, sollte es von denjenigen mit dem Fachgebiet
vertrauten Personen verstanden werden, dass vielfältige Änderungen
der Ausgestaltung und der Details daran vorgenommen werden können, ohne
vom Wesen und Bereich der Erfindung, wie er durch die nachfolgenden
Ansprüche
definiert wird, abzuweichen. Der Bereich der Erfindung wird daher
durch die angefügten
Ansprüche bestimmt,
und es ist beabsichtigt, dass sämtliche Veränderungen,
welche in Reichweite der Bedeutung und des Äquivalenzbereichs der Ansprüche liegen, von
den Ansprüchen
umfasst werden.