DE2914515A1 - Verfahren und vorrichtung fuer ein wirksames fehlerentdeckungs- und korrektursystem - Google Patents

Verfahren und vorrichtung fuer ein wirksames fehlerentdeckungs- und korrektursystem

Info

Publication number
DE2914515A1
DE2914515A1 DE19792914515 DE2914515A DE2914515A1 DE 2914515 A1 DE2914515 A1 DE 2914515A1 DE 19792914515 DE19792914515 DE 19792914515 DE 2914515 A DE2914515 A DE 2914515A DE 2914515 A1 DE2914515 A1 DE 2914515A1
Authority
DE
Germany
Prior art keywords
coded
correction
error detection
polynomial
devices
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.)
Ceased
Application number
DE19792914515
Other languages
English (en)
Inventor
Joseph C Circello
Thomas H Howell
Robert E Scriver
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.)
Bull HN Information Systems Inc
Original Assignee
Honeywell Information Systems Italia SpA
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 Honeywell Information Systems Italia SpA filed Critical Honeywell Information Systems Italia SpA
Publication of DE2914515A1 publication Critical patent/DE2914515A1/de
Ceased legal-status Critical Current

Links

Classifications

    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
    • H03M13/03Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words
    • H03M13/05Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words using block codes, i.e. a predetermined number of check bits joined to a predetermined number of information bits
    • H03M13/13Linear codes
    • H03M13/17Burst error correction, e.g. error trapping, Fire codes

Landscapes

  • Physics & Mathematics (AREA)
  • Probability & Statistics with Applications (AREA)
  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Error Detection And Correction (AREA)
  • Detection And Correction Of Errors (AREA)

Description

