Speicher 4

Sicherstellen der Datenintegrität im Speicher

Ein Aspekt des Speicherdesigns betrifft die Sicherstellung der Integrität der im Speicher befindlichen Daten. Derzeit gibt es zwei Methoden, um die Integrität der Daten im Speicher sicherzustellen:

bullet Die Paritätsprüfung ist die am häufigsten verwendete Methode. Bei diesem Prozeß erhalten jeweils 8 Datenbit (1 Byte) ein zusätzliches Bit.
bullet ECC (Error Correction Code = Fehlerkorrekturcode) ist eine komplexere Methode zur Überprüfung der Datenintegrität, mit deren Hilfe Einzelbitfehler ermittelt und korrigiert werden können.

Aufgrund des intensiven Preiswettbewerbs verzichten PC-Hersteller in immer stärkerem Ausmaß auf die Überprüfung der Datenintegrität. Sie senken z.B. den Bedarf an kostenintensivem Paritätsspeicher, um die Preise ihrer Computer zu senken. (Die zunehmende Qualität der Speicherkomponenten spezieller Hersteller und die sich daraus ergebende geringere Anfälligkeit für Speicherfehler tragen nicht unwesentlich zu diesem Trend bei.)

Ein Wort zur Speichersteuereinheit

Die Speichersteuereinheit (Memory Controller) bildet eine entscheidende Komponente jedes Computers. Kurz gesagt besteht ihre Funktion darin, die Bewegung der Daten in den Speicher sowie aus dem Speicher zu überwachen. Von der Speichersteuereinheit hängt ab, welche Art der Integritätsprüfung (sofern vorhanden) unterstützt wird. Mit Methoden wie z.B. der Paritätsprüfung und ECC spielt die Speichersteuereinheit eine aktive Rolle in diesem Prozeß.

Die Entscheidung über die Überprüfung der Datenintegrität muß bereits beim Kauf des Computer fallen. Wenn der Computer für eine kritisch Rolle (z.B. als Server) angeschafft werden soll, ist ein Rechner mit einer ECC-fähigen Speichersteuereinheit eine gute Wahl. Die meisten Computer, die für den Einsatz als High-End-Server konzipiert sind, unterstützen ECC. Desktop-Computer, die für den Einsatz im Geschäftsleben und bei Behörden entwickelt wurden, unterstützen zumeist die Paritätsprüfung. Preisgünstige Computer, die hautpsächlich privat oder in kleinen Unternehmen benutzt werden, arbeiten ohne Paritätsprüfung.

Paritätsprüfung

Wenn ein Computersystem mit der Paritätsprüfung arbeitet, wird im DRAM-Speicher mit jeweils 8 Datenbit (1 Byte) zusätzlich ein Paritätsbit gespeichert. Die Funktionsweise der zwei Paritätsprotokolle - ungerade Parität und gerade Parität - ist sehr ähnlich. Die folgende Tabelle zeigt, wie die Protokolle funktionieren. Die Prozesse sind identisch, jedoch mit gegensätzlichen Attributen:

 

Ungerade Parität

Gerade Parität

Schritt 1 Das Paritätsbit wir auf 1 gesetzt (oder "eingeschaltet"), wenn das zugehörige Datenbyte eine gerade Anzahl von Einsen enthält.

Enthält das Byte eine ungerade Anzahl von Einsen, wird das Paritätsbit auf 0 gesetzt (oder "ausgeschaltet").

Das Paritätsbit wir auf 1 gesetzt (oder "eingeschaltet"), wenn das zugehörige Datenbyte eine ungerade Anzahl von Einsen enthält.

Das Paritätsbit wird auf 0 gesetzt (oder "ausgeschaltet"), wenn das Byte eine gerade Anzahl von Einsen enthält.

Schritt 2 Das Paritätsbit wird mit den zugehörigen 8 Datenbit in den DRAM geschrieben. (Wie bei ungerader Parität.)
Schritt 3 Bevor die Daten an die CPU gesendet werden, werden sie durch die Paritätsprüfung abgefangen.

Ergibt die Paritätsprüfung eine ungerade Zahl von Einsen, gelten die Daten als gültig. Das Paritätsbit wird von den Daten entfernt, und die 8 Datenbit werden an die CPU übergeben.

Ergibt die Paritätsprüfung eine gerade Anzahl von Einsen, gelten die Daten als ungültig, und es wird ein Paritätsfehler generiert.

Bevor die Daten an die CPU gesendet werden, werden sie durch die Paritätsprüfung abgefangen.

Die Daten gelten als gültig, wenn die Paritätsprüfung eine gerade Anzahl von Einsen feststellt.

Die Daten sind ungültig, wenn die Paritätsprüfung eine ungerade Anzahl von Einsen ermittelt.

Der Paritätsmethode sind jedoch Grenzen gesetzt. Die Paritätsprüfung kann zwar einen Fehler feststellen, aber keine Korrekturmaßnahmen ausführen. Der Grund hierfür ist, daß sie nicht erkennt, welches der 8 Datenbit ungültig ist. Wenn mehrere Bit ungültig sind, wird das Problem bei der Paritätsprüfung nicht erkannt, sofern die Daten die ungerade bzw. gerade Parität erfüllen, für die die Prüfung erfolgt. Beispielsweise könnten eine gültige 0 zu einer ungültigen 1 und eine gültige 1 zu einer ungültigen 0 werden. Da sich die beiden defekten Bit ausgleichen, bleiben die sich daraus ergebenden Fehler unerkannt. Die Chance, daß dieser Fall eintritt, ist jedoch relativ gering.

