DE2357971A1 - Verfahren zum codieren und decodieren von daten zur korrektur von dreifachfehlern - Google Patents

Verfahren zum codieren und decodieren von daten zur korrektur von dreifachfehlern

Info

Publication number
DE2357971A1
DE2357971A1 DE2357971A DE2357971A DE2357971A1 DE 2357971 A1 DE2357971 A1 DE 2357971A1 DE 2357971 A DE2357971 A DE 2357971A DE 2357971 A DE2357971 A DE 2357971A DE 2357971 A1 DE2357971 A1 DE 2357971A1
Authority
DE
Germany
Prior art keywords
byte
bytes
sri
error
equations
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.)
Pending
Application number
DE2357971A
Other languages
English (en)
Inventor
Arvind Motibhai Patel
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.)
International Business Machines Corp
Original Assignee
International Business Machines Corp
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 International Business Machines Corp filed Critical International Business Machines Corp
Publication of DE2357971A1 publication Critical patent/DE2357971A1/de
Pending legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11BINFORMATION STORAGE BASED ON RELATIVE MOVEMENT BETWEEN RECORD CARRIER AND TRANSDUCER
    • G11B20/00Signal processing not specific to the method of recording or reproducing; Circuits therefor
    • G11B20/10Digital recording or reproducing
    • G11B20/18Error detection or correction; Testing, e.g. of drop-outs
    • G11B20/1833Error detection or correction; Testing, e.g. of drop-outs by adding special lists or symbols to the coded information
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11BINFORMATION STORAGE BASED ON RELATIVE MOVEMENT BETWEEN RECORD CARRIER AND TRANSDUCER
    • G11B20/00Signal processing not specific to the method of recording or reproducing; Circuits therefor
    • G11B20/10Digital recording or reproducing
    • G11B20/18Error detection or correction; Testing, e.g. of drop-outs

Landscapes

  • Engineering & Computer Science (AREA)
  • Signal Processing (AREA)
  • Error Detection And Correction (AREA)
  • Detection And Correction Of Errors (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)

Description

