Dynamic Random Access Memory (DRAM) oder der halb eingedeutschte Begriff dynamisches RAM bezeichnet eine Technologie für einen elektronischen Speicherbaustein mit wahlfreiem Zugriff (Random-Access Memory, RAM), der hauptsächlich in Computern eingesetzt wird, jedoch auch in anderen elektronischen Geräten wie zum Beispiel Druckern zur Anwendung kommt. Das speichernde Element ist dabei ein Kondensator, der entweder geladen oder entladen ist. Über einen Schalttransistor wird er zugänglich und entweder ausgelesen oder mit neuem Inhalt beschrieben.
Der Speicherinhalt ist flüchtig, das heißt die gespeicherte Information geht bei fehlender Betriebsspannung oder zu später Wiederauffrischung verloren.
Einleitung
Ein Kennzeichen des DRAM ist die Kombination aus einer sehr hohen Datendichte verbunden mit sehr geringen Herstellungskosten. Es findet deswegen vor allem dort Verwendung, wo große Speichermengen bei mittleren Zugriffszeiten (verglichen mit statischem RAM, SRAM) zur Verfügung gestellt werden müssen.
Der Speicherinhalt muss bei DRAMs im Gegensatz zu SRAMs zyklisch aufgefrischt werden (Refresh). Dies ist normalerweise in Abständen von einigen zig Millisekunden erforderlich. Das Auffrischen des Speichers erfolgt zeilenweise. Dazu wird jeweils eine Speicherzeile in einem Schritt in einen auf dem Chip befindlichen Zeilenpuffer übertragen und von dort verstärkt wieder zurück in die Speicherzeile geschrieben. Daher rührt die Bezeichnung „dynamisch“. Bei statischen Speichern wie SRAM kann man demgegenüber alle Signale anhalten, ohne dass Datenverlust eintritt. Das Auffrischen des DRAMs verbraucht außerdem auch im Ruhezustand eine gewisse Menge von Energie. In Anwendungen, bei denen es auf geringen Ruhestrom ankommt, bevorzugt man deshalb SRAM.
Ladung in den Speicherzellen-Kondensatoren verflüchtigt sich innerhalb von Millisekunden, kann aber durch Fertigungstoleranzen bedingt auch noch Sekunden bis Minuten in den Speicherzellen bestehen. Forschern der Princeton-Universität gelang es, direkt nach einem Kaltstart Daten noch forensisch auszulesen. Spezifiziert werden die Bauteile sicherheitshalber immer mit dem garantierten Worst-Case-Wert, also der kürzesten vorkommenden Haltezeit.
Die Hersteller von Speicher versuchen kontinuierlich, den Energiebedarf zu senken, indem die Verluste durch Umladen wie auch Leckströme minimiert werden. Beide hängen von der Versorgungsspannung ab.
Während der 1998 eingeführte DDR-SDRAM noch mit 2,5 Volt betrieben wurde, wurde DDR2-SDRAM mit 1,8 Volt, DDR3-SDRAM mit 1,5 Volt und der 2014 eingeführten DDR4-SDRAM mit 1,2 Volt betrieben.
Ein DRAM ist entweder als eigenständiger integrierter Schaltkreis ausgeführt oder als Speicherzelle Teil eines größeren Chips.
Das „Random“ in Random-Access Memory steht dabei für den wahlfreien Zugang auf den Speicherinhalt bzw. die einzelnen Speicherzellen, im Gegensatz zum sequenziellen Zugriff wie beispielsweise bei (hardwareseitig organisierten) FIFO- oder LIFO-Speichern.
Aufbau
Ein DRAM besteht nicht wie im Artikel Halbleiterspeicher vereinfacht gezeigt aus einer einzigen zweidimensionalen Matrix. Stattdessen sind die Speicherzellen, die auf der Oberfläche eines Dies angeordnet und verdrahtet sind, in einer ausgeklügelten hierarchischen Struktur unterteilt. Während die innere Struktur herstellerspezifisch aufgebaut ist, ist die von außen sichtbare logische Struktur vom Industriegremium JEDEC normiert. Dadurch wird sichergestellt, dass sich Chips unterschiedlicher Hersteller und verschiedener Größen nach dem immer gleichen Schema ansprechen lassen.
Aufbau einer Speicherzelle
Der Aufbau einer einzelnen DRAM-Speicherzelle ist sehr einfach, sie besteht nur aus einem Kondensator und einem Transistor. Heute verwendet man einen MOS-Feldeffekttransistor. Die Information wird als elektrische Ladung im Kondensator gespeichert. Jede Speicherzelle speichert ein Bit. Während früher meist Kondensatoren in Planartechnologie Verwendung fanden, werden aktuell zwei andere Technologien verwendet:
- Bei der Stack-Technik (englisch stack ‚Stapel‘) wird der Kondensator über dem Transistor aufgebaut.
- Bei der Trench-Technik (englisch trench ‚Graben‘) wird der Kondensator durch Ätzen eines ca. 5–10 Mikrometer tiefen Loches (oder Grabens) in das Substrat erzeugt.
- Planartechnologie
- Stapeltechnologie
- Grabentechnologie mit Poly-Si-Platte
Der in der nebenstehenden Abbildung eingezeichnete obere Anschluss wird entweder auf die Bit-Leitungsspannung VBL aufgeladen oder entladen (0 V). Der untere Anschluss aller Kondensatoren wird gemeinsam an eine Spannungsquelle angeschlossen, welche idealerweise eine Spannung von VPl = 1/2 · VBL besitzt. Dadurch lässt sich die Maximalfeldstärke im Dielektrikum des Kondensators halbieren.
Der Transistor (auch Auswahltransistor genannt) dient als Schalter zum Lesen und Schreiben der Information aus der Zelle. Dazu wird über die Wort-Leitung (englisch wordline) an den Gate-Anschluss „G“ des n-MOS-Transistors eine positive Spannung VWL angelegt. Dadurch wird eine leitende Verbindung zwischen den Source- („S“) und den Drain-Gebieten („D“) hergestellt, welche den Zellkondensator mit der Bit-Leitung (englisch bitline) verbindet. Der Substrat-Anschluss „B“ (bulk) des Transistors ist entweder an das Massepotential oder an eine leicht negative SpannungVSub zur Unterdrückung von Leckströmen angeschlossen.
Durch ihren sehr einfachen Aufbau brauchen die Speicherzellen nur sehr wenig Chipfläche. Die konstruktionsbedingte Größe einer Speicherzelle wird gern als das Vielfache der Quadratfläche F² der kleinsten fertigbaren Strukturlänge („minimum feature size“ oder abgekürzt F) angegeben: Eine DRAM-Zelle benötigt heute 6 oder 8 F², während eine SRAM-Zelle mehr als 100 F² benötigt. Daher kann ein DRAM bei gegebener Chipgröße eine wesentlich größere Zahl von Bits speichern. Daraus resultieren weitaus niedrigere Herstellungskosten pro Bit als beim SRAM. Unter den heute üblichen elektronischen Speicherarten hat nur der NAND-Flash eine kleinere Speicherzelle mit ungefähr 4,5 F² (bzw. 2,4 F² pro Bit für 2-Bit/4-Pegel-Zellen bzw. 1,7 F² pro Bit für 3-Bit/8-Pegel-Zellen).
Aufbau einer Speicherzeile („Page“)
Durch Anschließen weiterer Speicherzellen an eine Wortleitung erhält man eine Speicherzeile, die üblicherweise als Seite (englisch page) bezeichnet wird. Das Charakteristische an einer Zeile ist die Eigenschaft, dass alle zugehörigen Zellen bei der Aktivierung einer Wortleitung (rot dargestellt) ihren gespeicherten Inhalt gleichzeitig auf die ihnen zugeordnete Bitleitung (blau dargestellt) ausgeben. Eine übliche Pagegröße liegt bei 1 Ki bis 16 Ki (…) Zellen.
Aufbau eines Zellenfeldes
Die Speicherzellen sind in einer Matrixanordnung verschaltet: 'Wortleitungen' verbinden alle Steuerelektroden der Auswahltransistoren in einer Zeile, Bitleitungen verbinden alle Drain-Gebiete der Auswahltransistoren einer Spalte.
Am unteren Rande der Matrix sind die Bitleitungen mit den (primären) Schreib-Lese-Verstärkern (englisch sense-amplifier) verbunden. Da sie in das enge Raster des Zellenfeldes passen müssen, sind sie in der einfachsten Form als zwei gegengekoppelte CMOS-Inverter aus nur vier Transistoren aufgebaut. Ihre Versorgungsspannung ist gerade gleich der Bitleitungsspannung VBL. Neben ihrer Funktion als Verstärker des ausgelesenen Zellsignals haben sie noch den Nebeneffekt, dass ihr Aufbau dem eines einfachen statischen Speichers (Latch) entspricht. Der primäre Leseverstärker dient somit gleichzeitig als Speicher einer kompletten Speicherzeile.
Die über den Leseverstärkern eingezeichneten Schalter dienen im inaktiven Zustand zur Vorladung der Bitleitungen auf einen Pegel von ½ · VBL, welcher gerade den Mittelwert der Spannung einer aufgeladenen und einer entladenen Zelle darstellt.
Auf einem Speicher-Chip sind eine Vielzahl dieser Speichermatrizen zu einem zusammenhängenden Speicherbereich verschaltet, der Chip ist also (transparent nach außen) intern in Submatrizen gegliedert. Dabei werden je nach Auslegung sämtliche Datenleitungen zu einem einzigen Datenpin nach außen geführt oder auf 4, 8, 16 oder 32 Datenpins verteilt. Dies ist dann die Datenbreite k des einzelnen DRAM-Chips, für breitere Busbreiten müssen mehrere Chips kombiniert werden.
Adressdekodierung
Das benachbart abgebildete Diagramm zeigt den prinzipiellen Aufbau der Adressdekodierung für ein einzelnes Zellenfeld. Die Zeilenadresse wird über n Adressleitungen dem Zeilendekoder zugeführt. Dieser wählt aus den an ihn angeschlossenen 2n Wortleitungen genau eine einzelne aus und aktiviert diese, indem er ihr Potenzial auf die Wortleitungsspannung VWL anhebt. Die dadurch im Zellenfeld aktivierte Speicherzeile gibt ihren Dateninhalt nun auf die Bitleitungen aus. Das resultierende Signal wird von den (primären) Leseverstärkern verstärkt, gespeichert und gleichzeitig wieder in die Zelle zurückgeschrieben.
Die Dekodierung der Spaltenadresse und die Auswahl der auszulesenden Daten ist ein zweistufiger Prozess. In einem ersten Schritt werden die m Adressleitungen der Spaltenadresse dem Spaltendekoder zugeführt. Dieser wählt aus den üblicherweise 2m angeschlossenen Spaltenauswahlleitungen eine aus und aktiviert diese. Damit werden – je nach Breite des Speichers – k Bitleitungen gleichzeitig ausgewählt. In einem zweiten Schritt wird im Block Spaltenauswahl diese Untermenge von k Bitleitungen aus der Menge der insgesamt k · 2m Bitleitungen mit den k Datenleitungen Richtung Außenwelt verbunden. Diese werden abschließend von einem weiteren Schreib-Lese-Verstärker (nicht eingezeichnet) verstärkt.
Um das Übersprechen zwischen benachbarten Speicherzellen und ihren Zuleitungen zu begrenzen, werden die Adressen bei der Dekodierung üblicherweise verwürfelt, und zwar nach einer standardisierten Regel, so dass sie nicht in der Reihenfolge ihrer binären Wertigkeit in der physischen Anordnung wiederzufinden sind.
Interne Abläufe
Ausgangszustand
- Im Ruhezustand eines DRAMs befindet sich die Wortleitung auf niedrigem Potential (UWL = 0 V). Die Zelltransistoren sind dadurch nichtleitend, die in den Kondensatoren gespeicherte Ladung bleibt – abgesehen von unerwünschten Leckströmen – erhalten.
- Beide in dem Diagramm des Zellenfeldes über den Leseverstärkern skizzierten Schalter sind geschlossen. Durch sie werden die beiden Bitleitungen, welche gemeinsam an einem Leseverstärker angeschlossen sind, auf gleichem Potential (½ · UBL) gehalten.
- Die Spannungsversorgung der Leseverstärker (UBL) ist abgeschaltet.
Aktivierung einer Speicherzeile
- Aus der bei einem Activate übergebenen Bank- und Zeilenadresse (vgl. Diagramme zum „Burst Read“-Zugriff) wird zunächst ermittelt, in welcher Bank und ggf. in welchem Speicherblock sich die angegebene Zeile befindet.
- Die Schalter zur 'Bitleitungsvorladung' werden geöffnet. Die bis dahin auf halbe Bitleitungsspannung aufgeladenen Bitleitungen sind damit von jeder Spannungsquelle abgekoppelt.
- An die Wortleitung wird eine positive Spannung angelegt. Die Transistoren des Zellenfeldes werden somit leitend. Durch die langen Wortleitungen kann dieser Vorgang mehrere Nanosekunden andauern und ist somit einer der Gründe für die „Langsamkeit“ eines DRAMs.
- Es findet ein Ladungsaustausch zwischen dem Zellkondensator und einer der beiden an einem Leseverstärker angeschlossenen Bitleitungen statt. Am Ende des Ladungsaustausches haben sich die Zelle und Bitleitung auf eine Spannung von
- aufgeladen. Das Vorzeichen der Spannungsänderung (±) hängt davon ab, ob zuvor in der Zelle eine '1' oder eine '0' gespeichert war. Aufgrund der hohen Bitleitungskapazität CBL / C = 5 … 10 (bedingt durch die Leitungslänge) liegt die Spannungsänderung in einer Größenordnung von nur 100 mV. Dieser Umladungsvorgang dauert aufgrund der hohen Bitleitungskapazität ebenfalls einige Nanosekunden.
- Gegen Ende dieses Umladungsvorganges wird die Versorgungsspannung (UBL) der primären Leseverstärker eingeschaltet. Diese beginnen mit der Verstärkung des kleinen Spannungsunterschiedes zwischen beiden Bitleitungen und laden eine davon auf UBL auf und entladen die andere auf 0 V.
Lesen von Daten
- Zum Lesen von Daten muss nun vom Spaltendekoder die Spaltenadresse dekodiert werden.
- Die zur Spaltenadresse korrespondierende Spaltenauswahlleitung (englisch column select line, CSL) wird aktiviert und verbindet ein oder mehrere Bitleitungen am Ausgang der primären Leseverstärker mit Datenleitungen, die aus dem Zellenfeld herausführen. Aufgrund der Länge dieser Datenleitungen müssen die Daten am Rande des Zellenfeldes erneut mit einem (sekundären) Leseverstärker verstärkt werden.
- Die ausgelesenen Daten werden in ein Schieberegister parallel eingelesen, dort mit dem externen Takt (englisch clock) synchronisiert und verstärkt ausgegeben.
Schreiben von Daten
- Die in den DRAM einzuschreibenden Daten werden nahezu zeitgleich mit der Spaltenadresse eingelesen.
- Die Spaltenadresse wird vom Spaltendekoder dekodiert und die entsprechende Spaltenauswahlleitung wird aktiviert. Dadurch wird wieder die Verbindung zwischen einer Datenleitung und einer Bitleitung hergestellt.
- Parallel zur Decodierung der Spaltenadresse treffen die Schreibdaten am Spaltenauswahlblock an und werden zu den Bitleitungen weitergeführt. Die (schwachen) primären Leseverstärker werden dabei überschrieben und nehmen nun einen den Schreibdaten entsprechenden Zustand an.
- Die Leseverstärker unterstützen nun das Umladen der Bitleitungen und der Speicherkondensatoren im Zellenfeld.
Deaktivierung einer Speicherzeile
- Die Wortleitungsspannung wird auf 0 V oder einen leicht negativen Wert verringert. Dadurch werden die Zelltransistoren nichtleitend und koppeln die Zellkondensatoren von den Bitleitungen ab.
- Die Spannungsversorgung der Leseverstärker kann nun abgeschaltet werden.
- Die beiden Bitleitungen verbindenden Schalter zur Bitleitungsvorladung werden geschlossen. Damit stellt sich auf den Bitleitungen wieder der Ausgangszustand (U = ½ UBL) ein.
Timingparameter der internen Abläufe
- tRCD
- Der Parameter tRCD (RAS-to-CAS delay, row-to-column delay) beschreibt bei einem DRAM die Zeit, die nach der Aktivierung einer Wortleitung (activate) verstrichen sein muss, bevor ein Lesekommando (read) gesendet werden darf. Der Parameter ist dadurch bedingt, dass das Verstärken der Bitleitungsspannung und das Rückschreiben des Zellinhaltes abgeschlossen sein muss, bevor die Bitleitungen mit den Datenleitungen weiterverbunden werden dürfen.
- CL
- Der Parameter CL (CAS latency, auch tCL) beschreibt die Zeit, welche zwischen der Absendung eines Lesekommandos und dem Erhalt der Daten vergeht.
- tRAS
- Der Parameter tRAS (RAS pulse width, Active Command Period, Bank Active Time) beschreibt die Zeit, die nach der Aktivierung einer Zeile (bzw. einer Zeile in einer Bank) verstrichen sein muss, bevor ein Kommando zum Deaktivieren der Zeile (Precharge, Schließen der Bank) gesendet werden darf. Der Parameter ist dadurch gegeben, dass die Verstärkung der Bitleitungsspannung und das Rückschreiben der Information in die Zelle vollständig abgeschlossen sein muss, bevor die Wortleitung deaktiviert werden darf. d. h. je kleiner desto besser.
- tRP
- Der Parameter „tRP“ („Row Precharge Time“) beschreibt die Zeit, die nach einem Precharge-Kommando mindestens verstrichen sein muss, bevor ein erneutes Kommando zur Aktivierung einer Zeile in der gleichen Bank gesendet werden darf. Diese Zeit ist durch die Bedingung definiert, dass alle Spannungen im Zellenfeld (Wortleitungsspannung, Versorgungsspannung der Leseverstärker) abgeschaltet sind und die Spannungen aller Leitungen (insbesondere die der Bitleitungen) wieder auf ihrem Ausgangsniveau angekommen sind.
- tRC
- Der Parameter „tRC“ („Row Cycle Time“) beschreibt die Zeitdauer, die zwischen zwei aufeinander folgenden Aktivierungen zweier beliebiger Zeilen in derselben Bank verstrichen sein muss. Der Wert entspricht weitgehend der Summe der Parameter tRAS und tRP und beschreibt somit die minimal notwendige Zeit, um eine Speicherzeile aufzufrischen.
An der Northbridge (NB) angeschlossene Speicherriegel werden häufig mit einem Zahlensatz in der Form von CL12-34-56 ausgezeichnet, dabei steht die erste Zahl für die CL, die zweite für tRCD, die dritte für tRP; ein gelegentlich angehängtes viertes Ziffernpaar bezeichnet tRAS. Dieser Zahlensatz wird auch als (CL)(tRCD)(tRP)(tRAS) bezeichnet.
DRAM-spezifische Eigenschaften
Adressmultiplex
Adressierung
Die Adressleitungen eines DRAMs sind üblicherweise gemultiplext, hingegen wird bei SRAMs zwecks höherer Geschwindigkeit meist der komplette Adressbus an Pins geführt, so dass der Zugriff in einer einzigen Operation erfolgen kann.
Asynchrone DRAMs (EDO, FPM) besitzen zwei Eingangspins RAS (Row Address Select / Strobe) und CAS (Column Address Select / Strobe), um die Benutzung der Adressleitungen zu definieren: bei einer fallenden Flanke von RAS wird die an den Adressleitungen anliegende Adresse als Zeilenadresse interpretiert, bei einer fallenden Flanke von CAS wird sie als Spaltenadresse interpretiert.
RAS
Row Address Strobe, dieses Steuersignal liegt während einer gültigen Zeilenadresse an. Der Speicherbaustein legt diese Adresse in einem Zwischenspeicher ab.
CAS
Column Address Select bzw. Column Address Strobe, dieses Steuersignal liegt während einer gültigen Spaltenadresse an. Der Speicherbaustein legt diese Adresse in einem Zwischenspeicher ab.
Synchrone DRAMs (SDRAM, DDR-SDRAM) besitzen ebenfalls die Steuereingänge RAS und CAS, jedoch haben sie hier ihre unmittelbare Funktion verloren. Stattdessen werden bei synchronen DRAMs die Kombination aller Steuersignale (CKE, RAS, CAS, WE, CS) bei steigender Clock-Flanke ausgewertet, um zu entscheiden, ob und in welcher Form die Signale auf den Adressleitungen interpretiert werden müssen.
Dem Vorteil der Einsparung von externen Adressleitungen steht ein scheinbarer Nachteil in Form einer verzögerten Verfügbarkeit der Spaltenadresse gegenüber. Die Spaltenadresse wird jedoch erst nach der Dekodierung der Zeilenadresse, der Aktivierung einer Wortleitung und dem Bewerten des Bitleitungssignals benötigt. Dieser interne Vorgang benötigt jedoch ca. 15 ns, so dass sich die verzögert erhaltene Spaltenadresse nicht negativ auswirkt.
Burst
In den nebenstehenden Bildern ist für einen asynchronen und einen synchronen DRAM jeweils ein Lesezugriff im sogenannten Burst-Modus dargestellt, wie er beim BEDO-DRAM zum Einsatz kommt. Das charakteristische Element eines Burst-Zugriffs (beim Lesen oder Schreiben) ist die unmittelbare Aufeinanderfolge der Daten (Data1, …, Data4). Die Daten gehören zur gleichen Zeile des Zellenfeldes, besitzen dadurch die gleiche Zeilenadresse (englisch row), aber unterschiedliche Spaltenadressen (Col1, …, Col4). Die benötigte Zeitdauer für die Bereitstellung des nächsten Datenbits innerhalb des Bursts ist sehr gering verglichen mit der Zeitdauer für die Bereitstellung des ersten Datenbits gemessen ab der Aktivierung der Zeile.
Während bei asynchronen DRAMs noch alle Spaltenadressen innerhalb des Bursts angegeben werden mussten (Col1, …, Col4), wird bei synchronen DRAMs (SDR, DDR) nur noch die Startadresse angegeben. Die für den restlichen Burst benötigten Spaltenadressen werden danach durch einen internen Zähler erzeugt.
Die hohe Datenrate innerhalb eines Bursts erklärt sich dadurch, dass innerhalb eines Bursts nur noch lesend (oder schreibend) auf die Leseverstärker zugegriffen werden muss. Die aus 2 CMOS-Invertern (4 Transistoren) aufgebauten Leseverstärker entsprechen dem Grundaufbau der Zelle eines statischen RAMs (vgl. nebenstehende Diagramme). Zur Bereitstellung des nächsten Burst-Datenbits ist somit lediglich die Spaltenadresse zu dekodieren und die entsprechende Spaltenauswahlleitung zu aktivieren (diese korrespondiert mit den Anschlussleitungen zum Gate-Anschluss der Transistoren M5 und M6 einer SRAM-Zelle).
- 'Burst Read' eines asynchronen (EDO-)DRAMs. Hier musste noch für jedes Burst-Bit die zugehörige Spaltenadresse (Col) vorgegeben werden.
- 'Burst Read' eines synchronen (SDR-)DRAMs
- Zellenfeld eines DRAMs mit primären Leseverstärkern (unten)
- Ein DRAM-Leseverstärker ist analog zu den Transistoren M1, M2, M3 und M4 einer solchen 6-Transistor-SRAM-Zelle aufgebaut
Refresh
Die in kurzen Zeitabständen notwendige Wiederauffrischung (von engl. refresh, dt. „auffrischen“) des Speicherinhalts wird allgemein mit dem englischen Terminus Refresh bezeichnet. Die Notwendigkeit ergibt sich aus dem Auftreten unerwünschter Leckströme, welche die in den Kondensatoren gespeicherte Ladungsmenge verändern. Die Leckströme haben eine exponentielle Temperaturabhängigkeit: Die Zeit, nach der der Inhalt einer Speicherzelle nicht mehr korrekt bewertet werden kann (retention time), halbiert sich jeweils bei einer Temperaturerhöhung um 15 bis 20 K. Kommerziell erhältliche DRAMs besitzen meist eine vorgeschriebene Refresh-Periode von 32 ms oder 64 ms.
Technisch sind dazu im Speicherchip die primären Leseverstärker (siehe Abbildung oben) mit der Funktion eines Latch-Registers ausgestattet. Sie sind als SRAM-Zellen ausgeführt, also als Flip-Flops. Wenn eine bestimmte Zeile (englisch page, dt. Seite) ausgewählt wurde, wird die gesamte Zeile in die Latches des Leseverstärkers kopiert. Da die Ausgänge des Verstärkers gleichzeitig auch mit dessen Eingängen verbunden sind, werden die verstärkten Signale direkt wieder in die dynamischen Speicherzellen der ausgewählten Zeile zurückgeschrieben, sie sind damit aufgefrischt.
Es gibt verschiedene Verfahren dieser Refresh-Steuerung:
- RAS-only-Refresh
- Diese Methode beruht auf der Tatsache, dass das Aktivieren einer Zeile automatisch mit einer Bewertung und einem Rückschreiben des Zellinhaltes verbunden ist. Zu diesem Zweck muss der Speichercontroller extern die Zeilenadresse der aufzufrischenden Zeile anlegen und über die Steuersignale eine Aktivierung der Zeile bewirken (vgl. Diagramm zum RAS-only-Refresh beim EDO-DRAM).
- CAS-before-RAS-Refresh
- Diese Refresh-Methode erhielt ihren Namen von der Ansteuerung asynchroner DRAMs, ist aber auch bei synchronen DRAMs unter der Bezeichnung Auto-Refresh erhalten geblieben. Die Namensgebung beruhte auf der ansonsten unzulässigen Signalfolge – diese Art der Signalsetzung wird in der Digitaltechnik vermieden, da sie relativ fehleranfällig ist (z. B. bei der Synchronisation) –, dass eine fallende CAS-Flanke vor einer fallenden RAS-Flanke erzeugt wurde (vgl. Diagramm zum CBR-Refresh beim EDO-DRAM). Als Reaktion auf die Signalfolge führte der DRAM einen Refresh-Zyklus durch, ohne dass er auf eine externe Adresse angewiesen war. Stattdessen wurde die Adresse der aufzufrischenden Zeile in einem internen Zähler bereitgestellt und nach erfolgter Ausführung automatisch erhöht.
- Self-Refresh
- Diese Methode war bei speziellen Bauformen asynchroner DRAMs eingeführt worden und wurde erst mit synchronen DRAMs verbindlich implementiert. Bei dieser Methode wird weitestgehend auf externe Steuer- oder Adresssignale (für den Refresh) verzichtet (vgl. Diagramm zum Self-Refresh beim EDO-DRAM). Der DRAM befindet sich dabei in einem Stromsparzustand (power-down), in dem er auf externe Signale nicht reagiert (eine Ausnahme stellen natürlich die Signale dar, die ihm das Verbleiben im Stromsparzustand anzeigen). Zum Erhalt der gespeicherten Information wird ein DRAM-interner Zähler verwendet, der in vorgegebenen Zeitabständen einen Auto-Refresh (CAS-before-RAS-Refresh) initiiert. In neueren DRAMs (DDR-2, DDR-3) wird die Periode für den Refresh meist temperaturabhängig geregelt (als sogenannter Temperature Controlled Self-Refresh, TCSR), um den Betriebsstrom im Self-Refresh bei niedrigen Temperaturen zu reduzieren.
Je nach Schaltungsumgebung muss für den Refresh der Normalbetrieb unterbrochen werden, zum Beispiel kann der Refresh in einer regelmäßig aufgerufenen Interrupt-Routine ausgelöst werden. Sie kann beispielsweise mit einer eigenen Zählvariablen einfach irgendeine Speicherzelle in der jeweiligen Zeile auslesen und damit diese Zeile auffrischen. Andererseits gibt es auch Situationen (vor allem in Videospeichern), in denen der gesamte Speicherbereich sowieso in kurzen Abständen angesprochen wird, so dass gar kein separater Refresh-Betrieb stattzufinden braucht. Manche Mikroprozessoren, wie der Z80 oder aktuelle Prozessor-Chipsätze, erledigen den Refresh vollautomatisch.
Bank
Vor der Einführung synchroner DRAMs musste ein Speichercontroller warten, bis die Informationen einer aktivierten Zeile zurückgeschrieben waren und die zugehörige Wortleitung deaktiviert war. Es konnte jeweils nur genau eine Zeile im DRAM aktiviert sein. Da die Länge eines vollständigen Schreib- oder Lesezyklus (row cycle time, tRC) etwa 80 ns betrug, war der Zugriff auf Daten verschiedener Zeilen recht zeitaufwendig.
Mit der Einführung synchroner DRAMs wurden zunächst 2 (16 MiB SDRAM), dann 4 (64 MiB SDRAM, DDR-SDRAM), 8 (DDR-3-SDRAM) oder sogar 16 und 32 (RDRAM) Speicherbänke eingeführt. Speicherbänke zeichnen sich dadurch aus, dass sie jeweils eigene Adressregister und Leseverstärker besitzen, so dass nun jeweils pro Bank eine Zeile aktiviert sein konnte. Durch den gleichzeitigen Betrieb mehrerer Bänke kann man hohe Latenzzeiten vermeiden, denn während eine Bank gerade Daten liefert, darf der Speichercontroller bereits Adressen für eine andere Bank senden.
Prefetch
Die im Vergleich zu einem SRAM deutlich geringere Geschwindigkeit eines DRAMs liegt in der Struktur und Funktionsweise des DRAMs begründet. (Lange Wortleitungen müssen aufgeladen werden, eine ausgelesene Zelle kann ihre Ladung nur langsam auf die Bitleitung ausgeben, der ausgelesene Inhalt muss bewertet und zurückgeschrieben werden.) Eine Verkürzung dieser Zeiten ist zwar generell über einen intern modifizierten Aufbau möglich, jedoch würde die Speicherdichte sinken und damit der Platzbedarf und somit der Herstellungspreis ansteigen.
Stattdessen wird ein Trick angewendet, um die externe Datentransferrate zu steigern, ohne die interne Geschwindigkeit erhöhen zu müssen. Bei dem sogenannten Prefetching werden pro Adressierung die Daten von mehreren Spaltenadressen ausgelesen und in einen Parallel-Seriell-Wandler (Schieberegister) geschrieben. Von diesem Puffer aus werden die Daten mit der höheren (externen) Taktrate ausgegeben. Dadurch erklären sich auch die mit synchronen DRAMs eingeführten Daten-Bursts und insbesondere ihre jeweilige minimale Burstlänge (sie entspricht gerade der Länge des als Parallel-Seriell-Wandlers eingesetzten Schieberegisters und damit dem Prefetch-Faktor):
- SDR-SDRAM
- Prefetch = 1: Es wird pro Leseanforderung 1 Datenbit pro Datenpin ausgelesen.
- DDR-SDRAM
- Prefetch = 2: Es werden pro Leseanforderung 2 Datenbits pro Datenpin ausgelesen und in einem Datenburst der Länge 2 ausgegeben.
- DDR2-SDRAM
- Prefetch = 4: Es werden pro Leseanforderung 4 Datenbits pro Datenpin ausgelesen und in einem Datenburst der Länge 4 ausgegeben.
- DDR3- und DDR4-SDRAM
- Prefetch = 8: Es werden pro Leseanforderung 8 Datenbits pro Datenpin ausgelesen und in einem Datenburst der Länge 8 ausgegeben.
- LPDDR4- und DDR5-SDRAM
- Prefetch = 16: Es werden pro Leseanforderung 16 Datenbits pro Datenpin ausgelesen und in einem Datenburst der Länge 16 ausgegeben.
Redundanz
Mit der Erhöhung der Speicherdichte steigt die Wahrscheinlichkeit defekter Speicherzellen. Zur Steigerung der Ausbeute an funktionsfähigen DRAMs werden sogenannte redundante Elemente im Chipdesign vorgesehen. Dabei handelt es sich um zusätzliche Zeilen- und Spaltenleitungen mit entsprechenden Speicherzellen. Werden beim Test der Chips fehlerhafte Speicherzellen festgestellt, so wird die betroffene Wort- oder Zeilenleitung deaktiviert. An ihre Stelle tritt eine (oder mehrere) Wort- oder Zeilenleitung aus der Menge der ansonsten unbenutzten redundanten Elemente (Remapping).
Um diese Konfigurationsänderung dauerhaft im DRAM abzuspeichern, sind folgende Verfahren im Einsatz:
- Mit Hilfe eines fokussierten Laserpulses werden entsprechend vorbereitete Kontakte in den Dekodierungschaltungen der Zeilen- oder Spaltenadresse verdampft (laser-fuse).
- Mit Hilfe eines elektrischen Überspannungspulses werden elektrische Kontakte entweder geöffnet (e-fuse) oder (z. B. durch Zerstören einer dünnen isolierenden Schicht) geschlossen (anti e-fuse).
In beiden Fällen werden diese permanenten Veränderungen benutzt, um die Adresse der zu ersetzenden Leitung und die Adresse der dafür zu verwendenden redundanten Leitung einzuprogrammieren.
Die Anzahl der in einem DRAM-Design eingebauten redundanten Elemente beträgt etwa 1 Prozent.
Die Verwendung redundanter Elemente zur Korrektur fehlerhafter Speicherzellen darf nicht mit der aktiven Fehlerkorrektur auf der Basis von Paritätsbits oder fehlerkorrigierenden Codes (FEC) verwechselt werden. Die hier beschriebene Fehlerkorrektur über redundante Elemente erfolgt einmalig vor der Auslieferung des Speicherbauelementes an den Kunden. Nachträglich auftretende Fehler (Degradation des Bauelementes oder Übertragungsfehler im System) können damit nicht beseitigt werden.
Siehe auch: Speichermodul: ECC
Module
Oftmals werden ganze Speichermodule mit den eigentlichen Speicherbausteinen verwechselt. Die Unterscheidung spiegelt sich in der Größenkennzeichnung wider: DIMMs misst man in Mebi- oder Gibibyte (MiB bzw. GiB), den einzelnen Modulchip auf dem DIMM dagegen in Mebi- oder Gibibit. Durch Fortschritte in der Herstellungstechnik können die Hersteller immer mehr Speicherzellen auf den einzelnen Chips unterbringen, so dass 512-MiBit-Bausteine problemlos verfügbar sind. Erst durch die Zusammenschaltung von einzelnen SDRAM-Chips entsteht ein Speichermodul, welches dem Standard entspricht.
Geschichte
Jahr der Einführung |
typ. Burstrate (ns) |
DRAM-Typ |
---|---|---|
1970 | 60…300 | klassischer DRAM |
1987 | 40…50 | FPM-DRAM (Fast Page Mode DRAM) |
1995 | 20…30 | EDO-RAM (Extended Data Output RAM) |
1997 | 6…15 | SDRAM (Synchronous Dynamic RAM) |
1999 | 0,83…1,88 | RDRAM (Rambus Dynamic RAM) |
2000 | 2,50…5,00 | DDR-SDRAM (Double Data Rate SDRAM) |
2003 | 1,00…1,25 | GDDR2-SDRAM (Graphics Double Data Rate) |
2004 | 0,94…2,50 | DDR2-SDRAM |
2004 | 0,38…0,71 | GDDR3-SDRAM |
2006 | 0,44…0,50 | GDDR4-SDRAM |
2007 | 0,47…1,25 | DDR3-SDRAM |
2008 | 0,12…0,27 | GDDR5-SDRAM |
2012 | 0,25…0,62 | DDR4-SDRAM |
2016 | 0,07…0,10 | GDDR5X-SDRAM |
2018 | 0,07 | GDDR6-SDRAM |
Der erste kommerziell erhältliche DRAM-Chip war 1970 der von Intel vorgestellte Typ 1103. Er enthielt 1024 Speicherzellen (1 KiBit). Das Prinzip der DRAM-Speicherzelle wurde 1966 von Robert H. Dennard am Thomas J. Watson Research Center von IBM entwickelt.
Seither stieg die Kapazität eines DRAM-Chips um den Faktor 8 Million und die Zugriffszeit verkürzte sich auf ein Hundertstel. Beispielsweise besaßen DRAM-ICs in 2014 Kapazitäten von bis zu 8 GiBit (Single-Die) bzw. 16 GiBit (Twin-Die) und Zugriffszeiten von 6 ns. Die Produktion von DRAM-Speicherchips gehört zu den umsatzstärksten Segmenten der Halbleiterindustrie. Mit den Produkten wird spekuliert; es existiert ein Spotmarkt.
Anfangs wurden DRAM-Speicher aus einzelnen Speicherbausteinen (Chips) in DIL-Bauform aufgebaut. Für 16 KiB Arbeitsspeicher (zum Beispiel im Atari 600XL oder CBM 8032) wurden 8 Speicherbausteine vom Typ 4116 (16384 Zellen zu 1 Bit) oder zwei Bausteine vom Typ 4416 (16384 Zellen zu 4 Bit) gebraucht. Für 64 KiB wurden 8 Bausteine vom Typ 4164 (C64-I) oder 2 Bausteine vom Typ 41464 (C64-II) gebraucht. IBM-PCs wurden anfangs mit 64 KiB als minimale Speicherausstattung verkauft. Hier wurden neun Bausteine vom Typ 4164 gebraucht; der neunte Baustein speichert die Paritätsbits.
Bevor die SIMMs auf den Markt kamen, gab es zum Beispiel Hauptplatinen für Rechner mit Intel-80386-Prozessoren, die mit 8 MiB Arbeitsspeicher bestückt werden konnten, der aus einzelnen Chips aufgebaut war. Dafür mussten 72 einzelne Chips vom Typ 411000 (1 MiBit) in die Sockel gedrückt werden. Dies war eine langwierige und fehleranfällige Prozedur. Sollte die gleiche Platine mit nur 4 MiB Arbeitsspeicher bestückt werden, wobei zeitweise die erheblich preiswerteren Chips vom Typ 41256 (256 KiB) anstelle des Typs 411000 verwendet wurden, dann mussten sogar 144 einzelne Chips eingesteckt werden: 9 Chips ergeben 256 KiB, 16 solcher Gruppen mit jeweils 9 Chips ergaben 4 MiB. Größere Chips wurden daher zu Modulen verlötet, die erheblich weniger Platz benötigten.
Anwendung
Arbeitsspeicher
Normalerweise wird das DRAM in Form von Speichermodulen als Arbeitsspeicher des Prozessors benutzt. DRAMs werden häufig nach der Art der Baustein-Schnittstelle eingeteilt. In den Hauptanwendungen haben sich in zeitlicher Reihenfolge die Schnittstellentypen Fast Page Mode DRAM (FPM), Extended Data Output RAM (EDO), Synchronous DRAM (SDR), Double-Data-Rate-Synchronous DRAM (DDR) entwickelt. Die Eigenschaften dieser DRAM-Typen sind durch das JEDEC-Konsortium genormt. Daneben existiert parallel zu SDR/DDR die Rambus-DRAM-Schnittstelle, das hauptsächlich bei Speicher für Server eingesetzt wird.
Spezialanwendungen
Spezieller RAM wird als Bild- und Texturspeicher für Grafikkarten eingesetzt, zum Beispiel GDDR3 (Graphics Double Data Rate SDRAM).
Durch die Beschränkung auf ein Spezialgebiet kann die Wiederauffrischung der Speicherzellen optimiert werden, so kann man dies zum Beispiel bei einem Bildspeicher in die Zeit des Zeilenrücklaufs legen. Auch ist es u. U. tolerierbar, wenn ein einzelnes Pixel zeitweise die falsche Farbe zeigt, man ist so nicht darauf angewiesen, auf die schlechteste Speicherzelle des Chips Rücksicht zu nehmen. Daher lassen sich – trotz gleicher Herstellungstechnologien – bedeutend schnellere DRAMs fertigen.
Für spezielle Anwendungen wurden weitere Typen entwickelt: das Graphics-DRAM (auch Synchronous Graphics RAM, SGRAM) ist zum Beispiel durch höhere Datenbreiten für den Einsatz auf Grafikkarten optimiert, wobei jedoch auf die prinzipielle Funktionsweise zum Beispiel eines DDR-DRAMs zurückgegriffen wird. Die Vorläufer des Graphics-RAM waren das Video-RAM (VRAM) – ein auf Grafikanwendungen optimiertes Fast Page Mode RAM mit zwei Ports statt einem – und danach das Window RAM (WRAM), das EDO-Features und einen dedizierten Display-Port aufzuweisen hatte.
Für die Anwendung in Netzwerkkomponenten optimierte DRAM-Typen haben von verschiedenen Herstellern die Namen Network-RAM, Fast-Cycle-RAM und Reduced Latency RAM erhalten. In mobilen Applikationen, wie Mobiltelefonen oder PDAs, ist ein geringer Energieverbrauch wichtig – hierfür werden mobile DRAMs entwickelt, bei denen durch besondere Schaltungstechnik und Herstellungstechnologie die Stromaufnahme abgesenkt wird. Eine Zwitterrolle nimmt das Pseudo-SRAM (bei anderen Herstellern auch cellular RAM oder 1T-SRAM = 1-Transistor-SRAM) ein: der Speicher selbst ist ein DRAM, das sich nach außen wie ein SRAM verhält. Das wird erreicht, indem eine logische Schaltung den SRAM-typischen Zugriffsmechanismus auf die DRAM-Steuerung umsetzt und die bei dynamischen Speichern grundsätzlich notwendige regelmäßige Auffrischung der Speicherinhalte durch im Baustein enthaltene Schaltungen vorgenommen wird.
In der Anfangszeit der DRAMs, als diese oft noch in ein Keramik-DIL-Gehäuse eingebaut wurden, gab es Bastellösungen, sie als Bildsensoren für Selbstbaukameras zu benutzen. Dazu wurde der Metalldeckel auf dem Keramikgehäuse vorsichtig entfernt, darunter lag dann direkt – ohne jede Vergussmasse – der Die. Davor wurde ein Objektiv angeordnet, welches das Bild präzise auf die Die-Oberfläche abbildete. Wenn der Chip zu Beginn der Belichtung komplett mit 1 gefüllt wurde, also alle Speicherkondensatoren geladen waren, wurden die Ladungen durch Lichteinfall je nach Intensität verschieden schnell entladen. Nach einer gewissen (Belichtungs-)Zeit wurden die Zellen ausgelesen und dann in 1-Bit-Auflösung das Bild interpretiert. Für Graustufen musste man dasselbe Bild mehrfach mit verschiedenen Belichtungszeiten aufnehmen. Eine zusätzliche Verkomplizierung kam dadurch zustande, dass die Speicherzellen aus Gründen der Übersprechvermeidung nicht einfach nach ihren binären Adressen angeordnet sind, sondern diese Adressbits gezielt „verwürfelt“ werden. Daher mussten die Bilddaten nach dem Auslesen zunächst mit dem inversen Muster in die richtige Anordnung gebracht werden. Mit heutigen Chips ist das kaum noch möglich, da sie normalerweise in Plastik-Vergussmasse eingebettet sind; außerdem sind Digitalkameras heute allgemein zugänglich und bezahlbar.
Bauarten
Es gibt eine Vielzahl von DRAM-Bauarten, die sich historisch entwickelt haben:
Derzeit sind eine Reihe von nichtflüchtigen RAM-Technologien (NVRAM) in der Entwicklung, wie:
Die Speicherkapazität wird in Bit und Byte angegeben.
Als Arbeitsspeicher verwendetes RAM wird häufig in Form von Speichermodulen eingesetzt:
Die Netto-Gesamtgröße von als Arbeitsspeicher verwendeten RAM-Modulen ist praktisch immer eine Potenz von 2.
Literatur
- Christof Windeck: Riegel-Reigen: Aufbau aktueller Speichermodule. In: c’t Nr. 7, 2006, S. 238 (Kostenpflichtiger Download des Zeitschriftenartikels)
- Siemens AG (Hrsg.): Memory Components Data Book. München 1994.
- The DRAM story. In: SSCS IEEE SOLID-STATE CIRCUITS SOCIETY NEWS. Band 13, Nr. 1, 2008 (komplette Ausgabe als PDF (Memento vom 27. September 2012 im Internet Archive) [abgerufen am 1. August 2009]).
- Integrated Circuit Engineering Corporation, Brian Matas, Christian De Subercasaux, Integrated Circuit Engineering Corporation: Memory 1997 : complete coverage of DRAM, SRAM, EPROM, and flash memory ICs. Integrated Circuit Engineering Corp., Scottsdale, AZ 1997, ISBN 1-877750-59-X, 7. DRAM Technology (si.edu [PDF; 770 kB]).
- E. Adler u. a.: The evolution of IBM CMOS DRAM technology. In: IBM Journal of Research and Development. Band 39, Nr. 1.2, Januar 1995, S. 167–188, doi:10.1147/rd.391.0167 (Artikel als HTML (Memento vom 2. Mai 2008 im Internet Archive)).
Weblinks
- Christian Hirsch: Kompakter Arbeitsspeicher dank Z-RAM. In: heise online. 15. August 2007.
Einzelnachweise
- ↑ J. Alex Halderman, Seth D. Schoen, Nadia Heninger, William Clarkson, William Paul, Joseph A. Calandrino, Ariel J. Feldman, Jacob Appelbaum, Edward W. Felten: Lest We Remember: Cold Boot Attacks on Encryption Keys. In: Proc. 2008 USENIX Security Symposium. 21. Februar 2008, S. 45–60.