Eine Bemerkung zur "Pseudoparität"

Bei normaler Parität wird, wenn 8 Datenbit in den DRAM-Speicher geschrieben werden, zur gleichen Zeit ein entsprechendes Paritätsbit geschrieben. Dessen Wert (entweder 1 oder 0) wird zu dem Zeitpunkt bestimmt, an dem das Byte in den DRAM-Speicher geschrieben wird, und zwar auf der Grundlage einer ungeraden bzw. geraden Anzahl von Einsen. Einige Hersteller verwenden jedoch einen kostengünstigeren "Pseudoparitäts-Chip". Dieser Chip generiert einfach eine 1 oder 0, wenn die Daten an die CPU gesendet werden, um auf diese Weise die Anforderungen der Speichersteuereinheit zu erfüllen. (Arbeitet der Computer z.B. mit ungerader Parität, generiert der Pseudoparitäts-Chip eine 1, wenn ein Datenbyte mit einer geraden Anzahl von Einsen an die CPU gesendet wird. Enthält das Byte eine ungerade Anzahl von Einsen, generiert der Pseudoparitäts-Chip eine 0.) Das Problem hierbei ist, daß der Pseudoparitätschip in jedem Fall ein "OK"-Signal sendet. Es gelingt ihm so, den Computer, der das Paritätsbit erwartet, "zu täuschen". Der Computer muß nämlich davon ausgehen, daß tatsächlich eine Paritätsprüfung stattgefunden hat. Dies ist jedoch nicht der Fall. Eine derartige Pseudoparitätsprüfung kann keine ungültigen Datenbits identifizieren.

ECC

Der Fehlerkorrekturcode ECC (Error Correction Code) wird in erster Linie in High-End-PCs und Datei-Servern verwendet. Der entscheidende Unterschied zwischen ECC und Paritätsprüfung liegt darin, daß ECC in der Lage ist, 1-Bit-Fehler zu identifizieren und zu korrigieren. Normalerweise findet bei Einsatz von ECC die 1-Bit-Fehlerkorrektur statt, ohne daß der Benutzer überhaupt bemerkt, daß ein Fehler aufgetreten ist. Abhängig von der Art der Speichersteuereinheit kann ECC sogar selten auftretende 2-, 3- oder 4-Bit-Speicherfehler erkennen. Obwohl ECC diese Mehr-Bit-Fehler feststellt, ist jedoch nur eine Korrektur der 1-Bit-Fehler möglich. Wenn ECC einen Mehr-Bit-Fehler identifiziert, wird ein Paritätsfehler gemeldet.

Unter Verwendung eines speziellen Algorithmus (mathematische Folge) und in Zusammenarbeit mit der Speichersteuereinheit fügt ECC den Datenbit ECC-Bit hinzu, die dann gemeinsam im Speicher abgelegt werden. Wenn Daten aus dem Speicher angefordert werden, decodiert die Speichersteuereinheit die ECC-Bits und prüft, ob ein oder mehrere Datenbits beschädigt sind. Liegt ein 1-Bit-Fehler vor, wird das Bit durch ECC korrigiert. In den seltenen Fällen eines Mehr-Bit-Fehlers wird (wie bereits erwähnt) ein Paritätsfehler gemeldet.

Welche Art von SIMMs wird bei ECC-Konfigurationen verwendet?

Bei einem 72poligen SIMM mit einer Breitenangabe von &39 oder &40 läßt sich mit ziemlicher Sicherheit sagen, daß dieses SIMM-Modul ausschließlich für die ECC-Konfiguration konzipiert ist. Einige High-End-PCs sowie zahlreiche Datei-Server verwenden für die ECC-Fehlerprüfung Paare von &36-SIMMs. Zwei &36-SIMMs liefern insgesamt 72 Bit; davon werden 64 Bits für Daten und 8 Bit für ECC verwendet. Dies kann Verwirrung stiften, denn dieselben ?-Module können auch als einfache Paritätsmodule fungieren, wenn sie in anderen Konfigurationen verwendet werden. Somit erhalten wir eine weitere Bestätigung dafür, daß die Speichersteuereinheit in stärkerem Maße als das Speichermodul bestimmt, ob ein System die Paritäts- oder ECC-Fehlerprüfung verwendet. Das Speichermodul liefert die Bit, aber die Speichersteuereinheit entscheidet über deren Verwendung. Damit die den ECC-Speicher verwenden können, muß Ihr Computer in der Regel über eine Speichersteuereinheit verfügen, die dafür entwickelt wurde, die Vorzüge der ECC-Technologie zu nutzen.

Mittlerweile gibt es eine neue Technologie, ECC on SIMM oder EOS, die ECC-Funktionalität auf Systemen ermöglicht, die eigentlich für die Paritätsprüfung konzipiert sind. Bislang war diese Technologie noch sehr teuer. Darüber hinaus bleibt das Interesse daran vermutlich relativ gering, da Computerbenutzer, die mit ECC arbeiten wollen, sich vor dem Kauf eines Computers dafür entscheiden und somit die ECC-Unterstützung in einem kostengünstigeren Computer erwerben. Es besteht für sie also keine Notwendigkeit, kostenspielige EOS-Module zu kaufen.

bullet
nächstes Kapitel: Mehr zur Speichertechnologie