DE69907622T2 - Verfahren zur Fehlerkorrektur in einem in einer Mehrpegelspeicherzelle gespeicherten Binärwort, mit einer Minimumanzahl von Korrekturbits - Google Patents

Verfahren zur Fehlerkorrektur in einem in einer Mehrpegelspeicherzelle gespeicherten Binärwort, mit einer Minimumanzahl von Korrekturbits Download PDF

Info

Publication number
DE69907622T2
DE69907622T2 DE69907622T DE69907622T DE69907622T2 DE 69907622 T2 DE69907622 T2 DE 69907622T2 DE 69907622 T DE69907622 T DE 69907622T DE 69907622 T DE69907622 T DE 69907622T DE 69907622 T2 DE69907622 T2 DE 69907622T2
Authority
DE
Germany
Prior art keywords
assigned
bits
error
errors
word
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Fee Related
Application number
DE69907622T
Other languages
English (en)
Other versions
DE69907622D1 (de
Inventor
Alberto Modelli
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
STMicroelectronics SRL
Original Assignee
STMicroelectronics SRL
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by STMicroelectronics SRL filed Critical STMicroelectronics SRL
Application granted granted Critical
Publication of DE69907622D1 publication Critical patent/DE69907622D1/de
Publication of DE69907622T2 publication Critical patent/DE69907622T2/de
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/08Error detection or correction by redundancy in data representation, e.g. by using checking codes
    • G06F11/10Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
    • G06F11/1008Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices
    • G06F11/1072Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices in multilevel memories
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C11/00Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor
    • G11C11/56Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using storage elements with more than two stable states represented by steps, e.g. of voltage, current, phase, frequency
    • G11C11/5621Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using storage elements with more than two stable states represented by steps, e.g. of voltage, current, phase, frequency using charge storage in a floating gate
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C29/00Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Quality & Reliability (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Detection And Correction Of Errors (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)
  • For Increasing The Reliability Of Semiconductor Memories (AREA)
  • Error Detection And Correction (AREA)

Description

  • Die Erfindung betrifft ein Verfahren zum Korrigieren von Fehlern in einem in mehrstufigen Speicherzellen gespeicherten Binärwort mit einer minimalen Anzahl von Korrekturbits.
  • Um in einem m Bits enthaltenden Binärwort, das im Folgenden als Quellenwort bezeichnet wird, Fehler nachzuweisen und zu korrigieren, sind Methoden bekannt, die auf der Hinzufügung von "Redundanz" zu dem Quellenwort beruhen, das sind Verfahren basierend auf der Zuweisung eines k Bits enthaltenden Binärworts, im Folgenden als das Korrekturwort bezeichnet, zu dem Quellenwort mit anschließender Speicherung, wobei die k Bits in dem Korrekturwort dadurch erhalten werden, dass k Paritätsprüfungen für k Untergruppen vorgenommen werden, die aus den m Bits in dem Quellenwort passend ausgewählt sind.
  • Diese Zuweisung oder Zuordnung erfolgt in dem sog. Kodierverfahren, bei dem die 2m möglichen Quellenwörter, die sich durch m Bits definieren lassen, in eine Menge von Binärwörtern mit m + k Bits äquivalenter Anzahl abgebildet werden, wobei diese Binärwörter im Folgenden als Codewörter bezeichnet werden, die jeweils dadurch gewonnen werden, dass man ein Quellenwort und das dazugehörige Korrekturwort hintereinander anordnet und dann in den Speicher abspeichert.
  • Der Wert jedes der k Korrekturbits, die während des Kodierverfahrens zugewiesen werden, hängt ab vom Typ der durchgeführten Paritätsprüfung. Beispielsweise können die Werte der k Korrekturbits nach dem sog. geraden Paritätsprüfkriterium zugewiesen werden, d. h., dem Bit in der i-ten Stelle des Korrekturwerts wird der logische Wert 0 oder 1 abhängig davon zugeordnet, ob in der i-ten Untergruppe eine gerade oder eine ungerade Anzahl logischer Werte 1 vorhanden ist, oder man kann die Werte nach dem sog. ungeraden Paritätsprüfkriterium zuordnen, d. h., man ordnet dem Bit in der i-ten Stelle des Korrekturworts den logischen Wert 0 oder 1 abhängig davon zu, ob es in der i-ten Untergruppe eine ungerade oder eine gerade Anzahl logischer Werte 1 gibt.
  • Das Dekodierverfahren, bei dem auf der Grundlage eines gespeicherten Codeworts mit m + k Bits eine Bestimmung des entsprechenden Quellenworts mit m Bits erfolgt, wobei mögliche Fehler, die während der Zeitspanne der Speicherung entstanden sind, nachgewiesen und korrigiert werden, erfolgt durch erneutes Ausführen der k Paritätsprüfungen bezüglich der Bits in dem Quellenwort und durch Vergleichen des so gewonnenen Korrekturworts mit dem aus dem Speicher gelesenen Korrekturwort, um ein Prüfwort zu erhalten, welches ebenfalls vom Binärtyp ist und die Stelle des oder derjenigen Fehler anzeigt, der bzw. die in dem Quellenwort vorhanden sind.
  • Im Einzelnen: Bei dem Dekodierverfahren wird das i-te Bit in dem Korrekturwert, welches durch Ausführen der i-ten Qualitätsprüfung bezüglich der i-ten Untergruppe des binären Quellenworts durchgeführt wird, verglichen mit dem Bit, das sich an der i-ten Stelle des Korrekturworts befindet, das von dem Speicher gelesen wurde, und abhängig davon, ob die beiden miteinander verglichenen Bits gleich oder verschieden voneinander sind, wird der logische Wert 0 oder 1 dann dem i-ten Bit in dem Prüfwort zugewiesen.
  • Das Prüfwort wird anschließend mit mehreren Fehlercodes verglichen, von denen jeder durch ein Binärwort gebildet wird, das die gleiche Länge wie das Prüfwort besitzt und einem Bit oder einer Gruppe von Bits in dem Quellenwort und in dem Korrekturwort zugewiesen und damit kennzeichnend ist für die Stelle dieses Bits oder dieser Gruppe von Bits. Gibt es einen Fehler, so ist das Prüfwort identisch mit einem der Fehlercodes. Auf diese Weise kann mit Hilfe der Zuordnung das unkorrekte Bit oder können die unkorrekten Bits identifiziert werden.
  • Den Bits in einem Fehlercode mit dem logischen Wert 1 ist eine Bedeutung zugeordnet, die verknüpft ist mit der Zusammensetzung der Untergruppen in dem Quellenwort, dessen Parität zu prüfen ist.
  • Insbesondere kennzeichnet ein Bit mit logischem Wert 1 an der i-ten Stelle des Fehlercodes den Umstand, dass das Bit in dem Quellenwort, das sich an der zu diesem Fehlercode gehörigen Stelle befindet, Teil der i-ten Untergruppe von Bits in dem Quellenwort ist, für das die i-te Paritätsprüfung durchzuführen ist.
  • Im Fall des Fehlercodes "0101" beispielsweise und unter der Annahme, dass dieser dem Fehler in dem ersten Bit des Quellenworts zugeordnet ist, kennzeichnet dieser Quellencode den Umstand, dass das erste Bit in dem binären Quellenwort Teil der Untergruppen von Bits sein muss, für die die erste und die dritte Paritätsprüfung durchzuführen ist.
  • Wenn demnach das erste Bit in dem Quellenwort fehlerhaft ist, so unterscheidet sich sowohl das erste Bit als auch das dritte Bit in dem Korrekturwort, das im Zuge der Dekodierung erzeugt wird (gewonnen aus der ersten und der dritten Paritätsprüfung) von den entsprechenden Bits in dem Korrekturwort, das im Zuge der Kodierung (während der das Bit anders war) erzeugt wurde, und somit ist bei dem durch Vergleich der zwei Korrekturwörter gewonnenen Fehlerquote sowohl das erste als auch das dritte Bit auf den logischen Wert 1 gesetzt.
  • Wenn die k Untergruppen in dem Quellenwort, für die k Paritätsprüfungen durchzuführen sind, passend gewählt werden, ist der Fehlercode in einer zweifach-eindeutigen Entsprechung zu der Stelle in dem Codewort des einzelnen fehlerhaften Bits oder der einzelnen fehlerhaften Bits, so dass, wenn diese zweifach-eindeutige Entsprechung bekannt ist, das inkorrekte Bit oder die inkorrekten Bits korrigiert werden können.
  • Werden herkömmliche Speicher verwendet, in denen ein einzelnes Bit in jeder Speicherzelle gespeichert ist, so führt eine Fehlfunktion einer Speicherzelle zu einer Beeinträchtigung eines einzelnen Bits. Wenn, wie es üblicherweise der Fall bei dieser Art von Speicher ist, die Wahrscheinlichkeit eines Ausfalls einer Zelle relativ gering ist, so reicht es aus, einen Korrekturcode zu verwenden, der einen Einzelfehler in dem Quellenwort nachweisen und korrigieren kann. Tatsächlich ist die Wahrscheinlichkeit des Auftretens mehrerer Fehler in dem Quellenwort vernachlässigbar.
  • Andererseits kann in einem mehrstufigen Speicher, in welchem mehrere Bits in jeder Speicherzelle gespeichert werden, der Ausfall auch nur einer einzigen Speicherzelle zu einem Mehrfachfehler führen, d. h. einem Fehler bei mehreren Bits gleichzeitig.
  • Bei einer mehrstufigen Speicherzelle mit schwimmendem Gate ist bekanntlich den zu speichernden Daten eine Menge elektrische Ladung zugeordnet, die in der schwimmenden Gatezone gespeichert wird (was wiederum den Wert der Schwellenspannung der Speichzelle definiert), und somit kann der Verlust oder die Zunahme elektrischer Ladungen in der schwimmenden Gatezone einer der Speicherzelle, die zum Speichern des Codeworts verwendet wird, innerhalb des Codeworts eine maximale Anzahl von Fehlern erzeugen, die äquivalent ist zu der Anzahl von n Bits, die in der Speicherzelle gespeichert sind, in der die Beeinträchtigung der elektrischen Ladung stattgefunden hat.
  • Um effizient zu sein, muss ein Verfahren zum Korrigieren der Fehler in einem mehrstufigen Speicher in der Lage sein, Mehrfachfehler zu erkennen und zu korrigieren.
  • Mit Hilfe der bekannten Verfahren zur Korrektur von Mehrfachfehlern gäbe es eine beträchtliche Zunahme der Anzahl von Bits in dem Korrekturwort für die gleiche Länge des Quellenworts, verglichen mit der Anzahl, die zur Korrektur eines Einzelfehlers erforderlich ist, und somit gäbe es eine Zunahme der Speichergröße für die gleiche Datenspeicherkapazität.
  • Es sei allerdings angemerkt, dass die Beeinträchtigung der in der schwimmenden Gatezone gespeicherten elektrischen Ladung einer mehrstufigen Speicherzelle bedeutet, dass die n möglichen Fehler, die diese Beeinträchtigung in dem Codewort hervorruft, an Stellen vorhanden sind, die zueinander korreliert sind und auf der Grundlage der Zuordnungsregel bekannt sind, welche vorab in dem Stadium des Entwurfs des Speichers festgelegt wurde, und nach der die Bits in dem Codewort in den Speicherzellen gespeichert wurden.
  • Wenn z. B. in jeder Speicherzelle n Bits gespeichert sind, die sich in benachbarten Positionen innerhalb des Binärworts befinden, die n möglichen Fehler, die durch die Fehlerhaftigkeit in der Speicherzelle hervorgerufen werden können, auch nur an solchen Stellen liegen können, die innerhalb des Binärworts benachbart sind.
  • Um einen Einzelfehler und Doppelfehler zu korrigieren, die an beliebigen Stellen auftreten, die nicht miteinander korreliert sind innerhalb eines in einem herkömmlichen Speicher abgespeicherten Codeworts, ist es für ein Binärwort mit m zu speichernden bits notwendig, eine Anzahl von k Korrekturbits vorzusehen, demzufolge die folgende Ungleichung erfüllt ist:
  • Figure 00050001
  • Die obige Ungleichung drückt lediglich den Umstand aus, dass es möglich sein muss, die 2k möglichen Korrekturwörter, die mit k Bits erzeugt werden können, in doppelt eindeutige Entsprechnung gebracht werden können mit den m + k möglichen Stellen eines Einzelfehlers und mit den (m + k)(m + k – 1)/2 möglichen Kombinationen von Stellen von zwei Fehlern. Die zusätzliche 1 leitet sich aus dem Umstand ab, dass auch die Notwendigkeit besteht, den Zustand nicht vorhandener Fehler zu berücksichtigen.
  • Aus 1) lässt sich einfach ableiten, dass zum Korrigieren eines Einzelfehlers in dem Codewort die folgende Ungleichung erfüllt sein muss: 2k > 1 + m + k 2)
  • Andererseits wird zur Korrektur von zwei Fehlern an Stellen, die innerhalb des Codeworts korreliert sind, das in einen mehrstufigen Speicher gespeichert ist, in welchem zwei Bits in einer Speicherzelle gespeichert sind, für ein Quellenwort mit m Bits einer Anzahl k von Korrekturbits derart gefordert, dass folgende Ungleichung erfüllt ist:
  • Figure 00050002
  • Dies kann man aus der Ungleichung 1) deduzieren, wenn man den Umstand berücksichtigt, dass die möglichen Kombinationen der Stellen von zwei Fehlern in korrelierten Stellen lediglich (m + k)/2 betragen.
  • Im Allgemeinen wird zur Korrektur von r Fehlern an Stellen, die innerhalb eines mehrstufigen Speichers gespeichert sind, in welchem zwei Bits in einer Speicherzelle abgespeichert sind, für ein Binärwort mit m zu speichernden Bits gefordert, dass es eine Anzahl von k Korrekturbits gibt, so dass die folgende Ungleichung erfüllt ist:
  • Figure 00060001
  • Für die höchsten Werte von m zeigt die Tabelle in 1 die Minimalwerte für k, die zur Korrektur von zwei Fehlern an beliebigen Stellen erforderlich sind, die zur Korrektur von zwei Fehlern ineinander benachbarten Stellen erforderlich sind, und die für einen Einzelfehler erforderlich sind, wenn in jeder Speicherzelle zwei Bits gespeichert sind.
  • Eine Untersuchung dieser Tabelle zeigt, dass die Korrektur von zwei Fehlern in korrelierten Stellen unter Verwendung der gleichen Anzahl zusätzlicher Zellen durchgeführt werden kann, die auch zur Korrektur eines Einzelfehlers benötigt wird, zumindest für Binärwörter, die länger als 8 Bits sind.
  • Insbesondere ergibt eine Analyse der untersten beiden Reihen der Tabelle, das zum Durchführen der Korrektur von zwei in korrelierten Stellen befindlichen Fehlern im Fall eines 32 Bits enthaltenden Binärworts (15 Zellen) es notwendig ist, 6 Korrekturbits (3 Zellen) mit einer Steigerung der Speichermatrixfläche von 19% zu verwenden, wohingegen zum Durchführen der Korrektur von zwei Fehlern in korrelierten Positionen im Fall eine 64 Bits enthaltenden Binärworts (32 Zellen) die Notwendigkeit besteht, 7 Korrekturbits (4 Zellen) mit einer Zunahme von lediglich 12,5% der Speichermatrixfläche zu verwenden.
  • Die obige Information bezüglich des Falls von zwei Fehlern in korrelierten Stellen gilt auch für den allgemeinen Fall von n Fehlern in korrelierten Stellen, und dies zeigt unmittelbar, dass die Korrelation zwischen der Stelle der Fehler innerhalb des Quellenworts im Allgemeinen eine Bedingung ist, die die Anzahl von notwendigen Korrekturbits minimiert (und damit die Anzahl zusätzlicher Korrekturzellen), die sich mit Hilfe der Ungleichung 3) im Fall eines beliebigen Werts n oder mit Hilfe der Ungleichung 4) im Fall von n = 2 errechnen lässt.
  • In der Literatur gibt es aber keine bekannten Kriterien der Definition der k Untergruppen des Quellenworts, bezüglich derer die k Operationen der Paritätsprüfung ausgeführt werden können, sobald es um die Korrektur mehrfacher Fehler in korrelierten Stellen geht, wobei die Bedingung der Doppelt-Eindeutigkeit der Entsprechung zwischen dem Fehlercode und der Stelle des einzelnen fehlerhaften Bits oder der n fehlerhaften Bits erfüllt ist. Die US-A-5 621 682 offenbart ein mehrstufiges Speichersystem, das mit einer Fehlerkorrektureinrichtung unter Verwendung gespeicherter Prüfdaten ausgestattet ist.
  • Das Ziel der vorliegenden Erfindung besteht somit in der Schaffung eines Verfahrens zum Korrigieren von Fehlern in einem Binärwort, das in mehrstufigen Speicherzellen gespeichert ist, wobei das Verfahren die Bedingung erfüllt, dass nur die minimale Anzahl von Korrekturbits benötigt wird, und die Bedingung der Doppel-Eindeutigkeit der Entsprechung zwischen dem Fehlercode und der Stelle des einzelnen fehlerhaften Bits oder der n fehlerhaften Bits erfüllt.
  • Erfindungsgemäß wird ein Verfahren zum Korrigieren von Fehlern unter Verwendung einer minimalen Anzahl von Korrekturbits gemäß Anspruch 1 geschaffen.
  • Um das Verständnis der Erfindung zu erleichtern, wird im Folgenden lediglich beispielhaft und ohne Beschränkung eine bevorzugte Ausführungsform an Hand der begleitenden Zeichnungen beschrieben. Es zeigen:
  • 1 eine Tabelle, die die kleinste Anzahl von Korrekturbits enthält, die notwendig sind, um einen Einzelfehler oder einen Doppelfehler zu korrigieren;
  • 2 ein Flussdiagramm von Operationen zum Zuordnen von Fehlercodes gemäß der Erfindung;
  • 3 eine Tabelle, die die Fehlercodes relativ zu einer ersten Anwendung des erfindungsgemäßen Verfahrens enthält;
  • 4 eine Tabelle, die die Fehlercodes für eine zweite Verwendung der erfindungsgemäßen Verfahrens enthält;
  • 5 eine erste Korrekturmatrix, gewonnen durch das vorliegende Verfahren;
  • 6 eine zweite Korrekturmatrix, die mit Hilfe des vorliegenden Verfahrens gewonnen wurde; understanding
  • 7 ein logisches Diagramm einer Fehlerkorrekturschaltung.
  • Das vorliegende Korrekturverfahren wird im Folgenden unter Bezugnahme auf das in 1 gezeigte Flussdiagramm erläutert, außerdem ohne Verlust an Allgemeingültigkeit in Bezug auf den speziellen Fall, bei dem n = 2, m = 6 und k = 4, d. h. in Bezug auf den Fall von Speicherzellen, die pro Zelle zwei Bits speichern, wobei 10 Bits umfassende Codewörter (die 5 Speicherzellen benötigen) verwendet werden, in denen die ersten 6 Bits (3 Zellen) das Quellenwort und die letzten 4 Bits (2 Zellen) das während des Kodierverfahrens erzeugte Korrekturwort definieren.
  • Darüber hinaus wird das vorliegende Korrekturverfahren im Folgenden ohne Verlust an Allgemeingültigkeit basierend auf der Annahme erläutert, dass benachbarte Stellen innerhalb des Codeworts den beiden Bits zugeordnet sind, die in jeder Speicherzelle gespeichert sind, wobei man sieht, dass in dem Fall, dass die korrelierten Stellen innerhalb des Codeworts den beiden Bits zugeordnet sind, die in jeder Speicherzelle gespeichert sind, wie es im Folgenden unter Bezugnahme auf zwei Bits angegeben wird, die sich in benachbarten Stellen befinden, was auch für den Fall gilt, dass die beiden Bits sich in korrelierten Stellen befinden.
  • Außerdem wird der Umstand hervorgehoben, dass die spezifische Anwendung, für die das vorliegende Verfahren ausgestaltet ist, d. h. die Korrektur von Fehlern an Stellen, die zueinander korreliert sind, bedeutet, dass mit Hilfe des Verfahrens die Möglichkeit besteht, nicht nur einen Einzelfehler zu korrigieren, sondern auch ein Paar von Fehlern, die erzeugt werden durch die Fehlerhaftigkeit einer einzelnen Speicherzelle, und nicht durch die Fehlerhaftigkeit von zwei getrennten Speicherzellen, die jeweils einen Einzelfehler erzeugen, da in letztgenanntem Fall die beiden Fehler nicht zueinander korreliert werden.
  • Gemäß einem ersten Aspekt der Erfindung sind die k Untergruppen in dem Quellenwort, bezüglich derer die k Paritätsprüfungen durchzuführen sind, dadurch definiert, dass man zu Beginn die Möglichkeit des Vorhandenseins von Fehlern in dem aus dem Speicher gelesenen Korrekturwert berücksichtigt, da dies die Definition der k Untergruppen selbst in der im Folgenden näher erläuterten Weise konditioniert.
  • Wie in dem in 2 dargestellten Flussdiagramm gezeigt wird, wird zunächst ein Bock 10 erreicht, in dem ein Fehlercode jedem der Einzelfehler und jedem der Doppelfehler in der korrelierten Stelle innerhalb des Korrekturworts zugeordnet wird.
  • Das Kriterium, gemäß dem die Fehlercodes den Stellen der Fehler in dem Korrekturwort zugewiesen werden, das aus dem Speicher ausgelesen wird, lässt sich ableiten aus der Beobachtung, was tatsächlich während des Dekodiervorgangs im Fall eines Fehlers in dem Korrekturwort geschieht.
  • Nimmt man insbesondere Bezug auf das hier im Rahmen der Beschreibung betrachtete Beispiel, so ist, wenn keine der Speicherzellen, in denen die Bits des Quellenworts und des Korrekturworts gespeichert sind, fehlerhaft ist, das während des Dekodiervorgangs erzeugte Korrekturwort mit dem aus dem Speicher ausgelesenen Korrekturwort identisch, und dementsprechend ist das zugehöri ge Prüfwort null (d. h. es besteht vollständig aus Nullen). Dieses Prüfwort kann also nicht für eine Zuordnung hergenommen werden, da es den Mangel an Fehlern kennzeichnet.
  • Wenn andererseits die Speicherzelle, in der die ersten beiden Bits des Korrekturworts gespeichert sind, fehlerhaft ist, können folgende Situationen auftreten;
    • – es gibt einen Einzelfehler in dem ersten der vier gespeicherten Korrekturbits, und damit ist das erste Bit in dem während des Dekodiervorgangs erzeugten Korrekturwort, gewonnen durch die erste Paritätsprüfung, nicht äquivalent zu dem ersten Bit in dem gespeicherten Korrekturwort, das während des Kodierverfahrens erzeugt wurde, und somit ist die erste Paritätsprüfung nicht erfolgreich, während die aufeinander folgenden Prüfungen korrekt sind und ein positives Ergebnis liefern, und dementsprechend wird der Fehlercode "0001" ("1" in Dezimaldarstellung) vorteilhaft diesem Einzelfehler im ersten Bit innerhalb des gespeicherten Korrekturworts zugeordnet, was den Umstand kennzeichnet, dass das Ergebnis der ersten Prüfung negativ war (das erste Bit mit logischem Wert 1), und dass das Ergebnis der nachfolgenden drei Prüfungen positiv war (die nachfolgenden drei Bits haben logischen Wert 0);
    • – es gibt einen Einzelfehler in dem zweiten der vier gespeicherten Korrekturbits, und somit ist die zweite Paritätsprüfung erfolglos, während die nachfolgenden Prüfungen korrekt sind. Vorteilhaft wird der Fehlercode "0010" (was dezimal "2" bedeutet) diesem Fehler zugeordnet;
    • – es gibt einen Doppelfehler in dem ersten und in dem zweiten gespeicherten Korrekturbit, und dementsprechend sind sowohl die erste als auch die zweite Paritätsprüfung erfolglos; der Fehlercode "0011" (der dezimal "3" bedeutet), wird folglich vorteilhaft diesem Doppelfehler zugeordnet.
  • In ähnlicher Weise können, wenn die Speicherzelle, in der das dritte und das vierte Korrekturbit gespeichert sind, fehlerhaft ist, folgende Situationen auftreten:
    • – es gibt einen Einzelfehler in dem dritten gespeicherten Korrekturbit, so dass die dritte Paritätsprüfung erfolglos ist. Der Fehlercode "0100" (dezimal "4") wird in vorteilhafter Weise diesem Fehler zugewiesen;
    • – es gibt einen Einzelfehler in dem vierten gespeicherten Korrekturbit, und somit ist die vierte Paritätsprüfung erfolglos; vorteilhaft wird der Fehlercode "1000" (was dezimal "8" bedeutet) diesem Einzelfehler zugeordnet;
    • – es gibt einen Doppelfehler in dem dritten und dem vierten gespeicherten Korrekturbit, so dass sowohl die dritte als auch die vierte Paritätsprüfung erfolglos ist; der Fehlercode "1100" (dezimal "12") wird vorteilhaft diesem Doppelfehler zugewiesen.
  • Im Licht der obigen Beschreibung wird also in dem Block 10 ein Fehlercode, dessen i-tes Bit auf den logischen Wert 1 gesetzt ist, dem Einzelfehler in dem i-ten Bit des gespeicherten Korrekturworts zugeordnet, wohingegen der Doppelfehler dem i-ten und dem daran anschließenden Bit innerhalb des gespeicherten Korrekturworts einem Fehlercode zugeordnet wird, den man erhält durch Bilden einer EXKLUSIV-ODER- oder EX-ODER-Operation zwischen jedem Paar von Bits in den entsprechenden Stellen innerhalb der Fehlercodes, die dem Einzelfehler in dem i-ten Bit und dem Einzelfehler in dem nachfolgenden Bit zugeordnet sind, so dass das i-te Bit und das daran anschließende Bit auf den logischen Wert 1 gesetzt werden.
  • Die Zuordnung von Fehlercodes zu den einzelnen und Doppelfehlern in dem Korrekturwort konditioniert die Zuordnung der Fehlercodes zu den Einzel- und Doppelfehlern in dem Quellenwort, da bei der Auswahl der Untergruppen in dem Quellenwort, für die die Paritätsprüfungen auszuführen sind, die Notwendigkeit besteht, den Umstand zu berücksichtigen, dass die Fehlercodes 1, 2, 3, 4, 8 und 12 bereits Fehlern in dem gespeicherten Korrekturwort zugeordnet sind.
  • Es gibt also aus dem Block 10 einen Übergang zu einer Reihe von Blöcken, in denen jeweils zu einer gegebenen Zeit aufeinander folgende getrennte Paare benachbarter Bits in dem Quellenwort berücksichtigt werden (d. h. entsprechend der obigen Beschreibung) wird jeweils zu einem Zeitpunkt die Folge von n Bits berücksichtigt, die in einer einzelnen Speicherzelle abgespeichert ist), und für jedes von ihnen werden Fehlercodes festgelegt, die den Einzelfehlerbits und dem Doppelfehler in beiden Bits zuzuordnen sind.
  • Bei dem im Rahmen der vorliegenden Beschreibung berücksichtigten Beispiel werden zunächst das durch as erste und das zweite Bit gebildete Paar, dann das durch das dritte und das vierte Bit gebildete Paar und schließlich das durch das fünfte und sechste Bit in dem Quellenwort gebildete Paar berücksichtigt.
  • Im Einzelnen: Aus dem Block 10 gibt es einen Übergang zu einem Block 20, in welchem ein Paar benachbarter Bits in dem Quellenwort ausgewählt wird, die bei der Zuordnung der Fehlercodes zu berücksichtigen sind.
  • Aus dem Block 20 gibt es dann einen Übergang zu einem Block 30, in welchem der kleinste Fehlercode aus solchen, die noch nicht anderen Fehlern zugeordnet wurden, dem Einzelfehler in dem ersten Bit innerhalb des ausgewählten Paars von Bits zugeordnet wird.
  • Aus dem Block 30 gibt es dann einen Übergang zu einem Block 40, in welchem der kleinste Fehlercode aus den Fehlercodes, die noch nicht anderen Fehlern zugeordnet wurden, und welcher anschließend an den folgt, der dem ersten Bit in dem betrachteten Paar von Bits zugeordnet ist, dem Einzelfehler in dem zweiten Bit des ausgewählten Bit-Paares zugewiesen.
  • Von dem Block 40 gibt es dann einen Übergang zu einem Block 50, in welchem ein Fehlercode, der durch EX-ODER-Operation für jedes entsprechende Paar von Bits in dem den Einzelfehlern zugeordneten Fehlercodes erhalten wird, dem Doppelfehler in den beiden Bits in dem ausgewählten Bit-Paar zugewiesen.
  • Von dem Block 50 gibt es dann einen Übergang zu einem Block 60, in welchem geprüft wird, ob der im Block 50 festgestellt Fehlercode bereits anderen Fehlern in dem Quellenwort oder in dem Korrekturwort zugewiesen wurde.
  • Wenn der Fehlercode bereits anderen Fehlern zugewiesen wurde (das ist der Ausgang "ja" aus dem Block 60), so verbietet dies die Möglichkeit, dem Kriterium der Doppel-Eindeutigkeit zwischen Fehlercodes und Fehlerpositionen zu genügen, und damit gibt es aus dem Block 60 einen Übergang zu einem Block 70. Andernfalls, wenn der Fehlercode noch nicht anderen Fehlern zugeordnet wurde (dies ist der Ausgang "nein" aus dem Block 60), so ermöglicht dies die Erfüllung des Kriteriums der doppelten Eindeutigkeit zwischen Fehlercodes und Fehlerstellen, und dementsprechend gibt es aus dem Block 60 einen Übergang zu dem Block 80.
  • Im Block 70 gibt es die Zurückweisung des dem Doppelfehler in beiden Bits des erforderlichen Paares zugeordneten Fehlercodes, da dieser nicht die Bedingung der doppelten Eindeutigkeit erfüllt, und es wird auch der Fehlercode zurückgewiesen, der den Fehler in dem zweiten Bit des ausgewählten Bit-Paares zugeordnet wurde.
  • Aus dem Block 70 gibt es einen Übergang erneut zu dem Block 40, um einen neuen Fehlercode zu ermitteln, der den Fehler in dem zweiten Bit des betrachteten Bit-Paares zugewiesen wird.
  • Die in Verbindung mit den Blöcken 40 bis 70 beschriebenen Operationen werden dann so lange wiederholt, bis dem Fehler in dem zweiten Bit des ausgewählten Bit-Paares ein Fehlercode zugeordnet ist, was ermöglicht, einen Fehlercode zu erhalten, der dem Doppelfehler in den beiden Bits zugewiesen ist und die Bedingung der doppelten Eindeutigkeit erfüllt.
  • Wenn dieser Fehlercode ermittelt worden ist, gibt es einen Übergang zum Block 80, in welchem der dem Doppelfehler zugeordnete Fehlercode und die beiden den zwei einzelnen Fehlern zugeordneten Fehlercodes gespeichert werden.
  • Aus dem Block 80 gibt es dann einen Übergang zu einem Block 90, wo geprüft wird, ob es ein nachfolgendes Paar benachbarter Bits in dem Quellenwort gibt, die für die Zuordnung von Fehlercodes berücksichtigt werden müssen.
  • Gibt es ein nachfolgendes Paar von Bits in dem Quellenwort, das zu berücksichtigen ist (der Ausgang "ja" aus dem Block 90), dann gibt es aus dem Block 90 noch einmal einen Übergang zum Block 20, um die beschriebenen Vorgänge für ein nachfolgendes Bit-Paar in dem Quellenwort zu wiederholen; andernfalls, falls sämtliche Paare benachbarter Bits in dem Quellenwort berücksichtigt sind (der Ausgang "nein" aus dem Block 90) gibt es aus dem Block 90 einen Übergang zu einem Block 100, der im Folgenden beschrieben wird.
  • Bezugnehmend auf das im Rahmen der vorliegenden Beschreibung betrachtete Beispiel wird durch die oben beschriebenen Vorgänge der Fehlercode "0101" (in dezimaler Darstellung "5") dem Fehler im ersten Bit des Quellenworts zugeordnet, und es wird der Fehlercode "0110" (dezimal: "6") dem Fehler im zweiten Bit des Quellenworts zugeordnet.
  • Der dem Doppelfehler in den beiden Bits zuzuordnende Fehlercode wäre also "0011" (dezimal "3"), der allerdings bereits einem Fehler im Korrekturwort zugeordnet ist, so dass die Zuordnung des Fehlercodes "0110" zu dem Fehler im zweiten Bit des betrachteten Bit-Paares zurückgewiesen wird und der Fehlercode "0111" (dezimal "7") dem Fehler im zweiten Bit zugewiesen wird.
  • Allerdings macht es auch dies unmöglich, die zuvor erwähnte Bedingung der doppelten Eindeutigkeit zu erfüllen, so dass die oben beschriebenen Operationen wiederholt werden.
  • Man einfach prüfen, dass der kleinste Fehlercode, der dem Fehler in dem zweiten Bit des Quellenworts zugewiesen werden kann, und das zu keiner Mehrdeutigkeit führt, der Wert "1010" (dezimal "10") ist, der zusammen mit dem Fehlercode "0101", der dem Fehler im ersten Bit des Quellenworts zugewiesen wurde, für einen Doppelfehler in dem ersten und dem zweiten Bit des Quellenworts einen Fehlercode "1111" (dezimal "15") ergibt.
  • Die Tabelle in 3 zeigt die Fehlercodes, die den Einzel- und Doppelfehlern in dem im Rahmen der vorliegenden Beschreibung betrachteten Beispiel zugewiesen sind.
  • Das Verfahren zum Zuordnen der Fehlercodes zu den Bit-Fehlern im Quellenwort lässt sich auf jegliche Werte von m und k erweitern und lässt sich mit Hilfe eines einfachen Rechenprogramms ausführen.
  • Zum Beispiel zeigt die Tabelle nach 4 die Fehlercodes, die in der oben beschriebenen Weise für eine periodische Anwendung bestimmt wurden, bei der n = 2, m = 46 und k = 8, d. h. für insgesamt 36 Speicherzellen bestimmt wurden, von denen 32 für das Quellenwort und 4 für das Korrekturwort vorgesehen sind.
  • Das Verfahren zum Zuordnen der Fehlercodes zu den Bit-Fehlern im Quellenwort lässt sich auch auf Werte von n erweitern, die größer als 2 sind.
  • Für beliebige Werte von n werden Mengen von n benachbarten Bits in dem Codewort (d. h. die in einer einzelnen Speicherzelle gespeicherten Bits) zu einem gegebenen Zeitpunkt ausgewählt, und für jeden von ihnen werden die Fehlercodes jedem der n Einzelfehler zugewiesen.
  • In Verbindung mit der Zuordnung der Fehlercodes zu Mehrfachfehlern muss der Umstand berücksichtigt werden, dass für Werte von n, die größer als 2 sind, die Notwendigkeit besteht, nicht nur den Fehlercode zu bestimmen, der den Mehrfachfehler in sämtlichen n Bits zugeordnet wird, sondern außerdem sämtliche Fehlercodes bestimmt werden müssen, die jedem der Mehrfachfehler mit r Bits zugeordnet werden, wobei 1 < r < n.
  • Die dem Mehrfachfehler mit n Bits zuzuordnenden Fehlercodes, und die den Mehrfachfehlern mit r Bits zuzuordnenden Fehlercodes werden also in der oben beschriebenen Weise für den Fall n = 2 bestimmt, d. h. durch Prüfen, ob der Fehlercode bereits anderen Fehlern in dem Code zugewiesen wurde, und falls dies der Fall ist, Zurückweisen von einem oder mehreren Fehlercodes, die den einzelnen Fehlern zugeordnet wurden, um dann wiederholt nach anderen Fehlercodes zu suchen, die diesen Einzelfehlern zuzuordnen sind, bis der dem Mehrfachfehler zugeordnete Fehlercode gefunden ist, der nicht anderen Fehlern bereits zugeordnet ist.
  • Wenn z. B. n = 4 und die Fehlercodes jedem der 4 Einzelfehler zugewiesen sind, muss man nicht nur den Fehlercode bestimmen, der dem Mehrfachfehler bei sämtlichen 4 Bits zuzuordnen ist, sondern man muss auch die Fehlercode bestimmen, die jedem der Mehrfachfehler von 3 Bits und jedem der Mehrfachfehler in 2 Bits zuzuordnen sind.
  • Unter erneuter Bezugnahme auf das in 2 gezeigte Flussdiagramm sind im Block 100, zu dem ein Übergang erfolgt, wenn sämtliche Bit-Paare im Quellenwort ausgewählt sind und 3 Fehlercodes jedem von ihnen zugeordnet sind (zwei für die einzelnen Fehler und einen für den Doppelfehler), folgende Sachverhalte definiert:
    • – eine erste Matrix oder "Maske", die zum Bestimmen der k Untergruppen von Bits in dem Quellenwort zu verwenden ist, für das die Prüfoperationen während der Kodierung und der Dekodierung auszuführen sind, und die dazu dient, die Stelle der Einzelfehler innerhalb des Quellenworts während des Dekodiervorgangs festzustellen; diese Matrix, üblicherweise als Paritätsmatrix bezeichnet, wird aufgebaut, indem man in Matrixform in der im Folgenden erläuterten Weise die Fehlercodes aufzeichnet, die den Einzelfehlern zugewiesen werden, sowohl im Quellenwort als auch im Korrekturwort; und
    • – eine zweite Matrix oder "Maske", die nur während des Dekodiervorgangs dazu verwendet wird, die Stelle der Doppelfehler innerhalb des Quellenworts zu ermitteln, dadurch definiert, dass in der im Folgenden beschriebenen Weise in Form einer Matrix die Fehlercodes aufgezeichnet werden, die den Doppelfehlern sowohl im Quellenwort als auch im Korrekturwort zugeordnet sind.
  • 5 und 6 veranschaulichen zwei Tabellen, die die erste und die zweite Matrix für das im Rahmen der vorliegenden Beschreibung vorgestellte Beispiel enthalten.
  • Insbesondere ist beim Kodiervorgang das Bit mit dem logischen Wert 1 in der i-ten Reihe kennzeichnend für die Stelle innerhalb des Korrekturworts, in der das Ergebnis der i-ten Prüfoperation geladen werden muss, die für die i-te Untergruppe des Quellenworts ausgeführt wird, während beim Dekodiervorgang jenes Bit kennzeichnend für die Stelle des Bits in dem Korrekturwort ist, mit dem das Ergebnis des i-ten Prüfvorgangs, der für die i-te Untergruppe des Quellenworts durchgeführt wird, verglichen werden muss. Die erste und die zweite Matrix werden auch beim Dekodiervorgang dazu verwendet, den Fehler zu bestimmten, der sich in dem Quellenwort oder in dem dazu gehörigen Korrekturwort befindet.
  • Wenn beim Dekodiervorgang die Operationen des Prüfens der verschiedenen Untergruppen von Bits und des Vergleichs zwischen dem aus dem Speicher gelesenen Korrekturwert mit demjenigen aus dem Dekodiervorgang ausgeführt sind, so wird ein Prüfwort erzeugt und mit den Fehlercodes verglichen, die in den Spalten der ersten und der zweiten Matrix enthalten sind.
  • Beim Vorhandensein eines einzelnen Fehlers oder eines Doppelfehlers in korrelierten Stellen innerhalb des Quellenworts oder in dem Korrekturwort ist das beim Dekodiervorgang erhaltene Prüfwort also äquivalent zu einem der Fehlercodes, die in den Spalten der ersten oder der zweiten Matrix enthalten sind, und insbesondere ist das Prüfwort äquivalent zu dem Fehlercode, der diesem Einzel- oder Doppelfehler zugewiesen ist.
  • Wenn dieser Fehlercode bekannt ist, ist die Stelle des Einzel- oder des Doppelfehlers (der in der "Fehlerstellen"-Reihe der Tabelle nach 5 oder 6 entsprechend der Spalte gelesen werden kann, in der der Fehlercode enthalten ist) sofort bekannt und lässt sich dementsprechend korrigieren.
  • Bezugnehmend auf die in 5 gezeigte Matrix wird sowohl während des Kodiervorgangs als auch während des Dekodiervorgangs die erste Paritätsprüfung bezüglich der Untergruppe von Bits durchgeführt, die aus dem ersten, dem vierten, dem fünften und dem sechsten Bit im Quellenwort gebildet wird, wird die zweite Paritätsprüfung bezüglich der Untergruppe von Bits durchgeführt, die aus dem zweiten, dem dritten, dem vierten und dem fünften Bit gebildet wird, wird die dritte Paritätsprüfung bezüglich der Untergruppe von Bits durchgeführt, die aus dem ersten, dem dritten und dem fünften Bit gebildet wird, und wird die vierte Paritätsprüfung bezüglich der Untergruppe von Bits durchgeführt, die aus dem zweiten, dem vierten und dem sechsten Bit gebildet wird.
  • Darüber hinaus wird während des Kodiervorgangs das Ergebnis der ersten Prüfoperation in das erste Bit des Korrekturworts geladen, das Ergebnis des zweiten Prüfvorgangs wird in das zweite Bit im Korrekturwort geladen, das Ergebnis des dritten Prüfvorgangs wird in das dritte Bit im Korrekturwort geladen, und das Ergebnis des vierten Prüfvorgangs wird in das vierte Bit des Korrekturworts geladen.
  • Beim Dekodiervorgang hingegen wird das Ergebnis der ersten Prüfoperation mit dem Bit verglichen, das in der ersten Stelle des Korrekturworts steht, das Ergebnis des zweiten Prüfvorgangs wird verglichen mit dem Bit in der zweiten Stelle des Korrekturworts, das Ergebnis des dritten Prüfvorgangs wird verglichen mit dem Bit an der dritten Stelle des Korrekturworts, und das Ergebnis des vierten Prüfvorgangs wird mit dem Bit verglichen, das sich an der vierten Stelle des Korrekturworts befindet.
  • Beim Dekodiervorgang wird außerdem, wenn das Prüfwort von null verschieden ist, das Prüfwort mit den Fehlercodes verglichen, die in den Spalten der Matritzen der 5 und 6 enthalten sind, um den Fehlercode zu identifizieren, der mit ihm identisch ist, und anschließend wird die Dezimaldarstellung dieses Fehlercodes, der die Stelle dieses Einzel- oder Doppelfehlers in dem Quellenwort oder dem Korrekturwert kennzeichnet, in der untersten Reihe der Matrix gelesen. An dieser Stelle lässt sich also der Einzel- oder der Doppelfehler auf diese Weise korrigieren.
  • 7 zeigt die Korrekturschaltung, die zum Korrigieren der Fehler im Quellenwort verwendet wird, welches in der Figur mit PSM bezeichnet ist. Wie in dieser Figur dargestellt ist, enthält die Korrekturschaltung, allgemein mit 110 bezeichnet, eine Dekodierstufe 112, die als Eingangsgröße das beim Dekodiervorgang gewonnene Prüfwort empfängt, in der Figur mit PC bezeichnet, und sie liefert als Ausgangsgröße auf der Grundlage der Dekodiermatritzen des in den 4 und 5 dargestellten Typs eine binäre Korrekturkette, die eine Länge von 3 m/2 Bits hat und aus einer Mehrzahl von Triaden von Bits besteht, die jeweils einem Bit-Paar in dem gespeicherten Quellenwort PSM zugeodnet sind, wobei diese Bits in einer einzigen mehrstufigen Speicherzelle gespeichert sind und ein Paar benachbarter Bits im betrachteten Beispiel darstellen.
  • Insbesondere wird in jeder Triade das erste Bit dem Einzelfehler in dem ersten der beiden benachbarten Bits des verwendeten Quellenworts PSM zugeordnet, zu dem die Triade gehört, wobei das dritte Bit dem Einzelfehler in den anderen der beiden benachbarten Bits des gespeicherten Quellenworts PSM zugeordnet wird, und das dazwischen befindliche zweite Bit dem Doppelfehler in den beiden benachbarten Bits des Quellenworts PSM zugeordnet wird.
  • In anderen Worten: Wie in 7 gezeigt, ist das erste Bit in dem binären Korrekturstrang dem Fehler in dem ersten Bit des Quellenworts PSM zugeordnet, das zweite Bit in dem binären Korrekturstrang ist dem Fehler in dem ersten und dem zweiten Bit des Quellenworts PSM zugeordnet, das dritte Bit in dem binären Korrekturstrang wird dem Fehler in dem zweiten Bit des Quellenworts PSM zugeordnet, das vierte Bit des binären Korrekturstrangs wird dem Fehler im dritten Bit des Quellenworts PSM zugeordnet, und so fort.
  • Jedes der Bits in dem binären Korrekturstrang nimmt auch dann einen logischen Wert 1 an, wenn das Bit oder die Bits in dem Quellenwort PSM, zu dem es gehört, nicht fehlerfrei ist oder sind, so dass, weil das vorliegende Verfahren einen Einzelfehler oder zwei Fehler in korrelierten Stellen korrigieren kann, ein binärer Korrekturstrang nur ein Bit enthält, das auf den logischen Wert 1 gesetzt ist.
  • Da außerdem, wie oben betont wurde, ein Paar benachbarter Bits in dem Quellenwort PSM innerhalb einer einzelnen Speicherzelle abgespeichert ist, und auf Grund der Entsprechung zwischen Bits in dem binären Korrekturstrang und Bits in dem Quellenwort PSM, arbeitet jedes Paar logischer ODER-Gatter für ein Paar Bits in dem binären Korrekturstrang, die Fehlern in einem Bit-Paar zugeordnet sind, die innerhalb einer einzelnen Zelle gespeichert sind.
  • Die Korrekturschaltung 110 enthält zusätzlich m ODER-Logikgatter 114.1, 114.2 ..., eines für jedes Bit in dem binären Korrekturstrang, das sich an einer ungeraden Stelle befindet.
  • Insbesondere sind die logischen ODER-Gatter 114.1, 114.2,... paarweise organisiert, und jedes Paar bearbeitet eine zugehörige Triade von Bits in dem binären Korrekturstrang, d. h. ein erstes Paar logischer ODER-Gatter verknüpft die Triade von Bits, die durch das erste, das zweite und das dritte Bit in dem Binärstrang gebildet wird, ein zweites Paar logischer ODER-Gatter verknüpft die Triade von Bits, die durch das fünfte, das sechste und das siebte Bit in dem binären Korrekturstrang gebildet wird, und so fort.
  • Im Einzelnen: In jedem Paar logischer ODER-Gatter 114.1, 114.2,..., führt ein erstes logisches ODER-Gatter die logische ODER-Verknüpfung zwischen dem ersten Bit in der entsprechenden Triade, das sich an einer ungeraden Stelle befindet, und dem Bit, das sich an einer geraden Stelle befindet, durch, und ein zweites logisches ODER-Gatter führt die logische ODER-Verknüpfung durch zwischen dem Bit, das sich an einer geraden Stelle befindet, und dem zweiten Bit, das sich an einer ungeraden Stelle befindet.
  • Die Korrekturschaltung 110 enthält zusätzlich m EX-ODER-Logikgatter 116.1, 116.2,..., von denen jedes zu einem logischen ODER-Gatter 144.1, 114.2,... gehört, und jedes führt eine EXKLUSIV-ODER-Operation durch zwischen dem Bit, das als Ausgang von dem jeweiligen logischen Gatter geliefert wird, und dem Bit in dem Quellenwort PSM, das zu dem Bit in dem binären Korrek turstrang gehört, welches sich an einer ungeraden Stelle befindet, und das das logische ODER-Gatter selbst verarbeitet.
  • In anderen Worten: Das erste logische EX-ODER-Gatter 116.1 führt die EX-KLUSIV-ODER-Operation durch zwischen dem als Ausgang von dem ersten logischen ODER-Gatter gelieferten Bit und dem ersten Bit des Quellenworts PSM, das zweite EX-ODER-Logikgatter 116.2 führt die EXKLUSIV-ODER-Operation zwischen dem als Ausgangsgröße des zweiten logischen ODER-Gatters gelieferten Bit und dem zweiten Bit im Quellenwort PSM durch, und so fort.
  • Die Ausgangsgrößen der m EX-ODER-Logikgatter 116.1, 116.2,... definieren mithin ein korrektes Quellenwort, was in der Figur als PSC bezeichnet ist.
  • Die Arbeitsweise der Korrekturschaltung 110 ist aus der oben angegebenen Beschreibung ersichtlich.
  • Das Dekodieren des Prüfworts PC garantiert tatsächlich, dass der binäre Korrekturstrang ein Bit enthält, das auf den logischen Wert 1 gesetzt ist und sich an einer Stelle befindet, die derjenigen des Einzelfehlers innerhalb des Quellenworts PSM entspricht, oder derjenigen des Fehlers in zwei benachbarten Bits.
  • Folglich wird die Ausgangsgröße von einem der logischen ODER-Gatter 114.1, 114.2,... insbesondere eines Gatters, welches das auf den logischen Pegel 1 innerhalb der binären Korrekturkette gesetzten Bits verarbeitet, auf den logischen Wert 1 gesetzt, und damit liefert das EX-ODER-Logikgatter 116.1, 116.2,..., das ihm zugeordnet ist, als Ausgangsgröße das Komplement des Bits in dem Quellenwort PSM, das ihm zugeführt wird, korrigiert folglich den Fehler in diesem Bit.
  • Die Vorteile des vorliegenden Korrekturverfahrens ergeben sich aus der vorstehenden Beschreibung.
  • Schließlich ist klar, dass Modifikationen und Abwandlungen bei dem hier beschriebenen und dargestellten Korrekturverfahren möglich sind, ohne vom Schutzumfang der Erfindung abzuweichen.

