Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

<2005-01-08> CPU+Mainboard FAQ - Kapitel 8/14 - RAM

0 views
Skip to first unread message

CPU und Mainboard FAQ Team

unread,
Dec 2, 2009, 8:00:06 PM12/2/09
to
Archive-name: de/comp/hardware/cpu+mainboard/kapitel_8
Posting-frequency: monthly
Last-modified: 2005-01-08
URL: http://dch-faq.de/kap08.html
Disclaimer: Approval for *.answers is based on form, not content.

8. Arbeitsspeicher/Hauptspeicher - RAM
======================================

8.1 RAM-Grundlagen
==================

8.1.1 Was ist RAM?
==================

RAM = Random Access Memory ist "Speicher mit wahlfreiem Zugriff",
sprich es kann sowohl daraus gelesen als auch hineingeschrieben
werden. Der Begriff wird auch synonym fᅵr den Arbeitsspeicher eines
PCs verwendet. RAM ist flᅵchtig, d.h. alle in ihm abgelegten Daten
gehen nach dem Abschalten des Stromes verloren. Im RAM (hier im
Sinne von "Arbeitsspeicher") werden Programme und Daten abgelegt, um
sie zu verarbeiten. Da RAM um Grᅵssenordnungen schneller als
Massenspeicher (z.B. Festplatten) ist, wird die Ausfᅵhrung eines
Programmes sehr stark beschleunigt. (In den Pionierjahren des
Computers wurden die Programme tlw. noch direkt von Massenspeichern
- damals: Lochkarten - verarbeitet, was sehr langsam war. Heute wird
RAM zwingend vorausgesetzt, um Programme zu verarbeiten. (Ohne RAM
startet der PC nicht einmal, sondern beschwert sich lauthals per
Systemlautsprecher, da das BIOS heutzutage gepackt ist und erst
entpackt werden muss, was ohne RAM nicht geht.)

RAM kann durch viele Technologien hergestellt werden und existiert
in sehr vielen unterschiedlichen Varianten. Eines ist aber allen
Arten gemeinsam: Es gibt einen Adresseingang (eine Art Hausnummer
fᅵr die Daten), einen Daten-Ein/Ausgang und einen "Umschalter", der
anzeigt, ob Daten auf die angelegte Adresse geschrieben oder von
dieser Adresse gelesen werden sollen. Genaueres siehe Kap. 8.4.

Je nach verwendeter Technologie ist RAM unterschiedlich schnell und
teuer. Der schnellste heute gebrᅵuchliche RAM-Typ ist SRAM (Static
RAM), welcher aber auch sehr kostspielig herzustellen ist. Daher
wird er dort verwendet, wo hᅵchste Geschwindigkeit gefordert wird,
z.B. als Cache (schneller Zwischenspeicher, siehe auch 3.3.3)
innerhalb der CPU. Aber nicht allein der Preis ist bei SRAM das
Problem. SRAM braucht auch sehr viel Platz auf dem Silizium (6
Transistoren fᅵr eine Zelle), welcher nicht unbegrenzt zur
Verfᅵgung steht.

Ein relativ gutes Preis-/Leistungsverhᅵltnis hat DRAM (Dynamic RAM),
weshalb dieser RAM-Typ hauptsᅵchlich als Hauptspeicher in Computern
eingesetzt wird. Eine DRAM-Zelle besteht nur aus einem Transistor
und einem Kondensator.

Fᅵr einige Spezialanwendungen, wie Grafikkarten existieren auch
Typen wie WRAM oder VRAM, welche aber nicht so verbreitet sind.

Eine Ausnahme bildet z.B. FlashRAM, das seine Daten beim
Abschalten der Stromversorgung nicht verliert. Es ist aber sehr
langsam und wird deshalb z.B. in PDAs (Organizern) eingesetzt.


8.1.2 Aufbau von RAM
====================

Die Erklᅵrung des Aufbaus hᅵlt sich eng an einen Artikel der
Zeitschrift c't (siehe c't 17/00, Seite 166ff und auch
http://www.heise.de/ct/Redaktion/ciw/speicher.html).

Auf jedem heute erhᅵltlichen Speichermodul gibt es einzelne
Speicherchips (ICs), welche die eigentlichen DRAM-Zellen (siehe
Kap. 8.1.4) und die Schreib- und Leseverstᅵrker (Sense Amps)
enthalten. Letztere sind fᅵr die regelmᅵssige Auffrischung
(Refresh) des Zelleninhalts verantwortlich. Grundsᅵtzlich kᅵnnen
nur gleiche Chipsorten auf einem Modul kombiniert werden: FPM-ICs
nur mit FPM-ICs, EDO-ICs nur mit EDO-ICs etc.

Bei Speicherchips wird die Grᅵsse grundsᅵtzlich in MegaBit (kurz
MBit) angegeben (um diesen Wert auf die bekanntere Grᅵsse MegaByte
umzurechnen, muss man den MBit-Wert nur durch 8 teilen). Ein
64MBit-IC hat also 64*1024*1024 = 67.108.864 Zellen. Trotz gleicher
Grᅵsse kᅵnnen die ICs intern aber unterschiedliche Strukturen
aufweisen, z.B. spricht man hier von der Aufteilung in
Speicherbᅵnke, welche ᅵber eine eigene "Bank Select"-Leitung direkt
angewᅵhlt werden kᅵnnen. Auch in den einzelnen Bᅵnken kann die
Unterteilung unterschiedlich sein. So gibt es 64MBit-Chips mit:
- 4 Bᅵnken mit je 16 1-MBit-Speicherfeldern (16 Datenleitungen,
4M x 16-Organisation)
- 4 Bᅵnken mit je 8 2-MBit-Speicherfeldern (8 Datenleitungen,
8M x 8-Organisation)
- 4 Bᅵnken mit je 4 4-MBit-Speicherfeldern (4 Datenleitungen,
16M x 4-Organisation)

Diese verschiedenen Organisationen werden benᅵtigt, um
unterschiedlich grosse Module aus denselben Chips aufbauen zu
kᅵnnen. Aus 64MBit-ICs kann man z.B. bauen:
- 4 Chips in 4M x 16 ergeben ein 32-MByte-Modul
- 8 Chips in 8M x 8 ergeben ein 64-MByte-Modul
- 16 Chips in 16M x 4 ergeben ein 128-MByte-Modul (meist nur auf
Registered DIMMs anzutreffen)
- 32 Chips in 16M x 4, wovon jeweils zwei parallel geschaltet
werden, ergeben ein 256-MByte-Modul. Wird aber heute nicht mehr
verwendet, da es ja schon grᅵssere Speicher-ICs bis 512MBit gibt.

Das fᅵhrt auch dazu, dass ein Modul mit gleicher Kapazitᅵt aus
unterschiedlich grossen Chips aufgebaut werden kann. Ein 64MByte-
Modul lᅵsst sich folgendermassen aufbauen:
- 2 Chips zu je 256 MBit, jeder 8M x 32-Chip hat dabei 32
Datenleitungen
- 4 Chips zu je 128 MBit, jeder 8M x 16-Chip hat dabei 16
Datenleitungen
- 8 Chips zu je 64 MBit, jeder 8M x 8-Chip hat dabei 8
Datenleitungen
- 32 Chips zu je 16 MBit, jeder 8M x 4-Chip hat dabei 4
Datenleitungen, je zwei Chips sind an den Datenleitungen parallel
geschaltet

Die interne Organisation der einzelnen Chips bestimmt letztendlich
den Aufbau den Speichermoduls. Da die Speicherfelder in Zeilen
(Rows) und Spalten aufgebaut sind, ist auch das Verhᅵltnis von
Zeilen zu Spalten unterschiedlich. Fᅵr den bereits bekannten Fall
des 64-MBit-SDRAMs sieht das so aus:
- 4M x 16-Organisation: 4 Bᅵnke mit je 16 Feldern mit je 4096 Zeilen
und 256 Spalten - 12 Zeilenbits (2^12=4096) und 8 Spaltenbits
(2^8=256)
- 8M x 8-Organisation: 4 Bᅵnke mit je 8 Feldern mit je 4096 Zeilen
und 512 Spalten - 12 Zeilenbits (2^12=4096) und 9 Spaltenbits
(2^9=512)
- 16M x 4-Organisation: 4 Bᅵnke mit je 4 Feldern mit je 4096
Zeilen und 1024 Spalten - 12 Zeilenbits (2^12=4096) und 10
Spaltenbits (2^10=1024)
Bei diesem Vergleich fᅵllt auf, dass die Zeilenanzahl immer gleich
bleibt. Das ist durchaus Absicht, denn beim Refresh mᅵssen alle
Zeilen der Reihe nach aufgefrischt werden, und das in einer fest
vorgegebenen Zeit (meist 64ms). Ein sogenannter "4K-Refresh" sagt
damit aus, dass 4096 Zeilen innerhalb der 64ms aufgefrischt sein
mᅵssen, die Takt-Periode betrᅵgt dabei 15.6ᅵs. Beim 8K-Refresh
werden demnach innerhalb von 64ms 8192 Zeilen aufgefrischt, die
Takt-Periode ist dann nur halb so lang wie beim 4K-Refresh, also
7.8ᅵs.


8.1.3 Chipkombinationen gᅵngiger SDRAM-Chips
============================================

Chip-Aufbau (Eigenschaften der SDRAMs)
======================================

Kapazitᅵt | Organisation | Bᅵnke | Adressbits | Page Length
[MBit] | [Tiefe x | +------+------+ [Bit]
| Datenleitungen] | | Row |Column|
==========+==================+=======+======+======+=============
16 | 4 M x 4 | 2 | 12 | 9 | 512
----------+------------------+-------+------+------+-------------
64 | 4 M x 16 | 4 | 12 | 8 | 256
----------+------------------+-------+------+------+-------------
64 | 8 M x 8 | 4 | 12 | 9 | 512
----------+------------------+-------+------+------+-------------
64 | 16 M x 4 | 4 | 12 | 10 | 1024
----------+------------------+-------+------+------+-------------
128 | 8 M x 16 | 4 | 12 | 9 | 512
----------+------------------+-------+------+------+-------------
128 | 16 M x 8 | 4 | 12 | 10 | 1024
----------+------------------+-------+------+------+-------------
128 | 32 M x 4 | 4 | 12 | 11 | 2048
----------+------------------+-------+------+------+-------------
256 (4) | 16 M x 16 | 4 | 13 | 9 | 512
----------+------------------+-------+------+------+-------------
256 (4) | 32 M x 8 | 4 | 13 | 10 | 1024
----------+------------------+-------+------+------+-------------
256 (4) | 64 M x 4 | 4 | 13 | 11 | 2048
----------+------------------+-------+------+------+-------------
512 (4,5)| 32 M x 16 | 4 | 13 | 10 | 1024
----------+------------------+-------+------+------+-------------
512 (4,5)| 64 M x 8 | 4 | 13 | 11 | 2048
----------+------------------+-------+------+------+-------------
512 (4,5)| 128 M x 4 | 4 | 13 | 12 | 4096
----------+------------------+-------+------+------+-------------
1024(4,5)| 64 M x 16 | 4 | 14 | 10 | 1024
----------+------------------+-------+------+------+-------------
1024(4,5)| 128 M x 8 | 4 | 14 | 11 | 2048
----------+------------------+-------+------+------+-------------
1024(4,5)| 256 M x 4 | 4 | 14 | 12 | 4096
----------+------------------+-------+------+------+-------------

(4) 256MBit-, 512MBit- und 1GBit-Chips brauchen einen 8K-Refresh (7.8 ᅵs).
(5) 512MBit- und 1GBit-Chips werden noch selten in grosser Serie hergestellt,
es stehen deshalb evtl. noch nicht alle Daten zur Verfᅵgung.

DIMM-Aufbau (Moduleigenschaften)
================================

Kapazitᅵt |Organisation| 32MByte| 64MByte|128MByte|256MByte|512MByte| 1GByte | 2GByte | 4GByte
[MBit] | [Tiefe x |/ 4Mx64 |/ 8Mx64 |/16Mx64 |/ 32Mx64|/64Mx64 |/128Mx64|/256Mx64|/512Mx64
| Datenlei- +--------+--------+--------+--------+--------+--------+--------+--------
| tung] |Anzahl der SDRAM-Chips pro Modul / Anzahl der Rows / Page Size pro Row
==========+============+========+========+========+========+========+========+========+========
16 | 4 M x 4 |16(2)/1 | - | - | - | - | - | - | -
| | /4K | | | | | | |
----------+------------+--------+--------+--------+--------+--------+--------+--------+--------
64 | 4 M x 16 | 4/1/2K | - | - | - | - | - | - | -
----------+------------+--------+--------+--------+--------+--------+--------+--------+--------
64 | 8 M x 8 | - | 8/1/4K |16(1)/2 | - | - | - | - | -
| | | | /4K | | | | |
----------+------------+--------+--------+--------+--------+--------+--------+--------+--------
64 | 16 M x 4 | - | - |16(2)/1 |32(3)/2 | - | - | - | -
| | | | /8K | /8K | | | |
----------+------------+--------+--------+--------+--------+--------+--------+--------+--------
128 | 8 M x 16 | - | 4/1/4K | - | - | - | - | - | -
----------+------------+--------+--------+--------+--------+--------+--------+--------+--------
128 | 16 M x 8 | - | - | 8/1/8K |16(1)/2 | - | - | - | -
| | | | | /8K | | | |
----------+------------+--------+--------+--------+--------+--------+--------+--------+--------
128 | 32 M x 4 | - | - | - |16(2)/1 |32(3)/2 | - | - | -
| | | | | /16K | /16K | | |
----------+------------+--------+--------+--------+--------+--------+--------+--------+--------
256 (4) | 16 M x 16 | - | - | 4/1/4K | - | - | - | - | -
----------+------------+--------+--------+--------+--------+--------+--------+--------+--------
256 (4) | 32 M x 8 | - | - | - | 8/1/8K |16(1)/2 | - | - | -
| | | | | | /8K | | |
----------+------------+--------+--------+--------+--------+--------+--------+--------+--------
256 (4) | 64 M x 4 | - | - | - | - |16(2)/1 |32(3)/2 | - | -
| | | | | | /16K | /16K | |
----------+------------+--------+--------+--------+--------+--------+--------+--------+--------
512 (4) | 32 M x 16 | - | - | - | 4/1/8K | - | - | - | -
----------+------------+--------+--------+--------+--------+--------+--------+--------+--------
512 (4) | 64 M x 8 | - | - | - | - | 8/1/16K|16(1)/2 | - | -
| | | | | | | /16K | |
----------+------------+--------+--------+--------+--------+--------+--------+--------+--------
512 (4) |128 M x 4 | - | - | - | - | - |16(2)/1 |32(3)/2 | -
| | | | | | | /32K | /32K |
----------+------------+--------+--------+--------+--------+--------+--------+--------+--------
1024(4,5)| 64 M x 16 | - | - | - | - | 4/1/8K | - | - | -
----------+------------+--------+--------+--------+--------+--------+--------+--------+--------
1024(4,5)|128 M x 8 | - | - | - | - | - | 8/1/16K|16(1)/2 | -
| | | | | | | | /16K |
----------+------------+--------+--------+--------+--------+--------+--------+--------+--------
1024(4,5)|256 M x 4 | - | - | - | - | - | - |16(2)/1 |32(3)/2
| | | | | | | | /32K | /32
----------+------------+--------+--------+--------+--------+--------+--------+--------+--------

Anmerkungen:
Die Modulbezeichnung 8 M x 64 steht fᅵr ein als "Non-Parity" oder
auch "Non-ECC" bezeichnetes 64-MByte-Modul. Fᅵr EC- oder
ECC-Fehlerkorrektur benᅵtigt man Module mit zusᅵtzlichen Chips und
8 weiteren Datenleitungen, weshalb man ein 64-MByte-ECC-DIMM auch
unter der Bezeichnung "8 M x 72" findet. Das gilt sinngemᅵss auch
fᅵr die anderen Kapazitᅵten.

(1) Auf solchen doppelseitig bestᅵckten ("zweireihigen" oder
"dual-row" oder "double-sided") DIMMs (DS-DIMM) sind die
Datenleitungen von je zwei Chips parallel geschaltet.
(2) Bei solchen doppelseitig bestᅵckten DIMMs sind keine
Datenleitungen parallel geschaltet, es handelt sich also
elektrisch um Single-Sided-Module (SS-DIMMs, "single-row",
"einreihig"). Diese sind laut PC133-Spezifikation als
ungepufferte DIMMs (unbuffered DIMMs) nicht vorgesehen, sondern
nur als Registered DIMMs.
(3) 32-Chip-Module doppelter Bauhᅵhe ("double stack") entsprechen
nicht der PC100-/PC133-Spezifikation; es sind hier nur
Registered DIMMs mit ᅵbereinander angebrachten Chips (teilweise
in einem Gehᅵuse) zulᅵssig (Stacked DIMMs).
(4) 256MBit-, 512MBit- und 1GBit-Chips brauchen einen 8K-Refresh (7.8 ᅵs).
(5) 1GBit-Chips werden noch selten in grosser Serie hergestellt, es stehen deshalb
evtl. noch nicht alle Daten zur Verfᅵgung.


8.1.4 DRAM
==========

Seit es Heimcomputer gibt, wird DRAM in CMOS-Technologie gefertigt.
Doch auch diese Technologie wird immer weiter entwickelt, so dass
hᅵhere Packungsdichten, geringere Strukturgrᅵssen und niedrigere
Versorgungsspannungen erreicht werden, die alle ein Ziel haben:
Vergrᅵsserung der wirtschaftlich herstellbaren RAM-Grᅵsse und Erhᅵhung
der Geschwindigkeit. Aus diesem Grund sind mit der Zeit immer neue
Bauformen (siehe 8.3) fᅵr RAM entwickelt worden.


8.1.5 Mehr Lesestoff
====================

Ein recht verstᅵndlich geschriebener Artikel zu den Grundlagen von
RAM (allerdings in englischer Sprache) findet sich hier:
http://arstechnica.com/paedia/r/ram_guide/ram_guide.part1-1.html
http://www.corsairmemory.com/memory_basics/153707/index.html
c't 17/00 Seite 166ff:
http://www.heise.de/ct/Redaktion/ciw/speicher.html
c't 06/02 Seite 262ff,
c't 08/02 seite 282ff.
Ein ausfᅵhrlicher, recht aktueller RAM-Leitfaden findet sich in
c't 23/03 Seite 202ff.


8.2 Terminologie
================

Einige Betriffe tauchen in diesem Kapitel immer wieder auf.

* IC: Integrated Circuit, integrierter Schaltkreis. Bauteil, das
mehrere "klassische" Bauteile (Kondensatoren, Transistoren, ...)
zusammenfasst. Ohne ICs wᅵren heutige PCs gar nicht denkbar. Hier in
Kapitel 8 sind damit die Speicherchips gemeint.

* ROM: Read Only Memory, Speicher, der im Gegensatz zu RAM nur gelesen
werden kann. Wird z.B. fᅵr das BIOS des PCs (siehe Kapitel 7)
benutzt.

* DRAM: Dynamic RAM: Speicher, der seinen Inhalt nur behᅵlt, wenn er
regelmᅵssig "aufgefrischt" wird (Refresh), da er aus Kondensatoren
aufgebaut ist und seine Ladungen ohne Refresh relativ schnell
verlieren wᅵrde. Eine DRAM-Zelle besteht nur aus einem Transistor
(Transfergate zur Auswahl des Kondensators) und einem Kondensator.

* SRAM: Static RAM: Speicher, der keinen Refresh braucht; wesentlich
schneller als DRAM, in verschiedenen Variationen typischerweise fᅵr
Cache (siehe Kapitel 2.2.3 und 3.3.3) auf 386er-, 486er- und
Sockel-5/7-Motherboards eingesetzt.
Auch heute noch wird so ziemlich jeder (Prozessor-) Cache damit
aufgebaut, nur dass der eben nicht mehr OnBoard verlᅵtet, per
Slot-Karte steckbar (COAST-Module = Cache On A Stick) oder auf
einem Prozessormodul aufgelᅵtet ist, sondern in der CPU drin sitzt.
Warum kommt SRAM ohne Refresh aus? SRAM besteht aus Flip-Flops.
Diese FFs fallen in einen definierten Zustand und verweilen dort so
lange, bis der Zustand "mit Gewalt" geᅵndert wird (oder der Strom
abgeschaltet wird). SRAM besteht somit aus 6 Transistoren
(gegenᅵber 2 bei DRAM): 2 gegengekoppelte Inverter (1 nMOS, 1 pMOS)
und 2 Transfergates fᅵr die Bitleitung und invertierte Bitleitung
zum Setzen und Auslesen.

* Parity: Aus 8 Datenbits wird die Quersumme gebildet und diese in
einem 9. Bit abgespeichert. Stimmt sie nicht, wird das dem
Betriebssystem mitgeteilt, das dann entweder eine Fehlermeldung
ausgibt - oder gar nichts tut. Speichermodule mit Parity, die man
typischerweise an ihrer Datenbusbreite erkennt (Vielfache von 9
statt 8 Bits, also 9 Bits, 36 Bit, 72 Bits) waren frᅵher
(386er/486er-Zeiten) gᅵngig, kamen dann aber aus der Mode; heute
findet man sie v.a. in Rechnern, bei denen es auf hohe
Datensicherheit ankommt, zusammen mit dem nachfolgend beschriebenen
ECC. Im ᅵbrigen gibt es auch den mittlerweile recht betagten
Parity-Boot-Virus, der beim Start des Rechners "Parity Error"
ausgibt - ein Relikt aus einer anderen ᅵra ;).

