DE69031947T2 - Datenverarbeitungssystem basierend auf einem (N,K)-Symbolkode und mit Symbolfehler-Korrigierbarkeit und mehrfacher Fehlerreparierbarkeit - Google Patents

Datenverarbeitungssystem basierend auf einem (N,K)-Symbolkode und mit Symbolfehler-Korrigierbarkeit und mehrfacher Fehlerreparierbarkeit

Info

Publication number
DE69031947T2
DE69031947T2 DE69031947T DE69031947T DE69031947T2 DE 69031947 T2 DE69031947 T2 DE 69031947T2 DE 69031947 T DE69031947 T DE 69031947T DE 69031947 T DE69031947 T DE 69031947T DE 69031947 T2 DE69031947 T2 DE 69031947T2
Authority
DE
Germany
Prior art keywords
code
symbol
data processing
data
modules
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
DE69031947T
Other languages
English (en)
Other versions
DE69031947D1 (de
Inventor
Carel-Jan Leendert Van Driel
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.)
Koninklijke Philips NV
Original Assignee
Koninklijke Philips Electronics NV
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 Koninklijke Philips Electronics NV filed Critical Koninklijke Philips Electronics NV
Application granted granted Critical
Publication of DE69031947D1 publication Critical patent/DE69031947D1/de
Publication of DE69031947T2 publication Critical patent/DE69031947T2/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/1012Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices using codes or arrangements adapted for a specific type of error
    • G06F11/1028Adjacent errors, e.g. error in n-bit (n>1) wide storage units, i.e. package error
    • 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
    • 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/16Error detection or correction of the data by redundancy in hardware
    • G06F11/18Error detection or correction of the data by redundancy in hardware using passive fault-masking of the redundant circuits
    • G06F11/182Error detection or correction of the data by redundancy in hardware using passive fault-masking of the redundant circuits based on mutual exchange of the output between redundant processing components

Landscapes

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