Verfahren zum Codieren und Decodieren von Daten zur Korrektur von Dreifachfehlern
Es ist bekannt,- in Datenverarbeitungssystenen Daten so zu codieren, daß Fehler erkannt werden können, wenn die Daten innerhalb des Systems übertragen und vielleicht auf einem Speicherir.edium, wie z.B. einem Magnetband aufgezeichnet v/erden. Bei Magnetbändern besteht jedoch ein zunehmendes Risiko für mehr als zwei fehlerhafte oder gar gelöschte Spuren, je geringer der Spurabstand und je größer die Aufzeichnungsdichte wird. Die vorliegende Erfindung befaßt sich mit einem Fehlerkorrektursystem, das in der Lage ist, bis zu drei Spuren zu korrigieren, in denen Fehler oder gelöschte Stellen auftreten. Fehler, die in weniger als drei Spuren auftreten, können ebenfalls korrigiert werden.
Dazu v/erden in bekannter Weise Prüf bytes erzeugt, die voneinander unabhängig aber von der Information abgeleitet sind. Die charakteristischen Eigenschaften der Prüfbytes haben eine andere mathematische Struktur als die der Informationsbytes. Wenn Fehler in verschiedenen Kombinationen aus der Prüfbytespur und einer Informationsspur auftreten, wird daher eine Anzahl von Sonderfällen geschaffen, die separat behandelt werden müssen. Wenn man dieses Grundkonzept von zwei auf drei Spuren
40S822/1063
ausdehnt, wird die Anzahl der bei der Decodierung erhaltenen und separat zu behandelnden Sonderfälle für die Prüfbytes und Informationsbytes stark erhöht und daher v/erden entweder der zur Decodierung und Korrektur notwendige Schaltungsaufwand und die Zeit stark erhöht oder es sind Sonderprograipjnroutinen für die Analyse und schließliche Korrektur erforderlich.
Der Erfindung liegt die Aufgabe zugrunde, ein Verfahren zum Codieren und Decodieren von Daten durch ein Datenverarbeitungssystem zwecks Korrektur von Dreifachfehlern anzugeben, das Prüf-bytes liefert, die, derart mit Inforoationsbytes kombiniert werden, daß beim Decodieren die beiden Bytearten sich nicht voneinander unterscheiden und keine Sonderfälle aufgrund einer unterschiedlichen liatur von Prüf- und Inforraationsbytes geschaffen werden.
Die Aufgabe der Erfindung wird gelöst durch ein Verfahren der vorher genannten Art, das durch folgende Verfahrensschritte bein. Codieren gekennzeichnet ist:
a) Serielles Verarbeiten der zu codierenden Eytes, beginnend rait aera Byte Z(K-I);
b) Erzeugung von Prüfbytes ZO, Sl und Z2 in den folgenden Teilschritten.
1. Anfängliche Hatrixmultiplikation des ersten aus den im Schritt a)empfangenen Bytes mit den Matrizen
Τ, ϊλ(ΙΦΤλΦΤ) und (ΙΘΤλΘΤ) zur Bildung des ersten einer Reihe von Produkten Pl, P2 und P3;
2. Anschließende Modulo--2 -Addition eines jeden Byte zu jedem Produkt P3, das vor einer solchen Addition existierte, zur Bildung einer Reihe von Sunraen S;
3. Matrixinultiplikation einer jeden Summe S mit den im Teilschritt bl erhaltenen ?!atrizen zur Eildung von drei Ergebnissen, von denen das erste Ergebnis ein neues Produkt Pl bildet;
4. Modulo-2-Addition des zweiten Ergebnisses zum
alten ?rodu3ct Pl zur Bildung eines neuen Produktes P2,
po 972 005 409822/ 108 3
BAD ORiGWAL
5. Modulo--2~Addition des dritten Ergebnisses zum alten Produkt P2 zur Bildung eines neuen Produktes P3; wodurch bei Verarbeitung des Byte Z3 gemäß den Teilschritten (2-5) die Produkte Pl, P2 und P3 entsprechend die Prüf bytes SO7 Σ1 und S 2 bilden,·
c) Korabination der PrüfLytes r.it den Informationsbytes zur 3ildung eines Codewortes, wobei die Matrizen und Bytes zueinander in Beziehung stehen und jedes Byte f Bits enthält, wo f=bmf fr'h und m ganze Zahlen, K eine ganze Zahl 3 < K < 2h r T eine Begleitmatrix vom Grade f, A=r (2"""--I)/(2 --1) , r eine positive ganze Primzahl zu 2 -1 und I eine Einheitsraatrix sind»
Ein Ausführungsbeispiel der Erfindung wird in Verbindung mit den Zeichnungen anschließend näher beschrieben, von denen zeigen;
Fig. 1 schematisch die allgemeine Datenanordnung auf
einem Magnetband,
Fig. 2 schematisch eine Datenverarbeitung zur Er
läuterung des allgemeinen Verfahrens der Erfindung und Erklärung bestimmter in der Beschreibung benutzter Zeichen,
Fig. 3 in einem Ablaufdiagramm die allgemeinen Schritte
des die Erfindung enthaltenen Prozesses,
Fig. 4 das Blockschaltbild eines Gerätes zur Erzeugung
von Prüfbytes und zur Bildung eines Codewortes,
Fig. 5 das Blockschaltbild des Prüfbytegenerator,
Fig. 6 ein detaillierteres Blockschaltbild des in
Fig. 5 gezeigten Prüfbytegenerators,
Fig. 7 drei Matrizen zum besseren Verständnis der
po 972 005 409822/1063
BAD ORfGfNAL
in Fig. 6 gezeigten Spezialverdrahtung,
Fig. 3 das Blockschaltbild eines Gerätes für die
Syndromerzeugung,
Fign. 9-11 detailliertere Blockschaltbilder der in Fig. 3
gezeigten Schieberegister und
Fig. 12 zwei Matrizen zum Verständnis der in den
Schaltungen nach den Pign. IO und 11 vorgenommenen Verdrahtungen.
Fig. 1 zeigt allgemein die Datenanordnung von auf einem Band aufgezeichneter Information. Ein Magnetband 10 hat K parallele Spuren, in denen Information aufgezeichnet wird. Information in einer Spur ist in ein Codevzort gruppiert, welches aus K Bytes Z besteht. Jedes Byte hat dieselbe Nummer wie die Spur, in der es steht. Außerdem besteht jedes Byte Z aus f Bits Z (0) bis Z (f-1). Ein Codewort umfaßt also K Bytes Z aus je f Bits.
Nach der Erfindung sind mindestens vier Spuren vorhanden, davon drei Prüf spuren und eine Inforiuationsspur, wodurch die Erfindung die Möglichkeit schafft, ausgelöschte Stellen zu korrigieren, die in bis zu drei Spuren auftreten können. Für die meisten praktischen Anwendungen wird jedoch mehr als eine Informationsspur benötigt und somit gibt es im anschließend beschriebenen spezifischen Ausführungsbeispiel 12 Informationsspuren 3-14, die für die Aufnahme von Inforrnationsbyt.es Z3 -Z14 vorgesehen sind. In die sem Ausführungsbeispiel, welches auf dem Band 10a gezeigt ist, hat jedes Byte Z acht Bits und somit stellt das spezifische Ausführungsbeispiel einen aligemeinen Fall dar, in dem f=8 und K=I5 sind.
Fig. 2 zeigt ein allgemeines Ablaufdiagramm für den Datenfluß. Am Anfang des Prozesses werden Informationsbytes Z3--Z14 als Eingabedaten für den Codierprozeß geliefert, Während der Codierung
PO 972 005 409322/106 3
BAD ORKaIMAL
ir
v/erden die Prüf bytes ZO-Z 2 erzeugt und den Informationsbytes Z3-Z14 zur Bildung der codierten Daten oder des Codewortes zugefügt. Danach werden diese Daten einer bestimmten Form der Umsetzung unterworfen. Sie können z.B. erst auf ein Band geschrieben und dann von dort gelesen werden, oder sie können nur in eine andere Form eines Datenspeichers gesetzt werden oder sie können von einer Datenverarbeitungseinheit zu einer anderen übertragen v/erden. In jedem Fall besteht die Ausgabe des Datenumsetzungsschrittes aus den Eingabedatenbytes Z0'-Z14' für die Decodierung. In dieser Form können die Daten bereits Fehler enthalten. Es folgt der Decodierprozeß und die Fehler werden zur Bildung der korrigierten Datenbytes ZOir-Zl4" korrigert. An diesem Punkt der Verarbeitung können die korrigierten Daten die Prüfbytes Z0"--Z2" beibehalten oder die Originaleingabeinformationsbytes Z3"-Z14'* können zur Benutzung herausgezogen werden.
Das Ablaufdiagramm in Fig. 3 zeigt allgemein das Verfahren nach der Erfindung. Im ersten Schritt 12 werden die Informationsbytes Z3-Z14 als Eingabe für die nachfolgenden Codierschritte zugeführt. Aus den Informationsbytes werden im Schritt 13 die Prüfbytes ZO-Z2 erzeugt und dann im Schritt 14 zur Bildung des Codewortes Z0-Z14 kombiniert. Dieses Codewort wird dann im Schritt 15 irgendwie umgesetzt, z.B. auf einem Ilagnetband in parallelen Spuren aufgezeichnet und später von diesem Band gelesen. Die umgesetzten Daten dienen im Schritt 16 als Eingabedaten für die Decodierschritte. Während der Umsetzung werden im Schritt 17 die Hinweissignale i, j und k erzeugt., die auf die fehlerhaften Spuren oder Bytes hinweisen. Aus den Decodiereingabedaten werden dann im Schritt 18 die Syndrome S0-S2 erzeugt. Die kombinierten Ausgangssignale der Schritte 16 f 17 und 18 dienen dann als Eingabe für eine Fehleranalyse 20, die abhängig von den verschiedenen Einzelbedingungen einen Fehlerkorrekturschritt 21 bei einer von drei verschiedenen Fehlerbedingungen beginnt, die etwas unterschiedliche Korrekturverfahren erfordern. Die Ausgangssignale des FehlerkorrekturSchrittes 21 bestehen entweder aus den korrigierten Daten ZQ"-Zl4" oder
po 972 0O5 409822/106 3
aus einem Signal E, welches das Vorliegen eines nicht korrigierbaren Fehlers anzeigt.
Zunächst werden allgemeine mathematische Beziehungen für die Erzeugung von Codiersyndromen und für die Fehlerkorrekturverfahren erklärt.
Das Codewort für den allgemeinen Fall wird aufgebaut aus Z3-Z (K-I), wo 2O-Z2 erzeugt v/erden und die folgenden Beziehungen erfüllen;
ZO Θ Zl Φ Z2 Θ Z(E-I) =0 (1)
ZO ® Ζ1Τλ Θ Ζ2(Τλ)2 —- Φ Z(K-I) (Τλ)Κ 1 = O (2)
ZO Φ ZlT Λ φ Ζ2(Τ ) Φ Z(K-I) (T ) =0 (3)
Die Syndrome S0-S2 werden nach folgenden Beziehungen erzeugt:
SO=ZO1 Φ Zl1 Φ Ζ21 Φ Φ Z(K-I)1 (4)
Sl=ZO1 θ Zl1T* θ Ζ2' (Τλ)2 θ Φ Z(K-I) ' (Τλ)Κ~1 (5)
S2=Z0' Φ Ζ1'Τ Φ Ζ2'(ϊ) Φ — θ Z(K-I)' (Τ)Κ'λ (6)
In diesen Ausdrücken sind
Φ = rIodulo-2~Summe der entsprechenden Binärziffern T = Begleitmatrix des binären primitiven Polynoms
g(x) des Grades f
λ = r (2f-l)/(2b-l) (7)
r ist jede positive ganze Primzahl zu 2 -1 K ist eine ganze Zahl 3 < K < 2Ω
f = bm, worin m, b und f ganze Zahlen sind (8)
Aus diesem allgemeinen Fall gehen die Ausdrücke für das spezifische Ausführungsbeispiel wie folgt hervor, ΐίβηη f=3 ist und somit einem binären Vektor aus 8 benachbarten Bits entspricht und b=4 ist, dann kann K von 4 bis 15 reichen, vienn K=I5 ist, ergibt sich dadurch eine Röchstzaal der Spuren für das acht Bit
PO 972 005 4 (Ϊ 8 8 2 2 / 1 Ö ß 3
große Eyte. Nach Gleichung (7) ist dann λ = 17r. Der Wert r kann willkürlich gewählt werden, solange es sich um eine positive ganze Primzahl zu 2 -1 oder 15 handelt, wenn man für r jedoch den Wert 4 wählt, ergeben sich daraus gemäß späterer Beschreibung gewisse Vorteile. Wenn r=4 ist, ist λ=68. Diese Zahlen von K=15 und λ=68 können dann in die Gleichungen 1-6 eingesetzt v/erden und ergeben die spezifischen Ausdrücke, die sich auf ZO-Z2 und SO--S2 für das spezifische Ausführungsbeispiel von 15 Bytes oder Spuren von acht Bits beziehen. Das spezifische primitive Polynom des Grades f=3 ist
ι \ -ι· ■ 3 . 5 . g(x) =l + x-hx +x +x
und die entsprechende Begleitmatrix ist
j~0 1 0 O O O 0 0~ 0O1OOOO0
OOOIO-OOO T= 0 OO O 1 O O O
OOOOOIOO
OOOOOOIO jOOOOOOOl IllOlOlOO
Die Fign. 4-6 zeigen allgemein einen Codierer. Gemäß Darstellung in Fig. 4 enthält die Schaltung eine Eingangssammelleitung 30, über die Datenbytes Z3-Z14 in einen Datenverteilungspuffer gesetzt werden. Das System enthält einen Prüfbytegenerator 34, der unter Benutzung der Bytes Z3-Z14 die Prüfbytes Z0-Z2 erzeugt. Die Prüfbytes werden in den Puffer 32 gesetzt und eine Äusgangssammelleitung 31 stellt die Codewortbytes ZO-Z14 für die Benutzung oder die Umsetzung in der oben gezeigten Art zur Verfügung. Der Puffer 32 kann von bekannter Bauart sein und hat im speziellen Ausführungsbeispiel eine Kapazität zur Speicherung von 15 acht Bit großen Bytes. Außerdem enthält das System die Torschaltungen 33 und 35 zur Steuerung des Byteflusses zum und
po 972 005 4098 22/ 1 OS
vom Generator 34. Kenn die Taktsteuerung 36 ein Startsignal empfängt, erzeugt sie Taktiuipulse tO-tl5. Beim Impuls to wird der Generator 34 auf I>iull gesetzt. Bein Impuls ti wird das Byte Z14 in den Prüfbytegenerator gesetzt, wo es in der später genauer beschriebenen Art verarbeitet wird. Bei den dann folgenden Taktimpulses t2-tl2 werden die Prüfbytes Z13-Z3 in den Generator gesetzt, so daß zur Zeit ti2 die Prüfbytes ZO-Z2 . im Generator 34 stehen. Danach v/erden bei den Taktimpulses tl3~tl5 die Prüfbytes Z2 -ZO in den Puffer 3 2 gesetzt, um dort das Codewort zu bilden.
Fig. 5 zeigt schematisch die vom Prüfbytegenerator, der im einzelnen in Fig. 6 gezeigt ist/ ausgeführten Funktionen. Der Generator 5 enthält ein Schieberegister mit den drei Stufen 40, 41 und 42, die die in den Additions- und 1-Jultiplikationsoperationen erzeugten Produkte festhalten. Jede Stufe besteht aus konventionellen Speicherelementen zur Darstellung eines Byte oder acht Informationsbits. Die Modulo-2-Addierer (Antivalenz glieder) 43-45 sind mit den Eingängen der Schieberegisterstufen und mit den Matrixmultiplikatoren 48-49 und 50 verbunden, die auch mit MM1-MM3 bezeichnet sind. Ein weiterer Modulo -2--Addierer 46 ist mit dem Ausgang der Stufe 42 verbunden. Er empfängt als Eingabe die Bytes Z14-Z3 in dieser Reihenfolge bei den Taktsignalen tl~tl2. Jedes hereinkommende Byte wird dann zum Z^usgangssignal der Stufe 42 addiert und die Serie von Summen durch eine Torschaltung 47 während der Taktsignale tl-tl2 so geleitet, daß sie an die Eingänge der Matrixmultiplikatoren gelangen und eine Reihe von drei Produkten erzeugen, die als Eingangssignale an die Addierer 43-45 geleitet werden. Die Ausgangssignale der Stufen 40 und 41 bilden die Eingangssignale für die Addierer 44 und 45. Zum Zeitpunkt tl2 sind die Prüfbytes Z0-Z2 in den Stufen 40, 41 und 42 enthalten. V7ährend der nachfolgenden Zeitintervalle tl3-tl5 werden diese Prüfbytes Z2--ZO dann aus den Schieberegister stufen ausgelesen und in den Datenverteilungspuffer 32 gesetzt.
In Fig. 6 ist jede der Stufen 4O bis 42 und jeder Addierer 43
po 972 005 A09822/1063
— Q —
bis 46 für jeweils eines der Bits O bis 7 dargestellt. Die entsprechenden Bits können durch einen Zusatz bezeichnet v/erden, wie z.B. 41-Ό für das Bit O der Stufe 41. Die entsprechenden Bits eines hereinkommenden Byte Z werden an die Eingänge des Addierers 46 geleitet, wobei das Bit 0 an den Eingang 46 Ό gelangt, das Bit 1 an den Eingang 46-1 usw. Vom Ausgang des Addierers 46 führen acht Bitleitungen zum Eingang der Torschaltung 47, und diese hat wiederum eine AusgangsSammelleitung 52, deren Leitungen mit 0 bis 7 entsprechend den Bitbezeichnungen des Bytes bezeichnet werden. Die Verbindungen der entsprechenden Adern der Sammelleitung mit den Eingängen der Addierer 43-45 bewirken die Matrixmultiplikation, die schließlich die notwendigen Prüfbytes erzeugt.
Fig. 7 zeigt die drei Matrizen 54, 55 und 56 zum besseren Verständnis der Multiplikation. Hit diesen Matrizen werden die Prüfbytes erzeugt, die die Gleichungen 1 bis 3 erfüllen. Diese Matrizen sind in Übereinstimmung mit den folgenden Beziehungen
Matrix 54 ist Τ
Matrix 55 ist ΐλ(ΙΘΤλΦΤ)
λ ?λ Matrix 56 ist (ΙΘΤ ΦΤ ),
worin I die Identitätsmatrix (T(2 ~1)λ=Ι) ist.
Die Matrizen 54-56 entsprechen dem spezifischen Ausführungsbeispiel für λ=68 undb=4. I für f=8 ist
10 000000 01000000 00100000 00010 000 OOOOIOOO 0000 0100 ■00000010 |_0 0 0 0 0 0 0
Jede Matrix unifaßt 8x8 Bits. Wenn ein Zeilenvektor, wie z.B.
PO 972 005
40982 2/1063
ein Byte Z mit einer Matrix multipliziert werden soll, wird das erste Bit des resultierenden Seilenvektors gebildet durch die :Iodulo--2-Sumine der an den mit Einsen in der Matrix bezeichneten Positionen erscheinenden hereinkommenden Bits. In der Addiererposition 43 Ό werden für eine solche Multiplikation z.B. die Bits der Positionen 1, 2, 3 und 7 aus der ersten Spalte der Matrix 54 durch 43-0 antivalent verknüpft. Bezeichnet man in der Matrix 54 der Fig. 7 die oberste Zeile als die Zeile 0 und die unterste als die Seile 7, dann erscheinen die Einsen in den Positionen 1,2,3 und 7. Bei der speziellen Verdrahtung nach Fig. 6 werden die auf den Ädern 1, 2, 3 und der Sammelleitung 52 erscheinenden Bits an die Eingänge 43-0 angelegt. Die anderen Eingänge sind ähnlich angeschlossen- die Addierer 44 und 45 empfangen jedoch die Ausgaben der vorhergehenden Schieberegisterstufen 40 und 41. Der Hauptzweck der Fig. 6 besteht in der Illustration der speziellen Verbindungen, durch die Multiplikation und Modulo 2--Addition erfolgen. Konventionelle Schieberegister und Modulo-2 Addierer können verwendet werden und werden normalerweise in Verbindung mit Taktsignalen betrieben, deren Übertragungsleitungen in Fig. 6 zur Vereinfachung nicht dargestellt sind. Die Taktimpulse und die exakte Logik der Schieberegister sind konventionell.
Fig. 8 zeigt eine Schaltungsanordnung zur Erzeugung von Syndromen gemäß Schritt 18 der Fig. 3. Das Codewort ZO'-Z141 in Fig. 8 stellt die Daten oder das Codewort nach der Umsetzung dar, in der Fehler auftreten können. Dieses Codewort wird in einen Datenverteilungspuffer 60 gesetzt. Die Ausgangsseite des Puffers 6O ist mit dem Eingang dreier separater Schieberegister SRO, SRI und SR2 verbunden. Die einzelnen Eytes Z141, 213' usw. v/erden aus dem Puffer 6O in aufeinanderfolgenden Taktzyklen ausgelesen und in die Schieberegister gesetzt, so daß der Inhalt der Schieberegister die Syndrome SO, Sl und S2 darstellt, wenn alle Bytes ZOf-Zl4' in den Puffer gesetzt wurden. Bei der Erzeugung werden die Syr-vc1 durch die Torschaltungen 61, 62 und 63 in die Puffer 64 bis 66 geleitet. Eine Taktsteuerung 67 liefert Taktsignale to-tl6.
PO 972 005 / Π ;';■!/ 7 / i Π ft 3
Beim Taktsignal to werden die Register SRO, SRI und SR2 auf Hull zurückgestellt. Bei den.Taktsignalimpulses tl--tl5 werden die entsprechenden Bytes Z0'-Z14' in die Schieberegister gesetzt und beim Taktimpuls ti6 wird der Inhalt der Schieberegister in den Puffer 64-66 geleitet.
Das Schieberegister SRO ist in Fig. 9 gezeigt und umfaßt acht Modulo-2-Addierer 70-0 bis 70-7, die die entsprechenden Bits 0-7 eines Byte Zi1 empfangen. Der Ausgang des Addierers 70 ist mit den entsprechenden Eingängen mehrerer Schieberegisterstufen 71-0 bis 71-7 verbunden. Der Ausgang einer jeden derartigen Stufe ist über Leitungen 72 mit dein dein Eingang zugeordneten Addierer 70 verbunden. Die Schieberegisterstufen 71 sind konventionelle Speicherelemente r bei denen das Äusgangssignal eines Speicherelementes dessen Eingang wieder zugeführt v/erden kann durch konventionelle Taktsignale, die zur Erzeugung eines neuen Ausgangssignales angelegt werden. iJenn alle Bytes ZO'-214' in das SRO gesetzt wurden, bildet dessen Ausgangssignal das Syndroin SO.
In Fig. 10 ist gezeigt, wie das Syndrom Sl im SEI erzeugt wird7 das allgemein aus mehreren Ilodulo-2--Addierern 73-0 bis 73-7 und mehreren Schieberegisterstufen 74-0 bis 74-7 besteht. Gemäß Darstellung in Fig. 11 umfaßt das SR2 in ähnlicher Weise mehrere Addierer 76-0 bis 76-7 und mehrere Schieberegister 77-0 bis 77-7. Die Ausgangssignale der Schieberegister 74 und 77 werden auf besondere Weise als Eingangssignale den Addierern jeder Stufe zurückgeführt, um das Syndrom gemäß der gewünschten Funktion zu erzeugen. Wie in ähnlicher Weise im Zusammenhang mit der in Fig. dargestellten Verdrahtung erklärt wurde, sind die speziellen Rückkopplungsverbindungen nach den in den Matrizen 78 und 79 in Fig. 12 gezeigten Funktionen vorgenommen worden, die die Matrix T in die 68te bzw. 136te Potenz erhoben zeigen. Die Auswahl von λ=68 hält die Anzahl der für die Matrix 7 8 vorzunehmenden Verbindungen möglichst klein.
Dieser allgemeine Schritt erzeugt die Syndrome S0--S2 nach den
po 972 005 40 9 8 22/1063
folgenden Gleichungen.
SO=ZO1 Θ Sl' Θ Z2' © Θ Ζ141 (9)
Sl=ZO1 Θ Zl1 [T68] Θ- Ζ21 [(T68)2] Θ Ζ14 ' [ (T68) 14 ] (10)
ΰ3=Ζϋ' Φ Ζ1'[Τ13δ] Φ Z2'[(13C)2] Φ —- Θ 314' [(ϊ136)14] (11)
Ein von .'.iull verschiedener ivert in einer Stelle oder Bitposition von SO, Sl oder S2 zeigt einen Fehler in den Daten 2O'-Z14'" an.
Hinweissignale werden während der Datenumsetzung durch konven · tionelle bekannte Schaltungen erzeugt, deren Einzelheiten nicht zur Erfindung gehören. Für die vorliegende lürfin-iung besteht die Ausgabe des Hinweissignalgenerators aus drei Vierten i, j und k, von denen i kleiner als j und dieses kleiner als k ist. ',Jenn einer dieser Werte gleich 15 gesetzt v/ird oder im allgemeinen Fall gleich 2 -1, und dieser viert größer ist als die größte Spur zahl, dann wird dieser i-Iert als Anzeige dafür genommen, daß keina entsprechende Spur fehlerhaft ist. Bei einem vorhandenen Fehler gibt i die Spurzahl an und j und k besitzen den "Jert 15. Eei zwei Fehlern geben i und j die entsprechenden Spurzahlen an und k=15. Bei drei Fehlern geben alle drei Hinweissignale die entsprechenden Spurzahlen an. Da die Erzeugung der Hinweissignale in Schaltungen erfolgt und diese Schaltungen im Betrieb bestimmten Schwellwerten unterliegen, bietet das Vorhandensein eines Hinweissignales keine Sicherheit dafür, daß ein Fehler in der bezeichneten Spur aufgetreten ist. Entsprechendes gilt für das Gegenteil. Aus diesem Grunde wird bei der Decodierung und Fehlerkorrektur versucht, Hinweissignale darauf zu erzeugen, ob kein Hinweissignal oder nur ein Hinweissignal auf eine fehlerhafte Spur geliefert wird. i-Jenn ein Hinweissignal vorhanden ist und auf eine fehlerhafte Spur hinweist und das Syndrom jedoch keinen Fehler anzeigt, überwiegt der Syndromzustand das Hinweissignal. Bei der Verarbeitung wird ebenfalls geprüft, ob nicht korrigierbare FehlerSituationen vorliegen, die außerhalb der Korrekturfähigkeit des Coc-3 liegen.
PO 972 005
409822/1063
Bei der Analyse der Fehlersituationen'werden einfach die Hinweissignale beachtet und abhängig von ihrem Zustand das Fehlerkarrekturverfahren an einexa von drei verschiedenen Punkten begonnen. In den Fällen A und B sind zwei oder drei Ilinweissignale vorhanden. Im Fall C ist ein Hinweissignal vorhanden und im Fall D keines.
Fall A - drei Hinweissignale vorhanden.
Wenn die drei Einweissignale i,.j. und k gegeben sind (O<i<j<k<2-1) für drei ausgelöschte Spuren, kann der Code die Fehlerrauster, el, e2 und e3 bestimmen, wobei si'=Zi®el, Zj'=Zj®e2 und Zk'=Zk©e3. Der Einfachheit halber soll t=TX sein. Wenn diese 77erte in die Gleichungen 1 bis 6 eingesetzt werden, ergeben sich folgende Beziehungen:
50 = el θ e2 θ e3 (12)
51 = el[tX] © ε2[^] Φ e3[tk] (13)
52 = el[t21] © e2[t2:i] Φ e3[t2k] (14)
Das heißt mit anderen Worten, wenn am Anfang der Fehlerkorrektur die Variablen SO, Sl und S2 zusammen mit den Hinweissignalen i, j und k gegeben sind, enthalten die obigen drei Gleichungen drei Unbekannte el, e2 und e3.
Diese drei Unbekannten lassen sich durch gleichzeitige Lösung der Gleichungen bestimmen und die korrigierten Daten erhält man durch Modulo-2-Addition von
Zi!I=Zi' Φ el, ZiP=Zj1 Φ e2 und Zk"=Zk' Φ e3. Fall B - zv/ei Hinweissignale vorhanden.
Wenn die beiden Hinweissignale i und j gegeben sind, wird angenommen, daß höchstens zwei Spuren fehlerhaft sind. Das Fehlerrauster el und e2 erhält man durch Lösung der drei Gleichungen
po 972 OO5 409822/106 3
bis 14. Die Ergebnisse liefert el und e2 sowie e3=O. Der Fall mit zwei Fehlern v/ird also als Sonderfall des Falles mit drei Hinweissignalen behandelt, in dem e3=O ist. Kenn sich bei den
Ergebnissen für e3 ein von Null verschiedener Wert ergibt, liegen Fehler in mehr als zwei Spuren vor, die ohne ein zusätzliches I-Iinweissignal nicht korrigierbar sind.
FalJL_C - ein Iiinweissignal vorhanden.
!fenn ein Hinweissignal i gegeben ist. wird angenommen, daß eine andere Spur oder ein Byte j ebenfalls fehlerhaft ist. Der Code kann nicht nur das Fehlermuster el, sondern auch j und e2 erzeugen. Ähnlich der Ableitung der Gleichungen 12 bis 14 können die Syndrome folgendermaßen ausgedrückt v/erden:
50 = el θ e2 (15)
51 = eltt1] Θ e2[t^] (16)
52 = el[t21] Θ e2[t2j] (17)
Wieder handelt es sich um drei Gleichungen mit drei Unbekannten el, e2 und j, die gelöst werden können zur Bestimmung der Unbekannten und Erzeugung der korrigierten Daten durch Addition der Fehlermuster gemäß
Zi"=Zi' θ el und Zj!=Zj' © e2.
Fall D ·- kein Hinweissignal vorhanden.
Wenn kein Hinweissignal vorhanden ist, v/ird angenommen, daß
der Hinv/eissignalgenerator den Fehler nicht erkannt hat. Der
Code kann einen Fehler in einer Spur verarbeiten unter der
Voraussetzung, daß alle anderen Spurenfehler frei sind. Dann
gelten die folgenden Beziehungen:
PO 972 005
403822/1063
50 = el (18)
51 = elLt1] (19)
52 = el[t21] (20)
Hier liegen drei Gleichungen mit den beiden unbekannten i und el vor. Die Gleichung 18 liefert das Fehlerrnuster. Die Gleichung 19 kann für die fehlerhafte Spur gelöst werden. Mit der Gleichung 2O kann man die Ergebnisse der ersten beiden Gleichungen prüfen.
Die Fehlerkorrektur kann nach der Erfindung durch einen Allzweck-Rechner mit entsprechender Frograminierung ausgeführt werden, wodurch der Prozeß automatisch im Computer abläuft.· Die Eingabe für das Fehlerkorrekturverfahren sind die umgesetzten Codewortbytes ZO'~S14', die Syndrome S0-S2 und die Hinweissignale i, j und k. Alle diese Informationen können in den Hauptspeicher des Datenverarbextungssystems gespeichert werden zur entsprechend einem Programm erfolgenden Analyse. In der anschließenden
detaillierten Beschreibung werden die in höheren Programmiersprachen bekannten Ausdrücke für Verzweigungs-, Berechnungsoder Zuordnungsanweisungen benutzt. Eine übersetzung dieser
Anweisungen in eine spezifische höhere Programmiersprache
wie APL, die sich besonders für die Vektor- und Matrixbearbeitung eignet, kann erfolgen.
Die vorliegende Erfindung arbeitet mit einer Parametertabelle zur Unterstützung verschiedener nachfolgend aufgeführter Funktionen:
fl(a) = -a Modulo 2b-l; worin b-4, 2b-l=15 (21)
f2(a) = .J Modulo 2b-l (22)
tf3(a) = (!o^)-1 {23)
tf4<a> = (l®tar1/2 (24)
f5(a) = -2a Modulo 2b-l (25)
PO972005 .409822/1063
8 9 10 11 12 13 14
7 6 5 4 3 2 1
11 3 10 2 9 1 3
9 13 10 1 14 8 4
12 14 5 . 8 7 4 2
14 12 10 8 6 4 2
Parametertabelle für b=4
a 01234567
fx(a) 0 14 13 12 11 10 9 ό
f2(a) 0 7 14 6 13 5 12 4
f3(a) 0 3 6 11 12 5 7 2
f4(a) 0 9 3 13 6 10 11 1
£5(a) 0 13 11 9 7 5 3 1
Die spezifische Verwendung der Tabelle dient dazu, ein Argument "a'! zu erhalten, das mit einer bestiramten Funktion benutzt wird, um so einen Tabellenwert für Verwendung in einem folgenden Schritt zu bekoramen. Die Anweisung (f2 (6) führt beispielsweise zu einer Zidressierung der Tabelle, um den Wert "12'' zu erhalten.
In der anschließenden Beschreibung in tabellarischer Form beginnen die Anweisungen der allgemeinen Schritte oder Funktionen mit Großbuchstaben (z.B. A) in der linken Spalte, einzelne Prozeßschritte oder Anweisungen beginnen in der Mitte und enthalten eine Eezugszahl zum ersten Teil und der Inhalt wichtiger Variabler, die in dem Schritt verändert wurden, beginnen mit kleinen Buchstaben in der rechten Spalte (z.B. "a"). Es folgen Einzelheiten für die verschiedenen Situationen.
PO 972- .00.5...
409822/1063
Fall A und B Verarbeitung (i ^ 15, j f 15)
Funktion
Prozeß
Inhalt der veränderten Variablen/Bemerkungen
Λ - Variable auf Syndroir. setzen l: SRO -f- SO, SR «-SI,- 3R2 ■*- S2
a) SRO = el Θ e2 Φ e3
SRI = eltt1] Θ e2[t^] Φ e3[tk] SR2 = el[t21] Φ e2[t2j]® e3[t2k] B - SRI und SR2 15-i rial verschieben 2.R-e-Fl(i)
2.1 Wenn R = O weiter mit 3 SRI -e- SRl[t]
SR2 «- SR2[t2]
RfR -1
weiter mit 2.1
b) SRI = el Θ e2[t^ '1J θ e3'[tk~1]
SR2 = el Φ e2[t2(j 15I Φ e3[t2(k'x)]
C ·· SRI und SR addieren und in S.R2 eingeben. SRO und SRI addieren und in SRI eingeben. 3. SR2 «· Sill Φ SR2
SRI -*- SRO Φ SRI
c) SR2 = ε2[^""χ][ΙΦ^"χ] Φ
e3[tJX ] [I®t
SRI = e
D · SR πι mal schieben, wobei m = -(J i)/2 , lodulo 4. Rf f2(j-i)
4.1 I;enn R = O weiter mit 5 SR2 f SR2[t2]
RfR-I
weiter mit 4.1
d) SR2 = e2[I®t:l":L]
PO 972 OO5
409822/1 QS 3
E -- 3Rl und 3R2 addieren und in SR eingeben
5. GR2 -*- SRI Φ 3112
e) SR2 = e3[I®tk"j] [Ιθ^"1] F - SR2 f4(k j) ,aal schieben
6. R-*- f4(k-j)
6.1 Wenn R = O weiter mit SR2 t- SR2[t2] R ■«- R -1 weiter mit 6.1
f) SR2 = e3[ietk"'X]
G - SRI und SR2 addieren und in SRI eingeben
7. SRI ■*- SRI Θ SR2
g) SRI = e2[I©tD '1J II - SR2 f 4 (k--i) r.ial schieben
S. R -e- f4(k-i) 3.1 wenn R = O weiter mit SR2 = 3R2[t2] R -*- -R -1 v;eiter mit 8.1
h) SR2 = e3 = Fehlemuster für Spur k SRO und SR2 addieren und in SRO eingeben
9. SRO ♦· 3R0 Φ SR2
i) SRO = el Θ e2 J - SRI f 3 (j--i) mal schieben
10. R = f3(j i)
1O.1 Wenn R = O v/eiter rait Il 3Rl «- SRl[t] R ■«- R --1 weiter mit 10.1
j) SRI = e2 = Fehlerrauster für Spur j K - SRO und SRI addieren und in SRO eingeben
11. SRO *- SRO Θ SRI
k) 3RO = el = Fehlermuster für Spur i
FO" 972 005
BAD ORfOiMAL
L - Auf ein und zwei Fehler prüfen
12. V7enn k=15 und SR2 ^ O weiter mit Wenn j=15 und SRI £ O weiter mit
1} Beide Fehlerbedingungen unkorrigierbar :1 ■- Fehler korrigieren
13. Zi" -C- Zi1 Φ SRO Zj" -c- Zj1 Θ SRI Zk" -C- Zk' Θ 3r2 AUS
Ii - Anzeige ''AuS nicht korrigierbarer Fehler"
Fall C (i ?*15, j=15)
A · Variable auf Syndrome setzen
1. SRO -c- SO, SRI + Sl, SR2 ■*- S2
a) SRO = el Φ e2
SRI = el[tX] Θ e2[tJ] B · SRI und SR2 15- i liial schieben
2. R-c- fl(i)
2.1 Wenn R = 0, weiter mit
SRI ■«- SRl[t], SR2 = 3R2[t2] R-c-R-1 weiter mit 2.1
b) SRI = el θ e2[t:]~i] SR2 = el Φ e2[t2(^ "x) ]
C - SR2 und SRI addieren und in SR2 eingeben. SRO und SRI addieren und in SRI eingeben.
3. SR2 <- SRI Φ SR2 SRI "-C- SRO φ SRI
c) SRI = e2[l©tD"X]
SR2 = e2[t^"X ^"1
po 972 005 409822/106 3 BAO
D - SR2 schieben und mit 5Rl vergleichen bis zur Gleichheit. Verschiebung erfolgt R mal wobei 0 < R <
4. R +- 0
4.1 Wenn R = 15 weiter mit Schritt 14 Fall A Wenn SRI = 3R2 weiter mit 5 SR2 = SR2[t2]
R «- R +1
weiter mit 4.1
d) SR2 = e2[I®t^~X3
R = -(j-i)/2 Modulo 15. Wenn R=I5, mindestens drei fehlerhafte Spuren ohne unabhängige Hinweise nicht korrigierbar.
E - Hinweiswert j wie bei f5(R)+i Modulo 15 erhalten. SRI und SR2 addieren und in SRI eingeben.
5. Rl = f5(R)
j = (Rl+i) Modulo 15 SR2 «- SRI © SR2
weiter mit Schritt 10 Fall A
e) SR2 = 0
j = Spurnummer der zweiten fehlerhaften Spur,
Fall D (i=l5)
A - Variable auf Syndrome setzen
1. SRO ■*· SO, SRI «- Sl, SR2 <- S2
a) SRO = el ■ SRI = eltt1]
SR2 = el[t21]
B -- SRI und SR2 schieben und mit SRO bis zur Übereinstimmung von SRO und SRI vergleichen, die Schiebung erfolgt R mal, wobei R < 15.
2. R *■ 0
2.1 Wenn R = 15, weiter mit 14 Fall A Wenn SRO. = SRI v/eiter mit 3 SRI = SRl[t]
SR2 = SR2[t2]
R ■*■ R +1
weiter mit 2.1
409822/1063
PO- 972 OO5-BAD 0W3INAL
b) SRI = el, SR2 = el R = -i Modulo 15
Wenn R =15, sind mindestens zwei Spuren fehlerhaft und ohne unabhängige Hinweise nicht korrigierbar.
C - Hinweiswert i erhält man als f 1 (R) . SRI und SR2 addieren und in SR2 eingeben. SRO und SRI addieren und in SRI eingeben. 3. i = fl(R)
SR2 = SRI Φ SR2
SRI = SRO Θ SRI
weiter mit Schritt 12 Fall Ä
c) SRO = el
SRI =0
SR2 = 0
PO 972 005 i-nqR?9/1flß3
409822/ 106 J BAD0RK31NÄL

