Zum Inhalt springen

Speichermodul

aus Wikipedia, der freien Enzyklopädie
Dies ist eine alte Version dieser Seite, zuletzt bearbeitet am 7. April 2007 um 15:07 Uhr durch 62.104.79.3 (Diskussion) (Geschwindigkeit). Sie kann sich erheblich von der aktuellen Version unterscheiden.

Ein Speichermodul oder Speicherriegel ist eine kleine Leiterplatte, auf der mehrere Speicherbausteine (Dynamisches RAM in Form von integrierten Schaltkreisen) aufgelötet sind. Speichermodule bilden oder erweitern den Arbeitsspeicher elektronischer Geräte wie Computer oder Drucker und werden dort in speziell dafür vorgesehene Steckplätze gesteckt.

Die Bezeichnung Speichermodul wird seltener auch für Speicherkarten oder USB-Sticks verwendet.

SIMM
S0-SIMM
SDR-DIMM
DDR-DIMM
Micro-DIMM
RIMM
S0-RIMM

Bauformen

Nach Bauform und Architektur wird unterschieden in:

  • Single Inline Memory Modul (SIMM), bestückt mit:
    • Fast Page Mode DRAM (FPM), 8 Bit breit
    • Extended Data Output RAM (EDO), 8 bit breit
    • PS/2-SIMM, 32 bit breit
  • Dual In-line Memory Module (DIMM), 64 bit breit, bestückt mit:
    • Synchronous Dynamic Random Access Memory (SDRAM, SDR)
    • Double Data Rate (DDR-SDRAM, DDR)
    • Double Data Rate 2 (DDR2-SDRAM, DDR2)
    • Double Data Rate 3 (DDR3-SDRAM, DDR3)
    • Small Outline Dual In-line Memory Module (SO-DIMM)
    • Micro Dual-Inline Memory Module (Micro-DIMM)
  • Rambus In-Line Memory Modul (RIMM), 16 bit breit, bestückt mit:

Die 8 Bit breiten frühen Speichermodule (FPM, EDO) gibt es auch in einer Variante mit Anschlusspins, diese wird als Single Inline Pin Package (SIPP) bezeichnet und entspricht praktisch einem SIMM mit an die Kontaktflächen angelöteten Anschlussstiften.

Es sind Speichermodule mit oder ohne Fehlerkorrekturmöglichkeit (SIMM - Parität, DIMM - ECC) im Handel. Für die Fehlerkorrektur wird je 8 Bit Wortbreite ein weiteres Bit benötigt, die Module sind folglich 9 Bit (FPM, EDO), 36 Bit (PS/2) oder 72 Bit breit (alle DIMM) organisiert. Die Fehlerkorrektur muss vom Chipsatz und BIOS unterstützt werden, die zusätzlichen Bits auf den Modulen schaffen nur die Möglichkeit (s.a. weiter unten)

Ausserdem sind SIMM-Speichermodule (asynchron) „unbuffered“ oder „buffered“ verfügbar, DIMM-Speichermodule (synchron, SDR, DDR) entsprechend „unregistered“ oder „registered“. Als Weiterentwicklung der registered-Module sind DDR2-Module und DDR3-Module (noch nicht verfügbar, Stand: März 2007) als Fully Buffered DIMM (FB-DIMM) eingeführt worden.

Gepufferte Module (buffered, registered, fully-buffered) sind beim Zugriff durch die Latenz des Puffers einen Taktzyklus langsamer, dafür sinkt die elektrische Belastung des Speicherinterfaces im Chipsatz bzw. in der CPU. Dies macht solche Module insbesondere für Serveranwendungen mit großem Speicherausbau durch eine höhere Anzahl von Speichermodulen sinnvoll.

Parameter eines Speichers

Kapazität (Größe)

Die Größe eines Speichermodul ergibt sich aus der Größe der meist gleichartigen Speicherbausteine. Anhand der Anzahl und Organisation dieser Bausteine kann man die Größe eines Speichermoduls berechnen.

Als Beispiel sei hier ein Speichermodul genannt, das aus 16 Chips des Typs GM72V16821CT10K besteht. Aus dem Datenblatt erfährt man, daß dieser Chip in 2 Bänken mit je 524288 Wörtern a 16 Bit organisiert ist. Dies ergibt 16 MBit bzw. 2 MiB pro Baustein (2*524288*16 Bit = 16777213 Bit = 16 MBit). Mit 16 dieser Chips ergibt sich eine Gesamtgröße des Speichermoduls von 32 MiB.

Manche Speichermodule besitzen ein oder zwei zusätzliche Chips (gleichen oder anderen Typs), die für Fehlerkorrektur- bzw. Paritätsfunktionen zuständig sind.

