Speicheraktualisierung - Memory refresh

Die Speicherauffrischung ist der Vorgang des periodischen Lesens von Informationen aus einem Bereich des Computerspeichers und des sofortigen Neuschreibens der gelesenen Informationen in denselben Bereich ohne Modifikation zum Zweck der Beibehaltung der Informationen. Die Speicherauffrischung ist ein Hintergrundwartungsprozess, der während des Betriebs eines dynamischen Halbleiterspeichers mit wahlfreiem Zugriff (DRAM), dem am weitesten verbreiteten Typ von Computerspeicher, erforderlich ist , und ist tatsächlich das bestimmende Merkmal dieser Speicherklasse.

In einem DRAM-Chip wird jedes Bit von Speicherdaten als Vorhandensein oder Fehlen einer elektrischen Ladung auf einem kleinen Kondensator auf dem Chip gespeichert . Im Laufe der Zeit entweichen die Ladungen in den Speicherzellen, so dass die gespeicherten Daten ohne Auffrischung schließlich verloren gehen würden. Um dies zu verhindern, liest eine externe Schaltung periodisch jede Zelle und schreibt sie neu, wodurch die Ladung des Kondensators auf ihren ursprünglichen Pegel zurückgesetzt wird. Jeder Speicherauffrischzyklus frischt einen nachfolgenden Bereich von Speicherzellen auf, wodurch alle Zellen in einem aufeinanderfolgenden Zyklus wiederholt aufgefrischt werden. Dieser Vorgang wird automatisch im Hintergrund von der Speicherschaltung durchgeführt und ist für den Benutzer transparent. Während ein Auffrischzyklus stattfindet, steht der Speicher nicht für normale Lese- und Schreiboperationen zur Verfügung, aber in modernen Speicher ist diese "Overhead"-Zeit nicht groß genug, um den Speicherbetrieb wesentlich zu verlangsamen.

Elektronischer Speicher, der keine Auffrischung erfordert, ist verfügbar, der als statischer Speicher mit wahlfreiem Zugriff (SRAM) bezeichnet wird. SRAM-Schaltungen benötigen mehr Fläche auf einem Chip, da eine SRAM-Speicherzelle vier bis sechs Transistoren benötigt , verglichen mit einem einzelnen Transistor und einem Kondensator für DRAM. Als Ergebnis ist die Datendichte bei SRAM-Chips viel geringer als bei DRAM, und SRAM hat einen höheren Preis pro Bit. Daher wird DRAM für den Hauptspeicher in Computern, Videospielkonsolen, Grafikkarten und Anwendungen verwendet, die große Kapazitäten und geringe Kosten erfordern. Die Notwendigkeit einer Speicherauffrischung macht DRAM-Timing und -Schaltungen wesentlich komplizierter als SRAM-Schaltungen, aber die Dichte- und Kostenvorteile von DRAM rechtfertigen diese Komplexität.

So funktioniert die DRAM-Aktualisierung

Während der Speicher in Betrieb ist, muss jede Speicherzelle innerhalb des vom Hersteller angegebenen maximalen Intervalls zwischen den Auffrischungen, das normalerweise im Millisekundenbereich liegt, wiederholt aufgefrischt werden. Das Auffrischen verwendet nicht die normalen Speicheroperationen (Lese- und Schreibzyklen), die für den Zugriff auf Daten verwendet werden, sondern spezielle Zyklen, die Auffrischzyklen genannt werden, die von separaten Zählerschaltungen in der Speicherschaltung erzeugt und zwischen normalen Speicherzugriffen eingefügt werden.