Claims (7)

PATSKTA K SPRÜCHE fIJ Verfahren zun Codieren und Decodieren von Daten durch ein Datenverarbeitungssystem zwecks Korrektur von Dreifachfehlern, gekennzeichnet durch folgende Verfahrensschritte beim Codieren: a) Serielles Verarbeiten der zu codierenden Bytes, beginnend mit dem Byte Z(Iv-I) ; b) Erzeugung von Prüfbytes ZO, Zl und Z2 in den folgenden Teilschritten.
1. Anfängliche Matrixmultiplikation des ersten aus dem im Schritt a) empfangenen Bytes mit den Matrizen Τ, Τλ(ΙΘΤλΘΤ) und (ΙΦΤλΘΤ) zur Bildung des ersten einer Reihe von Produkten Pl, P2 und P3;
2. Anschließende .Modulo -2--Addition eines jeden Byte zu jedem Produkt P3, das vor einer solchen Addition existierte, zur Bildung einer Reihe von Summen S;
3. Matrixmultiplikation einer jeden Summe S mit den im Teilschritt bl erhaltenen Matrizen zur Bildung von drei Ergebnissen, von denen das erste Ergebnis ein neues Produkt Pl bildet;
4. Modulo -2-Addition des zweiten Ergebnisses zum
alten Produkt Pl zur Bildung eines neuen Produktes P2;
5. Modulo-2-Addition des dritten Ergebnisses zum alten Produkt P2 zur Bildung eines neuen Produktes P3; wodurch bei Verarbeitung des Byte Z3 gemäß den Teilschritten (2-5) die Produkte Pl, P2 und P3 entsprechend die Prüfbytes ZO, Zl und Z2 bilden;
c) Kombination der Prüfbytes mit den Infonnationsbytes zur .Bildung eines Codewortes, wobei die Matrizen und Bytes zueinander in Beziehung stehen und jedes Byte f Bits enthält, wo f=bru, f, b und m ganze Zahlen, K eine ganze Zahl 3 < K < 2 ,T eine Begleitmatrix vom Grade f, X=r(2 "l)/(2 -I),- r eine positive ganze Primzahl zu 2 --1 und I eine Einheitsmatrix sind.
PO 972 005
. ■ ■:-/_ ?,=.-, - 403822/1083
BAD ORfGENAL
2. ' Verfahren nach Anspruch 1, gekennzeichnet durch folgende
Verfahrensschritte beim Decodieren eines empfangenen Codewortes:
Bilden von Syndromen SO, Sl und S2 aus einem empfangenen Codewort ZO '--Z (K-I) ' nach den Gleichungen
50 = ZO1 Φ Zl1 - - Φ Z(K-I)'
51 = ZO1 Φ Zl1λ] Φ 22' [ΤΛ2] Φ S(K-I) ' [T**"1]
π O 17.—» I α» 71 I Γ Τ· 1 Oi <Τ~) \ ΓΤ 1 CSi "7 /τ" 1 \ > Γ'Ρ Λ 1 ·
UJ — ZiU U7 ZiX ^X JtD. iiZ [J. j φ Zi \v.v X J [^X JJ
Erzeugen eines Fehlermusters e unter Verwendung der Syndrome und
Korabinieren des Fehlermusters mit dem zugehörigen fehlerhaften Byte zur Erzeugung des korrigierten Datenbytes.
3. Verfahren nach Anspruch 2, dadurch gekennzeichnet, daß das Fehlermuster e nach folgenden Gleichungen aus den Syndromen erhalten wird
50 = e
51 = e[TXl]
32 = e[TX2i]
und daß in einem Teilschritt ein Hinweissignal i aus den Gleichungen erzeugt wird, das auf das fehlerhafte Byte hinweist.
4. Verfahren nach Anspruch 2, gekennzeichnet durch das Erzeugen eines Hinweissignales i, das auf ein möglicherweise fehlerhaftes Byte hinweist, das Erzeugen eines Fehlermusters el durch Lösen der folgenden Gleichungen für el, e2 und j:
50 = el..Φ e2
51 = el[TXi] Φ e2[TX^]
52 = el[T2Xi] Φ e2[T2'X3]
PO 972 005. 40 9822/1063
BAD ORIGINAL
wobei j ein Hinweissignal ist, das auf ein anderes möglicherweise fehlerhaftes Byte hinweist, und e2 das Fehlermuster zur Korrektur des anderen Bytes ist.
5. Verfahren nach Anspruch 2, gekennzeichnet durch
das Erzeugen von drei Einweissignalen i, j und k, die auf möglicherweise fehlerhafte Bytes hinweisen, wobei gilt O£i<j<k< 2b-l,
das Erzeugen von drei Fehlermustern el, e2 und e3 durch gleichzeitiges Lösen der Gleichungen
50 = el Φ e2 θ e3
51 = el[TXl] Θ e2[TXj] Φ e3[TXk]
52 = el[T2Xl] θ e2[T2Xj3 Φ e3[T2Xk]
und durch Addieren von el, e2 und e3 zu den Bytes Zi1, Zj1 und Zk1.
6. Verfahren nach den Ansprüchen 1 und 2, dadurch gekennzeichnet, daß das erhaltene Codewort in parallele Spuren eines magnetisierbaren Aufzeichnungsträgers aufgezeichnet und von diesem zur Gewinnung des empfangenen Codewortes abgelesen wird.
7. Verfahren nach Anspruch 2, dadurch gekennzeichnet, daß eine Anzeige erfolgt, wenn festgestellt wird, daß ein unkorrigierbarer Fehler vorliegt.
PO 972 005
409822/ 1063
DE2357971A 1972-11-24 1973-11-21 Verfahren zum codieren und decodieren von daten zur korrektur von dreifachfehlern Pending DE2357971A1 (de)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
US00309388A US3851306A (en) 1972-11-24 1972-11-24 Triple track error correction

Publications (1)

Publication Number Publication Date
DE2357971A1 true DE2357971A1 (de) 1974-05-30

Family

ID=23198031

Family Applications (1)

Application Number Title Priority Date Filing Date
DE2357971A Pending DE2357971A1 (de) 1972-11-24 1973-11-21 Verfahren zum codieren und decodieren von daten zur korrektur von dreifachfehlern

Country Status (5)

Country Link
US (1) US3851306A (de)
JP (1) JPS5327101B2 (de)
DE (1) DE2357971A1 (de)
FR (1) FR2208556A5 (de)
GB (1) GB1437115A (de)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE2948126A1 (de) * 1978-11-28 1980-06-26 Matsushita Electric Ind Co Ltd Digitaler signalprozessor

Families Citing this family (27)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
USRE30187E (en) * 1972-11-15 1980-01-08 International Business Machines Corporation Plural channel error correcting apparatus and methods
US3913068A (en) * 1974-07-30 1975-10-14 Ibm Error correction of serial data using a subfield code
US4052698A (en) * 1975-03-17 1977-10-04 Burroughs Corporation Multi-parallel-channel error checking
US3982226A (en) * 1975-04-03 1976-09-21 Storage Technology Corporation Means and method for error detection and correction of digital data
US4005405A (en) * 1975-05-07 1977-01-25 Data General Corporation Error detection and correction in data processing systems
US3958220A (en) * 1975-05-30 1976-05-18 International Business Machines Corporation Enhanced error correction
US4107650A (en) * 1976-08-13 1978-08-15 The Johns Hopkins University Error correction encoder and decoder
US4117458A (en) * 1977-03-04 1978-09-26 Grumman Aerospace Corporation High speed double error correction plus triple error detection system
US4145683A (en) * 1977-11-02 1979-03-20 Minnesota Mining And Manufacturing Company Single track audio-digital recorder and circuit for use therein having error correction
US4201976A (en) * 1977-12-23 1980-05-06 International Business Machines Corporation Plural channel error correcting methods and means using adaptive reallocation of redundant channels among groups of channels
US4205324A (en) * 1977-12-23 1980-05-27 International Business Machines Corporation Methods and means for simultaneously correcting several channels in error in a parallel multi channel data system using continuously modifiable syndromes and selective generation of internal channel pointers
NL7804674A (nl) * 1978-05-02 1979-11-06 Philips Nv Geheugen met detektie en korrektie van fouten.
US4292684A (en) * 1978-11-01 1981-09-29 Minnesota Mining And Manufacturing Company Format for digital tape recorder
US4254500A (en) * 1979-03-16 1981-03-03 Minnesota Mining And Manufacturing Company Single track digital recorder and circuit for use therein having error correction
US4276647A (en) * 1979-08-02 1981-06-30 Xerox Corporation High speed Hamming code circuit and method for the correction of error bursts
CA1170776A (en) * 1980-07-18 1984-07-10 Yoichiro Sako Method of error correction of blocks of data
JP2583547B2 (ja) * 1988-01-13 1997-02-19 株式会社日立製作所 半導体メモリ
JP2722647B2 (ja) * 1989-04-11 1998-03-04 富士通株式会社 磁気テープ制御装置
JPH04184634A (ja) * 1990-11-20 1992-07-01 Matsushita Electric Ind Co Ltd マイクロコンピュータ
JPH07235149A (ja) * 1991-02-20 1995-09-05 Internatl Business Mach Corp <Ibm> 情報記録方法
JP3292323B2 (ja) * 1993-03-02 2002-06-17 ソニー株式会社 情報再生装置
US5432801A (en) * 1993-07-23 1995-07-11 Commodore Electronics Limited Method and apparatus for performing multiple simultaneous error detection on data having unknown format
US5588010A (en) * 1994-07-29 1996-12-24 International Business Machines Corporation Parallel architecture error correction and conversion system
US5592498A (en) * 1994-09-16 1997-01-07 Cirrus Logic, Inc. CRC/EDC checker system
US6460157B1 (en) * 1999-11-30 2002-10-01 International Business Machines Corporation Method system and program products for error correction code conversion
KR100632952B1 (ko) * 2004-09-30 2006-10-11 삼성전자주식회사 정전으로 인한 프로그램 페일의 유무를 판별할 수 있는방법 및 장치
US9086992B1 (en) 2012-06-08 2015-07-21 Digital Ordnance Storage, Inc. System and method for interconnecting storage elements

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US3504340A (en) * 1967-05-08 1970-03-31 Ibm Triple error correction circuit
US3629824A (en) * 1970-02-12 1971-12-21 Ibm Apparatus for multiple-error correcting codes
US3685014A (en) * 1970-10-09 1972-08-15 Ibm Automatic double error detection and correction device
US3656107A (en) * 1970-10-23 1972-04-11 Ibm Automatic double error detection and correction apparatus
US3675200A (en) * 1970-11-23 1972-07-04 Ibm System for expanded detection and correction of errors in parallel binary data produced by data tracks
US3697948A (en) * 1970-12-18 1972-10-10 Ibm Apparatus for correcting two groups of multiple errors

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE2948126A1 (de) * 1978-11-28 1980-06-26 Matsushita Electric Ind Co Ltd Digitaler signalprozessor

Also Published As

Publication number Publication date
GB1437115A (en) 1976-05-26
FR2208556A5 (de) 1974-06-21
JPS4984334A (de) 1974-08-13
JPS5327101B2 (de) 1978-08-05
US3851306A (en) 1974-11-26

Similar Documents

Publication Publication Date Title
DE2357971A1 (de) Verfahren zum codieren und decodieren von daten zur korrektur von dreifachfehlern
DE2159108A1 (de) Anordnung zur Erzeugung zyklischer Redundanzprüfzeichen
DE2357004A1 (de) Verfahren und einrichtung zur fehlerkorrektur fuer daten
DE2727876B2 (de) Steuereinrichtung mit einem Mikroprozessor
DE2227148A1 (de) Verfahren zur verarbeitung digitaler daten
DE2508706A1 (de) Codieren und decodieren mit einem code variierbarer wortlaenge und gegebenem bitzahlverhaeltnis
DE2132565A1 (de) Umsetzer
DE1223414B (de) Schaltungsanordnung fuer Codeuebersetzer in Empfangseinrichtungen fuer Nachrichten in fehlerkorrigierendem Code
DE69427399T2 (de) Datenübertragungseinrichtung
DE2622184A1 (de) Fehlerkorrekturverfahren
DE2805294C2 (de) Codierende Übertragungsanlage für Faksimile-Signale
DE2357168A1 (de) Speichermodul fuer eine datenverarbeitungseinheit
DE2053836C3 (de) Anordnung zur Korrektur von Fehlerbündeln in binär codierten Datengruppen
DE2324538A1 (de) Digitale nachrichtenuebertragungsanordnung
DE2047868A1 (de) Schaltung zur Korrektur von Einzel fehlern in den Wortern eines zyklischen (n, k) Codes
DE2816771A1 (de) Verfahren und schaltungsanordnung zur feststellung und unterscheidung von fehlern, insbesondere in ladungsgekoppelten speichern und magnetischen einzelwanddomaenenspeichern
DE2403651B2 (de) Schaltungsanordnung für die nichtlineare Umwandlung von digitalen Binärziffern in digitale Signale
DE3003502A1 (de) Datenfehler-korrektursystem
DE3752367T2 (de) Fehlerkorrekturgerät
DE2933830C2 (de) Programmierbarer Polynomgenerator
DE2757164C2 (de) Verfahren zum Übertragen oder Aufzeichnen von digitalen Signalen
DE1934675A1 (de) Fehlererkennungsverfahren fuer Datenuebertragungssysteme
DE2057256A1 (de) Verfahren und Schaltungsanordnung zur Datensicherung bei der UEbertragung binaerer Daten
DE1250489B (de) I Schaltungsanordnung zur Einspei cherung von Leerstellen-Kennworten in einen assoziativen Speicher
DE1937259B2 (de) Selbstpruefende fehlererkennungsschaltung

Legal Events

Date Code Title Description
OHJ Non-payment of the annual fee