Arbeitsspeicher - Hardware-Zone

Direkt zum Seiteninhalt
Arbeitsspeicher
Der Arbeitsspeicher, auch RAM (Random Access Memory - Speicher mit wahlfreiem Zugriff) genannt, ist ein temporärer Aufbewahrungsort für Daten und Befehle, die momentan von der CPU bearbeitet werden. Bevor der Prozessor beginnt, ein Programm abzuarbeiten, wird es in  den Arbeitsspeicher geladen.
Der große Vorteil des Arbeitsspeichers gegenüber einer Festplatte liegt in der hohen Datenübertragungsrate und der geringen Zugriffszeit. Da die Festplatte die Schreib-/Leseköpfe erst positionieren muss, benötigt sie mehrere Millisekunden (ms), bis sie die angeforderten Daten gefunden hat. Der Arbeitsspeicher liefert die Daten innerhalb einer Milliardstel Sekunde (Nanosekunde). Durch die Zwischenspeicherung im Arbeitsspeicher können Daten viel schneller verarbeitet werden.
Aufbau
Arbeitsspeicher besteht aus mehreren Speicherchips, die fest auf einer Leiterplatte mit Kontakten angebracht sind und so ein Speichermodul (DIMM = Dual Inline Memory Module) bilden. Ein einzelner Speicherchip enthält viele Millionen Speicherzellen, die zu einem Gitter aus Spalten und Zeilen (Pages) angeordnet sind. Da auf jede beliebige Zelle zugegriffen werden kann, ohne eine Reihenfolge wie bei einem sequentiellen Speicher (z.B. Magnetband) einhalten zu müssen, spricht man auch von Speicher mit wahlfreiem Zugriff (engl. Random Access Memory). Generell unterscheidet man zwischen dynamischem (DRAM) und statischem RAM (SRAM)  

DRAM

Eine einzelne DRAM-Zelle setzt sich aus einem Transistorschalter und einem Kondensator zusammen. Geladener und ungeladener Kondensator stellen die Zahlen EINS und NULL dar. Folglich kann pro Zelle die Informationseinheit 1 Bit gespeichert werden. Die Transistoren werden über Wortleitungen "geöffnet": Wenn an eine Wortleitung (2 Byte ergeben ein Wort) eine Spannung angelegt wird, geben alle angeschlossenen Transistoren die Ladung der Kondensatoren an die Bitleitungen ab. Damit die Zelle ihren Inhalt nicht verliert, muss sie von einem Schreib-/Leseverstärker immer wieder aufgefrischt werden. Deshalb wird diese Art von RAM als "dynamisch" bezeichnet.  

SRAM

Bei statischen Speicherbausteinen (SRAM) ist die Ausführung jeder Speicherzelle mit den Schreib-/Leseverstärkern bei DRAMs identisch. Weil die Zelle so komplexer ist und mehr Platz benötigt, ist SRAM zwar viel teurer als DRAM, aber auch schneller, da die Auffrischung (Refresh) entfällt.  

Für Arbeitsspeicher wird nur DRAM verwendet, für Caches SRAM.
Funktionsweise
Hinsichtlich der Funktionsweise unterscheidet man zwei Arten von DRAM-Bausteinen: Asynchrone und  synchrone DRAMs. Während bei asynchronem DRAM eigene Signale zur  Steuerung benötigt werden, sind bei synchronem DRAM (SDRAM) alle  internen Schreib-/Leseoperationen an einen festen Systemtakt gebunden.

Asynchroner DRAM

Um auf eine im Arbeitsspeicher befindliche Information zugreifen zu können, wird sowohl eine Zeilen- als auch eine Spaltenadresse benötigt. Zeilen- und Spaltenadresse werden in der Regel aus Kostengründen zeitlich versetzt über dieselben Adressleitungen übertragen (Adressmultiplex). Um dem Adressdekoder mitzuteilen, welche Art von Adresse übertragen wird, sind 2 Steuersignale notwendig.
1. Ein Steuersignal (Row Adress Strobe - RAS) markiert den Transfer einer Zeilenadresse. Diese wird an den Zeilendekoder übergeben, der die entsprechende Wortleitung aktiviert. Dadurch wird die gesamte Zeile (Page) über die Bitleitungen zum Leseverstärker übertragen, der den Zeileninhalt speichert und die Zellen automatisch wieder auffrischt (Refresh).
2. Ein zweites Steuersignal (Column Adress Strobe -  CAS) definiert den Transfer der Spaltenadresse. Diese wird zuerst an den Spaltendekoder übergeben, der die zugehörige Spaltenauswahlleitung aktiviert. Die Spaltenauswahl-Einheit wählt dann eine oder mehrere Bitleitungen aus und stellt eine Verbindung zwischen Bit- und Datenleitungen her.
Ob eine Lese- oder Schreiboperation stattfindet, wird über das Signal WE (Write Enable) angezeigt:

  • Lesen von Daten (WE ist aktiviert): Die angeforderten Informationen werden über die Datenleitungen ausgegeben.
  • Schreiben von Daten (WE ist deaktiviert): Die zu schreibenden Informationen werden von der Spaltenauswahl-Einheit an die gewählten Bitleitungen übergeben. Die angeschlossenen Leseverstärker werden so überschrieben und die Zellen mit den neuen Daten "aufgefrischt".

Burst-Modus

Im sogenannten Burst-Modus können mehrere Zellen einer Zeile direkt hintereinander gelesen oder beschrieben werden, ohne jedes Mal Schritt 1 wiederholen zu müssen. Im Burst-Modus ist die Datenübertragungsrate (MB/s) wesentlich höher.

Nachteile von asynchronem RAM:

  • Signaldauer und Zeitabstände zwischen RAS und CAS müssen groß genug sein, damit asynchroner DRAM zuverlässig arbeitet. Je höher der Systemtakt ist, desto mehr Wartezyklen benötigt der Steuerungschip.
  • Es kann nur  jeweils eine Zeile gelesen werden, da zuerst auf das Zurückschreiben der Zeile und die Deaktivierung der Wortleitung gewartet werden muss.

In einem modernen PC wird deshalb nur noch SDRAM eingesetzt.

Synchroner DRAM

Aufbau und Funktionsweise von SDRAMs unterscheiden sich von asynchronem DRAM hinsichtlich folgender Merkmale:

  • Alle internen Operationen sind an den Systemtakt gebunden. Befehle (Wortleitung aktivieren, Auffrischen, Lesen etc.) werden als Kombination  der Steuersignale (RAS, CAS, WE, ...) und der Adresse immer bei steigender Flanke des Taksignals ausgewertet.
  • SDRAMs sind zusätzlich in sogenannte Bänke unterteilt, die jeweils eigene Leseverstärker und Register zur Zwischenspeicherung von Adressen besitzen. Während eine Bank noch Daten liefert, können an eine andere Bank bereits Adressen übergeben werden. Normale SDRAMs haben bis zu 4 Bänke.

SDRAM hat deshalb eine viel geringere Zugriffszeit als asynchroner DRAM und kann mit höheren Taktfrequenzen betrieben werden. Im Burst-Modus muss nur noch die Adresse der ersten Spalte angegeben werden, da ein interner Zähler die nächste Adresse vorgibt. Seit 1998 werden in PCs nur noch synchrone DRAMs verwendet.
DDR-SDRAM

DDR bedeutet "Double Data Rate - Doppelte Datenrate" und bezeichnet eine Technik zur Erhöhung der Datenübertragungsrate von synchronem DRAM. Beim DDR-Verfahren werden nicht nur wie bei normalem SDRAM Datenbits bei steigender Flanke des Taktsignals übertragen, sondern auch bei fallender Flanke.  
DDR-SDRAMs verfügen über einen zusätzlichen Datenpuffer am Ausgang, in dem die Daten eines Burst-Zugriffs (s. Burst-Modus) zwischengespeichert werden (Prefetch). Beim sogenannten Zweifach-Prefetch werden doppelt so viele Datenworte pro Lesezugriff ausgegeben wie bei normalem SDRAM. Die Unterschiede zwischen den einzelnen DDR-Verfahren findet man in der folgenden Tabelle:

DDR
DDR2
DDR3
DDR4
Prefetch-Faktor
2488
Speichertakt (MHz)
100 - 200100 - 266100 - 266200 - 400
Ein-/Ausgabetakt (MHz)
100 - 200200 - 533400 - 1066800 - 2133
Spannung
2,51,81,51,2 - 1,4
Modulkontakte
184240240240
Leistungsmerkmale
Die Leistung eines Arbeitsspeichermoduls wird durch folgende Werte bestimmt:

Zugriffs-  oder Latenzzeit

Gibt die Zeitspanne zwischen dem Lesebefehl und dem Eintreffen der angeforderten Daten in Nanosekunden an. Je kürzer, desto besser. Sie wird durch die Taktfrequenz des Speichers beeinflusst.

Effektive Taktfrequenz