Description

  • Die vorliegende Erfindung bezieht sich auf ein Datenverarbeitungssystem basierend auf einem Code mit n-Symbolcodeworten bei einem k-Symbol-Informationsgehalt pro Codewort, wobei n-k ≥ 2 und k ≥ 2, und mit sowohl einzelner Symbolfehler-Korrigierbarkeit als auch mehrfacher Fehlerreparierbarkeit in bezug auf mindestens zwei in einem einzelnen Codewort zusammen vorliegende Symbole, wobei jedes Symbol eine gleichförmige Vielzahl von Bits hat, und wobei das System folgendes umfaßt:
  • a. eine Decoderstufe mit einem Eingang zum Empfangen von n-Symbolcodeworten, die hiervon k-Symboldatenworte ableitet;
  • b. eine Verarbeitungsstufe, die durch die genannte Decoderstufe versorgt wird, um die genannten Datenworte zu verarbeiten, und aus diesen Datenworten Speicheradressen und weitere Datenworte entwickelt;
  • c. eine Codierstufe mit mehreren Codiermodulen, um eine Auswahl dieser Datenworte, die identisch sein sollten, zu empfangen und um diese in entsprechenden Codiermodulen zu entsprechenden unterschiedlichen Codesymbolen zu codieren;
  • d. eine Speicherstufe mit mehreren Speichermodulen, die jeweils durch ein betrefendes der Codiermodule versorgt werden, um gemeinsam alle Codesymbole eines zugehörigen Codewortes unter der Steuerung einer zugehörigen der genannten Speicheradressen zu schreiben und zu lesen;
  • e. Rückkopplungsmittel, die durch die genannten Speichermodule versorgt werden, um ein auf diese Weise gelesenes Codewort zu der genannten Decoderstufe zurückzukoppeln.
  • In der US-Patentschrift 4512020 (vor allem in Figur 24 davon) wird ein Vier-Modul- System beschrieben, bei dem ein Modul vollkommen ausfallen kann, ohne daß das gesamte System funktionsunfähig wird. Symbole eines Codewortes haben eine gleichförmige Länge von mehreren Bits, bei der Referenzschrift eine Länge von vier Bits. Korrigierbar bedeutet, daß eine beliebige Störung quantitativ bestimmt und anschließend behoben werden kann. Damit wird sowohl die Frage, wo die Störung auftritt, als auch die Frage, was für eine Störung vorliegt, beantwortet. Auf der Ebene eines einzelnen Bits sind diese beiden Begriffe identisch. Auf der Ebene eines Mehrbit-Symbols ist das Verweisen auf das gestörte Symbol nur der erste Schritt bei der Korrektur. Auf der anderen Seite bedeutet reparierbar, daß dafür gesorgt wird, daß die Auswirkung eines Fehlers irrelevant ist. Obwohl dies eine vollständige Korrektur implizieren kann, kann es alternativ implizieren, daß ein oder mehrere bestimmte Symbole für ungültig oder "gelöscht" erklärt werden, so daß sie ohne Bedeutung für das Abrufen des Dateninhalts des Codewortes sind. Natürlich wird durch eine solche Löschung der Rest des Codewortes anfälliger für weitere Störungen. Auf einer höheren Ebene kann das Reparieren - auf der Ebene des eigentlichen Codes - darauf beschränkt sein, den Fehler nur zu erkennen. Daraufhin können verschiedene Maßnahmen getroffen werden, zum Beispiel ein erneuter Versuch, der einen "weichen" Fehler unsichtbar machen soll, ein Zurückgreifen auf eine übergeordnete Autorität, zum Beispiel einen Hintergrundspeicher, oder einfach nur auf der Hut sein bezüglich der vorgefundenen Fehlerhaftigkeit.
  • Der (4,2)-Code wurde herkömmlicherweise auf ein 4-Modul-System abgebildet, so daß jeder Symbolfehler eins zu eins einem Modulfehler entspricht. Die Hardware eignet sich zur Verwendung in derart sicheren Systemen wie Telefonvermittlungs- Steuerungen. Die Erfindung hat nun zur Aufgabe, die für das obige (4,2)-System und vergleichbare Systeme für andere Konfigurationen entwickelte Hardware zu benutzen, wobei die Eins-zu-Eins-Übereinstimmung zwischen Modul und Symbol aufgegeben wurde, während entweder in einem erweiterten System oder in einer begrenzteren Konfiguration immer noch ein hervorragendes Preis/Leistungs-Verhältnis realisiert wird. Ein Vorteil der Verwendung von Standard-Hardware würde darin bestehen, daß die Entwicklungskosten jetzt auf eine Vielzahl von Exemplaren dieser Hardware aufgeteilt werden, so daß die Gesamtkosten wirksam gesenkt werden.
  • Entsprechend einem ihrer Aspekte schafft die Erfindung ein Datenverarbeitungssystem nach der Einleitung von Anspruch 1, welches dadurch gekennzeichnet ist, daß das genannte Datenverarbeitungssystem entweder aus einer einzelnen Datenverarbeitungseinheit oder aus einer Vielzahl von parallelen Datenverarbeitungseinheiten aufgebaut ist, wobei jede Datenverarbeitungseinheit zumindest einen Teil der Decodierungs-, Verarbeitungs- und Codierungsfunktion übernimmt;
  • daß jede vorhandene Datenverarbeitungseinheit mehr als ein aber weniger als n verschiedene Codiermodule hat, die durch das lokale Prozessormodul parallel versorgt werden; und daß jedes vorhandene Decodermodul alle reellen oder emulierten Symbole empfängt, die zu einem bestimmten Codewort gehören, so daß jedes vorhandene Prozessormodul ein komplettes Datenwort verarbeitet; und dadurch, daß die entsprechenden Speichermodule einer Datenverarbeitungseinheit die jeweiligen getrennten Codesymbole speichern, die zu dem gerade verarbeiteten Datenwort gehören.
  • Ein Ausfall oder eine Fehlfunktion einer einzelnen Datenverarbeitungseinheit kann jetzt schwerwiegendere Auswirkungen haben als nach dem Stand der Technik. Auf der anderen Seite ist die Widerstandsfähigkeit der Erfindung gegen Fehlfunktion auf Codesymbol-Ebene vergleichbar mit dem Stand der Technik, während sie gleichzeitig eine erhebliche Konfigurationsflexibilität bietet, wie nachstehend beschrieben wird.
  • Während nun in der Referenzschrift ein (n,k) = (4,2)-Code betrachtet wird, gelten ähnliche Überlegungen für andere Codes, zum Beispiel insbesondere - aber nicht hierauf beschränkt - für (6,4)-, (8,4)- und (8,5)-Codes. Diese Codes würden aufgrund der größeren Anzahl von Symbolen pro Wort entweder ein höheres Maß an Schutz haben oder eine höhere Effizienz (= geringere partielle Redundanz) oder kürzere Symbole ermöglichen (Datenbits auf eine größere Anzahl einzelner Symbole aufteilen) oder eine vorteilhafte Kombination hiervon, wie der Fachmann leicht erkennen wird. Nichtsdestoweniger würden ähnliche Vorteile wie für den (4,2)-Code realisiert. Der Fachmann wird verstehen, daß die maximalen Werte von (n,k) von der Bitlänge des Symbols abhängen.
  • An sich wurden Mehrfach-Codiermodule in der US-Patentschrift 4633472 beschrieben. Dort hat in einem Standard-(4,2)-System entsprechend der erstgenannten Technik jede Datenverarbeitungseinheit ein Standard-Codiermodul, um ein einzelnes Codesymbol vom dem lokal erzeugten Datenwort zur Speicherung in einem lokalen Standard-Speichermodul zu generieren. Außerdem ist speziell für Ein-/Ausgabezwecke ein zweites Speichermodul vorhanden, das mit einem zweiten Codiermodul und einem komplementären Decodiermodul ausgestattet ist. Die derart codierten Symbole werden jedoch zur Speicherung im zweiten Speichermodul benutzt, aber nicht zur kollektiven Decodierung in Kombination mit Codesymbolen, die aus dem ersten Speichermodul ausgelesen wurden. Damit gibt es in dieser Referenzschrift zwei Codiermodule, die auf der Datenwort-Ebene asynchron zueinander funktionieren. Gemäß der vorliegenden Erfindung stellen Mehrfach-Codiermodule keine alternative Möglichkeit für die jeweiligen wechselseitigen Funktionalitäten dar, sondern funktionieren auf der Basis eines einheitlichen Datenwortinhalts, das heißt, entweder auf der Basis eines einzigen Datenworts oder auf zwei (oder mehr) Datenworten, deren Inhalt identisch sein sollte.
  • Die folgenden weiteren Referenzen werden in Verbindung mit den obigen Darlegungen genannt:
  • In der US-Patentschrift 3.963.908 wird ein virtuelles Codierschema zur Ausfallerkennung in Speichern mit wahlfreiem Zugriff beschrieben, das durch die Verwendung von zwei unterschiedlichen Codes erlaubt, sowohl Datenfehler als auch Adreßfehler zu erkennen. Dies erfolgt durch Erzeugen von k1 ersten redundanten Bits und k2 zweiten redundanten Bits zu den j Datenbits eines Speicherwortes. All diese Bits werden für die obige Erkennung benutzt, die auf der Ebene des Gesamtspeichers erfolgt. Die vorliegende Erfindung hat eine von der in der Referenzschrift genannten Codestruktur abweichende Codestruktur, da sie symbol-organisiert ist, so daß j, k1 und k2 als gemeinsamen Teiler die Mehrbit-Symbollänge haben; im folgenden ist die andere Schreibweise für k und j zu beachten. Außerdem erfolgt die Decodierung erfindungsgemäß auf der Ebene der einzelnen Datenverarbeitungseinheiten, die jeweils eine korrekte oder eher eine fehlerhafte Funktion haben können. Auch ist das Hauptfehlermodell der vorliegenden Erfindung der Ausfall einer kompletten Datenverarbeitungseinheit.
  • In den IEEE Transactions on Computers, Band C35, Nr.4, April 1986, NY, US beschreibt T. Krol in "(N,K) Concept Fault Tolerance" ausführlich das (n,k)- Konzept in Hinblick auf seine Symbol-Korrektur- und Bit-Korrektur-Funktion. Die vorliegende Erfindung nutzt ähnliche Module wie in dieser Veröffentlichung, unterscheidet sich aber hiervon, da die erfindungsgemäße Idee von der (n,k)-Konfiguration in verschiedenen Ausführungsformen abweicht:
  • in der nachfolgenden Figur 2 wird ein einzelnes Codiermodul in einer einzigen Datenverarbeitungseinheit unterdrückt;
  • in Figur 3 werden die Codiermodule auf weniger als n Datenverarbeitungseinheiten verteilt;
  • in Figur 4 sind nxp Codiermodule auf n Datenverarbeitungseinheiten verteilt, wobei p = 2;
  • in Figur 5 gibt es weniger als n Codiermodule jeweils in einer separaten Datenverarbeitungseinheit, und es werden emulierte Symbole auf zwei Ebenen benutzt.
  • Vorteilhafterweise ist n = 4, k = 2 und die Anzahl der Datenverarbeitungseinheiten ist gleich eins, die drei verschiedene Codiermodule zum Speichern eines 50% redundanten Codewortes bei einer Fehlerschutzfähigkeit haben, welche mindestens der eines (12,8,3)-Hamming-Codes entspricht. Wie nachstehend erläutert wird, wird die flexible Reparierbarkeit auf diese Weise im Vergleich zum (12,8,3)-Hamming-Code, der die gleiche Redundanz hat, wesentlich verbessert.
  • Vorteilhafterweise ist n = 4, k = 2, und es gibt zwei Datenverarbeitungseinheiten parallel, die jeweils zwei einzigartige Codiermodule haben, welche jeweils ein zugehöriges Speichermodul versorgen, so daß das System ein 100% redundantes Codewort speichert, um jedes Doppelbitfehlermuster korrigierbar zu machen, um bei Vorliegen eines gelöschten Codesymbols jeden Fehler in einem zweiten Codesymbol des gleichen Codewortes erkennbar zu machen, oder alternativ jeden einzelnen Bitfehler in einem solchen zweiten Symbol korrigierbar zu machen, und um aus beliebigen zwei korrekten Codesymbolen eines Codewortes das hiermit verbundene korrekte Datenwort zurückgewinnbar zu machen. Auf diese Weise wird auf der Symbolebene der gleiche Schutz erzeugt wie der eines (4,2)-Systems; auf einer Einheitenebene ist der Schutz geringer, was allerdings durch verringerte Prozessorkosten wettgemacht wird.
  • Vorteilhafterweise ist n = 4, k = 2, und es gibt vier Datenverarbeitungseinheiten, die jeweils zwei Codiermodule haben, die einzigartig entweder unter den ungeraden Datenverarbeitungseinheiten oder unter den geraden Datenverarbeitungseinheiten sind, und die jeweils ein zugehöriges Speichermodul versorgen, so daß ein 100% redundantes Codewort in zwei parallelen Versionen gespeichert wird, wobei jede derartige Version genau ein Symbol in jedem der Datenverarbeitungsmodule hat, und die Hälfte der Decodermodule die erste Version empfängt und die andere Hälfte die zweite Version empfängt, so daß bei einer Funktionsuntüchtigkeit einer einzelnen Datenverarbeitungseinheit mindestens eine Version jedes Codewortes immer noch einwandfrei in den kollektiven Speichermodulen gespeichert wird. Auf diese Weise wird ein vierfaches System realisiert, das außerdem einen wesentlich verbesserten Fehlerschutz im Vergleich zu dem quasi-vierfachen (4,2)-System hat.
  • Vorteilhafterweise ist ein Datenverarbeitungssystem auf der Basis eines 100%-Redundanz-Vier-Symbol-Codewortes mit sowohl einzelner Symbolfehler-Korrigierbarkeit als auch Mehrfach-Fehlerreparierbarkeit in bezug auf mindestens zwei Symbole, die zusammen in einem einzigen Codewort vorliegen und wobei jedes Symbol eine gleichförmige Vielzahl von Bits hat, wobei das System folgendes umfaßt:
  • a. eine Decoderstufe mit einem Eingang zum Empfangen eines Codewortes, die hiervon Datenworte ableitet;
  • b. eine Verarbeitungsstufe, die durch die genannte Decoderstufe versorgt wird, um die genannten Datenworte zu verarbeiten, und aus diesen Datenworten Speicheradressen und weitere Datenworte entwickelt;
  • c. eine Codierstufe mit mehreren Codiermodulen, um eine Auswahl dieser Datenworte, die identisch sein sollten, zu empfangen und diese in entsprechenden Codiermodulen zu entsprechenden unterschiedlichen Codesymbolen zu codieren;
  • d. eine Speicherstufe mit mehreren Speichermodulen, die jeweils durch ein betreffendes der Codiermodule versorgt werden, um gemeinsam alle Codesymbole eines zugehörigen Codewortes unter der Steuerung einer zugehörigen der genannten Speicheradressen zu schreiben und zu lesen;
  • e. Rückkopplungsmittel, die durch die genannten Speichermodule versorgt werden, um ein auf diese Weise gelesenes Codewort zu der genannten Decoderstufe zurückzukoppeln;
  • dadurch gekennzeichnet, daß das Datenverarbeitungssystem drei Datenverarbeitungseinheiten parallel enthält, die jeweils ein einzigartiges Codiermodul haben, und die parallel durch ihr lokales Prozessormodul versorgt werden, um gemeinsam drei Codesymbole auf der Basis einer 50% emulierten Datenwort-Version zu erzeugen; und dadurch, daß jede Verarbeitungseinheit ein Decodermodul hat, das vorgesehen ist, um drei Codesymbole parallel zu empfangen und auch ein Schein-Codesymbol zu empfangen, und um ein einzelnes Datensymbol und ein einzelnes Schein-Datensymbol parallel auszugeben. Durch die Verwendung von Scheinsymbolen wird somit ein elementares (3,1)-System auf der Basis der gleichen Hardware wie das (4,2)-Standardsystem realisiert, wobei eine Fehlerschutzfähigkeit erreicht wird, die der der besten realisierbaren (3,1)-Systeme entspricht.
  • Zusätzlich zu den verschiedenen hier beschriebenen Darstellungen, die bei dem (4,2)-System gefunden werden, können ähnliche Versionen in bezug auf andere (n,k)-Systeme konstruiert werden, für die n-k ≥ 2, k > 2 oder n > 4 gilt, und die zusätzlich zu der einfachen Symbolkorrigierbarkeit (wie zum Beispiel durch Reed-Solomon-Codes) eine andere, erweiterte Fehlerkorrekturfähigkeit aufgrund ihres zusätzlichen Fehlerschutzes auf der Bit-nicht-Symbol-Ebene haben. Dieser zusätzliche Fehlerschutz läßt sich effizient dadurch realisieren, daß die Symbolzahl relativ klein im Vergleich zu der Anzahl ist, die für die eigentliche Symbollänge gezählt in Bits verwendet werden könnte. Zum Beispiel könnte ein (6,4)-Code als eine Einheit mit fünf Codiermodulen verwendet werden oder als drei Einheiten mit jeweils zwei Codiermodulen, oder als sechs Einheiten mit jeweilis zwei Codiermodulen. Ein (8,4)-Code könnte als eine Einheit mit sechs oder sieben Codiermodulen verwendet werden oder als zwei Einheiten mit jeweils vier Codiermodulen oder als vier Einheiten mit jeweils zwei Codiermodulen. Der (6,4)-Code könnte im Vergleich mit der nachstehenden Figur 5 fünf Einheiten mit jeweils einem Codiermodul und drei Scheinsymbolen haben. Der (8,4)-Code könnte sieben Einheiten mit jeweils einem Codiermodul und drei Scheinsymbolen haben. Dem mit der (n,k)-Systemtechnologie Vertrauten werden viele andere Realisierungen ersichtlich sein. Im allgemeinen kann ein (n,k)-Code verwendet werden, um verschiedene (m,I)-Systeme zu konstruieren, wobei I ≤ m ≤ n und 1 ≤ 1 ≤ k.
  • KURZE BESCHREIBUNG DER FIGUREN
  • Ausführungsbeispiele der Erfindung sind in der Zeichnung dargestellt und werden im folgenden näher beschrieben. Es zeigen:
  • Figur 1 ein herkömmliches (4,2)-System;
  • Figur 2 die Verwendung des (4,2)-Codes in einem Einzel-Einheit-System;
  • Figur 3 die Verwendung des (4,2)-Codes in einem Zwei-Einheiten-System;
  • Figur 4 die Verwendung des (4,2)-Codes in einem (4,1)-System;
  • Figur 5 die Verwendung des (4,2)-Codes in einem Drei-Einheiten-System.
  • BESCHREIBUNG DER BEVORZUGTEN AUSFÜHRUNGSFORMEN
  • In Computersystemen werden Fehlerkorrekturcodes oft benutzt, um die Zuverlässigkeit zu verbessern. Ein Beispiel hierfür ist die Verwendung des Hamming- Codes zur Korrektur von einzelnen Bitfehlern in den vom Speicher erhaltenen Daten.
  • Eine allgemeine Lösung stellt jedoch der Computer mit (n,k)-Konzept dar. Diese Lösung bietet die Möglichkeit, das Verhältnis zwischen Prozessor-Redundanz und Speicher-Redundanz zu wählen. Das bedeutet, daß das Zuverlässigkeitlkosten-Verhältnis durch die Wahl von geeigneten Werten für n und k optimiert werden kann.
  • Wenn zum Beispiel die Werte n = 3 und k = 1 gewählt werden, erhält man ein TMR-System (Three Module Redundancy). In diesem Fall wird die gesamte Hardware verdreifacht. Wenn die Werte n = 4 und k = 2 gewählt werden, erhält man ein System mit (4,2)-Konzept. In diesem Fall wird die Prozessor-Logik vervierfacht und der Speicher nur verdoppelt. Der kostenaufwendigste Teil des Systems ist oft der Speicher. Daher können die Kosten eines Computers mit (4,2)-Konzept geringer sein als die Kosten eines Computers mit (3,1)-Konzept.
  • Bei einem Computer mit (n,k)-Konzept wird ein Fehlerkorrektur/Erkennungs-Code benutzt. Dieser Code wird als (n,k)-Code bezeichnet. Bei dem herkömmlichen TMR-System wird ein Wiederholcode benutzt. Dieser Code ist nicht optimal. Für das (4,2)-Konzept wird der (4,2)-Code benutzt. Das (4,2)-Konzept und die Eigenschaften des (4,2)-Codes sind veröffentlicht worden, siehe erstgenannte Referenzschrift.
  • Der (4,2)-Code kann auch in anderen Systemen effizient verwendet werden. Der (4,2)-Code wird im folgenden allgemein verwendet. Es wird gezeigt, daß ein (4,2)-Code anstelle eines Hamming-Codes in einem Einzel-Einheit-System benutzt werden kann. Außerdem werden die Vorteile des (4,2)-Codes in einem (verdoppelten) System mit (2,1)-Konzept erörtert. Es wird gezeigt, daß der (4,2)-Code auch in einem Computer mit (3,1)-Konzept verwendet werden kann. Darüber hinaus wird die Verwndung des Computers mit (4,2)-Konzept kurz beschrieben.
  • Das hier beschriebene Verfahren kann auf die Verwendung der Kombination eines (n,k)-Codes und eines Systems mit (m,l)-Konzept verallgemeinert werden, wenn l ≤ m ≤ n und l ≤ l ≤ k. Je nach den Werten von n, k, m und l zeigen sich jedoch verschiedene Eigenschaften. Das Verfahren wird anhand eines Beispiels veranschaulicht.
  • Im folgenden wird kurz ein Computer mit (4,2)-Konzept für Vier-Bit- Symbole beschrieben. Danach wird ein Überblick über die Eigenschaften des (4,2)- Codes vermittelt. Der Computer mit (4,2)-Konzept besteht aus vier Einheiten (siehe Figur 1). Jede Einheit, wie zum Beispiel 20, umfaßt eine Kette bestehend aus einem Vier-Symbole-Eingabe/Zwei-Symbole-Ausgabe-Decodermodul 22, einem Prozessormodul 24, einem Codiermodul 26 und einem Speichermodul 28. Die Daten werden dem Speichermodul vom Codiermodul zugeführt. Der Adreßeingang 30 braucht nicht durch das Codiermodul versorgt zu werden, da dies nur eine Umordnung unter den Speicheradressen darstellen würde und außerdem den verfügbaren Adreßbereich verringern würde. Der Kürze halber sind weder Steuerpfade noch die wechselseitige Synchronisation unter den vier Einheiten abgebildet. Bei einem Computer mit (n,k)-Konzept wird davon ausgegangen, daß die n Module so entworfen sind, daß sie synchron und deterministisch arbeiten. Im folgenden wird nur die Prozessor/Speicher-Kommunikation beschrieben. Die Verbindung mit externen Systemen wird nicht erörtert.
  • Während eines Schreibvorgangs schreibt jeder Prozessor seine Daten über den Codierer in den Speicher. Die Codierer sind in jedem Modul unterschiedlich, was durch die unterschiedliche Bezeichnung G0, G1, G2 bzw. G3 angegeben ist. Auf diese Weise werden 8 Informationsbits in einem 16-Bit-Codewort codiert. Jede Einheit speichert jedoch nur 4 Bits (ein Codesymbol) dieses Codewortes. Wenn die Prozessoren die Information aus dem Speicher zurücklesen, werden die vier Symbole in jeder Einheit durch den Decoder empfangen. Der Decoder generiert die ursprüngliche Information für den Prozessor in jeder Einheit, wenn die Anzahl der Fehler nicht einen bestimmten Maximalwert überschreitet. In der Praxis könnte jedoch jede Einheit identische Hardware haben, um alle vier verschiedenen Codiermodule zu realisieren, da dies nur eine kleine Vergrößerung der Siliziumfläche bedeuten würde, was durch den Vorteil einer vierfachen Erhöhung der herzustellenden Anzahl von wechselseitig identischen Schaltungen ( = Einheiten) mehr als aufgewogen werden könnte.
  • Die Anzahl der Fehler, die korrigiert werden können, wird durch die Eigenschaften des (4,2)-Codes vorgegeben. Im folgenden sind die wichtigsten Eigenschaften des (4,2)-Codes aufgeführt. Außerdem bestimmen diese Eigenschaften, wie der (4,2)-Code in anderen Systemen benutzt werden kann. Diese Eigenschaften sind für Vier-Bit-Symbole die folgenden:
  • 1. Korrektur eines beliebigen Einzel-Symbolfehlers;
  • 2. Korrektur eines Doppelbit-Fehlermusters;
  • 3. wenn ein Symbol gelöscht wird, kann ein anderer Symbolfehler erkannt werden;
  • 4. wenn ein Symbol gelöscht wird, kann ein Einzel-Bitfehler korrigiert werden;
  • 5. von zwei beliebigen Symbolen kann die ursprüngliche Information zurückgewonnen werden;
  • 6. zwei Symbole sind die ursprünglichen Informationssymbole.
  • Eigenschaft 3 folgt aus der Beobachtung, daß das minimale Symbolgewicht eines Code- Wortes (= Anzahl von Codesymbolen ungleich Null) bei einem gelöschten Symbol gleich 2 ist.
  • VERWENDUNG DES (4,2)-CODES IN EINEM EINZEL-EINHEIT-SYSTEM
  • Der (4,2)-Code kann in einem Einzel-Einheit-System anstelle eines (12,8,3)-Hamming-Codes verwendet werden. Das erfindungsgemäße System ist in Figur 2 dargestellt, die einen Vier-Symbol-Decoder 40 (von dem ein Symbol-Eingang nicht benutzt wird), ein Prozessormodul 42 und drei verschiedene Codiermodule G0, G1, G2, die jeweils ein zugehöriges Speichermodul 44, 46, 48 versorgen, enthält. Diese werden wiederum durch das Prozessormodul 42 adressiert. Im Vergleich zum Hamming-Code- System sind hiermit keine zusätzlichen Kosten verbunden: die Speichermenge ist die gleiche. Die Implementierung des (4,2)-Codes bietet jedoch mehr. Im folgenden wird die Implementierung eines (4,2)-Codes in einem Einzel-System kurz erläutert.
  • Während eines Schreibvorgangs wird das 8-Bit-Informationswort durch die Codierer G0, G1 und G2 auf drei verschiedene Weisen codiert. Dadurch erhält man drei 4-Bit-Codesymbole. Jedes von ihnen wird in ein zugehöriges Speichermodul geschrieben. Im allgemeinen können innerhalb der Einheit die verschiedenen Speichermodule ein Teil von (einer Bank oder einem Block) einer größeren Speichereinheit sein. Während eines Lesezyklus werden die drei Codesymbole durch den Decoder empfangen. Der Decoder befindet sich in einem Löschmodus. Er löscht das vierte Symbol, das nicht im Speicher gespeichert wurde. Der Decoder decodiert das 12-Bit-Codewort in ein 8-Bit-Informationswort, das dem Prozessor zugeführt wird.
  • Auf diese Weise stehen die folgenden Fehlererkennungs-/Korrekturmöglichkeiten zur Verfügung:
  • - Einzel-Bitfehler-Korrektur oder
  • - Einzel-Symbolfehler-Korrektur.
  • Die Einzel-Bitfehler-Korrektur ergibt sich aus Eigenschaft 4. Bei einem Hamming-Code hätte man bis hierher genau das gleiche Ergebnis erhalten. Wenn sich jedoch ein Bitfehler als "harter" Fehler erweist, kann der Decoder leicht auf Einzel-Modus umgeschaltet werden, so daß nur zwei 4-Bit-Symbole die Ausgabe des Decoders bestimmen. Auf diese Weise bestimmen nur 8 Bits die Ausgabe des Decoders und nicht 12 Bits, von denen eines fehlerhaft ist. Die Wahrscheinlichkeit, daß die Ausgabe aufgrund eines weiteren Bitfehlers fehlerhaft ist, wird dadurch auf 8/11 der ursprünglichen Wahrscheinlichkeit reduziert.
  • Die Tatsache, daß das Symbolgewicht eines Codewortes bei einem einzelnen gelöschten Symbol mindestens zwei beträgt, führt zu dem Schluß, daß es auch möglich ist, Einzel-Symbolfehler zu erkennen (Eigenschaft 3). Dies kann nützlich sein, wenn der Speicher in Form von Speicherbänken mit einer Breite von jeweils 4 Bit entworfen ist. Der Ausfall einer solchen Bank kann erkannt werden.
  • Die Lösung mit dem (4,2)-Code ist in dem Sinn flexibel, daß der Designer/Benutzer des Systems die Zuverlässigkeit des Systems durch die Wahl der geeigneten Methode maximieren kann. Es ist zu beachten, daß dies vollständig von der Strategie abhängt. Die Hardware ist genau die gleiche.
  • VERWENDUNG DES (4,2)-CODES IM (2,1)-KONZEPT
  • Figur 3 zeigt einen (4,2)-Code, der vorteilhafterweise in einem verdoppelten System verwendet werden kann. Die linke Einheit umfaßt das Decodermodul 60, das Prozessormodul 62, den Adreßbus 64 und die Codiermodule G3, G2, die die Speichermodule M3 bzw. M2 versorgen. Die rechte Einheit ist vom Aufbau her identisch, bis auf die Codiermodule G1, G0, die die Speichermodule M1 bzw. M0 versorgen. Natürlich können alle Speichermodule vom Aufbau her identisch sein. In dem verdoppelten System werden nun die gleichen Codierer und Decodierer eingesetzt wie im Computer mit (4,2)-Konzept. Nur die Femerkontrolle verläuft anders, weil die gleiche Art von Fehler nicht zu der gleichen Aktion führen wird. Der Vorteil der Verwendung eines (4,2)-Codes in einem verdoppelten System besteht darin, daß der Designer oder Benutzer seinen Fehlerhandhabungs-Mechanismus je nach Zusammenhang zwischen Fehlertyp und Art des Defekts oder Herabstufbarkeit des Systems anpassen kann. Eine Alternative für den (4,2)-Code ist ein (2,1)-Code. Der (4,2)-Code ist jedoch optimal, weil er als (2,1)-Code benutzt wird. Im übrigen Teil dieses Abschnitts wird zunächst die Architektur eines verdoppelten Systems mit (4,2)-Code beschrieben. Danach wird die Flexibilität des Fehlerhandhabungs-Mechanismus anhand von einigen Beispielen dargestellt.
  • Der (4,2)-Code besteht aus 4 Codesymbolen. Von jedem Codesymbol- Paar kann die ursprüngliche Information zurückgewonnen werden (Eigenschaft 5). Das verdoppelte System besteht aus zwei Einheiten. Jede Einheit umfaßt zwei Codiermodule, um die Informationssymbole während eines Schreibzyklus des Prozessors in zwei Codesymbole zu codieren. Jede Einheit schreibt zwei verschiedene Codesymbole in ihren Speicher. Die vier Codesymbole bilden ein Codewort. Ein Paar von Codesymbolen wird in den Speicher der Einheit 0 geschreiben, das andere Paar in den Speicher der Einheit 1.
  • Während eines Lesezyklus des Prozessors werden die vier Codesymbole am Eingang des Decoders verriegelt. Wenn kein Fehler aufgetreten ist, erhalten beide Prozessormodule die gleiche korrekte Information. Wenn jedoch ein Fehler aufgetreten ist, wird ihn der Decoder erkennen und wenn möglich korrigieren. Im folgenden werden drei Beispiele für die Konsequenzen nach der Erkennung eines Fehlers erörtert.
  • Nach der Erkennung eines Fehlers besteht eine Möglichkeit darin, genau das gleiche zu tun wie in einem herkömmlichen verdoppelten System. Sobald ein Fehler auftritt, mit der Verarbeitung stoppen und mit einem Diagnoseprogramm versuchen, die Fehlerursache zu finden. Dies ist die grundlegende Vorgehensweise bei verdoppelten Systemen. Der (4,2)-Code bietet mehr Flexibilität, wie im folgenden gezeigt wird (siehe auch die Tabelle am Ende dieses Abschnitts).
  • Bei einem herkömmlichen verdoppelten System wird oft ein Hamming- Code benutzt, um Einzel-Bitfehler im Speicher zu korrigieren. Dadurch werden die Speicherkosten um 25% bis 50% - je nach Wortlänge - erhöht. Bei 8-Bit-Worten sind dies 50%. Da der Speicher das kostenaufwendigste Teil des Systems ist, wird dies einen großen Einfluß auf die Gesamtkosten haben. Bei dem hier vorgeschlagenen System ist es möglich, einen Hamming-Code für die Einzel-Bitfehlerkorrektur zu benutzen, jedoch muß dies nicht unbedingt geschehen. Tatsächlich ist die Einzel-Bitfehlerkorrektur auch in dem hier vorgeschlagenen System (ohne irgendeine Speichervergrößerung) verfügbar.
  • Der (4,2)-Code kann einzelne und doppelte Bitfehler korrigieren. Daher ist es möglich, (einen Teil der) Korrekturfähigkeit in dem doppelten System zu nutzen. Man muß sich jedoch der Tatsache bewußt sein, daß die Nutzung (eines Teils) der Korrekturfähigkeit auch impliziert, daß die Wahrscheinlichkeit der Fehlkorrektur/Fehlerkennung zunimmt. Wenn zum Beispiel eine Einheit ausfällt, könnte sie zwei fehlerhafte Symbole erzeugen, so daß die Decoder einen Einzel-Bitfehler korrigieren, obwohl das System stoppen sollte. Wenn die Einzel-Bitfehlerkorrektur nicht benutzt worden wäre, hätte ein doppelter Symbolfehler erkannt werden können.
  • Drei grundlegende Elemente sind ausschlaggebend für die Zuverlässigkeit des verdoppelten Systems:
  • - der Abdeckungsfaktor des Diagnoseprogramms,
  • - die Zuverlässigkeit des Speichers in bezug auf sowohl harte als auch weiche Bitfehler sowie Chip-Ausfälle, und
  • - die Zuverlässigkeit der Prozessorlogik.
  • Die Verwendung eines (4,2)-Codes in einem verdoppelten System bietet die Möglichkeit, die Zuverlässigkeit des verdoppelten Systems zu optimieren, ohne kostensteigernde Verfahren anzuwenden. Letztendlich werden die Kosten geringer sein, wenn man sich dafür entscheidet, den Hamming-Code nicht anzuwenden. TABELLE
  • VERVIERFACHTE MODULARE REDUNDANZ-SYSTEME
  • Figur 4 zeigt ein vervierfachtes modulares Redundanzsystem, das aus vier Einheiten besteht. Die linke Einheit hat zwei parallele Sechszehn-Bit-Decodermodule, die jeweils ein 16-Bit-Codewort zur Umsetzung in ein Acht-Bit-Zwei-Symbol-Datenwort empfangen. Natürlich können die beiden Decodermodule auf eine einzige Decoder- Hardware 80 abgebildet werden, die abwechselnd für die beiden Codeworte arbeitet, welche identisch sein sollten. Die beiden auf diese Weise erzeugten Datenworte sollten natürlich identisch sein. Die beiden Datenworte werden im Prozessormodul 82 verarbeitet, das entweder aus zwei parallelen identischen 8-Bit-Prozessormodulen oder einem einzelnen Prozessormodul mit einer Breite von 8 Bit besteht, das abwechselnd den ersten und den zweiten obengenannten 8-Bit-Prozessor emuliert. Das Verarbeitungsergebnis, wenn es sich um eine Speichermoduladresse handelt, adressiert als nächstes sein zugehöriges Speichermodul 84 mit einer kombinierten Breite von 8 Bit. In der Figur wurde dieses als ein einzelner Block dargestellt. Physikalisch könnte es in Form von zwei getrennt aktivierbaren Speicherbänken oder als eine einzige Speicherbank realisiert werden. Wenn es sich bei dem Verarbeitungsergebnis um Daten handelt, kommen die Module G3, G2 ins Spiel. Ist das auf diese Weise erzeugte Datenwort ein ungerades Datenwort, wird es dem Codiermodul G3 zugeführt. Ist das Datenwort ein geradzahliges Datenwort, wird es Codiermodul G2 zugeführt. Die zweite Verarbeitungseinheit ist identisch mit der ersten Verarbeitungseinheit bis auf die Tatsache, daß "ungerade" und "gerade" vertauscht wurden, was dadurch dargestellt wird, daß die Codiermodule G3, G2 ihre Position verändert haben. Die dritte und die vierte Verarbeitungseinheit von links sind identisch mit den früheren beiden, jedoch mit der Ausnahme, daß jetzt die Codiermodule G1, G0 vorhanden sind. Die zusätzliche Logik, die erforderlich ist, um die oben beschriebenen Vorgänge auszuführen und die nachstehende Strategie zu realisieren, wurde der Kürze halber nicht abgebildet. Bei dem dergestalt beschriebenen System kann die Zuordnung der Symbole zu den jeweiligen Modulen folgendermaßen zusammengefaßt werden:
  • 3,2/2,3/1,0/0,1.
  • Eine etwas andere Zuordnung wäre folgende:
  • 0,3/3,2/2,1/1,0.
  • Die beiden Strukturen haben ihre spezifischen Vorteile: die zweite könnte beim Ausfall von zwei Einheiten unabhängig vom Ausfallmuster immer noch über drei verschiedene Codesymbole verfügen. Im folgenden wird die erste Struktur betrachtet.
  • Im allgemeinen können Systeme mit einem Vierfachen der Prozessor- und Steuerlogik entwickelt werden, ohne ein Vierfaches an Speicher zu benutzen. Der Computer mit (4,2)-Standardkonzept hat zum Beispiel nur eine verdoppelte Speichermenge. Der (4,2)- Code kann auch in den vervierfachten Systemen mit einem Vierfachen an Speicher (Systeme mit (4,1)-Konzept) benutzt werden. Im folgenden werden zunächst die Unterschiede zwischen dem Computer mit (4,2)-Konzept und einem vierfachen System erläutert.
  • Danach werden die Vor- und Nachteile der Verwendung eines (4,2)-Codes in einem System mit (4,1)-Konzept dargelegt.
  • Die wesentlichen Unterschiede zwischen dem Computer mit (4,2)-Konzept und einem vierfachen System sind:
  • - Kosten und
  • - Herabstufungsfähigkeit.
  • Die Kosten eines vierfachen Systems sind viermal so hoch wie die Kosten eines Einzel-Einheit-Systems. Die Kosten eines Computers mit (4,2)-Konzept sind zwei- bis dreimal so hoch wie die Kosten eines Einzel-Einheit-Systems, da der Speicher der kostenaufwendigste Teil ist. Der Computer mit (4,2)-Konzept toleriert eine ausfallende Einheit und schaltet dann auf ein System mit drei funktionierenden Einheiten um. Jetzt kann kein weiterer Ausfall einer Einheit toleriert werden, wenn die ausgefallene Einheit nicht bekannt ist.
  • Das vierfache System kann eine ausfallende Einheit tolerieren und schaltet daraufhin auf ein dreifaches System um. Als dreifaches System kann es den Ausfall einer weiteren Einheit tolerieren, außer wenn die Meldungen der letzteren an die anderen Einheiten dahingehend inkonsistent sind, daß die anderen Einheiten hinsichtlich der tatsächlich erhaltenen Information nicht übereinstimmen. Wenn nur zwei funktionierende Einheiten übrig sind, kann das System als verdoppeltes (ausfallsicheres) System funktionieren. Das vierfache System wird also zuverlässiger sein als das System mit (4,2)-Konzept, jedoch auch kostenaufwendiger (bis zu zweimal teurer). Die Art, wie der (4,2)-Code benutzt werden kann, besteht nicht in einer Verdoppelung eines Codesymbols in jeder Einheit. Eine der Möglichkeiten, wie die Symbole von zwei verschiedenen Codierern auf eine Einheit abgebildet werden, ist in Figur 4 dargestellt.
  • Die Herabstufung eines vierfachen Systems über ein TMR-System zu einem verdoppelten System ist ein komplizierter Prozeß, wie im folgenden gezeigt wird. Jedes Decodermodul in einer Einheit kann einen Einzel-Symbolfehler korrigieren. Es kann also eine Einheit ausfallen. Dann bleiben zwei Codeworte, die jeweils aus drei Symbolen bestehen, übrig. Wenn keine Kommunikation zwischen den Decodermodulen in verschiedenen Einheiten möglich ist, kann kein weiterer Ausfall einer Einheit toleriert werden. Zwei Codesymbole von einer Einheit stellen jedoch immer die ursprüngliche Information dar. Die 6 Codesymbole der beiden Codeworte haben immer mindestens das Symbolgewicht 4, was bedeutet, daß ein einzelner Symbolfehler immer korrigiert werden kann und ein zweiter immer erkannt werden kann. Durch Kombinieren der 6 Codesymbole kann also erneut ein Ausfall einer Einheit toleriert werden. Wenn eine Einheit ausfällt, bedeutet dies, daß das System zu einem verdoppelten System herabgestuft wird.
  • Die Verwendung des (4,2)-Codes in einem vierfachen System bietet dem Designer/Benutzer des Systems also wiederum Flexibilität. Das Decodierschema der vierfachen Architektur ist jedoch komplizierter, vor allem, wenn eine maximale Korrektur-/Erkennungsfähigkeit erreicht werden soll.
  • Die Anordnung aus Figur 4 kann nun durch die Verwendung der zweiten Zuordnung der verschiedenen Codiermodule zu den verschiedenen Einheiten geändert werden. Die Situation mit einer ausgefallenen Einheit und mit drei ausgefallenen Einheiten ist identisch mit der erstgenannten Organisation. Wenn jedoch zwei Einheiten ausfallen, hat das System immer drei verschiedene Symbole von den jeweiligen verschiedenen Einheiten zur Verfügung, zwei davon doppelt. Diese ermöglicht verschiedene Strategien, je nachdem, ob die doppelten Symbole identisch sind oder nicht, und auf jeden Fall die Reparierbarkeit von verschiedenen Bitfehlern sowohl in den doppelten Symbolen als auch außerhalb davon.
  • Alle anderen Kombinationen von Codiermodulen und Verarbeitungseinheiten würden sich nur auf eine Umnumerierung der Symbole beschränken.
  • VERWENDUNG DES (4,2)-CODES IN EINEM DREI-EINHEITEN-SYSTEM
  • Figur 5 zeigt die Verwendung des (4,2)-Codes in einem Drei-Einheiten- System. Die linke Einheit hat einen Standarddecoder 100, einen Prozessor 102, ein 20 Codiermodul 104 und ein Speichermodul 106. Die beiden anderen Einheiten sind identisch bis auf die Verwendung der jeweiligen unterschiedlichen Codiermodule G3, G2 und G1 wie abgebildet. Obwohl die Codes speziell für dreifach modulare Redundanz- Systeme (TMR) entworfen wurden, ist der (4,2)-Code nahezu optimal im Vergleich zu dem besten (3,1)-Code.
  • Die grundlegende Vorgehensweise zur Verwendung eines (4,2)-Codes in einem TMR-System besteht nun darin, den Code zu kürzen. Dies kann auf die folgende Weise implementiert werden. Zu einem 4-Bit-Informationswort (Nibble) wird ein Standardvorgabe-Nibble hinzugefügt. Auf diese Weise erhält man ein Byte (8 Bits). Es besteht aus vier Informationsbits und vier Bits (oder Scheinsymbol), deren Wert von vornherein bekannt ist. Das Nibble, dessen Information zuvor bekannt ist, ist vorzugsweise in jedem der drei Module das gleiche. Für das abgebildete Beispiel wird Null als Standardvorgabe-Wert gewählt oder emuliert. Das Byte dient als Eingabe für den Codierer. Die Codiermodule erzeugen ein 4-Bit-Codesymbol, das während eines Schreibzyklus des Prozessors im Speicher gespeichert wird.
  • Das (4,2)-Codewort besteht aus vier Codesymbolen. Eines der Codesymbole ist nun das 4-Bit-Informationsnibble, während ein anderes Codesymbol ein von vornherein bekanntes Nibble ist (Eigenschaft 6). Während eines Lesevorgangs werden die drei Codeworte durch die Decoder empfangen. Da das vierte Symbol von vornherein bekannt ist, wird auch das vierte Symbol durch den Decoder empfangen. Der Decoder hat nun vier Codesymbole, von denen ein Symbol korrigiert werden kann. Dies impliziert, daß ein ausfallendes Modul toleriert werden kann. Wenn alle drei Module funktionsfähig sind, können zwei Zufallsbitfehler in den 16 Bits des Codewortes korrigiert werden. Es ist zu beachten, daß der Wert eines Symbols des Codewortes immer der gleiche ist. Damit können tatsächlich zwei Zufallsbitfehler in einem 12-Bit-Codewort korrigiert werden.
  • Angenommen, ein Modul fällt aus und die Decoder schalten auf Löschmodus. Das System wird dann zu einem doppelten System herabgestuft. Von den drei nicht-gelöschten Symbolen ist eines von vornherein bekannt. Nun kann immer jeder Fehler erkannt werden, weil das Symbolgewicht des gelöschten Codewortes mindestens zwei beträgt. Man erhält also ein verdoppeltes System. Es ist auch möglich, einen Teil der Redundanz für die Einzel-Bitfehlerkorrektur zu verwenden und den verbleibenden Teil für die Symbolfehlererkennung. Der Designer/Benutzer des Systems hat die Möglichkeit, die Zuverlässigkeit des Systems auf eine ähnliche Weise zu maximieren wie oben in bezug auf Figur 3 beschrieben.
  • EINIGE ALLGEMEINE ÜBERLEGUNGEN
  • Im vorangegangenen wurde der (4,2)-Code in bezug auf 4-Bit-Symbole und 1 bis 4 Verarbeitungseinheiten beschrieben. Für längere Symbole würde die Anwendung ähnlich sein, sei es, daß auf einer Bitfehlerebene die Schutzfähigkeit größer wäre.
  • A. Für einen allgemeinen (n,k)-Code kann jede Anzahl i von Symbolen gelöscht werden, wobei i ≤ n-k. Bei einer Datenwortlänge von L würde dann jedes Codiermodul eine Symbollänge von L/k erzeugen. Dieser Code könnte dann in Konfigurationen gemäß den Figuren 2, 3, 4 benutzt werden, sei es mit einer angepaßten Anzahl von Einheiten. Das System aus Figur 1 könnte zum Beispiel mit einer beliebigen Anzahl von Codiermodulen k, k+ 1 ... n-1 arbeiten, und zwar jedes Mal mit entsprechenden Fehlerkorrekturfunktionen.
  • B. Eine weitere Möglichkeit besteht entsprechend Figur 5 darin, daß jede Einheit am Eingang ihres Decodermoduls, am Ausgang hiervon sowie am Eingang ihres Codiermoduls i = 1 .. k-1 Symbole als Scheinsymbole behandeln würde. Wie in Figur 3 wäre ein vorteilhafter Wert Null. Das Gesamtsystem würde dann eine entsprechende Anzahl von Einheiten benötigen, da der benutzte (n,k)-Code jetzt auf ein (n-i,k-i)-System reduziert wäre.
  • C. Eine weitere Lösung, allgemein vergleichbar mit Figur 4, bestände darin, i (i ist ein gemeinsamer Faktor von k,n) Codiermodule in einer Einheit zusammenzufügen und nur ein Prozessormodul in der relevanten Einheit zu benutzen.
  • D. Eine weitere Möglichkeit, ebenfalls vergleichbar mit Figur 4, wäre die Verwendung von i Codiermodulen in einer umgeordneten Weise in einer Einheit, wobei i ein Faktor von n ist, aber nicht unbedingt von k. Dadurch würde der (n,k)-Code zu einem (n, k/i)- Code umgewandelt.
  • Im Fall eines (4,2)-Codes würden diese Fälle A, B, C, D dann jeweils zu folgendem führen:
  • (4,2) -> A -> (3,2)
  • (4,2) -> A -> (3,2)
  • (4,2) -> C -> (2,1)
  • (4,2) -> D -> (4,1)
  • Ein Fall von erfolgreichen eleganten Herabstufungen, beginnend mit einem (8,5)-Code, würde dann wie folgt realisiert:
  • (8,5) -> A -> (7,5) -> B -> (6,4) -> C -> (3,2) -> D -> (3,1).