Die interne Organisation der Speicherbausteine in Verbindung mit der Zusammenschaltung dieser Chips auf dem Modul ist auch dafür verantwortlich, daß ältere Computer trotz entsprechender Angabe nur die Hälfte oder gar 1/4 der Größe eines Speichermoduls erkennen. (siehe dazu Single-Sided/Double-Sided)

Leitungen

Bei PCs üblichem DDR/DDR2-Speicher existieren 64 Datensignalleitungen (beziehungsweise 72 bei ECC). Die einzelnen SDRAM-Chips sind so verschaltet, dass sie die gesamte Breite des Datenpfades belegen. Jedes Modul nimmt einen bestimmten Anteil der Datenleitungen in Anspruch.

Zusätzliche Eingangsleitungen regeln die Auswahl des Speicherbausteins (Chip Select) und die Schreib- bzw. Leserichtung (R/W) der Daten.

Geschwindigkeit

Ebenso wie bei der Größe wird auch bei der Geschwindigkeit zwischen dem gesamten DIMM und den einzelnen Chips unterschieden. Ein einzelner Chip bezieht sich immer auf die maximale Taktfrequenz (zum Beispiel DDR2-1066, DDR-400, SDRAM 133).

Bei dem gesamten DIMM hingegen geht es um die Datentransferrate (zum Beispiel PC2-4200, PC3200). Bestückt mit SDRAM-Chips mit DDR2-533, die also eine Taktfrequenz von 266 MHz haben, übertragen sie im DDR2-Modus 4 Datenwörter pro Takt, und man kann die maximale Übertragungsrate beispielsweise folgendermaßen berechnen:

  • 64 Leitungen je Speichermodul können pro Takt 4 × 8 Bit = 32 Byte übertragen;
  • 133,3 Millionen Taktzyklen/s (MHz) × 32 Byte = 4,266 Milliarden Byte/s, also ungefähr 4,2 GB/s.

Der Datentransferleistungswert ist jedoch nur ein Idealwert und wird in der Praxis nie erreicht. Er ist jedoch zur Klassifizierung von Speicher gängig; im obigen Beispiel wäre es also PC2-4200 aus DDR2-533-Chips, die mit 133 MHz laufen (siehe DDR2-SDRAM).

Ranks

DRAM-Modul mit einem Rank. Das Rank besteht aus vier DRAM-Bausteinen und wird über das Chipselect-Signal aktiviert oder deaktiviert.
DRAM-Modul mit zwei Ranks. Ein Rank besteht aus vier DRAM-Bausteinen mit je vier Datenleitungen (x4). Der jeweilige Rank wird zum Lesen/Schreiben über das Chipselectsignal 0/1 ausgewählt.

Ein DIMM lässt sich mit einer unterschiedlichen Anzahl jeweils gleicher Module aufbauen. Das JEDEC-Gremium macht dabei ganz bestimmte Vorgaben zum Aufbau der DIMMs. Erlaubt ist es, Chips einzusetzen, welche entweder 4 (nur mit Puffer), 8 oder 16 Datenleitungen (s. o. Leitungen) in Anspruch nehmen. Des Weiteren ist immer eine bestimmte Gruppe von DRAM-Chips jeweils einem Rank zugeordnet. Es existieren Single-, Dual- und Quad-Rank-DIMMs. Jeder DIMM trägt also ein, zwei oder vier Ranks von Speicherchips, welche zusammen alle 64 Datenleitungen belegen. Da Chipsätze in der Regel nur maximal 8 Ranks verwalten können (bzw. bei hohem Tempo wie DDR-400 zumeist nur 6 Ranks), muss man für großen Speicherausbau (z. B. 8 x 2 GB = 16 GB) auf Single-Rank-Module zurückgreifen, da mit Dual-Rank-Modulen mit 4 x 2 Ranks bereits alle 8 Ranks aufgebraucht wären. Zudem muss in solchen Fällen zumeist das Tempo der RAMs gedrosselt werden, zum Beispiel von PC3200 auf PC2700, da ansonsten die Intereferenzen auf den Leitungen zu groß werden.

Dual-Rank-Riegel belasten die Busleitung genau so stark wie zwei Single-Rank-Riegel. Ob beide Platinenseiten oder nur eine mit Modulen bestückt ist, sagt nichts über die Rank-Anzahl aus - nicht zu verwechseln mit Dual/Single Side RAM.


Puffer

Werden aufgrund der Speicheranforderungen mehr Bausteine benötigt, als dies nach den Anforderungen der JEDEC Group pro Daten- oder Adressleitung zulässig ist, müssen so genannte Puffertreiber eingesetzt werden. Diese entkoppeln den Daten- und Adressbus des Moduls vom externen Bus, so dass zum Beispiel statt erlaubter 4 Bausteine je Leitung 8 oder 16 eingesetzt werden können. Das Speichermodul selbst zählt dann nur noch als ein einzelner Eingang.