DIPL. ING. HEINZ BARDEHLE München, 9.April 1979
DIPL. CHEM. DR. PETER FÜRNISS OQI/ CIC,
PATENTANWÄLTE . - £ ei 1 4 0 I 3
M-
Aktenzeichen: Unser Zeichen: P 28 56
Anmelder:
Honeywell Information Systems Inc. 200 Smith Street
Waltham, Mass.02154
USA
Verfahren und Vorrichtunq für ein wirksames Fehlerentdeckungs- und Korrektursystem
Kanzlei
i: HeVrnBtraße ίο, München
, 29U515
•43·
Verfahren und Vorrichtung für ein wirksames Fehlerentdeckungs- und Korrektursystem.
Die Erfindung bezieht sich auf die Entdeckung von Fehlern und auf ihre Korrektur bei Informationsverarbeitenden Systemen. Insbesondere betrifft die Erfindung die Verringerung von Falschkorrekturen bei Fehlerentdeckungs- und Korrektursystemen, wie sie bei digitalen Informationsverarbeitenden Systemen verwendet werden, und verwendet Fire-Codes, die durch zyklische Redundanz-Codierungen überprüft werden.
Das Konzept der Kommunikation impliziert im allgemeinen, daß der Empfänger einer Information daraus dieselbe Bedeutung ableitet, wie sie der Absender der Information hatte, wenn er seine Botschaft absandte. Es ist oft selbst dann eine schwierige Aufgabe, eine Kommunikation zu erreichen, wenn die Gesprächspartner sich gegenübersitzen oder-stehen. Wenn die Kommunikation mit Hilfe von drahtloser Übertragung, über Kabelübertragung, oder gar über die kurze Distanz erfolgt, die gegeben ist durch die Schnittstelle zwischen zwei Teilen elektronischer Ausrüstung, wird das Kommunikationsproblem oft durch das Vorhandensein von Störungen kompliziert.
Die Fähigkeit zu kommunizieren wird vergrößert, wenn die Information mit Hilfe eines binären Codes übermittelt wird. Solch ein Code besteht typischerweise aus zwei Energiezuständen, einem Zustand mit hoher Energie und einem Zustand mit niedriger Energie, die oft als logische Zustände 1 bzw. 0 bezeichnet werden. Aber auch hier können Störungen oder Ausmessungsfehler das Empfangen einer 1 oder 0 verursachen, wenn eine 0 oder eine 1 übertragen worden ist.
909845/0715
yl 29U515
Ein binär codiertes Wort oder eine Zahl besteht aus der Anordnung von Einsen und Nullen. Z. B. kann die Code-Gruppierung 10 1 die Zahl 5 darstellen. Wenn ein Fehler in der übertragung auftritt, kann die Code-Gruppe als der Binär-Code 1 0 G empfangen werden, das bedeutet die Zahl 4. Man sagt, die Codegruppe 10 1 umfaßt ein 3-bit-Wort.
Eine der frühesten Techniken der Fehlerentdeckung bestand darin, ein zusätzliches Bit zu dem übertragenen Wort hinzuzufügen, aus dem einzigen Zweck der Überprüfung, ob beim Übertragen des empfangenen Worts ein Fehler vorgekommen war. Ein zu einem Wort hinzugefügtes Bit, das eine solche Fehlerüberprüfung vorsehen kann, wird im folgenden als ein Prüf-Bit bezeichnet. Die bekannte Technik, auf die sich jetzt bezogen wird, war als Paritätsüberprüfung bekannt. Unter Parität verstand man, daß alle übertragenen Worte eine gleiche Anzahl von Einsen enthielten. In dem Fall, den man als gerade Parität bezeichnet, enthalten alle übertragenen Worte eine gerade Anzahl von Einsen. Ungerade Parität impliziert, daß alle übertragenen Worte eine ungerade Anzahl von Einsen enthalten. Daher würde die Zahl 5 in gerader Parität als 1010 übertragen werden, wobei die rechte Null das Paritätsüberprüfungs-Bit ist. Wenn ein Fehler in der übertragung in der Ankunft des Wortes 1000 resultieren würde, würde die Paritätsüberprüfung eine ungerade Anzahl von Einsen anzeigen und verursachen, daß eine Anforderung zur nochmaligen übertragung der Daten erfolgt, da erkannt wurde, daß ein Fehler existiert, weil das empfangene Wort keine gerade Parität aufwies. Die Anwendung von ungerader Paritätsüberprüfung wird dem Leser selbst überlassen.
909845/0715
29H515
Während Paritätsüberprüfungen eine geeignete Möglichkeit zur Entdeckung eines Fehlers in einem einzelnen Bit zur Verfügung stellen, ergibt diese Überprüfung kein Ergebnis, wenn zwei Bits fehlerhaft sein sollten. Wenn also das Wort 1010 übertragen wird und das Wort 0110 empfangen wird, wird das Paritätsprüf-Bit das fehlerhafte Wort ohne Entdeckung des Fehlers durchgehen lassen. Wegen der Grenzen des Paritäts-Checks wurden andere, weiter entwickelte Überprüfungstechniken entwickelt.
Die Kombination von Informations-Bits und Prüf-Bits wird als Code-Wort bezeichnet. Das Code-Wort wird erzeugt in Übereinstimmung mit einem ausgewählten Polynom, wobei das Polynom entsprechend seiner Fähigkeit ausgewählt wird, den Fehlerentdeckungs-Kriterien des Systems zu entsprechen. Ein in bestimmten Codierungen vorhandenes Charakteristikum ergibt die Beschreibung für alle derartigen Codes: Zyklische Codes. Ein Code heißt dann zyklisch, wenn irgendein Code-Wort, wenn es in irgendeiner Richtung zyklisch vertauscht wird und zwar um irgend eine Anzahl von Stellen, ein Code-Wort desselben Codes bleibt. Ein einmal zyklisch vertauschtes Code-Wort bedeutet, daß das erste Bit das letzte Bit im Code-Wort wird und das ursprüngliche zweite Bit das erste Bit des neuen Code-Worts wird. Zyklische Vertauschung in der anderen Richtung bedeutet, daß das letzte Bit das erste Bit des neuen Code-Wortes wird und daß das vorletzte Bit des ursprünglichen Code-Worts das letzte Bit des neuen Code-Worts wird. Da alle zyklischen Codes linear sind, resultiert die Summe zweier Code-Worte in einem Code-Wort innerhalb des gleichen Codes.
909845/9715
Zyklische Codes waren eine Verbesserung an der Paritätsüberprüfung, da nunmehr mehrfach-Bit-Fehler entdeckt werden konnten. Indessen eignen sich für alle praktischen Zwecke zyklische Codes, genau wie Paritäts-Codes, hauptsächlich zur Entdeckung von Fehlern in der empfangenen Information. Wenn ein Fehler in der empfangenen Information entdeckt ist, so ist es notwendig, daß der Absender davon unterrichtet wird und eine erneute Übertragung begonnen wird. Um die Notwendigkeit einer erneuten übertragung der Daten auszuschließen, wurde ein selbstkorrigierender Fehlerentdeckungs-Code gewünscht.
Einer der ersten, der sich auf diesem Felde betätigte, nämlich eine praktische Methode zur Erzeugung von Codes darzulegen, die Fehler sowohl entdecken als auch korrigieren können, war R. W. Hamming (Siehe Hamming, Error Detecting and Error Correcting Codes Bell System Technical Journal, Band 29, 1950, Seite 147 - 160). Die Anwendung des Werks von Hamming erlaubte die Entdeckung und die Korrektur von zufällig vorkommenden Fehlern innerhalb eines einzelnen Bits eines empfangenen Code-Worts. Die Namen von Böse, Ray-Chaudhuri und Hocquenghem wurden mit Fehlerentdeckung und Korrektur-Codes verbunden, die fähig sind, Fehler zu entdecken und zu korrigieren, die innerhalb mehrerer Bits eines übertragenen Worts vorkommen. Solche Codes werden üblicherweise als BCH -Codes bezeichnet. Der Entwerfer eines Fehlerentdeckungs- und Korrektursystems ( im folgenden abgekürzt als EDAC) mag wegen der zufälligen Natur der angetroffenen Fehler und der Wahrscheinlich-^ keit, daß solche Fehler ein oder mehr als ein Bit in irgend-
845/0715
29U51Ö ι/
• Ab-
einem gegebenen Code-Wort betreffen, seine Wahl unter dem Hamming- oder BCH-Code treffen. Indessen gibt es Umstände, in denen ein Bündel von Störungen zu erwarten ist, die mehrere einzelne Bits innerhalb einer gegebenen Bit-Länge betreffen können. Bündelfehler sind häufig verbunden mit Oberflächenfehlern in Plattenspeichern oder Magnetbandgeräten. Auch Übertragung von Daten über Radiowellen oder über lange Kabel sind Störungsproblemen unterworfen, die zu Bündelfehlern in der empfangenen Information führen.
Phillip Fire entdeckte die Familie von zyklischen Codes, welche seinen Namen tragen, und die eine leicht durchzuführende Bündelfehlerentdeckung und Korrektur zulassen. Die Verwendung von Hamming, BCH oder Fire-Codes versah den Entwerfer von EDAC-Systeinen mit den Einrichtungen zur Korrektur von Fehlern bei deren Empfang und machten die erneute übertragung der Information unnötig. Ein wichtiges Problem blieb jedoch weiterhin die Falschkorrektur von empfangenen Daten.
Im allgemeinen erlauben alle oben erwähnten Codes dem Entwerfer die Wahl, eine größere Anzahl von Bit-Fehlern zu entdecken, als das System korrigieren kann. Wenn daher die Zahl der fehlerhaften Bits in einem Code-Wort größer ist als die maximale Anzahl von Fehlern, die mit dem verwendeten Code korrigierbar sind, werden diese Fehler nicht automatisch korrigiert; und, wenn die Anzahl von Fehlern innerhalb der echten Entdeckungsmöglichkeit des Systems liegt, ist eine erneute
909845/0715
29ΊΑ515 Al-
Übertragung der Daten erforderlich. Wenn jedoch die Anzahl der Fehler die Grenzen der Entdeckung überschreiten, besteht die Möglichkeit, daß das System eine Falschkorrektur in den empfangenen Daten verursacht. Wenn z. B. die Autorisierung zur Bezahlung von 100 Dlrs. übertragen wird und fehlerhaft als Autorisierung zur Bezahlung von 10 000 Dlrs. empfangen wird, so kann eine Falschkorrektur die Ausstellung eines Schecks über 1 Million Dlrs. verursachen. Wie man sich leicht vorstellen kann, kann eine solche Falschkorrektur ihrerseits einen beachtlichen Betrag an Störungen innerhalb der Geschäftsleitung erzeugen.
Es ist typisch am Stand der Technik, einen Hamming-, BCH- oder Fire-Code auszuwählen als Hauptfehlerentdeckungsund Korrektur-Code des Systems, jedes Code-Wort mit einem zusätzlichen Prüfbit als Paritätsüberprüfung zur Entdeckung von Fehlern in dem empfangenen Wort zu versehen und einen zweiten zyklischen Redundanz-Code (im folgenden abgekürzt als CRC) auszuwählen, um vergrößerte Fehlerentdeckungsmöglichkeiten vorzusehen.
Es ist leicht zu sehen, daß die Hinzufügung von EDAC-Prüfbits, CRC-Prüfbits, und Paritätsprüf-Bits zu einem gegebenen Informationswort direkt dessen Länge vergrößert und daher einen direkten Einfluß auf die Fähigkeiten des Systems hat. Weiterhin kann die Länge des Code-Wortes die Geschwindigkeit bestimmen, mit der Informationen übertragen werden können, und sie kann den Betrag an Information bestimmen, der innerhalb eines gegebenen Speichermediums gespeichert werden kann. Das Problem der Vermeidung einer Falschkorrektur wurde
909845/0715
29H515
derart angegangen, daß ein EDAC-Code gewählt wurde, dessen Fehlererkennungsfähigkeiten bis zur Grenze dessen gingen, was statistisch in einem gegebenen System wahrscheinlich ist.
Die Vergrößerung der Fehlerentdeckungsfähigkeiten eines gegebenen Systems durch Auswahl eines komplexeren Code-Polynoms führt dazu, die Komplexität der Schaltkreise des EDAC-Codierers und Decodierers zu erhöhen und die Länge des Code-Worts uneffektiv zu vergrößern.
Die vorliegende Erfindung hat daher ihre Aufgabe in der verbesserten Effizienz in der Benutzung von Code-Worten, die verwendet werden, um die Entdeckung und Korrektur von Fehlern vorzusehen und den zusätzlichen Fehlerentdeckungsmöglichkeiten. Eine weitere Aufgabe der Erfindung liegt darin, eine Methodologie vorzusehen zum Entwerfen von ETAC-Systemen, die die Wahrscheinlichkeit von Falschkorrekturen auf ein Minimum reduzieren.
Bei einem Informationsverarbeitenden System, bei dem ein zyklischer Code verwendet wird, um Fehler zu entdecken und zu korrigieren und bei dem ein CRC-Code vervrendet wird zur zusätzlichen Entdeckung von Fehlern wird das CRC Polynom derart gewählt, daß es einen Faktor des Generator-Polynoms g(x) des EDAC-Codes darstellt. Mit Hilfe dieser Methode können die gleichen Prüfbits in dem Code-Wort, die zur Fehlerentdeckung und Korrektur verwendet werden, weiterhin für eine
909845/0715
29H515
CRC Überprüfung zur zusätzlichen Fehlerentdeckungsmöglichkeit des Systems verwendet werden. Das Risiko einer Falschkorrektur von Daten wird auf ein Minimum reduziert durch die Aufteilung von Daten und Zahlfeldern im Verlauf der Entwicklung der Fehlerentdeckung und Korrektur Codes. Die Verwendung der hierin offenbarten Erfindung sieht ein effizienteres Fehler entdeckungs- und Korrektur-System vor mit stark reduzierter Gefahr der Falschkorrektur.
Weitere Merkmale, Einzelheiten und Vorzüge der Erfindung ergeben sich aus der folgenden Beschreibung einer bevorzugten Ausführungsform der Erfindung sowie aus der Zeichnung. Hierbei zeigen:
Figur 1 :
Ein Blockdiagramm eines EDAC-Systems in einer typischen Anordnung
Figur 2 :
Einen zum Stand der Technik gehörenden EDAC Codierer;
Figur 3 :
Einen zum Stand der Technik gehörenden EDAC Decodierer;
Figur 4 :
Eine Ausführungsform eines erfindungsgemäs-
sen EDAC Systems.
Ein Fehlerentdeckungs- und Korrektursystem mag verwendet werden, wie es in Figur 1 gezeichnet ist. Informationen von einer
909845/071$
29U515 •30'
Datenquelle 1 werden in ein EDAC-System 2 eingeführt, welches in Übereinstimmung mit einem ausgewählten Code-Generator-Polynom g(x) die ankommenden Daten durch Hinzuführung von codierten Überprüfungs-Bits ergänzt, die später decodiert werden können, um zu bestimmen, ob ein Fehler sich in die Daten eingeschlichen hat.
Die codierten Daten können von dem EDAC-System entweder direkt zu einem Benutzer-Gerät ausgegeben werden oder aber die Eingabe in einen Speicher oder ein übertragungsgerät bilden. In beiden Fällen kann das Gerät, in das die Daten eingegeben werden, die Fehlerentdeckung vornehmen. Diese Fehlerentdeckung kann entweder eine Paritätsüberprüfung und/ oder eine überprüfung gegenüber einem CRC sein. Wenn ein Fehler zu diesem Zeitpunkt entdeckt wird, müßte eine Anforderung für eine neue Übertragung der Daten erfolgen.
Wenn die Daten in einem Speicher, wie bei 3 gezeigt, abgespeichert wurden, würde eine Neuübertragung der Daten über das gleiche EDAC-System vor sich gehen, welches das ursprüngliche Codieren vorsah, oder über ein ähnliches System, das das gleiche Generator Polynom g(x) wie das ursprüngliche Codierungssystem verwendet. Beim Durchgang durch das EDAC-System wird die Ausgabe der gespeicherten Daten überprüft, um zu bestätigen, daß keine Fehler in die Daten als Ergebnis von Fehlern innerhalb des Gerätes oder von Störungen beim Durchschreiten der Schnittstelle zwischen Speicher 3 und EDAC-System vorgekommen sind. Wenn ein Fehler innerhalb des EDAC-Systems entdeckt wird, wird er in diesem korrigiert und die korrigier-
909845/0715
29H515
• 34-
ten Daten werden zu einem Benutzergerät 4 ausgegeben. Zum Entdecken von Fehlern/ die beim Durchqueren der Schnittstelle zwischen dem EDAC-System und dem Benutzer-Gerät entstanden sind, kann ein.CRC und eine Paritätsüberprüfung durchgeführt werden und bei Entdeckung eines Fehlers eine Anforderung für eine Neu-Übertragung der Daten gemacht werden.
Ein Codierer zum Generieren von Code-Prüf-Bits in Übereinstimmung mit dem Polynom g (x) =? x3+x+1 ist in Figur 2a dargestellt. Diese Hardware Verkörperung eines zyklischen Code-Generators benutzt ein lineares Rückkopplungsschieberegister. Für eine allgemeine Diskussion von Schaltkreisen für lineare Rückkopplungs-Schieberegister wird verwiesen auf W.W. Peterson, Error Correcting Codes Cambridge Mass., MIT Press, 1961, Seiten 107 bis 123. Da Codierer und Decodierer für zyklischen Code zum Stand der Technik gehören, wird deren Diskussion, wie in den Figuren 2 und 3 zu sehen ist, etwas oberflächlich sein, da sie nur erfolgt, um sie in Context zur Erfindung zu bringen.
Im allgemeinen wird ein Codierer oder Decodierer zur Verwendung mit einem zyklischen Code lineare Rückkopplungs-Schieberegister verwenden, die aus einer Anzahl von Flip-Flops bestehen, die bestimmt ist durch den Grad des verwendeten Code-Generator Polynoms, und er enthält Rückkopplungs-Wege zu den Flip-Flops, die den Ausdrücken des ausgewählten Code-Polynoms entsprechen. Daher besteht für das Generator Polynom g(x),das ausgewählt wurde und in den Figuren 2 und 3 beschrieben ist, das lineare Rückkopplungs-
909845/0716
29U515
2/
Schieberegister aus drei Flip-Flops, da das Polynom g(x) vom Grad 3 ist. Rückkopplung durch exclusive Oderschaltkreise ist gezeigt zu den Flip-Flops, die den Ausdrücken x^ und x° in dem Polynom g(x) entsprechen.
Unter spezieller Bezugnahme auf den Codierer der Figur 2a, wird das Informationswort, I(x), bestehend aus der Informationsfolge 1 1 0 1, in den Codierer durch das exclusive Oder 5 eingegeben und gleichzeitig an das Oder-Gatter 6 angelegt. Während die Codierungs-Prüf-Bits generiert werden, ist Schalter S 1 geschlossen und Schalter S 2 geöffnet. Das Informationswort I(x) wird daher durch das Oder-Gatter zur gleichen Zeit ausgegeben, während die Codierer"-Prüf-Bits erzeugt werden. Die Tabelle der Figur 2 b zeigt, Schritt für Schritt, die aufeinanderfolgenden Zustände der Flip-Flops X°, x' und X^ des linearen Rückkopplungs-Schieberegisters, während die Informationsfolge durch den Codierer fließt.
Sobald das letzte Informations-Bit den Codierer durch das Oder-Gatter 5 und den Schalter S 1 erreicht, haben die Register den in der unteren Zeile von Figur 2 b gezeigten Inhalt. Die Code-Prüf-Bits sind daher angezeigt als 0 0 1. Zu diesem Zeitpunkt wird Schalter S 1 geöffjaet und Schalter S 2 geschlossen. Die Inhalte des linearen Rückkopplungs-Schieberegisters werden nun taktmäßig durch den Schalter S und das Oder-Gatter 6 ausgegeben, um den Informationsstrom I (x) am Ausgang zu treffen und so das Code-Wort F (x) zu bilden. Das Code-Wort F (x) enthält sowohl die Informationsfolge, nämlich 110 1, als auch die Prüf-Bit-Folge, nämlich
909845/0715
29U515
0 0 1/ so wie in Figur 2 a angegeben.
Ein Decodierer zur Verwendung mit den Code-Worten, die durch den Codierer der Figur 2 a erzeugt worden sind, ist in Figur 3 a gezeigt . Wie zu sehen ist, ist die Hardware-Darstellung des Decodierers im wesentlichen die gleiche wie die des Codierers mit Hinzufügen des Puffer-Registers 7. Es bedarf jedoch nur geringen Nachdenkens, um zu realisieren, daß die gleiche Hardware eingebaut und verwendet werden kann sowohl für das Codieren als auch das Decodieren innerhalb eines gegebenen EDAC-Systems. In Praxis wird eine solche Darstellung häufig verwendet. Um die Funktion des Decodierers und seine Fehlerkorrektur-Eigenschaften zu illustrieren, wird hier angenommen, daß das Code-Wort F (x) übertragen war, aber daß das Wort, das am Eingang zu dem Decodierer empfangen wurde, das Wort H(x) ist, bestehend aus dem Code-Wort F(x) und einem Fehler E (x). Im speziellen Fall wird angenommen, daß das übertragene Code-Wort 1 10 10 0 1 lautete, während das empfangene Wort 11110 0 1 war.
Das empfangene Wort gelangt in das Puffer-Register 7 und gleichzeitig durch das exclusive Oder-Gatter 8 in den Decodierer. Figur 3 b zeigt, Schritt nach Schritt, die aufeinanderfolgenden Zustände der Flip-Flops des linearen Rückkopplungs-Schieberegisters. Sobald das geringst-signifikante Bit des empfangenen Wortes in den Decodierer gelangt, wird der Inhalt des Deco dLerers, in diesem Falle 0 0 1, als der "Fehleranzeiger" bezeichnet. Dies bedeutet, daß
909845/6715
29H515
in dem empfangenen Wort ein Fehler vorhanden ist. Würde der Fehleranzeiger nur aus Nullen bestehen, d. h. lauten: 0 0 0, so würde dies bedeuten, daß kein Fehler innerhalb des empfangenen Wortes aufgetreten wäre. Da der Fehleranzeiger nicht ganz aus Nullen besteht, schaltet sich das EDAC-System nun in seine Betriebsart, in der es den Fehler korrigiert.
Gleichzeitig mit der Ableitung des Fehleranzeigers, wurde das empfangene Wort H (x) im Puffer-Register 7 abgespeichert. Nach Erkennen eines Fehleranzeigers ungleich Null wird eine Folge von logischen Nullen in den Eingang des Decodierers eingegeben. Mit jeder O-Eingabe des Korrekturprozesses wird ein Bit des in dem Puffer-Register gespeicherten Wortes herausgeführt. Jedes Mal, wenn eine Null am Eingang anliegt, werden die Inhalte der Flip-Flops ebenfalls so lange überprüft, bis das signifikanteste Bit 0 ist. Zu diesem Zeitpunkt wird Schalter S 3 geöffnet und Schalter S 4 geschlossen. Die Inhalte des Puffer-Registers und des linearen Rückkopplungs-Schieberegisters,-bestehend aus den drei Flip-Flops X°, X^ und X werden gleichzeitig in das Gatter 9 eingeführt, das ein logisches exclusives Oder darstellt. Der Ausgang des Oder-Gatters 9 ist das korrigierte Code-Wort F (x). Diese Folge wird,Schritt bei Schritt, in dem unteren Teil der Tabelle der Figur 3 gezeigt. Der oben angezogene Peterson-Text kann für ein genaueres Studium der Wirkungsweise von linearen Rückkopplungs-Schieberegistern beim Codieren, überprüfen und Fehlerverbessern herangezogen werden.
909845/0715
29H515
7Jf
Die vorliegende Erfindung verwendet Codierungs- und Decodierungs-Schaltkreise, die im Stand der Technik bekannt sind, aber sie verwendet sie in einer Art, welche Vorteile bringt, die in bekannten EDAC-Systemen nicht realisiert wurden. In der hier gewählten Ausführungsform zur Darlegung der hierin gelehrten Methode wird die Notwendigkeit angenommen, Bündel-Fehler der Länge 4 zu korrigieren und 100 % der Fehler mit einer Länge 16 oder weniger ohne Falschkorrektur zu entdecken. Ein System zur Erkennung und Korrektur von Bündel-Fehlern ist betroffen mit Fehlern, die innerhalb irgend einer gegebenen Länge von Bits innerhalb eines Code-Worts vorkommen können. Wenn z. B. das EDAC-System für einen Bündel-Fehler von einer Länge von 16 Bits entworfen ist, wird es Fehler entdecken in einem oder mehr Bits innerhalb einer Spanne von 16 Bits. Die fehlerhaften Bits brauchen keine aufeinanderfolgenden Bits zu sein, d. h. das erste und letzte Bit können fehlerhaft sein innerhalb irgendeiner gegebenen Spanne von 16 Bits, während jene Bits zwischen den fehlerhaften Bits korrekt sein können oder auch nicht.
Bündel-Fehler sind normalerweise verbunden mit Oberflächendefekten in Plattenspeichern oder Magnetband-Geräten oder können auch von Datenübertragungen durch die Atmosphäre oder über lange Kabel stammen. Fire-Codes gehören zur Familie der zyklischen Codes und sehen eine leicht zu verwirklichende Bündel-Fehler-Korrekturmöglichkeit unter Verwendung des oben beschriebenen Codierungs- und Decodierungs-Schaltkreises vor. (Siehe auch: Phillip Fire, A Class of Multiple-Error-Correcting Binary Codes for Non-Indepent Errors;
90984S/071S
29H515
. at.
Sylvania report RSL-E-II, Sylvania, Reconnaissance Systems Laboratory, Mountain View, California, 1959). Zur Diskussion sei die Verwendung eines Fire-Codes angenommen .
In Figur 4 sind die internen Merkmale des EDAC Systems 2 der Figur 1 näher erläutert. Das binäre Wort I (x) wird von der Datenquelle in das EDAC-System 2 mit Hilfe der Schnittstelle 10 eingefüttert. Die Schnittstelle 10 stellt nicht nur die notwendige Schnittstelle zwischen der Datenquelle und dem EDAC-System 2 dar, sondern sieht ebenfalls Einrichtungen zum Aufteilen der Datenfelder des ankommenden Wortes I ix) vor. Die Daten-Bits des Wortes I (x) auf den ungerade-zahligen Stellen werden in den EDAC-Codierer 11 eingefüttert, während die Daten-Bits auf den gerad-zahligen Stellen in den EDAC-Codierer eingefüttert werden. Nach der Generierung der Code-Prüf-Bits in jedem der beiden Codierer, 11 und 12, werden die ungeraden und geraden codierten Daten-Bits durch Verschachteln bzw. überlappen innerhalb der Schnittstelle 13 wieder zusammengesetzt und als das Code-Wort F (x) zu dem Speicher oder dem Übertragungs-Gerät ausgegeben, das mit dem EDAC-System 2 verbunden ist. Das Aufteilen und anschliessende Wiederverschachteln von Datenfeldern ist im Stand der Technik bekannt. Ein solches Aufteilen geschieht oft dann, wenn die Datenübertragungsrate größer ist als die zur Verfügung stehende Taktfrequenz der EDAC-Hardware. Für die Zwecke der hierin offenbarten Erfindung werden die Felder jedoch aufgeteilt und getrennt voneinander codiert zum Zweck
909845/0715
29U515 Ψ
der Reduzierung von Falschkorrekturen auf ein Minimum.
Eins der Kriterien für die Auswahl eines Code-Generator Polynoms g(x) ist das Aufstellen der Grenzen der Fehlerentdeckung s-Fähigkeit des EDAC-Systems. Wenn gesagt wird, daß ein System Fehler der Länge von 16 Bits oder weniger entdecken wird, so ist damit gemeint, daß es 100 % solcher Fehler ohne eine Falschkorrektur entdecken wird. In der Praxis ist es durchaus möglich, daß ein solches System fähig ist, Fehler von dreifacher, vierfacher oder noch größerer Länge zu entdecken. Indessen besteht bei solchen Fällen die Möglichkeit einer Falschkorrektur. Beim Aufstellen der 100 % - Grenze für die Entdeckung von Fehlern ohne Falschkorrektur, handelt der Entwerfer unter Zuhilfenahme der statistischen Wahrscheinlichkeit, daß Bündel-Fehler solcher Länge sehr unwahrscheinlich sind. D. h., durchschnittliche Fehler werden immer ohne Falschkorrektur entdeckt werden. Indessen ist es das Bewußtsein des atypischen Bündel-Fehlers, welches häufig den EDAC-System-Entwerfer dazu bringt, die Schaltkreise des Systemes zu groß zu entwerfen und komplexe Codierer und Decodierer vorzusehen, welche Fehler-Code-Prüf-Bits erzeugen, die weit über das hinausgehen, was wirksam von dem ganzen System verwendet werden kann.
Die hierin offenbarte Lehre sieht durch Aufteilung der Datenfelder-Bits ein EDAC-System von geringerer Komplexität vor, welches einen wirksameren Gebrauch von der Kapazität des Speichers macht und Verarbeitungszeit in den mit dem EDAC-System verbundenen Geräten spart. Z. B. kann bei
9098A5/071S
29U515
-Ai-
dem in Duskussion stehenden System der Praktiker des Standes der Technik versucht sein, ein EDAC-System zu entwerfen, das einer 100 %-igen Fehlerentdeckung ohne Falschkorrektur von Fehlerbündeln fähig ist, die langer sind als 16 Bits, dadurch die Falschkorrektur des atypischen Bündelfehlers zu vermeiden. Wie aber noch gezeigt wird, ist ein solcher tiber-Entwurf nicht nötig mit Hilfe der vorliegenden Erfindung.
Wie aus Figur 4 zu sehen ist, gelangen die codierten Daten in die Schnittstelle 14 als das Wort H (x). Das Wort H (x) möge die ursprüngliche codierte Information F (x) enthalten sowie einen Fehler G (x). Die Schnittstelle 14 sieht einen direkten Ausgang zum Puffer-Register 15 vor, einen geteilten Ausgang zum Decodierer 16 für die geradstelligen Bits sowie einen Ausgang zu dem Decodierer 17 für die ungeradstelligen Bits. Das Puffer-Register 15 ist angeordnet, um den gleichen Zwecken zu dienen, die bezüglich des Puffer-Registers "7 bei der Diskussion der Figur 3 a beschrieben wurden, mit der Ausnahme, daß das Puffer-Register 15 beide Decodierer 16 und 17 bedient. Während die Decodierer 16 und 17 daran arbeiten, einen Fehleranzeiger bezüglich der ihnen jeweils zugeführten Teilfelder abzuleiten, werden die geradstelligen und ungeradstelligen Bit-Informationen über die Leitungen 18 bzw. 19 ihren entsprechenden, der Korrektur dienenden logischen Blöcken 20 bzw. 21 zugeführt. Die ungeradstelligen Bits sind Ausgabe auf der Leitung 23 von dem logischen Korrekturblock 21, während die geradstelligen Bits Ausgabe auf
9O9845/071S
• as.
der Leitung 22 von dem logischen Korrekturblock 20 sind. Die Leitungen 22 und 23 bilden die Eingabeleitungen zur Schnittstelle 24, in der die geradstelligen und ungeradstelligen Bit-Informationen verschachtelt werden und die Ausgabe zu dem Benutzer-Gerät bilden.
Im Verlaufe der gerade beschriebenen Operationen wird das Wort H (x) im Puffer-Register 15 gehalten, obwohl das Eingabewort H (x) unmittelbar dem Benutzergerät zur Verfügung gestellt wird. Diese Anordnung versorgt das Benutzergerät mit einem unmittelbarem Zugang zu dem Eingabe-Wort H (x), so daß keine Verzögerung bei der Benutzung der Daten entsteht, wenn der Fehleranteil E (x) gleich 0 ist. Wenn einer oder beide der Decodierer 16 und 17 einen Fehler im Eingabewort H (x) entdecken, wird das Benutzergerät gewarnt und angewiesen, die fehlerhafte Eingabe zu ignorieren und das Ankommen der korrigierten Informationen zu erwarten.
Sobald die Daten aus dem logischen Korrekturblock 21 über die Leitung 23 gelangen, werden sie einer CRC Überprüfung 25 unterworfen. Der Überprüfungs-Schaltkreis 25 sieht eine Reserve für den EDAC-Decodierer vor sowie eine Selbstüberprüfung des EDAC-Systems unter Einschluß des Pufferspeichers 1E>. Der CRC-Überprüfungsschaltkreis 26 dient den identischen Zwecken bezüglich der Leitung 22 für die geradstelligen Bit-Positionen.
Darüberhinaus wird, wie oben erwähnt, angenommen, daß der Speicher und die Übertragungsgeräte, ebenso wie alle anderen mit dem EDAC-System verbundenen Benutzer-Geräten Vor-
909845/0715
29U515
richtungen für Paritäts- und CRC-Überprüfungen der Dateneingabe in diese Geräte aufweisen. Ist eine Paritätsoder CRC-Überprüfung nicht bestanden, erfolgt eine Fehleranzeige, die eine erneute Übertragung des Datenworts erfordert.
Wenn entweder Decodierer 16 oder 17 einen Fehler entdeckt, wird das Benutzergerät unmittelbar davon benachrichtigt, und das EDAC-System geht in seine Betriebsart, in der es den Fehler korrigiert. Wenn der Fehleranzeiger, der in dem Decodierer abgeleitet wurde, einen korrigierbaren Fehler anzeigt, erfolgt die Operation genauso, wie sie in der Beschreibung der Figur 3 b dargelegt wurde. Der Ausgang aus dem Puffer-Register 15 und der Korrektur-Code-Ausgang aus dem Decoder 16 oder 17 wird innerhalb ihrer entsprechenden logischen Schaltkreise 20 oder 21 kombiniert und das korrigierte Wort gelangt auf den Leitungen 22 bzw. 23 heraus.
Wenn der abgeleitete Fehleranzeiger anzeigt, daß der Fehler nicht korrigierbar ist, zeigt die logische Korrektur-Schaltung 20 oder 21 einen Fehler an, und eine erneute Übertragung des Datenwortes H (x) wird begonnen. CRC-Überprüfungen 25 und 26 werden an dem korrigierten Wort durchgeführt wie vorhin beschrieben und die korrigierten Daten werden innerhalb der Schnittstelle 24 verschachtelt und zu dem Benutzer-Gerät ausgegeben.
Bei einem herkömmlichen EDAC-System, das in der Lage ist, Bündelfehler der Länge 4 zu korrigieren und Bündelfehler
909845/0715
29H515
. 34-
der Länge 16 zu entdecken ohne Falschkorrektur, ist es wahrscheinlich, daß ein Fire-Code Polynom vom Grade 48 benutzt wird. Dies würde die Verwendung eines linearen Rückkopplungs-Schieberegisters mit 48 Flip-Flops erfordern. Durch Aufteilen der Daten in geradstellige und ungeradstellige Bit-Felder ist es möglich, einen Codierer und Decodierer zu verwenden, der bezüglich eines Fire-Code Generator Polynoms g(x) vom Grade 24 entworfen ist, und der nur 24 Flip-Flops in den entsprechenden linearen Rückkopplungs-Schieberegister erfordert. Während die Wahrscheinlichkeit des Auftretens einer Falschkorrektur bei dem bekannten System mit nicht aufgeteilten Daten-Feldern bei aller Wahrscheinlichkeit viel geringer als 1 ist, ist die Wahrscheinlichkeit einer Falschkorrektur in einem aufgeteilten System etwa gleich dem Quadrat der Wahrscheinlichkeit einer Falschkorrektur des älteren, nicht aufgeteilten EDAC-Systems, wodurch diese Wahrscheinlichkeit drastisch reduziert wird. Mit dem in dieser Anmeldung gelehrten, aufgeteilten EDAC-System müssen beide Decodierer bei Empfang eines nicht korrigierbaren Fehlers akzeptierbare Code-Worte ausgeben, um eine Falschkorrektur zu bewirken. Die Wahrscheinlichkeit, daß dies mit einem System mit zwei Decodierern vorkommt, ist praktisch Null. Es ist daher zu sehen, daß das Aufteilen der Felder innerhalb des EDAC-Systems dazu führt, daß die verwendeten Codierungs- und Decodierungs-Schaltkreise viel weniger kompliziert sein müssen und daß trotzdem die Wahrscheinlichkeit des Auftretens einer Falsch-
909845/07*5
29U515
Korrektur stark reduziert wird.
Es ist ferner zu bemerken, daß/ obwohl mehrfach Bezug genommen wurde auf innerhalb des EDAC-Systeins durchzuführende CRC-Überprüfungen, ebenso wie in den verschiedenen mit diesem System verbundenen Geräten, weder in der Beschreibung noch in den dazugehörenden Zeichnungen irgendwelche CRC-Codierungs-Geräte gezeigt wurden. Bei zum Stand der Technik gehörenden Systemen war es notwendig, eigens Codierungs-Schaltkreise vorzusehen, um die Durchführung von CRC-Überprüfungen zu erlauben. Das Code-Wort erforderte EDAC-Prüf-Bits und zusätzlich CRC-Prüf-Bits. Das vorliegende System macht die CRC-Codierungs-Schaltkreise überflüssig und ebenso die Notwendigkeit, die Länge des Code-Worts zu vergrößern und die Zeit- und Speicher-Kapazität, um ein solches verlängertes Code-Wort zu behandeln, zu vergrößern.
In Figur 4 ist die Bemerkung g(x) längs der Codierer 11 und 12 und der Decodierer 16 und 17 zu finden. Dies zeigt an, daß alle diese Geräte untereinander durch ihre Verwendung des gleichen Pire-Code Generator Polynoms g(x) verbunden sind. Die Beziehung der CRC-Überprüfungsschaltkreise 27 und 28 ist mit Hilfe der Bezeichnung f (gjk) angezeigt. Dies bedeutet, daß der für die CRC-Überprüfung benutzte Code einen Faktor des Code Polynoms g (x) darstellt, der benutzt wird, um die Fire-Code Prüf-Bits zu generieren. Es ist ein Charakteristikum von zyklischen Codes, zu denen
909845/07! S
. 33.
der Fire-Code gehört/ daß Polynome, die Faktoren des ausgewählten Generator-Code-Polynoms sind, ihrerseits wieder echte Code-Polynome sind; d. h. , wenn ein CRC-Polynom ausgewählt ist, das einen Faktor des ausgewählten Fire-Code Polynoms ist, kann eine CRC-Überprüfung erfolgreich an Code-Worten durchgeführt werden, die durch die Benutzung des Fire-Code Generator Polynoms allein codiert sind. Um die Anwendbarkeit dieses Konzepts zu illustrieren, sei angenommen, daß ein Fire-Code Generator Polynom,
g (x) = (x ' D+x' 4+x ' J+x ' ^+x' -+xJ+x^+x+1) (xy+1) ausgewählt sei zur Verwendung in dem EDAC-System der Figur 4. Es kann leicht gezeigt werden, daß dieser Ausdruck auch folgendermaßen geschrieben werden kann; g (x) = (x8+x7+x6+x5+x4+x3+x+l) (x16+x11+x4+1)„ Die angezeigten Additionen werden Modulo 2 durchgeführt. Eine Bezugnahme auf den oben zitierten Peterson-Text zeigt, daß g (x), in der ersten Schreibweise, ein erkannter Fire-Code ist, während der Ausdruck in der rechten Klammer der zweiten Schreibweise von g (x) ein erkannter CRC-Code ist. Also kann das spezielle angegebene Polynom g (x) verwendet werden, um den EDAC Fire Code vorzusehen ebenso wie die zur Durchführung einer CRC-Überprüfung notwendigen Einrichtungen.
Die obige Illustration bringt ein gutes Beispiel für Entwurfs-Techniken unter Verwendung der hierin angegebenen Methode, da das spezielle CRC Polynom, χ +x +x~+1 zur Implementierung unter Verwendung eines Commerziellen integrierten Schaltkreises verfügbar ist, MC85O3, herge-
909-845/0 7-1 fi
29U515
stellt von Motorola bzw,. P94O1 , hergestellt von Fairchild, Da viele der mit dem EDAC-System verbundenen Geräte Puffer-Register an ihrem Eingang verwenden, sieht die einfache Hinzufügung eines solchen iC-Chips am Eingang des Gerätes die Einrichtungen zur Durchführung einer CRC-Überprüfung der ankommenden Daten vor. Der Codierer und Decodierer zur Verwendung mit dem Fire-Code selbst können dargestellt werden unter Verwendung von Motorola Schaltkreisen, wie z. B. dem MC85O4P.
Die hierin offenbarte Erfindung lehrt, daß das Aufteilen der Felder eines ankommenden Datenwortes verwendet werden kann in einem Fehlerentdeckungs- und Korrektursystern, um die Wahrscheinlichkeit·, von Falschkorrekturen in dem empfangenen Datenwort H (x) drastisch zu reduzieren. Das Verfahren empfiehlt die Verwendung von zyklischen Codes zur Fehlerentdeckung und Korrektur, die als Faktor des Code-Generator Polynoms ein CRC-Code Polynom aufweisen, derart, daß keine zusätzliche Codierungs-Schaltkreise nötig sind, um die Durchführung von CRC-Überprüfungen an den codierten Datenworten zuzulassen.
Das Beispiel hierin wurde mit Hilfe von Aufteilen nach ungeradzahligen und geradzahligen Stellen gegeben, aber es sollte daran erinnert werden,, daß ein Aufteilen nach anderen Schemata vorteilhafterweise ebenfalls verwendet werden kann, z. B. würde das Aufteilen jedes dritten oder vierten Bits und die Verwendung von drei oder vier Codie-
909845/0715
29U515
, 3S.
rern die Fähigkeit des Systems zur Vermeidung von Falschkorrekturen weiter vergrößern.
Die offenbarte Ausführungsform sieht Einrichtungen für eine einfache Wartungs-Test-Überprüfung des Systems vor. Wenn ein Test Code Wort aufgebaut wird aus abwechselnden Sätzen von paarweisen Einen und paarweisen Nullen, ist jedes aufgeteilte Feld identisch. Der Vergleich der Felder und die Identifizierung der Probleme ist dann relativ einfach.
Eine Vorrichtung wurde beschrieben als ein praktisches Beispiel des Ergebnisses der Anwendung der hierin gelehrten Methoden. Es ist Fachleuten offensichtlich, daß verschiedene Änderungen und Modifikationen gegenüber der geoffenbarten Ausführungsform gemacht werden können, ohne den Bereich der Erfindung zu verlassen. Z. B. können die aufgeteilten Datenfelder codiert und dann zu dem Decodierer übertragen werden, ohne Durchgang durch den Verschachtelungs- und die Aufteilung zurückführenden Apparat, wie er in der hier diskutierten Ausführungsform offenbart ist. Es ist daher beabsichtigt, alle solche Änderungen und Modifikationen abzudecken, die in den Gedanken der Erfindung fallen.
909845/0715
Leerseite

Claims (10)

Patentansprüche
1. Verfahren zum Erhöhen der Brauchbarkeit von codierten Prüf-Bits und zum Vermindern der Wahrscheinlichkeit der Falschkorrektur nicht korrigierbarer Fehler in einem Fehlerentdeckungs- und Korrektursystem, wobei ein codiertes, aus Informationsbits und codierten Prüfbits aufgebautes Datenwort dazu verwendet wird, Fehlerentdeckung und Korrektur durchzuführen, und eine zyklische Redundanzcodeüberprüfung zur zusätzlichen Fehlerentdeckung auszuführen, gekennzeichnet durch folgende Verfahrensschritte:
a) Das Datenwort wird in mindestens zwei Felder aufgeteilt;
b) Jedes dieser aufgeteilten Felder wird mit codierten Prüfbits codiert, die in Übereinstimmung mit einem ausgewählten, von einem zyklischen (EDAC) Code-Generator erzeugten Polynom g(x) abgeleitet sind;
c) Jedes dieser codierten Felder wird in Übereinstimmung mit dem ausgewählten EDAC-Codepolynom g(x) decodiert, um einen Fehleranzeiger zur Fehlerentdeckung und -korrektur vorzusehen;
d) Jedes der codierten Felder wird in Übereinstimmung mit einem von einem zyklischen Redundanzcode (CRC) Generator erzeugten Polynom f(g(x)) decodiert, wobei das Polynom derart ausgewählt ist, daß es einen Faktor des EDAC Code-Polynoms g(x) darstellt, um eine zusätzliche Fehlerentdeckungsmöglichkeit der genannten codierten Felder vorzusehen;
ORIGINAL INSPECTED
29Η5Ί5
e) Die decodierten Felder werden, gegebenenfalls nach Korrektur, derart ineinander verschachtelt, daß sie das ursprüngliche Datenwort reproduzieren;
wobei die genannten codierten Prüfbits, die in Übereinstimmung mit dem EDAC-Code-Polynoiti g (x) generiert sind, für eine zusätzliche zyklische Redundanzcode (CRC) Fehlerentdeckung verwendet werden, ohne daß es nötig ist, eigens CRC-Prüfbits zu erzeugen und wobei die Wirkung der Unterteilung des Datenwortes eine Falschkorrektur von Daten zu einer Unmöglichkeit macht.
2. Verfahren zur Erhöhung der Brauchbarkeit von codierten Prüfbits und zur Verringerung der Wahrscheinlichkeit der Falschkorrektur nichtkorrigierbarer Fehler in einem Fehlerentdeckungs- und Korrektursystem, wobei ein codiertes, aus Informationsbits und codierten Prüfbits aufgebautes Datenwort dazu verwendet wird, Fehlerentdeckung und -korrektur auszuführen sowie eine zyklische Redundanzcode-überprüfung zur zusätzlichen Fehlerentdeckung durchzuführen, gekennzeichnet durch die folgenden Verfahrensschritte:
a) Das Datenwort wird in mindestens zwei Felder aufgeteilt;
b) Jedes dieser Felder wird mit codierten Prüfbits codiert, die in Übereinstimmung mit einem ausgewählten, von einem zyklischen (EDAC) Codegenerator erzeugten Polynom g(x) abgeleitet sind;
c) Diese codierten Felder werden ineinander verschachtelt, um ein codiertes Datenwort zu erzeugen;
d) Dieses codierte Datenwort wird in mindestens zwei Felder wie im Verfahrensschritt a) beschrieben aufgeteilt und jedes dieser codierten Felder wird in Übereinstimmung mit dem ausgewählten EDAC-Codepolynom g(x) decodiert, um einen
909845/0715
29H515
Fehleranzeiger zur Fehlerentdeekung und Fehlerkorrektur vorzusehen;
e) Jedes der codierten Felder wird weiterhin in Übereinstimmung mit einem von einem zyklischen Redundanzcodegenerator erzeugten Polynom f(g(x)) decodiert, wobei das Polynom derart ausgewählt ist, daß es einen Faktor des EDAC-Codepolynoms g(x) darstellt, um eine zusätzliche Fehlerentdeckungsmöglichkeit des codierten Feldes vorzusehen;
f) Die decodierten Felder, ggf. nach Korrektur, werden derart ineinander verschachtelt, daß sie das ursprüngliche Datenwort wieder herstellen;
wobei die codierten Prüfbits, die in Übereinstimmung mit dem EDAC-Codepölynom g(x) generiert sind, zur zusätzlichen CRC-Fehlerentdeckung verwendet werden, ohne daß es nötig ist, eigens CRC-Prüfbits zu generieren, und wobei die Wirkung dieses Aufteilens des Datenwortes eine Falschkorrektur von Daten unmöglich macht.
3. Vorrichtung zur Verringerung der Wahrscheinlichkeit der Falschkorrektur nichtkorrigierbarer Fehlerdaten und zur Verwendung von Fehlerentdeckungs- und -korrekturcodeprüfbits zur zusätzlichen zyklischen Redundanzfehlerentdeckung in einem Fehlerentdeckungs und -korrektursystem, ohne Erzeugung von getrennten CRC Prüfbits, gekennzeichnet durch:
a) Trenneinrichtungen zur Auftrennung eines Datenwortes in mindestens zwei Datenfelder;
b) Codierungseinrichtungen zur Codierung jedes der genannten Teilfelder mit codierten Prüfbits, die in Übereinstimmung mit einem ausgewählten, von einem zyklischen Fehlerentdeckungs und -korrekturcodegenerator erzeugten Polynom g (x) abgeleitet sind;
909845/O71S
29H515
c) Erste Decodierungseinrichtungen zum Empfang der codierten Teilfelder von den Codierungseinrichtungen und zur Decodierung jedes der codierten Teilfelder in Überinstimmung mit dem ausgewähten EDAC-Code-Polynom g(x), um einen Fehleranzeiger zur Fehlerentdeckung und -korrektur vorzusehen;
d) Korrektureinrichtungen zur Auswertung des Fehleranzeigers, zum Entdecken von Fehlern und zu deren Korrektur;
e) Zweite Decodierungseinrichtungen zum weiteren Decodieren der codierten Teilfelder in Übereinstimmung mit einem CRC-Generatorpolynom f(g(x)), das derart ausgewählt ist, daß es einen Faktor des EDAC Codepolynoms g(x) darstellt, zur zusätzlichen Fehlerentdeckung der codierten Teilfelder;
f) Verschachtelungs-Einrichtungen zur Annahme der decodierten und korrigierten Teilfelder und zu deren Verschachtelung, um das ursprüngliche Datenwort zu reproduzieren;
4. Vorrichtung nach dem Oberbegriff des Anspruchs 3, gekennzeichnet durch:
a) Erste Aufteilungseinrichtungen zur Aufteilung eines Datenworts in mindestens zwei Datenfelder;
b) Codierungseinrichtungen zur Codierung jedes der Teilfelder mit codierten Prüfbits, die in Übereinstimmung mit einem ausgewählten, von einem zyklischen Fehlerentdeckungsund -korrekturcodegenerator erzeugten Polynom g(x) ausgewählt sind;
c) Erste Verschachtelungseinrichtungen zur Verschachtelung der von den Codierungseinrichtungen ausgegebenen codierten Teilfelder zur Erzeugung eines codierten Datenwortes;
d) Zweite Aufteileinrichtungen zur Aufteilung dieses codierten Datenwortes in mindestens zwei Felder entsprechend der Aufteilung mit Hilfe der ersten Aufteilungseinrichtungen;
9Ü9845/071S
29U515
e) Erste Decodierungseinrichtungen zur Annahme der codierten Teilfelder von den zweiten Aufteileinrichtungen und zur Decodierung jedes der codierten Teilfelder in Übereinstimmung mit dem ausgewählten EDAC-Codepolynom g(x), um einen Fehleranzeiger zur Fehlerentdeckung und Korrektur vorzusehen;
f) Korrektureinrichtungen zur Auswertung des Fehlera nzeigers, zum Entdecken von Fehlern und zu deren Korrektur;
g) Zweite Decodierungseinrichtungen zur weiteren Decodierung der codierten Teilfelder in Übereinstimmung mit einem
CRC Codegeneratorpolynom f(g(x)), das derart ausgewählt ist, daß es einen Faktor des EDAC-Codepolynoms g(x) darstellt, zur weiteren Fehlerentdeckung der codierten Teilfelder; h) Zweite Verschachtelungseinrichtungen zur Annahme dieser decodierten und korrigierten Teilfelder und zu deren Verschachtelung, um das ursprüngliche Datenwort wieder herzustellen;
5. Verfahren zur Erhöhung der Brauchbarkeit von codierten Prüfbits in einem Fehlerentdeckungs- und -korrektursystern, bei dem ein codiertes, aus Informationsbits und codierten
Prüfbits aufgebautes Datenwort verwendet wird, um eine Fehlerentdeckung und -korrektur durchzuführen und eine zyklische Redundanzcodeüberprüfung zur zusätzlichen Fehlerentdeckung auszuführen, gekennzeichnet durch folgende Verfahrensschritte:
a) Die Datenworte werden mit codierten Prüfbits codiert,
die in Übereinstimmung mit einem ausgewählten, von einem zyklischen Fehlerentdeckungs- und -korrekturcodegenerator erzeugten Polynom g(x) abgeleitet sind;
b) Diese codierten Datenworte werden in Übereinstimmung mit dem ausgewählten EDAC-Codepolynom g(x) decodiert, um einen Fehleranzeiger zur Fehlerentdeckung und Fehlerkorrektur vorzusehen;
29U515
c) Die codierten Datenworte werden weiter in Übereinstimmung mit einem zyklischen Redundanzcode (CRC) Generatorpolynom f(g(x)) decodiert, wobei das Polynom derart ausgewählt ist, daß es einen Faktor des EDAC Codepolynoms g(x) darstellt, um eine zusätzliche Fehlerentdeckungsmöglichkeit des codierten Datenwortes vorzusehen;
wobei diese codierten Prüfbits, die in Übereinstimmung mit dem EDAC-Codepolynom g(x) erzeugt sind, sowohl zur Fehlerentdeckung und -korrektur als auch für zusätzliche CRC-Fehlerentdeckung verwendet werden.
6. Vorrichtung zur Verwendung von Fehlerentdeckung und -korrekturcodeprüfbits für zusätzliche CRC-Entdeckungsüberprüfungen in einem Fehlerentdeckungs und -korrektursystem, ohne Erzeugung von getrennten CRC-Prüfbits, gekennzeichnet durch :
a) Codierungseinrichtungen zum Codieren von Datenworten mit codierten Prüfbits, die in Übereinstimmung mit einem ausgewählten zyklischen Fehlerentdeckungs und -korrektur (EDAC) Codepolynom g(x) abgeleitet sind;
b) Erste Decodierungseinrichtungen zur Annahme der von der Codierungseinrichtung codierten Datenworte und zum Decodieren dieser codierten Datenworte in Übereinstimmung
' mit dem ausgewählten EDAC Codepolynom g(x), um einen Fehleranzeiger zur Fehlerentdeckung und -korrektur vorzusehen;
c) Korrektureinrichtungen zur Auswertung des Fehleranzeigers, zur Entdeckung von Fehlern und deren Korrektur;
d) Zweiten Decodierungseinrichtungen zum weiteren Decodieren der codierten Datenworte und als zusätzliche Fehler-
909845/0715
entdeckungsmöglichkeiten, wobei diese zweiten Decodierungseinrichtungen in Übereinstimmung mit einem CRC Generatorpolynom f(g(x)) arbeiten, das derart ausgewählt ist, daß es einen Faktor des EDAC Codepolynoms g(x) darstellt.
7. Verfahren zur Verringerung der Wahrscheinlichkeit der Falschkorrektur nichtkorrigierbarer Fehlerdaten in einem Fehlerentdeckungs- und -korrektursystem gekennzeichnet durch folgende Verfahrensschritte:
a) Ein Datenwort wird in mindestens zwei Datenfelder aufgeteilt;
b) Jedes Teilfeld wird in Übereinstimmung mit einem ausgewählten EDAC Codegeneratorpolynom codiert;
c) Jedes dieser Teilfelder wird in Übereinstimmung mit diesem ausgewählten EDAC Codepolynom decodiert, um einen Fehleranzeiger vorzusehen zur Fehlerentdeckung und Korrektur;
d) Die decodierten und nach Angabe des Fehleranzeigers korrigierten Teilfelder werden ineinander verschachtelt um das ursprüngliche Datenwort wieder herzustellen;
wobei die Wirkung des Codierens und Decbdierens von Teilfeldern eine Falschkorrektur von Daten im wesentlichen unmöglich machen.
8. Verfahren nach Oberbegriff des Anspruchs 7, gekennzeichnet durch folgende Verfahrensschritte:
a) Ein Datenwort wird in mindestens zwei Datenfelder aufgeteilt ;
90984S/071S
29U515
b) Jedes Teilfeld wird in Übereinstimmung mit einem ausgewählten EDAC-Codegeneratorpolynom codiert;
c) Diese codierten Teilfelder werden ineinander verschachtelt, um ein codiertes Datenwort zu erzeugen;
d) Jedes codierte Datenwort wird in mindestens zwei Felder aufgeteilt wie im Verfahrensschritt a), und jedes dieser Teilfelder wird in Übereinstimmung mit dem ausgewählten EDAC Codepolynom decodiert, um einen Fehleranzeiger zur Fehlerentdeckung und -korrektur vorzusehen;
e) Die gegebenenfalls korrigierten decodierten Teilfelder werden ineinander verschachtelt, um das ursprüngliche Datenwort wieder herzustellen;
wobei die Wirkung des Codierens und Decodierens von Teilfeldern eine Falschkorrektur von Daten im wesentlichen unmöglich macht.
9. Vorrichtung zum Verringern der Wahrscheinlichkeit der Falschkorrektur von nichtkorrigierbaren Fehlerdaten in einem Fehlerentdeckungs- und -korrektursystem, gekennzeichnet durch:
a) Erste Aufteilungseinrichtungen zum Aufteilen eines Datenwortes in mindestens zwei Felder zum Verringern der Wahrscheinlichkeit der Falschkorrektur in dem Fehlerentdeckungs- und -korrektursystem (EDAC);
b) Codierungseinrichtungen zum Codieren jedes der Teilfelder in Übereinstimmung mit einem ausgewählten EDAC Codegeneratorpolynom;
c) Decodierungseinrichtungen zur Annahme der codierten Teilfelder von den Codierungseinrichtungen und zum Decodieren jedes dieser codierten Teilfelder in Übereinstimmung mit diesem ausgewählten EDAC Codepolynom, um einen Fehleranzeiger zur Fehlerentdeckung und -korrektur vorzusehen;
909845/0716
23 14 5 15
d) Korrektureinrichtungen zur Auswertung des Fehleranzeigers, zum Entdecken von Fehlern und zu deren Korrektur;
e) Verschachtelungseinrxchtungen zur Annahme dieser decodierten und korrigierten Teilfelder und zu deren Verschachtelung, um das ursprüngliche Datenwort wieder herzustellen.
10. Vorrichtung nach Oberbegriff des Anspruchs 9, gekennzeichnet durch:
a) Erste Aufteilungseinrichtungen zum Aufteilen eines Datenwortes in mindestens zwei Felder zur Verringerung der Wahrscheinlichkeit einer Falschkorrektur innerhalb eines Fehlerentdeckungs- und -korrektursystems (EDAC);
b) Codierungseinrichtungen zum Codieren jedes dieser Teilfelder in Übereinstimmung mit einem ausgewählten EDAC Code Generator Polynom;
c) Erste Verschachtelungseinrichtungen zur Verschachtelung der codierten Teilfelder, wie sie aus den Codierungseinrichtungen herauskommen, zur Herstellung eines codierten Datenwortes,
d) Zweite Aufteilungseinrichtungen zur Aufteilung dieses codierten Datenwortes in mindestens zwei Felder entsprechend der Aufteilung durch die ersten Aufteilungseinrichtungen ;
e) Decodierungseinrichtungen zur Annahme der codierten Teilfelder von den zweiten Aufteilungseinrichtungen und zur Decodierung jedes dieser codierten Teilfelder in Übereinstimmung mit diesem ausgewählten EDAC Code Polynom, um einen Fehleranzeiger zur Fehlerentdeckung und Korrektur vorzusehen.
909845/9715
f) Korrektureinrichtungen zur Auswertung des Fehleranzeigers, zum Entdecken von Fehlern und zu deren Korrektur;
g) Zweite Verschachtelungseinrichtungen zur Annahme dieser decodierten und korrigierten Teilfelder und zu deren Verschachtelung, um das ursprüngliche Datenwort wieder herzustellen.
909845/0715
DE19792914515 1978-04-27 1979-04-10 Verfahren und vorrichtung fuer ein wirksames fehlerentdeckungs- und korrektursystem Ceased DE2914515A1 (de)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
US05/900,627 US4151510A (en) 1978-04-27 1978-04-27 Method and apparatus for an efficient error detection and correction system