Die Speicherzellen auf einem Speicherchip sind in einem rechteckigen Array von Zeilen und Spalten angeordnet. Der Leseprozess im DRAM ist destruktiv und entfernt die Ladung von den Speicherzellen in einer ganzen Reihe, daher gibt es eine Reihe von spezialisierten Latches auf dem Chip, die als Leseverstärker bezeichnet werden , einen für jede Spalte von Speicherzellen, um die Daten vorübergehend zu halten. Während einer normalen Leseoperation schreiben die Leseverstärker nach dem Lesen und Zwischenspeichern der Daten die Daten in der Zeile, auf die zugegriffen wird, neu, bevor sie das Bit von einer einzelnen Spalte an den Ausgang senden. Dies bedeutet, dass die normale Leseelektronik auf dem Chip eine ganze Speicherzeile parallel auffrischen kann, was den Auffrischprozess erheblich beschleunigt. Ein normaler Lese- oder Schreibzyklus frischt eine Speicherzeile auf, aber es kann nicht davon ausgegangen werden, dass normale Speicherzugriffe alle Zeilen innerhalb der erforderlichen Zeit treffen, was einen separaten Aktualisierungsprozess erfordert. Anstatt den normalen Lesezyklus im Auffrischprozess zu verwenden, wird zur Zeitersparnis ein abgekürzter Zyklus verwendet, der Auffrischzyklus genannt wird. Der Aktualisierungszyklus ähnelt dem Lesezyklus, wird jedoch aus zwei Gründen schneller ausgeführt:

  • Für eine Auffrischung wird nur die Zeilenadresse benötigt, sodass keine Spaltenadresse an die Chipadressenschaltungen angelegt werden muss.
  • Aus den Zellen gelesene Daten müssen nicht in die Ausgangspuffer oder den Datenbus eingespeist werden , um sie an die CPU zu senden.

Die Auffrischschaltung muss innerhalb des Auffrischzeitintervalls einen Auffrischzyklus an jeder der Zeilen auf dem Chip durchführen, um sicherzustellen, dass jede Zelle aufgefrischt wird.

Arten von Refresh-Schaltungen

Obwohl in einigen frühen Systemen die mikroprozessorgesteuerte Auffrischung mit einem Timer einen periodischen Interrupt auslöste , der eine Unterroutine ausführte , die die Auffrischung durchführte, bedeutete dies, dass der Mikroprozessor nicht angehalten, in Einzelschritten oder in den energiesparenden Ruhezustand versetzt werden konnte, ohne die Auffrischung zu stoppen verarbeiten und die Daten im Speicher verlieren. In modernen Systemen wird die Auffrischung also von Schaltkreisen im Speichercontroller oder zunehmend auf dem Chip selbst durchgeführt. Einige DRAM-Chips, wie z. B. pseudostatischer RAM (PSRAM), haben die gesamte Auffrischungsschaltung auf dem Chip und funktionieren wie statischer RAM , was den Rest des Computers betrifft.

Normalerweise besteht die Auffrischschaltung aus einem Auffrischzähler, der die Adresse der aufzufrischenden Zeile enthält, die an die Zeilenadreßleitungen des Chips angelegt wird , und einem Zeitgeber, der den Zähler inkrementiert, um durch die Zeilen zu schreiten. Dieser Zähler kann Teil der Speichercontrollerschaltung oder auf dem Speicherchip selbst sein. Es wurden zwei Scheduling-Strategien verwendet:

  • Burst-Refresh - eine Reihe von Refresh-Zyklen wird nacheinander durchgeführt, bis alle Zeilen aufgefrischt wurden, wonach normale Speicherzugriffe erfolgen, bis die nächste Auffrischung erforderlich ist
  • Verteilte Auffrischung – Auffrischungszyklen werden in regelmäßigen Abständen durchgeführt, die mit Speicherzugriffen durchsetzt sind.

Burst-Refresh führt zu langen Zeiträumen, in denen der Speicher nicht verfügbar ist, so dass in den meisten modernen Systemen, insbesondere in Echtzeitsystemen , verteilte Refreshs verwendet wurden. Bei der verteilten Aktualisierung beträgt das Intervall zwischen den Aktualisierungszyklen

DDR- SDRAM hat beispielsweise eine Auffrischzeit von 64 ms und 8.192 Zeilen, so dass das Auffrischzyklusintervall 7,8 µs beträgt.

Neuere Generationen von DRAM-Chips enthalten einen integrierten Auffrischzähler, und die Speichersteuerschaltung kann entweder diesen Zähler verwenden oder eine Zeilenadresse von einem externen Zähler liefern. Diese Chips haben drei Standardmethoden zum Bereitstellen einer Auffrischung, ausgewählt durch unterschiedliche Signalmuster auf den Leitungen "Spaltenauswahl" (CAS) und "Reihenauswahl" (RAS):

  • " RAS only refresh " - In diesem Modus wird die Adresse der aufzufrischenden Zeile von den Adressbusleitungen bereitgestellt, so dass sie mit externen Zählern im Speichercontroller verwendet wird.
  • " CAS vor RAS-Auffrischung " (CBR) - In diesem Modus verfolgt der Zähler auf dem Chip die aufzufrischende Zeile und die externe Schaltung leitet lediglich die Auffrischzyklen ein. Dieser Modus verbraucht weniger Strom, da die Speicheradreßbuspuffer nicht eingeschaltet werden müssen. Es wird in den meisten modernen Computern verwendet.
  • " Versteckte Auffrischung " - Dies ist eine alternative Version des CBR-Auffrischungszyklus, die mit einem vorhergehenden Lese- oder Schreibzyklus kombiniert werden kann. Die Aktualisierung erfolgt parallel während der Datenübertragung, was Zeit spart.

