-
Speichergeschwindigkeit
und Speicherkapazität
nehmen weiterhin zu, um die Anforderungen von Systemanwendungen
zu erfüllen.
Einige dieser Systemanwendungen umfassen mobile elektronische Systeme,
die einen begrenzten Platz und begrenzte Leistungsressourcen aufweisen.
Bei Mobilanwendungen, wie z. B. Mobiltelefonen und Personaldigitalassistenten
(PDAs), sind Speicherzelldichte und Leistungsaufnahme Probleme für zukünftige Generationen.
Um diese Probleme anzugehen, entwickelt die Industrie Direktzugriffsspeicher
(RAMs) für
Mobilanwendungen. Für
Niedrigleistungs-DRAMs, wie z. B. Niedrigleistungseinfachdatenraten-
(LP-SDR-) DRAMs, Niedrigleistungsdoppeldatenraten- (LP-DDR-) DRAMs
und Niedrigleistungsdoppeldatenraten-II- (LP-DDR2-) DRAMs ist ein
Verringern des Auffrischstromes eine Möglichkeit, die Leistungsaufnahme
zu verringern.
-
Um
den Auffrischstrom zu verringern, wird normalerweise die Auffrischperiode
erweitert. Ein Erweitern der Auffrischperiode führt jedoch normalerweise dazu,
dass einige Speicherzellen aufgrund der erweiterten Auffrischperiode
versagen. Zum Beispiel können
99,9 % der Speicherzellen in einem Array von Speicherzellen eine
Haltezeit von 250 ms aufweisen. Es kann jedoch sein, dass die anderen
0,1 % irgendwo zwischen etwa 0–200
ms ihre Werte nicht mehr halten können. Diese Speicherzellen,
die ihre Werte nicht halten können,
werden als Endbits (tail bits) bezeichnet. Diese Endbits können während einer
Selbstauffrischung eines Speichers zu Einbitfehlern führen. Durch
ein Erfassen und Korrigieren dieser Endbits kann die Auffrischperiode
erweitert werden, um den Auffrischstrom zu verringern.
-
Ein
Fehlerkorrekturcode (ECC) berechnet Paritätsinformationen und kann bestimmen,
ob ein Bit zu einem inkorrekten Wert gewechselt hat. Der ECC kann
die Parität,
die ursprünglich
berechnet wurde, mit der getesteten Parität vergleichen und beliebige
Korrekturen durchführen,
um inkorrekte Datenwerte zu korrigieren. In einigen Fällen ist
es erwünscht,
dass der ECC direkt auf einen Speicherchip gebaut ist, um eine größere Speicherchipzuverlässigkeit
zu liefern oder um andere Speicherchipeigenschaften, wie z. B. Selbstauffrischströme bei Niedrigleistungs-DRAMs,
zu optimieren. Bei typischen DRAMs, die ECC verwenden, werden bei
einem Eintreten in die Selbstauffrischung Paritätsdaten erzeugt und in den
Speicher zurückgeschrieben.
Zum Beispiel werden für
1.024 Datenbits 16 Paritätsbits
erzeugt und in den Speicher zurückgeschrieben.
Bei einer Selbstauffrischungsbeendigung werden die 16 Paritätsbits plus
die 1.024 Datenbits gelesen, und die Datenbits werden nach Fehlern überprüft und basierend
auf den Paritätsbits
korrigiert. Die korrigierten Daten werden in den Speicher zurückgeschrieben. Normalerweise
muss der Benutzer des Speichers warten, während dieser Fehlererfassungs-
und -korrekturprozess für
alle Speicherzellen in dem Speicherarray auf eine Selbstauffrischungsbeendigung hin
durchgeführt
wird. Der Fehlerkorrekturprozess kann eine Selbstauffrischungsbeendigung
zwischen etwa 10 ms–100
ms verzögern.
Diese Verzögerung auf
eine Selbstauffrischungsbeendigung hin kann die Leistung des Speichersystems
beeinträchtigen.
-
Es
ist die Aufgabe der vorliegenden Erfindung, einen Speicher, einen
dynamischen Direktzugriffsspeicher und ein Verfahren zum Korrigieren
von Fehlern in einem Speicher mit verbesserten Charakteristika zu
schaffen.
-
Diese
Aufgabe wird durch einen Speicher gemäß Anspruch 1, 6 oder 8, einen
dynamischen Direktzugriffsspeicher gemäß Anspruch 11 sowie ein Verfahren
gemäß Anspruch
13, 17, 21 oder 24 gelöst.
-
Ein
Ausführungsbeispiel
der vorliegenden Erfindung liefert einen Speicher. Der Speicher
umfasst ein Speicherarray zum Speichern von Daten, eine Paritätserzeugungs-
und Fehlerprüfschaltung, die
konfiguriert ist, um Daten von dem Speicherarray zu empfangen und
Fehler bei den Daten zu erfassen, und Fehlerregister, die zum Speichern
von Adressen von versagenden Speicherarrayorten, die durch die Paritätserzeugungs-
und Fehlerprüfschaltung
auf einen Selbstauffrischungseinritt hin erfasst werden, konfiguriert
sind, zum Korrigieren der Daten, die in den versagenden Speicherarrayorten
gespeichert sind, auf eine Selbstauffrischungsbeendigung hin.
-
Ausführungsbeispiele
der Erfindung werden unter Bezugnahme auf die folgenden Zeichnungen besser
verstanden. Die Elemente der Zeichnungen sind nicht unbedingt maßstabsgetreu
relativ zueinander. Gleiche Bezugszeichen bezeichnen entsprechende ähnliche
Teile. Es zeigen:
-
1 ein
Blockdiagramm, das ein Ausführungsbeispiel
eines Direktzugriffsspeichers gemäß der vorliegenden Erfindung
veranschaulicht;
-
2 ein
Zeitdiagramm, das ein Ausführungsbeispiel
der Zeitgebung von Signalen zum Erzeugen von Paritätsinformationen
für ein
Speicherarray auf einen Selbstauffrischungseintritt hin veranschaulicht;
-
3 ein
Zeitdiagramm, das ein Ausführungsbeispiel
der Zeitgebung von Signalen zum Erfassen und Korrigieren von Fehlern
bei dem Speicherarray auf einen Selbstauffrischungseintritt hin veranschaulicht;
-
4 ein
Zeitdiagramm, das ein Ausführungsbeispiel
der Zeitgebung von Signalen zum erneuten Prüfen und Korrigieren von Fehlern
bei dem Speicherarray auf eine Selbstauffrischungsbeendigung hin
veranschaulicht;
-
5 ein
Blockdiagramm, das ein weiteres Ausführungsbeispiel eines Direktzugriffsspeichers gemäß der vorliegenden
Erfindung veranschaulicht;
-
6 ein
Zeitdiagramm, das ein Ausführungsbeispiel
der Zeitgebung von Signalen zum Erfassen von Fehlern bei dem Speicherarray
auf einen Selbstauffrischungseintritt hin veranschaulicht;
-
7 ein
Zeitdiagramm, das ein Ausführungsbeispiel
der Zeitgebung von Signalen zum Korrigieren von Fehlern bei dem
Speicherarray auf eine Selbstauffrischungsbeendigung hin veranschaulicht;
-
8 ein
Blockdiagramm, das ein Ausführungsbeispiel
eines Abschnitts des Direktzugriffsspeichers veranschaulicht, der
Fehlerregister zum Speichern von Speicherzelladressen und korrigierten Daten
zur Verwendung als Ersatzspeicherung für versagende Speicherzellorte
umfasst; und
-
9 ein
Blockdiagramm, das ein Ausführungsbeispiel
eines Abschnitts des Direktzugriffsspeichers veranschaulicht, der
Fehlerregister zum Speichern von Zeilenadressen von Endbits zum
häufigeren
Auffrischen der Endbits umfasst.
-
1 ist
ein Blockdiagramm, das ein Ausführungsbeispiel
eines Direktzugriffsspeichers 100 gemäß der vorliegenden Erfindung
veranschaulicht. Bei einem Ausführungsbeispiel
ist der Direktzugriffsspeicher 100 ein dynamischer Direktzugriffsspeicher (DRAM).
Der DRAM 100 umfasst eine Speichersteuerung 102 und
zumindest eine Speicherbank 106a. Die Speicherbank 106a umfasst
einen Zeilenadresszähler
(RAC) 108 einen Multiplexer (MUX) 112, einen Zeilendecodierer 116,
ein Speicherarray 120, das einen Paritätsspeicher 122 umfasst,
Leseverstärker 124 und
eine I/O-(E/A-)Torsteuerungsmaskenlogik 128. Die Speicherbank 106a umfasst
auch einen Datenweg 132, einen Spaltendecodierer 136,
einen Multiplexer (MUX) 140, einen Spaltenadresszähler (CAC) 144,
Register 150, eine Paritätserzeugungs- und Fehlerprüfschaltung 152,
Fehlerregister 160, die Zeilenadress- (RA) und Spaltenadress-
(CA) Register 162 umfassen, und einen Fehleradress- (ERROR_ADD)
Block 168. Die Speichersteuerung 102 ist durch
eine Kommunikationsverbindung 104 elektrisch mit der Speicherschaltung 106a gekoppelt.
-
Der
DRAM 100 ist für
eine erweiterte Auffrischperiode während einer Selbstauffrischung
konfiguriert, um die Leistungsaufnahme des DRAM 100 zu
verringern. Der DRAM 100 führt während einer Selbstauffrischung
einen Fehlererfassungs- und -korrekturprozess durch, um Endbits
zu korrigieren, ohne die Selbstauffrischungsbeendigungszeitgebung
wesentlich zu stören.
Der DRAM 100 erzeugt Paritätsinformationen für das Speicherarray 120 auf einen
Selbstauffrischungseintritt hin und speichert die Paritätsinformationen
in dem Paritätsspeicher 122.
Nachdem die erste erweiterte Auffrischperiode bei der Selbstauffrischung
verstrichen ist, wird das Speicherarray 120 unter Verwendung
der gespeicherten Paritätsinformationen
auf Fehler geprüft.
Bei einem Ausführungsbeispiel
werden jegliche erfasste Fehler korrigiert, und die Orte von versagenden
Speicherzellen werden in den Fehlerregistern 160 gespeichert.
Auf eine Selbstauffrischungsbeendigung hin werden die Orte von versagenden
Speicherzellen, die in den Fehlerregistern 160 gespeichert
sind, erneut auf Fehler geprüft
und korrigiert, falls Fehler erfasst werden. Falls keine versagenden
Speicherzellorte in den Fehlerregistern 160 gespeichert
sind, wird auf eine Selbstauffrischungsbeendigung hin keine erneute Überprüfung auf
Fehler durchgeführt.
-
Bei
einem weiteren Ausführungsbeispiel werden
zusätzlich
zu den Orten von versagenden Speicherzellen auch die korrigierten
Daten für
die versagenden Speicherzellen in den Fehlerregistern 160 gespeichert.
Bei diesem Ausführungsbeispiel werden
die korrigierten Daten auf eine Selbstauffri schungsbeendigung hin
automatisch in die versagenden Speicherzellen zurückgeschrieben,
ohne dass erneut auf Fehler geprüft
wird.
-
Bei
einem weiteren Ausführungsbeispiel speichern
die Fehlerregister 160 Orte von versagenden Speicherzellen
und die korrigierten Daten, um versagende Speicherzellen zu ersetzen,
wie z. B. bei einer Redundanz- oder Einbitreparatur. Bei diesem Ausführungsbeispiel
wird keine Rückschreiboperation
auf eine Selbstauffrischungsbeendigung hin durchgeführt. Eine
ausgewählte
Adresse wird mit den Adressen verglichen, die in den Fehlerregistern 160 gespeichert
sind. Falls eine Übereinstimmung gefunden
wird, werden die korrigierten Daten, die in den Fehlerregistern 160 gespeichert
sind, anstelle der Daten, die in den versagenden Speicherzellen gespeichert
sind, zu dem Datenweg 132 geleitet.
-
Bei
einem weiteren Ausführungsbeispiel speichern
die Fehlerregister 160 Zeilenadressen von Endbits. Die
Zeilenadressen, die in den Fehlerregistern 160 gespeichert
sind, werden mit den Zeilenadressen von dem Zeilenadresszähler 108 verglichen. Falls
eine Übereinstimmung
gefunden wird, wird die Zeile häufiger
aufgefrischt.
-
Die
Speichersteuerung 102 steuert ein Lesen von Daten von der
Speicherbank 106a und ein Schreiben von Daten in dieselbe.
Die Speichersteuerung 102 liefert Zeilen- und Spaltenadressen
und Steuersignale durch die Kommunikationsverbindung 104 an
die Speicherbank 106a. Bei einem Ausführungsbeispiel liefert die
Speichersteuerung 102 Steuersignale, die Selbstauffrischungseintritts-, Selbstauffrischungsbeendigungs-,
Lese-/Schreibfreigabe-, Zeilenadressübernahme- (RAS-) und Spaltenadressübernahme
(CAS-) Signale umfassen.
-
Der
Zeilenadresszähler 108 ist
durch einen Signalweg 110 mit einem ersten Eingang des
Multiplexers 112 elektrisch gekoppelt. Ein zweiter Eingang des
Multiplexers 112 ist elektrisch durch einen Zeilenadressfehler-
(RA_ERROR-) Signalweg 172 mit dem Fehleradress- (ERROR_ADD-)
Block 168 gekoppelt. Der Ausgang des Multiplexers 112 ist
durch einen Zeilenadress- (RA-) Signalweg 114 elektrisch
mit dem Zeilendecodierer 116 gekoppelt. Der Zeilendecodierer 116 ist
durch Zeilenauswählleitungen 118 elektrisch
mit dem Speicherarray 120 gekoppelt. Das Speicherarray 120 ist
elektrisch mit den Leseverstärkern 124 gekoppelt.
Die Leseverstärker 124 sind durch
Datenleitungen 126 elektrisch mit der I/O-Torsteuerungsmaskenlogik 128 gekoppelt.
Die I/O-Torsteuerungsmaskenlogik 128 ist
durch Datenleitungen 130 elektrisch mit dem Datenweg 132 gekoppelt, durch
Datenleitungen 148 mit den Registern 150 und durch
Spaltenauswählleitungen 134 mit
dem Spaltendecodierer 136.
-
Der
Spaltenadresszähler 144 ist
elektrisch durch einen Signalweg 142 mit einem ersten Eingang des
Multiplexers (MUX) 140 gekoppelt. Ein zweiter Eingang des
Multiplexers 140 ist durch einen Spaltenadressfehler- (CA_ERROR-)
Signalweg 146 elektrisch mit dem Fehleradress- (ERROR_ADD-)
Block 168 gekoppelt. Der Ausgang des Multiplexers 140 ist durch
einen Spaltenadress- (CA-) Signalweg 138 elektrisch mit
dem Spaltendecodierer 136 gekoppelt. Die Register 150 sind
elektrisch mit der Paritätserzeugungs-
und Fehlerprüfschaltung 152 gekoppelt. Die
Paritätserzeugungs-
und Fehlerprüfschaltung 152 ist
durch einen Fehlerflag- (EFLG-) Signalweg 158 und einen
Adresssignalweg 156 elektrisch mit den Fehlerregistern 160 gekoppelt.
Die Paritätserzeugungs- und Fehlerprüfschaltung 152 empfängt auch
das Paritätserzeugungs-
(PG-) Signal an einem PG-Signalweg 154. Die Fehlerregister 160 sind durch
Adressleitungen 166 elektrisch mit dem Fehleradressblock 168 gekoppelt.
Die Fehlerregister 160 liefern auch das Fehlerstatus- (ST_ERROR-)
Signal an einem ST_ERROR-Signalweg 164.
-
Der
Zeilenadresszähler 108 ist
konfiguriert, um durch jede Zeilenadresse des Speicherarrays 120 zu
inkrementieren, zum Auswählen
jeder Zeile des Speicherarrays 120 während Paritätsinformationserzeugungs- und
Paritätsfehlererfassungs- und -korrekturprozessen
auf einen Selbstauffrischungseintritt hin. Der Multiplexer 112 ist
konfiguriert, um entweder eine Zeilenadresse, die durch den Zeilenadresszähler 108 während eines
Paritätsinformationserzeugungs-
oder Paritätsfehlererfassungs-
und -korrekturprozesses auf einen Selbstauffrischungseintritt hin
geliefert wird, zu leiten oder eine Zeilenadresse von dem Fehleradressblock 168 für Paritätsfehlererfassungs-
und -korrekturprozesse auf eine Selbstauffrischungsbeendigung hin
zu leiten.
-
Der
Zeilendecodierer 116 empfängt die Zeilenadresse an dem
Zeilenadresssignalweg 114 und aktiviert eine Zeile in dem
Speicherarray 120 basierend auf der empfangenen Adresse.
Das Speicherarray 120 umfasst eine Mehrzahl von Speicherzellen, die
an jedem Kreuzungspunkt einer Wortleitung (Zeile) und einer Bitleitung
(Spalte) angeordnet sind. Der Paritätsspeicher 122 ist
ein Teil des Speicherarrays 120 und speichert die Paritätsinformationen
für das Speicherarray 120.
Die Leseverstärker 124 erfassen die
Datenbitwerte, die in den Speicherzellen entlang der aktivierten
Zeile gespeichert sind, während
einer Leseoperation und schreiben Datenbitwerte während einer
Schreiboperation in die Speicherzellen entlang der aktivierten Zeile.
-
Der
Spaltenadresszähler 144 ist
konfiguriert, um durch jede Spaltenadresse des Speicherarrays 120 zu
inkrementieren, zum Auswählen
jeder Spalte des Speicherarrays 120 während Paritätsinformationserzeugungs- und
Paritätsfehlererfassungs-
und -korrekturprozessen auf einen Selbstauffrischungseintritt hin.
Der Multiplexer 140 ist konfiguriert, um entweder eine
Spaltenadresse, die während
eines Paritätsinformationserzeugungs-
oder Paritätsfehlererfassungs- und -korrekturprozesses
auf einen Selbstauffrischungseintritt hin geliefert wird, zu leiten oder
eine Spaltenadresse von dem Fehleradressblock 168 für Paritätsfehlererfas sungs-
und -korrekturprozesse auf eine Selbstauffrischungsbeendigung hin
zu leiten.
-
Der
Spaltendecodierer 136 empfängt die Spaltenadresse an dem
Spaltenadresssignalweg 138 und aktiviert die ausgewählten Spaltenauswählleitungen 134.
Basierend auf den ausgewählten Spaltenauswählleitungen 134 leitet
die I/O-Torsteuerungsmaskenlogik 128 die
ausgewählten
Datenbitwerte an den Datenleitungen 126 zu dem Datenweg 132 durch
die Datenleitungen 130, falls sich der DRAM 100 nicht
in Selbstauffrischung befindet. Der Datenweg 132 umfasst
Daten-I/O-Anschlussflächen oder
-Anschlussstifte, die als DQs bezeichnet werden, zum Leiten von
Daten zwischen dem DRAM 100 und einer externen Vorrichtung,
wie z. B. einem Host. Falls sich der DRAM 100 in Selbstauffrischung
befindet, leitet die I/O-Torsteuerungsmaskenlogik 128 die ausgewählten Datenbitwerte
an den Datenleitungen 126 durch die Datenleitungen 148 zu
den Registern 150.
-
Die
Register 150 umfassen Datenregister zum vorübergehenden
Speichern von Daten von dem Speicherarray 120 und ein Paritätsregister
zum vorübergehenden
Speichern der Parität
der Daten in den Datenregistern. Bei einem Ausführungsbeispiel umfassen die
Register 150 64 Datenbitregister und entsprechende Paritätsbitregister.
Bei einem Ausführungsbeispiel
umfasst die Paritätserzeugungs-
und Fehlerprüfschaltung 152 eine
Mehrzahl von Exklusiv-ODER- (XOR-) Gattern zum Bestimmen der Parität der Datenbits,
die in den Registern 150 gespeichert sind. Die Paritätserzeugungs-
und Fehlerprüfschaltung 152 empfängt das
Paritätserzeugungssignal
an dem Paritätserzeugungssignalweg 154.
Ansprechend auf ein logisch hohes Paritätserzeugungssignal erzeugt
die Paritätserzeugungs-
und Fehlerprüfschaltung 152 die
Paritätsinformationen
für die Datenbits,
die in den Registern 150 gespeichert sind. Die Paritätserzeugungs-
und Fehlerprüfschaltung 150 speichert
dann entweder die erzeugten Paritätsinformationen in den Paritätsregistern
der Register 150 oder vergleicht die erzeugten Paritätsinformationen
mit vorhergehend erzeugten Paritätsinformationen,
die in den Paritätsregistern
der Register 150 gespeichert sind. Falls die erzeugten
Paritätsinformationen
nicht mit den vorhergehend gespeicherten Paritätsinformationen übereinstimmen,
liefert die Paritätserzeugungs-
und Fehlerprüfschaltung 152 ein Fehlerflagsignal
an dem Fehlerflagsignalweg 158 und die Adresse des defekten
Speicherarryorts an dem Signalweg 156.
-
Die
Fehlerregister 160 empfangen das Fehlerflagsignal an dem
Fehlerflagsignalweg 158 und die Adressen defekter Speicherarrayorte
an dem Signalweg 156 und liefern das ST_ERROR-Signal an
dem ST_ERROR-Signalweg 164. Das ST_ERROR-Signal ist logisch
niedrig, wenn keine Adressen von defekten Speicherarrayorten in
den Fehlerregistern 160 gespeichert sind, um anzuzeigen,
dass der Prozess des erneuten Prüfens
auf Fehler bei der Selbstauffrischungsbeendigung ausgelassen werden
kann. Das ST_ERROR-Signal ist logisch hoch, wenn Adressen von defekten
Speicherarrayorten in den Fehlerregistern 160 gespeichert
sind, um anzuzeigen, dass die defekten Speicherarrayorte auf eine
Selbstauffrischungsbeendigung hin erneut auf Fehler zu überprüfen sind.
-
Die
Zeilenadressen und Spaltenadressen für versagende Speicherarrayorte
werden in den Zeilenadress- und Spaltenadressregistern 162 gespeichert. Die
Zeilenadressen und Spaltenadressen für versagende Speicherarrayorte
werden auf eine Selbstauffrischungsbeendigung hin zu dem Fehleradressblock 168 geleitet.
Auf eine Selbstauffrischungsbeendigung hin werden die Zeilenadressen
und Spaltenadressen für
versagende Speicherarrayorte durch das Fehlerkorrekturtakt- (ECC_CLK-) Signal
an einem ECC_CLK-Signalweg 170 ausgetaktet, um das CA_ERROR-Signal
an dem CA_ERROR-Signalweg 146 und das RA_ERROR-Signal an
dem RA_ERROR-Signalweg 172 zu liefern. Das RA_ERROR-Signal
und das CA_ERROR-Signal werden verwendet, um die versagenden Speicherarrayorte
in dem Speicherarray 120 erneut auf Paritätsfehler
zu prüfen
und jegliche erfasste Fehler zu korrigieren.
-
2 ist
ein Zeitdiagramm 200, das ein Ausführungsbeispiel der Zeitgebung
von Signalen zum Erzeugen von Paritätsinformationen für das Speicherarray 120 auf
einen Selbstauffrischungseintritt hin veranschaulicht. Das Zeitdiagramm 200 umfasst ein
Taktsignal- (CLK-) Signal 202, ein Befehlssignal 204,
ein Taktfreigabe- (CKE-) Signal 206, ein Zeilenadress-
(RA-) Signal 208 an dem RA-Signalweg 114 und ein
Spaltenadress- (CA-) Signal 210 an dem CA-Signalweg 138.
Das Zeitdiagramm 200 umfasst auch einen Detailabschnitt,
wie es bei 238 angezeigt ist, der ein Internoperationssignal 212,
ein Spaltenadress- (CA-) Signal 210, ein Paritätserzeugungs- (PG-)
Signal 214 an dem PG-Signalweg 154 und ein Fehlerflag-
(EFLG-) Signal 216 an dem EFLG-Signalweg 158 umfasst. Bei
einem Ausführungsbeispiel werden
das CLK-Signal 202, das Befehlssignal 204, das
CKE-Signal 206, das Internoperationssignal 212 und
das PG-Signal 214 durch die Speichersteuerung 102 geliefert.
-
Die
Speichersteuerung 102 liefert einen Selbstauffrisch- (SREF-) Befehl bei 220 an
dem Befehlssignal 204. Ansprechend auf den Selbstauffrischbefehl
wird das CKE-Signal 206 bei 221 logisch niedrig.
Ansprechend auf die ansteigende Flanke 222 des CLK-Signals 202 wird
eine Selbstauffrischung eingeleitet. Der Zeilenadresszähler 108 liefert
eine Zeilenadresse „R
+ 1" an dem RA-Signal 208 bei 224.
Bei 224 wird die Zeile „R + 1" durch den Zeilendecodierer 116 aktiviert.
Der Spaltenadresszähler 144 liefert
eine Spaltenadresse „00" an dem CA-Signal 210 bei 225.
Der Zeilenadresszähler 108 inkrementiert
durch jede Zeilenadresse des Speicherarrays 120 an dem
RA-Signal 208, wie es bei 228 angezeigt ist. Für jede Zeilenadresse
inkrementiert der Spaltenadresszähler 144 durch
jede Spaltenadresse des Speicherarrays 120 an dem CA-Signal 210,
wie es bei 230 angezeigt ist. Vor jeder Zeilenadressänderung,
wie z. B. der Zeilenadressänderung,
die bei 226 angezeigt ist, wird das Speicherarray 120 vorgeladen.
-
Die
Operationen, die bei jeder Zeilenadresse und Spaltenadresse durchgeführt werden,
sind in dem Detailabschnitt angezeigt, der bei 238 angezeigt ist.
Für jede
Zeilenadresse und Spaltenadresse liefert die Speichersteuerung 102 einen
Daten-Lesen-Befehl bei 240 an dem Internoperationssignal 212.
Eine festgelegte Anzahl von Datenbits, wie z. B. 64 Bits, wird bei
der ausgewähltem
Zeilenadresse und der ausgewählten
Spaltenadresse (bei diesem Beispiel Zeilenadresse „R + 1" und Spaltenadresse „01") von dem Speicherarray 120 gelesen.
Die Speichersteuerung 102 liefert einen Paritätserzeugungspuls
an dem PG-Signal 214 bei 244 an die Paritätserzeugungs-
und Fehlerprüfschaltung 152.
Ansprechend auf den Paritätserzeugungspuls
bei 244 erzeugt die Paritätserzeugungs- und Fehlerprüfschaltung 152 die
Paritätsinformationen
für die
gelesenen Datenbits, wie z. B. die 64 Bits. Bei 242 liefert
die Speichersteuerung 102 einen Paritätsbits-Schreiben-Befehl an
dem Internoperationssignal 212, um die Paritätsinformationen
in den Paritätsspeicher 122 zu
schreiben. Bei 241 wiederholt sich der Paritätserzeugungsprozess
für die
nächste
Spaltenadresse („02").
-
Der
Paritätserzeugungsprozess
wird fortgeführt,
bis die Paritätsinformationen
für das
gesamte Speicherarray 120 erzeugt und in dem Paritätsspeicher 122 gespeichert
sind. Nach dem Erzeugen der Paritätsinformationen für das gesamte
Speicherarray 120 werden Speicheroperationen ausgesetzt,
wie es bei 234 angezeigt ist, bis zum Abschluss der erweiterten
Auffrischperiode (tRET), wie es bei 232 angezeigt ist.
Nachdem die erweiterte Auffrischperiode 232 verstrichen
ist, wird das Speicherarray 120 auf Fehler geprüft, wie
es durch Block 250 angezeigt ist.
-
3 veranschaulicht
ein Zeitdiagramm 250, das ein Ausführungsbeispiel der Zeitgebung
von Signalen zum Erfassen und Korrigieren von Fehlern bei dem Speicherarray 120 auf
einen Selbstauffrischungseintritt hin veranschaulicht. Das Zeitdiagramm 250 umfasst
ein RA-Signal 208 und ein CA- Signal 210. Das Zeitdiagramm 250 umfasst
auch einen Detailabschnitt, wie es bei 252 angezeigt ist, der
ein Internoperationssignal 212, ein CA-Signal 210,
ein EFLG-Signal 216, ein Fehlerregistersignal 256 und
ein ST_ERROR-Signal 258 an dem ST_ERROR-Signalweg 164 umfasst.
Die Paritätserzeugung,
wie dieselbe durch Block 200 angezeigt ist, wurde vorhergehend
durchgeführt,
wie es unter Bezugnahme auf 2 veranschaulicht
und beschrieben ist. Die Selbstauffrischung wird durch ein Befehlssignal 204 aufrechterhalten,
und ein CLK-Signal 202 und ein CKE-Signal 206 bleiben
logisch niedrig, wie es durch Block 251 angezeigt ist.
-
Ansprechend
auf das Verstreichen der erweiterten Auffrischperiode 232 wird
eine Fehlerprüfung
des Speicherarrays 120 eingeleitet. Der Zeilenadresszähler 108 liefert
eine Zeilenadresse „R
+ 1" an dem RA-Signal 208 bei 257.
Bei 257 wird die Zeile „R + 1" durch den Zeilendecodierer 116 aktiviert.
Der Spaltenadresszähler 144 liefert
eine Spaltenadresse „00" an dem CA-Signal 210 bei 255.
Der Zeilenadresszähler 108 inkrementiert
durch jede Zeilenadresse des Speicherarrays 120 an dem
RA-Signal 208, wie es bei 228 angezeigt ist. Für jede Zeilenadresse
inkrementiert der Spaltenadresszähler 144 durch
jede Spaltenadresse des Speicherarrays 120 an dem CA-Signal 210,
wie es bei 230 angezeigt ist. Vor jeder Zeilenadressänderung,
wie z. B. der Zeilenadressänderung,
die bei 253 angezeigt ist, wird das Speicherarray 120 vorgeladen.
-
Die
Operationen, die bei jeder Zeilenadresse und Spaltenadresse durchgeführt werden,
sind in dem Detailabschnitt angezeigt, der bei 252 angezeigt ist.
Für jede
Zeilenadresse und Spaltenadresse liefert die Speichersteuerung 102 einen
Daten-und-Paritätsbits-Lesen-Befehl
bei 260 an dem Internoperationssignal 212. Eine
festgelegte Anzahl von Datenbits, wie z. B. 64 Bits, und die entsprechenden
Paritätsbits
werden von dem Speicherarray 102 und dem Paritätsspeicher 122 bei
der ausgewählten
Zeilenadresse und der ausgewählten
Spaltenadresse (bei diesem Beispiel Zeilenad resse „R + 1" und Spaltenadresse „01") gelesen. Die Speichersteuerung 102 liefert
einen Fehlerprüfbefehl
bei 262 an dem Internoperationssignal 212. Ansprechend
auf den Fehlerprüfbefehl
prüft die
Paritätserzeugungs-
und Fehlerprüfschaltung 152 bei
den gelesenen Daten basierend auf den entsprechenden gelesenen Paritätsbits auf Fehler.
-
Falls
keine Fehler erfasst werden, liefert die Paritätserzeugungs- und Fehlerprüfschaltung 152 ein
logisch niedriges EFLG-Signal 216. Falls ein oder mehr
Paritätsfehler
erfasst werden, liefert die Paritätserzeugungs- und Fehlerprüfschaltung 152 ein
logisch hohes EFLG-Signal bei 268. Ansprechend auf ein
logisch niedriges EFLG-Signal, das keine Fehler anzeigt, liefert
die Speichersteuerung 102 einen Keine-Operation- (NOP-)
Befehl an dem Internoperationssignal 212 bei 263.
Ansprechend auf ein logisch hohes EFLG-Signal, das einen oder mehr Fehler anzeigt,
liefert die Speichersteuerung 102 einen Fehlerkorrigierbefehl
bei 264 an dem Internoperationssignal 212. Ansprechend
auf den Fehlerkorrigierbefehl bei 264 korrigiert die Paritätserzeugungs-
und Fehlerprüfschaltung 152 die
Fehler. Nachdem die Fehler korrigiert sind, liefert die Speichersteuerung 102 einen
Rückschreibbefehl
bei 266 an dem Internoperationssignal 212. Ansprechend
auf den Rückschreibbefehl 266 werden
die korrigierten Daten zurück
in das Speicherarray 120 geschrieben.
-
Ansprechend
auf ein logisch hohes EFLG-Signal 216 bei 268 werden
die Zeilenadresse und die Spaltenadresse, wo der Fehler erfasst
wurde, ebenfalls in die Fehlerregister 160 geschrieben,
wie es bei 269 an dem Fehlerregistersignal 256 angezeigt
ist. Ebenfalls ansprechend auf ein logisch hohes EFLG-Signal 216 bei 268 liefern
die Fehlerregister 160 ein logisch hohes ST_ERROR-Signal 258 bei 267.
Bei 265 wiederholt sich der Fehlerprüfprozess für die nächste Spaltenadresse („02").
-
Der
Fehlerprüfprozess
wird fortgeführt,
bis das gesamte Speicherarray 120 auf Fehler geprüft und korrigiert
worden ist, falls Fehler erfasst werden. Nach dem Prüfen des
gesamten Speicherarrays 120 auf Fehler und dem Korrigieren
jeglicher erfasster Fehler wird die Selbstauffrischung fortgeführt, wie
es bei 254 angezeigt ist.
-
4 ist
ein Zeitdiagramm 270, das ein Ausführungsbeispiel der Zeitgebung
von Signalen zum erneuten Prüfen
und Korrigieren von Fehlern bei dem Speicherarray 120 auf
eine Selbstauffrischungsbeendigung hin veranschaulicht. Das Zeitdiagramm 270 umfasst
ein CLE-Signal 206, ein RA-Signal 272 und ein
CA-Signal 274 an dem Signalweg 166, ein ECC_CLK-Signal 276 an
dem ECC_CLK-Signalweg 170 und ein Internoperationssignal 212.
-
Das
CKE-Signal 206 wird bei 288 logisch hoch, was
eine Selbstauffrischungsbeendigung anzeigt. Auf eine Selbstauffrischungsbeendigung
hin taktet das ECC_CLK-Signal 276 jede Zeilenadresse und
Spaltenadresse aus, die in den Zeilenadress- und Spaltenadressregistern 162 gespeichert
sind, wie es bei 278 angezeigt ist. Für jede Zeilenadresse und Spaltenadresse
liefert die Speichersteuerung 102 einen Datenbits-und-entsprechende-Paritätsbits-Lesen-Befehl
bei 280 an dem Internoperationssignal 212. Bei 282 liefert
die Speichersteuerung 102 einen Fehlerprüfbefehl
an dem Internoperationssignal 212. Ansprechend auf den
Fehlerprüfbefehl
prüft die
Paritätserzeugungs-
und Fehlerprüfschaltung 152 die
gelesenen Datenbits basierend auf den entsprechenden gelesenen Paritätsbits auf
Fehler. Bei 284 liefert die Speichersteuerung 102 einen
Fehlerkorrigierbefehl. Ansprechend auf den Fehlerkorrigierbefehl
bei 284 korrigiert die Paritätserzeugungs- und Fehlerprüfschaltung 152 die
Fehler. Nachdem die Fehler korrigiert worden sind, liefert die Speichersteuerung 102 einen
Rückschreibbefehl
bei 286 an dem Internoperationssignal 212. Ansprechend
auf den Rückschreibbefehl
bei 286 werden die korrigierten Daten zurück in das
Speicherarray 120 geschrieben. Die Selbstauffri schungsbeendigungszeit
hängt von
der Anzahl von Fehlern und der Größe der Fehlerregister 160 ab.
Bei einem Ausführungsbeispiel wird
der Fehlererfassungs- und -korrekturprozess auf eine Selbstauffrischungsbeendigung
hin in etwa 100 ns–1 μs durchgeführt.
-
5 ist
ein Blockdiagramm, das ein weiteres Ausführungsbeispiel eines Direktzugriffsspeichers 100 gemäß der vorliegenden
Erfindung veranschaulicht. Bei einem Ausführungsbeispiel ist der Direktzugriffsspeicher 100 ein
DRAM. Der DRAM 100 umfasst eine Speichersteuerung 102 und
zumindest eine Speicherbank 106b. Die Speicherbank 106b umfasst ähnliche
Komponenten wie die Speicherbank 106a, wie es im Vorhergehenden
unter Bezugnahme auf 1 beschrieben und veranschaulicht ist,
mit Ausnahme der im Folgenden beschriebenen Unterschiede. Die Speicherbank 106b umfasst
einen Zeilenadresszähler
(RAC) 108, einen Multiplexer 112, einen Zeilendecodierer 116,
ein Speicherarray 120, das einen Paritätsspeicher 122 umfasst,
Leseverstärker 124 und
eine I/O-Torsteuerungsmaskenlogik 128. Die Speicherbank 106 umfasst
auch einen Datenweg 132, einen Spaltendecodierer 136,
einen Multiplexer 140, einen Spaltenadresszähler (CAC) 144,
Register 150, eine Paritätserzeugungs- und Fehlerprüfschaltung 152,
Fehlerregister 160, die Zeilenadress- (RA-), Spaltenadress-
(CA-) und Datenregister 163 umfassen, einen Fehleradress-
und Daten- (ERROR_ADD_DATA-) Block 169 und einen Multiplexer
(MUX) 129.
-
Ein
Eingang des Multiplexers 129 ist durch Datenleitungen 167 elektrisch
mit dem Fehleradress- und Datenblock 169 gekoppelt. Ein
Eingang/Ausgang des Multiplexers 129 ist durch Datenleitungen 130 elektrisch
mit der I/O-Torsteuerungsmaskenlogik 128 gekoppelt.
Ein Eingang/Ausgang des Multiplexers 129 ist durch Datenleitungen 131 mit
dem Datenweg 132 elektrisch gekoppelt. Der Multiplexer 129 ist
konfiguriert, um während
normaler Lese- und Schreiboperationen Daten zwischen der I/O-Torsteuerungsmaskenlogik 128 und
dem Datenweg 132 zu leiten und für versagende Speicher arrayorte
auf eine Selbstauffrischungsbeendigung hin korrigierte Daten von
dem Fehleradress- und Datenblock 169 zu der I/O-Torsteuerungsmaskenlogik 128 zu
leiten.
-
Bei
diesem Ausführungsbeispiel
empfangen die Fehlerregister 160 das Fehlerflagsignal an
dem Fehlerflagsignalweg 158 und die Adressen von defekten
Speicherarryorten und die korrigierten Daten für die defekten Speicherarrayorte
an dem Signalweg 156 und liefern das ST_ERROR-Signal an
dem ST_ERROR-Signalweg 164. Die Zeilenadressen, Spaltenadressen
und korrigierten Daten für
versagende Speicherarrayorte werden in den Zeilenadress-, Spaltenadress-
und Datenregistern 163 gespeichert. Auf eine Selbstauffrischungsbeendigung hin
werden die korrigierten Daten für
die versagenden Speicherarrayorte, die in den Fehlerregistern 160 gespeichert
sind, in die versagenden Speicherarrayorte in dem Speicherarray 120 zurückgeschrieben,
ohne an den versagenden Speicherarryorten zuerst erneut auf Fehler
zu überprüfen.
-
6 veranschaulicht
ein Zeitdiagramm 300, das ein Ausführungsbeispiel der Zeitgebung
von Signalen zum Erfassen von Fehlern bei dem Speicherarray 120 auf
einen Selbstauffrischungseintritt hin veranschaulicht. Das Zeitdiagramm 300 umfasst ein
RA-Signal 208 und ein CA-Signal 210. Das Zeitdiagramm 300 umfasst
auch einen Detailabschnitt, wie derselbe bei 302 angezeigt
ist, der ein Internoperationssignal 212, das CA-Signal 210,
ein EFLG-Signal 216, ein Fehlerregistersignal 256 und
ein ST_ERROR-Signal 258 an dem ST_ERROR-Signalweg 164 umfasst.
Eine Paritätserzeugung,
wie dieselbe durch Block 200 angezeigt ist, wird vorhergehend
durchgeführt,
wie es unter Bezugnahme auf 2 veranschaulicht
und beschrieben ist. Die Selbstauffrischung wird durch ein Befehlssignal 204 aufrechterhalten,
und ein CLK-Signal 202 und
ein CKE-Signal 206 bleiben logisch niedrig, wie es durch Block 251 angezeigt
ist.
-
Ansprechend
auf ein Verstreichen der erweiterten Auffrischperiode 232 wird
eine Fehlerprüfung des
Speicherarrays 120 eingeleitet. Der Zeilenadresszähler 108 liefert
eine Zeilenadresse „R
+ 1" an dem RA-Signal 208 bei 257.
Bei 257 wird die Zeile „R + 1" durch den Zeilendecodierer 116 aktiviert.
Der Spaltenadresszähler 144 liefert
eine Spaltenadresse „00" an dem CA-Signal 210 bei 255.
Der Zeilenadresszähler 108 inkrementiert
durch jede Zeilenadresse des Speicherarrays 120 an dem
RA-Signal 208, wie es bei 228 angezeigt ist. Für jede Zeilenadresse
inkrementiert der Spaltenadresszähler 144 durch
jede Spaltenadresse des Speicherarrays 120 an dem CA-Signal 210,
wie es bei 230 angezeigt ist. Vor jeder Zeilenadressänderung,
wie z. B. der Zeilenadressänderung,
die bei 253 angezeigt ist, wird das Speicherarray 120 vorgeladen.
-
Die
Operationen, die bei jeder Zeilenadresse und Spaltenadresse durchgeführt werden,
sind in dem Detailabschnitt angezeigt, der bei 302 angezeigt ist.
Für jede
Zeilenadresse und Spaltenadresse liefert die Speichersteuerung 102 einen
Daten-und-Paritätsbits-Lesen-Befehl
bei 260 an dem Internoperationssignal 212. Eine
festgelegte Anzahl von Datenbits, wie z. B. 64 Bits, und die entsprechenden
Paritätsbits
werden bei der ausgewählten
Zeilenadresse und der ausgewählten
Spaltenadresse (bei diesem Beispiel Zeilenadresse „R + 1" und Spaltenadresse „01") von dem Speicherarray 120 und
dem Paritätsspeicher 122 gelesen.
Die Speichersteuerung 102 liefert einen Fehlerprüfbefehl
bei 262 an dem Internoperationssignal 212. Ansprechend
auf den Fehlerprüfbefehl
prüft die
Paritätserzeugungs-
und Fehlerprüfschaltung 152 bei
den gelesenen Daten basierend auf den entsprechenden gelesenen Paritätsbits auf
Fehler.
-
Falls
keine Fehler erfasst werden, liefert die Paritätserzeugungs- und Fehlerprüfschaltung 152 ein
logisch niedriges EFLG-Signal 216. Falls ein oder mehr
Paritätsfehler
erfasst werden, liefert die Paritätserzeugungs- und Fehlerprüfschaltung 152 ein
logisch hohes EFLG-Signal 216 bei 304.
-
Ansprechend
auf ein logisch niedriges EFLG-Signal, das keine Fehler anzeigt,
liefert die Speichersteuerung 102 einen Keine-Operation- (NOP-)
Befehl an dem Internoperationssignal 212 bei 261.
Ansprechend auf ein logisch hohes EFLG-Signal 216 bei 304,
das einen oder mehr Fehler anzeigt, liefert die Speichersteuerung 102 einen
Register-mit-korrigierten-Daten-Schreiben-Befehl
bei 306 an dem Internoperationssignal 212. Ansprechend
auf den Register-mit-korrigierten-Daten-Schreiben-Befehl
bei 306 korrigiert die Paritätserzeugungs- und Fehlerprüfschaltung 152 die
Fehler und schreibt die korrigierten Daten und die Zeilenadresse
und Spaltenadresse, wo der Fehler erfasst wurde, in die Fehlerregister 160,
wie es bei 308 an dem Fehlerregistersignal 256 angezeigt
ist. Ebenfalls ansprechend auf das logisch hohe EFLG-Signal 216 bei 304 liefern
die Fehlerregister 160 ein logisch hohes ST_ERROR-Signal 258 bei 310.
Bei 265 wiederholt sich der Fehlerprüfprozess für die nächste Spaltenadresse („02").
-
Der
Fehlerprüfprozess
wird fortgesetzt, bis das gesamte Speicherarray 120 auf
Fehler geprüft und
korrigierte Daten in die Fehlerregister 160 geschrieben
worden sind, falls Fehler erfasst werden. Nach dem Prüfen des
gesamten Speicherarrays 120 auf Fehler wird die Selbstauffrischung
fortgesetzt, wie es bei 254 angezeigt ist.
-
7 ist
ein Zeitdiagramm 350, das ein Ausführungsbeispiel der Zeitgebung
von Signalen zum Korrigieren von Fehlern bei einem Speicherarray 120 auf
eine Selbstauffrischungsbeendigung hin veranschaulicht. Das Zeitdiagramm 350 umfasst
ein CKE-Signal 206, ein RA-Signal 272, ein CA-Signal 274,
ein ECC_CLK-Signal 276 und ein Internoperationssignal 212.
-
Das
CKE-Signal 206 wird bei 288 logisch hoch, was
eine Selbstauffrischungsbeendigung anzeigt. Auf eine Selbstauffrischungsbeendigung
hin taktet das ECC_CLK-Signal 276 jede Zeilenadresse, Spaltenadresse
und korrigierte Daten aus, die in den Zeilenadress-, Spaltenadress-
und Datenregistern 163 gespeichert sind, wie es bei 278 angezeigt
ist. Für
jede Zeilenadresse und Spaltenadresse liefert die Speichersteuerung 102 einen
In-Speicherzellen-zurückschreiben-Befehl bei 352 an
dem Internoperationssignal 212. Ansprechend auf den In-Speicherzellen-zurückschreiben-Befehl
bei 352 werden die korrigierten Daten in das Speicherarray 120 zurückgeschrieben.
Die Selbstauffrischungsbeendigungszeit hängt von der Anzahl von Fehlern
und der Größe der Fehlerregister 160 ab.
Bei einem Ausführungsbeispiel
wird der Fehlerkorrekturprozess auf eine Selbstauffrischungsbeendigung
hin in etwa 100 ns–1 μs durchgeführt.
-
8 ist
ein Blockdiagramm, das ein Ausführungsbeispiel
eines Abschnitts 400 eines DRAM 100 veranschaulicht,
der Fehlerregister 160 zum Speichern von Speicherarrayadressen
und korrigierten Daten zur Verwendung als Ersatzspeicherung für versagende
Speicherarrayorte umfasst. Dies ist einer Redundanz- oder Einbitreparatur ähnlich.
Bei diesem Ausführungsbeispiel
wird der Fehlererfassungsprozess, der auf einen Selbstauffrischungseintritt
hin durchgeführt
wird, wie es im Vorhergehenden unter Bezugnahme auf 6 beschrieben
und veranschaulicht ist, durchgeführt. Auf eine Selbstauffrischungsbeendigung
hin wird jedoch keine Rückschreiboperation
durchgeführt.
-
Der
Abschnitt 400 umfasst einen Adresseingangsblock 402,
Fehlerregister 160, die Zeilenadress-, Spaltenadress- und
Datenregister 163 umfassen, und einen Datenweg 132.
Der Adresseingangsblock 402 ist durch einen Signalweg 404 elektrisch mit
den Fehlerregistern 160 gekoppelt. Der Adresseingangsblock 403 liefert
eine Zeilenadresse und eine Spaltenadresse zum Lesen von Daten von
dem Speicherarray 120 oder zum Schreiben von Daten in dasselbe.
Die Fehlerregister 160 sind durch Datenleitungen 408 elektrisch
mit dem Datenweg 132 gekoppelt. Ein Übereinstimmungssignal an einem Übereinstimmungssignalweg 406 gibt
Datenleitungen 408 frei, um Daten an den Datenweg 132 zu
leiten, oder sperrt Daten leitungen 408, um Daten daran
zu hindern, zu dem Datenweg 132 zu gehen.
-
Bei
Betrieb wird nach einer Selbstauffrischungsbeendigung die Adresse,
die in den Adressblock 402 eingegeben wird, die durch die
Speichersteuerung 102 geliefert wird, mit Adressen verglichen,
die in den Fehlerregistern 160 gespeichert sind. Falls
eine Übereinstimmung
gefunden wird, werden die korrigierten Daten, die in den Datenregistern 163 gespeichert
sind, anstelle der Daten, die in dem Speicherarray 120 an
der ausgewählten
Adresse gespeichert sind, zu dem Datenweg 132 geleitet. So
lange die Leistung zu dem DRAM 100 aufrechterhalten wird,
kann das Zurückschreiben
in das Speicherarray 120 auf eine Selbstauffrischungsbeendigung
hin ausgelassen werden.
-
9 ist
ein Blockdiagramm, das ein Ausführungsbeispiel
eines Abschnitts 450 des DRAM 100 veranschaulicht,
der Fehlerregister 160 zum Speichern von Zeilenadressen
von Endbits zum häufigeren
Auffrischen der Endbits umfasst. Bei diesem Ausführungsbeispiel wird der Fehlererfassungsprozess
durchgeführt,
der auf einen Selbstauffrischungseintritt hin durchgeführt wird,
wie es im Vorhergehenden unter Bezugnahme auf die 2 und 3 beschrieben
und veranschaulicht ist, mit der Ausnahme, dass die Spaltenadressen
für versagende
Speicherarrayorte von den Fehlerregistern 160 ausgeschlossen
sind. Auf eine Selbstauffrischungsbeendigung hin wird keine Rückschreiboperation durchgeführt.
-
Die
Fehlerregister 160 umfassen Zeilenadressregister 454.
Die Fehlerregister 160 sind durch einen Signalweg 456 elektrisch
mit einem Zeilenadresszähler 108 gekoppelt.
Bei Zeilen, die ein Endbit enthalten, wie es durch Zeilenadressen
angezeigt ist, die in den Zeilenadressregistern 454 gespeichert sind,
erfolgt die Auffrischung häufiger
als bei Zeilenadressen, die nicht in den Zeilenadressregistern 454 gespeichert
sind. Die häufigere
Auffrischung verhindert, dass die Endbits versagen. Die Zeilenadressen, die
in den Fehlerregistern 454 gespeichert sind, werden mit
den Zeilenadressen verglichen, die durch den Zeilenadresszähler 108 geliefert
werden. Falls eine Übereinstimmung
gefunden wird, wird die Zeile häufiger
aufgefrischt. Falls z. B. ein oder mehr höchstwertige Bits bei dem Zeilenadresszähler 108 ignoriert
werden, wenn der Vergleich durchgeführt wird, kann die Auffrischung öfter durchgeführt werden.
-
Ausführungsbeispiele
der vorliegenden Erfindung liefern einen DRAM mit einem ECC zum
Erfassen und Korrigieren von Endbits, ohne die Selbstauffrischungsbeendigungszeitgebung
wesentlich zu beeinflussen. Bei einem Ausführungsbeispiel werden auf eine
Selbstauffrischungsbeendigung hin vorhergehend versagende Speicherarrayorte
erneut geprüft
und korrigiert. Bei einem weiteren Ausführungsbeispiel werden auf eine
Selbstauffrischungsbeendigung hin vorhergehend korrigierte Daten
automatisch in die versagenden Speicherarrayorte zurückgeschrieben.
Bei einem weiteren Ausführungsbeispiel
führen
die Fehlerregister eine Redundanzfunktion zum Ersetzen der versagenden
Speicherarrayorte durch. Bei einem weiteren Ausführungsbeispiel werden die versagenden
Speicherarrayorte häufiger
aufgefrischt, um zukünftige
Fehler der Speicherarrayorte zu verhindern. Alle diese Ausführungsbeispiele
ermöglichen,
dass die Auffrischperiode erweitert wird, wodurch der Auffrischstrom
verringert wird. Durch ein Verringern des Auffrischstromes wird die
Gesamtleistungsaufnahme des Speichers verringert.