Publications (1)

Publication Number Publication Date
DE2914515A1 true DE2914515A1 (de) 1979-11-08

Family

ID=25412820

Family Applications (1)

Application Number Title Priority Date Filing Date
DE19792914515 Ceased DE2914515A1 (de) 1978-04-27 1979-04-10 Verfahren und vorrichtung fuer ein wirksames fehlerentdeckungs- und korrektursystem

Country Status (6)

Country Link
US (1) US4151510A (de)
JP (1) JPS54148406A (de)
AU (1) AU528546B2 (de)
CA (1) CA1123105A (de)
DE (1) DE2914515A1 (de)
FR (1) FR2424588B1 (de)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE3150927A1 (de) * 1981-12-23 1983-06-30 Licentia Patent-Verwaltungs-Gmbh, 6000 Frankfurt Schaltungsanordnung zur erkennung und korrektur von bitfehlern

Families Citing this family (30)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS54137204A (en) * 1978-04-17 1979-10-24 Sony Corp Digital signal transmission method
US4216541A (en) * 1978-10-05 1980-08-05 Intel Magnetics Inc. Error repairing method and apparatus for bubble memories
JPS56127908A (en) * 1980-03-10 1981-10-07 Victor Co Of Japan Ltd Wrong-correction preventing system for digital signal reproducer
GB2124806B (en) * 1982-08-06 1986-05-14 Sony Corp Method of correcting errors in binary data
GB2132393B (en) * 1982-12-17 1986-05-14 Sony Corp Methods and apparatus for correcting errors in binary data
US4677623A (en) * 1983-11-11 1987-06-30 Hitachi, Ltd. Decoding method and apparatus for cyclic codes
US4799059A (en) * 1986-03-14 1989-01-17 Enscan, Inc. Automatic/remote RF instrument monitoring system
EP0262944B1 (de) * 1986-09-30 1994-03-09 Canon Kabushiki Kaisha Fehlerkorrekturgerät
US4890287A (en) * 1988-03-09 1989-12-26 Magnetic Peripherals Inc. On-the-fly error correction
US5243604A (en) * 1990-12-18 1993-09-07 Seagate Technology, Inc. On-the-fly error correction
US5285456A (en) * 1991-05-15 1994-02-08 International Business Machines Corporation System and method for improving the integrity of control information
US5515383A (en) * 1991-05-28 1996-05-07 The Boeing Company Built-in self-test system and method for self test of an integrated circuit
GB9213272D0 (en) * 1992-06-23 1992-08-05 Digital Equipment Int Check sequence preservation
US5465260A (en) * 1993-11-04 1995-11-07 Cirrus Logic, Inc. Dual purpose cyclic redundancy check
US5434719A (en) * 1994-03-18 1995-07-18 Seagate Technology, Inc. Correction of header information in a magnetic disc drive
JPH08163625A (ja) * 1994-12-02 1996-06-21 Hitachi Ltd 無線呼び出しシステム
US5936978A (en) * 1996-12-05 1999-08-10 Telefonaktiebolaget L M Ericsson (Publ) Shortened fire code error-trapping decoding method and apparatus
US6105154A (en) * 1998-05-29 2000-08-15 Lucent Technologies, Inc. Multi-bus multi-data transfer protocols controlled by a bus arbiter coupled to a CRC signature compactor
US7458007B2 (en) * 2000-02-18 2008-11-25 Texas Instruments Incorporated Error correction structures and methods
EP1146651A1 (de) * 2000-04-10 2001-10-17 Hewlett-Packard Company Fehlerdetektion für Datenspeicherung und Übertragung
EP1146650A1 (de) * 2000-04-10 2001-10-17 Hewlett-Packard Company, A Delaware Corporation Fehlerkorrektur für Datenauzeichnung und Übertragung
US7251767B2 (en) * 2000-07-31 2007-07-31 Siemens Aktiengesellschaft Method for correcting errors in a packet-oriented data transmission
US6400292B1 (en) 2000-09-18 2002-06-04 Mitsubishi Denki Kabushiki Kaisha Semiconductor integrated circuit device
TWI222625B (en) * 2002-12-18 2004-10-21 Mediatek Inc System and method for correcting linear block code
EP1590808A4 (de) * 2003-01-21 2008-07-02 Lg Electronics Inc Verfahren zum codieren und decodieren eines fehlerkorrekturblocks
JP4131937B2 (ja) * 2003-03-26 2008-08-13 株式会社東芝 テスト機能を有する論理回路
KR100632952B1 (ko) * 2004-09-30 2006-10-11 삼성전자주식회사 정전으로 인한 프로그램 페일의 유무를 판별할 수 있는방법 및 장치
US7937646B2 (en) * 2005-11-02 2011-05-03 Mediatek Inc. Reading method and apparatus for an information recording medium and spare area allocation thereof
US7984359B2 (en) * 2006-05-01 2011-07-19 Seagate Technology, Llc Correction of data errors in a memory buffer
CN111597072B (zh) * 2020-05-07 2024-03-12 中国科学院微电子研究所 差错控制编码ecc系统及包括ecc系统的存储器设备

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US3801955A (en) * 1971-12-13 1974-04-02 Honeywell Inf Systems Cyclic code encoder/decoder
US3859630A (en) * 1973-01-29 1975-01-07 Burroughs Corp Apparatus for detecting and correcting errors in digital information organized into a parallel format by use of cyclic polynomial error detecting and correcting codes
JPS5238855A (en) * 1975-09-22 1977-03-25 Nec Corp Error correcting unit
US4030067A (en) * 1975-12-29 1977-06-14 Honeywell Information Systems, Inc. Table lookup direct decoder for double-error correcting (DEC) BCH codes using a pair of syndromes
US4117458A (en) * 1977-03-04 1978-09-26 Grumman Aerospace Corporation High speed double error correction plus triple error detection system

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
K. BRAYER "The Improvement of digital HF communi- cation through coding: II-Tandem interleaved cyclic coding", IEEE Trans., Vol. COM-16, Dez. 1968, S.779-786 *
W.W.Peterson "Prüfbare und korrigierbare Codes", Oldenbourg Verlag 1967, S.203-208,242-246,258- 261 *

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE3150927A1 (de) * 1981-12-23 1983-06-30 Licentia Patent-Verwaltungs-Gmbh, 6000 Frankfurt Schaltungsanordnung zur erkennung und korrektur von bitfehlern

Also Published As

Publication number Publication date
FR2424588A1 (fr) 1979-11-23
US4151510A (en) 1979-04-24
JPS54148406A (en) 1979-11-20
FR2424588B1 (fr) 1985-11-22
AU4647379A (en) 1979-11-01
CA1123105A (en) 1982-05-04
JPS6346615B2 (de) 1988-09-16
AU528546B2 (en) 1983-05-05

Similar Documents

Publication Publication Date Title
DE2914515A1 (de) Verfahren und vorrichtung fuer ein wirksames fehlerentdeckungs- und korrektursystem
DE2060643C3 (de) Schaltungsanordnung zur Korrektur von Einzelfehlern
DE3850192T2 (de) Verfahren und Vorrichtung zur Fehlerkorrektur bei gespeicherten Daten.
DE60001370T2 (de) Verfahren und vorrichtung zur erkennung von doppelbitfehlern und korrektur von fehlern durch bauelementfehler verursacht
DE10133595B4 (de) Pufferschaltung, Speicherzugriffsverfahren und Reed-Solomon-Decoder
DE60015753T2 (de) System und verfahren zum schutz von daten und zur korrektur von bitfehlern folgend aus komponentenfehlern
DE2724409A1 (de) Datenverarbeitungssystem
DE2260850A1 (de) Fehlerkorrektursystem
DE3882223T2 (de) Ausgebreitete Fehlerkorrekturvorrichtung mit Einzel-Paket-Fehlerkorrektur und Doppel-Paket-Fehlerdetektionscoden.
DE3231956A1 (de) Anordnung zum uebertragen von binaerdaten ueber eine vielzahl von kanaelen mit hilfe eines faltungscodes
DE2263488C2 (de) Einrichtung zur Erkennung und Korrektur von Fehlern in zwei fehlerbehafteten Spuren eines Vielspur-Datensystems
DE2106314B2 (de) Anordnung zur Fehlererkennung und -korrektur in einem aus b Bits bestehenden Byte eines K Datenbytes enthaltenden Datenblocks
DE2320422A1 (de) Verfahren zur fehlererkennung
DE2622184A1 (de) Fehlerkorrekturverfahren
EP0219917B1 (de) Vermittlungsanlage mit Fehlerkorrektur
DE2217935B2 (de) Anordnung und Verfahren zur Korrektur von Doppelfehlern in einer Nachricht
DE69317766T2 (de) Fehlerkorrekturgerät für digitale Daten zur Korrektur von Einfachfehlern (sec), von Doppelfehlern (ded) und Vielfacheinzelbytefehlern (sbd) und zur Korrektur von Einzelbytefehlern ungerader Anzahl (odd sbc)
DE102007007546A1 (de) Fehlerkorrekturcode-Striping
DE2460263A1 (de) Schaltungsanordnung zum korrigieren des schlupffehlers in datenuebertragungssystemen unter verwendung von zyklischen codes
DE2053836C3 (de) Anordnung zur Korrektur von Fehlerbündeln in binär codierten Datengruppen
EP0003480B1 (de) Schaltungsanordnung zum Umwandeln von Binärinformationen mittels Kontrollbits
DE2047868A1 (de) Schaltung zur Korrektur von Einzel fehlern in den Wortern eines zyklischen (n, k) Codes
DE1290565B (de) Verfahren zur empfaengerseitigen Korrektur dualkodierter Nachrichten
EP0159403A2 (de) Anordnung zur Korrektur von Bündelfehlern in verkürzten zyklischen Blockcodes
DE3852569T2 (de) Verfahren und Gerät zur Dekodierung von blockkodierten Daten, beeinträchtigt durch Ersatz, Einfügungen und Verlust von Symbolen.

Legal Events

Date Code Title Description
8110 Request for examination paragraph 44
8127 New person/name/address of the applicant

Owner name: HONEYWELL BULL INC., MINNEAPOLIS, MINN., US

8131 Rejection