Was ist "EC4"-ECC fĂĽr die RAM-Fehlerkorrektur?

Was unterscheidet die ECC-Varianten EC4 und EC8 bei DDR5-Speichermodulen?

vorlesen Druckansicht
Lesezeit: 3 Min.

Meinen Eigenbau-Server möchte ich mit der Fehlerkorrektur Error Correction Code (ECC) für den DDR5-Hauptspeicher ausstatten. Mir ist klar, dass das nur in speziellen Kombinationen von CPU, Mainboard und Speicherriegeln klappt. Nun bin ich darauf gestoßen, dass es DDR5-ECC-DIMMs offenbar für die unterschiedlichen ECC-Varianten EC4 und EC8 gibt. Was ist der Unterschied?

Ein DDR5-ECC-UDIMM (oben) hat pro Rank zwei Speicherchips mehr als ein ECC-untaugliches (unten).

Die kurze Antwort lautet: Wenn Sie die fĂĽr kleine Server ĂĽblichen, ungepufferten Module (UDIMMs) einsetzen, spielt es keine Rolle.

Der technische Hintergrund ist kompliziert. Grundsätzlich berechnet der Speichercontroller in der CPU den ECC, bevor er ihn gemeinsam mit den Nutzdaten über den Speicherkanal ins Dual Inline Memory Module (DIMM) schreibt. Um die zusätzlichen ECC-Daten zu speichern, hat ein ECC-DIMM im Vergleich zu einem Non-ECC-DIMM mehr Speicherchips, also höhere Bruttokapazität. Anhand der redundanten Informationen im ECC kann der Speichercontroller beim Lesen dann alle Ein-Bit-Fehler korrigieren und sämtliche Zwei-Bit-Fehler erkennen: Single Error Correction, Double Error Detection (SECDED).

Ebenso wie alle älteren Generationen der Double-Data-Rate-(DDR-)Speichertechnik für PCs und Server hat ein DDR5-DIMM 64 Datensignalleitungen für Nutzdaten (x64). Doch anders als noch bei DDR4 spaltet DDR5 den Kanal in zwei x32-Hälften (Subchannels) auf. Deshalb muss der Speichercontroller den ECC für jeden Subkanal separat erzeugen und prüfen – und folglich benötigen DDR5-ECC-DIMMs für jeden Subkanal separate ECC-Speicherchips.

Bei ungepufferten DIMMs (UDIMMs) sieht die DDR5-Spezifikation pro Subkanal vier Datenleitungen für ECC vor: EC4. Das sind also insgesamt für alle 64 Datenleitungen acht ECC-Bits, ebenso wie bei den Vorgängern DDR4, DDR3 und so weiter. Bei Registered DIMMs (RDIMMs) mit DDR5 sind es hingegen acht Leitungen pro Subkanal (EC8). Es gibt aber auch billigere RDIMMs mit weniger ECC-Chips, mit denen nur EC4 möglich ist. Mainboards für DDR5-UDIMMs kann man nicht mit RDIMMs bestücken und umgekehrt: Das verhindern Kodiernasen in den Steckfassungen, schon weil UDIMMs mit 5 Volt Speisespannung laufen und RDIMMs mit 12 Volt. DDR5-Speicherriegel haben eigene Spannungswandler (Power Management IC, PMIC), die die eigentlichen Speicherchips versorgen.

Nach unserem Kenntnisstand ermöglicht auch EC4 die ECC-typischen SECDED-Funktionen. Beim Einsatz von EC4-RDIMMs muss man jedoch auf die Funktion Single Device Data Correction (SDDC) verzichten, die den Ausfall eines kompletten Speicherchips kompensieren kann. SDDC beherrschen nur die "dicken" Versionen von Serverprozessoren AMD Epyc und Intel Xeon, die für RDIMMs ausgelegt sind. Denn SDDC funktionierte ursprünglich nur mit x4-SDRAMs, die wiederum nur auf RDIMMs zulässig sind. ECC-UDIMMs sind hingegen stets mit x8-SDRAMs bestückt. Es gibt zwar auch ausgefeilte Verfahren, die den Ausfall eines x8-SDRAMs kompensieren können, doch die setzen die Zusammenschaltung mehrerer RAM-Kanäle voraus (Lockstep Mode). Das wiederum ist bei DDR5 widersinnig – denn die Subkanäle zielen ja gerade darauf, dass Systeme mit sehr vielen CPU-Kernen das RAM flexibler aufteilen können.

Verwirrenderweise bezeichnet man EC4 synonym auch als x72 (zwei Subkanäle mit je 32 + 4 Leitungen) oder 9x4 (neun x4-SDRAMs pro Subkanal). EC8 heißt wiederum auch x80 (2 × (32 + 8)), 10x4 oder 5x8. Diese Begriffe beziehen sich nur auf RDIMMs. DDR5-ECC-UDIMMs sind hingegen mit 5x8 bestückt (fünf x8-SDRAMs pro Subkanal), aber der Speicherbus ermöglicht nur EC4.

Neugierig geworden?

(ciw)