* ECC: Dies ist eine verbesserte Variante von Parity-Erkennung; bei
ECC ist die Korrektur eines 1-Bit-Fehlers und die Erkennung eines
2-Bit-Fehlers mᅵglich. ECC muss durch den Chipsatz des Motherboards
unterstᅵtzt werden (heutige Chipsᅵtze unterstᅵtzen entweder ECC oder
gar keine Fehlererkennung, Parity allein kommt nicht mehr vor), und
es mᅵssen logischerweise geeignete Speichermodule zum Einsatz kommen
(wieder 36 bzw. 72 Bit statt 32 bzw. 64 Bit breit). Siehe auch
Kapitel 8.4.4.

* Interleaving: Dies ist ein Verfahren zur Erhᅵhung des
Speicherdurchsatzes. Hierbei werden die Datenworte (z.B. 32 Bit
breit) nicht sequentiell in den Speicher geschrieben, sondern
alternierend auf verschiedene Speicherbᅵnke. Dies hat seinen Grund
darin, dass DRAMs nach dem Schreiben fᅵr eine gewisse Zeit nicht
ansprechbar sind; diese Zeit muss bei Einsatz von Interleaving nicht
vertrᅵdelt werden, sondern es wird in der nᅵchsten Speicherbank
weitergeschrieben. Theoretisch ist damit (bei 2X-Interleaving) eine
Verdoppelung des Speicherdurchsatzes mᅵglich; die
32-Bit-Grafikkarten mit Chips wie Tseng ET4000/W32i/p bzw. S3 805i
kamen an dieses Ideal schon recht nahe heran. Beim Hauptspeicher des
PCs bringt Interleaving aber nicht ganz soviel. Erwᅵhnenswert ist
vielleicht noch, dass heutzutage einzelne Speichermodule logisch
mehrere Speicherbᅵnke darstellen, so dass sogar 4X-Interleaving
innerhalb eines Moduls mᅵglich ist. 2-Way-Interleaving geht ab 16MBit
ICs, 4-Way-Interleaving ab 64MBit ICs auf den Modulen. Siehe auch
Kapitel 8.4.6.