Die bei DDR-Speicher oft angegebene effektive Taktfrequenz hat nichts mit dem tatsächlichen Speichertakt zu tun. Sie ermöglicht allerdings einen groben Leistungsvergleich mit normalem SDRAM. So ist z.B. DDR3-1600-SDRAM in etwa so schnell wie SDRAM mit (theoretisch) 1600 MHz Speichertakt. Die Taktfrequenz berechnet sich wie folgt:

Speichertakt ( MHz ) = Effektive Taktfrequenz Prefetch Faktor Speichertakt (MHz) = {Effektive Taktfrequenz} over {Prefetch-Faktor}
Bei DDR3-1600 beträgt demnach die tatsächliche Taktfrequenz (1600 ÷ 8) 200 MHz.

Auch die theoretische Datenübertragungsrate lässt sich daraus berechnen.

Datenübertragungsrate oder Datendurchsatz

Gibt die Datenmenge an, die in einer bestimmten Zeit über die Datenleitungen transportiert werden kann. Die Datenübertragungsrate wird in Megabyte (MB/s) oder Gigabyte pro Sekunde (GB/s) angegeben. Sie ist abhängig von der Anzahl der Leitungen (Speicherbusbreite), der Anzahl der Speicherkanäle und der Taktfrequenz des Speichers.

Die theoretische Datenübertragungsrate (MB/s) lässt sich wie folgt berechnen:
Datenübertragungsrate ( MB / s ) = ( Effektiver Speichertakt × 64 ) 8 Datenübertragungsrate (MB/s) = {(Effektiver Speichertakt times 64)} over {8}
Bei DDR3-1600 beträgt die theoretische Datenübertragungsrate ((1600 × 64) ÷ 8) 12.800 MB/s oder 12,8 GB/s. Wenn Speicher mit zwei Übertragungskanälen genutzt werden (Dual Channel) verdoppelt sie sich auf 25,6 GB/s.
Da die Datenübertragungsrate im Burst-Modus gemessen wird, ist sie unabhängig von der Latenzzeit. Wenn Datenworte sequentiell, d.h. in Folge abgerufen werden (z.B. Datenbank, Videobearbeitung), ist eine hohe Datenübertragungsrate entscheidend. Wenn viele Befehle in der Sekunde oder kleine Datenpakete verarbeitet werden müssen, ist hingegen eine geringe Latenzzeit wichtiger.

Speicherkapazität

Bestimmt, wie viele Bytes an Daten das Speichermodul aufnehmen kann. Die Speicherkapazität wird normalerweise in Gigabyte (GB) angegeben.
Timing

Das Timing definiert die minimalen Zeitabstände  zwischen den Befehlen, die vom Steuerungschip an den Arbeitsspeicher gesendet werden. Je kürzer diese Abstände sind, desto schneller ist der Speicher. Normalerweise wird das Zeitverhalten von Speichermodulen automatisch eingestellt, kann aber vom Benutzer auf eigene Gefahr verändert werden. Wenn die Abstände zu gering sind, können vermehrt Systemabstürze auftreten.

Format: CLx tRCD - tRP - tRAS

CL (CAS Latency): Die eigentliche Zugriffs- oder Latenzzeit
tRCD (RAS-to-CAS Delay): Minimaler Zeitabstand zwischen Aktivierung einer Zeile bzw. Bank und dem Senden eines Lesebefehls
tRP (RAS Precharge): Minimaler  Zeitabstand zwischen Deaktivierung einer Zeile bzw. Bank und erneuten  Aktivierung einer Zeile in derselben Bank
tRAS (Row Address Strobe, auch Bank Active Time):  Minimaler Zeitabstand zwischen Aktivierung einer Bank und dem Senden  des Befehls zum Deaktivieren dieser Bank, wird nicht immer angegeben

Die Werte werden in Taktzyklen in Bezug auf die  jeweilige Speichertaktfrequenz angegen. Deshalb können nur  Speichermodule mit gleicher Taktfrequenz miteinander verglichen werden.

Beispiel: DDR3-1600 CL9 9-9-24
Die absoluten Zeitabstände lassen sich mit folgender Formel berechnen:
Zeit = 1 effektive Taktfrequenz × ( 2 × Taktzyklen ) Zeit = {1} over {effektive Taktfrequenz} times (2 times Taktzyklen)
Latenzzeit = 1 ÷ 1600 MHz × (2 × 9) = 0,01125 μs × 1.000 = 11,25 ns
tRAS = 1 ÷ 1600 × (2 × 24) = 0,03 × 1000 = 30 ns
Zurück zum Seiteninhalt