Claims (6)

1. Datenverarbeitungssystem basierend auf einem Code mit n-Symbolcodeworten bei einem k-Symbol-Informationsgehalt pro Codewort, wobei n-k ≥ 2 und k ≥ 2, und mit sowohl einzelner Symbolfehler-Korrigierbarkeit als auch mehrfacher Fehlerreparierbarkeit in bezug auf mindestens zwei in einem einzelnen Codewort zusammen vorliegende Symbole, wobei jedes Symbol eine gleichförmige Vielzahl von Bits hat, und wobei das System folgendes umfaßt:
a. eine Decoderstufe mit einem Eingang zum Empfangen von n-Symbolcodeworten, die hiervon k-Symboldatenworte ableitet;
b. eine Verarbeitungsstufe, die durch die genannte Decoderstufe versorgt wird, um die genannten Datenworte zu verarbeiten, und aus diesen Datenworten Speicheradressen und weitere Datenworte entwickelt;
c. eine Codierstufe mit mehreren Codiermodulen, um eine Auswahl dieser Datenworte, die identisch sein sollten, zu empfangen und um diese in entsprechenden Codiermodulen zu entsprechenden unterschiedlichen Codesymbolen zu codieren;
d. eine Speicherstufe mit mehreren Speichermodulen, die jeweils durch ein betrefendes der Codiermodule versorgt werden, um gemeinsam alle Codesymbole eines zugehörigen Codewortes unter der Steuerung einer zugehörigen der genannten Speicheradressen zu schreiben und zu lesen;
e. Rückkopplungsmittel, die durch die genannten Speichermodule versorgt werden, um ein auf diese Weise gelesenes Codewort zu der genannten Decoderstufe zurückzukoppeln;
dadurch gekennzeichnet, daß das genannte Datenverarbeitungssystem entweder aus einer einzelnen Datenverarbeitungseinheit oder aus einer Vielzahl von parallelen Datenverarbeitungseinheiten aufgebaut ist, wobei jede Datenverarbeitungseinheit zumindest einen Teil der Decodierungs-, Verarbeitungs- und Codierungsfunktion übernimmt;
daß jede vorhandene Datenverarbeitungseinheit mehr als ein aber weniger als n verschiedene Codiermodule hat, die durch das lokale Prozessormodul parallel versorgt werden; und daß jedes vorhandene Decodermodul alle reellen oder emulierten Symbole empfängt, die zu einem bestimmten Codewort gehören, so daß jedes vorhandene Prozessormodul ein komplettes Datenwort verarbeitet; und dadurch, daß die entsprechenden Speichermodule einer Datenverarbeitungseinheit die jeweiligen getrennten Codesymbole speichern, die zu dem gerade verarbeiteten Datenwort gehören.
2. Datenverarbeitungssystem nach Anspruch 1, wobei n = 4, k = 2, und die Anzahl der Datenverarbeitungseinheiten gleich eins ist, das drei verschiedene Codiermodule zum Speichern eines 50% redundanten Codewortes bei einer Fehlerschutzfahigkeit hat, welche mindestens der eines (12,8,3)-Hamming-Codes entspricht.
3. Datenverarbeitungssystem nach Anspruch 1, wobei n = 4, k = 2, und das zwei Datenverarbeitungseinheiten parallel hat, die jeweils zwei einzigartige Codiermodule haben, welche jeweils ein zugehöriges Speichermodul versorgen, so daß das System ein 100% redundantes Codewort speichert, um jedes Doppelbitfehlermuster korrigierbar zu machen, um bei Vorliegen eines gelöschten Codesymbols jeden Fehler in einem zweiten Codesymbol des gleichen Codewortes erkennbar zu machen, oder alternativ jeden einzelnen Bitfehler in einem solchen zweiten Symbol korrigierbar zu machen, und um aus beliebigen zwei korrekten Codesymbolen eines Codewortes das hiermit verbundene korrekte Datenwort zurückgewinnbar zu machen.
4. Datenverarbeitungssystem nach Anspruch 1, wobei n = 4, k = 2, und mit vier Datenverarbeitungseinheiten, die jeweils zwei Codiermodule haben, die einzigartig entweder unter den ungeraden Datenverarbeitungseinheiten oder unter den geraden Datenverarbeitungseinheiten sind, und die jeweils ein zugehöriges Speichermodul versorgen, so daß ein 100% redundantes Codewort in zwei parallelen Versionen gespeichert wird, wobei jede derartige Version genau ein Symbol in jedem der Datenverarbeitungsmodule hat, und die Hälfte der Decodermodule die erste Version empfängt und die andere Hälfte die zweite Version empfängt, so daß bei einer Funktionsuntüchtigkeit einer einzelnen Datenverarbeitungseinheit mindestens eine Version jedes Codewortes immer noch einwandfrei in den kollektiven Speichermodulen gespeichert wird.
5. Datenverarbeitungssystem nach Anspruch 4 und das auch bei Funktionsuntüchtigkeit von einer beliebigen Konfiguration von bis zu drei Datenverarbeitungseinheiten funktionsfähig bleibt.
6. Datenverarbeitungssystem auf der Basis eines 100 % -Redundanz-Vier-Symbol-Codewortes mit sowom einzelner Symbolfehler-Korrigierbarkeit als auch Mehrfach- Fehlerreparierbarkeit in bezug auf mindestens zwei Symbole, die zusammen in einem einzigen Codewort vorliegen und wobei jedes Symbol eine gleichförmige Vielzahl von Bits hat, wobei das System folgendes umfaßt:
a. eine Decoderstufe mit einem Eingang zum Empfangen eines Codewortes, die hiervon Datenworte ableitet;
b. eine Verarbeitungsstufe, die durch die genannte Decoderstufe versorgt wird, um die genannten Datenworte zu verarbeiten, und aus diesen Datenworten Speicheradressen und weitere Datenworte entwickelt;
c. eine Codierstufe mit mehreren Codiermodulen, um eine Auswahl dieser Datenworte, die identisch sein sollten, zu empfangen und diese in entsprechenden Codiermodulen zu entsprechenden unterschiedlichen Codesymbolen zu codieren;
d. eine Speicherstufe mit mehreren Speichermodulen, die jeweils durch ein betreffendes der Codiermodule versorgt werden, um gemeinsam alle Codesymbole eines zugehörigen Codewortes unter der Steuerung einer zugehörigen der genannten Speicheradressen zu schreiben und zu lesen;
e. Rückkopplungsmittel, die durch die genannten Speichermodule versorgt werden, um ein auf diese Weise gelesenes Codewort zu der genannten Decoderstufe zurückzukoppeln;
dadurch gekennzeichnet, daß das Datenverarbeitungssystem drei Datenverarbeitungseinheiten parallel enthält, die jeweils ein einzigartiges Codiermodul haben, und die parallel durch ihr lokales Prozessormodul versorgt werden, um gemeinsam drei Codesymbole auf der Basis einer 50% emulierten Datenwort-Version zu erzeugen; und dadurch, daß jede Verarbeitungseinheit ein Decodermodul hat, das vorgesehen ist, um drei Codesymbole parallel zu empfangen und auch ein Schein-Codesymbol zu empfangen, und um ein einzelnes Datensymbol und ein einzelnes Schein-Datensymbol parallel auszugeben.
DE69031947T 1990-10-16 1990-10-16 Datenverarbeitungssystem basierend auf einem (N,K)-Symbolkode und mit Symbolfehler-Korrigierbarkeit und mehrfacher Fehlerreparierbarkeit Expired - Fee Related DE69031947T2 (de)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
EP90202747A EP0481128B1 (de) 1990-10-16 1990-10-16 Datenverarbeitungssystem basierend auf einem (N,K)-Symbolkode und mit Symbolfehler-Korrigierbarkeit und mehrfacher Fehlerreparierbarkeit

