-
Die
vorliegende Erfindung betrifft ein Flashspeicherelement und ein
Speichersystem.
-
Flashspeicherelemente
sind ein Typ von nichtflüchtigem
Speicher und insbesondere ein Typ von elektrisch löschbarem
und programmierbarem Nurlesespeicher (erasable and programmable read-only
memory – EEPROM).
In diesem Speichertyp können
während
einer einzelnen Programmieroperation Daten in eine Anzahl von Speicherblöcken geschrieben
werden und Daten können
aus einem Speicherblock während
einer einzelnen Löschoperation
gelöscht
werden. Als ein Ergebnis dieser Fähigkeiten ist Flashspeicher
besonders geeignet für
Systeme, die schnelle und effiziente Lese-/Programmieroperationen
benötigen,
und für
Systeme, die Datenblöcke
von einem Speicherbereich in einen anderen Speicherbereich kopieren.
Allerdings umfasst Flashspeicher, wie alle Arten von EEPROM, eine
Speicherzellenstruktur mit einer oder mehreren dünnen Materialschichten, die
ein Ladungsspeicherelement elektrisch isolieren. Derartige Isolationsschichten
zeigen bei wiederholter Nutzung der Speicherzelle die Tendenz, zerstört zu werden,
und können
schließlich ausfallen.
-
Wie
alle nichtflüchtigen
Speicher ist Flashspeicher in der Lage, gespeicherte Daten zu halten, ohne
dass ständig
Leistung zugeführt
werden muss. Zusätzlich
zeigt Flashspeicher eine exzellente Widerstandsfähigkeit gegenüber mechanischen
Schockeinwirkungen, gute Leistungsverbrauchseigenschaften und schnellen
Datenzugriff bei Leseoperationen. Aufgrund dieser Eigenschaften
wurde Flashspeicher in weiten Bereichen als die Datenspeicherkomponente
vieler moderner Elektrogeräte
eingesetzt, insbesondere solcher Geräte, die durch Batterien versorgt
werden, wie Mobiltelefone, Personal Digital Assistants (PDA), Digitalkameras,
tragbare Spielkonsolen und MP3-Player. Weiterhin werden Flashspeicherelemente
vielfach als Codespeicherelemente in Hostgeraten eingesetzt, wie
High-Definition-Fernseher, Digital Versatile Disks (DVDs), Routern
und globalen Positionierungssystemen (GPS).
-
Flashspeicher
ist generell in zwei Typen verfügbar:
NOR und NAND. Diese Bezeichnungen stammen von der logischen Anordnung
von Gattern innerhalb der jeweiligen Flashspeichertypen. Heutige Flashspeicherelemente
können
weiterhin in Elemente mit einem einzelnen Datenbit pro Speicherzelle oder
mit mehreren Datenbits pro Speicherzelle unterteilt werden.
-
Ungeachtet
des logischen Gattertyps oder der Datenbitanzahl pro Speicherzelle
umfassen alle Flashspeicher ein Floatinggateelement, welches eine Ladung
speichert, die einen Datenzustand anzeigt. Eine wichtige Betrachtung
bezogen auf dieses Element ist seine Zuverlässigkeit unter Betriebslast (oder
Betriebsdauer). Dies bedeutet, dass die Anzahl von Programmier-/Löschzyklen,
die an einer Flashspeicherzelle durchgeführt werden können, bevor eine
Beeinträchtigung
von dessen Datenhaltungseigenschaften auftritt, eine wichtige Qualitätskenngröße darstellt.
-
Gespeicherte
Ladungen (z.B. Elektronen) können
aufgrund einer Anzahl von Mechanismen, wozu die Emission von Thermionen,
Ladungsdiffusionen, Drift aufgrund von Ionenverunreinigungen, Belastung
unter Programmierstörungen
usw. zählen, aus
einem Floatinggate austreten. Da der Ladungsverlust aus einem Floatinggate
variiert, wird die Betriebsschwellspannung der Speicherzelle verändert. In
gleicher Weise führt
Ladungsmigration von einem zugehörigen
Steueranschluss oder Steuergate zu dem Floatinggate zu einer Veränderung
der Schwellspannung. Diese potentiellen Veränderungen der Schwellspannung
stehen in direkter Verbindung mit der Isolierungsqualität von Schichten,
welche dem Floatinggate zugeordnet sind.
-
Unglücklicherweise
belasten wiederholte Programmier-/Loschzyklen die Isolierschicht(en) (z.B.
Oxide), die dem Floatinggate zugeordnet ist (sind), und die Steuerspannung
von Einheitsspeicherzellen kann sich graduell über die Zeit ändern (z.B.
verringern). Wie mittels der gestrichelten Linie in (Fig.) 1 gezeigt,
kann sich das Verteilungsprofil für eine programmierte Speicherzelle
zu einem niedrigen Spannungspegel verschieben. In einigen Fällen können Speicherzellen
mit einem verschobenen Verteilungsprofil (vergl. den schraffierten
Bereich in 1) tatsächlich eine Schwellspannung
aufweisen, die niedriger als eine definierte Programmierprüfspannung
ist. Solch ein Umstand wird zu einem Lesefehler aufgrund einer Verringerung
des Leseabstands bezogen auf die Schwellspannung führen.
-
Der
Erfindung liegt das technische Problem zugrunde, ein Flashspeicherelement
und ein Speichersystem anzugeben, welche die Gesamtzuverlässigkeit
des Flashspeicherelements verbessern.
-
Die
Erfindung löst
das Problem mittels eines Flashspeicherelements mit den Merkmalen
des Patentanspruchs 1 oder des Patentan spruchs 16 und mittels eines
Speichersystems mit den Merkmalen des Patentanspruchs 9.
-
Vorteilhafte
Ausgestaltungen der Erfindung sind in den Unteransprüchen angegeben,
deren Wortlaut hiermit durch Bezugnahme in die Beschreibung aufgenommen
wird, um unnötige
Textwiederholungen zu vermeiden.
-
Vorteilhafte
Ausgestaltungen der Erfindung, die nachfolgend im Detail beschrieben
sind, sowie zur Erleichterung des Verständnisses der Erfindung oben
erläuterte
Ausgestaltungen des Standes der Technik sind in den Zeichnungen
dargestellt. Es zeigt/zeigen:
-
1 ein
graphisches Diagramm, das eine Veränderung der Schwellspannungsverteilung
aufgrund von Ladungsverlust darstellt;
-
2 ein
Blockdiagramm eines Flashspeicherelements gemäß einer Ausgestaltung der Erfindung;
-
3 ein
Blockdiagramm einer Seitenpufferschaltung gemäß einer Ausgestaltung der Erfindung;
-
4 ein
Flussdiagramm, welches eine Auffrischungsoperation für ein Flashspeicherelement gemäß einer
Ausgestaltung der Erfindung zusammenfasst;
-
5 ist
ein graphisches Diagramm zur Darstellung von Spannungen, die an
eine ausgewählte Seite
während
einer Auffrischungsoperation des Flashspeicherelements gemäß einer
Ausgestaltung der Erfindung angelegt werden;
-
6 ist
ein Schaltungsdiagramm zur Darstellung von Ladungsfluss während einer
Auffrischungsoperation für
ein Flashspeicherelement gemäß einer
Ausgestaltung der Erfindung;
-
7 ist
ein allgemeines Blockdiagramm eines Speichersystems mit einem Flashspeicherelement
gemäß einer
Ausgestaltung der Erfindung;
-
8 ist
ein Flussdiagramm, das einen Betrieb zur Erzeugung eines Auffrischungsbefehls
in dem Speichersystem gemäß einer
Ausgestaltung der Erfindung zusammenfasst;
-
9 ist
ein Flussdiagramm, das eine andere Auffrischungsoperation für ein Flashspeicherelement
gemäß einer
Ausgestaltung der Erfindung zusammenfasst; und
-
10 ist
ein allgemeines Blockdiagramm eines Computersystems, das ein Flashspeicherelement
gemäß einer
Ausgestaltung der Erfindung enthält.
-
2 ist
ein Blockdiagramm, das ein Flashspeicherelement gemäß einer
Ausgestaltung der Erfindung darstellt. Zum Zwecke der nachfolgenden
Erklärung
sei angenommen, dass es sich bei dem Flashspeicherelement um ein
NAND-Flashspeicherelement handelt, jedoch umfassen andere Ausgestaltungen
der Erfindung andere Arten von Speicherelementen (z.B. MROM, PROM,
FRAM, NOR-Flash usw.).
-
Bezugnehmend
auf
2 umfasst Flashspeicherelement
1000 ein
Speicherzellenfeld
100, das N-Bit-Daten pro Speicherzelle
speichert, wobei N eine positive ganze Zahl ist. Das Speicherzellenfeld
100 kann
in erste und zweite Speicherfelder
110 und
120 unterteilt
sein. Jedes der ersten und zweiten Speicherfelder
110 und
120 umfasst
eine Mehrzahl von Speicherblöcken.
Jeder Speicherblock ist um mehrfache Stränge herkömmlicher Speicherzellen mit
einer NAND-Struktur herum organisiert. Beispielhafte Strukturen
für jeden
Speicherblock sind in den
US-Patenten
5,696,717 ;
6,058,048 ;
6,813,184 ; und
6,930,919 offenbart, deren gesamter
Offenbarungsgehalt hiermit durch Bezugnahme in die vorliegende Beschreibung
aufgenommen wird.
-
Das
erste Speicherfeld 110 kann dazu verwendet werden, Informationen
zu speichern, beispielsweise Codedaten und normale Daten. Das zweite
Speicherfeld 120 kann dazu verwendet werden, Betriebsinformationen
zu speichern, beispielsweise Auffrischungsdaten (oder Wiederprogrammierungsdaten),
die für
bestimmte interne Organisationsroutinearbeiten im Zusammenhang mit
den Speicherblöcken
des ersten Speicherfelds 110 relevant sind. Auffrischungsdaten
geben an, ob oder ob nicht jeder Speicherblock (oder jede Speicherseite) in
dem ersten Speicherfeld 110 programmiert wurde, und zeigen
für jeden
Speicherblock (oder jede Speicherseite) Programmierzeiten und Identifizierungsinformationen
an.
-
Wie
in 2 gezeigt, umfasst das Flashspeicherelement 1000 weiterhin
einen Zeilenauswähler (X-Auswähler) 200,
eine Seitenpufferschaltung 300, einen Spaltenauswahler
(Y-Auswähler) 400,
eine Steuereinheit 500 und einen Schnittstellenblock 600.
-
Der
Zeilenauswähler 200 arbeitet
unter einer Steuerung durch Signale, die von der Steuereinheit 500 erzeugt
werden, und selektiert wenigstens eine Zeile (oder Seite) innerhalb
des Speicherzellenfelds 100. Die ausgewählte Zeile (oder Seite) wird
durch eine Wortleitungsspannung getrieben, die von dem Zeilenauswähler 200 bereitgestellt
wird. Der Zeilenauswähler 200,
der in den vorstehend referenzierten Veröffentlichungen weiter beschrieben
ist, kann beim Einschalten einen vorbestimmten Speicherblock (oder
eine Speicherseite) auswählen.
-
Die
Seitenpufferschaltung 300 ist dazu ausgebildet, Daten nach
Maßgabe
der Steuereinheit 500 aus dem Speicherzellenfeld 100 zu
lesen oder in dieses zu schreiben. Die Seitenpufferschaltung 300 kann
eine Mehrzahl individueller Seitenpuffer aufweisen, die den einzelnen
Spalten (oder einer oder mehrerer Bitleitungen) des Speicherzellenfelds 100 entsprechen.
Bei einer Ausgestaltung umfasst die Seitenpufferschaltung 300 eine
Mehrzahl von Seitenpuffern, die paarweisen Bitleitungen entsprechen.
Jeder Seitenpuffer kann dazu ausgebildet sein, pro Operation ein
oder mehrere Datenbits zu lesen/programmieren. Die Struktur der
Seitenpufferschaltung 300 ist je nach Design unterschiedlich
und es wird angenommen, dass sie dem Durchschnittsfachmann hinreichend
bekannt ist. Allerdings ist bei einer Ausgestaltung jeder einer
Mehrzahl von Seitenpuffern, welche die Seitenpufferschaltung 300 bilden,
dazu ausgebildet, M-Bit-Daten zu lesen/programmieren, wobei M eine
ganze Zahl größer oder
gleich 3 ist.
-
Der
Spaltenauswähler 400 kann
dazu ausgebildet sein, einen Seitenpuffer innerhalb der Seitenpufferschaltung 300 auszuwählen, wie
durch die Steuereinheit 500 angezeigt. Die Steuereinheit 500 kann
dazu ausgebildet sein, Zeitablaufinformationen zu erhalten oder
zu speichern, welche beim Einschalten zu dem Speicherzellenfeld 100 übertragen
werden können.
In diesem Zusammenhang kann eine gegenwärtige Zeitanzeige durch ein
externes System bereitgestellt werden (z.B. eine Speichersteuereinheit
oder ein Computersystem).
-
Der
Schnittstellenblock 600 kann dazu ausgebildet sein, eine
Schnittstelle zu einem externen System (z.B. einer Speichersteuereinheit
oder einem Host) zu bilden. In der dargestellten Ausgestaltung sei
angenommen, dass der Schnittstellenblock 600 einen Puffer
für eine duale
oder doppelte Pufferoperation und geeignete herkömmliche Komponenten zum Steuern
der doppelten Pufferoperation umfasst.
-
Das
Flashspeicherelement 1000 kann dazu ausgebildet sein, eine
Auffrischungsoperation zu unterstützen. Die Auffrischungsoperation
wird verwendet, um eine Abnahme von Speicherzellenschwellspannungen
aufgrund von Ladungsverlusten aus dem vorhandenen Floatinggate zu
komprimieren. Als ein Ergebnis der Auffrischungsoperation kann die Schwellspannung
von Speicherzellen, welche das Speicherzellenfeld 100 bilden,
auf einem Pegel gehalten werden, der größer als oder gleich einer definierten
Programmierprüfspannung
ist. Dieses Ergebnis verbessert die Datenhaltungseigenschaften des Flashspeicherelements 100 und
erhöht
die allgemeine Zuverlässigkeit.
-
3 ist
ein Blockdiagramm einer beispielhaften Seitenpufferschaltung 300,
die zur Verwendung innerhalb einer Ausgestaltung der Erfindung angepasst
ist. Während 3 in
beispielhafter Weise nur einen einzelnen Seitenpuffer PB zeigt,
kann eine Mehrzahl derartiger Schaltungen in parallelem Betrieb
gruppiert sein, um die Seitenpufferschaltung 300 zu bilden.
Bezugnehmend auf 3 ist der Seitenpuffer PB aus
NMOS-Transistoren M1 und M3 ~ M6, PMOS-Transistoren M2 und Invertieren
INV1 und INV2 gebildet. Der Durchschnittsfachmann erkennt, dass
diese besondere Struktur nur ein Beispiel darstellt und dass die
Erfindung nicht ausschließlich auf
diese Struktur beschränkt
ist.
-
4 ist
ein Flussdiagramm, welches eine Auffrischungsoperation für ein Flashspeicherelement gemäß einer
Ausgestaltung der Erfindung zusammenfasst. 5 ist ein
Graphikdiagramm, das Spannungen zeigt, welche während der Auffrischungsoperation
in 4 an eine ausgewählte Seite angelegt werden,
und 6 ist ein Diagramm zur Darstellung eines Stromflusses
(oder eines Ladungsflusses) stellvertretend für Daten während der Auffrischungsoperation,
die unter Ver wendung des Seitenpuffers in 3 durchgeführt wird.
Unter gemeinsamer Bezugnahme auf diese Abbildungen wird eine beispielhafte Auffrischungsoperation
für ein
Flashspeicherelement gemäß einer
Ausgestaltung der Erfindung beschrieben. Im Sinne einer einfachen
Beschreibung wird die Auffrischungsoperation unter Bezugnahme auf
lediglich einen einzelnen Seitenpuffer innerhalb der Seitenpufferschaltung 300 beschrieben.
-
Zunächst wird
eine Seite (oder Wortleitung) eines Speicherblocks durch den Zeilenauswähler 200 nach
Maßgabe
der Steuereinheit 500 ausgewählt (S100). Anschließend werden
Daten aus Speicherzellen der ausgewählten Seite gelesen, während eine
erste Spannung V1 (vergl. 5) an die
ausgewählte
Seite angelegt wird (S110). Dieser Schritt wird nachfolgend als
die „erste
Leseoperation" bezeichnet.
-
Unter
Bezugnahme auf den beispielhaften Seitenpuffer PB in 6 wird
ein Latch LAT des Seitenpuffers PB initialisiert. Diese Operation
resultiert aus dem Empfang einer Adresse, die der ausgewählten Seite
zugeordnet ist, und die intern durch das Flashspeicherelement 1000 oder
durch ein externes System (z.B. eine Speichersteuereinheit oder
ein Computersystem) bereitgestellt wird. Dies wird erreicht, indem
ein erster Signalpfad 1 gebildet wird. (Signalpfade 1 bis 6 sind
in 6 durch entsprechend nummerierte Kreise gekennzeichnet.)
Signalpfad 1 wird gebildet, indem die NMOS-Transistoren M3,
M5 und M6 und ein PMOS-Transistor M2 eingeschaltet werden. Als ein
Ergebnis dieser Initialisierung wird ein Knoten ND1 des Latch LAT „gesetzt" (d.h. eine Spannung
wird eingestellt, die einen Logikwert „1" anzeigt) und ein Knoten ND2 des Latch
LAT wird „zurückgesetzt" (d.h. eine Spannung
wird eingestellt, welche einen Logikwert „0" anzeigt).
-
Danach
wird ein Lesestrom an eine Bitleitung BL geliefert, während die
erste Spannung V1 an die ausgewählte
Seite oder Wortlei tung angelegt wird. Wenn eine Speicherzelle einen
gelöschten
Zustand aufweist (d.h. ihre Schwellspannung ist niedriger als die
erste Spannung V1, wie durch Bereich „C" in 5 angezeigt),
fällt die
Spannung an der Bitleitung BL auf Masse ab. Wenn dagegen die Speicherzelle einen
nicht gelöschten
Zustand aufweist (d.h. ihre Schwellspannung ist größer als
die erste Spannung V1, wie durch Bereiche „A" und „B" in 5 angezeigt),
steigt die Spannung an der Bitleitung BL bis auf die Leistungsversorgungsspannung.
Die Spannung an der Bitleitung BL, welche den Programmierzustand
der Speicherzelle anzeigt, wird über
Signalpfade 2 und 3 in dem Latch LAT gespeichert.
Beispielsweise ist in dem erstgenannten Fall der Signalpfad 3 nicht
vollständig,
da der NMOS-Transistor M5 ausgeschaltet ist. Unter diesen Umständen behalten die
Knoten ND1 und ND2 ihre anfänglichen
Zustände bei
(d.h. ND1 ist „hoch", und ND2 ist „niedrig"). Im letzteren Fall
ist Signalpfad 3 vollständig,
da der NMOS-Transistor
M5 eingeschaltet ist. Unter diesen Umständen sind die Spannungszustände, welche
an den Knoten ND1 und ND2 auftreten, als niedrig bzw. hoch definiert.
-
Unter
Bezugnahme auf 4 und 5 werden
anschließend
Daten aus den Speicherzellen der ausgewählten Seite gelesen, während eine
zweite Spannung V2 an die ausgewählte
Seite angelegt wird (S120). Dieser Schritt wird als die „zweite
Leseoperation" bezeichnet.
-
Wenn
die zweite Leseoperation beginnt, wird der Lesestrom an die Bitleitung
BL angelegt, wobei zugleich die zweite Spannung V2 – die größer ist
als die erste Spannung V1 – an
die ausgewählte
Seite oder Wortleitung angelegt wird. Dabei ist die zweite Spannung
V2, obwohl größer als
die erste Spannung V1, kleiner oder gleich einer definierten Programmierprüfspannung
V3. In den dargestellten Ausgestaltungen sei angenommen, dass die
zweite Spannung V2 größer als
die erste Spannung V1 aber niedriger als die Programmierprüfspannung
V3 ist. Die Spannungsdifferenz zwischen der zweiten Spannung V2
und der Programmierprüfspannung
V3 wird in Anbetracht der gewünschten
Haltecharakteristiken oder Halteeigenschaften derjenigen Speicherzellen
variieren, welche das erste Speicherfeld 110 bilden.
-
Wenn
eine Speicherzelle eine Schwellspannung aufweist, die niedriger
als die zweite Spannung V2 ist, wird die Spannung auf die Bitleitung
BL niedriger als Masse. In einem solchen Fall ist die Speicherzellen
in einem gelöschtem
Zustand (Bereich „C" in 5)
oder sie besitzt eine Schwellspannung zwischen den ersten und zweiten
Spannungen V1 und V2 (Bereich „A" in 5).
Unter diesen Umständen wird
die Spannung auf der Bitleitung BL (d.h. die Spannung, welche einen
Programmierzustand für
die Speicherzelle anzeigt) über
Signalpfade 4 und 5 in dem Latch LAT gespeichert.
Beispielsweise ist in dem erstgenannten Fall der Signalpfad 5 nicht
vollständig,
da der NMOS-Transistor M5 ausgeschaltet ist. Daher verbleiben für eine Speicherzelle
mit einer Spannungsverteilung im Bereich „A" in 5 die Knoten
ND1 und ND2 in einem Zustand, der durch die erste Leseoperation
erzeugt wurde (d.h. ND1 ist niedrig und ND2 ist hoch). Jedoch wird
für eine
Speicherzelle mit einer Spannungsverteilung, die größer als
die zweite Spannung V2 ist (d.h. innerhalb Bereich „B" in 5),
die Spannung auf der Bitleitung BL auf den Pegel der Leistungsversorgungsspannung
steigen. Dagegen ist der Signalpfad 5 vollständig, wenn
der NMOS-Transistor M5 eingeschaltet ist. Somit werden die Knoten
ND1 und ND2 auf ihren Anfangszustand gesetzt (d.h. ND1 ist hoch
und ND2 ist niedrig).
-
Nach
den ersten und zweiten Leseoperationen kann eine Speicherzelle mit
einer Spannungsverteilung im Bereich „A" in 5 erkannt
werden. Solch eine erkannte Speicherzelle kann anschließend durch
die Steuereinheit 500 in Übereinstimmung mit Daten aufgefrischt
werden, die in dem Spaltenpuffer PB gespeichert sind (S130). Während der
Auffrischungsoperation kann die Bitleitung BL über Signalpfad 5 in Übereinstimmung
mit Daten, die in dem Latch LAT gespeichert sind, auf Masse- oder auf
Leistungsversorgungsspannung geladen werden. Wie dem Fachmann bekannt
ist, kann die Speicherzelle programmiert werden, wenn die Bitleitung BL
auf Masse gesetzt ist, während
eine solche Programmierung ausgeschlossen sein kann, wenn die Bitleitung
BL auf Leistungsversorgungsspannung gesetzt ist. Somit wird in 6 nur
eine Speicherzelle programmiert, die mit dem Seitenpuffer PB verbunden
ist, wo der Knoten ND1 auf logisch „0" gesetzt ist. Die Auffrischungsoperation
kann mittels eines Copyback-Programmiermodus oder eines Wiederprogrammiermodus
durchgeführt
werden. In dem Copyback-Programmiermodus werden gelesene Daten in einer
Speicherzelle einer anderen Seite programmiert. In dem Wiederprogrammiermodus
werden gelesene Daten in einer Speicherzelle einer ausgewählten Seite
erneut programmiert.
-
Wie
aus der obigen Erläuterung
ersichtlich, ist ein Flashspeicherelement gemäß einer Ausgestaltung der Erfindung
in der Lage, eine Speicherzelle zu erkennen, die eine fehlerhafte
Spannungsverteilung aufweist, indem nur ein einziges Latch verwendet wird.
Dieses einzelne Latch ermöglicht
eine Auffrischungsoperation, die auf die erkannte Speicherzelle gerichtet
ist.
-
7 ist
ein Blockdiagramm eines Speichersystems mit dem Flashspeicherelement
gemäß einer Ausgestaltung
der Erfindung.
-
Bezugnehmend
auf 7 umfasst das Speichersystem das Flashspeicherelement 1000 und eine
Speichersteuereinheit 2000. Das Flashspeicherelement 1000 kann,
was Struktur und Betrieb anbetrifft, im Wesentlichen mit dem in 2 gezeigten Element
identisch sein und wird deshalb nicht weiter detailliert beschrieben.
Die Steuereinheit 2000 kann dazu ausgebildet sein, Auffrischungsdaten
zu lesen, die in einem Auffrischungsdatenspeicherfeld 130 des Flashspeicherelements 1000 gespeichert
sind, und einen Auffrischungsbefehl in Bezug auf die gele senen Auffrischungsdaten
zu erzeugen. In einer Ausgestaltung kann das Auffrischungsdatenspeicherfeld 130 in
dem zweiten Speicherfeld 120 gemäß 2 enthalten
sein. Somit können
die Auffrischungsdaten Zeitablaufinformationen enthalten, die sich
auf die Programmierung der vorhandenen Speicherblöcke beziehen.
-
Alternativ
kann die Speichersteuereinheit 2000 dazu ausgebildet sein,
Programmier-/Löschzyklen
in Abhängigkeit
von einem empirisch definierten „Abnutzungsgrad"-Indikator zu steuern.
In diesem Zusammenhang repräsentieren
die Programmier-/Löschzyklen
die Anzahl von Programmier-/Löschzeiten
für jeden
Speicherblock. Wie der Fachmann weiß, können die Informationen zum
Anzeigen der Programmier/Löschzyklen
in dem Speicherzellenfeld 100 des Flashspeicherelements 1000 gespeichert
sein. Die Verwendung eines Abnutzungsgrad-Indikators vermeidet,
dass Programmier-/Löschoperationen
sich auf mehrere Speicherblöcke
konzentrieren (d.h. wiederholt auf diese Speicherblöcke gerichtet
sind). Somit erlaubt eine Bezugnahme auf den Abnutzungsgrad-Indikator
ein gleichförmiges
Ausführen
von Programmier-/Löschoperationen über alle
verfügbaren
Speicherblöcke. Aus
diesem Grund können
einige Ausgestaltungen der Erfindung anstelle eines Definierens
der Operationen der Speichersteuereinheit 2000 in Bezug
auf einen Auffrischungsbefehl, der aus Zeitablaufinformationen erzeugt
wird, die Operationen der Speichersteuereinheit 2000 definieren,
indem der Auffrischungsbefehl unter Bezugnahme auf zusätzliche
Informationen erzeugt wird, welche die Programmier-/Löschzyklen
betreffen und die beispielsweise einen Abnutzungsgrad-Indikator
umfassen.
-
8 ist
ein Flussdiagramm, das einen Betrieb zusammenfasst, der einen Auffrischungsbefehl für ein Flashspeichersystem
gemäß einer
Ausgestaltung der vorliegenden Erfindung erzeugt.
-
Zunächst liest
die Speichersteuereinheit 2000 Auffrischungsdaten (z.B.
Zeitablaufinformationen, die in dem zweiten Speicherfeld 120 gespeichert sind,
welches potentiell ein definiertes Auffrischungsdatenspeicherfeld 130 enthält) für das Flashspeicherelement 1000 (S200).
Die Speichersteuereinheit 2000 vergleicht dann Timingdaten,
die den Auffrischungsdaten zugeordnet sind, mit einer gegenwärtigen Zeit
(S210). Die gelesenen Auffrischungsdaten können Informationen betreffend
einzelner Speicherblöcke
oder Speicherseiten enthalten. Die Speichersteuereinheit 2000 bestimmt
anschließend,
ob die Differenz zwischen der Zeitablaufinformation betreffend die
Auffrischungsdaten und einer gegenwärtigen Zeitanzeige größer als
ein Referenzwert ist (S220). Hierbei kann der Referenzwert eingestellt sein,
um einen geeigneten Auffrischungszeitablauf für das Flashspeicherelement 1000 sicherzustellen.
-
Wenn
die Zeitdifferenz geringer als der Referenzwert ist, endet das Verfahren.
Wenn dagegen die Differenz größer als
der Referenzwert ist, erzeugt die Speichersteuereinheit 2000 einen
Auffrischungsbefehl (CMD) an das Flashspeicherelement 1000 (S230).
Der Auffrischungsbefehl kann Informationen betreffend den aufzufrischenden
Speicherblock oder die aufzufrischende Speicherseite enthalten.
Das Flashspeicherelement 1000 führt dann die empfangene Auffrischungsoperation
aus (S240).
-
Wie
oben angegeben, kann die Auffrischungsoperation entweder in dem
Copyback-Programmiermodus oder dem Wiederprogrammiermodus ausgeführt werden.
In dem Copyback-Programmiermodus
gibt die Speichersteuereinheit 2000 in Schritt S230 Informationen über Ziel-
und Bestimmungsadressen zusammen mit dem Auffrischungsbefehl an
das Flashspeicherelement 1000 aus. In dem Wiederprogrammiermodus
gibt die Speichersteuereinheit 2000 im Schritt S230 den
Auffrischungsbefehl zusammen mit Zieladressinforma tionen (oder Start-
und Endadressinformationen zum sequentiellen Auswählen mehrerer
Seiten) an das Flashspeicherelement 1000 aus.
-
In
beispielhaften Ausgestaltungen der vorliegenden Erfindung kann die
in 8 gezeigten Operation zum Einschaltzeitpunkt ausgeführt werden.
In diesem Fall ist es erforderlich, dass eine Referenzzeit mit der
Zeit der von dem Flashspeicherelement 1000 gelieferten
Auffrischungsdaten verglichen wird. Eine derartige Referenzzeit
kann von dem Flashspeicherelement 1000 bereitgestellt werden.
Beispielsweise ist, wie oben beschrieben, die Steuereinheit 500 des Flashspeicherelements 1000 in
der Lage, Daten einer Einschaltzeit in dem Speicherzellenfeld 100 zu speichern.
Die Einschaltzeitdaten werden als eine Referenzzeit zum Einschaltzeitpunkt
an die Speichersteuereinheit 2000 geliefert. Die Speichersteuereinheit 2000 erzeugt
den Auffrischungsbefehl durch Vergleichen der Zeit der Auffrischungsdaten
mit der Referenzzeit.
-
9 ist
ein Flussdiagramm, das ein anderes Auffrischungsverfahren für ein Flashspeicherelement
gemäß einer
Ausgestaltung der vorliegenden Erfindung zusammenfasst.
-
Anders
als das in 8 gezeigte Verfahren kann dieses
Auffrischungsverfahren beim Einschalten automatisch ausgeführt werden.
Die Auffrischungsoperation beim Einschalten wird in einer Weise
ausgeführt,
bei der Seiten des Speicherzellenfelds 100 abgetastet oder
gescannt werden.
-
Wenn
das Flashspeicherelement
1000 mit Energie versorgt wird
(S300), liest die Seitenpufferschaltung
300 eine Auffrischungsadresse
von dem Speicherzellenfeld
100 und liefert diese durch
den Spaltenauswähler
400 an
die Steuereinheit
500. Hierbei kann die Auffrischungsadresse
in dem zweiten Speicherfeld
120 (d.h. dem Auffri schungsdatenspeicherfeld)
gespeichert werden. Die Auffrischungsadresse kann auch in dem ersten
Speicherfeld
110 gespeichert werden. Anderenfalls kann,
obwohl nicht dargestellt, ein Speicherfeld mit nichtflüchtigen
Eigenschaften für
das Flashspeicherelement
1000 bereitgestellt werden und
die Auffrischungsadresse kann in einem solchen nichtflüchtigen
Speicherfeld gespeichert werden. Ein Beispiel einer möglichen Einschaltleseoperation
ist in der
US-Patentschrift 6,058,048 offenbart,
deren Gegenstand hiermit durch Bezugnahme in die vorliegende Beschreibung
aufgenommen wird.
-
Anschließend bestimmt
die Steuereinheit 500, ob ein Interrupt aufgetreten ist
(S320). Wenn ein Interrupt aufgetreten ist (z.B. liegt eine Anforderung für eine Lese-,
Programmier- oder Löschoperation von
der Speichersteuereinheit vor), steuert die Steuereinheit 500 den
Zeilenauswähler 200,
den Spaltenauswähler 400 und
die Seitenpufferschaltung 300, um die Auffrischungsadresse
in dem Speicherzellenfeld 100 zu speichern (S330). Anschließend ist
das Verfahren beendet.
-
Wenn
dagegen die Steuereinheit 500 feststellt, dass kein Interrupt
aufgetreten ist, wird eine Seite, welche der gelesenen Auffrischungsadresse entspricht,
durch die Steuereinheit 500 ausgewählt. Anschließend wird
die Auffrischungsoperation für Speicherzellen
der ausgewählten
Seite (z.B. eine erste Seite des Speicherzellenfelds 100)
ausgeführt (S340).
Diese Auffrischungsoperation ist im Wesentlichen dieselbe, wie unter
Bezugnahme auf 4 beschrieben, sodass sie hier
nicht detailliert dargestellt wird. Nach Abschluss der Auffrischungsoperation
für die
ausgewählte
Seite bestimmt die Steuereinheit 500, ob die Auffrischungsadresse
der ausgewählten Seite
eine „letzte
Seite"-Adresse ist (d.h.
eine Adresse, die eine letzte Seite des Speicherzellenfelds 100 anzeigt)
(S350). Ist dies der Fall, so ist das Verfahren beendet. Anderenfalls
inkrementiert die Steuereinheit 500 die Auffrischungsadresse
und kehrt nach Schritt S320 zurück.
-
Wie
aus der vorstehenden Beschreibung ersichtlich ist, kann ein Flashspeicherelement
gemäß einer
Ausgestaltung der Erfindung dazu ausgebildet sein, sequentiell Seiten
des Speicherzellenfelds 100 auszuwählen und eine Auffrischungsoperation
für die ausgewählte Seite
auszuführen.
Wenn während
der Auffrischungsoperation ein Interrupt auftritt, kann die Auffrischungsadresse
der ausgewählten
Seite durch die Steuereinheit 500 in dem Speicherzellenfeld 100 gespeichert
werden. Die gespeicherte Auffrischungsadresse kann als eine Startadresse
für die
Auffrischungsoperation beim nächsten
Einschalten verwendet werden.
-
10 ist
ein allgemeines Blockdiagramm eines Computersystems oder eines Rechnersystems,
welches das Flashspeicherelement gemäß einer Ausgestaltung der vorliegenden
Erfindung aufweist. Das Rechnersystem kann derart organisiert sein,
dass es eine Prozessoreinheit 3000, wie ein Mikroprozessor
oder eine zentrale Prozessoreinheit (central processing unit – CPU),
eine Nutzerschnittstelle 4000, ein Modem 5000,
wie einen Basisband-Chipsatz, eine Speichersteuereinheit 2000 und ein
Flashspeicherelement 1000, aufweist.
-
Das
Flashspeicherelement 1000 und die Speichersteuereinheit 2000 können konfiguriert
sein, wie oben beschrieben. Das bedeutet, dass das Flashspeicherelement 1000 in
Verbindung mit der Speichersteuereinheit 2000 verwendet
werden kann, um N-Bit-Daten zu speichern, die durch die Prozessoreinheit 3000 verarbeitet
werden, verarbeitet wurden oder verarbeitet werden sollen, wobei
N eine positive ganze Zahl ist. Wenn das Rechnersystem gemäß 10 eine
mobile Vorrichtung ist, kann es weiterhin eine Batterie 6000 zur
Leistungsversorgung aufweisen.
-
Wie
oben beschrieben, ist es bei einem Flashspeicherelement gemäß einer
Ausgestaltung der Erfindung möglich,
eine Speicherzelle mit einer fehlerhaften Spannungsverteilung aufgrund
von Ladungsverlusten zu erkennen, indem ein Seitenpuffer verwendet
wird, bei dem ein einzelnes Latch zum Einsatz kommt. Es ist außerdem möglich, eine
Auffrischungsoperation durchzuführen,
welche eine solche Speicherzelle erkennt, indem der Seitenpuffer mit
einem einzigen Latch verwendet wird. Weiterhin ermöglicht die
Wiederprogrammierung der Speicherzelle durch eine Auffrischungsoperation
die Verbesserung der Gesamtzuverlässigkeit des Flashspeicherelements.