Claims (18)

  1. Verfahren zum Korrigieren von Fehlern in einem Binärwort, welches in mehrstufigen Speicherzellen, die jeweils n Bits enthalten, gespeichert sind, mit Hilfe einer kleinsten Anzahl von Korrekturbits, dadurch gekennzeichnet, dass es für jede Menge Bits des in einer einzelnen mehrstufigen Speicherzelle gespeicherten Binärworts folgende Schritte aufweist: a) dem einzelnen Fehler in jedem Bit in der Menge von Bits wird ein zugehöriger Fehlercode zugeordnet, der nicht anderen Fehlern in dem Binärwort zugeordnet ist und kennzeichnend ist für die Stelle des fehlerhaften Bits innerhalb des Binärworts; b) für jede Untermenge von Mehrfachfehlern in Bits innerhalb der Menge von Bits werden folgende Schritte durchgeführt: b1) der Untermenge von Mehrfachfehlern wird ein zugehöriger Fehlercode zugewiesen, der abhängt von den Fehlercodes, die den individuellen Fehlern in den Bits innerhalb der Untermenge zugeordnet sind; b2) es wird geprüft, ob der der Untermenge von Mehrfachfehlern zugewiesene Fehlercode bereits anderen Fehlern innerhalb des Binärworts zugeordnet wurde; b3) wenn der Fehlercode, der der Untermenge von Mehrfachfehlern zugeordnet ist, bereits anderen Fehlern innerhalb des Binärworts zugeordnet wurde, werden folgende Schritte durchgeführt: b31) es werden der der Untermenge von Mehrfachfehlern zugewiesene Fehlercode und mindestens einer der Fehlercodes, die den Einzelfehlern in den Bits der Untermenge zugewiesen sind, zurückgewiesen; b32) dem Einzelfehler, der dem zurückgewiesenen Fehlercode zugeordnet ist, wird ein neuer Fehlercode zugewiesen, der nicht anderen Fehlern innerhalb des Binärworts zugewiesen ist; und b33) die Schritte b1) bis b3) werden so lange wiederholt, bis der der Untermenge von Mehrfachfehlern zugewiesene Fehlercode nicht anderen Fehlern innerhalb des Binärworts zugewiesen ist.
  2. Verfahren nach Anspruch 1, weiterhin dadurch gekennzeichnet, dass der Schritt a) folgende Schritte aufweist: a1) dem Einzelfehler in einem ersten der in der Menge enthaltenen Bits wird der kleinste Fehlercode zugewiesen, der nicht anderen Fehlern zugewiesen ist; und a2) es werden jeweilige Fehlercodes den Einzelfehlern in den anderen Bits innerhalb der Menge zugewiesen, wobei diese Fehlercodes die kleinten unter den Fehlercodes sind, die nicht anderen Fehlern zugewiesen sind, und die relativ zueinander und zu dem dem ersten Bit zugewiesenen Fehlercode aufeinander folgen.
  3. Verfahren nach Anspruch 1 oder 2, weiterhin dadurch gekennzeichnet, dass der Schritt b1) folgenden Schritt beinhaltet: b11) der Untermenge von Mehrfachfehlern wird ein Fehlercode zugewiesen, den man dadurch erhält, dass man die EXKLUSIV-ODER-Logik-Operation zwischen den jedem der Einzelfehler in der Untermenge zugewiesenen Fehlercodes durchführt.
  4. Verfahren nach einem der vorhergehenden Ansprüche, weiterhin dadurch gekennzeichnet, dass der Schritt b32) folgenden Schritt beinhaltet: b321) ein neuer Fehlercode wird dem Einzelfehler zugewiesen, der dem zurückgewiesenen Fehlercode zugeordnet war, wobei der neue Fehlercode der kleinste Fehlercode aus solchen Fehlercodes ist, die keinen anderen Fehlern zugeordnet sind.
  5. Verfahren nach Anspruch 4, weiterhin dadurch gekennzeichnet, dass im Schritt b321) der neue Fehlercode, der dem Einzelfehler zugewiesen ist, an den zurückgewiesenen Fehlercode anschließt.
  6. Verfahren nach einem der vorhergehenden Ansprüche, weiterhin dadurch gekennzeichnet, dass der Schritt b) zusätzlich folgende Schritte beinhaltet: b4) wenn der der Untermenge von Mehrfachfehlern zugewiesene Fehlercode nicht anderen Fehlern zugewiesen wurde, werden der der Untermenge von Mehrfachfehlern zugeordnete Fehlercode und die jedem der Einzelfehler in der Untermenge zugeordneten Fehlercodes gespeichert.
  7. Verfahren nach einem der vorhergehenden Ansprüche, weiterhin dadurch gekennzeichnet, dass das Binärwort ein Quellenwort mit m Bits ist, welches zusammen mit einem Korrekturwort, dem k Bits zugewiesen sind, ein Codewort bildet, wobei die k Bits in dem Korrekturwort dadurch erhalten werden, dass man k Paritätsprüfungen bezüglich k Untermengen von Bits in dem Quellenwort durchführt.
  8. Verfahren nach Anspruch 7, weiterhin dadurch gekennzeichnet, dass für das Korrekturwort der Zuordnungsschritt die Schritte des für jede Menge von Bits in dem Korrekturwort, die in einer einzelnen Speicherzelle gespeichert sind, erfolgende Ausführen folgender Schritte beinhaltet: c) jedem Einzelfehler in der Menge von Bits wird ein Fehlercode zugeordnet, der nicht anderen Fehlern zugeordnet ist; d) für jede Untermenge von Mehrfachfehlern in der Menge von Bits wird der Untermenge von Mehrfachfehlern ein Fehlercode zugeordnet, der von den Fehlercodes abhängt, die jedem der Einzelfehler in der Untermenge selbst zugeordnet sind.
  9. Verfahren nach Anspruch 8, weiterhin dadurch gekennzeichnet, dass der Schritt c) folgenden Schritt beinhaltet: c1) dem Einzelfehler in dem i-ten Bit innerhalb des Korrekturworts wird ein Fehler zugeordnet, bei dem das i-te Bit auf einen ersten logischen Wert gesetzt ist, während die übrigen Bits auf einen zweiten logischen Wert gesetzt sind.
  10. Verfahren nach Anspruch 9, weiterhin dadurch gekennzeichnet, dass der erste logische Wert der logische Wert 1 ist.
  11. Verfahren nach einem der Ansprüche 8 bis 10, weiterhin dadurch gekennzeichnet, dass der Schritt d) folgende Schritte beinhaltet: d1) jeder Untermenge von Mehrfachfehlern in der Menge von Bits wird ein Fehlercode zugeordnet, den man erhält durch Ausführen der EXKLU SIV-ODER-Logik-Operation zwischen den Fehlercodes, die jedem der Einzelfehler in der Untermenge selbst zugeordnet sind.
  12. Verfahren nach einem der Ansprüche 7 bis 11, dadurch gekennzeichnet, dass es zusätzlich den Schritt aufweist: e) es wird eine erste Matrix definiert, in deren Spalten fortschreitend die Fehlercodes aufgezeichnet sind, die den Einzelfehlern in den Bits in dem Quellenwort und in dem Korrekturwort zugeordnet sind; die den Einzelfehlern in den Bits des Quellenworts zugeordneten Fehlercodes definieren eine erste Sub-Matrix, deren Reihen kennzeichnend sind für die Zusammensetzung der Untermengen von Bits in dem Quellenwort, bezüglich dessen die Prüfoperationen auszuführen sind; die den Einzelfehlern in den Bits in dem Korrekturwort zugewiesenen Fehlercodes definieren eine zweite Sub-Matrix, deren Reihen kennzeichnend sind für die Stellen innerhalb des Korrekturworts, in denen die aus den Prüfoperationen abgeleiteten. Bits zu platzieren sind.
  13. Verfahren nach Anspruch 12, weiterhin dadurch gekennzeichnet, dass die i-te Reihe in der ersten Sub-Matrix kennzeichnend ist für die Stelle der Bits in dem Quellenwort, die die i-te Untermenge von Bits bilden, bezüglich der die i-te Prüfoperation auszuführen ist.
  14. Verfahren nach Anspruch 13, weiterhin dadurch gekennzeichnet, dass bei den i-ten Prüfoperationen das i-te Bit in dem Quellenwort zu der i-ten Untermenge gehört, wenn das i-te Bit in der i-ten Reihe der ersten Sub-Matrix einen dritten logischen Wert annimmt.
  15. Verfahren nach Anspruch 14, weiterhin dadurch gekennzeichnet, dass der dritte logische Wert der logische Wert 1 ist.
  16. Verfahren nach Anspruch 14 oder 15, dadurch gekennzeichnet, dass in der i-ten Reihe der zweiten Sub-Matrix ein Einzelbit vorhanden ist, welches auf einen vierten logischen Wert gesetzt ist, und dass die Stelle dieses einzelnen, auf den vierten logischen Wert gesetzten Bits in einem Kodierverfahren kennzeichnend ist für diejenige Stelle innerhalb des Korrekturworts, an der das Bit geladen werden muss, welches durch die i-te Prüfoperation gewonnen wird, die bezüglich der i-ten Untermenge in dem Quellenwort durchgeführt wird, und die bei einem Dekodierverfahren kennzeichnend ist für die Stelle innerhalb des Korrekturworts für das Bit, mit dem das Ergebnis der bezüglich der i-ten Untermenge in dem Quellenwort durchgeführten i-ten Prüfoperation verglichen werden muss.
  17. Verfahren nach Anspruch 16, weiterhin dadurch gekennzeichnet, dass der logische Wert der logische Wert 1 ist.
  18. Verfahren nach einem der Ansprüche 12 bis 17, weiterhin dadurch gekennzeichnet, dass es zusätzlich den Schritt aufweist: f) es wird eine zweite Matrix definiert, in deren Spalten fortschreitend die Fehlercodes aufgezeichnet sind, die den Mehrfachfehlern in den Bits innerhalb des Quellenworts und in dem Korrekturwort zugewiesen sind.