Publications (2)

Publication Number Publication Date
DE69031947D1 DE69031947D1 (de) 1998-02-19
DE69031947T2 true DE69031947T2 (de) 1998-07-16

Family

ID=8205143

Family Applications (1)

Application Number Title Priority Date Filing Date
DE69031947T Expired - Fee Related DE69031947T2 (de) 1990-10-16 1990-10-16 Datenverarbeitungssystem basierend auf einem (N,K)-Symbolkode und mit Symbolfehler-Korrigierbarkeit und mehrfacher Fehlerreparierbarkeit

Country Status (4)

Country Link
US (1) US5488617A (de)
EP (1) EP0481128B1 (de)
JP (1) JP3654655B2 (de)
DE (1) DE69031947T2 (de)

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5805614A (en) * 1996-07-03 1998-09-08 General Signal Corporation Fault tolerant switch fabric with control and data correction by hamming codes
US5812556A (en) * 1996-07-03 1998-09-22 General Signal Corporation Fault tolerant switch fabric with control and data correction by hamming codes and error inducing check register
US20020120421A1 (en) * 2001-02-27 2002-08-29 Crawford Daniel A. Controller having internal durability test cycle driver
US8972828B1 (en) * 2008-09-18 2015-03-03 Compass Electro Optical Systems Ltd. High speed interconnect protocol and method
US8352837B1 (en) * 2009-03-20 2013-01-08 Marvell International Ltd. System and methods for storing data encoded with error information in a storage medium

Family Cites Families (20)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US3452328A (en) * 1965-06-07 1969-06-24 Ibm Error correction device for parallel data transmission system
US3601800A (en) * 1969-09-30 1971-08-24 Ibm Error correcting code device for parallel-serial transmissions
US3893070A (en) * 1974-01-07 1975-07-01 Ibm Error correction and detection circuit with modular coding unit
IT1014277B (it) * 1974-06-03 1977-04-20 Cselt Centro Studi Lab Telecom Sistema di controllo di elaboratori di processo operanti in parallelo
US3963908A (en) * 1975-02-24 1976-06-15 North Electric Company Encoding scheme for failure detection in random access memories
JPS5286011A (en) * 1976-01-12 1977-07-16 Nec Corp Error correction device for parallel processing
GB2035014B (en) * 1978-11-06 1982-09-29 British Broadcasting Corp Cyclic redundancy data check encoding method and apparatus
NL7909178A (nl) * 1979-12-20 1981-07-16 Philips Nv Rekenmachine met verspreide redundantie welke is verdeeld over verschillende isolatiegebieden voor fouten.
CA1170776A (en) * 1980-07-18 1984-07-10 Yoichiro Sako Method of error correction of blocks of data
US4413339A (en) * 1981-06-24 1983-11-01 Digital Equipment Corporation Multiple error detecting and correcting system employing Reed-Solomon codes
NL8104342A (nl) * 1981-09-21 1983-04-18 Philips Nv Rekenmachinesysteem, gebaseerd op een symboolkorrigerende kode met twee werkmodes.
NL8204038A (nl) * 1982-10-20 1984-05-16 Philips Nv Multiprocessorrekenmachinesysteem, bevattende n parallel werkende rekenmachinemodules, en rekenmachinemodule te gebruiken in zo een multiprocessorrekenmachinesysteem.
US4593393A (en) * 1984-02-06 1986-06-03 Motorola, Inc. Quasi parallel cyclic redundancy checker
GB2194850B (en) * 1986-09-05 1990-10-31 Philips Nv Data processing device
US4949200A (en) * 1988-03-31 1990-08-14 Digital Equipment Corporation Method and apparatus for encoding and mapping magnetic disk sector addresses
JPH03505035A (ja) * 1989-02-16 1991-10-31 グラマン エアロスペース コーポレーション 超高速エラー検出ネットワーク
US5107506A (en) * 1990-01-25 1992-04-21 Digital Equipment Corporation Error trapping decoding method and apparatus
JP2663189B2 (ja) * 1990-01-29 1997-10-15 富士写真フイルム株式会社 画像のダイナミックレンジ圧縮処理方法
US5224106A (en) * 1990-05-09 1993-06-29 Digital Equipment Corporation Multi-level error correction system
US5291496A (en) * 1990-10-18 1994-03-01 The United States Of America As Represented By The United States Department Of Energy Fault-tolerant corrector/detector chip for high-speed data processing

