-
GEBIET DER ERFINDUNG
-
Die vorliegende Erfindung betrifft dynamische Speicher und betrifft insbesondere die Auffrischung dynamischer Speicher.
-
HINTERGRUND
-
Konventionelle dynamische Speichereinrichtungen, etwa dynamische Speicher mit wahlfreiem Zugriff (DRAM) erfordern, dass alle Reihen bzw. Zeile in jedem Auffrischungsintervall (typischerweise 64 ms) aufgefrischt werden, um die Daten zu bewahren, die in dem RAM gespeichert sind. Wenn die Daten nicht aufgefrischt werden, dann geht im Laufe der Zeit die Ladung, die die Daten kodiert, in den Speicherzellen durch Leckströme verloren. Tatsächlich können die meisten DRAM-Zeilen viele Sekunden zwischen Auffrischvorgängen an der oberen Grenztemperatur arbeiten, und können die Daten bei typischen Temperaturen sogar länger halten. Typischerweise ergibt sich das kurze Auffrischungsintervall aus wenigen „leckenden” Speicherzellen. Nur die „leckenden” Speicherzellen müssen die schnelle Auffrischungsrate erhalten. Ein unnötiges Auffrischen aller Zeile mit der Rate, die von den „leckenden” Speicherzellen benötigt wird, verschwendet beträchtliche Leistung, wenn der DRAM ansonsten nicht verwendet wird (das heißt in einem Wartemodus ist). Die Verschwendung von Leistung ist insbesondere in mobilen Anwendungen problematisch, in der die Energie in Batterien gespeichert ist.
-
Es besteht daher ein Bedarf zur Reduzierung der Auffrischungsraten und/oder anderer im Stand der Technik auftretender Probleme.
-
ÜBERBLICK
-
Es werden ein System und ein Verfahren zur Auffrischung eines dynamischen Speichers bereitgestellt. Ein erstes Gebiet eines Speichers wird mit einer ersten Auffrischungsrate aufgefrischt, und ein zweites Gebiet des Speichers wird mit einer zweiten Auffrischungsrate aufgefrischt, die sich von der ersten Auffrischungsrate unterscheidet. Eine Speichersteuerung ist ausgebildet, das erste Gebiet eines Speichers mit der ersten Auffrischungsrate aufzufrischen, und das zweite Gebiet des Speichers mit der zweiten Auffrischungsrate aufzufrischen.
-
KURZE BESCHREIBUNG DER ZEICHNUNGEN
-
1 zeigt ein Flussdiagramm eines Verfahrens zur Auffrischung von Gebieten eines DRAM mit unterschiedlichen Raten gemäß einer Ausführungsform;
-
2A zeigt unterschiedliche Auffrischungsraten für unterschiedliche Gebiete eines dynamischen Speichers gemäß einer Ausführungsform;
-
2B zeigt eine Speichersteuerung gemäß einer Ausführungsform;
-
3 zeigt ein weiteres Flussdiagramm eines Verfahrens zur Auffrischung von Zeilen eines DRAM mit unterschiedlichen Raten gemäß einer Ausführungsform;
-
4A zeigt ein Flussdiagramm für einen Schritt, der in 3 gezeigt ist, gemäß einer Ausführungsform;
-
4B zeigt ein Flussdiagramm für einen weiteren Schritt, der in 3 gezeigt ist, gemäß einer Ausführungsform;
-
4C zeigt ein Flussdiagramm für einen weiteren, in 3 gezeigten Schritt gemäß einer Ausführungsform; und
-
5 zeigt ein anschauliches System, in welchem die diversen Architekturen und/oder Funktionen der diversen vorhergehenden Ausführungsformen realisiert werden können.
-
DETAILLIERTE BESCHREIBUNG
-
Aktuelle DRAMs erfordern, dass alle Zeilen einmal in jedem Auffrischungsintervall (typischerweise 64 ms) aufgefrischt werden. Tatsächlich können jedoch die meisten DRAM-Seiten mehrere Sekunden zwischen Aufrischungsvorgängen an der oberen Grenztemperatur arbeiten und können ihre Daten bei typischen Temperaturen sogar noch länger halten. Das kurze Auffrischungsintervall wird durch einige wenige „leckende” Speicherpositionen notwendig gemacht. Nur diese Positionen erfordern die sehr schnelle Auffrischungsrate. Ein unnötiges Auffrischen aller DRAM-Seiten mit der Rate, die von der schlechtesten Seite gefordert wird, verschwendet beträchtliche Leistung, wenn der DRAM ansonsten nicht verwendet wird (d. h., in einem Wartezustand ist). Diese Verschwendung ist insbesondere in mobilen Anwendungen problematisch.
-
Anstatt sich nur auf die Auffrischungsrate, die von dem DRAM-Hersteller spezifiziert wird, zu verlassen, können unterschiedliche Gebiete des DRAM während des Betriebs charakterisiert werden und die Charakterisierungsinformation kann verwendet werden, um unterschiedliche Gebiete mit unterschiedlichen Auffrischungsraten aufzufrischen, um dadurch Leistung im Wartezustand zu reduzieren.
-
1 zeigt ein Flussdiagramm 100 eines Verfahrens zur Auffrischung von Gebieten eines DRAM mit unterschiedlichen Raten gemäß einer Ausführungsform. Im Schritt 110 werden Auffrischungsraten für ein erstes Speichergebiet und ein zweites Speichergebiet ermittelt. In einer Ausführungsform entspricht jedes Gebiet einer oder mehreren Zeilen einer DRAM-Einrichtung oder einer oder mehreren Seiten einer DRAM-Einrichtung. Die Auffrischungsraten können ermittelt werden, indem die unterschiedlichen Zeilen oder Seiten einer DRAM-Einrichtung charakterisiert werden. Im Schritt 120 wird das erste Speichergebiet mit einer ersten Auffrischungsrate aufgefrischt. Im Schritt 130 wird das zweite Speichergebiet mit einer zweiten Auffrischungsrate, die sich von der ersten Auffrischungsrate unterscheidet, aufgefrischt. In einer Ausführungsform ist entweder die erste oder die zweite Auffrischungsrate diejenige Auffrischungsrate, die für das DRAM-Bauteil von dem DRAM-Zulieferer oder dem Hersteller spezifiziert ist. In einer weiteren Ausführungsform ist weder die erste noch die zweite Auffrischungsrate diejenige Auffrischungsrate, die für das DRAM-Bauteil spezifiziert ist.
-
Es wird nun anschaulichere Information im Hinblick auf diverse optionale Architekturen und Merkmale angegeben, mit der die zuvor genannte Technik realisiert werden kann oder auch nicht, wobei dies von den Wünschen des Anwenders abhängt. Es sollte jedoch dringend beachtet werden, dass die folgende Information nur für anschauliche Zwecke angegeben ist und in keiner Weise als Einschränkung erachtet werden sollte. Jedes der folgenden Merkmale kann optional mit oder ohne Einschluss anderer beschriebener Merkmale umgesetzt werden.
-
In einer Ausführungsform kann für jedes externe DRAM-Bauteil, das mit einer Recheneinrichtung gekoppelt ist, eine Gruppe an Auffrischungsregistern in einer Speichersteuerung einen Bereich von Seitenadressen (Bank und Zeile), die ein Gebiet an Speicher und Charakterisierungsinformation definieren, speichern. Die Charakterisierungsinformation umfasst das Auffrischungsintervall für das Speichergebiet, wobei das Auffrischungsintervall der Kehrwert der Auffrischungsrate oder Raten ist, mit der das Gebiet aufgefrischt werden sollte. Eine Speicherauffrischungseinheit durchläuft jedes Gebiet, wobei Zeilenaktivierungsbefehl- und Vorladeoperationen ausgeführt werden, um jede Zeile oder Seite in dem Gebiet entsprechend der Auffrischungsrate, die für das Gebiet angegeben ist, aufzufrischen. Um zu ermitteln, welche Gebiete mit welcher gegebenen Rate aufzufrischen sind, umfasst die Speichersteuerung eine temporäre Speicherressource, die ausgebildet ist, eine Kopie der Daten zu speichern, die in dem Gebiet gespeichert sind, während Eigenschaften des DRAM für das Gebiet gemessen werden.
-
2A zeigt unterschiedliche Auffrischungsraten für unterschiedliche Gebiete eines dynamischen Speichers 200 gemäß einer Ausführungsform. Jedes Muster repräsentiert eine andere Auffrischungsrate und jedes Gebiet umfasst mindestens eine Zeile an Speicherplätzen. Zeilen innerhalb des Auffrischungsgebiets 210 sollten mit einer ersten Auffrischungsrate aufgefrischt werden. Zeilen innerhalb der Auffrischungsgebiete 215, 225 und 235 sind gegebenenfalls noch nicht charakterisiert, und können daher mit der Rate aufgefrischt werden, die von dem DRAM-Zulieferer angegeben ist. Die Zeilen in den Auffrischungsgebieten 220A und 220B sollten mit einer zweiten Auffrischungsrate aufgefrischt werden.
-
Es kann eine Reihe von verschiedenen Techniken eingesetzt werden, um ein Speichergebiet zu ermitteln, das mit einer Rate aufgefrischt werden kann, die sich von der von dem DRAM-Zulieferer angegebenen Rate unterscheidet. Eine Vorgehensweise besteht darin, jedes Auffrischungsgebiet unter Anwendung einer einzelnen Adresse (Bank und/oder Zeile) zu spezifizieren. Die einzelne Adresse wird dargestellt, indem 2 Bits gespeichert werden, die 0, 1 oder X (egal) für jedes Bit der einzelnen Adresse in einem Auffrischungsregister kodieren. Wenn beispielsweise Bank = 0X01 und Zeile = 0000.0100.0X11, dann enthält das Gebiet die Zeilen 0x043 und 0x047 der Bänke 1 und 5. Wie in 2A gezeigt ist, kann gemäß den Auffrischungsgebieten 220A und 220B jedes Auffrischungsgebiet in einem physikalischen Speicher unzusammenhängend sein. Anders ausgedrückt, ein spezielles Auffrischungsgebiet kann einen ersten Teil eines physikalischen Speichers und einen zweiten Teil des physikalischen Speichers, der mit dem ersten Teil des physikalischen Speichers nicht zusammenhängend ist, umfassen. In einer alternativen Vorgehensweise wird eine Anfangsadresse (Bank und Zeile) und eine and Adresse (Bank und Zeile) gespeichert, um jedes Auffrischungsgebiet anzugeben. Wenn der Anfang beispielsweise Bank = 0011, Zeile = =0x045 und die and Adresse Bank = 0100, Zeile = 0x32 ist, sind alle Speicherseiten von der Bank 3, Zeile 0x045 bis Bank 4, Zeile 0x32 in dem Auffrischungsgebiet enthalten.
-
In einer Ausführungsform kann ein Auffrischungsregister ein Prioritätssubgebiet speichern. Ein Prioritätssubgebiet ist ein kleines Auffrischungsgebiet, das aus einem größeren Auffrischungsgebiet herausgelöst ist. Beispielsweise kann ein großes Auffrischungsgebiet mit Priorität = 1, Bank = 01XX, Zeile = 0000.0100.XXXX und einem Auffrischungsintervall = 4 s definiert sein. Ein kleines Auffrischungsgebiet innerhalb des großen Auffrischungsgebiets kann durch ein zweites Auffrischungsregister mit Priorität = 2, Bank = 0100, Zeile = 0000.0100.0111, Auffrischungsintervall = 1 s definiert sein. Zusammen geben die Auffrischungsregister an, dass die Zeilen 0x040 bis 0x04F in den Bänken 4–7 alle 4 Sekunden aufgefrischt werden, mit der Ausnahme der Zeile 0x47 der Bank 4, die alle 1 Sekunden aufgefrischt wird. Wenn eine Adresse in mehreren Auffrischungsgebieten enthalten ist, wird das Auffrischungsregister mit der höchsten Priorität, das mit dieser Adresse übereinstimmt, ausgewählt. Es sollte beachtet werden, dass, obwohl diverse optionale Merkmale hierin in Verbindung mit der Definition von Auffrischungsgebieten eines Speichers angegeben sind, derartige Merkmale nur für anschauliche Zwecke angegeben sind und nicht als irgendeine Einschränkung erachtet werden sollten.
-
2B zeigt eine Speichersteuerung 250 gemäß einer Ausführungsform. Die Speichersteuerung 250 enthält eine Charakterisierungseinheit 260, eine Auffrischungstabelle 265, einen Speichergebiet-Speicher (Direktzugriffsspeichergebiet-Speicher, Memory Region Storage) 255 und eine Speicherauffrischungseinheit 270. Die Speichersteuerung 250 umfasst ferner andere Komponenten (nicht gezeigt), um Daten aus dem DRAM 280 zu lesen und Daten in den DRAM 280 zu schreiben. Die Auffrischungstabelle 265 enthält eine Gruppe aus einem oder mehreren Auffrischungsregistern für jede externe DRAM-Einrichtung, die mit der Speichersteuerung 250 gekoppelt ist. Zusätzlich zur Kodierung eines Auffrischungsgebiets (eine Gruppe aus Seiten) enthält ein Auffrischungsregister auch ein Auffrischungsintervall, einen Zeitgeber und ein Feld für die nächste Adresse. Wie zuvor beschrieben ist, kann ein Auffrischungsregister auch eine Priorität und ein entsprechendes Auffrischungssubgebiet zusammen mit einem Auffrischungsintervall, Zeitgeber und einer nächsten Adresse für das Subgebiet kodieren. In einer Ausführungsform ist die Auffrischungstabelle 265 als ein inhaltsadressierbarer Speicher (CAM) realisiert. In einer Ausführungsform ist die Auffrischungstabelle 265 ein nicht-flüchtiger Speicher, so dass die in den Auffrischungsregistern enthaltenen Charakterisierungsdaten nicht erneut erzeugt werden müssen, wenn ein System, das die Speichersteuerung 250 enthält, eingeschaltet wird.
-
Der Zeitgeber und die Felder für die nächste Adresse werden von der Speicherauffrischungseinheit 270 verwendet. Die Speicherauffrischungseinheit 270 durchläuft gleichzeitig jedes Auffrischungsgebiet (und Auffrischungssubgebiet) und führt Zeilenaktivierungs- und Vorladeoperationen an der Gruppe aus Adressen (d. h., Zeile oder Seite) aus, die der nächsten Adresse entsprechen, wenn der Zeitgeber, der dem Auffrischungsgebiet entspricht (oder dem Auffrischungssubgebiet) abgelaufen ist. Die Speicherauffrischungseinheit 270 prüft die Zeitgeber in jedem Zeitschritt, setzt abgelaufene Zeitgeber zurück und aktualisiert die nächste Adresse für ein Auffrischungsgebiet (oder Auffrischungssubgebiet), wenn eine Auffrischung ausgeführt wird. Die Zeitgeber für jedes Auffrischungsgebiet (und Auffrischungssubgebiet) werden in jedem Zeitschritt aktualisiert (d. h., verringert).
-
Um die Auffrischungsrate zu ermitteln, mit der ein Gebiet innerhalb des DRAM 280 aufgefrischt werden sollte, umfasst die Speichersteuerung 250 einen Speichergebiet-Speicher 255, der ausgebildet ist, eine Kopie der in dem Gebiet gespeicherten Daten in dem Speichergebiet-Speicher 255 zu speichern, während die Charakterisierungseinheit 260 die Datenhalteeigenschaften des Gebiets misst.
-
Um das Auffrischungsintervall für jedes Speichergebiet zu ermitteln, kopiert die Charakterisierungseinheit 260 temporär die in dem Speichergebiet gespeicherten Daten in den Speichergebiet-Speicher 255. Die Charakterisierungseinheit 260 misst dann die Datenhalteeigenschaften des Speichergebiets, indem Datenmuster (beispielsweise abwechselnde 1'en und 0'en abgewechselt werden 11010...10) in das Speichergebiet in dem DRAM 280 mittels der Speicherauffrischungseinheit 270 geschrieben werden, indem eine Haltezeit gewartet wird, bevor das Speichergebiet aus dem DRAM 280 mittels der Speicherauffrischungseinheit 270 ausgelesen wird, und indem geprüft wird, ob die Daten bewahrt wurden, indem die aus dem DRAM 280 gelesenen Daten mit den Mustern verglichen werden, die in das Speichergebiet geschrieben wurden.
-
Eine anschauliche Charakterisierungsprüfung zur Messung der Datenhalteeigenschaften eines Speichergebiets besteht darin, das Schreiben, das Warten und das Auslesen des Speichergebiets unter Anwendung eines Vektors aus exponentiell anwachsenden Haltezeitdauern zu wiederholen. In einer Ausführungsform beginnt die Charakterisierungseinheit 260 mit der Haltezeitdauer von 64 ms, dann stellt die Charakterisierungseinheit 260 die Haltezeitdauer auf 128 ms, 0,25 Sekunden, 0,5 Sekunden, dann 1 Sekunde usw. ein. Für jede Haltezeitdauer wiederholt die Charakterisierungseinheit 260 das Schreiben und Lesen für einige unterschiedliche Datenmuster. Wenn die Charakterisierungseinheit 260 einen Fehler erkennt (d. h., das Muster, das geschrieben wurde, stimmt nicht mit dem ausgelesenen Muster überein), dann stellt die Charakterisierungseinheit 260 die Haltezeitdauer für das Speichergebiet ein. In einer Ausführungsform stellt die Charakterisierungseinheit 260 das Auffrischungsintervall mindestens um zwei Schritte zurück entsprechend dem Vektor der Haltezeitdauern, und wenn die zurückgesetzte Haltezeitdauer nicht getestet worden ist, dann wird das Muster für das Schreiben und Lesen wiederholt. Wenn beispielsweise der Fehler für die Haltezeitdauer von 4 Sekunden aufgetreten ist, ist die zurückgesetzte Haltezeitdauer 1 Sekunde. Wenn die zurückgesetzte Haltezeitdauer keinen Fehler erzeugt, keine die zurückgesetzte Haltezeitdauer in der Auffrischungstabelle 265 als das Auffrischungsintervall für das Speichergebiet gespeichert werden.
-
Auffrischungsintervalle können sensitiv sein im Hinblick auf Temperatur und/oder Spannungspegel. Die Speicherauffrischungseinheit 270 kann ausgebildet sein, die Auffrischungsintervalle so einzustellen, dass Auffrischungsintervalle verlängert werden (d. h., die Auffrischungsrate verringert sich), wenn der DRAM 280 bei tieferen Temperaturen arbeitet, als dies für das Auffrischungsintervall der Fall war, das in der Auffrischungstabelle 265 gespeichert ist. In ähnlicher Weise kann die Speicherauffrischungseinheit 270 ausgebildet sein, die Auffrischungsintervalle so einzustellen, dass Auffrischungsintervalle verkürzt werden (d. h. die Auffrischungsrate wird erhöht), wenn der DRAM 280 bei kleineren Spannungen arbeitet als diejenigen, die bei der Speicherung des Auffrischungsintervalls in der Auffrischungstabelle 265 angewendet wurde.
-
Wenn Temperaturmesswerte verfügbar sind, kann die Charakterisierungseinheit 260 die Temperaturmesswerte verwenden, um die Werte der Auffrischungstabelle, die in der Auffrischungstabelle 265 für das Speichergebiet gespeichert sind, so einstellen, dass sie einer Referenztemperatur entsprechen. Wenn beispielsweise die Charakterisierung bei einer Temperatur am Halbleiterübergang von 60°C ausgeführt werden und eine Referenztemperatur für den Halbleiterübergang 40°C beträgt, dann kann das in der Auffrischungstabelle 265 für das Speichergebiet gespeicherte Auffrischungsintervall um einen Faktor von 4 vergrößert werden (unter der Annahme, dass sich das Auffrischungsintervall für einen –10° Unterschied in der Temperatur am Halbleiterübergang relativ zu der Referenztemperatur am Halbleiterübergang ändert), um der Referenztemperatur am Halbleiterübergang zu entsprechen. Die Charakterisierungseinheit 260 kann ferner ausgebildet sein, die Werte für die Auffrischungsintervalle, die in der Auffrischungstabelle 265 für die Speichergebiet gespeichert sind, entsprechend dem gemessenen Spannungspegel und einem Referenz Spannungspegel einzustellen.
-
Die Speicherauffrischungseinheit 270 kann ausgebildet sein, die Werte der Auffrischungsintervalle entsprechend den Temperaturmesswerten einzustellen, wenn ein Speichergebiet aufgefrischt wird. Wenn beispielsweise die aktuelle Temperatur am Halbleiterübergang zu 60°C gemessen wird und die Referenztemperatur für den Halbleiterübergang 40°C beträgt, dann kann das Auffrischungsintervall, das aus der Auffrischungstabelle 265 für das Speichergebiet ausgelesen wird, um einen Faktor von 4 reduziert werden (wobei angenommen ist, dass das Auffrischungsintervall halbiert wird für jeden +10°-Unterschied in der Temperatur am Halbleiterübergang im Vergleich zu der Referenztemperatur am Halbleiterübergang), um die Rate zu steuern, mit der die Speicherauffrischungseinheit 270 das Speichergebiet auffrischt. Die Speicherauffrischungseinheit 270 kann ferner ausgebildet sein, die Werte für die Auffrischungsintervalle, die aus der Auffrischungstabelle 265 für die Speichergebiete ausgelesen werden, entsprechend dem gemessenen Spannungspegel und entsprechend einem Referenzspannungspegel einzustellen.
-
Es sollte beachtet werden, dass, obwohl diverse optionale Merkmale in Verbindung mit der Charakterisierung von Gebieten eines Speichers und für die Speicherung der Charakterisierungsinformation angegeben sind, derartige Merkmale nur für anschauliche Zwecke gedacht sind und nicht als irgendeine Einschränkung zu betrachten sind.
-
Für einige DRAMs 280 haben die meisten Speichergebiet sehr lange Auffrischungsintervalle (beispielsweise einige 10 Sekunden) – und nur ein geringer Bruchteil des Speichers in dem DRAM 280, häufig nur eine einzelne Seite oder Zeile, wird ein Auffrischungsintervall für den schlechtesten Falle (beispielsweise Ziffer 64 ms) aufweisen. Für DRAMs 280, die Anteil an Speicher besitzen, der besonders leckend ist (d. h., mit großen Auffrischungsraten oder kurzen Auffrischungsintervallen), kann es praktisch sein, den Anteil des Speichers, der das schlechteste Auffrischungsintervall besitzt, in dem Speichergebiet-Speicher 255 zu speichern. Dazu werden alle Zugriffe auf das eine oder die mehreren Speichergebiet auf den Speichergebiet-Speicher 255 abgebildet, so dass das entsprechende eine oder die mehreren Gebiete an Speicher in dem DRAM 280 ungenutzt bleiben und keine Auffrischung benötigen.
-
In einer Ausführungsform kann ein Teil des Speichergebiet-Speichers 255 für die Verwendung durch die Charakterisierungseinheit 260 verfügbar bleiben.
-
Konventionellerweise konfigurieren DRAM-Zulieferer DRAM-Bauteile so, dass Zeilen mit fehlerhaften Speicherzellen und Zeilen mit extrem kurzen Auffrischungsintervallen durch Ersatzzeilen innerhalb des DRAM-Bauteils ersetzt werden. Jedoch wird eine Ersetzung einer Zeile in dem DRAM-Bauteil nur dazu ausgeführt, dass Zeilen ersetzt werden, die außerhalb der Spezifikation liegen (d. h., sie haben ein Auffrischungsintervall, das kleiner als 64 ms ist). Im Gegensatz dazu ist die Speichersteuerung 250 ausgebildet, die Daten für Zeilen, die innerhalb der Spezifikation liegen, in dem Speichergebiet-Speicher 255 zu speichern, um die gesamte Leistungsaufnahme im Wartemodus zu verringern.
-
3 zeigt ein weiteres Flussdiagramm 300 eines Verfahrens zur Auffrischung von Gebieten eines DRAM mit unterschiedlichen Raten gemäß einer Ausführungsform. Im Schritt 305 werden die in der Auffrischungstabelle 265 gespeicherten Intervalle initialisiert, so dass sie gleich dem Auffrischungsintervall sind, das von dem DRAM-Zulieferer spezifiziert wird. Im Schritt 310 wird ein Speichergebiet von der Charakterisierungseinheit 260 getestet, um eine Charakterisierungsinformation für das Speichergebiet zu erzeugen. Der Schritt 310 kann ausgeführt werden, während ein Bauteil, das die Speichersteuerung 250 enthält, arbeitet, selbst wenn die Speichersteuerung 250 auf den DRAM 280 zugreift, solange die Zugriffe nicht die Prüfung stören, die von der Charakterisierungseinheit 260 ausgeführt wird (d. h., die Zugriffe sollten nicht das gerade charakterisierte Speichergebiet auffrischen). Beispielsweise kann auf andere Speichergebiete zugegriffen werden oder diese können aufgefrischt werden, während ein spezielles Speichergebiet geprüft wird. In einer Ausführungsform werden während der Charakterisierungszugriffe auf das Speichergebiet, das gerade charakterisiert wird, auf den Speichergebiet-Speicher 255 abgebildet, und wenn Daten während der Charakterisierung geschrieben werden, wird der Speichergebiet-Speicher 255 in das Gebiet des DRAM 280, das charakterisiert wurde, zurück kopiert. In einer weiteren Ausführungsform werden während der Charakterisierungszugriffe auf das Speichergebiet, das gerade charakterisierte wird, verzögert, bis die Charakterisierung abgeschlossen ist. Ein anschauliches Verfahren zur Ausführung des Schritts 310 ist in Verbindung mit 4A beschrieben.
-
Im Schritt 315 ermittelt die Charakterisierungseinheit 260, ob die Auffrischungsrate des Speichergebiets die schlechteste Auffrischungsrate ist, die bislang für Speichergebiete, die getestet worden sind, ermittelt worden ist, und wenn dies der Fall ist, werden im Schritt 318 die in dem Speichergebiet gespeicherten Daten chipintern (on-chip) in dem Speichergebiet-Speicher 255 gespeichert (das heißt, Zugriffe auf das eine oder die mehreren Gebiete an Speicher werden auf den Speichergebiet-Speicher 255 abgebildet). In einer Ausführungsform wird das Auffrischungsintervall, das am kürzestem ist (d. h., der niedrigste Wert), als eines betrachtet, das angibt, dass das Speichergebiet die schlechteste Auffrischungsrate hat. In einer Ausführungsform ist der Speichergebiet-Speicher 255 ausgebildet, ein oder mehrere der Speichergebiete zu ersetzen und die Schritte 315 und 318 werden weggelassen.
-
Ansonsten wird im Schritt 350 das Speichergebiet der Auffrischungstabelle 265 hinzugefügt. Ein anschauliches Verfahren zur Ausführung des Schritts 350 ist in Verbindung mit 4B beschrieben. Ein anschauliches Verfahren zur Ausführung des Schritts 350 ist in Verbindung mit 4C beschrieben. Im Schritt 370 frischt die Speicherauffrischungseinheit 270 den DRAM 280 entsprechend der Auffrischungstabelle 265 auf. In einer Ausführungsform werden ein oder mehrere der Schritte 305, 310, 315, 318, 350 und 370 ausgeführt, während das Gerät, das die Speichersteuerung 250 enthält, untätig ist oder nicht arbeitet.
-
4A zeigt ein Flussdiagramm für den Schritt 310, der in 3 gezeigt ist, gemäß einer Ausführungsform. Im Schritt 320 kopiert die Charakterisierungseinheit 260 den Inhalt (d. h., Daten) eines Speichergebiet in dem DRAM 280 in den Speichergebiet-Speicher 255. Im Schritt 325 führt die Charakterisierungseinheit 260 eine Charakterisierungsprüfung an dem Speichergebiet in dem DRAM 280 aus, wobei eine Haltezeitdauer verwendet wird. Im Schritt 330 ermittelt die Charakterisierungseinheit 260, ob ein Fehler während der Haltezeitdauer aufgetreten ist, und wenn dies der Fall ist, stellt im Schritt 335 die Charakterisierungseinheit 260 die Haltezeitdauer ein und kehrt zum Schritt 325 zurück. Wenn ansonsten kein Fehler während der Haltezeitdauer aufgetreten ist, dann ermittelt im Schritt 340 die Charakterisierungseinheit 260, ob weitere Haltezeitdauern verwendet werden sollten, um das Speichergebiet zu charakterisieren, und wenn dies der Fall ist, geht die Charakterisierungseinheit 260 zum Schritt 335 weiter. In einer Ausführungsform stellt die Charakterisierungseinheit 260 sicher, dass im Schritt 340 eine zurückgestufte Haltezeitdauer getestet worden ist. Ansonsten ist der Charakterisierungsvorgang abgeschlossen, und im Schritt 345 stellt die Charakterisierungseinheit 260 die Haltezeitdauer für die Betriebsbedingungen im Vergleich zu Referenzbetriebsbedingungen ein (d. h., einen Referenzspannungspegel und/oder eine Referenztemperatur). Das Auffrischungsintervall, das für das Speichergebiet ermittelt wird, wird als die Haltezeitdauer nach dem Kompensieren im Hinblick auf die Betriebsbedingungen festgelegt.
-
Die Charakterisierungseinheit 260 leitet das Auffrischungsintervall für ein Gebiet der Auffrischungstabelle 265 zu. Die Anzahl an Auffrischungsregistern, die in der Auffrischungstabelle 265 enthalten ist, ist begrenzt. Da ein spezielles Auffrischungsintervall typischerweise nicht für jede Zeile des DRAM 280 gespeichert werden kann, werden die Speichergebiete als Auffrischungsgebiete kodiert, die zwei oder mehr Zeilen (oder Seiten) mit unterschiedlicher Charakterisierungsinformation mit dem gleichen Auffrischungsintervall (das minimale Auffrischungsintervall zweier oder mehrerer Zeilen) enthalten. Anders ausgedrückt, Zeilen mit einem kleinen Auffrischungsintervall werden mit Zeilen zu einer Gruppe zusammengefasst, die ein größeres Auffrischungsintervall besitzen, um die Anzahl an Auffrischungsgebieten auf eine Angabe zu begrenzen, für die die Charakterisierungsinformation in der Auffrischungstabelle 265 gespeichert werden kann.
-
4B zeigt ein Flussdiagramm für den in 3 gezeigten Schritt 350 gemäß einer Ausführungsform. Das in 4B gezeigten Flussdiagramm entspricht einer Ausführungsform der Auffrischungstabelle 265, die die Startadresse und Endadresse speichert, um jedes Auffrischungsgebiet zu definieren. Im Schritt 410 ermittelt die Auffrischungstabelle 265, ob ein Eintrag (d. h., ein Auffrischungsregister) für die Speicherung der Charakterisierungsinformation verfügbar ist, und wenn dies der Fall ist, dann wird im Schritt 440 die Charakterisierungsinformation für das Speichergebiet in dem Eintrag gespeichert. In einer Ausführungsform speichert die Auffrischungstabelle 265 die Charakterisierungsinformation für das Speichergebiet als ein Prioritäts-Subgebiet, wenn das Speichergebiet innerhalb eines Auffrischungsgebiets liegt.
-
Wenn ansonsten keine Einträge im Schritt 410 verfügbar sind, ermittelt im Schritt 420 die Auffrischungstabelle 265 einen Eintrag, der dem Speichergebiet am „nächsten” liegt. Die Nähe kann in Form eines Auffrischungsintervalls des Speichergebiets oder in Form der einzelnen Adresse oder der Startadresse und Endadresse für das Speichergebiet ermittelt werden. In einer Ausführungsform kann die Auffrischungstabelle 265 Einträge mit Auffrischungsintervallen, die kürzer sind als das Auffrischungsintervall des Speichergebiets, als nahe liegend erachten im Vergleich zu Einträgen mit Auffrischungsintervallen, die länger sind als das Auffrischungsintervall des Speichergebiets. Wenn mehr als ein Eintrag als der „nächste” Eintrag für das Speichergebiet ermittelt wird, da die Einträge gleiche Auffrischungsintervalle haben, wird nur ein einzelner Eintrag ausgewählt. Wenn Speichergebiete unter Anwendung einer einzelnen Adresse (Bank und/oder Zeile) spezifiziert sind, wobei jedes Bit unter Anwendung von 2-Bit 0, 1, X-Werten kodiert ist, wird der einzelne Eintrag, der ausgewählt ist, der Eintrag sein mit einer Adresse, die näher gemäß einem Hamming-Abstand zu der Adresse des Speichergebiets liegt. Die Kodierung von einem oder mehreren Bit der einzelnen Adresse kann geändert werden von einer „0” oder „1” zu einem „X”, um das Speichergebiet in den Eintrag einzufügen. Die Änderung von mehr als einem Bit der einzelnen Adresse kann bewirken, dass weitere Speichergebiete in den Eintrag kombiniert werden. Daher sollte das Auffrischungsintervall auf das kürzeste Auffrischungsintervall der kombinierten Speichergebiete aktualisiert werden. Wenn Gebiete unter Anwendung der Startadresse und der Endadresse repräsentiert sind, kann der einzelne Eintrag, der ausgewählt ist, der Eintrag sein, der am nächsten an dem Speichergebiet in einem linearen Adressenraum liegt. Es wird entweder die Startadresse oder die Endadresse des Eintrags geändert, um das Speichergebiet in den Eintrag zu kombinieren. Wiederum kann die Änderung der Startadresse oder Endadresse bewirken, dass weitere Speichergebiete in den Eintrag kombiniert werden, so dass das Auffrischungsintervall auf das kürzeste Auffrischungsintervall der kombinierten Speichergebiete aktualisiert werden sollte.
-
In einer weiteren Ausführungsform kann die Auffrischungstabelle 265 Einträge in Betracht ziehen, die einzelne Adressen besitzen, die sprechend einem Hamming-Abstand am nächsten zu dem Speichergebiet liegen, das als eine einzelne Adresse repräsentiert ist, wobei jedes Bit unter Anwendung von 2-Bit-Werten 0, 1, X kodiert ist. Wenn mehr als ein Eintrag als der „nächste” Eintrag für das Speichergebiet ermittelt wird, da sich die gleiche Anzahl an Bits der einzelnen Adresse unterscheiden, wird ein einzelner Eintrag ausgewählt. Der einzelne Eintrag, der ausgewählt ist, kann der Eintrag sein mit einem Auffrischungsintervall, das am nächsten zu dem Auffrischungsintervall des Speichergebiets ist. Da eines oder mehrere Bits der einzelnen Adresse von einer „0” oder „1” in ein „X” zur Kombination des Speichergebiets in den Eintrag verändert werden, sollte das Auffrischungsintervall auf das kürzeste Auffrischungsgebiet der kombinierten Speichergebiete aktualisiert werden. Wenn Gebiete unter Verwendung einer Startadresse und Endadresse repräsentiert sind, kann die Auffrischungstabelle 265 Einträge in Betracht ziehen, die dem Speichergebiet im linearen Adressenraum am nächsten liegen. Wenn mehr als ein Eintrag als der „nächste” Eintrag für das Speichergebiet ermittelt wird, wird nur ein einzelner Eintrag ausgewählt. Der einzelne Eintrag, der ausgewählt ist, kann der Eintrag sein mit einem Auffrischungsintervall, das dem Auffrischungsintervall des Speichergebiets am nächsten ist. Es wird entweder die Startadresse oder die Endadresse des Eintrags geändert, um das Speichergebiet in den Eintrag einzufügen. Wiederum kann die Änderung der Startadresse oder der Endadresse bewirken, dass weitere Gebiete an Speicher in den Eintrag kombiniert werden, so dass das Auffrischungsintervall auf das kürzeste Auffrischungsintervall der kombinierten Speichergebiete aktualisiert werden sollte. Das Auffrischungsintervall weiterer Gebiete kann, wenn der einzelne Eintrag ausgewählt wird, von der Auffrischungstabelle 265 in Betracht gezogen werden, um das Auffrischungsintervall der kombinierten Speichergebiete zu minimieren.
-
Im Schritt 435 aktualisiert die Auffrischungstabelle 265 den Eintrag nach Bedarf, um das Speichergebiet in den Eintrag einzufügen (d. h., sie aktualisiert einen oder mehrere der folgenden Aspekte: die einzelne Adresse, die Startadresse oder die Endadresse, die Priorität oder das Auffrischungsintervall).
-
Es sollte beachtet werden, dass, obwohl diverse optionale Merkmale in Verbindung mit der Speicherung der Charakterisierungsinformation für Speichergebiete und für die Kombination von Einträgen von Auffrischungsgebieten angegeben sind, derartige Merkmale nur anschaulicher Natur sind und in keiner Weise als Einschränkung zu betrachten sind.
-
4C zeigt ein Flussdiagramm für einen Schritt 370, der in 3 gezeigt ist, gemäß einer Ausführungsform. Jeder Eintrag in der Auffrischungstabelle 265 enthält ein Zeitgeberfeld. Das Zeitgeberfeld wird auf die Anzahl von Zeitschritten (beispielsweise Zeitschritt = 16 μs) zwischen Auffrischvorgängen für Zeilen oder Seiten in dem Auffrischungsgebiet initialisiert. Für ein Auffrischungsgebiet R mit der Größe |R| wird der Zeitgeber auf, ri(R)/(Zeitschritt*|R|) gesetzt, wobei ri das Auffrischungsintervall ist. Die Auffrischungstabelle 265 ist ausgebildet, die Zeitgeberfelder ihres Eintrags in jedem Zeitschritt zu aktualisieren (d. h., zu dekrementieren).
-
Im Schritt 450 ist die Speicherauffrischungseinheit 270 ausgebildet zu prüfen, ob einer der Zeitgeber, die in der Auffrischungstabelle 265 gespeichert sind, abgelaufen ist, und wenn dies nicht der Fall ist, wird der Schritt 450 wiederholt. Wenn ein Zeitgeber abgelaufen ist, setzt im Schritt 460 die Speicherauffrischungseinheit 270 den Zeitgeber auf den Anfangswert zurück. Im Schritt 465 führt die Speicherauffrischungseinheit 270 einen Speicherauffrischungsvorgang an den Zeilen oder der Seite in dem DRAM 280 aus, die durch das nächste Adressenfeld in dem Eintrag der Auffrischungstabelle 265, der den abgelaufenen Zeitgeber aufweist, angegeben ist. Im Schritt 470 aktualisiert die Speicherauffrischungseinheit 270, wenn die Speicherauffrischungsoperation abgeschlossen ist, das Feld für die nächste Adresse, so dass dieses auf die nächste Adresse zeigt, die in dem Auffrischungsgebiet zu aktualisieren ist (wenn sie aktualisiert ist, kann die Adresse einen nächsten Umlauf beginnen). In einer weiteren Ausführungsform können die Speicherauffrischungsvorgänge zeitlich dicht beieinander ausgeführt werden. Doch kann die Ausführung einer Anhäufung aus Auffrischungsvorgängen anstelle einer zeitlichen Spreizung der Auffrischungsvorgänge zu einer Spitze in der Leistungsaufnahme führen und kann ferner die Bandbreite verringern, die für Speicherzugriffe verfügbar ist.
-
5 zeigt ein anschauliches System 500, in welchem die diversen Architekturen und/oder Funktionen der diversen vorhergehenden Ausführungsformen realisiert sein können. Wie gezeigt, ist ein System 500 bereitgestellt, das mindestens einen zentralen Prozessor 501 aufweist, der mit einem Kommunikationsbus 502 verbunden ist. Der Kommunikationsbus 502 kann realisiert werden unter Anwendung eines beliebigen geeigneten Protokolls, etwa PCI (periphere Komponenten-Verbindung), PCI-Express, AGP (beschleunigter Graphikport), HyperTransport, oder durch ein oder mehrere andere Busprotokolle oder Punkt-Zu-Punkt-Kommunikationsprotokollen. Das System 500 umfasst ferner einen Hauptspeicher 504. Steuerlogik (Software) und Daten sind in dem Hauptspeicher 504 abgelegt, der die Form eines Speichers mit wahlfreiem Zugriff (RAM) annehmen kann.
-
Das System 500 enthält ferner Eingabegeräte 512, einen Grafikprozessor 506 und eine Anzeige 508, d. h. eine konventionelle CRT (Kathodenstrahlröhre), eine LCD (Flüssigkristallanzeige), eine LED (lichtemittierende Diode), eine Plasmaanzeige oder dergleichen. Eine Anwendereingabe kann aus den Eingabegeräten 512, beispielsweise Tastatur, Maus, berührungsempfindliches Feld, Mikrofon, und dergleichen, empfangen werden. In einer Ausführungsform kann der Grafikprozessor 506 mehrere Schattierungsprogramme, ein Rastermodul, usw. aufweisen. Jedes der vorhergehenden Module kann sogar auf einer einzelnen Halbleiterplattform angeordnet sein, um eine grafische Verarbeitungseinheit (GPU) zu bilden. Der Grafikprozessors 506 kann mit einem oder mehreren DRAM-Bauteilen 515 gekoppelt und ausgebildet sein, unterschiedliche Gebiete des bzw. der DRAM Id unterschiedlichen Raten auf der Grundlage einer Charakterisierungsinformation aufzufrischen. In einer Ausführungsform ist der zentrale Prozessor 501 mit dem einen oder den mehreren DRAM-Bauteilen 515 gekoppelt und ausgebildet, unterschiedliche Gebiete des bzw. der DRAM mit unterschiedlichen Raten auf der Grundlage der Charakterisierungsinformation aufzufrischen. Der DRAM 515 kann als der DRAM 280 aus 2 realisiert sein.
-
In der vorliegenden Beschreibung kann eine einzelne Halbleiterplattform eine einzelne alleinstehende halbleiterbasierte integrierte Schaltung oder einen Chip bezeichnen. Es sollte beachtet werden, dass der Begriff einzelne Halbleiterplattform auch Multi-Chip-Module mit vergrößerter Verbindungsstruktur bezeichnen kann, die eine chipinterne Funktion simulieren, und die wesentliche Verbesserung gegenüber einer Realisierung mit konventioneller zentraler Recheneinheit (CPU) und Bus darstellen. Selbst verständlich können die diversen Module auch separat angeordnet sein oder können in diversen Kombinationen von Halbleiterplattformen entsprechend den Bedürfnissen des Anwenders vorgesehen sein. Eines oder mehrere der in 5 gezeigten Systeme 500 kann in dem System 500 integriert sein, um Leistung für einen oder mehrere der Chips bereitzustellen.
-
Das System 500 kann ferner einen sekundären Speicher 510 umfassen. Der sekundäre Speicher 510 umfasst beispielsweise ein Festplattenlaufwerk und/oder ein entfernbares Laufwerk, was durch ein Diskettenlaufwerk, ein Magnetbandlaufwerk, ein Kompaktdisketten-Laufwerk, ein Laufwerk für eine digitale Vielseitigkeitsdiskette (DVD), ein Aufzeichnungsgerät, einen Flash-Speicher mit universellem seriellen Bus (USB) repräsentiert sein kann. Das entfernbare Speicherlaufwerk liest von einer entfernbaren Speichereinheit in gut bekannter Weise und/oder beschreibt diese. Computerprogramme oder Computer-Steuerlogik-Algorithmen können in dem Hauptspeicher 504 und/oder in dem sekundären Speicher 510 gespeichert sein. Derartige Computerprogramme verleihen, wenn sie ausgeführt werden, dem System 500 die Fähigkeit, diverse Funktionen auszuführen. Der Speicher 504, der Speicher 510 und/oder ein anderer Speicher sind mögliche Beispiele von computerlesbaren Medien.
-
In einer Ausführungsform können die Architektur und/oder Funktionen der diversen vorhergehenden Figuren realisiert werden in Verbindung mit dem zentralen Prozessor 501, dem Grafikprozessor 506, einer integrierten Schaltung (nicht gezeigt), die über die Fähigkeiten zumindest eines Teils des zentralen Prozessors 501 und des Grafikprozessors 506 verfügt, einem Chipsatz (beispielsweise eine Gruppe aus integrierten Schaltungen, die so gestaltet sind, dass sie als Einheit betreffende Funktionen ausführen und als solche verkauft werden, usw.), und/oder in Zusammenhang mit einer anderen integrierten Schaltung für diesen Zweck.
-
Ferner können die Architektur und/oder Funktionen der diversen vorhergehenden Figuren in Verbindung mit einem allgemeinen Computersystem, einem System aus Leiterplatten, einem Spielekonsolensystem, das für Unterhaltungszwecke vorgesehen ist, einem anwendungsspezifischen System und/oder einem anderen gewünschten System realisiert werden. Beispielsweise kann das System 500 die Form eines Tischrechners, eines mobilen Rechners, eines Dienstleister-Rechners, eines Arbeitplatzrechners, von Spielekonsolen, eines eingebetteten Systems und/oder eine andere Art von Logik annehmen. Ferner kann das System 500 die Form diverser anderer Geräte annehmen, wozu gehören, ohne einschränkend zu sein, eine Einrichtung in Form eines persönlichen digitalen Assistenten (PDA), eine Einrichtung in Form eines Mobiltelefons, eines Fernsehgeräts, usw.
-
Ferner kann, obwohl dies nicht gezeigt ist, das System 500 mit einem Netzwerk (beispielsweise einem Telekommunikationsnetzwerk, einem Nahbereichsnetzwerk (LAN), einem drahtlosen Netzwerk, einem Weitbereichsnetzwerk (WAN), etwa dem Internet, einem Gerät-zu-Gerät-Netzwerk, einem Kabelnetzwerk oder dergleichen) für Kommunikationszwecke gekoppelt sein.
-
Obwohl diverse Ausführungsformen beschrieben sind, sollte beachtet werden, dass diese nur als Beispiel und nicht als Einschränkung präsentiert sind. Somit sollten die Breite und der Schutzbereich einer bevorzugten Ausführungsform nicht durch eine der zuvor beschriebenen anschaulichen Ausführungsformen eingeschränkt sein, sondern sie sollten nur entsprechend den folgenden Ansprüchen und ihren äquivalenten definiert sein.