DE69907622T 1999-02-10 1999-02-10 Verfahren zur Fehlerkorrektur in einem in einer Mehrpegelspeicherzelle gespeicherten Binärwort, mit einer Minimumanzahl von Korrekturbits Expired - Fee Related DE69907622T2 (de)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
EP99830070A EP1028379B1 (de) 1999-02-10 1999-02-10 Verfahren zur Fehlerkorrektur in einem in einer Mehrpegelspeicherzelle gespeicherten Binärwort, mit einer Minimumanzahl von Korrekturbits

Publications (2)

Publication Number Publication Date
DE69907622D1 DE69907622D1 (de) 2003-06-12
DE69907622T2 true DE69907622T2 (de) 2004-03-25

Family

ID=8243272

Family Applications (1)

Application Number Title Priority Date Filing Date
DE69907622T Expired - Fee Related DE69907622T2 (de) 1999-02-10 1999-02-10 Verfahren zur Fehlerkorrektur in einem in einer Mehrpegelspeicherzelle gespeicherten Binärwort, mit einer Minimumanzahl von Korrekturbits

Country Status (4)

Country Link
US (1) US6557138B1 (de)
EP (1) EP1028379B1 (de)
JP (1) JP2000298625A (de)
DE (1) DE69907622T2 (de)

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6785860B1 (en) * 2000-05-31 2004-08-31 Robert Patti Error-correcting code adapted for memories that store multiple bits per storage cell
US6990623B2 (en) * 2001-05-16 2006-01-24 Fujitsu Limited Method for error detection/correction of multilevel cell memory and multilevel cell memory having error detection/correction function
ITMI20022669A1 (it) 2002-12-18 2004-06-19 Simicroelectronics S R L Struttura e metodo di rilevamento errori in un dispositivo
JP4647951B2 (ja) * 2004-07-29 2011-03-09 株式会社ジェイテクト 安全制御装置、安全制御システム及び通信エラー検出方法
US8458562B1 (en) * 2008-12-30 2013-06-04 Micron Technology, Inc. Secondary memory element for non-volatile memory

