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. See reader questions & answers on this topic! - Help others by sharing your knowledge 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 User Contributions: |
Comment about this article, ask questions, or add new information about this topic: