Beschreibung FEHLERERKENNUNG IN EINEM SPEICHERSYSTEM
Speichersystem
Die Dateninhalte von SpeieherSystemen werden häufig in der Weise gesichert, daß unter der Adresse eines Datenwortes zusätzlich eine Anzahl redundanter Bits mit abgespeichert wird. Diese Bits werden Kontrollbits, K-Bits, oder ECC-Bits genannt und entstehen durch Bildung der Paritätssumme über bestimmte Teile des Datenwortes, was üblicherweise als EDC- Codierung ( „EDC" abgekürzt für Error Detection Code) bezeichnet wird. Beim Auslesen des Speicherwortes werden die Teilparitäten erneut gebildet und mit den ebenfalls ausgelesenen zugeordneten K-Bits verglichen. Falls für alle K-Bits Gleichheit besteht, schließt man daraus, daß das ausgelesene Datenwort fehlerfrei ist. Bei Ungleichheit wird aus dem Muster der Nichtübereinstimmung, dem sog. Syndrommuster, auf die Art des Fehlers geschlossen.
Diejenigen K-Bit-Positionen, die bei dem genannten Vergleich nicht übereinstimmen, heißen Syndrome. Bestimmte Syndrommuster werden decodiert und es wird so ggf . die verfälschte Bitposition im Datenwort ermittelt und durch Invertieren korrigiert .
Die Bildung der K-Bits {EDC-Codierung) , der Vergleich der IC- Bits, die Decodierung der Syndrome, sowie die Korrektur und ggf . Alarmierung einer übergeordneten Steuerung erfolgt heute normalerweise mit Hilfe spezieller Controller-Bausteine, die im folgenden auch als EDC-Controller bezeichnet werden.
Wenn nun ein Adressierungsfehler vorliegt, so kann dieser Fehler von dem bisher geschilderte Fehlerüberwachungssystem beim Auslesen nicht erkannt werden, da der Adressierungsfehler die Konsistenz des Datenworts gegenüber dem Kontrollwort nicht beeinträchtigt. Um auch Adressierungsfehler zu erkennen, wird deshalb in einer
Weiterbildung des FehlerüberwachungsSystem nicht nur das Datenwort sondern auch die Speicheradresse des Datenworts in die EDC-Codierung, d.h. in die Paritätsbildung mit einbezogen.
Durch das Einbeziehen der Adresse in die EDC-Codierung erhöht sich allerdings der Aufwand für das FehlerüberwachungsSystem beträchtlich, da z.B. die doppelte Zahl von EDC-Controllern benötigt wird. Außerdem müßte die EDC-Codierung für Daten und Adresse unterschiedlich sein.
Der Erfindung liegt die Aufgabe zugrunde, die genannten Nachteile zu überwinden.
Diese Aufgabe wird durch die Erfindung gemäß den Merkmalen von Anspruch l gelöst.
Es folgt ein Ausführungsbeispiel der Erfindung.
In FIG 1 ist anhand einer sog. EDC-Code-Tabelle dargestellt, über welche Bitpositionen die K-Bits in einem EDC-Controller gebildet werden.
In FIG 1 bedeutet das Zeichen „Xw, daß das zugeordnete Daten- bit N (00 = < N = < 31) in die Paritätsbildung für das Checkbit C (C0 = < C = < C7) einbezogen ist. Das Zeichen „0" neben den Zeilen der unteren Speicherworthälfte bedeutet, daß das zugehörige C-Bit dann gleich 1 ist, wenn die Zahl der Indipa- ritätsbildung einbezogenen „lenw im gesamten Nutzbit-Teil un- gerade ist. Das Zeichen „Ew neben den Zeilen der unteren
Speicherworthälfte bedeutet, daß das zugehörige C-Bit. gleich 0 ist, wenn die Zahl der in die Paritätsbildung einbezogenen „len" im gesamten Nutzbit-Teil ungerade ist. Die beiden letztgenannten Aussagen beziehen sich also auf beide Hälften des Speicherwortes zusammen.
In FIG 1 sind Datenwörter vorausgesetzt, die 32 Datenbits umfassen. Zu diesen Datenbits werden acht Controllbits C0, Cl, C2....C7 zugeordnet, die jeweils durch Paritätsbildung über bestimmte Bitpositionen eines Datenwortes gebildet werden. Das gesamte Speicherwort, d.h. das Nutzwort (Adresse oder Daten) plus Controllwort, umfaßt also 40 Bits. Diese sind in DRAM-Speicherbausteinen mit einer Zellenbreite von vier Bit organisiert .
Aufgrund der gemäß den EDC-Codetabellen gebildeten Controllbits können ein Ein-Bit-Fehler sicher erkannt werden und führen zu ungeradzahligen Syndrommustern. Desweiteren kann eine Korrektur von Einbitfehlem durchgeführt werden, da jeder Fehler-Bitposition innerhalb eines Nutzwortes ein eindeutiges Syndrommuster fest zugeordnet ist . Dieses
Syndrom uster kann decodiert und damit zur Korrektur des fehlerhaften Bits herangezogen werden.
Schließlich können Mehrbitfehler erkannt werden. Doppelbit- fehler führen beispielsweise immer zu einem geradzahligen
Syndrommuster ungleich 0 und werden daher sicher als Mehrbitfehler erkannt. Die weiteren geradzahligen Mehrbitfehler führen ebenfalls immer zu einem geradzahligen Syndrommustern, wobei mit einer Wahrscheinlichkeit von 1/128 das Nullsyndro entsteht, da es bei dieser ECC-Breite (Zahl der K-Bits) insgesamt 128 geradzahlige Syndrommuster gibt. Diese Fehler führen daher mit einer Wahrscheinlichkeit von 99.2% sofort zu Mehrbitfehler-Alarm.
Ungeradzahlige Mehrbitfehler führen zu ungeradzahligen Syndrommustern, wobei auch die Syndrommuster von l Bit-Fehlern entstehen können. Daher werden diese Fehler mit 68.75% Wahrscheinlichkeit sofort als Mehrbitfehler erkannt. Diese Zahl ist folgendermaßen entstanden: Es gibt bei 8 Bit ECC-Breite insgesamt 128 ungeradzahlige
Syndrommuster. Von diesen 128 Mustern sind 40 für 1 Bit-Fehler reserviert. Es bleiben also 128—40 = 88 Muster für unge-
radzahlige Mehrbitfehler übrig. Die Wahrscheinlichkeit, daß eines dieser Muster bei einem beliebigen ungeradzahligen Mehrbitfehler getroffen wird, ist somit 88/128 = 68.75%.
Zusammengefaßt ergibt sich, daß beliebige Mehrbitfehler mit einer Wahrscheinlichkeit von 215/256 = 84% sofort als Mehrbitfehler alarmiert werden. Hierbei sind auch die geradzahligen Mehrbitfehler berücksichtigt worden, die ja in 1 von 128 Fällen das Nullsyndrom verursachen. Diese Zahl ergibt sich wiederum folgenmaßen:
Es gibt bei 8 Bit ECC-Breite insgesamt 256 Syndrommuster. Von diesen 256 Mustern sind 40 für 1 Bit—Fehler reserviert und ein Muster ist das Nul1syndrommuster . Es bleiben also 256 40—1 = 215 Muster für Mehrbitfehler übrig. Die Wahrschein- lichkeit, daß eines dieser Muster bei einem beliebigen Mehrbitfehler getroffen wird, ist somit 215/256 = 84%.
Wenn nun ein Fehler in der Ansteuerung der im Rahmen eines Speicherzugriffs gemeinsam, d.h. parallel angesteuerten Speichereinheiten (z.B. Speicherbausteine) des
Speichersystemε vorliegt, können also Syndrommuster entstehen, die einen korrigierbaren Einbitfehler vortäuschen und somit nicht als Fehler der Ansteuerung erkannt werden. Auch sind andere Fehler denkbar, z.B. Ausfall des Schreibimpulses, die über die EDC-Controller gar nicht erkennbar wären.
Das genannte Problem kann erheblich verringert werden, wenn die Speicherbausteine, die beim Lesen gemeinsam aktiviert werden, von mehreren Ansteuersignalen der gleichen Art, die von eigenständigen Steuerungseinheiten stammen, versorgt wird. Man rechnet in diesem Fall nur mit einem Ausfall eines dieser Signale (d.h. Ausfall einer Steuerungseinheit) , wodurch z.B. Daten und Kontrollbits verschiedener Speicherworte beim Auslesen miteinander vermischt werden können. Trotz dieser Maßnahme, die im folgenden abkürzend als Maßnahme A) bezeichnet wird, können allerdings noch immer,
wenn auch mit geringer Wahrscheinlichkeit, Ein-Bit-Fehler oder sogar Fehlerfreiheit vorgetäuscht werden.
Das letztgenannte Problem kann jedoch durch geschickte Aufteilung der Daten und Controllbits auf die
Speichereinheiten in Verbindung mit der zugehörigen Wahl des EDC-Codes (siehe FIG 1) verhindert werden. Aus Fig.l erkennt man, daß ein Abschnitt des Kontrollworts, der nicht zusammen mit demjenigen Abschnitt des Datenworts abgespeichert wird, in dem eine Ein-Bit-Verfälschung vorliegt (z.B. der
Datenwort-Abschnitt DWTl mit dem Kontrollwort-Abschnitt KWTl) , jeweils nur eine gerade Anzahl zum SynMu beitragen kann. Andererseits kann ein Abschnitts des Datenworts, der zusammmen mit dem Abschnitt des Kontrollworts abgespeichert wird (z.B der Abschnitt DWTl mit KWT2 ) , nur eine ungerade
Anzahl zum SynMu beitragen. Der letztere Fall kann aber nicht bei Fehlern stattfinden, die durch die falsche Ansteuerung (Adressierung) einer Speichereinheit entstehen. Somit können bei einer falschen Ansteuerung also nur geradzahlige Syndrommuster entstehen.
Die geschickte Aufteilung der Daten und Controllbits auf die Speichereinheiten in Verbindung mit der zugehörigen Wahl des EDC-Codes wird im folgenden abkürzend als Maßnahme B) bezeichnet .
Das allgemeine Bildungsgesetz für die genannte Aufteilung bei mehr als zwei Speiehermediumseinheiten ist in der Deutschen Patentanmeldung P 35 28 902.3-31 (SAG-intern GR 84 P 1995) genauer erläutert.
Aufgrund der genannten Aufteilung des Speicherwortes auf die Speichermediumseinheiten und der dazu entsprechenden Wahl des EDC-Codes können also in Fällen, in denen die Daten- und Kontrollbits einer Ansteuerungseinheit falsch ausgewählt werden, nur geradzahlige Syndrommuster entstehen. Da korrigierbare Einbitfehler nur ungeradzahlige Syndrommuster
erzeugen, entfällt auf diese Weise die Verwechslungsgefahr der Einbit-Fehler mit den genannten Steuerungsfehlem.
Leider können die Fehler „alles 0" oder „alles 1" in einer Speicherworthälfte (= Hälfte der Daten plus zugehörige Hälfte der C-Bits) trotz der Maßnahme B) immer noch zu ungeradzahligen Syndrommustern führen und somit korrigierbare Einbitfehler vortäuschen. Um dies zu verhindern, ist der EDC-Code zusätzlich derart gewählt, daß ein DatenwortAbschnitt, d.h. ein Abschnitt des Datenwortε, der nicht zusammmen mit einem anderen Abschnitt des Datenworts abgespeichert wird (z.B. die Abschnitte DWTl bzw. DWT2 in Fig 1) , an der Bildung eines K-Bits mit jeweils einer geraden Anzahl von Bitstellen beteiligt ist, soweit es sich um einen DatenwortAbschnitt handelt, der nicht zusammen mit diesem K-Bit abgespeichert wird, und mit einer ungeraden Anzahl von Bitstellen beteiligt, soweit es sich um einen DatenwortAbschnitt handelt, der zusammen mit diesem K-Bit abgespeichert wird.
Durch die genannte Wahl des EDC-Codes, die im folgenden abkürzend als Maßnahme 1) bezeichnet wird, werden also die Fehler 'alles 0' oder 'alles 1' in einer Speicherworthälfte (= Hälfte der Daten + zugehörige Hälfte von ECC-Bits) immer zu geradzahligen Syndrommustern führen. Hierdurch werden diese Fehler als Mehrfachfehler alarmiert. Da die beiden Speichereinheiten der Worthälften durch getrennte Steuerungen angesteuert werden und viele Steuerungsfehler die oben beschriebene Wirkung (alles 0 oder alles 1) haben, wird hierdurch die Unterscheidung dieser Fehler von IBit-Fehlern erheblich verbessert.
Fig 3 zeigt ein erfindungsgemäßes Speichersystem CMY, das ein gedoppeltes (Speicher-) Steuerungssystem CMYC, ein (Speicher-) Mediumsystem CMYM (kurz „Speicher") mit zwei Speichereinheiten, d.h. zwei (Speicher-)Mediumhälften, sowie
eine gedoppelte Busschnittstelle BCMY, über die die Verbindung mit dem Bussystem eines RechnerSystems hergestellt wird.
Das Speichersystem umfaßt eine Fehlerüberwachung, die mithilfe von EDC-Controllern in Abhängigkeit des Maschinenzyklusses (Lese- oder Schreibzyklus) unterschiedliche Kontrollpunkte bereitstellt.
Alle Datenwege im CMY, dh. zwischen BMCY und CMYM, sind gedoppelt vorhanden und in jedem Datenweg wird an den Kontrollpunkten von entsprechenden EDC-Controllern zur Fehlerüberwachung unabhängig voneinander die volle Breite der Datenworte (32 Bit) herangezogen..
In Fig 3 ist insbesondere die Konfiguration der Datenwege und Kontrollpunkte des Speichersystems für einen Schreibzyklus dargestellt.
Beim Schreibzyklus gelangen die Schreibdaten und zugehörigen K-Bits vom BCMY kommend zunächst über Schreibpfade WDPI zu einem Kontrollpunkt AI. An diesem Kontrollpunkt wird die bereits genannte Fehlerüberwachung durchgeführt, bei der Bitfehler (Ein- oder Mehrbitfehler) erkannt werden und Einbitfehler sogar korrigiert werden.
Anschließend werden die Schreibdaten gedoppelt (jedoch ohne Kontrollbits) zum Speicher CMYM weitergeleitet.
Am Kontrollpunkt B, d.h. unmittelbar vor dem Einschreiben der Schreibdaten in den Speicher, wird in jeder der beiden Übertragungshälften aus den Schreibdaten nochmals ein Kontrollwort generiert und ein Vergleich ECC der beiden Kontrollwörter durchgeführt . Nur wenn die Daten bis dahin in beiden Hälften fehlerfrei verarbeitet wurden, sind die beiden Kontrollworte identisch, ansonsten kommt es zur Alarmierung eines Mehrfachfehlers, d.h. eines nicht korrigierbaren
Fehlers. Durch den Vergleich ECC werden Fehler gefunden, die u.a. auf einer fehlerbehafteten Übertragung zwischen AI und B beruhen oder durch fehlerbehaftete EDC-Netzwerke an den Kontrollpunkten AI oder B bedingt sind.
Die Kontrollbits von Kontrollpunkt AI werden für den Kontrollpunkt B; nicht benötigt, da sie am Kontrollpunkt B, d.h. unmittelbar vor dem Einschreiben der Schreibdaten ins Mediumsystem, aus den Schreibdaten nochmals generiert werden und weil sie zur Fehlerüberwachung zwischen AI un B nicht benötigt werden. Die Fehlerübrwachung zwischen AI und B ist ja bereits durch den Vergleich der beiden am Kontrollpunkt B gebildeten Kontrollworts bereits gewährleistet.
Die Übertragungsstrecke der Daten zwischen AI und B ist teilweise ausgekreuzt . Liegt nun in einer Übertragungshäl te ein Auswahlfehler (Ansteuerungsfe ler) vor, so kommt es am Kontrollpunkt B zu Inkonsistenzen. Dies führt zur Alarmierung eines Mehrfachfehlers .
Ergibt der Vergleich am Kontrollpunkt B keine Inkonsistenzen, so werden die Daten samt Kontrollwort in das Mediumsystem eingeschrieben. Insbesondere werden dabei die Datenbits 0...15 (DWTl) zusammen mit den K-Bits 4...7 (KWT2) in die eine Mediumhälfte eingeschrieben und die Datenbits 16...32 (DWT2) zusammen mit den K-Bits 0...3 (KWT1) in die andere Mediumhälfte.
Durch die erläuterte abschnittsweise Überwachung der Datenwege auf Steuerungsfehler iVm. mit dem Austausch der
Speicherworthälften zwischen beiden Steuerungen läßt sich aus der kombinierten Betrachtung der Alarme verschiedener EDC- Bausteine der Ort herleiten, an dem der Fehler entstanden ist.
Um einen evtl fehlerhaften Schreibvorgang zu verhindern, der im Abschnitt 4, d.h. direkt beim Einschreiben erfolgt, wird
anstatt eines reinen Schreibzyklusses ein Lese-/Schreibzyklus durchgeführt, wobei ein EDC-Check der Lesedaten und damit ein Check der Ansteuerung einer Speicherzelle erfolgt, bevor eine korrekt ansteuerbare Speicherzelle durch die Fehlansteuerung eines fehlerhaften Schreibvorgangs überschrieben wird. Der Lesevorgang bleibt dabei intern, d.h. die BCMY nimmt die Lesedaten nicht auf, um sie auf den Bus auszugeben. Die Schreibdaten werden bis zum Abschluß des Lesechecks in der CMYM zwischengespeichert . Aufgrund dieser Maßnahme werden die Systemauswirkungen von Steuerungsfehlem gering gehalten, sowie die (Steuerungs-) Fehler besser unterschieden und schneller erkannt.
Speziell bewirkt diese Maßnahme, kombiniert mit den genannten Maßnahmen A) und B) , daß Fehler in der Auswahl einer Speicherworthälfte (z. B. bedingt durch Adressierungsfehler) schon vor dem Auslesen des verfälschten Speicherwortes als Mehrbitfehler erkannt werden. Kombiniert mit Maßnahme C) gilt dies ebenfalls für die Adressierungsfehler von ganzen Speicherworten. Der gleiche Vorteil gilt bei Mehrbit- Verfälschungen, die durch Fehler innerhalb eines Speicherbausteins bewirkt werden.
Aus Gründen der Klarheit wurde bisher die Anwendung der EDC- Codierung nur bezüglich des Datenworts erläutert. Tatsächlich wird jedoch nicht nur das Datenwort sondern auch die
Speicheradresse des Datenworts in die EDC-Codierung, d.h. in die Paritätsbildung mit einbezogen (siehe FIG 2) . Der EDC- Code ist dabei bezüglich des Adressenwortes derart gewählt, daß bei einem Ein-Bit-Fehler im Adressenwort nur ein geradzahliges Syndrom-Muster entstehen kann. Das bedeutet aber, daß einem Mehrfach-Bit-Fehler ebenfalls nur ein geradzahliges Syndrom-Muster entstehen kann. Es kommt somit bei einem Adressierungsfehler immer zur Alarmierung eines Mehrf chfehlers, d.h. eines unkorrigierbaren Fehlers. Das Einbeziehen der Adresse in die EDC-Codierung ist in der
Offenlegungsschrift DE 3319710 AI (SAG-intern 83 P 1382 DE)
näher erläutert und wird im folgenden abkürzend als Maßnahme C) bezeichnet.
Um den Aufwand der für die Maßnahme C) notwendigen Generierung der Adreß-Paritätsbits zu minimieren, erfolgt eine zusätzliche Nutzung der Daten-EDC-Bausteine zur Generierung der Adreß-Paritätsbits . Dies wird möglich durch Zeitmultiplex von Adresse und Daten sowie Bildung der Adreß- Paritätsbits gemäß FIG 2, d.h. aus einer Teilmenge der EDC- Codierung von FIG 1. Hierdurch ist die für Maßnahme C) notwendige Bedingung der Geradzahligkeit pro Adreßbit eingehalten. Es wird hierfür die für Maßnahme B) notwendige Bedingung der Geradzahligkeit bestimmter Codeabschnitte genutzt .
FIG 4 zeigt die Konfiguration der Datenwege und Kontrollpunkte des Speichersystems für einen Lesezyklus . Während des Lesezyklusses wird das Datenwort und das zugehörige Kontrollwort zunächst ausgelesen und gelangt zum Kontrollpunkt C, an dem eine Fehlererkennung und gegebenenfalls Fehlerkorrektur durchgeführt wird. Anschließend wird das Datenwort und das Kontrollwort zu der Busschnittstelle BCMY weitergeleitet, wobei am Kontrollpunkt A2 nochmals eine Fehlererkennung durchgeführt wird. Diese Fehlererkennung bewirkt im Fehlerfall, daß die
Busschnittstelle BCMY die Weitergabe des Datenworts und des Kontrollworts auf den Bus blockiert. Außerdem wird in diesem Fall die defekte Speichersytemhalfte (CMYO oder CMYl) von der Busschnittstelle BCMY weggeschaltet.
FIG 5 zeigt iVm FIG 3 und 4, an welchem Kontrollpunkt
(Checkpoint Y) Datenfehler erkannt werden, die in einem bestimmten Abschnitt (Section X) des Speichersystems auftreten.
Es folgen nunmehr Beispiele für spezielle Fehler und deren Bearbeitung durch das Fehlerüberwachungssystem.
Beispiel 1: Erkennung von Steuerungsfehlem mit der EDC-Si- cherung
Fehlerfall: Falsche Auswahl einer Speicherworthälfte Mittel zur Erkennung: Maßnahme A) und B)
Zuordnung der Bitpositionen: '
X = Von Control 0 angesteuert, Y = Von Control l angesteuert fett - fehlerhafter Informationsteil 31 16 15 00 C7 C4 C3 C0
YYYYYYYYYYYYYYYY | XXXXXXXXXXXXXXXX XXX | YYYY
konsistentes Speicherwort unter Adresse 1 :
31 16 15 00 C7 C4 C3 CO ooooooooooooooooloooooooooooooooo OOOOlllOO
konsistentes Speicherwort unter Adresse 2 :
31 16 15 00 C7 Ci C3 C0 1111111111111111 I 1111111111111110 1101 I 1111
Von Control 0 wurde beim Lesen unter Adresse 2 fälschlicherweise unter Adresse 1 ausgelesen. Das führt zu folgender Leseinformation: 31 16 15 00 C7 C4 C3 C0
1111111111111111 j 0000000000000000 000011111
Die ECC-Bits, die über die gelesenen Daten gebildet wurden: 0000 | 0011 C7 C4 C3 C0
Geradzahliges Syndrommuster, das durch
XOR-Verknüpfung der gelesenen mit den neu gebildeten ECC-Bits entsteht: 0000 | 1100
S7 S4 S3 SO
s führt zur Alarmierung eines Mehrfachfehlers!
Beispiel 2: Erkennung von Steuerungsfehlem mit der EDC-Si- cherung Fehlerfall : eine Speicherworthälfte bleibt hochohmig Mittel zur Erkennung: Maßnahme 1) Zuordnung der Bitpositionen:
X = Von Control 0 angesteuert, Y = Von Control 1 angesteuert fett = fehlerhafter Informationsteil
31 16 15 00 C7 C4 C3 C0
YYYYYYYYYYYYYYYYI XXXXXXXXXXXXXXXX XXXX I YYYY
konsistentes Speicherwort unter Adresse 1 :
31 16 15 00 C7 C4 C3 C0
1010101010100010 I 1010101010101010 0000 I Olli
Von Control 1 wurden beim Lesen unter Adresse 1 fälschlicherweise die zugehörigen Daten- und ECC-Ausgänge nicht niederohmig geschaltet. Das führt zu folgender Leseinformation:
31 16 15 00 C7 C4 C3 C0 1111111111111111(1010101010101010 0000 | 1111
Die ECC-Bits, die über die gelesenen Daten gebildet wurden: 0011 | 0011
C7 C4 C3 C0 Geradzahliges Syndrommuster, das durch XOR-Verknüpfung der gelesenen mit den neu gebildeten ECC-Bits entsteht: 001l|ll00
-1 S4 S3 SO
Es führt zur Alarmierung eines Mehrfachfehlers!
Beispiel 3 : Erkennung von Speicherwort-Adressierungsfehlern
Fehlerfall: Adressierungsfehler (Einfachfehler) auf Speicherzelle mit gleichem Dateninhalt
Mittel zur Erkennung: Maßnahme C) , d.h. die physikalische
Adresse wurde in die Bildung der ECC-Bits mit einbezogen (siehe Fig. 2)
konsistentes Speicherwort unter Adresse B' 111010101010101000: ECC-Bits, allein aus den Daten gen. 1111 | 0011 Par.-Bits, aus der Adr. generiert 0110 | 0101 durch XOR-Bildung resultierender ECC 1001 | 0110 gesamtes Speicherwort :
1010101010101010 | 1010101010101010 100l | 0110
31 16 15 oo C7 C4 C3 C0
konsistentes Speicherwort unter Adresse B' 101010101010101000 :
ECC-Bits, allein aus den Daten gen. 1111 | 0011 Par.-Bits, aus der Adr. generiert 1010 | 0101 durch XOR-Bildung resultierender ECC 010l|0110 gesamtes Speicherwort:
1010101010101010 | 1010101010101010 0101 | 0110
31 16 15 oo C7 C4 C3 C0
Es wurde beim beabsichtigten Lesen unter Adresse B' 111010101010101000 fälschlicherweise unter Adresse B' 101010101010101000 ausgelesen.
Das führt zu folgender Leseinformation:
31 16 15 00 C7 C4 C3 co
1010101010101010 1010101010101010 OlOl l OHO
Neugenerieren der ECC-Bits :
C7 C4 C3 C0
ECC-Bits, allein aus den Daten gen. llll| 0011 Par.-Bits, aus der Soll-Adr. gen. 0110 | 0101 durch XOR-Bildung resultierender ECC 1001)0110
Geradzahliges Syndrommuster, das durch XOR-Verknüpfung der gelesenen mit den neu gebildeten ECC-Bits entsteht : 1100 | 0000
S7 S4 S3 SO
Es führt zur Alarmierung eines Mehrfachfehlers
Beispiel 4: Erkennung von Speicherwort-Adressierungsfehlern
Fehlerfall: Adressierungsfehler {Mehrfachfehler) auf
Speicherzelle mit unterschiedlichem Dateninhalt Mittel zur Erkennung: Maßnahme C) , d.h. die physikalische
Adresse wurde in die Bildung der ECC-Bits mit einbezogen (siehe Fig. 2)
Konsistentes Speicherwort unter Adresse B' 111010101010101000 :
ECC-Bits, allein aus den Daten gen. llll| 0011 Par.-Bits, aus der Adr. generiert 0110|0101 durch XOR-Bildung resultierender ECC 1001|0110 gesamtes Speicherwort:
1010101010101010 | 1010101010101010 100l | 0110
31 16 15 00 C7 C4 C3 C0
konsistentes Speicherwort unter Adresse
B'111011101110001000:
ECC-Bits, allein aus den Daten gen. : 0000 | 0011
Par.-Bits, aus der Adr. generiert :0110|l001 durch XOR-Bildung resultierender ECC : 0110 | 1010 gesamtes Speicherwort :
1111111111111111 | 0000000000000000 0110 | 1010
31 16 15 00 C7 C4 C3 co
Es wurde beim Lesen unter Adresse
111010101010101000 fälschlicherweise unter Adresse
111011101110001000 ausgelesen.
Das führt zu folgender LeseInformation:
1111111111111111 | 0000000000000000 0110 | 1010
31 16 15 C7 co
Neugenerieren der ECC-Bits.•
C7 C4 C3 C0 ECC-Bits, allein aus den Daten gen. 0000|0011 Par.-Bits, aus der Soll-Adr. gen. 0110 | 0101 durch XOR-Bildung resultierender ECC 0110 | 0110
C7 C4 C3 CO
Geradzahliges Syndrommuster, das durch XOR-Verknüpfung der gelesenen mit den neu gebildeten ECC-Bits entsteht : 0000 | 1100
S7 S4 S3 SO
Es führt zur Alarmierung eines Mehrfachfehlers