-
Diese
Erfindung betrifft allgemein Computer-lesbare Speicherbausteine
und spezifischer Verfahren um Rauschen zu reduzieren, wenn deren
Informationsinhalt gelesen wird.
-
In
nichtflüchtigen
Halbleiterspeichern, wie zum Beispiel EEPROMs, wurden die pro Speicherzelle
gespeicherten Datenmengen erhöht,
um die Speicherdichten zu erhöhen.
Zur gleichen Zeit haben die Betriebsspannungen solcher Bauelemente
abgenommen, um den Energieverbrauch zu reduzieren. Dies läuft auf
eine größere Anzahl
von Zuständen
hinaus, welche in einem kleineren Bereich von Strom- oder Spannungswerten
gespeichert werden. Während
die Trennung von Spannung oder Strom zwischen Datenzuständen abnehmen,
werden die Auswirkungen des Rauschens beim Lesen dieser Zellen signifikanter.
Zum Beispiel können
akzeptable Schwankungen eines Schwellenwertes in einer binären 5 Volt
EEPROM Zelle in einem Bauelement, welches bei 3 Volt vier oder mehr
Bit pro Zelle speichern kann, nicht mehr akzeptiert werden. Einige
Folgen von Rauschen in einem nichtflüchtigen Speicher sowie Verfahren,
um dies zu bewältigen,
werden in US-Patent
6,044,01 beschrieben.
-
Ein
Beispiel für
ein verrauschtes Verhalten ist in 1A gezeigt,
welche von US-Patent 6,044,019 adaptiert wurde. Diese Figur zeigt
die Schwankung des Stromes, welcher durch eine Speicherzelle als Antwort
auf einer bestimmte Reihe von Bias Bedingungen fließt. Der
Strom schwankt um einen Betrag ΔI
aufgrund verschiedener Rauscheffekte in der Speicherzelle und dem
koppelnden Schaltkreis. Wenn zum Beispiel der Speicherschaltkreis
mit Strommessung arbeitet und wenn die Trennung zwischen den Zuständen ΔI erreicht,
beginnt das Rauschen fehlerhaft gelesene Werte hervorzurufen. Obwohl
die Folgen des Rauschens durch integrierende Lesetechniken, so wie
in US-Patent 6,044,019 beschrieben, verringert werden können oder
mit Fehlerkorrekturcodes (ECC) behandelt werden können oder
durch ein anderes gleichwertiges Fehlermanagement, so wie in US-Patent 5,418,752
beschrieben, könnten
Speicher von weiteren Verfahren, um die Auswirkungen des Rauschens
auf Speicheroperation zu reduzieren, profitieren.
-
Es
wird auch auf die europäische
Patentschrift 1,096,501 verwiesen. Diese Offenbarung bezieht sich
auf magnetische Speicher mit wahlfreiem Zugriff, in welchen Leseverstärker den
Widerstand der Speicherzellen in einem Array von Zellen messen.
Es wird ein Leseprozess beschrieben, bei dem das kumulierte Ergebnis
von vielfachen Lesevorgängen
verwendet wird, um einen Parameter zu bilden, welcher den in Zellen
enthaltene binäre
Logikpegel kennzeichnet.
-
Die
vorliegende Erfindung richtet sich auf ein Verfahren um die Auswirkungen
des Rauschens in nichtflüchtigen
Speichern weiter zu reduzieren, wodurch es dem System ermöglicht wird,
mehr Zustände
pro Speicherelement in Schaltkreisen zu speichern, in denen Rauschen
und andere Transienten ein bedeutender Faktor sind. Das offenbarte
Verfahren ist ein Verfahren zum Schreiben eines Zieldatenwertes
in einen nichtflüchtigen
Speicher, umfassend Ändern
des Zustandes eines Speicherelementes im nichtflüchtigen Speicher, Prüfen eines
Parameters (Φi), der auf den resultierenden Zustand des
Speicherelementes hinweist, gegen einen Referenzwert, der auf den
Zieldatenwert hinweist sowie Ermitteln, ob der Zustand des Speicherelementes
als Antwort auf diesen Vergleich weiter verändert wird. Gemäß der Erfindung
wird das Überprüfen der
Parameter einer Vielzahl von unabhängigen Vergleichen durchgeführt, um
den Parameter mit dem Referenzwert, welcher auf den Zieldatenwert
hindeutet, zu vergleichen. Normalerweise ist das Speicherelement
eines von einer Mehrzahl von Speicherelementen, in denen Daten gleichzeitig
geschrieben werden. Die Ergebnisse der Vergleiche können für jedes
Speicherelement kumuliert und gemittelt werden, um die Auswirkungen des
Rauschens in den Schaltkreisen sowie anderer Transienten zu reduzieren,
welche die Qualität
des Lesen nachteilig beeinflussen können.
-
In
Verfahren der Erfindung kann das Speicherelement ein ladungsspeicherndes
Bauelement sein, aber typischerweise ist es ein Multistate-Speicherelement.
Bei dieser Variante wird bevorzugt, dass der Parameter einer eines
Stromes, einer Spannung, einer Zeit, einer Frequenz, einer magnetischen Eigenschaft
und einer optischen Eigenschaft ist. Auch bei dieser Variante wird
der nichtflüchtige
Speicher normalerweise eine Speichereinheit umfassen, welche eine
Vielzahl von Speicherelementen einschließlich dieses Speicherelementes
sowie einen Controller enthält,
in welchem die Vergleiche durch einen der Controller und der Speichereinheit
durchgeführt
werden.
-
Wenn
das Speicherelement ein Multistate-Speicherelement ist, können die
Vergleiche unter Verwendung einer digitalen numerischen Technik durchgeführt werden
oder es kann ein Peak-Detektionsverfahren oder analog gefilterte
Detektion umfassen.
-
In
Verfahren gemäß der Erfindung
können die
Mehrzahl von unabhängigen
Vergleichen in einem zweiten Prüfverfahren
durchgeführt
werden, wobei das Verfahren das Durchführen eines oder mehrerer Programmierprüfzyklen
unter Verwendung eines ersten Prüfverfahrens,
welches einen einzelnen Vergleich mit einem Referenzwert, Ändern des
Zustands des Speicherelements sowie Überprüfen des resultierenden Zustands
durch Verwenden des zweiten Prüfverfahrens
umfasst. Der Übergang
vom ersten zum zweiten Prüfverfah ren
kann eine Antwort auf den Parameter (Φi)
sein, welcher auf den resultierenden Zustand des Speicherelements
hinweist, welcher einen ersten Prüfpegel überschreitet oder eine Antwort
auf einen Übergang
von einem groben Programmierverfahren zu einem feinen Programmierverfahren
sein.
-
Aus
dem Obengenannten versteht sich, dass die vorliegende Erfindung
durch mehrere Techniken implementiert werden kann. In einer ersten
Reihe von Ausgestaltungen wird ein vollständiger Lesevorgang und eine Übertragung
der Daten von der Speichereinheit zur Controllereinheit für jeden
Schritt durchgeführt,
wobei der Controller eine Mittelwertbildung durchführt. In
einer zweiten Reihe von Ausgestaltungen wird ein vollständiger Lesevorgang
für jede
Unterbrechung durchgeführt,
aber die Mittelwertbildung wird innerhalb der Speichereinheit durchgeführt und es
findet keine Übertragung
von Daten zum Controller statt, bis die Endresultate gesendet werden.
In einer dritten Reihe von Ausgestaltungen wird ein vollständiger Lesevorgang
durchgeführt,
gefolgt von einer Anzahl schneller erneuter Lesevorgänge durch Ausnutzung
der bereits etablierten Zustandinformation, um einen vollständigen Lesevorgang
mit einem intelligenten Algorithmus zu vermeiden, um den Zustand
zu führen,
an dem das Speicherelement abgetastet wird. Diese Technik kann als
normale Betriebsart verwendet werden oder bei einer von den Systemeigenschaften
abhängigen
Ausnahmebedingung aufgerufen werden.
-
Eine ähnliche
Form der Signalmittelwertbildung kann während der Prüfphase der
Programmierung verwendet werden. Eine beispielhafte Ausgestaltung
dieser Technik würde
wie oben erwähnt
eine Peak-Detektion verwenden. Bei diesem Szenario werden vor dem
Entscheiden, ob das Speicherelement den Endzustand erreicht hat,
mehrere Überprüfungen am
Zielzustand durchgeführt.
Wenn ein vorgegebener Teil des Prüfens scheitert wird das Speicherelement
zusätzlich
programmiert.
-
Zusätzliche
Aspekte, Merkmale und Vorteile der vorliegenden Erfindung werden
aus der folgenden Beschreibung ersichtlich, wobei
-
1A–C zeigen
Beispiele von Reaktionen auf Rauschen in einer Speicherzelle.
-
2 veranschaulicht
die Auswirkungen von Rauschen auf eine Programmier- und Prüfoperation.
-
3 ist
ein schematisches Blockdiagramm der Operation der vorliegenden Erfindung
gemäß einer
beispielhaften Ausgestaltung.
-
4A und 4B sind
Blockdiagramme von Schaltungs-Ausgestaltungen von einigen Aspekten
der vorliegenden Erfindung.
-
5 ist
eine schematische Darstellung einer Implementierung einer binären Suche
einer beispielhaften Ausgestaltung.
-
Die
Speicherkapazität
von nichtflüchtigen Halbleiterspeichern
hat sowohl die Verkleinerung der physikalischen Größe der einzelnen
Komponenten der Schaltungen einschließlich der Speicherzelle als auch
durch Erhöhen
des in den individuellen Speicherzellen speicherbaren Betrags von
Daten erhöht. Zum
Beispiel können
Bauelemente wie zum Beispiel jene in den US-Patenten 5,712,180 und
6,103,573 sowie der anhängigen
Patentanmeldung Nummer 09/505,555, angemeldet am 17.02.2000, sowie
Nummer 09/667,344, angemeldet am 22.09.2000, übertragen auf SanDisk Corporation,
beschrieben, vier oder mehr logische Bit pro physikalischem Floating Gate
Speichertransistor speichern. Im Fall von vier logischen Bit wird
diese Speicherung erfordern, dass jedes Floating Gate innerhalb
seiner sechzehn möglichen
Speicherzuständen
codiert werden kann. Jeder dieser Speicherzustände entspricht einem einzelnen
Wert, oder genauer, einem schmalen Bereich von Werten der auf dem
Floating Gate gespeicherte Ladung, welcher ausreichend von seinem
benachbarten Bereich der gespeicherten Ladung getrennt ist, um diesen
eindeutig von besagten benachbarten Zuständen sowie aller anderer Zustände zu unterscheiden.
Das trifft für
sowohl bei einer normalen Leseoperation als auch einem prüfenden Lesevorgang als
Teil einer Programmieroperation zu.
-
Mehrere
Techniken um Speicherzellen zu lesen werden in der US-Patentanmeldung
Nummer 09/671,793 beschrieben, angemeldet am 27.09.2000 sowie in
einer mit dem Titel "Sense
Amplifier for Multilevel Non-Volatile Integrated Memory Devices" von Shahzad Khalid,
angemeldet am 20.11.2001, welche auf SanDisk Corporation übertragen
sind. Die erste dieser Anwendungen beschreibt das Lesen des Inhalts
der Speicherzelle mit 7 Bit oder einer höheren Auflösung für die Verwendung bei einer
4 Bit Speicherung. Wenn diese Anzahl von Pegeln in einem Fenster
von 3 Volt von Betriebsspannungen enthalten ist, was bei einem FLASH-Speicher
typisch ist, resultiert dies in einem Auflösungsvermögen von ungefähr 25 mV.
Mit diesem Bereich können
früher
akzeptable Rauschpegel nun zu einem Zustand der Zelle führen, welcher
mit einem Fehler von einem oder mehreren Zustandspegeln gelesen
wird.
-
1A–C veranschaulichen
Beispiele von Rausch-Schwankungen beim Lesen einer Speicherzelle. 1A zeigt
den Fall, bei dem der Wert von einem Parameter, welcher auf den
Zustand der Speicherzelle hinweist, wobei der Strom I(t) in diesem
Fall um einen Mittelwert 〈I〉 schwankt. In anderen
Ausgestaltungen kann der Speicher durch Lesen von Spannungspegeln
betrieben werden. Wenn der Wert von I(t) mehr oder weniger unverzögert in
regelmäßigen Intervallen
gelesen wird, würde
das Ergebnis Etwas sein, wie in 1B gezeigt.
Wenn stattdessen die Zeitdauer, im Laufe derer der Parameter, welcher
auf den Zustand der Zelle hinweist, gelesen wird, um mehrere Male
länger
als der typische zeitliche Rahmen der Schwankungen ist, kann ein
relativ genauer Wert für
den Zustand der Zelle bestimmt werden. Einige Verfahren um dies
durchzuführen
werden in US-Patent
6,044,019 beschrieben, aus dem 1A und 1C adaptiert
wurden und welches durch Bezugnahme in die vorliegende Anmeldung
aufgenommen wird.
-
Wie
in diesem Patent beschrieben, hat eine Speicherzelle seinen durch
einen Leseverstärker
gemessenen Source-Drain Strom I(t). Am Leseverstärker hat I(t) typischerweise
einen Rauschanteil mit durch ΔI
gegebene Rausch-Schwankungen, wie in 1A und 1C gezeigt.
Ein besonderes Merkmal des Leseverstärkers in dieser Erfindung besteht darin,
diesen schwankenden Strom mittels eines Integrators zu verarbeiten,
welcher effektiv einen zeitlichen Mittelwert des Stromes 〈I(t)〉T über
einer vorgegebenen Zeitdauer T erzeugt. Ein A/D Modul kodiert ferner
den abgetasteten analogen, zeitlich gemittelten Strom in ein Digitalformat
entsprechend einem Output-Speicherzustand Φ.
-
1C veranschaulicht
einen Source-Drain Strom I(t), welcher Rausch-Schwankungen mit einer charakteristischen
Zeitdauer TΔI aufweist
und dessen durch den Leseverstärker
gemäß der vorliegenden Erfindung
verarbeiteten, resultierenden zeitlich gemittelten 〈I(t)〉T aufweist. Der abgetastete Source-Drain
Strom einer Speicherzelle I(t) hat eine zeitabhängige weiße Rauschkomponente ΔI. Wenn I(t) über einer
ausreichenden Zeitspanne T gemittelt wird, werden die Rausch-Schwankungen
wesentlich gedämpft.
Der resultierende Fehler in 〈I(t)〉T wird durch δI vorgegeben,
welcher wesentlich geringer als ΔI
ist. Die ausreichende Zeitspanne für die Mittelwertbildung wäre eine
Zeitdauer T, welche wesentlich größer als eine charakteristische
Zeit TΔI der Rausch-Schwankung
wäre. Diese
TΔI kann
als eine Zeitdauer definiert werden, in derer ein vorgegebener Betrag
der Rausch-Schwankung ausreichend gedämpft worden ist.
-
Zum
Beispiel wurde die charakteristische Schwankungszeit TΔI von
vielen EEPROM oder Flash EEPROM Bauelementen in einem Bereich von
10 Nanosekunden bis zu mehreren Hundert Nanosekunden abgeschätzt. TΔI.
Daher sollte für
diese typischen Bauelemente die in US-Patent 6,044,019 beschriebene
analoge Mittelwertbildungs- oder Integrationszeit T für diese
Bauelemente vorzugsweise wesentlich größer als TΔI sein.
Im Gegensatz wird die Messung von I(t) gemäß dem Stand der Technik mehr
oder weniger "unverzögert" ermittelt, d. h.
in einer Zeit, welche wesentlich kürzer als TΔI ist
und die Art des in 1B gezeigten Outputs erzeugt,
je nachdem, wann die Messung gemacht wird. Wenn die Integrationszeit
T so wie im herkömmlichen
Fall ohne eine zeitliche Mittelwertbildung im Wesentlichen Null
ist, ist die Rausch-Schwankung eines abgetasteten Stromes durch ΔI gegeben.
Indem die Zeitdauer der Mittelwertbildung vergrößert wird, nimmt die Rausch-Schwankung
im zeitlich gemittelten gemessenen Strom aufgrund erhöhter Phasenauslöschung ab.
-
Die
Programmierung einer Speicherzelle wird üblicherweise durch einen Programmier/Prüf-Zyklus,
wie beispielsweise im US-Patent 5,172,338 beschrieben, durchgeführt. Im
typischen Prozess wird eine Speicherzelle mit einer Programmierspannung
gepulst und ihr Wert wird überprüft, um zu
bestimmen, ob die Speicherzelle den gewünschten Zielzustand erreicht
hat oder nicht. Falls nein, wird der Prozess so lange wiederholt,
bis dies bestätigt
wird. Da diese Überprüfung ein
Messprozess ist, wird dieser auch von Rauschen beeinflusst. Dies
ist in 2 gezeigt.
-
2 zeigt
den Einfluss des Rauschens auf einem Programmier-/Prüf-Prozess.
Nach jedem Programmierpuls wird der Zustand der Zelle durch einen Messprozess
geprüft.
Mit Bezug auf 2 wird der Zustand des gemessenen
Parameters I(t) nach solch einem Puls als Wert I(t) 201 gezeigt,
welcher einen Rauschanteil umfasst. Weil der sich durch den in 201 wiederspiegelnde
Zustand der Zelle unter dem Zielwert liegt, wird die Zelle, wie
durch den leeren Zwischenraum angezeigt, nochmals gepulst gefolgt
von einer neuen Messung 202. Weil sich der Zustand der Zelle
dem Zielwert nähert,
kann der Rauschanteil zu einer fehlerhaften Überprüfung führen.
-
Wenn
der Zustand der Zelle in der Nähe
vom Zielwert liegt, können
die Peaks im Parameter aufgrund des Rauschens den Zielwert überschreiten, sogar
obwohl sich die Zelle noch nicht im gewünschten Zustand befindet. Dies
wird durch 204 gezeigt, wobei die Peaks in I(t) den Zielwert überschreiten, obwohl
sein durchschnittlicher Wert 〈I(t)〉 noch immer nicht
am Zielwert ist. Wenn das prüfende
Lesen an einem dieser Peaks 204 durchgeführt wird,
könnte
die Zelle fehlerhaft überprüft werden,
anstelle zum genaueren, durch 205 vertretenen Zustand weiterzugehen.
-
Wenn
der Zustand einer Zelle gemessen wird, ob als ein Teil einer Prüfoperation
oder einer Leseoperation ist es erforderlich, dass die Lesezeit
T lang in Bezug auf die charakteristische Zeit TΔI der Rausch-Schwankung
ist, um einen genauen Wert für seinen
Zustand durch die oben beschriebenen Verfahren zu erhalten. Diese
Technik kann mehrere Schwächen
aufweisen. Je nachdem, wie lang diese charakteristische Zeit ist,
kann dies eine übermäßig lange
Lesezeit im Vergleich zu den anderen Operationen des Speichers erfordern
und würde
auf einen entsprechend inakzeptablen Verlust der Lesegeschwindigkeit
hinauslaufen. Die vorliegende Erfindung verwendet eine kurze Messzeit,
aber wiederholt den Prozess mehrere Male für einen vorgegebenen Lesevorgang
mit den mehrfachen Messungen, deren Durchschnitt dann ermittelt
wird, um den Zustand der Zelle zu erhalten. Für Rauschen mit einem Bestandteil,
welcher eine lange charakteristische Zeit hat, können die mehrfachen kurzen
Messungen eine kürzere
gemeinsame Zeit erfordern als die für die analoge Integration eines
einzelnen Lesevorgangs erforderliche Zeit. Da außerdem eine große Anzahl
von Speicherzellen gleichzeitig gelesen wird, existieren praktische
Grenzen der integrierenden analogen Schaltung, welche in der Integrationstechnik
verwendetet wird.
-
Eine
andere Beschränkung
der Integrationstechnik besteht darin, dass der Wert 〈I(t)〉 durch die
sehr kurze Dauer aber großen
Rauscherscheinungen verzerrt werden kann. Solch ein Ereignis kurzer
Dauer kann mit einem einzelnen Lesevorgang der mehfachen Lesevorgänge isoliert
werden und dann zusammen mit anderen außerhalb liegenden Werten entfernt
werden, wenn der Durchschnitt berechnet wird. Da der Wert von jeder
der gemessenen Zellen verschiedene Male separat ermittelt wird,
können
die Werte auf mehrere zusätzliche
Weisen verarbeitet werden, welche für die Integrationstechnik nicht
verfügbar
sind.
-
Insbesondere
werden die Speicherelemente mehrmals gelesen und die Ergebnisse
werden kumuliert und für
jedes Speicherelement digital gemittelt. Dies reduziert die Auswirkungen
des Rauschens in den Schaltungen sowie anderer Transienten, welche sich
auf die Güte
des Lesens nachteilig auswirken können. Mehrere Ausgestaltungen
werden im Folgenden besprochen. In einer Ausgestaltung wird ein vollständiger Lesevorgang
und eine Übertragung
der Daten vom Speicherelement zum Controllerelement für jeden
Schritt durchgeführt,
wobei die Mittelwertbildung vom Controller durchgeführt werden.
Alternativ kann das Bauelement einen vollständigen Lesevorgang der Daten
für jeden
Durchgang durchführen, aber
mit der digitalen Mittelwertbildung durch das Speicherele ment und
keiner Übertragung
zum Controller bis die Endresultate gesendet werden. Anstelle für jeden
Durchgang einen vollständigen
Lesevorgang durchzuführen,
kann der Speicher stattdessen einen initialen vollständigen Lesevorgang
durchführen,
gefolgt von mehreren schnellen nochmaligen Lesevorgängen unter
Ausnutzung der bereits etablierten Zustandinformation, um einen
vollständigen
Lesevorgang mit einem intelligenten Algorithmus zu vermeiden, um
den Zustand zu führen,
an dem das Speicherelement abgetastet wurde. Diese Techniken können als
normale Betriebsart verwendet werden oder bei einer von den Systemeigenschaften
abhängigen
Ausnahmebedingung aufgerufen werden. Eine ähnliche Form der Signalmittelwertbildung
kann während
der Prüfphase
der Programmierung verwendet werden. Eine Ausgestaltung dieser Technik
würde ein
Peak-Detektionsschema
verwenden.
-
In
diesem Szenario werden vor dem Entscheiden, ob das Speicherelement
den Endzustand erreicht hat, mehrere Überprüfungen am Zielzustand durchgeführt. Wenn
ein vorgegebener Teil der Prüfung
scheitert wird das Speicherelement weiter programmiert. Da der Betrag
des Rauschens reduziert wird, kann diese Technik dem System ermöglichen, mehr
Zustände
pro Speicherelement zu speichern als im Gegensatz dazu, wenn Rauschen
und andere Transienten ein bedeutender Faktor sind.
-
Die
zwei Lesetechniken, die digitale Mittelwertbildung mehrfacher Leseoperationen
sowie die verlängerte
Integrationszeit für
die analoge Mittelwertbildung sollten komplementär betrachtet werden. Deren
relative Effektivität
hängt von
der charakteristischen Frequenz des Rauschens ab. Da das Rauschen
von mehreren verschiedenen Quellen mit jeweils verschiedenen charakteristischen
Frequenzen herrühren
kann, kann es von den Betriebsbedingungen des Bauelementes abhängen, ob
die erste, die zweite oder beide Techniken verwendet werden. Wenn
zum Beispiel das Rauschen aus einem hohen Frequenzanteil und einem
niedrigen Frequenzanteil zusammengesetzt ist, könnte die Integrationszeit für jede der
individuellen Messoperationen lang genug gewählt werden, um die hohen Frequenzanteile
effektiv durch Integrieren zu entfernen, während die mehrfachen Lesevorgänge der
vorliegenden Erfindung dazu verwendet werden könnten, die Auswirkung des niedrigen
Frequenzanteils des Rauschens zu reduzieren. Sowohl die Länge des
Integrationsintervalls als auch die Anzahl der nochmaligen Lesevorgänge können gemäß der Frequenzeigenschaften
des Rauschens angepasst werden. Diese können durch Parameter während der
Prüfung
eingestellt werden und im System gespeichert werden.
-
Eine
zusätzliche
Lesetechnik, welche weiter mit diesen anderen Techniken kombiniert
werden kann, wird in einer gleichzeitig anhängigen US-Patentanmeldung mit
dem Titel "Noise
Reduction Technique For Transistors and Small Devices Utilizing
an Episodic Agitation" von
Nima Mokhlesi, Daniel C. Guterman und Geoff Gongwer beschrieben,
welche gleichzeitig mit der vorliegenden Anwendung angemeldet wurde.
Diese Anmeldung beschreibt geeignete Techniken wenn das Rauschen
einen Bestandteil mit einem bimodalen Verhalten hat.
-
Der
Zustand eines Speicherelements kann unter Verwendung einer Anzahl
von verschiedenen Parameten ermittelt werden. In den obigen Beispielen
kann die Ermittlung eines von einer Zelle gespeicherten Ladungspegels
durch Strommessung durchgeführt
werden, wobei der Betrag seiner Konduktion unter Verwendung festgelegter
Bias-Bedingungen gemessen wird. Alternativ können solche Ermittlungen durch
eine Messung der Schwellenwertspannung durchgeführt werden, wobei der Beginn
solcher Konduktion unter Verwendung variierenden Steuergate Bias-Zuständen gemessen
wird. Diese Verfahren repräsentieren
einige der Ansätze,
welche eher zum Standart gehören.
-
Alternativ
könnte
die Ermittlung dynamisch durchgeführt werden, indem der Ladungspegel
der Zellen durch Ermitteln der Treibkraft (durch z.B. einen vorgeladenen
Kondensator) die Entladungsrate eines dynamisch gehaltenen Sense
Node bestimmt. Durch Messen der Zeit, um einen vorgegebenen Entladungspegel
zu erreichen, wird der gespeicherte Ladungspegel bestimmt. In diesem
Fall ist der auf den Zustand der Zelle hinweisende Parameter eine
Zeit. Dieser Ansatz wird im U.S. Patent 6,222,762 sowie in der Patentanmeldung
mit dem Titel "Sense
Amplifier for Multilevel Non-Volatile Integrated Memory Devices" beschrieben. Eine
andere alternative Technik bestimmt den Zustand der Speicherelemente
unter Verwendung einer Frequenz als Parameter. Dieser Ansatz wird
im US-Patent 6,044,019 beschrieben.
-
Gegenwärtige Ansätze zur
Strommessung sind im US-Patent 5,172,338 und in der US-Patentanmeldung Nummer
08/910,947 weiter entwickelt, welche mit den verschiedenen unten
beschriebenen Ausgestaltungen verwendet werden können. Die Mehrheit der folgenden
Darstellungen verwendet jedoch den Ansatz, die Schwellenwertspannung
Vth zu Messen (auch Voltage Margining genannt),
da dies die Auflösung
der Messung verbessert, den Strom niedrig beibehält und folglich die Leistung,
mit welcher parallele Leseoperationen verbunden sind, sowie die
Empfindlichkeit gegenüber
einem hohen Widerstand der Bit-Line verringert. Die Abtastung von Vth beziehungsweise der Voltage Margining
Ansatz ist im US-Patent 6,222,762 weiter ausgereift. Eine andere
Technik der Spannungsmessung, welche die Spannung an der Source
für eine
festgelegte Drain-Spannung als Antwort auf eine vorgegebene Spannung
am Gate kontrolliert, ist die Source Follower Technik, welche zum
Beispiel in der US-Patentanmeldung Nummer 09/671,793 beschrieben
wird.
-
Die
eigentliche Messung bei einer Voltage Margining Technik kann auf
mehrere Weisen durchgeführt
werden, zum Beispiel durch sequentielles Vergleichen einer Schwellenwertspannung
einer Zelle mit jedem der dazu in Zusammenhang stehenden Bezugswerte.
Für Multistate-Zellen
kann es effizienter sein, Zelle für Zelle eine datenabhängige binäre Suche
wie im obengenannten US-Patent 6,222,762 beschrieben, auszunutzen,
welche zum Beispiel in der Lage ist, parallel jede der Vth der abgetasteten Zellen in einer Auflösung von
eins zu sechzehn durch eine sequentielle Messoperation mit vier
Durchläufen zu
bestimmen. Die für
die Messung erforderliche Auflösung
wird in der US-Patentanmeldung Nummer 09/671,793 behandelt. Wie
gewöhnlich
ist der Grad der verwendeten Auflösung ein Kompromiss zwischen
einer höheren
Auflösung,
was auf mehr potenzielle "Bit" der minimal erforderlichen
4-Bit Auflösung der
beispielhaften Ausgestaltungen hinausläuft (z.B. für die Verwendung zur Erhöhung der
Speicherzuverlässigkeit)
und der Kosten der damit verbundenen Fläche zur Messung und Speicherung
dieser zusätzlichen
Bit sowie ein höherer
Zeitverbrauch, sowohl aufgrund der zusätzlichen Abtastungsdurchgänge in der
binären
Suche dieses zusätzlichen
Bits als auch aufgrund der Übertragung
dieser zusätzlichen
Information.
-
Es
sollte erwähnt
werden, dass sich nicht die gesamte zusätzliche Zeit für die zusätzliche
Messung und Verarbeitung oder möglicherweise
für eine
verlängerte
Integrationszeit in der Geschwindigkeit des Bauelementes direkt
wiederspiegelt, da das Bauelement viele dieser Operationen parallel
durchführen kann.
Wenn zum Beispiel ein normaler Leseprozess eine Leseoperation mit
11 Durchgängen
mit 3 μs
pro Durchgang erfordert, kann die gegenwärtige Erfindung ungefähr zusätzlich ein
halbes Dutzend von Lesedurchgängen
hinzufügen
und potenziell die Integrationszeit verdoppeln, wenn es einen Rauschanteil in
einem Bereich von 1 μs
gibt. Dies verlangsamt die nominelle Lesezeit für eine vorgegebene Zelle, bietet aber
eine höhere
Speicherdichte. Ein Erhöhen
der Parallelität
könnte
die Auswirkung dieser Zunahme auf eine Lesezeit einer einzelnen
Zelle verringern. Techniken zum Erhöhen des Umfangs der Parallelität in nichtflüchtigen
Speichern werden in der US-Patentanmeldung Nummer 09/766,436, angemeldet
am 19.01.2001, beschrieben. Obwohl das Erhöhen der Anzahl von Operationen,
welche parallel ausgeführt werden,
häufig
das Rauschen erhöht,
sind die vorliegenden Techniken auch zum Reduzieren dieses Rauschens
anwendbar.
-
Um
die in den Speicherzellen gespeicherten Daten auszulesen, müssen diese
Daten mit einer ausreichenden Genauigkeit sowohl geschrieben als auch
gespeichert werden. Folglich ist das Minimieren der Auswirkungen
des Rauschens wichtig, sowohl während
Anteilen zur Prüfung
der Programmieroperation als auch während der eigentlichen Leseoperation,
wenn der Zustand der Zelle in einen Datenwert umgewandelt wird.
-
3 ist
ein schematisches Blockdiagramm der Funktion der vorliegenden Erfindung
gemäß einer
beispielhaften Ausgestaltung. Die Gate Spannung wird an der Zelle 301 angelegt
und seine Bit-Leitungen werden vorgeladen. Während des Integrationsanteils
der Lesephase wird die Spannung V(t) (einschließlich des Rauschanteils) zu
einem Leseverstärker
SA 310 mit einem Analog-Digital-Wandler A-D 311 übertragen.
Der Leseverstärker
SA 310 wandelt diese Spannung in einen Ausgangsdatenzustand Φi um. Die Funktion des Leseverstärkers kann beispielsweise
wie in der US-Patentanmeldung Nummer 09/671,793 beschrieben sein.
Wie dort beschrieben wird der Spannungspegel mit einer Auflösung von
27 = 128 Zuständen abgetastet, welcher in
Discriminating Zellen zu verwenden sind, welche 4 oder 5 Bit pro
Zelle speichern. Die Zelle wird mehrmals gelesen, wobei jedes Mal
ein Datenzustand Φi hervorgebracht wird. Wegen des Rauschens
und der Verwendung einer Integrationszeit, welche kürzer als
die charakteristische Zeit des Rauschens ist, werden die Φi mit einer größeren Streuung als in 1B gezeigt Output
sein.
-
Die
Datenzustände Φi werden dann gemittelt. Dies kann wie unten
beschrieben auf mehrere verschiedene Weisen durchgeführt werden.
Eine einfache beispielhafte Ausgestaltung ist in 3 gezeigt.
Die Schaltung zur Mittelwertbildung AVE 320 besteht aus
einem Akkumulator Σi 321 und einem Dividierer 323.
Zum Beispiel könnte
der Datenzustand achtmal gemessen werden, das Ergebnis in 321 akkumuliert
werden um Σ 8 / i=1 Φi zu erzeugen und der Dividierer 323 könnte ein
Verschieberegister sein, welches die Summe durch acht teilt wenn
dies dreimal verschoben wird. Die Ausgabe Φ von
AVE 320 ist dann der durchschnittlich gelesene Wert. In
diesem Beispiel ist es ein einfacher Mittelwert.
-
Ein
Speichersystem besteht normalerweise aus einem oder mehreren Speicherchips,
von denen jeder die tatsächlichen
Arrays von Speicherzellen zuzüglich
eines Controller-Chips
enthält,
obwohl in einer einzelnen Ausgestaltung des Chips die Controllerfunktion
in demselben Chip integriert sein kann wie in dem, welcher innerhalb
dem Array enthalten ist. Obwohl die Leseschaltung SA 310 sich
auf demselben Chip wie die Speicherzellen befindet, können sowohl
die Position als auch Funktion der Schaltung zur Mittelwert bildung
AVE 320 mehrere verschiedene Ausgestaltungen haben. Insbesondere
können
der Typ und die Position des involvierten Schaltkreises zur Bildung
dieser Zusammensetzung genauso wie der Mittelwert Φ aus
den einzelnen Lesevorgängen gebildet
wird, eine Anzahl möglicher
Variationen haben. Zum Beispiel könnte die Schaltung AVE 320 aus 3 vollständig in
der selben Schaltung wie die Speicherzelle untergebracht werden,
so dass nur der zusammengesetzte Wert Φ am
Ende des Prozesses zurück
zum Controller transferiert wird. Alternativ könnte jede der einzelnen Φi zum Controller übertragen und dort gemittelt
werden.
-
Obwohl
die Besonderheiten mit den unten beschrieben Ausgestaltungen variieren,
ist eine Reihe allgemeiner Situationen in 4A und 4B gezeigt.
Diese zeigen einen Speicherchip MEM 400 sowie einen Controller
CONT 460. Der Speicherchip enthält das Array von Speicherzellen 401,
welche mit der Reihendecoder-Schaltung 411 und Spaltendecoder-Schaltung 413 verbunden
sind. Die Leseschaltung 421 wird die Leseverstärker, wie
zum Beispiel Block 310 in 3, sowie
jede andere zugehörige Schaltung
enthalten. Das Output der Leseschaltung wird dann einer Reihe von
Registern 425 zugeführt, welche
in Abhängigkeit
von der Ausgestaltung fehlen können.
Obwohl diese Erörterung
größtenteils
in Bezug auf eine einzelne Zelle geführt wird, wird im Allgemeinen
eine große
Anzahl von Zellen parallel gelesen und die Register sowie andere
Elemente müssen
diese Parallelität
unterstützen.
Um die Erörterung
zu vereinfachen werden die anderen Elemente der Schaltung ausgeblendet,
welche aber in den verschiedenen Patenten und Anwendungen beschrieben
werden, welche durch Bezugnahme in die vorliegende Anmeldung aufgenommen
werden. Zum Beispiel wird die Schaltung auch Schaltungen zum Schreiben
enthalten, welche nicht ausführlich
gezeigt sind, aber diese können
in die Leseblöcke
oder in andere Blöcke
mit einbezogen werden sowie eine Reihe von Programmierregistern,
welche die selben wie die Leseregister 429 sein können. Der
Bus 430, welcher den Teil des Speichers 400 mit
dem Controller 460 verbindet, wird Daten sowie Adressen,
Befehle, Parameter und so weiter zwischen den beiden übertragen.
Der Controller 460 wird auch alle üblichen Elemente zusätzlich zu
denjenigen haben, die spezifisch gezeigt sind. 4A ist
eine Ausgestaltung, in welcher die einzeln gelesenen Φi, (oder Φ0 und Φ ' / i wie unten
beschrieben) alle vom Speicher zum Controller gesendet werden. Diese
Werte können
temporär
in REG 425 in MEM 400 gespeichert werden, bevor
diese zum Controller CONT 460 gesendet werden. Sobald sich
die Werte im Controller befinden, können diese in REG 461 oder
anderen Speichern gespeichert werden und der Mittelwert Φ kann
in Schaltung AVE 463 gebildet werden, bevor dieser zum
Host übertragen
wird. Im Fall, bei dem AVE 463 die Werte kumuliert um einen
laufenden Durchschnitt zu bilden, wenn die Werte von MEM 400 eintreffen,
müssen
die Werte nicht im REG 461 einzeln gespeichert werden.
-
Die
Variation in 4B zeigt ein Beispiel, bei dem
die Zusammensetzung Φ im
Speicher MEM 400 gebildet wird und dann zum Controller übertragen wird,
um diese zum Host zu übertragen.
Die in 4B gezeigte Ausgestaltung zeigt
eine Schaltung zur Mittelwertbildung wie 3, welche
aus einem Akkumulator 423 und einem Dividierer 429 besteht, um
einen Mittelwert Φ aus
den einzelnen Leseergebnissen zu bilden. Alternative Implementierungen
im Speicherchip würden
andere oder zusätzliche
Elemente, wie die Reihe von Registern 425 in 4A haben,
welche hier nicht gezeigt sind, um die gelesenen Werte einzeln zu
speichern.
-
Für einige
der Ausgestaltungen besteht der grundlegende Leseprozess der vorliegenden
Erfindung darin, gleichzeitig eine Reihe von Parametern p(t) wie
zum Beispiel eine Spannung oder ein Strom, welche auf den Zustand
der Zelle hinweisen, der Leseschaltung für jede der Zellen der Reihe
bereitzustellen, welche parallel gelesen werden. Um dies zu tun
werden die zu lesenden Zellen gemäß der verwendeten Lesetechnik
unter Bias gesetzt. Der Parameter p(t) wird einen Rauschanteil enthalten.
Die Leseschaltung erzeugt dann die Datenzustände Φi(p) entsprechend
den Bias-Bedingungen, aus denen der zusammengesetzte Wert Φ dann gebildet wird und vom
Controller ausgegeben wird.
-
In
einer ersten Reihe von Ausgestaltungen ist der Lesevorgang der Zellen
ein vollständiger
Lesevorgang, d. h. falls die Zellen mit einer Auflösung von
beispielsweise 7 Bit wie in der obengenannten US-Patentanmeldung
Nummer 09/671,793 gelesen werden, werden alle Lesevorgänge in dieser
Auflösung
einschließlich
aller erforderlichen Schritte, um die volle Auflösung abzutasten und zum Controller weiterzugeben,
durchgeführt.
Diese Datenzustände können dazu
verwendet werden, ein gleitendes Mittel zu bilden, so wie in der
Mittelwertberechnungs-Schaltung 320 in 3 gezeigt,
oder anders im Controller im Register 461 in 4 oder in anderen Controller-Speichern
gespeichert werden. Durch Speichern aller gemessener Datenzustände kann der
Controller eine größere Vielfalt
von Mittelwert-Verfahren durchführen.
Die Datenzustände
können
entweder von der Speicherschaltung 400 übertragen werden, während diese
bestimmt werden, oder vor der Übertragung
temporär
im Register 425 gespeichert werden.
-
Aus
den gemessenen Werfen können
mehrere verschiedene Zusammensetzungen im Controller gebildet werden.
Diese Zusammensetzung konnte ein einfacher Mittelwert, ein gewichteter
Mittelwert oder ein Mittelwert, welche abseits gelegene Werte vernachlässigt, ein
quadratischer Mittelwert oder ein auf anderen Potenzen beruhender
Mittelwert sein und kann durch Hardware, Software oder Firmware implementiert
sein. Eine Controllerbasierte Implementierung kann folglich ohne
die Einführung
einer zusätzlichen
Schaltung, abgesehen von der möglichen
Erhöhung
der Speicherkapazität,
verwendet werden. Diese Art der Implementierung resultiert tatsächlich im
größten Betrag
der Informationsübertragung
zwischen dem Speicherschaltkreis und dem Controllerschaltkreis der
beschriebenen Ausgestaltungen, was ein Nachteil sein kann, vor allem,
wenn sich der Controller und Speicherschaltkreis aufgrund des vergrößerten Verkehrs
auf dem Bus auf separaten Chips befinden. Eine rein Speicherbaustein-basierende
Implementierung würde
die Einführung
zusätzlicher
Schaltungen erfordern, eventuell einschließlich genügender Registerkapazität, um die
Ergebnisse von mehrfachen Lesevorgängen für alle der Zellen zu speichern,
welche parallel gelesen werden.
-
Eine
Weise, den Betrag der zum Controller übertragenen Information zu
reduzieren, besteht darin, einen vollständigen Lesevorgang der Zelle
durchzuführen,
gefolgt von einer Anzahl teilweiser Lesevorgänge, wobei teilweise Lesevorgänge weniger
Bit benötigen,
um einen Offset von der Grundlinie anzuzeigen, wobei der Bereich
des Offsets beschränkt
ist. Dies würde
in einem Grundwert Φ0 für
den Zustand der Daten und einer Anzahl von Lesevorgängen Φ ' / i resultieren,
welcher die Schwankung um diesen Grundwert aufgrund von Rauschen
anzeigt. Da dieses Verfahren weniger Daten zum Analysieren erzeugt
(und möglicherweise
zum Speichern), spart dies sowohl die Datenmenge ein, welche zum
Controller übertragen
werden muss, wenn die Mittelwertbildung dort durchgeführt wird,
als auch möglicherweise
Zeit für
die durchzuführende
Analyse, sogar in Ausgestaltungen, bei denen die Mittelwertbildung
im Speicherchip durchgeführt
wird. Dies kann auch die gesamte Lesezeit reduzieren.
-
Angenommen
der Zustand der Speicherzelle wird mit einer Auflösung von
7 Bit bestimmt. Wenn der Lesevorgang eine binäre Suchtechnik verwendet, würde dies
zumindest sieben Lesevorgänge
bei sieben Unterbrechungspunkten erfordern. Folglich würde ein
viermal wiederholter vollständiger
Lesevorgang des Zustands der Zelle ein Minimum von 28 Abtastoperationen
erfordern. Wenn stattdessen ein vollständiger Lesevorgang der Zelle
durchgeführt wird,
um Φ0 zu bestimmen, gefolgt von drei Lesevorgängen mit
einer 2-Bit-Auflösung, um
die Schwankungen Φ ' / i um
den Grundwert Φ0 zu bestimmen, würde dies 13 Abtastoperationen
zur Folge haben. In diesem Beispiel wird der Satz (Φ0, Φ ' / i)
die selbe Information enthalten wie die vollständigen Lesevorgänge mit
weniger als der Hälfte
der Abtastoperationen und weniger als der Hälfte der Daten liest, welche
gespeichert, übertragen
oder beides werden müssen.
Dabei wird allerdings angenommen, dass der Umfang der Schwankungen
innerhalb des Bereichs liegt, welcher um den Grundpegel herum gemessen
wird. (Alternativ wird dies die Auswirkungen von Schwankungen größeren Umfangs
aufgrund eines Sättigungseffektes
ausblendet) Der Umfang und die Anzahl der teilweisen Lesevorgänge kann
durch Systemparameter festgelegt werden und während der Prüfung des Chips
ermittelt werden und können
auch als Antwort auf Systembedingungen modifiziert werden. In einer verrauschten
Schaltung müssen
die teilweisen Lesevorgänge
eingestellt werden, um einen größeren Bereich
abzudecken. Für
die meisten Anordnungen wird die beste Genauigkeit für eine vorgegebene
Anzahl von Abtastoperationen durch ungefähr die selbe Zahl erhalten,
welche mit dem Ermitteln von Φ0, was Φ ' / i betrifft,
verbunden ist.
-
Das
binäre
Suchbeispiel kann eine Änderung
des Algorithmus erfordern, so wie in der schematischen Darstellung
in 5 für
eine der Zellen gezeigt ist, welche parallel gelesen wird. Beim
vorherigen Beispiel könnten
128 Spannungs Unterbrechungspunkte verwendet werden, um den Zustand der
Zelle mit einer 7-Bit-Auflösung
abzutasten. Der erste Lesevorgang in der Reihe würde ermitteln, ob sich die
Zelle in der oberen oder unteren Hälfte des Speicherfensters befindet,
der zweiten Lesevorgang, ob sich die Zelle in der oberen oder unteren
Hälfte der
zuvor bestimmten Hälfte
befindet und so weiter.
-
Bei
solch einer binären
Suche, bei der sich zum Beispiel die Zelle im 64. Zustand befindet,
welcher gerade über
dem Pegel V64 in 5 liegt,
würde ohne
Rauschen in entweder der Zelle oder in anderen Schaltungselementen
im 64. Zustand gelesen werden. Folglich würde über dem Unterbrechungspunkt
im ersten Lesevorgang (501a) und unter dem Unterbrechungspunkt
in jedem nachfolgenden Lesevorgang (501b–501g)
gelesen werden. Dies wird in 5 durch
den Richtungspfeil dargestellt, welcher anzeigt, ob sich die Messspannung über oder
unter dem Unterbrechungspunkt befindet, welcher zum Lesen der Zelle
verwendet wird. Mit Rauschen könnten mehrere
Zustände
darüber
oder darunter gelesen werden. Um jedoch die Auswirkungen dieses
Rauschens zu ermitteln, könnte
beim Verwenden nur der letzten wenigen Schritte des Algorithmus
(angenommen 501f und 501g) niemals ein niedrigerer
Wert als der erste Unterbrechungspunkt erfasst werden. Um die Auswirkungen
des Rauschens richtig wiederzuspiegeln würden entweder 7 Schritte vollständiger Lesevorgänge oder
eine Änderung
des Algorithmus erforderlich sein. Folglich kann eine vollständige binäre Suche
verwendet werden, um ein Grundpegel Φ0 vom
vollständigen
Lesealgorithmus zu bestimmen, gefolgt von einer zweiten Methode,
um die Φ ' / i zu bestimmen.
Die mehrfachen, schnellen erneuten Lesevorgänge könnten eine reduzierte binäre Suche um
den Mittelpunkt Φ0 verwenden oder zu einem nichtbinären Verfahren
wechseln.
-
5 zeigt
die Verwendung einer reduzierten binären Suche für die erneuten Lesevorgänge 511, 513 und 515.
Erneut stellen die ersten sieben Lesevorgänge (501a–501g)
fest, dass der Grundzustand Φ0 der 64. Zustand ist. Da sich eine Schwankung
um diesen Zustand leicht unterhalb des ersten gelesenen Pegels 501a befinden
könnte,
würden
alle nachfolgenden Lesevorgänge,
welche den selben Algorithmus verwenden, diese verfehlen. Um folglich Φ ' / i entsprechend
diesem Φ0 exakt zu bestimmen, ändert sich der Algorithmus
zu einer reduzierten binären
Suche, welche um den Zustand Φ0 zentriert ist. 5 zeigt
drei teilweise Lesevorgänge
(511, 513, 515), wobei jeder aus einer
binären
2-Bit-Suche (a und
b) besteht, welche um den Wert des vollständigen Lesevorgangs zentriert
sind.
-
In
diesem Beispiel liest das erste von diesen Ergebnissen sowohl über dem
ersten Unterbrechungspunkt (511a) als auch über dem
zweiten Unterbrechungspunkt (511b) entsprechend dem 65.
Zustand. Obwohl das tatsächliche
Ergebnis beträchtlich über diesem
Zustand aufgrund einer augenblicklich großen Schwankung liegen kann,
ist zu beachten, dass ein "Sättigungs"-Effekt auftritt,
wodurch der Betrag solch einer Spitze, welche zum Durchschnitt beiträt, begrenzt
wird. Die zweite Reihe erneuter Lesevorgänge führt zu einem Ergebnis unter
dem ersten Unterbrechungspunkt in 513a, gefolgt von einem
Lesevorgang über
dem zweiten Unterbrechungspunkt in 513b entsprechend dem
63. Zustand. In gleicher Weise geben die erneuten Lesevorgänge 515a und 515b wieder
den 64. Zustand zurück.
Somit enthält der
erste Lesevorgang für Φ0 in diesem Beispiel 7 Bit Daten für jede Zelle,
welche gelesen wird, während jeder
der erneuten Lesevorgänge
2 Bit Daten enthält, beziehungsweise
insgesamt 6 Bit für
den erneuten Leseprozess.
-
Der
Prozess in 5 ist ein Beispiel einer Leseoperation,
welche einen ersten Lesemodus hat, bei dem die Zelle nur einmal
gelesen wird sowie einen zweiten Modus, bei dem die Zelle mehrmals
gelesen wird. In einem anderen Beispiel, bei dem der gemessene Parameter
der Zelle mit einer Anzahl von Bezugspegeln parallel verglichen
wird, könnte
der erste Lesevorgang ein grober Modus sein, wobei eine Anzahl der
hochwertigen Bit gelesen werden, gefolgt von mehrfachen Lesevorgängen für die restlichen
niederwertigen Bit. In einem weiteren Beispiel während eines wie in 2 gezeigten
Prüfprozesses könnte während der
frühen
Stadien, wenn die Zelle weit vom Zielwert entfernt ist (so wie in 201),
die Zelle nur einmal gelesen werden und der Lesemodus könnte geändert werden,
wenn sich die Zelle dem Zielwert (so wie in 204 und 205)
nähert.
Der Gebrauch einer Programmiertechnik, welche einen groben Modus
und einen feinen Modus hat, wird in der am 26.01.2001 angemeldeten
US-Patentanmeldung Nummer 09/793,370 beschrieben.
-
Zurückkehrend
zu 4a und 4b, kann, wie
bereits angemerkt wurde, jede dieser Ausgestaltungen durch Übertragen
aller Daten zum Controller implementiert werden, entweder durch
die mehrfachen vollständigen
Lesevorgänge Φi(p) oder durch die Reihe mehrfacher teilweiser
Lesevorgänge
(Φ0, Φ ' / i),
sowie deren Verarbeitung im Controller 460 wie in 4a gezeigt.
Alternativ könnte
die gesamte Verarbeitung im Speicherchip erfolgen, wobei nur das Endresultat Φ zum Controller und dann
außerhalb des
Systems übertragen
wird, so wie in 4b dargestellt. Die Verarbeitung
könnte
auch aufgeteilt werden, wobei die Leseergebnisse in einen Zwischenzustand übertragen
werden. Zum Beispiel könnten
die teilweisen Leseergebnisse im Speicherchip kumuliert und dann
für die
Division oder andere weitere Verarbeitung zum Controller übertragen
werden.
-
Ein
weiteres Beispiel, bei dem die Verarbeitung zwischen dem Controller
und dem Speicherchip aufgeteilt ist, involviert den Gebrauch von
Referenz- oder Trackingzellen, wie jenige, welche in der US-Patentanmeldung
Nummer 091671,793 beschrieben werden, auf welche Bezug genommen
wird. Diese Anwendung beschreibt ein Verfahren, bei welchem die
Trackingzellen mit einer 7-Bit-Auflösung gelesen werden, um Unterbrechungspunkte
zum Lesen der Datenzellen mit einer 4-Bit-Auflösung zu bestimmen. In diesem
Verfahren könnten
die Trackingzellen mehrmals gemäß der vorliegenden
Erfindung gelesen werden, wobei die Zusammensetzung im Controller
gebildet wird. Sobald die Unterbrechungspunkte unter Verwendung
der vorliegenden Erfindung bestimmt wurden, würden diese Unterbrechungspunkte zurück zum Speicherchip übertragen
werden um die Datenzellen zu lesen.
-
Ein
Verfahren um die Zusammensetzung im Speicherchips zu bestimmen wäre einen
gleitenden Mittelwert in der Speicherschaltung 400 zu bilden. Dies
könnte
eine Akkumulator- und Divisions-Schaltung entsprechend dem Block 320 in 3 sein.
Abwechselnd könnten
die Werte durch Element 423 akkumuliert, im Register 425 gespeichert
und dann für die
weitere Verarbeitung zum Controller 460 übertragen
werden. Die gelesenen Werte könnten
auch zuerst im Register 425 einzeln gespeichert und dann
so wie in den oben beschrieben Controller-implementierten Beispielen
durch andere Schaltungen im Speicherchip verarbeitet werden. Die
Implementierung der Mittelwertbildung in der Speicherschaltung 400 wird
generell den Aufwand des Einbringens zusätzlicher Elemente haben, welche
gewöhnlich
nicht in der Schaltung inbegriffen sind. Je nachdem, wie der Mittelwert
oder eine andere Zusammensetzung gebildet wird, könnte dies
eine Kombination erhöhter
Registergröße zum Speichern
gelesener Werte beinhalten, das Einbringen zusätzlicher Schaltungen, Divisionsschaltungen,
eine Art State Machine und so weiter. Andererseits kann die daraus
resultierende Reduzierung der Informationsmenge, welche zum Control ler übertragen
werden muss, im Programmprüfprozess besonders
vorteilhaft sein, um eine hohe Schreibgeschwindigkeit aufrechtzuerhalten.
-
Wie
in U.S. Patent 5,172,338 und anderen Referenzen beschrieben, besteht
ein typischer Programmierprozess einer Speicherzelle eines Floating Gate
Typs daraus, die Zelle zu pulsen, um deren Zustand zu ändern, das
Auslesen der Zelle, um zu ermitteln, ob diese den gewünschten
Zustand erreicht hat, falls ja das Beenden weiterer Programmierung und
falls nein das Fortsetzen des Puls-Lese-Zyklus bis die Zelle verifiziert
wird, dass der gewünschte
Zustand erreicht ist. Die Auswirkung des Rauschens wurde mit Bezug
auf 2 oben besprochen. Um Daten in einem Speicher
zu speichern und exakt wiederzuerlangen erfordert sowohl beim Schreibprozess als
auch beim Leseprozess Genauigkeit. Mit Bezug auf 2 entspricht
der Mittelwert 205 dem gewünschten Zustand. Wenn die Programmierung
als Antwort auf das Erreichen von Peak-Werten 204 über dem
Zielpegel jedoch angehalten würde,
würde dies auf
einen Zustand mit einem niedrigeren Mittelwert hinauslaufen, welcher
als richtig bestätigt
würde.
Dieser Fehler kann dann durch das Rauschen während des Leseprozesses hervorgerufen
werden. Folglich ist das Reduzieren der Auswirkungen des Rauschens
im Prüfprozess
ebenso wichtig wenn die Dichte der in jeder einzelnen Zellen gespeicherten Zustände zunimmt.
-
Die
verschiedenen Aspekte der vorliegenden Erfindung können in
den Prüfprozess
auf mehrere Weisen aufgenommen werden. Die Situation des Prüfens unterscheidet
sich vom Standardleseprozess darin, dass der Zustand der Zelle in
Abhängigkeit
von einem datenabhängigen
Zielwert des gemessenen Parameters gemessen wird, den der iterative
Programmieralgorithmus erfüllen
muss, im Gegensatz zum Durchsuchen eines Bereiches eines Bezugsparameters,
um den Ist-Zustand der Zelle zu bestimmen. Mit anderen Worten sind
normalerweise nicht so viele Informationen und Verarbeitungen beim Prüfen involviert,
nur ob ein vorgegebener Referenzwert überschritten wurde oder nicht.
Eine Ausgestaltung dieser Technik würde ein Peak-Detektionsverfahren
verwenden. Alternativ können
andere Mittel zur Detektion, so wie analog gefilterte Durchschnittswertdetektion
verwendet werden. In diesem Szenario werden vor der Entscheidung,
ob das Speicherelement den Endzustand erreicht hat, mehrere Überprüfungen am
Zielzustand durchgeführt.
Wenn ein vorgegebener Teil des Prüfens scheitert, erhält das Speicherelement
zusätzliche
Programmierung. Obwohl der Zustand beispielsweise entsprechend 204 in 2 Peaks
hat, welche den Zielwert zweimal überschreiten, wenn mehrfache
mehr oder weniger augenblickliche Lesevorgänge der Zelle durchgeführt werden,
würde der
Zielwert nicht mehr als zweimal überlesen
werden. Im Gegensatz würde
der Zustand entsprechend 205 den Zielwert während der
meisten Zeiten überlesen
werden.
-
Um
mehrfache Lesevorgänge
durchzuführen,
wenn der Zustand der Zelle noch weit vom gewünschten Zustand entfernt ist,
würde der
Prozess für
eine geringe Zunahme der Genauigkeit außerordentlich verlangsamen.
Folglich kann in den frühen Stadien
des Programmierprozesses, wenn die Zelle noch weit vom Zielwert
entfernt ist (wie zum Beispiel 201 in 2),
der einzelnen Standartlesemodus mit einem Übergang zum zweiten Modus verwendet
werden, wenn sich dem Zielzustand genähert wird. Zum Beispiel könnte der Übergang
durch den ersten Prüfpegel
ausgelöst
werden, welcher einen Peak hat, welcher den Zielpegel überschreitet
(so wie 204 in 2) oder Teil des Übergangs
von einem groben Programmierverfahren zu einem feinen Programmierverfahren
sein, so wie in U.S. Patentanmeldung Nummer 09/793,370 beschrieben
wird.
-
Ein
weiteres Beispiel einer Zwei-Modus-Operation ist der mehrfache Lesemodus,
welcher bei einer Ausnahmebedingung aufgerufen wird, sowie der einzelne
Standartlesemodus, welcher ansonsten verwendet wird.
-
Ein
weiteres Beispiel einer Zwei-Modus-Operation ist ein erster Modus,
welcher einen einzelnen Standartlesevorgang verwendet sowie ein zweiter
Modus, welcher mehrfache Lesevorgänge verwendet. Der mehrfache
Lesemodus wird bei einer Ausnahmebedingung aufgerufen, wobei der
einfache Lesemodus ansonsten verwendet wird. Zum Beispiel ist der
Fehlerkorrekturcode (ECC) ein wesentlicher Hinweis für ein Problem
oder für
eine Ausnahme beim Betrieb des Bauelementes. Wenn der Fehlerpegel
im Speicher einen vorgegebenen Wert überschreitet (zum Beispiel
mehr als ein Bit) könnte
die mehrfache Lesetechnik aufgerufen werden.
-
Eine
Ausnahmebedingung könnte
auch auf dem Lesen der Trackingzellen oder der Referenzzellen beruhen.
Wie oben beschrieben werden in einer Ausgestaltung die Referenzzellen
mit einer 7-Bit-Auflösung
gelesen, während
die Datenzellen nur mit einer 4-Bit-Auflösung
gelesen werden. Folglich sind die Referenzzellen in Bezug auf Rauschen
empfindlicher. Durch die Verwendung von Referenzzellen um den Rauschpegel
zu überwachen,
könnte
ein Flag gesetzt werden, um die mehrfache Lesetechnik aufzurufen,
wenn festgestellt wird, dass der Rauschpegel einen Schwellenwert überschreitet,
wenn die Trackingzellen verarbeitet werden.
-
Obwohl
die Erörterung
bisher auf Ausgestaltungen fokussiert war, welche für das Speicherelement
einen Ladungsspeicher so wie ein Floating Gate EEPROM oder eine
FLASH Zelle verwenden, können
andere Ausgestaltungen angewendet werden, bei denen dieser Typ Rauschen
ein Problem darstellt, einschließlich magnetischer und optischer Medien.
Diese Erfindung kann weitreichende Anwendungen bei allen Typen der
Abtastung von Bauelementen/Transistoren haben, einschließlich, aber nicht
beschränkend
bei sub- 0,1 μm Transistoren, Einzel-Elektronentransistoren,
organische/Kohlenstoff-basierte Nano-Transistoren sowie molekulare Transistoren.
Zum Beispiel könnten
NROM und MNOS Zellen wie zum Beispiel jene, welche im US-Patent
5,768,192 von Eitan sowie im US-Patent 4,630,086
von Sato et al. beschrieben werden oder magnetische RAM und FRAM
Zellen, wie zum Beispiel jene, welche im US-Patent 5,991,193 von
Gallagher et al. sowie im U.S. Patent 5,892,706 von Shimizu beschrieben
werden, ebenso verwendet werden. Unter Verwendung dieses Ansatzes
könnten Systeme,
welche derzeit aufgrund von Rauschen nicht geeignet sind, brauchbare
Technologien werden. Für
diese anderen Typen von Speicherelementen können sich die besondere Mechanismen
um den Parameter zu bestimmen, welcher den Zustand des Elements
wiederspiegelt, unterscheiden. So würden zum Beispiel magnetische
Eigenschaften in einem magnetischen Medium und optischen Eigenschaften in
einer CD-ROM oder anderen optischen Medien gemessen werden, aber
der nachfolgende Prozess folgt den obigen Beispielen.