Seit der DRAM-Chip-Generation 2012 wurde der "RAS only"-Modus eliminiert und der interne Zähler wird verwendet, um eine Auffrischung zu erzeugen. Für den Einsatz im Ruhezustand des Computers verfügt der Chip über einen zusätzlichen "Schlafmodus", bei dem ein On-Chip- Oszillator interne Refresh-Zyklen erzeugt, damit der externe Takt abgeschaltet werden kann.

Overhead aktualisieren

Der Bruchteil der Zeit, die der Speicher für die Aktualisierung aufwendet, der Aktualisierungs-Overhead, kann aus dem System-Timing berechnet werden:

Zum Beispiel hat ein SDRAM-Chip 2 13 = 8.192 Zeilen, ein Auffrischintervall von 64 ms, der Speicherbus läuft mit 133 MHz und der Auffrischzyklus dauert 4 Taktzyklen. Die Zeit für einen Aktualisierungszyklus beträgt

Somit werden weniger als 0,4% der Zeit des Speicherchips für Auffrischzyklen benötigt. Bei SDRAM-Chips ist der Speicher in jedem Chip in Bänke unterteilt, die parallel aufgefrischt werden, was weitere Zeit spart. Die Anzahl der benötigten Refresh-Zyklen ist also die Anzahl der Zeilen in einer einzelnen Bank, die in den Spezifikationen angegeben ist, die in der Chip-Generation 2012 auf 8.192 eingefroren wurde.

Aktualisierungsintervall

Das maximale Zeitintervall zwischen Auffrischvorgängen ist von JEDEC für jede DRAM-Technologie standardisiert und in den Chipspezifikationen des Herstellers angegeben. Sie liegt normalerweise im Bereich von Millisekunden für DRAM und Mikrosekunden für eDRAM . Bei DDR2-SDRAM-Chips sind es 64 ms. Sie hängt vom Verhältnis der in den Speicherzellenkondensatoren gespeicherten Ladung zu den Leckströmen ab. Trotz der Tatsache, dass die Geometrie der Kondensatoren mit jeder neuen Generation von Speicherchips schrumpft, sodass Kondensatoren der späteren Generation weniger Ladung speichern, haben sich die Auffrischzeiten für DRAM verbessert; von 8 ms für 1 Mio. Chips, 32 ms für 16 Mio. Chips bis 64 ms für 256 Mio. Chips. Diese Verbesserung wird hauptsächlich durch die Entwicklung von Transistoren erreicht, die deutlich weniger Leckströme verursachen. Eine längere Auffrischzeit bedeutet, dass ein kleinerer Bruchteil der Zeit des Geräts mit Auffrischen belegt wird, wodurch mehr Zeit für Speicherzugriffe bleibt. Obwohl der Refresh-Overhead in früheren DRAMs bis zu 10 % der Chipzeit beanspruchte, beträgt dieser Anteil bei modernen Chips weniger als 1 %.

Da die Leckströme in Halbleitern mit der Temperatur zunehmen, müssen die Auffrischzeiten bei hoher Temperatur verringert werden. DDR2-SDRAM-Chips haben eine temperaturkompensierte Auffrischungsstruktur; Die Aktualisierungszykluszeit muss halbiert werden, wenn die Temperatur des Chipgehäuses 85 °C (185 °F) überschreitet.

Die tatsächliche Persistenz von lesbaren Ladungswerten und damit Daten in den meisten DRAM-Speicherzellen ist viel länger als die Auffrischzeit, bis zu 1–10 Sekunden. Jedoch variieren Transistorleckströme aufgrund von Prozessvariationen stark zwischen verschiedenen Speicherzellen auf demselben Chip. Um sicherzustellen, dass alle Speicherzellen aufgefrischt werden, bevor ein einzelnes Bit verloren geht, müssen die Hersteller ihre Auffrischzeiten konservativ kurz einstellen.

