Speichermedium & Speichermodul

Dynamic Random Access Memory

aus Wikipedia, der freien Enzyklopädie

Wechseln zu: Navigation, Suche
Wikipedia:Hauptseite
Dieser Artikel beschreibt den DRAM-Chip. Für das mit diesen Chips aufgebaute DRAM-Modul (ugs.: Speicherriegel), siehe Artikel Speichermodul.

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 (volatil), das heißt die gespeicherte Information geht bei fehlender Betriebsspannung oder zu später Wiederauffrischung verloren.

Inhaltsverzeichnis

[Bearbeiten] Einleitung

Ein Kennzeichen des DRAM ist die Kombination aus einer sehr hohen Datendichte auf einer kleinen Chipfläche, verbunden mit sehr preiswerten Herstellungskosten. Er findet deswegen vor allem dort Verwendung, wo große Speichermengen bei mittlerer Datenrate (100–1600 Mbit/s/pin) zur Verfügung gestellt werden müssen.

Diesem Vorteil des DRAM gegenüber dem SRAM steht der Nachteil gegenüber, dass sich die im Kondensator gespeicherte Ladung und damit die gespeicherte Information aufgrund von Leckströmen mit der Zeit verflüchtigt, wenn sie nicht periodisch wieder aufgefrischt wird. Dies ist normalerweise in Abständen von einigen Millisekunden erforderlich. Das Auffrischen des Speichers wird zeilenweise bewerkstelligt. 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 dem 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. Deshalb bevorzugt man in Anwendungen, bei denen es auf geringen Ruhestrom ankommt, das SRAM.

Die Hersteller von Speicher versuchen kontinuierlich, den Energiebedarf zu senken, um so genannte Leckströme zu minimieren. Die Versorgungsspannung von DDR2-SDRAM liegt bei 1,8 Volt, während DDR-SDRAM noch mit 2,5 Volt versorgt wird. Bei dem im Jahre 2007 eingeführten DDR3-SDRAM wurde die Spannung auf 1,5 Volt gesenkt.

Ein DRAM ist entweder als eigenständiger integrierter Schaltkreis ausgeführt oder als Speicherzelle Teil eines größeren Chips. Beispielsweise sind bei vielen Mikroprozessoren die Register als dynamische Speicherzellen ausgeführt.

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.

[Bearbeiten] 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.

[Bearbeiten] 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 MIS-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 Stapel-Technologie (engl. stack) wird der Kondensator über dem Transistor aufgebaut.
  • Bei der Graben-Technologie (engl. trench) wird der Kondensator durch Ätzen eines ca. 5–10 Mikrometer tiefen Loches (oder Grabens) in das Substrat erzeugt.
Prinzipieller Aufbau einer Speicherzelle aus einem Transistor und einem Kondensator (1T1C-Zelle)
Prinzipieller Aufbau einer Speicherzelle aus einem Transistor und einem Kondensator (1T1C-Zelle)

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 Word-Leitung (engl. wordline) an den Gate-Anschluss „G“ des n-MOS-Transistors eine positive Spannung VWL angelegt werden. Dadurch wird eine leitende Verbindung zwischen den Source- („S“) und den Drain-Gebieten („D“) hergestellt, welche den Zellkondensator mit der Bit-Leitung (engl. bitline) verbindet. Der Substrat-Anschluss „B“ ("Bulk") des Transistors ist entweder an das Massepotential oder an ein leicht negatives Potential VSub 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 Featuresize“ 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,2 F² pro Bit für Multilevel-Cells).

[Bearbeiten] Aufbau einer Speicherzeile („Page“)

Zusammenschaltung mehrerer Speicherzellen zu einer Speicherzeile ("page")
Zusammenschaltung mehrerer Speicherzellen zu einer Speicherzeile ("page")

Durch Anschließen weiterer Speicherzellen an eine Wortleitung erhält man eine Speicherzeile, die üblicherweise als „page“ ("Seite") 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 K, 2 K, 4 K (...) Zellen (1 K = 1024).

[Bearbeiten] Aufbau eines Zellenfeldes

Zweidimensionale Zusammenschaltung von Speicherzellen zu einem Zellenfeld
Zweidimensionale Zusammenschaltung von Speicherzellen zu einem Zellenfeld

Die Speicherzellen sind in einer Matrixanordnung verschaltet: 'Wortleitungen' verbinden alle Steuerelektroden „G“ der Auswahltransistoren in einer Zeile, 'Bitleitungen' verbinden alle Drain-Gebiete „D“ der Auswahltransistoren einer Spalte.

