-
Technisches Anwendungsgebiet
-
Die vorliegende Offenbarung betrifft allgemein Arbeitsspeicher-Auffrischungsoperationen und konkret ein Verfahren zum Planen von Auffrischungsoperationen in Arbeitsspeichern mit hoher Speicherdichte.
-
Stand der Technik
-
Dynamische Arbeitsspeicher (DRAMs, Dynamic Random Access Memories) werden weithin in einer Vielfalt von Anwendungen eingesetzt. Ein üblicher DRAM weist mehrere Blöcke von Speicherzellen auf, und jede Speicherzelle beinhaltet einen Kondensator und einen Zugriffstransistor. Der Kondensator speichert eine Ladung, die mit dem Wert von in einer Speicherzelle gespeicherten Daten verwandt ist, und der Zugriffstransistor verbindet den Kondensator wahlweise mit einer Bitleitung zum Lesen von oder Schreiben in der/die Speicherzelle.
-
Aufgrund von diversen Kriechwegen löst sich eine innerhalb eines Kondensators einer Speicherzelle gespeicherte Ladung üblicherweise in weniger als ein paar Zehntel Millisekunden auf. Um die Unversehrtheit von in einer Speicherzelle gespeicherten Daten zu bewahren, muss die Speicherzelle periodisch aufgefrischt werden, indem die Daten in der Speicherzelle gelesen und die gelesenen Daten zurück in die Speicherzelle geschrieben werden, bevor die gespeicherte Ladung die Möglichkeit hatte, sich aufzulösen.
-
Gemäß dem JEDEC-Standard pflegt eine DRAM-Einheit einen internen Zähler, der das nächste aufzufrischende Segment der DRAM-Einheit bestimmt, und eine Speichersteuereinheit gibt einen adresslosen Auffrischungsbefehl an die DRAM-Einheit aus. Zwei eng mit Auffrischungsoperationen verbundene JEDEC-Schlüsselparameter sind tREFI und tRFC. Der Parameter tREFI legt das Intervall fest, mit dem Auffrischungsbefehle an eine DRAM-Einheit gesendet werden müssen, und der Parameter tRFC legt die Dauer fest, für die eine DRAM-Einheitenschnittstelle durch jede Auffrischungsoperation blockiert ist.
-
Die meisten herkömmlichen Speichersteuereinheiten senden einfach immer dann Auffrischungsoperationen, wenn tREFI (der einen Auffrischungszeitgeber festlegt) abläuft. Dies ist für ältere Computersysteme ausreichend, in denen jede Auffrischungsoperation schnell abgeschlossen werden kann, so dass Lese- und/oder Schreiboperationen nicht für eine sehr lange Zeit verzögert werden müssen. Für DRAM-Chips mit hoher Speicherdichte wie zum Beispiel 4-Gbit- und 16-Gbit-DRAM-Chips dauert es im Allgemeinen einige Zeit, bis eine Auffrischungsoperation abgeschlossen ist. Das Endergebnis ist eine messbare Erhöhung der tatsächlichen Speicherlatenzzeit, wenn Lese- und/oder Schreiboperationen häufig angehalten werden müssen, um Auffrischungsoperationen Rechnung zu tragen.
-
Folglich wäre es wünschenswert, ein verbessertes Verfahren und eine Vorrichtung zum Durchführen von Auffrischungsoperationen in Arbeitsspeichern mit hoher Speicherdichte bereitzustellen.
-
Kurzdarstellung der Erfindung
-
Gemäß einer bevorzugten Ausführungsform der vorliegenden Offenbarung wird als Reaktion auf einen Abschluss einer Arbeitsspeicheroperation einer Speichereinheit ermittelt, ob ein Auffrischungsrückstand-Zählwert größer als ein erster vorher festgelegter Wert ist. Wenn der Auffrischungsrückstand-Zählwert größer als der erste vorher festgelegte Wert ist, wird so schnell wie möglich eine Auffrischungsoperation durchgeführt. Wenn der Auffrischungsrückstand-Zählwert nicht größer als der erste vorher festgelegte Wert ist, wird ferner ermittelt, ob der Auffrischungsrückstand-Zählwert kleiner als ein zweiter vorher festgelegter Wert ist. Wenn der Auffrischungsrückstand-Zählwert nicht kleiner als der zweite vorher festgelegte Wert ist, wird ferner ermittelt, ob der Auffrischungsrückstand-Zählwert kleiner als ein dritter vorher festgelegter Wert ist und sich der Rank von Speichereinheiten in einem abgeschalteten Zustand befindet. Wenn der Auffrischungsrückstand-Zählwert kleiner als der dritte vorher festgelegte Wert ist und sich der Rank von Speichereinheiten in einem abgeschalteten Zustand befindet, wird ein Leerlauf-Zählschwellwert auf einen Maximalwert gesetzt, damit eine Auffrischungsoperation nach einer maximalen Verzögerungszeit durchgeführt wird. Wenn der Auffrischungsrückstand-Zählwert nicht kleiner als der dritte vorher festgelegte Wert ist oder sich der Rank von Speichereinheiten nicht in einem abgeschalteten Zustand befindet, wird der Leerlauf-Zählschwellwert beruhend auf der Steigung einer Leerlaufverzögerungsfunktion gesetzt, damit eine Auffrischungsoperation entsprechend durchgeführt wird.
-
Sämtliche Merkmale und Vorteile der vorliegenden Offenbarung ergeben sich aus der folgenden ausführlichen schriftlichen Beschreibung.
-
Die Offenbarung selbst sowie eine bevorzugte Anwendungsart und weitere Ziele und Vorteile dieser wird man jedoch am besten unter Bezugnahme auf die folgende ausführliche Beschreibung einer veranschaulichenden Ausführungsform verstehen, wenn man diese in Verbindung mit den beigefügten Zeichnungen liest.
-
Kurzbeschreibung der Zeichnungen
-
1 ist ein Blockschaltbild eines elektronischen Systems mit einem dynamischen Arbeitsspeicher, in dem eine bevorzugte Ausführungsform der vorliegenden Erfindung umgesetzt werden kann;
-
2 zeigt Eigenschaften einer Leerlaufverzögerungsfunktion gemäß einer bevorzugten Ausführungsform der vorliegenden Erfindung;
-
3A bis 3B zeigen Hardware-Strukturen zum Umsetzen der Leerlaufverzögerungsfunktion aus 2 gemäß einer Ausführungsform der vorliegenden Erfindung; und
-
4 ist ein Übersichtsplan über den logischen Ablauf eines Verfahrens zum Durchführen von Auffrischungsoperationen gemäß einer bevorzugten Ausführungsform der vorliegenden Erfindung.
-
Ausführliche Beschreibung einer bevorzugten Ausführungsform
-
Unter Bezugnahme auf die Zeichnungen und insbesondere auf 1 ist ein Blockschaltbild eines elektronischen Systems mit einer dynamischen Arbeitsspeicher-(DRAM-)Einheit gezeigt, in der eine bevorzugte Ausführungsform der vorliegenden Erfindung umgesetzt werden kann. Wie gezeigt, beinhaltet ein System 10 einen über einen Bus 17 mit einer DRAM-Einheit 11 verbundenen Prozessor 15. Die DRAM-Einheit 11 beinhaltet eine Anordnung von Speicherzellen 20, Zeilen-Decodierer und Treiber 12, einen Abtastverstärker 16 und einen Spalten-Decodierer und Multiplexer 14. Die DRAM-Einheit 11 beinhaltet auch eine Steuerschaltung 28 und eine Auffrischungssteuereinheit 26. Nach dem Empfangen von Steuersignalen von dem Prozessor 15 über den Bus 17 stellt die Steuerschaltung 28 verschiedenen Schaltkreisen innerhalb der DRAM-Einheit 11 entsprechende interne Steuersingale bereit, um Lese-, Schreib-, Auffrischungs- oder Leerlaufoperationen durchzuführen. Die Steuerschaltung 28 empfängt auch Auffrischungsanforderungen von der Auffrischungssteuereinheit 26.
-
Die Speicherzellen 20 können durch einen zeilenweisen Auffrischungsprozess aufgefrischt werden, d. h., sämtliche Speicherzellen in einer bestimmten Zeile 21 werden gleichzeitig aufgefrischt. Die Auffrischungssteuereinheit 26 ermittelt, wann und welche der Speicherzellen 20 aufgefrischt werden müssen, und die Steuerschaltung 28 frischt jeweils jede der Zeilen 21 unter Verwendung einer von der Auffrischungssteuereinheit 26 bereitgestellten Auffrischungsadresse auf.
-
Herkömmliche Speichersteuereinheiten schenkten der Planung von Auffrischungsoperationen im Allgemeinen wenig Beachtung, da Nachteile durch Auffrischungen (d. h. Konflikte mit Lese- und/oder Schreiboperationen) selten, wenn überhaupt, ein Problem darstellen. Folglich verwenden viele herkömmliche Speichersteuereinheiten, wie vorher erwähnt, tendenziell den direktesten Auffrischungsplanungsalgorithmus, der einfach ein Senden einer Auffrischungsoperation erzwingt, sobald das Intervall tREFI abläuft. Dieser Ansatz ist aufgrund der Einfachheit der benötigten Steuerlogik-Hardware äußerst gängig. Da die Auffrischungsdauer bei Arbeitsspeichern mit höherer Speicherdichte zunimmt, wird der Nachteil durch Auffrischungen ein Problem für Systementwickler, und ein ausgeklügelterer Auffrischungsplanungsalgorithmus ist wünschenswert, um Auffrischungsoperationen in Arbeitsspeichern mit hoher Speicherdichte abzuwickeln.
-
Es wurde beobachtet, dass die Wahrscheinlichkeit des Empfangens einer zweiten Speicheroperation (wie zum Beispiel Lesen oder Schreiben) mit zunehmender Dauer nach dem Abschluss einer ersten Speicheroperation abnimmt. Somit kann das Einfügen einer Verzögerung vor dem Ausgeben eines Auffrischungsbefehls die Wahrscheinlichkeit verringern, dass das Ausführen einer Auffrischungsoperation möglicherweise das bevorstehende Ausführen einer neuen Speicheroperation behindert. Nachdem sämtliche Bankwarteschlangen für einen Arbeitsspeicher-Rank leer sind, fügt folglich ein Auffrischungsplanungsmechanismus der vorliegenden Erfindung vor dem Ausgeben eines Auffrischungsbefehls eine Leerlaufverzögerung ein. Im Gegensatz dazu geben herkömmliche Auffrischungsplanungsmechanismen Auffrischungsbefehle unmittelbar aus, sobald sämtliche Bankwarteschlangen für einen Arbeitsspeicher-Rank leer sind.
-
Im Wesentlichen verringert das Einfügen einer Leerlaufverzögerung die Priorität einer Auffrischungsoperation weiter. Die Leerlaufverzögerung kann als Funktion des Auffrischungsrückstand-Zählwerts (oder Auffrischungsverzögerungs-Zählwerts) ausgedrückt werden. Die allgemeine Form dieser Funktion, die als Leerlaufverzögerungsfunktion bezeichnet werden kann, ist in 2 veranschaulicht. Die Leerlaufverzögerungsfunktion hat drei verschiedene Bereiche, nämlich einen Bereich mit niedriger Priorität, einen proportionalen Bereich und einen Bereich mit hoher Priorität. Jeder der drei Bereiche der Leerlaufverzögerungsfunktion kann gemäß den Arbeitslasteigenschaften dynamisch angepasst werden. Die drei Bereiche der Leerlaufverzögerungsfunktion werden wie folgt beschrieben.
-
Viele Arbeitslasten in einem elektronischen System haben eine charakteristische Leerlaufverzögerungsdauer, während der die Wahrscheinlichkeit des Empfangens eines Arbeitsspeicherbefehls innerhalb des Intervalls tRFC äußerst gering ist. Folglich wird die Leerlaufverzögerungsfunktion während dieser Dauer auf einen maximalen Leerlaufverzögerungswert gesetzt, der durch den Bereich mit niedriger Priorität dargestellt ist.
-
Der proportionale Bereich stellt den Zeitrahmen dar, wenn sich der Auffrischungsrückstand-Zählwert einem vorher festgelegten Wert annähert (in 2 zum Beispiel 3), woraufhin eine Auffrischungssteuereinheit damit anfangen muss, den Prozess des Ausgebens von Auffrischungsbefehlen auf aggressivere Weise zu erwägen. Die Steigung der Leerlaufverzögerungsfunktion in dem proportionalen Bereich kann dynamisch angepasst werden, um den vollen Umfang sämtlicher verzögerter Auffrischungsoperationen zu nutzen.
-
Wenn sich die Anzahl verzögerter Auffrischungsanforderungen (d. h. der Auffrischungsrückstand-Zählwert) einem Maximalwert (in 2 zum Beispiel 7) annähert, kann eine Auffrischungsoperation nicht länger verzögert werden und muss innerhalb eines zusätzlichen Intervalls tREFI ausgegeben werden. Aus diesem Blickwinkel hat der Bereich mit hoher Priorität zwei Phasen, die jeweils eine Leerlaufverzögerung von null aufweisen. Bei der vorliegenden Ausführungsform sendet eine Auffrischungssteuereinheit bei einem Auffrischungsrückstand-Zählwert von 7 einen Auffrischungsbefehl, sobald eine Bankwarteschlange leer wird.
-
Außerdem wird der Auffrischungsbefehl bei einem Auffrischungsrückstand-Zählwert von 8 vor allen anderen Arbeitsspeicherbefehlen ausgegeben, und sobald es die DRAM-Bus-Parameter zulassen.
-
Da die optimalen Eigenschaften der Leerlaufverzögerungsfunktion arbeitslastabhängig sein können, muss ein Satz von Parametern festgelegt werden, um die in
2 gezeigte Leerlaufverzögerungsfunktion zu konfigurieren. Diese Parameter sind in Tabelle 1 aufgeführt. Tabelle 1
Parameter | Einheiten | Beschreibung |
Maximale Verzögerung | Speichertakte | Setze Verzögerung in Bereich mit niedriger Priorität |
Proportionale Steigung | Speichertakte; Verzögerter Schritt | Setze Steigung in proportionalem Bereich |
Referenzpunkt für hohe Priorität | Verzögerter Schritt | Setze Punkt, an dem die Leerlaufverzögerung null wird |
-
Die Parameter maximale Verzögerung und proportionale Steigung können über zwei Hardware-Strukturen ermittelt werden, die ein Profil über die Arbeitslastbezugswerte erstellen.
-
Das Ziel des proportionalen Bereichs besteht darin, die Verteilung der Auffrischungsoperationen in dem zurückgestellten Spektrum dynamisch zu zentrieren. Dies kann durch Verfolgen der relativen Häufigkeit von Auffrischungsoperationen über einen Zurückstellungsreferenzpunkt erreicht werden. Bei diesem Zurückstellungsreferenzpunkt handelt es sich um den durchschnittlichen Zielpunkt der Auffrischungsausführung. Für die vorliegende Ausführungsform wird ein Zurückstellungszählwert von 4 verwendet, der den Mittelpunkt des Aufschiebungsbereichs darstellt.
-
Der Referenzpunkt für hohe Priorität (der Übergang von dem proportionalen Bereich zu dem Bereich mit hoher Priorität) kann bei einem Zählwert der verzögerten Auffrischungen von 7 festgelegt werden, da dies für die vorliegende Ausführungsform wirksam war, um ein unnötiges Erzwingen von hoher Priorität zu vermeiden.
-
Die Hardware-Strukturen zum Umsetzen der Leerlaufverzögerungsfunktion aus 2 können in einen grundlegenden statischen Steuermechanismus und in Hardware für das dynamische Anpassen der Parameter für maximale Verzögerung, proportionale Steigung und Referenzpunkt für hohe Priorität eingeteilt werden. Für den grundlegenden statischen Steuermechanismus benötigt jeder Arbeitsspeicher-Rank einen 10-Bit-Leerlaufzähler. Außerdem benötigen die Parameter für maximale Verzögerung, proportionale Steigung und Referenzpunkt für hohe Priorität 10-Bit-, 7-Bit- bzw. 3-Bit-Register. Die Hardware zum dynamischen Einstellen des Parameters für maximale Verzögerung benötigt zusätzlich ein 20 Bit breites 10-Bit-Eingaberegister und einen 10-Bit-Zähler. Die Hardware zum Erzeugen des Ausdrucks der proportionalen Steigung beinhaltet zwei 16-Bit-Hochwert/Niedrigwert-Zähler, ein 16-Bit-Integral-Register und ein 7-Bit Register mit zwei Eingängen. Die Größe sämtlicher oben erwähnter Hardware-Komponenten ist im Vergleich zu der Größe einer Speichersteuereinheit oder einer Auffrischungssteuereinheit vernachlässigbar.
-
Unter Bezugnahme auf die 3A bis 3B sind Hardware-Strukturen zum Umsetzen der Leerlaufverzögerungsfunktion aus 2 gezeigt. Wie gezeigt, beinhaltet die Struktur einen Niedrigwertzähler 31 und einen Hochwertzähler 32, die jeweils die Häufigkeit von Operationen enthalten, die auf die niedrige bzw. hohe Seite des Referenzpunkts der hohen Priorität fallen. Wenn einer der Niedrigwert- bzw. Hochwertzähler 31, 32 überläuft, werden die Werte in sämtlichen zugehörigen Zählern halbiert, indem jedes Register um eins nach rechts verschoben wird. Das Schema arbeitet über Profilerstellungsintervalle, auf die Anpassungen am Ende jedes Intervalls folgen. Bei jedem Anpassungsintervall subtrahiert die Logik die Werte der Hochwert- bzw. Niedrigwertzähler 31, 32. Der Wert wird auf einen proportionalen Integralzähler 33 angewendet, um den Parameter proportionale Steigung für das nachfolgende Intervall zu aktualisieren. Schaltungen zum Zurücksetzen der Niedrigwert- bzw. Hochwertzähler 31, 32 nach jedem Anpassungsintervall sind in den 3A bis 3B nicht gezeigt.
-
Für die vorliegende Ausführungsform sind der Niedrigwertzähler 31, der Hochwertzähler 32 und der Integralzähler 33 16 Bit breit. Ein relativ kurzes Anpassungsintervall von 128k Speichertakten wird verwendet, da die Profilerstellungsstruktur einen recht kleinen Anteil am Logikaktualisierungszustand des Niedrigwertzählers 31 und des Hochwertzählers 32 aufweist und sich schnell stabilisiert. Es wird ein 7-Bit-Register 34 verwendet, um einen proportionalen Steigungswert zu erzeugen, der die Steigung des proportionalen Bereichs der Leerlaufverzögerungsfunktion aus 2 darstellt (Einheiten der Verringerung in Verzögerungszyklen pro zurückgestelltem Schritt). Die Gewichtungsfunktionen w(p) und w(i) des Integralzählers 33 verwenden eine einfache Zweierpotenzdivision, die durch Abschneiden des Werts auf den größten 5-Bit-Wert erreicht werden kann (wobei bis zu 11 führende Nullen abgeschoben werden).
-
Gemäß dem JEDEC-Standard können DRAM-Einheiten, die Stromsparzustände unterstützen, dazu genutzt werden, die Leistung von Arbeitsspeichern unter den normalen „Leerlaufzustand” zu bringen, wenn aktuell kein Zugriff auf die DRAM-Einheiten stattfindet. Welcher Stromsparzustand verwendet werden sollte, hängt von dem Kompromiss zwischen Leistung und Aktivierungszeit ab und ist nicht relevant für die vorliegende Erfindung. Übergänge zwischen dem Leerlaufzustand und einem Stromsparzustand werden durch das Ausgeben von Befehlen zum „Aktivieren der Abschaltung” und „Beenden der Abschaltung” gesteuert. Ein Lese-, Schreib- oder Auffrischungsbefehl kann nur dann an eine DRAM-Einheit ausgegeben werden, wenn sich die DRAM-Einheit im Leerlaufzustand befindet. Deshalb muss zunächst ein Befehl zum Beenden der Abschaltung ausgegeben werden, wenn sich eine DRAM-Einheit in einem Stromsparzustand befindet und ein Lese-, Schreib- oder Auffrischungsbefehl ausgegeben werden muss.
-
Je nach aktueller Richtlinie zum Verwalten der Leistung des Arbeitsspeichers kann ein Speichersteuereinheiten-Steuerprogramm einen konkreten Rank von DRAM-Einheiten entweder (i) sofort nach Ausgabe eines auf diesen konkreten Rank abzielenden Lese/Schreib-Befehls, (ii) nach einer gewissen auf einen Lese/Schreib-Befehl folgenden Mindestleerlaufdauer oder (iii.) niemals in einen abgeschalteten Zustand versetzen. Wenn also eine Leerlaufverzögerungszeit für das Auffrischen abläuft, kann der Ziel-Rank der DRAM-Einheiten bereits eingeschaltet sein.
-
Es ist allgemein wünschenswert, die Anzahl von Energiezustandsübergängen auf ein Mindestmaß zu beschränken, da das Ausgeben von Befehlen zum Aktivieren der Abschaltung und zum Beenden der Abschaltung auch Energie verbraucht. Folglich ist es vom Standpunkt des Energiesparens aus vorteilhaft, das Einschalten eines Ranks von DRAM-Einheiten so lange wie möglich aufzuschieben. Wenn sich ein anvisierter Rank von DRAM-Einheiten in einem abgeschalteten Zustand befindet, ist es von daher vorzuziehen, eine Auffrischungsoperation so lange weiter zu verzögern, bis die Auffrischungsoperation einfach nicht mehr aufgeschoben werden kann, oder bis der anvisierte Rank von DRAM-Einheiten für irgendeinen anderen Befehl (wie zum Beispiel einen Schreibbefehl) eingeschaltet wird.
-
Wenn die Leerlaufverzögerungszeit für das Auffrischen abgelaufen ist und der anvisierte Rank von DRAM-Einheiten bereits eingeschaltet wurde (d. h., sich im Leerlaufzustand befindet), wird ein Auffrischungsbefehl ausgegeben. Wenn die Leerlaufverzögerungszeit für das Auffrischen abgelaufen ist und sich der anvisierte Rank von DRAM-Einheiten in einem abgeschalteten Zustand befindet, sollte ein Auffrischungsbefehl in Abhängigkeit von dem Auffrischungsrückstand-Zählwert zurückgestellt werden.
-
Sobald der Auffrischungsrückstand einen programmierbaren, vorher festgelegten Schwellwert erreicht, fährt die Speichersteuereinheit damit fort, den Rank von DRAM-Einheiten einzuschalten, um einen oder mehrere Auffrischungsbefehle auszugeben. Wenn dieser vorher festgelegte Schwellwert überschritten wird, wird der anvisierte Rank von DRAM-Einheiten eingeschaltet, und ein Auffrischungsbefehl sollte ausgegeben werden, sobald die Auffrischungswartezeit abläuft.
-
Wenn letztendlich ein Auffrischungsbefehl ausgegeben wird, ist es wünschenswert, mehr als einen Auffrischungsbefehl auszugeben, um den Rückstand auf einen niedrigen Wert zu bringen, vorausgesetzt, es warten keine Lesebefehle darauf, auf denselben Rank von DRAM-Einheiten zuzugreifen.
-
Unter Bezugnahme auf 4 wird ein Übersichtsplan über den logischen Ablauf eines Verfahrens zum Durchführen von Auffrischungsoperationen gemäß einer bevorzugten Ausführungsform der vorliegenden Erfindung veranschaulicht. Beginnend bei Block 40 wartet der Prozess auf das Stattfinden einer Arbeitsspeicheroperation wie zum Beispiel einer Lese- oder Schreiboperation, wie in Block 41 gezeigt ist. Während des Wartens auf das Stattfinden einer Schreiboperation wird eine Auffrischungsoperation so bald wie möglich durchgeführt, wenn der Leerlaufzählwert gleich dem Leerlauf-Zählschwellwert ist, wie in Block 46 gezeigt ist, oder, wenn der Auffrischungsrückstand-Zählwert erhöht wird, wird ermittelt, ob ein Auffrischungsrückstand-Zählwert größer als 7 ist, wie in Block 42 abgebildet ist. Gleichermaßen fährt der Prozess mit Block 42 fort, sobald eine Arbeitsspeicheroperation stattgefunden hat und abgeschlossen wurde.
-
Wenn der Auffrischungsrückstand-Zählwert größer als 7 ist, wird der Leerlaufzählwert auf null (oder nahe null) gesetzt, so dass eine Auffrischungsoperation so schnell wie möglich durchgeführt wird, wie in Block 46 gezeigt ist. Dies entspricht dem Bereich mit hoher Priorität aus 2. Der Prozess kehrt dann zu Block 41 zurück.
-
Wenn der Auffrischungsrückstand-Zählwert jedoch nicht größer als 7 ist, wird ferner ermittelt, ob der Auffrischungsrückstand-Zählwert kleiner als 3 ist, wie in Block 43 gezeigt ist. Wenn der Auffrischungsrückstand-Zählwert kleiner als 3 ist, wird der Leerlauf-Zählschwellwert auf einen Maximalwert gesetzt, wie in Block 44 abgebildet ist, so dass eine Auffrischungsoperation durchgeführt wird (d. h. in Block 46), nachdem ein Maximalzeitwert des Leerlauf-Zählschwellwerts abgelaufen ist. Dies entspricht dem Bereich mit niedriger Priorität aus 2. Der Maximalwert des Leerlauf-Zählschwellwerts von aktuellen für Server geeigneten DRAM-Einheiten hängt von dem festgelegten Auffrischungsintervall (tREFI) ab, das derzeit bei 7,8 Mikrosekunden liegt und unabhängig von der Dichte der Einheit ist. Der Prozess kehrt dann zu Block 41 zurück.
-
Andernfalls, wenn der Auffrischungsrückstand-Zählwert nicht kleiner als 3 ist, wird ermittelt, ob der Auffrischungsrückstand-Zählwert kleiner als 5 ist und sich ein Rank von Arbeitsspeichereinheiten in einem abgeschalteten Zustand befindet, wie in Block 47 gezeigt ist. Wenn der Auffrischungsrückstand-Zählwert kleiner als 5 ist und sich der Rank von Arbeitsspeichereinheiten in einem abgeschalteten Zustand befindet, wird der Leerlauf-Zählschwellwert auf einen Maximalwert gesetzt, wie in Block 44 abgebildet ist, so dass eine Auffrischungsoperation durchgeführt wird (d. h. in Block 46), nachdem ein Maximalzeitwert des Leerlauf-Zählschwellwerts abgelaufen ist. Wenn der Auffrischungsrückstand-Zählwert jedoch nicht kleiner als 5 ist oder sich der Rank von Speichereinheiten nicht in einem abgeschalteten Zustand befindet, wird der Leerlauf-Zählschwellwert gemäß der Steigung der Leerlaufverzögerungsfunktion gesetzt, wie in Block 45 gezeigt ist. Die Steigung der Leerlaufverzögerungsfunktion wird durch die Hardware-Struktur aus 3B ermittelt, und der Wert kann gemäß der gewünschten Auffrischungsaggressivität und den Lastanforderungen angepasst werden. Der Leerlauf-Zählschwellwert nimmt zum Beispiel linear mit zunehmendem Rückstandzählwert ab. Dies entspricht dem proportionalen Bereich aus 2. Der Prozess kehrt dann zu Block 41 zurück.
-
Wie beschrieben wurde, stellt die vorliegende Offenbarung ein Verfahren und eine Vorrichtung zum Durchführen von Auffrischungsoperationen in Arbeitsspeichern mit hoher Speicherdichte bereit.
-
Obwohl eine veranschaulichende Ausführungsform der vorliegenden Erfindung in Zusammenhang mit Hardware beschrieben wurde, werden Fachleute verstehen, dass die Software-Aspekte einer veranschaulichenden Ausführungsform der vorliegenden Erfindung in Form eines Programmprodukts in einer Vielfalt von Formen vertrieben werden können und dass eine veranschaulichende Ausführungsform der vorliegenden Erfindung gleichermaßen Anwendung findet, und zwar unabhängig von einer bestimmten Art von signalführenden Medien, die tatsächlich zur Durchführung des Vertriebs verwendet werden. Zu Beispielen der Arten von Medien gehören beschreibbare Medien wie Thumb-Drives, Floppy-Disketten, Festplattenlaufwerke, CD-ROMs und DVDs und übertragungsartige Medien wie digitale und analoge Datenübertragungsverbindungen.
-
Obwohl die Offenbarung insbesondere in Bezug auf eine bevorzugte Ausführungsform gezeigt und beschrieben wurde, werden Fachleute verstehen, dass diverse Änderungen bezüglich Form und Einzelheiten daran vorgenommen werden können, ohne von dem Gedanken und Umfang der Offenbarung abzuweichen.