Diese häufige DRAM-Auffrischung verbraucht ein Drittel der Gesamtleistung, die von elektronischen Geräten mit geringem Stromverbrauch im Standby-Modus aufgenommen wird. Forscher haben mehrere Ansätze vorgeschlagen, um die Batterielaufzeit zwischen den Ladungen zu verlängern, indem die Aktualisierungsrate reduziert wird, einschließlich temperaturkompensierter Aktualisierung (TCR) und retentionsbewusster Platzierung im DRAM (RAPID). Experimente zeigen, dass in einem typischen DRAM-Chip von der Stange nur wenige schwache Zellen wirklich das 64-ms-Refresh-Intervall im schlimmsten Fall benötigen, und selbst dann nur am oberen Ende seines spezifizierten Temperaturbereichs. Bei Raumtemperatur (zB 24 °C (75 °F)) müssen dieselben schwachen Zellen alle 500 ms für einen korrekten Betrieb aufgefrischt werden. Wenn das System vermeiden kann, das schwächste 1% der Seiten zu verwenden, muss ein typischer DRAM selbst bei 70 °C (158 °F) nur einmal pro Sekunde aktualisiert werden, um die verbleibenden 99 % der Seiten korrekt zu betreiben. Einige Experimente kombinieren diese beiden komplementären Techniken, um einen korrekten Betrieb bei Raumtemperatur in Auffrischungsintervallen von 10 Sekunden zu ermöglichen.

Bei fehlertoleranten Anwendungen (z. B. Grafikanwendungen) spart das Auffrischen nicht kritischer Daten, die im DRAM oder eDRAM gespeichert sind, mit einer niedrigeren Rate als deren Aufbewahrungsdauer Energie mit geringem Qualitätsverlust, was ein Beispiel für ungefähre Berechnungen ist .

SRAM- und DRAM-Speichertechnologien

SRAM

In einem statischen Direktzugriffsspeicher (SRAM), einer anderen Art von Halbleiterspeicher, werden die Daten nicht als Ladung auf einem Kondensator, sondern in einem Paar kreuzgekoppelter Inverter gespeichert , sodass der SRAM nicht aufgefrischt werden muss. Die beiden grundlegenden Speichertypen haben Vor- und Nachteile. Statischer Speicher kann im eingeschalteten Zustand als permanent angesehen werden, dh wenn er einmal geschrieben wurde, bleibt der Speicher, bis er speziell geändert wird, und daher ist seine Verwendung im Hinblick auf das Systemdesign tendenziell einfach. Der interne Aufbau jeder SRAM-Zelle erfordert jedoch sechs Transistoren im Vergleich zu dem einzelnen Transistor, der für eine DRAM-Zelle erforderlich ist, so dass die Dichte von SRAM viel niedriger und der Preis pro Bit viel höher ist als bei DRAM.

CPU-basierte Aktualisierung

Einige frühe Mikroprozessoren (zB der Zilog Z80 ) stellten spezielle interne Register bereit, die den Zeilenadressen-Strobe (RAS) zum Auffrischen dynamischer Speicherzellen bereitstellen konnten, wobei das Register bei jedem Auffrischungszyklus inkrementiert wurde. Dies könnte auch durch andere bereits im System verwendete integrierte Schaltungen erreicht werden, wenn diese bereits zyklische Zugriffe über den RAM erzeugten ( z. B. das Motorola 6845 ). Bei CPUs wie dem Z80 war die Verfügbarkeit einer RAS-Aktualisierung aufgrund des vereinfachenden Hardwaredesigns ein großes Verkaufsargument. Hier wird die RAS-Auffrischung durch eine einzigartige Kombination von Adress- und Steuerleitungen während betriebsredundanter Taktzyklen (T-States) signalisiert, dh während der Decodierung/Ausführung von Befehlen, wenn die Busse möglicherweise nicht benötigt werden. Anstatt dass der Bus während solcher T-Zustände inaktiv ist, würde das Auffrischregister auf dem Adressbus zusammen mit einer Kombination von Steuerleitungen präsentiert, um die Auffrischschaltung anzuzeigen.