Am unteren Rande der Matrix sind die Bitleitungen mit den (primären) Schreib-/Lese-Verstärkern („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 4 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 1/2 * VBL, welcher gerade den Mittelwert der Spannung einer aufgeladenenen 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 (oft) oder sogar 8 (selten) Datenpins verteilt. Dies ist dann die Datenbreite des einzelnen DRAM-Chips. Je nach ihrem Wert braucht man z. B. 8, 2 oder 1 Chip(s) für eine Datenbusbreite von 8 Bit bzw. das Vierfache davon für 32 Bit und das Achtfache für 64 Bit.

[Bearbeiten] Adressdekodierung

Prinzipieller Aufbau der Zeilen- und Spaltenadressdekodierung für ein Zellenfeld
Prinzipieller Aufbau der Zeilen- und Spaltenadressdekodierung für ein Zellenfeld

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 Potential auf die Wortleitungsspannung VWL anhebt. Die dadurch im Zellenfeld aktivierte Speicherzeile ("page") 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 aktiviert. 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-/Leseverstä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.

[Bearbeiten] Interne Abläufe

[Bearbeiten] Ausgangszustand

  • Im Ruhezustand eines DRAMs befindet sich die Wortleitung auf niedrigem Potential (VWL = 0V). 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 (½ * VBL) gehalten.
  • Die Spannungsversorgung der Leseverstärker (VBL) ist abgeschaltet.

[Bearbeiten] 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
 begin{matrix} V & = & frac{V_{BL}}{2} cdot (1 pm frac{C}{C + C_{BL}}) [2ex] 
& = & underbrace{frac{V_{BL}}{2}}_mathrm{ursprddot{u}ngliche atop Bitleitungsspannung} pm underbrace {frac{V_{BL}}{2} cdot frac{C}{C + C_{BL}}}_mathrm{Spannungsddot{a}nderung} 
end{matrix}
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ößenordung von nur 100 mV. Dieser Umladungsvorgang dauert aufgrund der hohen Bitleitungskapazität ebenfalls einige Nanosekunden.
  • Gegen Ende dieses Umladungsvorganges wird die Versorgungsspannung (VBL) der primären Leseverstärker eingeschaltet. Diese beginnen mit der Verstärkung des kleinen Spannungsunterschiedes zwischen beiden Bitleitungen und laden eine davon auf VBL auf und entladen die andere auf 0 V.

[Bearbeiten] Lesen von Daten

  • Zum Lesen von Daten muss nun vom Spaltendekoder die Spaltenadresse dekodiert werden.
  • Die zur Spaltenadresse korrespondierende Spaltenauswahlleitung („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 ("Clock") synchronisiert und verstärkt ausgegeben.

[Bearbeiten] 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.

[Bearbeiten] 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 die beiden Bitleitungen verbindenden Schalter zur Bitleitungsvorladung werden geschlossen. Damit stellt sich auf den Bitleitungen wieder der Ausgangszustand (V = ½ VBL) ein.

[Bearbeiten] Timingparameter der internen Abläufe

Veranschaulichung der Definition der Timing-Parameter tRCD und CL
Veranschaulichung der Definition der Timing-Parameter tRCD und CL

[Bearbeiten] 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.

[Bearbeiten] CL

Der Parameter „CL“ („CAS Latency“, auch tCL) beschreibt die Zeit, welche zwischen der Absendung eines Lesekommandos („Read“) und dem Erhalt der Daten vergeht.

Siehe auch: Column Address Strobe Latency

[Bearbeiten] tRAS

Veranschaulichung der Definition der Timing-Parameter tRAS, tRP und tRC
Veranschaulichung der Definition der Timing-Parameter tRAS, tRP und tRC

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.

[Bearbeiten] 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.

[Bearbeiten] 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.

[Bearbeiten] DRAM-spezifische Eigenschaften

[Bearbeiten] Adressmultiplex

[Bearbeiten] Adressierung

Adressierung eines DRAM-Bausteins
Adressierung eines DRAM-Bausteins

Die Adressleitungen eines DRAMs sind üblicherweise gemultiplext, d. h. es sind nur etwa halb so viele physisch vorhanden wie insgesamt benötigt werden. (Dagegen 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.

[Bearbeiten] RAS

Row Address Strobe, dieses Steuersignal liegt während einer gültigen Zeilenadresse an. Der Speicherbaustein legt diese Adresse in einem Zwischenspeicher ab.

[Bearbeiten] CAS

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.

[Bearbeiten] Burst

'Burst Read' eines asynchronen (EDO-)DRAMs. Hier musste noch für jedes Burst-Bit die zugehörige Spaltenadresse (Col) vorgegeben werden.
'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
'Burst Read' eines synchronen (SDR-)DRAMs
Zellenfeld eines DRAMs mit primären Leseverstärkern (unten)
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
Ein DRAM-Leseverstärker ist analog zu den Transistoren M1, M2, M3 und M4 einer solchen 6-Transistor-SRAM-Zelle aufgebaut


In den nebenstehenden Bildern ist für einen asynchronen und einen synchronen DRAM jeweils ein Lesezugriff im sogenannten Burst-Modus dargestellt. 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 („Row“), aber unterschiedliche Spaltenadressen („Col1“, …, „Col4“). Die benötigte Zeitdauer für die Bereitstellung des nächsten Datums innerhalb des Bursts ist sehr gering verglichen mit der Zeitdauer für die Bereitstellung des ersten Datums gemessen ab der Aktivierung („Activate“) 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-Datums 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).

[Bearbeiten] Refresh

Die in kurzen Zeitabständen notwendige Wiederauffrischung (von engl.: „refresh“; zu 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 besitzen 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 °C. Kommerziell erhältliche DRAMs besitzen meist eine vorgeschriebene Refreshperiode 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 (engl.: „page“; zu dt.: „Seite“) ausgewählt wurde, wird die komplette 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 Refreshmethode 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 illegale Signalfolge, 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 Refreshzyklus 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.

Je nach Schaltungsumgebung muss für den Refresh der Normalbetrieb unterbrochen werden, z. B. kann der Refresh in einer regelmäßig aufgerufenen Interrupt-Routine ausgelöst werden. Sie kann z. B. 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 stattfinden muss. Manche Mikroprozessoren wie der Z80 oder aktuelle Prozessor-Chipsätze erledigen den Refresh vollautomatisch.

[Bearbeiten] 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 kompletten Schreib- oder Lesezyklusses (row cycle time, tRC) etwa 80 ns betrug, war der Zugriff auf Daten verschiedener Zeilen recht zeitaufwändig.

Mit der Einführung synchroner DRAMs wurden zunächst 2 (16 M SDRAM), dann 4 (64 M 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.

[Bearbeiten] 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 so genannten 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):

  • beim Single-Data-Rate(SDR)-SDRAM wird pro Leseanforderung 1 Datenbit pro Datenpin ausgelesen: Prefetch = 1
  • beim DDR-SDRAM werden pro Leseanforderung 2 Datenbits pro Datenpin ausgelesen und in einem Datenburst der Länge 2 ausgegeben: Prefetch = 2
  • beim DDR2-SDRAM werden pro Leseanforderung 4 Datenbits pro Datenpin ausgelesen und in einem Datenburst der Länge 4 ausgegeben: Prefetch = 4
  • beim DDR3-SDRAM werden pro Leseanforderung 8 Datenbits pro Datenpin ausgelesen und in einem Datenburst der Länge 8 ausgegeben: Prefetch = 8

Entsprechendes gilt für das Beschreiben des DRAMs.

[Bearbeiten] Redundanz

Mit der Erhöhung der Speicherdichte (d. h. der Anzahl der Speicherzellen pro Chip) erhöht sich die Wahrscheinlichkeit, dass mindestens eine Speicherzelle eine Fehlfunktion aufweist. Um die Ausbeute an funktionsfähigen DRAMs bei der Produktion zu erhöhen, werden sogenannte redundante Elemente in das Chipdesign integriert. Dabei handelt es sich um zusätzliche Zeilen- und Spaltenleitungen mit entsprechenden Speicherzellen. Wird nun bei dem die Produktion abschließenden Test eine fehlerhafte Speicherzelle festgestellt, so wird die betroffene Wort- oder Zeilenleitung deaktivert. An ihre Stelle tritt eine (oder mehrere) Wort- oder Zeilenleitung aus der Menge der ansonsten unbenutzten redundanten Elemente.

Um diese Konfigurationsänderung dauerhaft im DRAM abzuspeichern, bedarf es einer permanenten Schaltungsmodifikation. Zwei Verfahren sind derzeit 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 ist mit nur ca. 1 % überraschend gering. Mit einem höheren Anteil an redundanten Elementen könnten zwar größere Defekte (Speicherblöcke) repariert werden, jedoch wäre dies mit Nachteilen verbunden. Üblicherweise verringert sich die Anzahl der Defekte eines Speicherbauelementes mit fortschreitender Verbesserung des Fertigungsprozesses. Die dann nicht mehr benötigten redundanten Elemente würden nur noch Chipfläche beanspruchen (erhöhte Herstellungskosten), ohne eine nennenswerte Steigerung der Ausbeute zu erzielen.

Die Verwendung redundanter Elemente zur Korrektur fehlerhafter Speicherzellen darf nicht mit der aktiven Fehlerkorrektur auf der Basis von Paritätsbits oder fehlerkorrigierenden Codes verwechselt werden. Die hier beschriebene Fehlerkorrektur über redundante Elemente erfolgt in der Regel 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.

[Bearbeiten] Module

Zwei SIMM-Speichermodule mit jeweils 9 Speicherbausteinen
Zwei SIMM-Speichermodule mit jeweils 9 Speicherbausteinen

Oftmals werden ganze Speichermodule mit den eigentlichen Speicherchips verwechselt. Die Unterscheidung spiegelt sich in der Größenkennzeichnung wider: DIMMs misst man in Mega- oder Gigabyte, den einzelnen Modulchip auf dem DIMM dagegen in Giga- oder Megabit. Durch Fortschritte in der Herstellungstechnik können die Hersteller immer mehr Speicherzellen auf den einzelnen Chips unterbringen, so dass 512-MBit-Bausteine problemlos verfügbar sind. Erst durch die Zusammenschaltung von einzelnen

Urheberrecht
Wikipedia Logo Text und Bilder der Lexikonartikel stammen aus der freien Enzyklopädie Wikipedia und stehen unter der GNU Free Documentation License.
Copyright © 2005-2010 Hardware-Aktuell. Alle Rechte vorbehalten.