Heutzutage ist die überwiegende Mehrheit des von Desktops, Notebooks und mobilen Geräten verwendeten Speichers ungepufferter nicht-ECC (Error Checking and Correction) DRAM. Wenn man nicht gerade eine Intel- oder AMD-CPU verwendet, die ECC-Speicher unterstützt, ist ungepufferter ECC-DRAM für die meisten Benutzer die einzige Wahl. Intel Xeons unterstützen beispielsweise ECC-Speicher, während selbst die neuen Core i7-CPUs dies nicht tun. AMD hat eine viel breitere ECC-Unterstützung auf CPU-Ebene, aber viele AMD-Motherboards unterstützen die ECC-Speicherfunktionen nicht, so dass sie nicht universell einsetzbar sind.
ECC-Speicher Was er leistet
Fehlerprüfungs- und -korrekturspeicher (ECC) wird heutzutage in Unternehmensumgebungen meist als unverzichtbar angesehen. Die Einzelbit-Fehlerprüfung und -korrektur innerhalb eines 8-Bit-Bytes ermöglicht es, Einzelbit-Fehler sowohl zu erkennen als auch zu korrigieren, wenn sie auftreten. Interessanterweise unterscheidet sich die Funktionsweise dieser Einzelbit-ECC nicht so sehr von RAID 4 und RAID 5, wo ein XOR-Algorithmus zur Erzeugung von Paritätsbits verwendet wird. Anstatt nutzbare Speicherkapazität zu verlieren, neigen die Speicherhersteller dazu, dem ECC-Speicher für jeweils acht Speicherchips einen zusätzlichen Chip hinzuzufügen. Wenn ein einzelner Bitfehler erkannt wird, werden die Paritätsinformationen verwendet, um die fehlerhaften Daten zu rekonstruieren. Auch dies ist konzeptionell vergleichbar mit der Art und Weise, wie RAID 4 und RAID 5 Datenfehler in Speicherarrays bereinigen und korrigieren können. Größere Fehler als Multi-Bit-Fehler können zwar erkannt, aber nicht durch das ECC-Paritätsschema mit nur einem Bit korrigiert werden.
Für Desktops ist dies weniger wichtig, da viele Zahlen davon ausgehen, dass Single-Bit-Fehler im Bereich von 1 pro 1 GB oder 1 pro 2 GB Speicher pro Monat liegen. Für einen Desktop-Benutzer kann dies zum Absturz eines Programms führen oder schlimmstenfalls einen Neustart erfordern. Bei Servern ist ECC unerlässlich, um sowohl die Datenintegrität als auch die Betriebszeit zu gewährleisten. Angesichts des geringen Kostenunterschieds zwischen ECC- und ungepufferten Nicht-ECC-DIMMs gibt es kaum einen Grund, einen Server mit Nicht-ECC-Speicher auszustatten.
Ungepufferter ECC- und registrierter ECC-Speicher
Zusätzlich zum ECC-Konzept gibt es noch zwei weitere Konzepte: ungepufferte und registrierte ECC-Speichermodule. Der grundlegende Unterschied besteht darin, dass die Speicherbefehle bei ungepufferten Speicherkonfigurationen direkt vom Controller an das Speichermodul gehen, während bei registrierten Speicherkonfigurationen die Befehle zunächst an die Register der Speicherbänke und dann an die Module gesendet werden. Dieses Konzept mag schwierig klingen, aber hier ist die sehr einfache/konzeptionelle Sichtweise dessen, was vor sich geht.
In dem obigen Beispiel greift der Speicher-Controller direkt auf die Speicherbänke zu. Dabei wird davon ausgegangen, dass sich der Speicher-Controller innerhalb des CPU-Gehäuses befindet, wie es bei modernen CPU-Architekturen der Fall ist. Bei älteren Systemen befand sich der Speicher-Controller in der Northbridge der CPU. Vergleichen Sie dies mit dem Beispiel für registrierten Speicher unten.
Hier kommuniziert die CPU mit den Registern für die Speicherbänke auf jedem Modul. Von dort aus kommunizieren diese Register mit dem DRAM. Dies hat zweierlei Auswirkungen. Erstens benötigen Anweisungen aufgrund der Zwischenschaltung des Bankregisters etwa einen CPU-Zyklus länger. Positiv ist, dass diese Pufferung den Speicher-Controller der CPU entlastet, da er auf das spezielle Zwischenregister verweist und nicht direkt auf den DRAM zugreift. Es ist für den Speicher-Controller einfacher, mit einer geringeren Anzahl von Zielen umzugehen.
Diese Funktion ist in Server-Szenarien sehr wichtig, da zum Beispiel eine Intel 3400 Series-Plattform wie der Supermicro X8SI6-F oder Intel S3420GPLC 16 GB ungepufferten ECC- und 32 GB registrierten ECC-Speicher unterstützt. Bei Dual-Prozessor-Systemen, wie dem Supermicro X8DTH-6F auf Basis der E5600-Serie, das kürzlich auf ServeTheHome getestet wurde, ist das Delta mit bis zu 48 GB unregistriertem ECC- oder 192 GB registriertem ECC-Speicher noch viel größer. Für Virtualisierungsumgebungen, in denen Speicher und Speicherbandbreite der Schlüssel zum Erreichen hoher Konsolidierungs- und Dichtekennzahlen sind, ist registrierter ECC-Speicher im Allgemeinen der richtige Weg. Wenn man einen Server mit unregistrierten ECC-DIMMs kauft und dann zusätzliche Kapazität benötigt, muss man bei der Aufrüstung alle UDIMM-Module herausnehmen und ersetzen, was ein teures Unterfangen ist.
Abschluss
In diesem Artikel wird hoffentlich ein konzeptioneller Überblick über den Unterschied zwischen ungepuffertem ECC-Speicher und registriertem ECC-Speicher gegeben, um die Auswahlentscheidung zu erleichtern. Dies war kein übermäßig technischer Artikel, denn Speichermodule sind in der Regel Dinge, die man mitbestellt oder zu seinem System hinzufügt und mit denen man sich wenig beschäftigt, bis man mehr Speicher benötigt.