In frühen Versionen des Z80 führte die Allgegenwart von 16-kB-RAM-Chips ( dh mit 128 Zeilen) und ein Mangel an Voraussicht dazu, dass das R-Register nur über einen 7 Bit breiten Bereich (0–127, dh 128 Zeilen) inkrementiert wurde. ; das 8. Bit könnte vom Benutzer gesetzt werden, würde aber durch den internen Zyklus unverändert bleiben. Mit dem schnellen Aufkommen von 64-kbit+-DRAM-Chips (mit einem 8-Bit-RAS) mussten zusätzliche Schaltungen oder Logiken um das Auffrischsignal herum gebaut werden, um das fehlende 8. Bit zu synthetisieren und zu verhindern, dass Speicherblöcke nach wenigen Millisekunden verloren gehen. In manchen Zusammenhängen war es möglich, Interrupts zu nutzen , um das 8. Bit zum passenden Zeitpunkt umzudrehen und so den gesamten Bereich des R-Registers (256 Zeilen) abzudecken. Eine andere, vielleicht universellere, aber auch hardwaretechnisch komplexere Methode war die Verwendung eines 8-Bit-Zählerchips, dessen Ausgang anstelle des R-Registers die Refresh-RAS-Adresse lieferte: Das Refresh-Signal der CPU wurde als Taktgeber verwendet für diesen Zähler, was dazu führt, dass die aufzufrischende Speicherzeile mit jedem Auffrischzyklus inkrementiert wird. Spätere Versionen und lizenzierte "Work-Alikes" des Z80-Kerns beseitigten die Nichtberücksichtigung des 8. Bits beim automatischen Zyklus, und moderne CPUs haben diese grundlegende Bereitstellung stark erweitert, um umfassende All-in-One-Lösungen für die DRAM-Aktualisierung bereitzustellen.

Pseudostatischer DRAM

Pseudostatischer RAM (PSRAM oder PSDRAM) ist ein dynamischer RAM mit eingebauter Auffrischungs- und Adresssteuerschaltung, damit er sich ähnlich wie statischer RAM (SRAM) verhält. Es kombiniert die hohe Dichte von DRAM mit der Benutzerfreundlichkeit von echtem SRAM. PSRAM (hergestellt von Numonyx) wird im Apple iPhone und anderen eingebetteten Systemen verwendet.

Einige DRAM-Komponenten haben einen "Selbstauffrischungsmodus", der viel von der gleichen Logik beinhaltet, die für den pseudostatischen Betrieb benötigt wird, aber dieser Modus entspricht oft einem Standby-Modus. Es ist in erster Linie vorgesehen, um einem System zu ermöglichen, den Betrieb seines DRAM-Controllers auszusetzen, um Energie zu sparen, ohne im DRAM gespeicherte Daten zu verlieren, anstatt einen Betrieb ohne einen separaten DRAM-Controller zu ermöglichen, wie dies bei PSRAM der Fall ist. Eine eingebettete Variante von PSRAM wird von MoSys unter dem Namen 1T-SRAM vertrieben . Es ist technisch gesehen DRAM, verhält sich aber ähnlich wie SRAM und wird in den Nintendo Gamecube- und Wii- Konsolen verwendet.

Andere Speichertechnologien mit Refresh

Mehrere frühe Computerspeichertechnologien erforderten auch periodische Prozesse, die dem Zweck der Speicherauffrischung ähnlich waren. Die Williams-Röhre hat die größte Ähnlichkeit, da sie, wie beim DRAM, im Wesentlichen ein kapazitiver Speicher ist, in dem die für jedes Bit gespeicherten Werte allmählich abklingen, wenn sie nicht aktualisiert werden.

In einem Magnetkernspeicher kann jede Speicherzelle auch bei ausgeschaltetem Strom unbegrenzt Daten behalten, aber das Lesen der Daten aus einer beliebigen Speicherzelle löscht ihren Inhalt. Als Folge fügte der Speichercontroller typischerweise nach jedem Lesezyklus einen Auffrischungszyklus hinzu , um die Illusion einer zerstörungsfreien Leseoperation zu erzeugen.

Der Verzögerungsleitungsspeicher erfordert eine ständige Auffrischung, da die Daten tatsächlich als Signal in einer Übertragungsleitung gespeichert werden . In diesem Fall ist die Bildwiederholfrequenz auf die Speicher vergleichbar Zugriffszeit .

Siehe auch

Verweise