* Fastpage-DRAM, EDO-DRAM: Verschiedene Typen von DRAMs auf
Speicherbausteinen, bei denen weniger Zeit fᅵr Refreshzyklen
draufgeht als bei der Urform der DRAMs. EDO-DRAMs sind schneller als
Fastpage-DRAMs, unterstᅵtzen aber kein Interleaving.

* SDRAM: SDRAM lᅵuft synchron zum externen Takt des Prozessors
(Synchronous DRAM), ist wieder ein bisschen schneller als EDO-DRAM
und unterstᅵtzt auch Interleaving.

* DDR/QDR: Bei DDR (Double Data Rate, hat nichts mit der
deutsch-deutschen Vergangenheit zu tun) werden pro Datentakt zweimal
Daten ᅵbertragen, bei QDR (Quad Data Rate) gar viermal. Das
Verfahren tauchte bei PCs erstmals beim EISA-Bus anno 1993 auf (war
dort allerdings kaum in "freier Wildbahn" anzutreffen) und wird u.a.
auch beim AGP eingesetzt.

* Doublesided, singlesided: Siehe 8.1.3 Tabelle 2 Anmerkung (1)

* Bandbreite: Umgangssprachlich (eigtl. falsch) fᅵr die Menge an Daten,
die pro Sekunde von und zum Speicher geschaufelt werden kᅵnnen,
damit ᅵquivalent zum Datendurchsatz. Siehe auch Kapitel 8.4.10.

Hier nicht relevante, aber auch interessante RAM-Typen:

* VRAM: Ein Speichertyp, der vor etwa 5 Jahren auf hochwertigeren
Grafikkarten zu finden war. VRAM besteht aus einem "Kern" auf
Fastpage- oder EDO-DRAM und einem Schieberegister aus SRAM namens
SAM (Serial Access Memory), das einen grᅵsseren Teil einer
Bildschirmzeile aufnimmt, eine Art Cache, wenn man so will. Dadurch
mᅵssen nicht die Daten jedes Pixels einzeln aus dem RAM gelesen
werden, was die durch den RAMDAC fᅵr den Bildaufbau in Anspruch
genommene Bandbreite um Grᅵssenordnungen reduziert (somit bleibt mehr
fᅵr den Grafikchip ᅵbrig, was sich gerade in hohen Auflᅵsungen bei
hoher Farbtiefe auswirkt) und hᅵhere Bildwiederholraten ermᅵglicht
als bei "normalem" DRAM.

* WRAM (Windows RAM): ᅵhnlich VRAM, nur billiger und schneller. Wurde
nur auf den Millennium- und Millennium-II-Grafikkarten von Matrox
verbaut.

* SGRAM: Synchronous Graphics RAM. SDRAM mit einigen Zusatzfunktionen
fᅵr Grafikkarten.


8.3 Bauformen
=============

Seit den Anfangszeiten der PCs haben sich die RAM-Bauformen mehrmals
verᅵndert, um der hᅵheren Kapazitᅵt der RAM-Chips, aber auch der sich
ᅵndernden Speicherbusbreite Rechnung zu tragen.

8.3.1 DIPs
==========

Zu XT-Zeiten (bis Ende der 80er Jahre) waren Speicherchips oft
einzeln auf dem Mainboard untergebracht - die DIPs (Dual Inline
Package) waren zuerst eingelᅵtet, spᅵter auch gesockelt. Die
Speicheraufrᅵstung war somit kein Zuckerschlecken. Zudem waren die
Signalwege lang, was aber aufgrund der damals noch hohen
Zugriffszeiten (120 ns und mehr, beim IBM-XT z.B. 200 ns, spᅵter aber
auch 80, z.T. gar - sehr teuer - 70 ns) nicht weiter ins Gewicht
fiel.


8.3.2 SIMMs 30-polig
====================

Spᅵter wurden Steckmodule eingefᅵhrt. Die 30-poligen SIMMs (Single
Inline Memory Module, diese Module haben eine Kontaktleiste unten)
mit jeweils 8 bzw. mit Parity 9 Bit breitem Speicherbus gab es in
Kapazitᅵten von 256 KB, 1 MB, spᅵter 4 MB und sehr selten 16 MB. Sie
mᅵssen in Systemen mit 16-Bit-Speicherbus (286, 386SX) immer
paarweise, in Systemen mit 32-Bit-Speicherbus (386DX, 486) gar
jeweils zu viert verbaut werden. Auf 30-poligen SIMMs findet man
zumeist Fastpage-DRAM, die Versorgungsspannung liegt bei 5 V.
Elektrisch gleich, aber mit Stiften statt einer Kontaktleiste, kamen
SIPPs daher - diese passten in billige Stecksockel. SIPPs gab es mit
Kapazitᅵten von bis zu 1 MB; sie waren v.a. in 286- und
386SX-Systemen ᅵblich. Sie waren im ᅵbrigen beliebte "Opfer" von
Umlᅵtaktionen zwecks Weiterverwendung in Rechnern mit 30-Pin-Sockeln.


8.3.3 PS/2-SIMMs 72-polig
=========================

PS/2-SIMMs, die, wie der Name schon sagt, ihre Wurzeln bei den
PS/2-Rechnern von IBM haben, sind 32 Bit breit (mit Parity 36 Bit; es
gab auch Module mit "halber" Paritᅵt, diese waren jedoch im PC-Bereich
nicht ᅵblich) und haben 72 Anschlᅵsse an der Kontaktleiste an der
Unterkante. Es gab sie in Kapazitᅵten von 1 MB bis zu 128 MB
(allerdings sind schon 64er nicht mehr sonderlich gᅵngig, 128er sind
i.allg. sehr selten anzutreffen), mit Fastpage-DRAM und EDO-DRAM. In
486ern sind sie einzeln einsetzbar (es sei denn, der Chipsatz
verwendet nicht abschaltbares Interleaving, wie der Intel Saturn
[82420]), in Systemen mit 64-Bit-Speicherbus (Pentium etc.) mᅵssen sie
paarweise eingesetzt werden, manches Pentium-Pro-Board verlangte wegen
Interleaving gar nach je 4 gleichen Modulen. Fastpage-Module lassen
sich bis einem Speichertakt von ca. 66 MHz betreiben, EDO-Module bis
83 MHz (jeweils bei einer Zugriffszeit von 60 ns). Die ᅵbliche
Versorgungsspannung betrᅵgt 5V.
Damals[tm] gab es ᅵbrigens Adapter, die die Verwendung von 4
30-poligen SIMMs in einem PS/2-Slot erlaubten - kein Wunder, kosteten
doch 16 MB RAM noch 500 Mark oder mehr.


8.3.4 SDR-SDRAM (DIMMs 168-polig)
=================================

DIMMs (Dual Inline Memory Module) unterscheiden sich von SIMMs
dadurch, dass die Kontakte auf beiden Seiten nicht durchverbunden,
sondern selbstᅵndig sind. Sie sind 64 Bit (bzw. mit Parity/ECC 72
Bit) breit und haben 168 Anschlᅵsse an ihrer Kontaktleiste. Die
verfᅵgbaren Kapazitᅵten reichen von 8 bis 1024 MB, dabei kommt im
PC-Bereich fast ausschliesslich SDRAM zum Einsatz, wᅵhrend bei ᅵlteren
Apple-Rechnern auch EDO-DIMMs (die aber zumindest bei 66 MHz
Speichertakt auch von etlichen PC-Chipsᅵtzen unterstᅵtzt werden) oder
gar Fastpage-DIMMs verwendet wurden. Bei DIMMs unterscheidet man
ausserdem noch nach dem zulᅵssigen Takt - PC100-Module sind fᅵr 100
MHz ausgelegt, PC133-Module fᅵr 133 MHz. PC66-Module wurden nur
nachtrᅵglich so genannt - sie unterscheiden sich von ihren neueren
Verwandten durch lᅵngere Zugriffszeiten (10/12 ns) und das Fehlen
eines sogenannten SPD-EEPROMs, das Informationen ᅵber den Hersteller
und zulᅵssige Timings enthᅵlt. Im ᅵbrigen lassen sich gute
PC100-Module oft auch bei 133 MHz betreiben, allerdings meist nur mit
konservativeren Timings.
Bei SDRAM-Modulen unterscheidet man weiterhin zwischen "registered"
und "unbuffered". "Registered"-Module haben zusᅵtzliche
Pufferchips, um die elektrische Belastung fᅵr den Mainboard-Chipsatz
zu reduzieren; die jeweils grᅵssten verfᅵgbaren Module sind wegen der
hohen Chipanzahl nur als Registered-Module verfᅵgbar.
SDRAM-DIMMs benᅵtigen eine Versorgungsspannung von 3.3 V. Verwendet
werden sie hauptsᅵchlich in Pentium-2/3- und Athlon-Systemen, daneben
auch in einigen (Super-)Sockel-7-Systemen und neuerdings auch in
Pentium-4-Systemen.
Auf einigen Sockel-7-Boards kann man sowohl PS/2-SIMMs als auch
SDRAM-DIMMs betreiben, allerdings gibt es dabei ein paar Tᅵcken -
siehe 8.6.1.

Vor allem in Notebooks werden SO-DIMM-Module verwendet. Diese haben
eine kleinere Bauform, um Platz zu sparen und sind damit nicht
pinkompatibel zu anderen DIMMs. Ansonsten gelten fᅵr sie die selben
Standards wie fᅵr normale DIMMs.


8.3.5 DDR-SDRAM (DIMMs 184-polig)
=================================

DDR-SDRAM unterscheidet sich von normalem SDRAM dadurch, dass sowohl
an der steigenden als auch an der fallenden Flanke des Taktsignals
Daten ᅵbertragen werden kᅵnnen. Darᅵber hinaus wird es auch mit 2.5V
statt 3.3V betrieben. Die Bezeichnungen fᅵr DDR-SDRAM sind indes
verwirrend - DDR200 entspricht PC1600 und wird mit 100 MHz getaktet,
DDR266 wird auch als PC2100 bezeichnet und ist fᅵr 133 MHz
vorgesehen.


8.3.6 16Bit Rambus-DRAM (RIMMs 184-polig)
=========================================

