-
Die
Erfindung betrifft ein integriertes Schaltungsbauelement, insbesondere
ein integriertes Schaltungsspeicherbauelement, und ein Betriebsverfahren
für ein
integriertes Schaltungsspeicherbauelement.
-
Fehlerdetektions-
und Fehlerbeseitigungsvorgänge
(EDC-Vorgänge)
innerhalb von integrierten Schaltungsbauelementen ermöglichen
es, gestörte Daten
zu erkennen und eventuell zu korrigieren, die beispielsweise über Datenverbindungen,
wie Busse, übertragen
und in Speicherelementen gespeichert werden. Diese EDC-Vorgänge können herkömmliche Fehlererkennungs-
und Fehlerbeseitigungsalgorithmen verwenden, einschließlich Read-Solomon-Codes
(RC-Codes), Hamming-Codes, Bose-Chaudhuri-Hocquengem-Codes (BCH-Codes)
und zyklische Redundanzüberprüfungscodes
(CRC-Codes), um eine begrenzte Anzahl von Fehlern, z.B. weiche Fehler,
zu erkennen und eventuell zu korrigieren. Um EDC-Vorgänge in nichtflüchtigen
Speicherbauelementen zu unterstützen,
werden Schreibdaten, die überprüft und falls
erforderlich korrigiert werden sollen, häufig mit korrespondierenden
Prüfbits
gespeichert, z.B. ECC-Prüfbits,
welche eine Durchführung von
EDC-Vorgängen
mit den Schreibdaten erlauben. Ein typischer EDC-Vorgang, welcher
in Flashspeicherbauelementen durchgeführt wird, ist in der Patentschrift
US 6.651.212 offenbart.
-
Leider
weisen viele dieser herkömmlichen Algorithmen
nur die Fähigkeit
auf, relativ wenige Fehler, z.B. 1 Bit oder 2 Bit, zu erkennen und
möglicherweise
noch weniger Fehler zu korrigieren, z.B. eine Korrektur von 1 Bit.
Daher sind viele dieser herkömmlichen
Algorithmen nicht für
Umgebungen geeignet, in welchen eine große Anzahl von Fehlern während einer
Datenübertragung
oder einer Datenspeicherung auftreten können. Eine Speichertechnologie,
die für
eine große
Anzahl von Fehlern anfällig
ist, ist die nichtflüchtige
Speichertechnologie. Eine nichtflüchtige Speichertechnologie
mit niedrigem Energieverbrauch, wie ein Flashspeicher, z.B. ein
NAND- oder NOR-Flashspeicher, ist beispielsweise gegen das Auftreten
von Energieversorgungsausfällen
anfällig, wenn
große
Datenmengen in eine Seite nichtflüchtiger Speicherzellen geschrieben
werden, z.B. in 4K nichtflüchtiger
Speicherzellen. Entsprechend kann es nach Wiederherstellung der
Energieversorgung erforderlich sein, eine Anwesenheit von Fehlern
in Seitendaten mit EDC-Techniken zu identifizieren, welche rechentechnisch
nicht zu aufwändig
sind und nicht zusammenbrechen, wenn mehr als eine begrenzte Anzahl
von Fehlern aufgetreten sind.
-
Es
ist Aufgabe der Erfindung, ein integriertes Schaltungsbauelement
und ein Betriebsverfahren hierfür
anzugeben, welche rechentechnisch günstig sind und mehrere Fehler
erkennen und korrigieren können.
-
Die
Erfindung löst
diese Aufgabe durch ein integriertes Schaltungsbauelement mit den
Merkmalen des Patentanspruchs 1 oder 10 und durch ein Betriebsverfahren
mit den Merkmalen des Patentanspruchs 15 oder 16.
-
Vorteilhafte
Weiterbildungen der Erfindung sind in den abhängigen Ansprüchen angegeben.
-
Integrierte
Schaltungsbauelemente, die Fehlerdetektionsvorgänge gemäß Ausführungsformen der Erfindung
unterstützen,
umfassen ein nichtflüchtiges
Speicherbauelement mit einem Speicherfeld, welches eine Mehrzahl
von Seiten nichtflüchtiger Speicherzellen
umfasst. Das Speicherbauelement kann als Flashspeicherbauelement
ausgeführt
sein. Es können
jedoch auch andere Speicherbauelementtypen verwendet werden, wie
z.B. MROM-Bauelemente, PROM-Bauelemente, FRAM-Bauelemente und ähnliche Bauelemente.
-
Vorteilhafte
Ausführungsformen
der Erfindung sind in den Zeichnungen dargestellt und werden nachfolgend
beschrieben. Es zeigen:
-
1 ein
Blockdiagramm eines integrierten Schaltungsspeicherbauelements,
-
2 ein
detailliertes Blockdiagramm einer Versorgungsausfallbeurteilungsschaltung
und einer Datenpfadauswahlschaltung für das Bauelement von 1,
-
3 ein
Blockdiagramm eines Prüfsummendatengenerators
für die
Versorgungsausfallbeurteilungsschaltung von 2,
-
4A ein
Diagramm zur Darstellung eines Vorgangs zur Erzeugung von Prüfungssummendaten,
der vom Prüfsummendatengenerator
gemäß 3 durchführbar ist,
-
4B ein
Diagramm zur Darstellung des Auftretens eines einen Datenfehler
verursachenden Energieversorgungsausfalls, wenn Schreibvorgänge im Speicherbauelement
gemäß 1 ausgeführt werden,
-
4C ein
Diagramm zur Darstellung zusätzlicher
Vorgänge
zur Erzeugung von Prüfsummendaten,
die vom Prüfsummendatengenerator
gemäß 3 durchführbar sind,
-
5 ein
Flussdiagramm von Schreib- und Lesevorgängen, die vom Speicherbauelement
gemäß 1 durchführbar sind,
-
6A ein
Zeitablaufdiagramm von Schreibvorgängen im Speicherbauelement
gemäß 1,
-
6B ein
Zeitablaufdiagramm von Lesevorgängen
im Speicherbauelement gemäß 1,
-
7 ein
Blockdiagramm eines integrierten Mehrchip-Schaltungsspeicherbauelements
und
-
8 ein
Blockdiagramm eines weiteren integrierten Mehrchip-Schaltungsspeicherbauelements.
-
In
den Zeichnungen bezeichnen gleiche Bezugszeichen Elemente bzw. Komponenten,
welche gleiche bzw. analoge Funktionen ausführen. Angegebene Signale können synchronisiert
sein und/oder einfachen booleschen Verknüpfungen, z.B. einer Invertierung,
unterzogen werden, ohne zwingend als verschiedene Signale bezeichnet
zu werden. So bezeichnet z.B. der Zusatz „B" oder das Symbol „/" bei Signalen ein komplementäres Daten-
oder Informationssignal oder ein Steuersignal mit einem niedrigen aktiven
Signalpegel.
-
1 zeigt
ein integriertes Schaltungsspeicherbauelement 100 z.B.
vom Typ eines nichtflüchtigen
Speicherbauelements, wie eines NAND-Flashspeicherbauelements. Andere
Typen von Speicherbauelementen repräsentieren alternative Ausführungsformen
der Erfindung. Entsprechende Speicherbauelemente umfassen MROM-Bauelemente,
PROM-Bauelemente, FRAM-Bauelemente und NOR-Flashspeicherbauelemente.
Wie aus 1 ersichtlich ist, umfasst das
Speicherbauelement 100 ein Speicherfeld 110, welches
aus einer Mehrzahl von Zeilen und Spalten nichtflüchtiger Speicherzellen
aufgebaut ist. Jede Zeile des Speicherfelds 110 kann als
eine Seite von Speicherzellen aufgefasst werden, und eine typische
Seitenbreite kann beispielsweise bis zu 4K Bit, z.B. 4096 Speicherzellen,
oder mehr aufweisen. Beispielhaft sei angenommen, dass jede Zeile
des Speicherfelds 110 eine Seitenbreite von 528 Byte aufweist,
und zwar 526 Hauptdatenbytes und 2 Ersatzdatenbytes, wobei jedes
Byte 8 Datenbits umfasst. Speicherfelder mit anderen Seitenbreiten
können
in alternativen Ausführungsformen
der Erfindung realisiert sein. Des Weiteren kann die Zuweisung von
Hauptdatenbytes und Ersatzdatenbytes innerhalb einer Seite je nach Applikation
variieren. So kann beispielsweise eine größere Anzahl von Ersatzdatenbytes
für den
Fall erforderlich sein, dass Fehlerdetektions- und Fehlerbeseitigungsbits
(EDC-Bits) oder andere Diagnosebits in jeder Datenseite gespeichert
werden sollen.
-
Während eines
Schreib- oder Lesevorgangs kann eine Zeile von Speicherzellen im
Speicherfeld 110 durch eine Zeilenauswahlschaltung 120 (z.B.
in Form eines a/k/a-Zeilendecoders) ausgewählt werden, welche auf eine
Zeilenadresse reagiert, die von einer Steuerlogikschaltung 130 erzeugt
wird. Das Speicherfeld 110 ist elektrisch, z.B. über Bitleitungen, mit
einer Seitenregister- und Abtastverstärkerschaltung 140 gekoppelt,
die auf Steuersignale reagiert, welche von der Steuerlogikschaltung 130 erzeugt werden.
Die Seitenregister- und Abtastverstärkerschaltung 140 kann
eine Breite aufweisen, die der Seitenbreite des Speicherfelds 110 entspricht.
Während
Schreibvorgängen,
z.B. Programmiervorgängen,
treibt die Seitenregister- und Abtastverstärkerschaltung 140 innerhalb
des Speicherfelds 110 Spalten mit eingehenden Daten. Während eines
Lesevorgangs detektiert und verstärkt die Seitenregister- und Abtastverstärkerschaltung 140 Daten,
die von Spalten innerhalb des Speicherfelds 110 empfangen
werden.
-
Die
Seitenregister- und Abtastverstärkerschaltung 140 ist
elektrisch mit einer Spaltenauswahlschaltung 150 gekoppelt,
die auf eine Spaltenadresse reagiert. Die Spaltenauswahlschaltung 150 ist elektrisch
mit einer Datenpfadauswahlschaltung 160 gekoppelt. Während Schreibvorgängen arbeitet
die Spaltenauswahlschaltung 150, um Schreibdaten von der
Datenpfadauswahlschaltung 160 zu Segmenten innerhalb der
Seitenregister- und Abtastverstärkerschaltung 140 zu übertragen.
Während
Lesevorgängen
arbeitet die Spaltenauswahlschaltung 150, um Lesedaten
von Segmenten innerhalb der Seitenregister- und Abtastverstärkerschaltung 140 zur
Datenpfadauswahlschaltung 160 zu übertragen. Für den Fall,
dass die Spaltenauswahlschaltung 150 ausgeführt ist,
um 8 Bit, z.B. ein Byte, während
einer einzelnen Taktperiode zur Seitenregister- und Abtastverstärkerschaltung 140 zu übertragen,
und die Seitenregister- und Abtastverstärkerschaltung 140 4224 Datenbits
unterstützt
(4224 Bit = 526·8
Hauptbits + 2·8
Ersatzbits), kann die Spaltenadresse während eines Seitenschreibvorgangs,
der sich über
528 aufeinander folgende Taktzyklen erstreckt, 528 aufeinander folgende
Adressen durchlaufen.
-
Die
Datenpfadauswahlschaltung 160 ist elektrisch mit der Spaltenauswahlschaltung 150,
einem Eingabe-/Ausgabepuffer 170 und einer Energieversorgungsausfallbeurteilungsschaltung 180 gekoppelt.
Die Datenpfadauswahlschaltung 160, welche in einem Lese-/Schreibdatenpfad
des Speicherbauelements 100 angeordnet ist, reagiert zusätzlich auf
Steuersignale, die von der Steuerlogikschaltung 130 erzeugt
werden. In Ausgestaltung der Erfindung können das Speicherfeld 110,
die Seitenregister- und Abtastverstärkerschaltung 140 und
die Spaltenauswahlschaltung 150 auf einem ersten Halbleitersubstrat
angeordnet sein, gemeinsam mit einem passenden Eingabe-/Ausgabepuffer,
und die Datenpfadauswahlschaltung 160, die Energieversorgungsausfallbeurteilungsschaltung 180,
die Steuerlogikschaltung 130 und der Eingabe-/Ausgabepuffer 170 können auf
einem zweiten Halbleitersubstrat angeordnet sein.
-
Wie
aus 2 ersichtlich ist, reagiert die dort in einer
vorteilhaften schaltungstechnischen Realisierung gezeigte Datenpfadauswahlschaltung
160 zum einen auf ein Lese-/Schreibsteuersignal READ, das von der
Steuerlogikschaltung 130 erzeugt wird, und zum anderen
auf ein Flagsignal FLAG, das von der Energieversorgungsausfallbeurteilungsschaltung 180 erzeugt
wird. Das Lese-/Schreibsteuersignal READ kann auf einen ersten logischen
Pegel, z.B. eine logische „1 ", gesetzt werden,
um einen Lesevorgang zu kennzeichnen, und auf einen zweiten logischen
Pegel, z.B. eine logische „0" gesetzt werden, um
einen Schreibvorgang zu kennzeichnen. Das Flagsignal FLAG wird von
einer Steuerschaltung 183 innerhalb der Energieversorgungsausfallbeurteilungsschaltung 180 erzeugt.
Wie nachfolgend ausführlicher
beschrieben wird, kann das Flagsignal FLAG auf einen aktiven Pegel
geschaltet werden, um die Erzeugung von Prüfsummendaten zu bewirken.
-
Die
dargestellte Datenpfadauswahlschaltung 160 umfasst einen
ersten Schalter 161 und einen zweiten Schalter 162,
die auf das Lese-/Schreibsteuersignal
READ reagieren. Der erste Schalter 161 wird freigegeben,
wenn das Lese-/Schreibsteuersignal READ auf einen Pegel gesetzt
ist, der einen Schreibvorgang repräsentiert, und der zweite Schalter 162 wird
freigegeben, wenn das Lese-/Schreibsteuersignal READ auf einen Pegel
gesetzt ist, der einen Lesevorgang repräsentiert. Wird der erste Schalter 161 während eines
Schreibvorgangs freigege ben, dann überträgt er Schreibdaten vom Eingabe-/Ausgabepuffer 170 über einen
ersten Datenbus DB1 zur Spaltenauswahlschaltung 150 und
der zweite Schalter 162 ist gesperrt. Zudem ist der erste
Datenbus DB1 mit einer Eingabe eines Prüfsummendatengenerators 181 gekoppelt.
Im Gegensatz dazu überträgt der zweite
Schalter 162 während
eines Lesevorgangs Lesedaten über
einen zweiten Datenbus DB2 von der Spaltenauswahlschaltung 150 zum
Eingabe-/Ausgabepuffer 170 und der erste Schalter 161 ist
gesperrt. Zudem ist der zweite Datenbus DB2 mit einem Eingang eines
zweiten Registers 184b in einem Registersatz 184 gekoppelt.
Des Weiteren kann der erste Schalter 161 während eines
Schreibvorgangs auf ein aktives Flagsignal FLAG reagieren und weitere Schreibdaten,
z.B. Prüfsummendaten, über den
ersten Datenbus DB1 von einem Schalter 182 in der Energieversorgungsausfallbeurteilungsschaltung 180,
von der in 2 ebenfalls eine vorteilhafte schaltungstechnische
Realisierung gezeigt ist, zur Spaltenauswahlschaltung 150 übertragen.
Wie nachfolgend ausführlicher
beschrieben wird, können
diese zusätzlichen
Schreibdaten gegen Ende eines Schreibvorgangs zur Spaltenauswahlschaltung 150 übertragen
werden, wie aus 6A ersichtlich ist, z.B. während der
letzten zwei Perioden eines Schreibvorgangs über 528 Perioden.
-
Das
Speicherfeld 110, die Zeilenauswahlschaltung 120,
die Seitenregister- und Abtastverstärkerschaltung 140 und
die Spaltenauswahlschaltung 150 können z.B. in einem ersten integrierten
Schaltungschip und die Steuerlogikschaltung 130, die Energieversorgungsausfallbeurteilungsschaltung 180 und
die Datenpfadauswahlschaltung 160 können im gleichen ersten integrierten
Schaltungschip oder einem anderen, zweiten integrierten Schaltungschip angeordnet
sein. Die Steuerlogikschaltung 130, die Energieversorgungsausfallbeurteilungsschaltung 180 und
die Datenpfadauswahlschaltung 160 können auch gemeinsam als Eingabe-/Ausgabesteuerschaltung
behandelt werden, welche Prüfsummen erzeugungs-
und Energieversorgungsausfalldetektionsvorgänge ausführt, wie sie nachfolgend beschrieben werden.
-
Die
Energieversorgungsausfallbeurteilungsschaltung 180 ist
gemäß 2 so
ausgeführt,
dass sie ein Auftreten eines Energieversorgungsausfalls während eines
Vorgangs detektiert, bei dem Daten in das Speicherfeld 110 geschrieben
werden. Damit kann erkannt werden, wenn defekte Schreibdaten und
möglicherweise
defekte Prüfsummendaten
aus dem Speicherfeld 110 gelesen und von der Energieversorgungsausfallbeurteilungsschaltung 180 auf
Fehler überprüft werden.
Während
eines Schreibvorgangs verarbeitet der Prüfsummendatengenerator 181 sequentiell
jedes Byte der eingehenden Schreibdaten, die auf dem ersten Datenbus
DB1 bereitgestellt werden. Wie nachfolgend unter Bezugnahme auf 6A ausführlicher
beschrieben wird, kann der Prüfsummendatengenerator 181 z.B.
sequentiell 526 Byte (8 Bit je Byte) an Schreibdaten während jedes
Vorgangs zum Schreiben einer Datenseite in das Speicherfeld 110 verarbeiten.
-
In
Reaktion auf diese sequentielle Verarbeitung erzeugt der Prüfsummendatengenerator 181 einen
berechneten Prüfsummendatenwert
CSD, welcher am Schalter 182 bereitgestellt wird. Der Schalter 182 reagiert
auf das Flagsignal FLAG, das von der Steuerschaltung 183 erzeugt
wird, und auf das Lese-/Schreibsteuersignal READ. Wird das Lese/Schreibsteuersignal
READ auf einen Wert gesetzt, der einen Schreibvorgang repräsentiert,
dann leitet der Schalter 182 nach Empfang des aktiven Flagsignals
FLAG die berechneten Prüfsummendaten
CSD vom Prüfsummendatengenerator 181 zum Eingang
des Schalters 161. Der Schalter 161 leitet die
Prüfsummendaten
CSD über
den ersten Datenbus DB1 zur Spaltenauswahlschaltung 150.
Alternativ leitet der Schalter 162 die neu berechneten
Prüfsummendaten
CSD zu einem ersten Register 184a im Registersatz 184,
wenn das Lese-/Schreibsteuersignal READ auf einen Wert gesetzt ist,
der einen Lesevorgang repräsentiert.
-
Zudem
wird das zweite Register 184b während eines Lesevorgangs mit
Prüfsummendaten
geladen, die vom zweiten Datenbus DB2 bereitgestellt werden. Diese
Prüfsummendaten
vom zweiten Datenbus DB2 werden während eines Vorgangs zum Lesen
einer Datenseite des Speicherfelds 110 von der Spaltenauswahlschaltung 150 empfangen.
Das erste und zweite Register 184a und 184b sind
mit ansteigenden Flanken eines Zwischenspeichersignals CSD_LAT synchronisiert,
das von der Steuerschaltung 183 nach einer vorbestimmten
Anzahl von empfangenen Perioden des Taktsignals CLK erzeugt wird.
-
Wie
aus den 3 und 4A ersichtlich ist,
kann der Prüfsummendatengenerator 181 so ausgeführt sein,
dass er einen Prüfsummendatenwert
CSD aus einem sequentiellen Strom von Datenbytes, z.B. 526 8-Bit-Datenbytes, erzeugt,
der während
Schreib- und Lesevorgängen
vom ersten Datenbus DB1 bereitgestellt wird. Während Schreibvorgängen wird
der erzeugte Prüfsummendatenwert
CSD, z.B. ein 2-Byte-Wert, über
die Schalter 182 und 161 zum ersten Datenbus DB1
geleitet, während
Lesevorgängen
wird er hingegen zum ersten Register 184a im Registersatz 184 geleitet,
um Fehlerdetektionsvorgänge
zu unterstützen,
z.B. um einen oder mehrere Fehler zu detektieren, die von einem
Energieversorgungsausfallereignis während eines vorherigen Schreibvorgangs
verursacht werden. Der Prüfsummendatengenerator 181 umfasst
eine Inverterschaltung 181a, einen Addierer 181b und
ein Akkumulationsregister 181c, welches auf das Taktsignal CLK
reagiert, das von der Steuerlogikschaltung 130 erzeugt
wird. Das Register 181c erzeugt einen Prüfsummenwert,
der zum Addierer 181b zurückgekoppelt wird, so dass Zwischenprüfsummendatenwerte zu
eingehenden aktualisierten Prüfsummendaten
addiert werden können,
welche von jedem Datenbyte erzeugt werden, das vom ersten Datenbus
DB1 empfangen wird.
-
Wie
aus 4A ersichtlich ist, kann ein Prüfsummendatenwert
durch Berechnen eines 1-Komplements eines Datenwerts erzeugt werden,
der mit D(x) bezeichnet ist. Dies kann durch eine Invertierung von
jedem einzelnen Bit des Datenwerts D(x) mit dem Inverter 181a erreicht
werden. Die Anzahl der logischen Werte „1" innerhalb des invertierten Datenwerts
wird dann unter Verwendung des Addierers 181b aufsummiert.
Im Ausführungsbeispiel
gemäß 4A weist
das 1-Komplement des 16-Bit-Datenwerts
D(x) sieben logische Werte „1" auf, wodurch der
Prüfsummendatenwert
CSD in binärer
Form als „00111" repräsentiert
wird. Wie dem Fachmann bekannt, ergibt sich die Länge des
binären
CSD-Wertes gemäß log2N+1, wobei N der Bitanzahl im Datenwert D(x)
entspricht, von welchem der CSD-Wert berechnet wird. Daher entspricht
die Länge
des binären CSD-Wertes
für N=16
dem Wert 5 gemäß log216+1=5. Der Wert von N muss nicht notwendigerweise
mit der Anzahl von Speicherzellen einer Seite korrespondieren, die
während
eines Schreibvorgangs programmiert werden. 4C zeigt
beispielsweise, wie ein Prüfsummendatenwert
bestimmt werden kann, wenn die nichtflüchtigen Speicherzellen in einem
Speicherfeld programmierte Daten von 2 Bit je Zelle unterstützen, d.h.
jede Zelle weist einen unprogrammierten Zustand und drei programmierte
Zustände
auf. In diesem Fall können
acht Speicherzellen 16 Bit an Daten D(x) erzeugen. Ein 1-Komplement
der 16 Bit wird bestimmt und dann wird ein Summiervorgang ausgeführt, um
die Anzahl von logischen Werten „1" im Komplement der Daten D(x) zu identifizieren.
Wie aus 4C ersichtlich ist, entspricht
diese Anzahl im gezeigten Beispiel dem Wert 6 und wird im binären Format
als CSD=000110 angezeigt. Diese Zahl repräsentiert Prüfsummendaten, die in drei Zellen
gespeichert werden können,
wobei jede der Zellen 2 Bit unterstützt.
-
4B zeigt
einen anfänglich
unprogrammierten Zustand von 21 benachbarten Speicherzellen in einem
nichtflüchtigen
Speicherfeld, z.B. einem Flashspeicherfeld. Dieser unprogrammierte
Zustand wird als logische "1" angezeigt. Sechzehn
dieser Speicherzellen sind ausgeführt, um aktuelle Daten zu unterstützen, welche
während
eines Schreibvorgangs vom Speicherbauelement empfangen werden, und
fünf dieser
Speicherzellen sind ausgeführt,
um einen Prüfsummendatenwert
zu unterstützen,
der identifiziert, wie viele der sechzehn Speicherzellen während eines
Schreibvorgangs programmiert werden sollen. Der zu schreibende 16-Bit-Datenwert D(x)
ist mit sieben logischen Werten „0" dargestellt, dies bedeutet, dass sieben
der sechzehn Speicherzellen, welche aktuelle Daten empfangen, während des
Schreibvorgangs programmiert werden sollen. Durch Bestimmung des
1-Komplements des Datenwerts D(x) und Aufsummieren aller logischen
Werte „1" wird ein Prüfsummendatenwert
Z(D(x)) von sieben erzeugt. Dieser Prüfsummendatenwert Z(D(x)) wird
in binärer
Form durch den Wert „00111" repräsentiert.
-
Zudem
zeigt 4B, wie das Auftreten eines Energieversorgungsausfalls
während
des Schreibvorgangs, z.B. eines Programmiervorgangs, eine geringere
Anzahl von logischen Werten „0" verursacht, die
in die sechzehn Speicherzellen geschrieben werden, welche die aktuellen
Daten enthalten, und in die fünf
Speicherzellen geschrieben werden, welche den Prüfsummendatenwert enthalten.
Dieser Energieversorgungsausfall kann durch eine Bestimmung des endgültigen Zustands
der Speicherzellen nach dem Programmiervorgang detektiert werden,
d.h. nach dem Durchführen
eines Seitenschreibvorgangs. Wie aus 4B ersichtlich
ist, reflektiert der endgültige Zustand
der Speicherzellen mehrere Fehler, wobei D'(x) den aktuell geschriebenen Datenwert
mit Fehlern repräsentiert
und Z'(D(x)) den
programmierten Prüfsummendatenwert
mit Fehlern repräsentiert.
Der untere Teil von 4B zeigt einen Prüfsummendatenwert,
welcher während
eines Lesevorgangs aus dem fehlerhaft geschriebenen Datenwert D'(x) erzeugt wird.
Dieser Prüfsummendatenwert
weist im gezeigten Beispiel den Wert „00100" auf, was weniger als der originale
korrekte Wert von „00111" ist und weniger
als der fehlerhafte Wert von Z'(D(x))
ist, der gleich „10111" ist, d.h. gleich
der Zahl 23 im Binärformat.
-
Daher
kann, wie aus 5 ersichtlich ist, das Lesen
von fehlerhaften Daten aus dem Speicherfeld 110 und das
anschließende
Vergleichen eines Prüfsummendatenwerts,
d.h. des Wertes Z(D'(x)), welcher
aus dem fehlerhaften Datenwert berechnet wird, d.h. dem Wert D'(x), mit einem korrekten
oder fehlerhaften Prüfsummendatenwert,
z.B. dem Wert Z'(D(x)),
welcher direkt aus dem Speicherfeld 110 gelesen wird, eine
Abschätzung
liefern, dass ein Energieversorgungsausfall während eines vorherigen Vorgangs
zum Schreiben einer Datenseite in das Speicherfeld 110 aufgetreten
ist. Insbesondere zeigt ein erster Block S100 aus 5 Vorgänge zur
Erzeugung von ersten Prüfsummendaten
anhand einer Seite von Schreibdaten. Die ersten Prüfsummendaten,
die in 2 mit CSD bezeichnet sind, werden dann über die
Schalter 182 und 161 zum Datenbus DB1 und zur
Spaltenauswahlschaltung 150 geleitet.
-
Die
Seite von Schreibdaten und die ersten Prüfsummendaten werden dann im
Block S120 sequentiell zur Seitenregister- und Abtastverstärkerschaltung 140 übertragen
und anschließend
parallel in das Speicherfeld 110 geschrieben. Danach werden
im Block S140 während
des Lesevorgangs die vorherige Seite von Schreibdaten und die ersten Prüfsummendaten
sequentiell über
den zweiten Schalter 162 zum Datenbus DB2 übertragen.
Diese Seite von Schreibdaten wird dann zum Eingabe-/Ausgabepuffer 170 übertragen
und die ersten Prüfsummendaten,
welche aus dem Speicher gelesen werden, werden zum zweiten Register 184b übertragen.
Zudem werden während
dieser Lesevorgänge
zweite Prüfsummendaten
vom Prüfsummendatengenerator 181 erzeugt
und über
den Schalter 182 zum ersten Register 184a übertragen.
Diese zweiten Prüfsummendaten
werden aus der Datenseite erzeugt, welche von der Spaltenauswahlschaltung 150 zum
zweiten Schalter 162 übertragen
wird.
-
Unter
Bezugnahme auf Block S160 wird ein Vergleichsvorgang zwischen den
ersten Prüfsummendaten
im zweiten Register 184b und den zweiten Prüfsummendaten
im ersten Register 184a ausgeführt. Dieser Vergleich wird
durch den in 2 dargestellten Komparator 185 ausgeführt. Sind
die ersten Prüfsummendaten
und die zweiten Prüfsummendaten äquivalent,
dann werden im Block S180 die aus dem Speicherfeld 110 gelesenen
Daten als gültig
beurteilt und der Komparator erzeugt das Signal READ_PF mit einem
inaktiven Pegel, welcher anzeigt, dass kein Energieversorgungsausfall
vorliegt. Sind die ersten Prüfsummendaten
und die zweiten Prüfsummendaten
jedoch nicht äquivalent,
dann werden im Block S200 die aus dem Speicherfeld 110 gelesenen
Daten als ungültig
beurteilt und der Komparator erzeugt das Signal READ_PF mit einem
aktiven Pegel, welcher das Auftreten von wenigstens einem Energieversorgungsausfallfehler
in den zum Eingabe-/Ausgabepuffer 170 übertragenen Daten anzeigt.
Das Signal READ_PF kann im Statusregister 131 innerhalb
der Steuerlogikschaltung 130 aufgezeichnet werden und zur
Erzeugung eines Signal R/nB führen,
welches einen Fehler-/Nichtfehler-Zustand
in den Lesedaten anzeigt, die an einen Ausgabeanschluss I/Oi ausgegeben
werden.
-
Wie
aus 6A ersichtlich ist, kann das von der Steuerlogikschaltung 130 gemäß 1 erzeugte Taktsignal
CLK verwendet werden, um ein periodisches Schreibfreigabesignal/WE
zu erzeugen. Dieses Schreibfreigabesignal/WE synchronisiert die
serielle Übertragung
von 8-Bit-Daten
vom Eingabe-/Ausgabeanschluss I/Oi zur Spaltenauswahlschaltung 150.
Diese Übertragung
erstreckt sich im gezeigten Beispiel über 528 Perioden des Schreibfreigabesignals/WE.
Die ersten 526 der 528 Perioden werden zum Schreiben von 8-Bit-Datenbytes über die
Spaltenauswahlschaltung 150 in die Seitenregister- und
Abtastverstärkerschaltung 140 verwendet. Der
Empfang der 526-ten Periode des Signals /WE triggert zudem die Erzeugung
des aktiven Flagsignals FLAG. Dieses aktive Flagsignal FLAG wird
vom Schalter 182 in der Energieversorgungsausfallbeurteilungsschaltung 180 und
vom ersten Schalter 161 in der Datenpfadauswahlschaltung 160 empfangen. In
Reaktion wird der vom Prüfsummendatengenerator 181 erzeugte
Prüfsummendatenwert
CSD über die
Spaltenauswahlschaltung 150 zur Seitenregister- und Abtastverstärkerschaltung 140 übertragen.
Dieser Prüfsummendatenwert
CSD ist als Wert dargestellt, welcher zwei 8-Bit-Bytes erfordert,
d.h. CSDO und CSD1. Da die Länge
des Prüfsummendatenwerts
CSD 13 Bit beträgt (log2(526Byte·8Bits/Byte)+1=13), sind zwei
Byte erforderlich.
-
Ähnliche
Zeitsteuerungsanforderungen, wie die oben in Verbindung mit 6A beschriebenen, sind
auch während
eines Lesevorgangs erforderlich, welcher mit einem Lesefreigabesignal/RE
synchronisiert ist. Der Zeitablauf eines Lesevorgangs ist in 6B dargestellt.
Bei diesem Zeitablauf resultiert die Erzeugung des aktiven Flagsignals
FLAG mit hohem Pegel in der Übertragung
von ersten Prüfsummendaten
von der Seitenregister- und Abtastverstärkerschaltung 140 zum
zweiten Register 184b im Registersatz 184 und
dem Übertragen
von zweiten Prüfsummendaten
vom Schalter 182 zum ersten Register 184a im Registersatz 184.
Zudem führt
die Erzeugung des aktiven Flagsignals FLAG mit hohem Pegel zur Erzeugung
von zwei Perioden des Zwischenspeichersignals CSD_LAT, welches zwei
8-Bit-Bytes der Prüfsummendaten
(CSDO, CSD1) und (CSDO', CSD1') zum Laden in jedes
der Register im Registersatz 184 freigibt.
-
Integrierte
Schaltungsspeicherbauelemente gemäß zusätzlicher Ausführungsformen
der Erfindung verwenden separate Speicher- und Steuerschaltungen.
Wie aus 7 ersichtlich ist, umfasst ein
integriertes Schaltungsspeicherbauelement 1000 ein nichtflüchtiges
Speicherbauelement 1200 und eine Speichersteuerschaltung 1400,
welche als separate integrierte Schaltungschips ausgeführt sind. In
einigen Ausführungsformen
der Erfindung kann das nichtflüchtige
Speicherbauelement 1200 ein allgemeines, externes angeordnetes
Flashspeicherbauelement sein oder ein anderer Typ eines nichtflüchtigen
Speicherbauelements. Wie aus 7 ersichtlich
ist, reagiert das Speicherbauelement 1200 auf eine Mehrzahl
von Daten- und Steuersignalen, wie ein R/nB-Signal, Steuersignale
und ein I/Oi-Signal. Die Speichersteuerschaltung 1400 umfasst
eine Steuerlogikschaltung 1420, eine Datenpfadauswahleinheit 1460 und
eine Energieversorgungsausfallbeurteilungsschaltung 1440.
Die Steuerlogikschaltung 1420, die Datenpfadauswahleinheit 1460 und
die Energieversorgungsausfallbeurteilungsschaltung 1440 können äquivalent
zur Steuerlogikschaltung 130, Energieversorgungsausfallbeurteilungsschaltung 180 und
Datenpfadauswahlschaltung 160 aus den 1 und 2 sein
und werden daher hier nicht näher
beschrieben. Diese Schaltungen können gemeinsam
einen weiteren Typ von Eingabe-/Ausgabesteuerschaltung repräsentieren.
-
8 zeigt
ein integriertes Schaltungsspeicherbauelement 2000 gemäß einer
weiteren Ausführungsform
der Erfindung. Das dargestellte Speicherbauelement 2000 umfasst
ein nichtflüchtiges
Speicherbauelement 2200 und eine Speichersteuerschaltung 2400,
welche als separate integrierte Schaltungschips ausgeführt sind,
die elektrisch miteinander gekoppelt sind und sogar gemeinsam gepackt
sein können.
Die Speichersteuerschaltung 2400 umfasst eine Steuerlogikschaltung 2420 und ein
zusätzliches
Speicherbauelement 2440. Die Speichersteuerschaltung 2400 reagiert
auf Signale, welche von einem Befehls-Host erzeugt werden. Die Steuerlogikschaltung 2420 ist
ausgeführt,
um viele Funktionen auszuführen,
welche entsprechend durch die Steuerlogikschaltung 1420,
die Datenpfadauswahleinheit 1460 und die Energieversorgungsausfallbeurteilungsschaltung 1440 gemäß 7 ausgeführt werden,
und das zusätzliche
Speicherbauelement 2440 wird verwendet, um eine Kopie der
originalen Prüfsummendaten
während
eines Schreibvorgangs zu speichern, welche im nichtflüchtigen
Speicherbauelement 2200 gespeichert werden sollen.
-
Insbesondere
werden während
eines Schreibvorgangs die in der Steuerlogikschaltung 2420 erzeugten
Prüfsummendaten
dem nichtflüchtigen Speicherbauelement 2200 und
dem zusätzlichen Speicherbauelement 2440 zur
Verfügung
gestellt. Anschließend
werden während
eines Lesevorgangs die Prüfsummendaten
aus dem nichtflüchtigen Speicherbauelement 2200 mit
den korrespondierenden Prüfsummendaten
verglichen, welche aus dem zusätzlichen
Speicherbauelement 2440 gelesen werden. Dieser Vergleichsvorgang
wird ausgeführt,
um zu bestimmen, ob ein Energieversorgungsausfallereignis aufgetreten
ist, als die Prüfsummendaten
ursprünglich
in das nichtflüchtige
Speicherbauelement 2200 geschrieben wurden. Die Verwendung
des zusätzlichen
Speicherbauelements 2440 eliminiert den Bedarf an unabhängig während eines
Lesevorgangs berechneten Prüfsummendaten
und reduziert dadurch die Leselatenz eines Lesevorgangs in Bezug auf
das Bauelement 100 gemäß 1 und
das Bauelement 1000 gemäß 7.