-
Gebiet
-
Die Erfindung betrifft DRAM-Controller zur Steuerung von DRAM-Speicherzellen, die dazu ausgebildet sind, mehrere der DRAM-Speicherzellen periodisch zu aktualisieren. Die Erfindung ist in Computern, insbesondere in Fahrzeugen verbauten Computern, verwendbar.
-
Hintergrund
-
Die in Computern verwendeten Dynamic Random Access Memory (DRAM)-Speicher sind üblicherweise so aufgebaut, dass jede Speicherzelle aus einem Transistor und einem Kondensator besteht. Die Information wird als elektrische Ladung in dem Kondensator gespeichert. Allerdings verringert sich die Ladung mit der Zeit durch Leckageströme, deren Stärke von der Temperatur abhängt: Je höher die Temperatur, desto stärker der Leckagestrom. Damit die Information nicht verloren geht, müssen die Kondensatoren regelmäßig neu geladen werden, indem der Speicher ausgelesen und neu geschrieben wird. Diese Aktualisierung wird als Refresh bezeichnet. Diese Operationen werden normalerweise von einem DRAM-Controller durchgeführt, der Teil des Prozessors ist, der den Speicher nutzt. Aktualisierungs-Vorgänge werden typischerweise alle 8 ms bis 64 ms wiederholt. Bei höherer Temperatur werden häufigere Aktualisierungen benötigt, da hier die Leckageströme höher sind. Da während einer Aktualisierung der Speicher nicht für Lese-/Schreiboperationen zur Verfügung steht, muss die Aktualisierungsperiode, bzw. die Refreshrate, so gewählt werden, dass sie hoch genug ist, um die Integrität der Daten zu garantieren, aber nicht zu hoch, damit die Leistung des Systems nicht beeinträchtigt wird.
-
Es ist im Stand der Technik bekannt, die Temperatur der Speicherzellen mit einem Sensor zu bestimmen und einen dazu gehörigen tabellierten Wert für die Aktualisierungsperiode einzustellen. Diese Werte sind aber systematisch höher als nötig, um die Integrität der Daten sicherzustellen. Dies beeinträchtigt die Leistung des Systems. Darüber hinaus steigt durch häufige Aktualisierungen der Energieverbrauch des Speichers an.
-
Die Erfindung macht es sich zur Aufgabe, diese Nachteile zumindest abzumildern.
-
Kurzbeschreibung der Erfindung
-
Die Erfindung ist in den unabhängigen Ansprüchen angegeben. Vorteilhafte Ausgestaltungen sind den Unteransprüchen zu entnehmen.
-
Gemäß einem ersten Aspekt der Erfindung ist ein DRAM-Controller zur Steuerung von DRAM-Speicherzellen geschaffen, wobei der DRAM-Controller dazu ausgebildet ist, mehrere der DRAM-Speicherzellen periodisch zu aktualisieren, und wobei der DRAM-Controller dazu ausgebildet ist, die Aktualisierungsperiode auf einen Wert einzustellen, der zwischen aufeinanderfolgenden Zweierpotenzen liegt.
-
Die Aktualisierungsperiode wird insbesondere als Wert in Millisekunden (ms) eingestellt.
-
Im Stand der Technik bekannt sind Controller, die vordefinierte Aktualisierungsperioden nutzen, typischerweise 64 ms als Minimum. Bei höheren Temperaturen wird die Aktualisierungsperiode auf Werte verringert, die jeweils eine Zweierpotenz geringer sind: 1x-Refresh (64 ms), 2x-Refresh (32 ms), 4x-Refresh (16 ms), 8x-Refresh (8 ms). Bei den im Stand der Technik bekannten Systemen sind die Abstände zwischen den erlaubten Werten so groß, dass die Aktualisierungen regelmäßig zu häufig durchgeführt werden und unnötige Leistungseinschränkungen in Kauf genommen werden müssen. Bei einer Temperatur, für die eine Aktualisierungsperiode von 50 ms optimal wäre, werden 32 ms gewählt, was die Leistung unnötig stark einschränkt. Die Erfindung erlaubt es, die Aktualisierungsperiode mit höherer Granularität im Betrieb auf einen optimalen Wert einzustellen, anstatt auf wenige erlaubte Werte festgelegt zu sein. Dadurch wird die Aktualisierungsperiode auf den gerade benötigten Wert gesenkt, und es steht mehr Zeit für Speicherzugriffe zur Verfügung. Als mögliche Werte können z. B. Aktualisierungsperioden zwischen 1 ms und 100 ms vorgegeben werden, mit einer Schrittweite von 1 ms. Die Obergrenze orientiert sich an der Entladekonstante der DRAM-Speicherzellen. Die Untergrenze orientiert sich an der maximalen Zugriffsgeschwindigkeit auf den Inhalt der Speicherzellen.
-
In einer Ausgestaltung der Erfindung ist der DRAM-Controller dazu ausgebildet, die Aktualisierungsperiode in Abhängigkeit einer Häufigkeit von zuvor im Betrieb aufgetretenen Fehlern einzustellen. Hierdurch wird die Aktualisierungsperiode anhand von tatsächlich auftretenden Fehlern festgelegt. Hierzu wird ein Fehlerprotokoll einer Fehlerkorrektur-Vorrichtung im DRAM-Controller ausgewertet. Vorrichtungen zur Fehlerkorrektur mittels Error Correction Code (ECC) sind für Speicherbauelemente an sich bekannt und generieren für die zu schreibenden Daten Fehlerkorrekturdaten, die mit den zugrundeliegenden Daten in den Speicher geschrieben werden. Für gelesene Daten werden Fehlerkorrekturdaten nach demselben Algorithmus neu berechnet und mit den gespeicherten Fehlerkorrekturdaten verglichen, um Fehler festzustellen und gegebenenfalls zu korrigieren. Erfindungsgemäß gibt die Fehlerkorrektur-Vorrichtung die Zahl der in einem vordefinierten Zeitintervall aufgetretenen Fehler an die Vorrichtung zur Steuerung der Aktualisierungsperioden aus. Liegen Fehler vor, so wird die Aktualisierungsperiode verringert, d. h. die Refreshrate erhöht. Liegen keine Fehler vor, so wird die Aktualisierungsperiode erhöht, d. h. die Refreshrate gesenkt.
-
In einer weiteren Ausgestaltung der Erfindung ist der DRAM-Controller dazu ausgebildet, die Aktualisierungsperiode in Abhängigkeit einer Temperatur der Speicherzellen einzustellen. Dadurch kann die Aktualisierungsperiode zu Beginn des Betriebs, wenn noch keine ECC-Daten vorliegen, auf einen ersten Wert eingestellt werden, der der Temperatur entspricht. Außerdem kann die Temperatur als zusätzliches Kriterium genutzt werden, etwa wenn sich die Speicherzellen stark erwärmen.
-
Die beschriebenen Steuerungsvorgänge können von einer geeigneten Elektronik vorgenommen werden, insbesondere in Software implementiert sein.
-
In einer weiteren Ausgestaltung der Erfindung ist der DRAM-Controller räumlich getrennt von den DRAM-Speicherzellen angeordnet. Dies ist ein vorteilhafter Aufbau eines Speichersystems. Hierdurch reicht es, Modifikationen am Prozessor vorzunehmen, während herkömmliche Speichermodule unverändert weiterverwendet werden können.
-
In einer weiteren Ausgestaltung der Erfindung ist der DRAM-Controller in ein Kraftfahrzeug eingebaut. In Kraftfahrzeugen werden Speicherchips mit höherer Temperatur betrieben als in stationären Systemen. Entsprechend sind die Fehlerraten hier höher (zum Teil wird die Hälfte der Zeit während des Betriebs für Aktualisierungen verwendet) und eine genaue Anpassung der Aktualisierungsperiode hier besonders vorteilhaft.
-
Figurenliste
-
Beispielhafte Ausführungsformen der Erfindung sind anhand der beigefügten Zeichnungen näher beschrieben. Es zeigen
- die 1 einen beispielhaften DRAM-Controller mit DRAM-Speicherzellen gemäß der Erfindung; und
- die 2 ein Flussdiagramm, das die Einstellung der Aktualisierungsperiode anhand von Temperatur- und Fehlersignal darstellt.
-
Figurenbeschreibung
-
1 zeigt einen DRAM-Controller mit DRAM-Speicherzellen gemäß einer bespielhaften Ausgestaltung der Erfindung. Die DRAM-Speicherzellen 1 weisen eine On-Die-Fehlerkorrektur-Vorrichtung 2 auf, die beim Lesen detektierte Fehler bestimmt und korrigiert. Die DRAM-Speicherzellen 1 sind ferner thermisch mit einem Temperatursensor 3 gekoppelt. Der Temperatursensor 3 misst die Temperatur der DRAM-Speicherzellen 1 und gibt in Abhängigkeit der Temperatur ein Temperatursignal STemp aus. Der Prozessor 4 umfasst einen DRAM-Controller 5, der Daten in die DRAM-Speicherzellen 1 schreibt und aus den DRAM-Speicherzellen 1 liest. Diese Schreib- und Lesevorgänge schließen auch die Aktualisierungen ein. Der DRAM-Controller 5 umfasst eine Controller-Fehlerkorrektur-Vorrichtung 6, die weitere beim Lesen detektierte Fehler bestimmt und korrigiert. Die Controller-Fehlerkorrektur-Vorrichtung 6 gibt ein erstes Fehlersignal SFehlerl an eine Vorrichtung zur Steuerung der Aktualisierungsperioden 7 aus. Die On-Die-Fehlerkorrektur-Vorrichtung 2 gibt ein zweites Fehlersignal SFehler2 an die Vorrichtung zur Steuerung der Aktualisierungsperioden 7 aus. Die Fehlersignale S Fehler1 und SFehler2 enthalten eine Information über die Zahl der in einem vorbestimmten Zeitintervall aufgetretenen Fehler. Die Vorrichtung zur Steuerung der Aktualisierungsperioden 7 empfängt das Temperatursignal STemp und die Fehlersignale SFehler1 und SFehler2 und stellt abhängig davon eine Aktualisierungsperiode ein. Der DRAM-Controller 5 führt die Aktualisierungen durch, indem er Daten aus dem Speicher liest (Dlesen) und in den Speicher schreibt (Dschreiben).
-
2 zeigt ein Flussdiagramm, das die Einstellung der Aktualisierungsperiode anhand von Temperatur- und Fehlersignal darstellt. Nach dem Start (Schritt 8) wird die Aktualisierungsperiode zunächst anhand der Temperatur eingestellt (Schritt 9). Hierzu wird auf tabellierte Werte zurückgegriffen. Anschließend werden die Fehlersignale der Fehlerkorrektur-Vorrichtungen ausgewertet (Schritt 10). Liegen Fehler vor, so wird die Aktualisierungsperiode um eine vorgegebene Schrittweite verringert (Schritt 12), sofern die Aktualisierungsperiode nicht bereits einen vorgegebenen Minimalwert erreicht hat (Schritt 11). Als Minimalwert kann der kleinste unter Verwendung der im DRAM-Controller genutzten Codierung darstellbare Wert gewählt werden, z. B. 1 ms. Liegen keine Fehler vor, so wird die Aktualisierungsperiode um eine vorgegebene Schrittweite erhöht (Schritt 14), sofern die Aktualisierungsperiode nicht bereits einen vorgegebenen Maximalwert erreicht hat (Schritt 13). Als Maximalwert kann die Zeit gewählt werden, in der sich die DRAM-Kondensatoren bei Raumtemperatur entladen, z. B. 100 ms. Als Schrittweite kann z. B. ein Wert von mindestens 1 ms vorgegeben werden.
-
Bezugszeichenliste
-
- 1.
- DRAM-Speicherzellen
- 2.
- On-Die-Fehl erkorrektur-Vorrichtung
- 3.
- Temperatursensor
- 4.
- Prozessor
- 5.
- DRAM-Controller
- 6.
- Controller-Fehlerkorrektur-Vorrichtung
- 7.
- Vorrichtung zur Steuerung der Aktualisierungsperioden
- 8.
- Start
- 9.
- Aktualisierungsperiode einstellen
- 10.
- Fehler aufgetreten?
- 11.
- Aktualisierungsperiode am Minimum?
- 12.
- Aktualisierungsperiode verringern
- 13.
- Aktualisierungsperiode am Maximum?
- 14.
- Aktualisierungsperiode erhöhen