Rambus-Speicher der erten Generation (bis PC1200) arbeitet mit einem
nur 16 Bit breiten Datenbus, wird dafᅵr aber mit bis zu 600 MHz
getaktet und arbeitet genau wie DDR-SRDRAM im DDR-Verfahren, ist zu
den DDR-SDRAM DIMMs aber inkompatibel. Dies fᅵhrt zu hoher
Speicherbandbreite, aber auch zu hohen Latenzzeiten. Rambus-DRAM wird
derzeit in einigen Pentium-3-System und in vielen Pentium-4-Systemen
verwendet. 184-polige RIMMs (RDRAM-DIMMs) gibt es momentan in
verschiedenen Organisationen. Zunᅵchst wurden RIMMs mit 2 mal 16
Speicherfeldern hergestellt (2x16d-Organisation). Um Kosten zu sparen
wurde dann die sog. 4i-Organisation vorgestellt, bei der die RIMMs
nur noch 4 Speicherfelder haben. Laut Rambus hat dies keinen Einfluss
auf die Performance, hilft aber beim Kostensparen. Rambus Inc. stellt
im ᅵbrigen selbst keine Speicherchips her, sondern lizenziert nur die
Technologie.


8.3.7 32Bit Rambus-DRAM (RIMMs 232-polig)
=========================================

Die Chipsᅵtze i850E, SiS-R658 und SiS-R659 sind momentan die Einzigen,
die ᅵberhaupt 32Bit-RIMMs ansprechen kᅵnnen. Diese "RIMM 3200" bzw.
"RIMM 4200" haben die gleiche Modulbreite wie PC800-RIMMs, jedoch haben
sie 232 Pins statt nur 184 Pins und lassen sich daher nicht in die
16Bit RIMM-Slots einsetzen. Durch die Verdopplung der Datenbusbreite
bereits im RIMM verdoppelt sich auch die Bandbreite, so dass man nicht
mehr 2 Module braucht, um auf die fᅵr den Pentium 4 nᅵtige Bandbreite
zu kommen. 32Bit-RIMMs sind noch selten anzutreffen und werden deshalb
teilweise den Mainboards bereits beigelegt.


8.3.8 DDR-II SDRAM (DIMMs 240-polig)
====================================

Seit Einfᅵhrung der Intel-Chipsᅵtze i9xx kann DDR-II SDRAM auf den
Mainboards verwendet werden. Die neue Technologie bietet nicht nur eine
neue Bauform (240-Pins) sondern auch andere Neuerungen: So laufen die
DIMMs nunmehr mit nur noch 1.8V, was auch fᅵr mobile Einsᅵtze
interessant sein sollte. Die ICs auf den 240-poligen DIMMs mᅵssen nun
zwingend in FBGA-Bauform vorliegen, die alte TSOP-Technik hat
entgᅵltig ausgedient. Damit bleiben die DIMMs von den Abmessungen aber
genauso breit wie DDR-SDRAM DIMMs. Interne Verbesserungen sorgen fᅵr
kurze Latenzzeiten und hohe Taktraten; bei DDR-II sind bis zu 333MHz
geplant, was eine Bandbreite von immerhin 5.3GB/s (daher auch PC2-5300
genannt) bringt. Auch bei DDR-II soll es Registered DIMMs geben, dazu
kommen noch sogenannte "Fully buffered DIMMs", die den Einsatz von mehr
als 8 DIMMs nebeneinander ermᅵglichen sollen. Bei PC2-3200 gibt es
jedoch eine Besonderheit: die Latenzen sind im Vergleich zu PC3200
DDR-SDRAM relativ hoch, so daᅵ man keinen besonderen Geschwindikeits-
vorteil erwarten sollte. Erst mit hᅵherem Takt (ab 266MHz) sollte dann
DDR-II seine vollen Vorteile ausspielen kᅵnnen.

8.4 Kennzahlen von RAM
======================

8.4.1 Refresh
=============

DRAM muss zum Erhalt des Speicherinhalts immer wieder ausgelesen
und neu geschrieben werden. Diesen Auffrischungsvorgang nennt man
"Refresh". Standard SDRAM-Speicher braucht alle 64ms eine solche
Auffrischung. Der Refresh besteht darin, dass der Lese-/Schreib-
verstᅵrker ("Sense Amp") die Speicherzeilen ausliest und wieder neu
schreibt. Ein Taktsignal mit einer Takt-Periode von 15.6ᅵs sorgt
dafᅵr, dass nach 64ms exakt 4096 Zeilen neu geschrieben wurde.
Dieser Vorgang wird als "4K-Refresh" bezeichnet und wird bei allen
16-, 64- und 128MBit-SDRAM verwendet. Erst ab 256MBit SDRAMs legt
man einen Zahn zu und fᅵllt in 64ms 8192 Zeilen neu auf
("8K-Refresh"). Dies geschieht mit einer Takt-Periode von 7.8ᅵs.
Der Chipsatz muss den Refresh nicht regelmᅵssig alle 15.6ᅵs senden.
Es reicht aus, wenn kurz vor Ablauf der 64ms 4096 Refresh-Befehle
hintereinander gegeben werden. Dieser Vorgang wird auch
"Burst-Refresh" genannt.


8.4.2 Zugriff auf den Speicher
==============================

Soll der Inhalt einer bestimmten Zelle gelesen oder dort etwas
geschrieben werden, so muss die genaue Adresse angegeben werden,
an der sich diese Daten befinden. Zuerst muss (bei mehreren Modulen)
die richtige Chip-Reihe ausgewᅵhlt werden. Dort wird vom Chipsatz
dann vor dem Zugriff die Chip-Select-Leitung (CS) eingeschaltet.
Erst dann wird per Bank-Select (BS) die gewᅵnschte Speicherbank
aktiviert. Nun muss der Chipsatz noch Zeile (Row) und Spalte
(Column) angeben. Dies geschieht aber auf denselben Datenleitungen
hintereinander; bei den 168-poligen DIMMs sind das 13 Leitungen.
Somit betrᅵgt die maximale Anzahl an Zeilen oder Spalten
2^13 = 8192. Mehr geht nicht bei diesem DIMM-Typ.


8.4.3 RAS - CAS - was?
======================

Die Kennzahlen "RAS" und "CAS" oder ᅵhnliches hᅵrt man immer wieder.
Was diese zu bedeuten haben soll hier kurz erklᅵrt werden. Auch in
den folgenden Abschnitten befinden sich hᅵppchenweise weitere
Parameter - das Weiterlesen lohnt sich also ;).