Family Cites Families (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4589112A (en) * 1984-01-26 1986-05-13 International Business Machines Corporation System for multiple error detection with single and double bit error correction
US5754753A (en) * 1992-06-11 1998-05-19 Digital Equipment Corporation Multiple-bit error correction in computer main memory
US5550849A (en) * 1993-05-20 1996-08-27 Ceram Incorporated Method and apparatus for detecting single or multiple bit errors instorage devices
JP3999822B2 (ja) * 1993-12-28 2007-10-31 株式会社東芝 記憶システム
US5450363A (en) 1994-06-02 1995-09-12 Intel Corporation Gray coding for a multilevel cell memory system
EP0709776B1 (de) 1994-10-31 2000-02-23 STMicroelectronics S.r.l. Fehlernachweis- und Korrekturverfahren in einem mehrstufigen Speicher und Speicher für dieses Verfahren
US5475693A (en) 1994-12-27 1995-12-12 Intel Corporation Error management processes for flash EEPROM memory arrays
US5745508A (en) * 1995-11-13 1998-04-28 Tricord Systems, Inc. Error-detection code
US5754566A (en) 1996-09-06 1998-05-19 Intel Corporation Method and apparatus for correcting a multilevel cell memory by using interleaving
US5956351A (en) * 1997-04-07 1999-09-21 International Business Machines Corporation Dual error correction code
KR100266748B1 (ko) * 1997-12-31 2000-10-02 윤종용 반도체 메모리 장치 및 그 장치의 에러 정정 방법

Also Published As

Publication number Publication date
EP1028379B1 (de) 2003-05-07
US6557138B1 (en) 2003-04-29
JP2000298625A (ja) 2000-10-24
EP1028379A1 (de) 2000-08-16
DE69907622D1 (de) 2003-06-12

Similar Documents

Publication Publication Date Title
DE2060643C3 (de) Schaltungsanordnung zur Korrektur von Einzelfehlern
DE2139731C2 (de) Anordnung zur Code-Umsetzung
DE3125048C2 (de)
DE2425823A1 (de) Einrichtung zur fehlererkennung und fehlerkorrektur
DE2456709C2 (de) Schaltungsanordnung zur Fehlererkennung und -korrektur
DE2724409A1 (de) Datenverarbeitungssystem
DE102015113414B4 (de) Fehlerkorrektur unter Verwendung von WOM-Codes
DE2556556A1 (de) Verfahren und anordnung zur speicherung von informationen ueber den ort eines oder mehrerer fehlerhafter bits in einem einzelne fehler korrigierenden halbleiter-hauptspeicher
DE102005052698A1 (de) Verfahren zur Verarbeitung von nichtflüchtig gespeicherten Daten
DE3209679C2 (de)
DE102017103347B4 (de) Verarbeitung von daten in speicherzellen eines speichers
DE2916619A1 (de) System zum uebertragen binaerer daten ueber eine anzahl von kanaelen
DE2614664C3 (de) Verfahren zum Speichern von Daten in einer Speichereinrichtung und Einrichtung zur Durchführung des Verfahrens
DE2554502C3 (de) Verfahren und Anordnung zum Adressieren eines Speichers
DE69907622T2 (de) Verfahren zur Fehlerkorrektur in einem in einer Mehrpegelspeicherzelle gespeicherten Binärwort, mit einer Minimumanzahl von Korrekturbits
DE2357654C2 (de) Assoziativspeicher
EP0615211B1 (de) Verfahren zum Speichern sicherheitsrelevanter Daten
DE2053836C3 (de) Anordnung zur Korrektur von Fehlerbündeln in binär codierten Datengruppen
DE2047868A1 (de) Schaltung zur Korrektur von Einzel fehlern in den Wortern eines zyklischen (n, k) Codes
EP1222545A1 (de) Verfahren und schaltungsanordnung zum speichern von datenworten in einem ram modul
DE1937259C3 (de) Selbstprüf ende Fehlererkennungsschaltung
EP0453609B1 (de) Verfahren zum Testen einer kleinsten adressierbaren Einheit eines RAM&#39;s auf über einer bestimmten Zahl liegende Bitfehler
DE1250489B (de) I Schaltungsanordnung zur Einspei cherung von Leerstellen-Kennworten in einen assoziativen Speicher
DE1296427B (de) Datenbearbeitungssystem
DE10244620A1 (de) Speicher und Verfahren zum Verwenden einer Prüfsumme für Adressen von ersetzten Speicherelementen

Legal Events

Date Code Title Description
8364 No opposition during term of opposition
8339 Ceased/non-payment of the annual fee