Nachteilig ist meist, dass diese Puffer selbst wieder Schaltzeiten besitzen, die sich zu den Zugriffszeiten der reinen RAM-Bausteine addieren.

Funktionsweise der Adressierung

Der Auslöser für einen Schreib- oder Lesevorgang im Hauptspeicher ist normalerweise die CPU. Natürlich kann auch andere Computerperpherie (meist per DMA) auf den Speicher zugreifen, jedoch werden die meisten Operationen von der CPU veranlasst.

Ein wichtiger Parameter für die Zugriffszeit auf diese Daten ist die Column Address Strobe Latency, also die Spaltenadressverzögerung.

Findet die CPU bestimmte Daten nicht in ihrem Cache oder will Daten in den Speicher schreiben, wird der Speichercontroller damit beauftragt. Bei Intel-CPUs werden dazu Befehle über den Frontsidebus an den Speichercontroller, welcher in der Northbridge sitzt, abgeschickt. AMD-CPUs haben einen deutlich kürzeren Weg, da hier der Speichercontroller direkt in der CPU liegt. Der Speichercontroller liest immer komplette 64-Bit-Zeilen (s. o.).

Der Speichercontroller überträgt die Daten bei einem Zugriff auf den RAM in einer genau festgelegten Reihenfolge.


Timing

Es existiert eine Vielzahl von Parametern, welche das Zeitverhalten des Speichers steuern. Standardmäßig ist im Speicherriegel ein vom Hersteller eingestelltes Zeitverhalten eingetragen[1]. Durch sogenanntes Tuning durch den Nutzer wird oft versucht, dieses Zeitverhalten zu optimieren, was oftmals zu Systemabstürzen führen kann.

  • Die Grundlagen zur Adressierung von Daten im Speicher durch die Parameter RAS und CAS werden in Halbleiterspeicher#Adressierung beschrieben.
  • Die speziellen Eigenschaften der verwendeten Speicherchips werden im Artikel Dynamisches RAM beschrieben.


DDR-Speicher wird auf die folgende Art beschrieben:
Geschwindigkeit Puffer SPD-EPROM-Version Platinen Version
PC3200 U 30 3 3 1 A1


Im obigen Beispiel wird ein RAM mit den Parametern PC3200U-30331-A1 beschrieben. Der wichtigste Parameter ist die maximale Geschwindigkeit des Moduls. „PC3200“ kennzeichnet, wie bei Geschwindigkeiten näher erklärt, Speicherriegel, die 3,2 Milliarden Bytes pro Sekunde liefern können. Dadurch kann man recht einfach die Zuordnung von Prozessoren/Chipsätzen und passenden Speichermodulen ermitteln. Ein FSB-400-Prozessor kann ebenfalls nur 3,2 GByte/s über seine Schnittstelle schicken. Aus diesem Grund wäre der dieser Speicher für den entsprechenden Prozessor ausreichend. Das „U“ steht für ungepufferte DIMMs. Nach dem Bindestrich folgen die wichtigen Latenzzeiten und zwar ausgedrückt in Taktzyklen:

Bei DDR-SDRAM gibt es Chips mit einer CL von 2, 2,5 oder 3 Takten Dauer, weshalb man für den CL Parameter zwei Ziffern benötigt (3033 steht für 3,0 - 3 - 3).

DDR2-Speicher wird auf die folgende Art beschrieben:
Kapazität DIMM-Aufbau Geschwindigkeit Puffer SPD-EPROM-Version Platinen Version
512MB bRxc PC2-3200 U 3 3 3 1 A1


Bei DDR2-Speicher sind nur ganzzahlige Zeiten erlaubt weshalb der CL mit nur einer Zahl angegeben wird. In der JEDC-Spezifikation ist nur für DDR2-Speicher die Kapazitätsgröße vorgesehen. Des Weiteren wird die Angabe zum Aufbau des Riegels verlangt. „1Rx8“ steht für einen Single-Rank-DIMM (s. Rank), welches (x8)SDRAMs enthält (s. Bank) , wobei jeder davon 8 Datenanschlüsse besitzt.

Interessante Parameter sind auch die Betriebsspannung samt Toleranzbereich, Temperatur-Grenzwerte oder weitere Latenzzeiten wie oder . Solche Parameter sind in der JEDEC-Spezifikation exakt festgelegt und werden deshalb nicht extra ausgewiesen. Die Activate-to-Precharge-Zeit wird doch gerne angegeben, weil sie für Übertakter interessant ist. Sie steht meist hinter durch einen Bindestrich gerennt, z. B. PC3200-2022-5.