Also Published As

Publication number Publication date
US5488617A (en) 1996-01-30
EP0481128B1 (de) 1998-01-14
JP3654655B2 (ja) 2005-06-02
EP0481128A1 (de) 1992-04-22
DE69031947D1 (de) 1998-02-19
JPH04264626A (ja) 1992-09-21

Similar Documents

Publication Publication Date Title
DE3784741T2 (de) Dekoder fuer produkt-kodes und verfahren zur dekodierung dieser kodes.
DE3209679C2 (de)
DE69112624T2 (de) Mehrfehlerkorrektur eines rechnerspeichers.
DE102015201384B4 (de) Vorrichtung und Verfahren zum Verbessern der Datenspeicherung durch Dateninvertierung
DE60015753T2 (de) System und verfahren zum schutz von daten und zur korrektur von bitfehlern folgend aus komponentenfehlern
DE2260850C2 (de) Schaltungsanordnung zur Erkennung von Einzel- und Mehrfachfehlern und zur korrektur von Einzel- und bestimmten Mehrfachfehlern
DE69727083T2 (de) Überprüfungssystem um die integrität der parität einer speicherplattenmatrix aufrechtzuerhalten
DE2619159C2 (de) Fehlererkennungs- und Korrektureinrichtung
DE10133595B4 (de) Pufferschaltung, Speicherzugriffsverfahren und Reed-Solomon-Decoder
DE3789929T2 (de) Verfahren und Gerät zur Fehlerkorrektur in einem aus parallelem Prozessor bestehenden Datenverarbeitungssystem.
DE112011101116B4 (de) Two-Level BCH-Codes für Solid-State-Speichereinheiten
DE2132565C3 (de) Umsetzer
DE2430464A1 (de) Einrichtung zur fehlergesicherten datenuebertragung
DE3603926A1 (de) Halbleiter-speicherelement
DE2160412A1 (de) Binärdatenumsetzer
DE68924639T2 (de) Matrixspeicher, der Standardblöcke, Standard-Unterblöcke, einen redundanten Block und redundante Unterblöcke beinhaltet, und integrierter Kreis, der eine Vielzahl solcher Matrixspeicher beinhaltet.
DE3878787T2 (de) Halbleiterspeicher mit einer mitintegrierten fehlerkorrekturanordnung und integrierte schaltung mit einem derartigen halbleiterspeicher.
DE3727586C2 (de) Datenverarbeitungsanordnung bestehend aus vier im wesentlichen gleich aufgebauten Moduln
DE102005022107B4 (de) Vorrichtung und Verfahren zum Bestimmen einer Position eines Bitfehlers in einer Bitfolge
DE102013222136B4 (de) Schaltung und Verfahren für die Mehr-Bit-Korrektur
DE2513262C3 (de) Digitale Codeumwandlungsanordnung
DE69031947T2 (de) Datenverarbeitungssystem basierend auf einem (N,K)-Symbolkode und mit Symbolfehler-Korrigierbarkeit und mehrfacher Fehlerreparierbarkeit
DE60215687T2 (de) Fehlerkorrektion von multibit-baueinheiten mit unbeschränkter erkennung von doppelfehlern
DE2053836A1 (de) Verfahren und Vorrichtung zur Korrek Datengruppen
DE102019119753A1 (de) Generalisiertes verkettetes Fehlerkorrektur-Codierschema mit Lokalität

Legal Events

Date Code Title Description
8364 No opposition during term of opposition
8327 Change in the person/name/address of the patent owner

Owner name: KONINKLIJKE PHILIPS ELECTRONICS N.V., EINDHOVEN, N

8320 Willingness to grant licences declared (paragraph 23)
8328 Change in the person/name/address of the agent

Representative=s name: VOLMER, G., DIPL.-ING., PAT.-ANW., 52066 AACHEN

8339 Ceased/non-payment of the annual fee