Damit ein SDRAM-Chip bei der Adressᅵbergabe ᅵberhaupt weiss, um
welchen Adressteil es sich grade handelt, gibt es die Signalleitungen
"RAS" (Row Adress Strobe) und CAS (Column Adress Strobe). Werden also
grade die Zeilenbits ᅵbertragen, ist RAS aktiv, bei den Spaltenbits
eben CAS. Diese Art der ᅵbertragung spart nicht nur zusᅵtzliche
Leitungen, sondern sorgt auch noch fᅵr einen anderen Effekt. Der
Bank-Select-Befehl kann gleichzeitig mit der ersten Zeilenadresse
gesendet werden. Liegt genau diese Signalkombination ("Aktive-
Kommando") an, lesen die Sense Amps die entsprechenden Zeilen komplett
aus und puffern den Inhalt. Dieser Vorgang geht aber nicht beliebig
schnell, weshalb die Daten erst nach einer gewissen Wartezeit in den
Sense Amps bereitliegen. Diese Zeitverzᅵgerung heisst
"RAS-to-CAS-Delay", kurz "t_RCD" ("_" bedeutet tiefgestellte Zeichen).
Erst nach der Zeit t_RCD kann die Spaltenadresse vom Chipsatz an die
ensprechenden Sense Amps geschickt werden. Die Zeit vom Befehl bis
zum Anliegen des entsprechenden Spaltenbits im Ausgangsregister
("Latch") fᅵr die jeweilige Datenleitung heisst "CAS Latency" (CL,
auch t_CL). Von diesen Datenleitungen liest der Chipsatz schliesslich
die angeforderten Daten.


8.4.4 Puffer, Register und Fehlerkorrektur
==========================================

Vor allen in Servern mᅵssen Speichermodule zwei besondere
Anforderungen erfᅵllen:
- Es soll mᅵglichst viel Speicher eingebaut werden kᅵnnen.
- Weil Daten oft lange im Speicher stehen, soll der Speicherinhalt
fehlertolerant gespeichert sein.

Jedes RAM-Modul stellt eine (hauptsᅵchlich kapazitive) Last fᅵr den
Daten- und Adressbus zum RAM dar. Das Umladen von Kapazitᅵten
"verschleift" die Signale: Signale (Spannungen) steigen langsamer an
bzw. fallen langsamer ab, je grᅵᅵer die Last ist. Umso mehr RAM-Module
eingesetzt werden, desto stᅵrker wird dieser Effekt. Prinzipiell
mᅵssen RAM-Module auch bei Mehrfachbestᅵckung fehlerfrei arbeiten,
aber "Wackelkandidaten" kᅵnnen erst bei Mehrfachbestᅵckung Fehler
zeigen. (Vergleiche dazu Kapitel 8.5 "Test von RAM".)

Beim Einsatz von sehr vielen Modulen empfiehlt es sich, auf gepufferte
Speicherriegel zurᅵck zu greifen, wenn das Mainboard dies zulᅵsst.
Diese werden auch als "Registered DIMMs" bezeichnet, da auf den
Modulen spezielle Register-Chips verbaut werden. Bei den sonst
ᅵblichen "unbuffered" DIMMs sind sowohl die Datenleitungen, als auch
die Adressleitungen parallel geschaltet. Registered DIMMs entlasten
die Adress-Treiberleitungen, damit der Chipsatz stabiler arbeiten
kann. Zusᅵtzlich befindet sich auf den Registered DIMMs hᅵufig neben
den Pufferbausteinen noch ein PLL-Baustein, um das Taktsignal
aufzubereiten. Damit wird der Taktsignaltreiber des Mainboards
entlastet. Da die Pufferbausteine etwas Zeit schlucken, verschieben
sich die Eingangssignale an den Ausgᅵngen der Pufferbausteine aber ab
100 MHz Taktfrequenz um einen Taktzyklus. Daher sind Registered DIMMs
bei der Adressierung genau einen Takt langsamer als Unbuffered DIMMs.
Bei EDO- und PC66-Speicher spricht man nicht von Registered RAM,
sondern von Buffered DIMMs.
Werden sowohl Adress- als auch Datenbus gepuffert, spricht man von
fully-buffered RAM.

"ECC" steht fᅵr "Error Correction Code". Per ECC lassen sich
1-Bit-Fehler erkennen und korrigieren und 2-Bit-Fehler noch
erkennen. Bei PCxxx-SDRAM nutzt man bei 64 Bit Datenpfadbreite 8
zusᅵtzliche Leitungen und pro 64 Bit gespeicherte Daten 8
zusᅵtzliche Bits; daher haben Module mit ECC immer mehr
Speicherchips als "Non-Parity"-Module.

Wᅵhrend des Bootvorgangs muss das BIOS eines PCs mit
ECC-Hauptspeicher das RAM zunᅵchst mit bekannten Werten
initialisieren, damit auch die Prᅵfbits in den ECC-Zusatzbausteinen
abgelegt werden kᅵnnen. Schreibzugriffe mit aktiviertem ECC dauern
manchmal etwas lᅵnger, wenn nicht ein Datensatz mit voller
Datenbusbreite anliegt. Der Chipsatz muss dann nᅵmlich die zur
vollstᅵndigen "Zeile" fehlenden Bits erst aus dem RAM lesen, um
die neue Prᅵfsumme bilden zu kᅵnnen. Erst dann schreibt er die neuen
Daten. Wie stark genau der Leistungsverlust durch ECC ist, hᅵngt vom
Chipsatz, dem Betriebssystem und der laufenden Software ab -
Erfahrungswerte gibt es keine.

In Desktop-Systemen macht ECC nur sehr begrenzt Sinn, da die
Fehlerraten bei heutigen Speichermodulen sehr klein sind. Sinn macht
der Einsatz von ECC vor allem in Servern, wo Daten Tage oder Wochen
im RAM stehen und damit die Wahrscheinlichkeit von kippenden Bits
erhᅵht ist. In solchen Servern wird aber hᅵufig in regelmᅵssigen
Abstᅵnden der Speicherinhalt komplett ausgelesen und neu geschrieben
("Memory Scrubbing"), um eben diese Fehler gar nicht erst zuzulassen.

Es gibt Chipsᅵtze, die zwingend Registered- und/oder ECC-SDRAM
benᅵtigen (z.B. ServerSet III von Server Works). Andererseits gibt
es auch Chipᅵtze und Mainboards, die mit ECC und/oder Registered
SDRAM nichts anfangen kᅵnnen (z.B. Intels i815 "Solano"; obwohl es
einige BIOSse von Mainboards gibt, die Registered DIMMs trotzdem
erkennen). Hier sollte man sich unbedingt vor dem RAM-Kauf
erkundigen, welcher RAM fᅵr die eigenen Ansprᅵche am ehesten
vernᅵnftig erscheint.


8.4.5 Speicher-Burst
====================

Nach dem Lesezugriff auf ein Speicherfeld ist der Inhalt der
kompletten Speicherzelle immer noch in den Sense Amps gepuffert. Das
gilt aber auch fᅵr alle anderen Speicherbausteine der aktiven Reihe
eines Speichermoduls, da ja alle diese Chips dieselben Befehle und
Adressen erhalten. Daher ist die Anzahl der Sense Amps eine wichtige
Grᅵsse fᅵr Speichermodule, und wird als "Page Size" bezeichnet. Je
nach Speicherorganisation betrᅵgt die Grᅵsse des Puffers durch die
Sense Amps 2, 4, 8 oder 16KByte.
Dieser Puffer wird im sog. Burst-Modus ausgenutzt: Werden aus der
gleichen Zeile des Speicherfeldes Daten angefordert, kann der
Speicher ohne erneute Adressierung mit nur einem Taktschritt
ausgegeben werden. Die Burst-Lᅵnge entspricht dabei maximal der
Anzahl der Spalten des Speicherfeldes. Die PC-SDRAM-Spezifikation
verlangt als mᅵgliche Burst-Lᅵngen jedoch nur 1, 2 oder 4 Daten.

Die Breite der Cache-Line des L2-Caches von Pentium-Prozessoren
betrᅵgt 32 Bytes. Das entspricht dem Vierfachen der
Speicherbusbreite von 64Bit. Intel Chipsᅵtze arbeiten daher mit einer
Burst Length von 4. Weil der AMD Athlon aber mit doppelt so langen
Cache-Lines arbeitet wie der Pentium, fordert z.B. der AMD
Irongate-Chipsatz (AMD 750) immer die Daten aus 8 Spalten einer Zeile
gleichzeitig an, was eine Burst-Length von 8 ermᅵglicht.

Das ist aber noch nicht notwendigerweise das Ende des optimierten
Zugriffs. Mᅵchte man beim nᅵchsten Lesezugriff Daten aus einer bereits
adressierten Speicherzeile haben ("Page Hit"), so fᅵllt nur noch die
CAS-Latency an Wartezeit an, da keine Zeilen-Adressᅵbergabe mehr
nᅵtig ist, es fᅵllt also keine RAS-to-CAS-Delay an.
Wenn rechtzeitig vor dem Ende eines Bursts eine neue Spaltenadress
empfangen wird, kann sich der nᅵchste Burst lᅵckenlos anschliessen.

Werden jedoch Daten aus einer anderen Speicherzeile angefordert
("Page Miss"), so mᅵssen die Sense Amps den aktuell gepufferten
Inhalt zurᅵckschreiben, da der Inhalt bei Lesevorgang gelᅵscht wird.
Die fᅵr den Rᅵckschreibvorgang benᅵtigte Zeit wird auch "RAS
Precharge Time" ("t_RP") genannt.

Nur wᅵrend des Bursts erreicht SDRAM seine maximale ᅵbertragungsrate.
Denn nur wenn wirklich bei jedem Taktschritt ein Datenwort ᅵbertragen
wird, stimmt die Rechnung von 8Byte x 100MHz = 800MB/s. fᅵr z.B.
PC100-SDRAM. Fallen Latenzzeiten an, sinkt logischerweise auch die
maximale Transferrate. Es gibt aber Tricks der Chipsᅵtze, mit denen
diese Latenzzeiten umgangen oder mᅵglichst vermieden werden kᅵnnen.


8.4.6 Tricks der Chipsᅵtze: Interleaving & Co.
==============================================

Wie ja jetzt bekannt ist, sind Speicherfelder in Bᅵnke aufgeteilt.
Jedes Speicherfeld verfᅵgt ᅵber eigene Sense Amps (zur Erinnerung:
Das waren die Lese- und Schreibverstᅵrker). Der Chipsatz kann nun
beim Abspeichern der Daten nicht nur zeilenweise in einer Bank
vorgehen, sondern er kann die Bits auch zeilenweise auf die Bᅵnke
verschachtelt verteilen. Beim Umschalten zwischen zwei Bᅵnken muss
zwar die Row-Active-to-Row-Active-Delay (t_RRD) eingehalten werden,
aber dadurch kommt es beim Burst-Zugriff nicht mehr zu Verzᅵgerungen:
Es ist jetzt mᅵglich, eine Bank zu adressieren, wᅵhrend eine andere
grade Daten liefert oder eben beschrieben wird. Grade beim Transport
von grossen Datenblᅵcken (sequenzieller Datenzugriff) lᅵsst sich so
geschickt eine grosse Anzahl von Adressiervorgᅵngen "verstecken".
Diese Verschachtelung von Zugriffen auf Speicherbᅵnke bezeichnet man
als "Bank Interleaving". 16MBit-Chips haben nur 2 interne Bᅵnke und
kᅵnnen deshalb (innerhalb eines Moduls) nur 2-Way-Interleaving
durchfᅵhren. Neuere Module mit 64MBit oder mehr pro Chip haben vier
interne Bᅵnke und beherrschen 4-Way-Interleaving.

Bank Interleaving bringt vor allem bei grossen Datenpaketen enorme
Vorteile. Fᅵr zufᅵllige Zugriffe auf kleine Speicherblᅵcke wird ein
anderer Trick verwendet, um hᅵhere Durchsᅵtze zu erziehlen: Die sog.
"Page Open Policy".
Als "Page" werden alle Zeilen mit gleicher Adresse in einer
bestimmten Bank aller Chips eines Moduls bezeichnet. Eine "geᅵffnete"
Page ist also nichts weiteres als eine Zeilenadresse, deren Inhalt
grade in den entsprechenden Sense Amps gepuffert wird. Wird nach
einem Zugriff auf diese bestimmte Page eine andere Bank angesprochen,
so kann der Chipsatz die erstgenannte Page offen halten, oder
schliessen. Das Schliessen erfolgt entweder durch Anlegen einer
anderen Adresse, oder durch das Verschicken des Precharge-Kommandos.
Im Auto-Precharge-Modus (AP-Modus) schliesst der Chipsatz
automatisch eine noch geᅵffnete Page. Hᅵlt jedoch der Chipsatz die
entsprechende Page offen, so kann bei einem entsprechenden spᅵteren
Zugriff ein Teil der notwendigen Adressierung eingespart werden. Es
stellt sich also ein "Page Hit" ein, der schneller als ein "Page Miss"
abgearbeitet werden kann.

Leider kann man eine Page nicht beliebig lang offen halten.
Spᅵtestens nach Ablauf des nᅵchsten Refresh-Intervalls mᅵssen die
Sense Amps freigegeben werden. Aber meist lange davor lᅵuft schon
die "Row Active Time" (t_RAS) ab, die ᅵblicherweise um die 100ᅵs
betrᅵgt, was immerhin 10.000 Takten bei 100MHz entspricht! Der
Parameter t_RAS hat auch einen Minimalwert, der dann besagt, wie
lange eine Page mindestens geᅵffnet sein muss, bevor sie der Chipsatz
via Precharge schliessen darf.

Die Summe aus t_RAS und t_RP, umgerechnet in Taktperioden, ergibt
die sog. "RAS Cycle Time" (t_RC).

Es lᅵsst sich nur sehr schwer abschᅵtzen, welches Ausmass an
Beschleunigung eine "Open Page Policy" gegenᅵber einer "Closed Page
Policy" gibt. Die gute Datenᅵbertragung des Intel 440BX bei
zufᅵlligen Speicherzugriffen wird jedoch der ausgeklᅵgelten Page
Policy zugeschrieben.


8.4.7 Zugriffe und ihre Zeiten / CL2 - CL2.5 - CL3?
===================================================

Der Wert "t_AC" wird in den Spezifikationen als "Output Valid From
Clock" bezeichnet; die Buchstaben "AC" deuten auf die unscharfe und
deshalb missverstᅵndliche Bezeichnung "Data Access Time", also auf
die Zugriffszeit hin.

Signale auf den Datenleitungen sind letztlich nichts anderes als
Spannungspegel. Da diese Pegel eine gewisse Einschwingzeit
benᅵtigen, braucht es einige Zeit, bis der Signalwert dem erwᅵnschten
Datenwert entspricht. Genau diese Einschwingzeit meint "t_AC". Bei
den ᅵlteren Typen (EDO, FPM) hingegen bezeichnet der Wert "t_RAC"
die Dauer zwischen Anlegen der Zeilenadresse und dem Bereitstellen
gᅵltiger Datenwerte. Bei FPM- und EDO-RAM ist die Zugriffszeit neben
maximalen Taktfrequenz das wesentlich entscheidende Kriterium fᅵr den
maximal erreichbaren Datendurchsatz.
Bei SDRAM hingegen beeinflussen neben der Taktfrequenz auch noch
die Latenzzeiten CL, t_RCD und t_RP noch die "Zugriffszeit". Trotzdem
bleibt t_AC eine wichtige Kenngrᅵsse: Hᅵlt ein Speicherchip den fᅵr
eine Frequenzklasse spezifizierten Wert nicht ein, so entstehen daraus
beim Zugriff auf den SDRAM Datenfehler.

Die "Zugriffszeiten" von z.B. EDO- und SDRAM weichen damit stark
voneinander ab, was eben durch den Unterschied von t_AC zu t_RAC
bedingt ist; SDRAMs sind also nicht notwendigerweise durch die
kleineren Zahlen bei der Zugrffszeit schneller.
Frᅵher galt: Je geringer die Zugriffszeit der RAM-Module, desto
hᅵheren Takt machen sie mit bzw. desto aggressiver kann das
RAM-Timing eingestellt werden. Dies ist auch heute noch so, nur ist
dies zugunsten anderer Bezeichnungen aus dem Bewusstsein verschwunden.
Typische Zugriffszeiten liegen bei Fastpage-DRAM bei 100 (alte
30-Pin-SIMMs) bis zu 60 ns (spᅵte 30-Pin- und PS/2-SIMMs), Zu
486er-Zeiten hatten PS/2-SIMMs oft Zugriffszeiten von 70 ns.
EDO-DRAM wurde in PC ᅵblicherweise mit 60 ns Zugriffszeit verbaut;
gleichwohl fanden sich auf Grafikkarten auch Chips mit 35 ns.

Hier eine Tabelle der Kennwerte fᅵr SDR-SDRAM DIMMs:

Parameter |Symbol|Einheit| PC66 | PC100| PC133
=========================+======+=======+======+======+=======
Taktperiode, Zykluszeit |t_CK | [ns] | 15 | 10 | 7.5
-------------------------+------+-------+------+------+-------
CAS Latency = 2 | CL | [ns] | 30 | 20 | 15
-------------------------+------+-------+------+------+-------
CAS Latency = 3 | CL | [ns] | 45 | 30 | 22.5
-------------------------+------+-------+------+------+-------
RAS-to-CAS-Delay = 2 |t_RCD | [ns] | 30 | 20 | 15
-------------------------+------+-------+------+------+-------
RAS-to-CAS-Delay = 3 |t_RCD | [ns] | 45 | 30 | 22.5
-------------------------+------+-------+------+------+-------
RAS Precharge Time = 2 |t_RP | [ns] | 30 | 20 | 15
-------------------------+------+-------+------+------+-------
RAS Precharge Time = 3 |t_RP | [ns] | 45 | 30 | 22.5
-------------------------+------+-------+------+------+-------
Output Valid from Clock |t_AC | [ns] | 9 | 6 | 5.4
-------------------------+------+-------+------+------+-------
Sonderfall (1): |t_AC | [ns] | 10 | 7 | 7.0
Output Valid from Clock | | | | |
-------------------------+------+-------+------+------+-------
RAS Cycle Time bei t_RP=3|t_RC |[Takte]| 8 | 8 | 9
-------------------------+------+-------+------+------+-------
RAS Cycle Time bei t_RP=2|t_RC |[Takte]| 8 | 7 | 8
-------------------------+------+-------+------+------+-------
RAS Active Time |t_RAS |[Takte]| 5 | 5 | 6
-------------------------+------+-------+------+------+-------

(1) Bei nur 2 verwendeten SDRAM-Reihen im System (2 einseitige oder
ein doppelseitiges DIMM)

Immer wieder taucht die Frage auf, welcher RAM denn schneller ist,
und fᅵr welche Latenzzeiten dies gilt. In der Regel sieht diese
Reihenfolge so aus (">" steht fᅵr "schneller als"):
PC133-222 > PC133-333 > PC100-222 > PC100-333. Es gibt aber bei
Speicherzugriffen durchaus einige Ausnahmefᅵlle, wo das so nicht
mehr ganz zutrifft. Ausserdem ist der Geschwindigkeitsgewinn von
z.B. PC133-222 gegenᅵber PC133-333 ᅵusserst gering (2-5% maximal).

ᅵhnliche Zahlen lassen sich selbstverstᅵndlich auch fᅵr DDR-SDRAM
angeben. Der ᅵberrsichtlichkeit halber und ob der etwas anderen
Nomenklatur bei DDR-SDRAM ist die Tabelle etwas anders aufgestellt.
Zykluszeiten, CAS-Latency, Delay-Zeiten, Precharge Time und RAS Cycle
Zeiten sind alle in Nanosekunden [ns] angegeben.

Modulbe- |Chiptyp|Timing |Frequenz|Zyklus- | CAS- |t_RCD|t_RP|t_RAS
zeichnung| | | [MHz] |zeit |Latency| | |
---------+-------+-------+--------+--------+-------+-----+----+-----
PC1600 |DDR200 |2,0-2-2| 100 | 10 | 20 | 20 | 20 | 50
---------+-------+-------+--------+--------+-------+-----+----+-----
PC2100 |DDR266B|2,5-3-3| 133 | 7.5 | 18.75 | 22.5|22.5| 45
---------+-------+-------+--------+--------+-------+-----+----+-----
PC2100 |DDR266A|2,0-3-3| 133 | 7.5 | 15 | 22.5|22.5| 45
---------+-------+-------+--------+--------+-------+-----+----+-----
PC2100 |DDR266 |2,0-2-2| 133 | 7.5 | 15 | 15 | 15 | 45
|(Intel)| | | | | | |
---------+-------+-------+--------+--------+-------+-----+----+-----
PC2700 |DDR333B|2,5-3-3| 166 | 6 | 15 | 18 | 18 | 42
---------+-------+-------+--------+--------+-------+-----+----+-----
PC2700 |DDR333A|2,0-3-3| 166 | 6 | 12 | 18 | 18 | 42
---------+-------+-------+--------+--------+-------+-----+----+-----
PC3200 |DDR400C|3,0-4-4| 200 | 5 | 15 | 20 | 20 | 40
---------+-------+-------+--------+--------+-------+-----+----+-----
PC3200 |DDR400B|3,0-3-3| 200 | 5 | 15 | 15 | 15 | 40
---------+-------+-------+--------+--------+-------+-----+----+-----
PC3200 |DDR400A|2,5-3-3| 200 | 5 | 12.5 | 15 | 15 | 40

Auch hier stellt sich die Frage, welche Timings wann welchen
Geschwindigkeitsvorteil bringen. Aber auch hier hᅵngen diese Vorteile
sehr vom Chipsatz bzw. Mainboard und natᅵrlich von den Anwendungen ab.
Wer nur die Wahl z.B. zwischen PC2700 2,0-3-3 und 2,5-3-3 zu treffen
hat, der muss sich diese Frage normalerweise gar nicht erst stellen:
der zu erwartende Performancevorteil macht sich in der Praxis kaum
bemerkbar - ausser vielleicht im Geldbeutel. Hier gilt: oft ist die
schnellere CPU eine deutlich bessere Investition als ein sᅵndhaft
teures Modul nach PC2700 CL2 oder gar PC3200 CL2.

Als neuester Vertreter hat sich DDR-II SDRAM hinzu gesellt. Auch hier
lᅵsst sich der Vergleich aufstellen:

Modulbe- |Chiptyp |Timing |Frequenz|Zyklus-| CAS- |t_RCD|t_RP |t_RAS
zeichnung| | | [MHz] | zeit |Latency| | |
---------+--------+-------+--------+-------+-------+-----+-----+------
PC2-3200 |DDR2-400| 4-4-4 | 200 | 5 | 20 | 20 | 20 | 45
---------+--------+-------+--------+-------+-------+-----+-----+------
PC2-3200 |DDR2-400| 3-3-3 | 200 | 5 | 15 | 15 | 15 | 45
---------+--------+-------+--------+-------+-------+-----+-----+------
PC2-4300 |DDR2-533| 5-5-5 | 266 | 3.75 | 18.75 |18.75|18.75| 45
---------+--------+-------+--------+-------+-------+-----+-----+------
PC2-4300 |DDR2-533| 4-4-4 | 266 | 3.75 | 15 | 15 | 15 | 45
---------+--------+-------+--------+-------+-------+-----+-----+------
PC2-4300 |DDR2-533| 3-3-3 | 266 | 3.75 | 11.25 |11.25|11.25| 45
---------+--------+-------+--------+-------+-------+-----+-----+------
PC2-5300 |DDR2-667| 4-4-4 | 333 | 3 | 12 | 12 | 12 | 45
---------+--------+-------+--------+-------+-------+-----+-----+------

8.4.8 Auf dem Modul
===================

Damit der User mit einem DIMM nicht allzu ungewiss da steht, sollten
sich auf den Modulen Aufkleber befinden, die genauen Aufschluss
darᅵber geben, was man da nun wirklich in der Hand hᅵlt. Leider gibt
es hier voneinander abweichende Spezifikationen.

Intelᅵs PC133-Spezifikation Rev. 1.7 (siehe dazu auch
ftp://download.intel.com/technology/memory/pc133sdram/spec/sdram133.pdf)
definiert die Parameter folgendermassen:
"PCxxx-abc-defG", mit:
- xxx = Modulbezeichnung nach Taktfrequenz, siehe 8.4.10
- a = CAS Latency, kurz CL [Takte]
- b = RAS-to-CAS-Delay, kurz t_RCD [Takte]
- c = RAS Precharge Time, kurz t_RP [Takte]
- d = t_AC, Output Valid From Clock [ns]
- e = SPD-EEPROM-Version
- f = (Reserviert)
- G = kein Buchstabe oder "R" fᅵr Registered DIMM (gepufferte
Ausfᅵhrung)

Die langsamsten DIMMs fᅵr PC100 tragen also die Bezeichnung
"PC100-333-620". Das schnellste DIMM fᅵr PC133 mᅵsste als
"PC133-222-520" ausgezeichnet sein.

Leider definiert VIAs PC133-Spezifikation Rev. 0.4 (siehe dazu auch
http://www.via.com.tw/pdf/validation/PC133Urev040.pdf) die Angabe
der Parameter etwas anders:
"PC133m-abc-dde", mit:
- m = U fᅵr Unbuffered (die VIA-Spec gibts nur fᅵr Unbuffered DIMMs)
- a = CAS Latency, kurz CL [Takte]
- b = RAS-to-CAS-Delay, kurz t_RCD [Takte]
- c = RAS Precharge Time, kurz t_RP [Takte]
- dd = t_AC, Output Valid From Clock [ns], ohne Komma: "54" steht fᅵr
die fᅵr PC133-DIMMs geforderten 5.4 ns
- e = SPD-EEPROM-Version nach JEDEC, meist die Ziffer "2"

Fᅵr DDR-SDRAM sollten ebenfalls solche Aufkleber auf den Modulen zu
finden sein:
PCxxxxG-aabc
- xxxx = Modulbezeichnung nach Taktfrequenz, siehe 8.4.10
- aa = CAS Latency, kurz CL [Takte]
- b = RAS-to-CAS-Delay, kurz t_RCD [Takte]
- c = RAS Precharge Time, kurz t_RP [Takte]
- G = kein Buchstabe oder "R" fᅵr Registered DIMM (gepufferte
Ausfᅵhrung)

Dummerweise findet man diese Angaben aber selten vollstᅵndig vor.
Oft findet man Kᅵrzel wie "PC133-3" oder ᅵhnliches. Hier wird hᅵufig
nur die CAS Latency (CL) angegeben, und nimmt danach an, dass die
anderen beiden Werte t_RCD und t_RP den gleichen Wert annehmen.


8.4.9 Serial Presence Detect - SPD
==================================

Das waren noch Zeiten: Bei der Verwendung von EDO- und FPM-RAM war
es noch die Aufgabe des Users, ᅵber das BIOS die "richtigen"
Speichertimings im BIOS einzutragen. Dabei war die Anzahl der
Parameter aber noch ᅵberschaubar.
Das ist seit den SDRAMs nicht mehr der Fall, hier mᅵssen ᅵusserst
viele Parameter eingestellt werden. Damit das nicht Aufgabe des
Users wird, sollte alle DIMMs mit sogenannten
"SPD(Serial-Presence-Detect)-EEPROMS" ausgestatten sein. In diesen
kleinen Chips sind alle Infos enthalten, die der Chipsatz braucht,
um beim Bootvorgang den Speicher richtig zu initialisieren. Dabei
kᅵnnen die einzelne Werte auch wᅵhrend dem Bootvorgang vom Chipsatz
ᅵberschrieben werden, etwa um die CAS Latency manuell zu ᅵndern etc.
Die Daten im SPD-EEPROM (2KBit gross) kᅵnnen vom System via "System
Management Bus" (SMB) ausgelesen werden (der Bus ist eine Variante
des IᅵC-Bus). Nach aktueller Spezifikation 1.2B (zu finden unter
http://developer.intel.com/technology/memory/pcsdram/spec/index.htm;
baut auf der alten JEDEC-Spec. vom Juli 1996 auf, die sich unter
http://www.jedec.org/download/pub21/default.cfm befindet) sind
jedoch nur nur 128KB Nutzdaten vorgesehen.

Nicht nur Speicherzellen kᅵnnen defekt sein, auch das SPD-EEPROM
kann durchaus defekt oder schlecht (bzw. falsch) programmiert sein.
Um dies zu testen, gibt es das Testprogramm "ctSPD" unter
http://www.heise.de/ct/ftp/ctspd.shtml, welches man sich unbedingt
downloaden sollte, da grade das SPD hᅵufig eine Fehlerursache ist.


8.4.10 Speicher-Bandbreite
==========================

Unterschiedlicher RAM hat auch unterschiedlich hohe Bandbreiten. Um
hier den ᅵberblick nicht zu verlieren, gibt es hier eine Tabelle,
in der die maximalen Bandbreiten angegeben sind. Nicht vergessen
sollte man jedoch dabei, dass die tatsᅵchliche Bandbreite enorm von
der Angegebenen abweichen kann. Angefᅵhrt sind hier auch noch nicht
fertig spezifizierte und daher nicht erhᅵltliche RAM-Arten.

Theoretische Bandbreite derzeitiger RAM-Module
==============================================

DRAM-Typ | Name | RAM- | DDR/ | Bus- | 1 Kanal | 2 Kanal
| | Speed | QDR | Breite | Bandbreite | Bandbreite
| | [MHz] | | [Bit] | [MByte/s] | [MByte/s]
==========+===========+=======+======+========+============+===========
SDRAM | PC66 | 66 | - | 64 | 533 | 1066
|-----------+-------+------+--------+------------+-----------
| PC100 | 100 | - | 64 | 800 | 1600
|-----------+-------+------+--------+------------+-----------
| PC133 | 133 | - | 64 | 1066 | 2133
|-----------+-------+------+--------+------------+-----------
| PC150(1) | 150 | - | 64 | 1200 | 2400
----------+-----------+-------+------+--------+------------+-----------
DDR- | PC1600 | 100 | DDR | 64 | 1600 | 3200
SDRAM | DDR-200 | | | | |
|-----------+-------+------+--------+------------+-----------
| PC2100 | 133 | DDR | 64 | 2133 | 4266
| DDR-266 | | | | |
|-----------+-------+------+--------+------------+-----------
| PC2400(1) | 150 | DDR | 64 | 2400 | 4800
|-----------+-------+------+--------+------------+-----------
| PC2700 | 166 | DDR | 64 | 2666 | 5333
| DDR-333 | | | | |
|-----------+-------+------+--------+------------+-----------
| PC3200 | 200 | DDR | 64 | 3200 | 6400
| DDR-400 | | | | |
|-----------+-------+------+--------+------------+-----------
| PC3500(1) | 217 | DDR | 64 | 3466 | 6933
| DDR-433(1)| | | | |
----------+-----------+-------+------+--------+------------+-----------
QDR- | PC1600 | 100 | QDR | 64 | 3200 | 6400
SDRAM | QDR-400 | | | | |
|-----------+-------+------+--------+------------+-----------
| PC2100 | 133 | QDR | 64 | 4266 | 8533
| QDR-533 | | | | |
|-----------+-------+------+--------+------------+-----------
| PC 2700 | 166 | QDR | 64 | 5333 | 10666
| QDR-666 | | | | |
----------+-----------+-------+------+--------+------------+-----------
DDR-II | PC2-3200 | 200 | DDR | 64 | 3200 | 6400
SDRAM | DDR2-400 | | | | |
|-----------+-------+------+--------+------------+-----------
| PC2-4300 | 266 | DDR | 64 | 4266 | 8533
| DDR2-533 | | | | |
|-----------+-------+------+--------+------------+-----------
| PC2-5300 | 333 | DDR | 64 | 5333 | 10666
| DDR2-667 | | | | |
----------+-----------+-------+------+--------+------------+-----------
Rambus | PC600(2) | 266 | DDR | 16 | 1066 | 2133
|-----------+-------+------+--------+------------+-----------
(2x16d- | PC600 | 300 | DDR | 16 | 1200 | 2400
RDRAM) |-----------+-------+------+--------+------------+-----------
| PC700(3) | 300 | DDR | 16 | 1200 | 2400
|-----------+-------+------+--------+------------+-----------
| PC700(4) | 354 | DDR | 16 | 1424 | 2848
|-----------+-------+------+--------+------------+-----------
| PC800(5) | 400 | DDR | 16 | 1600 | 3200
----------+-----------+-------+------+--------+------------+-----------
Rambus | PC1066 | 533 | DDR | 16 | 2133 | 4266
Hastings |-----------+-------+------+--------+------------+-----------
4i-RDRAM | PC1200 | 600 | DDR | 16 | 2400 | 4800
----------+-----------+-------+------+--------+------------+-----------
Rambus | PC3200 | 400 | DDR | 32 | 3200 | - (6)
| RIMM 3200 | | | | |
|-----------+-------+------+--------+------------+-----------
| PC4266 | 533 | DDR | 32 | 4266 | - (6)
| RIMM 4200 | | | | |
32 Bit |-----------+-------+------+--------+------------+-----------
Module | PC4800 | 600 | DDR | 32 | 4800 | - (6)
| RIMM 4800 | | | | |
----------+-----------+-------+------+--------+------------+-----------
Rambus | PC8533 | 533 | DDR | 64 | 8533 | - (6)
64 Bit |-----------+-------+------+--------+------------+-----------
Module | PC9600 | 600 | DDR | 64 | 9600 | - (6)
----------+-----------+-------+------+--------+------------+-----------

(1) PC 150, PC 2400 und PC 3500 sind keine Spezifikationen im echten
Sinne; es sind lediglich Bezeichnungen von ᅵbertakteten Modulen
nach PC133-, PC2100- und PC3200-Standard
(2) Wird der Prozessor mit 133 MHz FSB betrieben, lᅵuft Rambus PC600
nur mit 266 MHz statt mit 300 MHz
(3) Wird der Prozessor mit 100 MHz FSB betrieben, lᅵuft Rambus PC700
nur mit 300 MHz statt mit 354 MHz
(4) Rambus PC 700 lᅵuft nur auf dem Chipsatz Intel i820
(5) Rambus PC 800 lᅵuft immer mit 400 MHz, egal wie der FSB betrieben
wird
(6) 32Bit- und 64Bit-RIMMs werden (noch) nicht in Dual-Channel-
Konfiguration verwendet, da dies bereits im Modul geschieht


8.5 Test von RAM
================

Mit genᅵgender Sicherheit kann man defekte RAM-Module nur im Labor
ermitteln. Somit kann man mit Programmen zum Speichertest eigentlich
nur Fehler nachweisen, nicht aber die Fehlerfreiheit. Eine Aussage auf
die Fehlerfreiheit auf dem betrefffenden Board ist jedoch
nichtsdestotrotz mᅵglich.

8.5.1 Wann sollte man einen Speichertest durchfᅵhren?
=====================================================

Verdachtsmomente sind:
* Instabilitᅵt des Systems
* Hᅵufung von Bluescreens (Windows)
* Windows lᅵsst sich nicht installieren


8.5.2 Programme zum Speichertest
================================

* ctramtst 5.1, deutsch: http://www.heise.de/ct/ftp/
Achtung, inkompatibel mit Voodoo-Grafikkarten!
* Memtest86, englisch: http://www.memtest86.com/
* AleGr Memtest, englisch:
http://www.aha.ru/~alegr/download/memtest_en.htm
Sehr grᅵndlicher, aber leider nicht mehr weiterentwickelter
Speichertester. Ist nicht kompatibel mit neueren Chipsᅵtzen.


8.6 Was man bei der Speicheraufrᅵstung beachten muss
===================================================

8.6.1 Bauform und Bestᅵckung
============================

Man sollte natᅵrlich vorher nachsehen, was fᅵr Speichermodule der
Rechenknecht denn haben will. Bei ᅵlteren Rechnern sind dies meist
PS/2-SIMMs (weisse Sockel, meistens EDO-RAM), bei neueren DIMMs
(lᅵngere braune Sockel, zumeist SDRAM [168-polig] oder DDR-SDRAM
[184-polig]) oder seltener RIMMs (Rambus-DRAM, 184-polig). Bei sehr
alten Rechnern findet man 30-Pin-SIMMs (ausnahmlos Fastpage; leider
gehᅵren dazu wie zu PS/2-SIMMs weisse Sockel, aber meistens sind
hier 8 Stᅵck oder mehr vorhanden, wᅵhrend Sockel fᅵr PS/2-SIMMs
meistens zu viert auftauchen). In Rechnern mit 64-Bit-Speicherbus
(also Pentium oder hᅵher) mᅵssen PS/2-SIMMs immer paarweise
eingesetzt werden; dies trifft auch fᅵr einige 486er-Boards zu
(nᅵmlich solche mit dem i420 "Saturn", in denen man gleichzeitig
auch nur Fastpage-Module einsetzen kann, keine EDOs). 30-Pin-SIMMs
(bei PCs meistens mit Paritᅵt, gelegentlich auch mit Dummy-Paritᅵt)
mᅵssen bei 286- und 386SX-Systemen paarweise, bei 386DX- und
486-Systemen gleich im Viererpack eingesetzt werden. Bei bestimmten
Chipsᅵtzen (i840, i850/E, i860) mᅵssen Rambus-Module paarweise
verbaut werden, bei anderen Chipsᅵtzen (nVidia nForce 1 und 2,
i7205, i865, i875 etc.) ist das Einsetzen von 2 DIMMs zur
Verdopplung der Speicherbandbreite optional.
Auf einigen Sockel-7-Boards kann man sowohl PS/2-SIMMs als auch
SDRAM-DIMMs betreiben, allerdings selten zusammen - tut man dies
trotz der Warnung im Handbuch (es gab aber einen Fall, in dem dies
auch fᅵlschlicherweise zugelassen wurde), kann es passieren, dass
man die DIMMs mit 5V grillt.
Alle Modultypen sind zum Glᅵck verpolungssicher. (Wobei es mancher
schon geschafft hat, 3.5"-Disketten verkehrtherum einzuliegen,
obwohl das eigentlich auch nicht geht - also: Keine Gewalt gegen
Speichermodule! ;) Einzig PS/2-Module mit Fastpage- oder EDO-RAM
kommen in gleicher Bauform daher - alle anderen Module passen nicht
in fremde Slots.

Es gibt im ᅵbrigen Adapter, um je vier 30-Pin-SIMM-Module in
PS/2-Slots zu betreiben. Das macht aber meist keinen Sinn, da diese
Adapter oft teuer sind und 30-Pin-SIMMs meist nur eine recht geringe
Kapazitᅵt haben. Weiterhin sind 30-Pin-SIMMs ᅵblicherweise langsamer
als PS/2-Module. Diese Adapter waren interessant, als 16 MB RAM noch
1000 Mark und mehr kosteten.


8.6.2 Achtung, Chipsatzbeschrᅵnkungen!
======================================

Das bloᅵe Vorhandensein entsprechender Speichersockel bedeutet noch
lange nicht, dass man dort beliebig grosse oder beliebig
organisierte Module des jeweiligen Speichertyps einsetzen kann!

ᅵltere 386er- und 486er-Boards mit 30-Pin-Sockeln schlucken des
ᅵfteren keine 4-MiB-Module mit 3 statt 9 Chips. Noch ᅵltere 286er-
und 386er-Boards (1990/91 und frᅵher) kommen oft nur mit
1-MB-Modulen zurecht.
Bei 486ern mit PS/2-Sockeln muss man insofern aufpassen, als daᅵ
einerseits viele VLB-486er bzw. deren Chipsᅵtze gar nichts mit
EDO-DRAM anzufangen wissen, andererseits selbst bei prinzipieller
Funktion noch manche Tᅵcken lauern kᅵnnen; so kann man z.B. mit dem
i420 EDO-Module nicht paarweise betreiben - offenbar kann der
Speichercontroller bei der Nutzung von Interleaving EDOs nicht
korrekt ansteuern. Eine gᅵngige maximale Chipkapazitᅵt bei 486ern
ist 16 MBit mit 4Mx4-Chips (4Mx1 funktionieren dann auch), "breite"
Chips (x8 etc.) mᅵgen sie i.d.R. nicht.

Auf Boards mit Intels 430VX-Chipsatz finden sich oft sowohl Sockel
fᅵr PS/2-SIMMs als auch fᅵr SDRAM-DIMMs. Letztere verlocken dazu,
schnell mal ein billiges neues SDRAM-Modul einzubauen, was aber
entweder dazu fᅵhrt, dass das Modul nicht passt (weil es leider
doch ein Sockel fᅵr EDO- und nicht fᅵr SDRAM-DIMMs war), gar nichts
geht (die PS/2-SIMMs mᅵssen vorher ᅵbrigens raus und die Spannung
fᅵr den Speicher will auf 3.3 V statt 5 V eingestellt sein, sonst
gibt's SDRAM-Toast!) oder nur ein Bruchteil des Moduls erkannt wird.
Wenn gar nichts geht, liegt das daran, dass heutige DIMMs
4-clock-Module sind (4 unabhᅵngige Taktsignale), wᅵhrend v.a. frᅵhe
SDRAM-Boards noch auf 2-clock-Module ausgelegt sind. Wenn nur ein
Bruchteil des Speichers erkannt wird, ist der Chipsatz schuld: Der
i430VX unterstᅵtzt Speicherchips von maximal 16 MBit, macht bei
einem Module mit 16 Stᅵck davon 32 MByte. Solche alten PC66-Module
sind nicht besonders leicht zu finden.

Nicht ganz so schlimm sieht es bei dem beliebten 440BX-Chipsatz (und
dessen "kleinem Bruder", dem i440ZX) von Intel aus: Dieser
unterstᅵtzt ohne weiteres Speicherchips von bis zu 64 MBit, wird bei
128-MBit-Chips aber wᅵhlerisch: 16Mx8 soll es sein, nicht 32Mx4,
sonst wird nur das halbe Modul erkannt. Ein mit den richtig
organisierten Chips bestᅵcktes 256-MiB-SDRAM-Modul hat folglich 16
Stᅵck davon (Beispiel: Infineon HYS64V32220GU-7/7.5), oder 18 Stᅵck
bei einem Modul mit ECC. 512 MiB oder grᅵᅵeres kann man ganz
vergessen. 256-MBit-Chips mag der BX nicht besonders - 256-MiB-Module
mit 8 Chips singlesided werden nur halb erkannt, 128-MiB-Module mit 4
Chips funktionieren gar nicht. Bei Einsatz von drei oder mehr
Speichermodulen wird die Verwendung von Registered-DIMMs empfohlen,
nur dummerweise schlucken einige BX-Boards lediglich
Unbuffered-Module, zudem ist die benᅵtigte Sorte von Registered-
Modulen mit 32 bzw. 36 16Mx4-Chips alles andere als hᅵufig
anzutreffen, auch der gleichzeitige Betrieb von Registered- und
Unbuffered-DIMMs ist grundsᅵtzlich nicht mᅵglich. Damit bleibt also
zumeist nur der Betrieb ausschlieᅵlich mit Unbuffered-DIMMs, wobei
sich gezeigt hat, daᅵ bei 100 MHz Systemtakt durchaus auch vier
Doublesided-Module, bei 133 MHz noch drei stabil laufen (allerdings:
YMMV).
Quasi identische Beschrᅵnkungen bezᅵglich der Chiporganisation hat
AMDs 750er-Chipsatz, der allerdings von vornherein nur 768 MiB RAM
unterstᅵtzt.
Der auf Xeon- und manchen Slot-1-Dualboards verbaute i440GX sollte
sich ᅵhnlich verhalten wie der BX, nur "eine Etage hᅵher" - bei
512-MB-Riegeln sollten 32Mx8-Chips (unbuffered) bzw. 32Mx4-Chips
(registered) verbaut sein.

Noch etwas: Ebenso wie der i440BX unterstᅵtzen offenbar auch der
i440LX und evtl. der i430TX 16Mx8-Chips, obwohl laut Datenblatt
maximal 64 MBit groᅵe Chips vorgesehen waren. (Dies ist insofern
erklᅵrlich, als daᅵ z.B. der i440LX genausoviele Adreᅵleitungen hat
wie der i440BX.) Verifiziert werden konnte die Funktion mit einem
128-MiB-DIMM von Infineon mit 8x 16Mx8 auf einem Asus P2L97-DS mit
i440LX, die Erkennung eines 256-MiB-Exemplars mit 16Mx8-Chips
scheiterte zunᅵchst am zu alten Board-BIOS von Anfang '99, wᅵhrend es
mit dem letzten von 2001 dann ohne weiteres lief. Eine
Funktionsgarantie in jedem Fall kann aber nicht gegeben werden
(schlieᅵlich spielen auch Boarddesign und BIOS eine Rolle). Beim
i430TX kommt erschwerend hinzu, daᅵ dessen L2-Cache maximal 64 MiB
des Speichers abdeckt, sofern man keinen AMD K6-3, K6-2+ oder K6-3+
einsetzt.
Support fᅵr 16Mx8-Chips scheint auch in einigen anderen Chipsᅵtzen
vorhanden zu sein, die offiziell nur 64-MBit-Chips schlucken - da
wᅵre z.B. der VIA MVP3 zu nennen.

Eine Beschrᅵnkung noch etwas anderer Art als beim BX lauert bei
Intels 810- und 815-Chipsᅵtzen: Diese unterstᅵtzen insgesamt maximal
512 MB RAM. Zudem lassen sich bei 133 MHz Speichertakt (falls
verfᅵgbar) nur noch 2 statt 3 doppelseitige Module einsetzen. Der
i810 hat sonst die gleichen Beschrᅵnkungen wie der i440BX. x4
organisierte Module werden von neueren Intel-Chipsᅵtzen fᅵr SDRAM
nicht unterstᅵtzt; diese verfᅵttert man besser an VIA-bestᅵckte
Boards. 512-MB-SDRAM-Module mit 64Mx4-Chips, wie sie vor einer Weile
billig als "nur fᅵr VIA geeignet" angeboten wurden, sind eigentlich
nur in Registered-Ausfᅵhrung zulᅵssig, unbuffered hingegen nicht -
so wundert es kaum, daᅵ der Betrieb dieses Schrotts selbst auf
Boards mit VIA-Chipsᅵtzen einem Glᅵcksspiel gleichkam.

Welcher Chipsatz wie groᅵe Speicherchips unterstᅵtzt, kann man
nachlesen...
a) in 2.2.1 und 2.2.3 oder
b) http://users.erols.com/chare/chipsets.htm


8.6.3 Markenspeicher oder nicht?
================================

Grundsᅵtzlich empfiehlt es sich, Marken-Speichermodule etwa von
Infineon, Samsung, Kingston, Micron, Corsair und anderen namhaften
Firmen einzusetzen. Dies ist zwar keine Garantie dafᅵr, daᅵ man nicht
doch einmal ein fehlerhaftes Modul bekommen kᅵnnte, zudem sind auch
Marken-Module nicht immer perfekt (so machen z.B. DDR-SDRAM-Module von
Infineon zuweilen Probleme, wᅵhrend deren SDRAM-Module ja schon quasi
Referenzstatus hatten). Genauso kᅵnnen auch Nonames einwandfrei
funktionieren und mit (zumindest fast) fehlerfreiem SPD-EEPROM (siehe
8.4.9) daherkommen, allerdings kann es bei Nonames eher mal passieren,
daᅵ man ein fehlerhaftes Modul bekommt. Weiterhin bereiten sie
hᅵufiger Probleme, wenn mehrere RAM-Module zusammenarbeiten mᅵssen,
wobei die Last am Datenbus sich mit jedem Modul erhᅵht und die
Datensignale immer mehr verschleifen. Module mit von sich aus
"saubereren" Signalen (aus leicht einsichtigen Grᅵnden wird man diese
bei billigen Produkten zweifelhafter Herkunft und Bestᅵckung weniger
oft antreffen als bei hochwertigeren Modulen) sind in solchen Fᅵllen
im Vorteil. Hier daher die Links zu wichtigen Speicherherstellern:

Apacer http://www.apacer.com
Buffalo http://www.buffalo-technology.com
Corsair http://www.corsairmemory.com
Crucial http://www.crucial.com
Dataram http://www.dataram.com
Elpida http://www.elpida.com
Geil (Golden Emperor) http://www.geil.com.tw
Hynix http://www.hynix.com
Infineon http://www.infineon.com
Kingmax http://www.kingmax.com.tw
Kingston http://www.kingston.com
Kingston ValueRAM http://www.valueram.com
http://www.legacyelectronics.com
Memory Solution http://www.memorysolution.de
MDT/MCI http://www.mci.de
Micron http://www.micron.com
Mosel Vitelic http://www.moselvitelic.com
MSC http://www.msc-ge.com
Mushkin http://www.mushkin.com
Nanya http://www.nanya.com
NEC http://www.necel.com
PNY Technologies http://www.pny-europe.com
ProMOS http://www.promos.com.tw
Samsung http://www.samsungsemi.com
Simple http://www.simpletech.com
Swissbit http://www.swissbit.ch
Texas Instruments http://www.ti.com
Transcend http://www.transcendusa.com
TwinMOS http://www.twinmos.com
Viking Interworks http://www.vikingcomponents.com
Winbond http://www.winbond-usa.com

Eine noch grᅵssere Auswahl auch von unbekannteren Herstellern findet
sich unter http://www.heise.de/ct/Redaktion/ciw/speicherlinks.html

0 new messages