Für Übertakter auch interessant ist die Command Rate (1T/2T), obwohl diese Latenzzeit des Speicherchips keine isolierte Eigenschaft ist. Diese Wartezeit wird dann nötig, wenn viele Chips am Speicherkanal aktiv sind und dadurch die Adressleitungen des Speichercontrollers stärker belastet werden. In der Regel lassen sich bis zu 3 Ranks (ein Double-Rank und ein Single-Rank) mit 1T ansprechen, bei mehr muss man entweder die Command Rate verlängern oder die Taktfrequenz absenken.

Wichtige Parameter zum Zeitverhalten des Speichers sind:

Cycle Length (CL) - Spaltenoperationen

Die Cycle Length oder CAS Latency (ausführlich: Column Address Select Latency Time) ist ein Maß für die Dauer, bis die entsprechende Spalte adressiert wurde und an den entsprechenden Chip-Kontakten erscheint. Normale Werte sind 2 bis 6 Taktzyklen (10 bis 30 ns).

RAS-to-CAS-Delay - Zeilenoperationen

( )

Wie bereits oben erklärt, wird bei einer Leseoperation im Speicher immer zuerst eine vollständige Zeile ausgelesen (RAS), bevor der exakte Spaltenwert (CAS) innerhalb dieser Zeile bestimmt wird. Die Dauer bis die Daten bereitstehen heißt RAS-to-CAS-Delay. Allgemein ausgedrückt, beschreibt dieser Parameter die Zeit bis eine Zeile im Speicher zur Verfügung steht. Normale Werte sind 2 oder 3 Taktzyklen.

RAS Active Time () und RAS Precharge Time ( )

Befindet sich der nächste auszulesende Datensatz in der gleichen Zeile wie das zuvor gelesene, hat man einen „Page Hit“ und bewirkt, dass das Einlesen einer neuen Zeile (RAS-to-CAS-Delay () entfällt. Es kann sogleich wieder der Inhalt der Zelle ausgelesen werden, so dass nur die Zeit der CAS Latency benötigt wird. Nur bei aufeinanderfolgenden Page Hits kann der Speicher seinen optimalen Datendurchsatz erreichen.

Befindet sich der nächste benötigte Datensatz nicht in derselben Zeile, so muss die Zeile natürlich wieder neu eingelesen werden. Dies wird als „Page Miss“ bezeichnet. Bevor jedoch eine neue Zeile ausgelesen werden kann, muss die aktuelle Zeile zurückgeschrieben und damit deaktiviert werden. Dieser Rückschreibeprozess wird als

RAS Active Time

() bezeichnet. Nach dieser Zeit muss wiederum eine erhöhte Spannung angelegt werden, was als

RAS-Precharge-Time

() bezeichnet wird.

RAS Cycle Time

Ein weiterer wichtiger Parameter beim Speicher ist die sogenannte RAS Cycle Time auch als bezeichnet. Dieser beschreibt die Wartezeit, nach der sich die Speicherzelle nach einem ersten Zugriff erneut lesen oder beschreiben lässt. Dieser Parameter ist i. d. R. recht hoch mindestens 5 Taktzyklen (5T). Es gibt verschiedene Probleme, weshalb die RAS Cyle Time nicht mit jeder Chipgeneration kleiner werden. Dazu gehören beispielsweise:

  • Länge der Leitung zu den einzelnen Chips des Speichers (s. u.). Je Länger die Datenleitung und je mehr Chips insgesamt angeschlossen sind, desto langsamer läuft der Speicherchip.
  • Steigender Energiebedarf und Abwärmeproduktion.

RAS Active Time (t_RAS) und RAS Precharge Time (t_RP) welche als zusammengefasst werden.

EEPROMs auf Speicherriegeln

  1. Bei modernen Bauformen befindet sich dazu ein EEPROM auf dem Riegel, das vom BIOS ausgelesen werden kann und so für eine korrekte Konfiguration sorgt.

Fehlererkennung (ECC)

Zur Erkennung von Hauptspeicherfehlern gibt es mehrere Verfahren. Eines dieser Verfahren stammt vom US-Mathematiker Richard W. Hamming, welches in ECC-Speicher zum Einsatz kommt. Der Error Correction Code (ECC) ist eine Art Hashwert über die 64 Bits jeder Speicherzeile. Diese redundanten Informationen werden vom Speichercontroller berechnet und in 8 weiteren Bits abgelegt (bei 32 Bit Speicherzellen sind es 7 weitere Bits), weshalb ECC-Speicher 72-Bit pro Zelle hat.

ECC kann 1- und 2-Bit Fehler erkennen sowie 1-Bit Fehler korrigieren. Multibitfehler können jedoch unbemerkt bleiben. ECC-Speicher kommt bei Desktop-PCs kaum zum Einsatz.

Weitere Techniken zur Fehlererkennung sind unter den Namen Chipkill, Active Memory, Memory Resiliency oder Memory RAID bekannt.

Siehe auch

Ausführung / Technologie
Anderes
Grundlagen