DE2053836A1 - Verfahren und Vorrichtung zur Korrek Datengruppen - Google Patents

Verfahren und Vorrichtung zur Korrek Datengruppen

Info

Publication number
DE2053836A1
DE2053836A1 DE19702053836 DE2053836A DE2053836A1 DE 2053836 A1 DE2053836 A1 DE 2053836A1 DE 19702053836 DE19702053836 DE 19702053836 DE 2053836 A DE2053836 A DE 2053836A DE 2053836 A1 DE2053836 A1 DE 2053836A1
Authority
DE
Germany
Prior art keywords
data
bundle
error
bits
test
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.)
Granted
Application number
DE19702053836
Other languages
English (en)
Other versions
DE2053836C3 (de
DE2053836B2 (de
Inventor
Hal Pond Del Mar Calif Eastman (V St A )
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 DE2053836A1 publication Critical patent/DE2053836A1/de
Publication of DE2053836B2 publication Critical patent/DE2053836B2/de
Application granted granted Critical
Publication of DE2053836C3 publication Critical patent/DE2053836C3/de
Expired legal-status Critical Current

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L1/00Arrangements for detecting or preventing errors in the information received
    • H04L1/004Arrangements for detecting or preventing errors in the information received by using forward error control
    • H04L1/0056Systems characterized by the type of code used
    • H04L1/0057Block codes
    • 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

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Probability & Statistics with Applications (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Error Detection And Correction (AREA)
  • Detection And Correction Of Errors (AREA)
  • Signal Processing For Digital Recording And Reproducing (AREA)

Description

IBM Deutschland Internationale Büro-Matehinen Geielhehaft mbH
Böblingen, den 16. Oktober 1970 ne-ba-fr
Anmelderin: International Business Machines Corporation, Armonk, N.Y. 10504
Amtliches Aktenzeichen: Neuanmeldung Aktenzeichen der Anmelderin: Docket SA 968 066
Verfahren und Vorrichtung zur Korrektur von Fehlerbündeln in binHr codierten Datengruppen
Die Erfindung bezieht sich auf die Fehlererkennung und -korrektur in binären Datenverarbeitungssystemen, insbesondere in Systemen mit Magnetplattenspeichern. Jedoch ist das Prinzip der Erfindung sowohl auf die Datenübertragung als auch auf die Datenspeicherung anwendbar.
Die von modernen programmgesteuerten Rechenanlagen zu verarbeitende Information wird diesen Anlagen in codierter Form angeboten, um von einer Rechenanlage aufgenommen werden zu können. Abhängig von den Umständen können verschiedene Codes für die gleiche Information existieren. Die hier interessierenden Codes stellen die Information in binärdigitaler Form dar, wobei jedes Informationsbit als eine Null oder eine Eins dargestellt wird.
Eine Reihe von Anordnungen sind vorgeschlagen worden, um codierte Information zu prüfen. Diese Anordnungen haben gewöhnlich ein Paritätsprüfprinzip ausgenutzt, in dem eine oder mehrere Paritäte- oder Prüfziffern zu einer Gruppe codierter Ziffern hinzugefügt wurden, um eine ausgewählte digitale Summe zu erhalten, aufgrund deren Fehler identifiziert werden können. Z. B. kann in
109820/1882
einem binären System eine Paritätsziffer in Verbindung mit einer Gruppe von Informationsziffern benutzt werden und die Paritätsziffer Kann so variiert werden, daß die Summe aller Ziffern, einschließlich der Paritätsziffer entweder ungerade oder gerade ist. Bei einer Paritätsprüfung auf Geradzahligkeit, zeigt daher eine ungerade Gesamtsumme, die aus den Informationsziffern und der Paritätsziffer gebildet wird, das Vorliegen eines Fehlers an.
Die Redundanz, die durch eine Paritätsziffer eingeführt wird, reicht nicht aus, um das Vorliegen einer Reihe verschiedener Fehlerarten zu erkennen. Daher ist eine Vielzahl anderer Fehlererkennungs- und -korrekturverfahren entwickelt wurden, die eine beträchtliche Anzahl von Paritätsziffern benutzen. Dabei ist jede der Paritäteziffern einer ausgewählten Kombination von Informationsziffern und anderen Paritätsziffern zugeordnet, so daß die Fehlerorte festgestellt und die Gruppe der Informationsziffern entsprechend der ursprünglichen Informationsfolge wieder hergestellt werden kann.
Besonders schwierige Bedingungen für die Fehlererkennung- und -korrektur liegen vor, wenn die Fehlerart, die auftreten kann, Fehlerbündel einschließt, die eine Reihe aufeinanderfolgender Ziffern umfassen. Solche Bedingungen treten sehr oft auf, wenn digitale Daten zwischen zwei Punkten übertragen werden. Unter diesen Umständen ist es so, daß ein Fehler in einer Ziffernstelle die Wahrscheinlichkeit stark erhöht, daß auch ein Fehler in benachbarten Stellen auftritt. Es ist für solche Fälle daher sehr erwünscht, Fehlerbündel durch Verwendung einer minimalen Anzahl von Redundanzziffern zu erkennen, zu lokalisieren und zu korrigieren.
Die Betrlebserforderniese der in jüngster Zeit entwickelten Informationaspeicheraysteme, die Magnetplatten verwenden, bedingen bestimmte Beschränkungen bezüglich der Fehlererkennung- und -korrektur. In solchen Systemen iat die Länge des längsten Da-
Dock.t SA 968 066 109820/1812 ·
tensatzes wesentlich. Sie beträgt mehr als 130 000 Bits, während die Anzahl der Prüfbits pro Datensatz einen kleinen Bruchteil davon beträgt (weniger als 200). Binäre Codes, die für die Fehlerkorrektur in solchen Systemen geeignet sind, sollten in der Lage sein, alle Fehlerbündel zu erkennen, die kleiner als eine vorgegebene maximale Länge sind und sollten darüber hinaus in der Lage sein, einen hohen Prozentsatz derjenigen Fehler, die nicht auf Bündel innerhalb der vorgegebenen maximalen Länge beschränkt sind, zu erkennen. Weiter sollte die Möglichkeit vorhanden sein, Daten parallel aufzunehmen und zu identifizieren, welche Aufzeichnungsspur große unkorrigierbare Fehlerbündel enthält, so daß der Begrenzungspegel für diese Spur entsprechend eingestellt werden kann. Die zur Implementierung des Codes verwendeten Module sollten selbst paritätsgeprüft sein, so daß Fehler in den Schaltungen eines Moduls erkannt werden. Außerdem sollte die Möglichkeit gegeben sein, besondere Arten von Transformationen zu erkennen, die sich aus in regelmäßigen Abständen auftretenden Fehlern ergeben.
Die meisten Fehlererkennungs- und -korrekturcodes, die in der Vergangenheit benutzt wurden, weisen bezüglich der oben erwähnten Kriterien schwerwiegende Mängel auf. Die sogenannten Fire-Codes benötigen mehr als die maximal zulässige Decodierzeit und machen auch Schwierigkeiten, wenn parallele Daten korrigiert werden müssen und die Einstellmarke!te des Begrenzungspegels zu fordern ist. Bestimmte andere zyklische Codes (die Fire-Codes sind zyklische Codes) bereiten ebenfalls Schwierigkeiten, wenn Daten parallel aufgenommen werden müssen und benötigen eine ganz erhebliche Decodierzeit. Verschachtelte Hamming-Codes erfordern beträchtlich mehr Prüfbits pro Datensatz als oben angegeben wurde.
Der Erfindung liegt daher die Aufgabe zugrunde, ein Verfahren und eine Anordnung zur Korrektur von Fehlerbündeln in binär codierten Datengruppen anzugeben, die die genannten Nachteile nicht besitzen.
Docket SA 968066 109820/1882
Dae Verfahren gemäß der Erfindung 1st dadurch gekennzeichnet,
daß aus einer zu übertragenden oder zu speichernden Datengruppe ein aus zwei Teilen bestehendes Prüfbündel abgeleitet wird, dessen erster Teil aus der Verknüpfung der Information der Datengruppe und dessen zweiter Teil durch Verknüpfen der Adressen der binären Einsen der Datengruppe gewonnen werden, daß das Prüfbündel nach der Datengruppe übertragen bzw. gespeichert wird und daß aus der übertragenen bzw. ausgelesenen Datengruppe erneut ein Prüfbündel abgeleitet und mit dem übertragenen bzw. gespeicherten verglichen wird, daß aus einer Nichtübereinstimmung der Prüfbündel ein ebenfalls zweiteiliges Syndrom abgeleitet und solange verschoben wird, bis der erste Teil eine vorgegebene Bitanordnung aufweist, daß diese Bitanordnung zur Gewinnung der Adresse des Fehlerbündels decodiert und die fehlerhaften Bits invertiert werden.
Von den Zeichnungen zeigen:
Fig. 1 ein Blockschaltbild einer Fehlerkorrekturschaltung gemäß der Erfindung;
Fig. 2 ein Blockschaltbild, das weitere Einzelheiten
eines Teiles der Schaltung nach Fig. 1 darstellt;
Fig. 3 ein Blockschaltbild einer Anordnung, durch die
die Kapazität von Systemen gemäß der Erfindung erhöht werden kann;
Fig. 4 ein Blockschaltbild einer speziellen Schaltung,
die in Schaltungen gemäß der Erfindung Verwender werden kann;
Fig. 5 ein Blockschaltbild, das eine Variation der
Schaltung nach Fig. 1 darstellt und das Erkennen fehlerhafter Bits bei paralleler Datenverbeitung ermöglicht;
DOOJCCtSA968O66 109820/ Fig. 6 ein Blockechaltbild einer Anordnung gemäß der
Erfindung, durch die die Arbeitsweise der Schaltung nach Fig. 1 vereinfacht wird und
Fig. 7 ein Blockschaltbild eines in Fig. 6 verwendeten Blocksyiobols. .
Die in Fig. 1 dargestellte Fehlerkorrekturschaltung 10 enthält einen ersten Prüfbündelgenerator 12 und einen zweiten Prüfbündelgenerator 14, die mit der Datenleitung 16 verbunden sind. Die Schaltung 10 enthält außerdem ein Datenregister 18, das einmal mit dem Ausgang der Datenleitung 16 und zum anderen mit dem Ausgang eines Decodiernetzwerkes 20 verbunden ist, das seinerseits an den zweiten Fehlerbündelgenerator 14 angeschlossen ist.
Beim Betrieb der Schaltung 10 nach Fig. 1 werden die Daten der Datenleitung 16 zugeführt und auch dem ersten Prüfbündelgenerator 12. Die Daten können als eine Anzahl binär codierter und seriell zugeführter Datenbits angesehen werden. Der erste Prüfbündelgenerator 12 dient dazu, ein Prüfbündel zu erzeugen, das representativ ist sowohl für die einzelnen Datenbits als auch ihre jeweilige Stelle. Die Datenleitung 16 kann von ganz allgemeiner Art sein und ist in der Mitte der Figur unterbrochen dargestellt, um anzuzeigen, daß keine kontinuierliche Verbindung zwischen dem Eingang- und Ausgangsteil der Schaltung 10 vorhanden sein muß. Z. B. kann die Datenleitung 16 Teile einer Anordnung zur Aufzeichnung und zur Wiedergabe binärer Daten darstellen. Sie kann auch das übertragen und Empfangen von Daten darstellen, das in üblicher Welse drahtgebunden oder drahtlos erfolgt, in jedem Fall durchlaufen die Daten zusammen mit dem ersten Prüfbündel des ersten Prüfbündelgenerators 12 seriell die Leitung 16. Am Ausgang des Systems 10 werden die Daten dem Datenregister 18 zugeführt und ebenfalls dem zweiten Prüfbündelgenerator 14. Zn dem zweiten Prüfbündelgenerator 14, der mit dem ersten Prüfbündelgenerator 12 identisch ist, werden die Daten in gleicher Weise verarbeitet, um ein zweites Prüfbündel zu
Docket SA 968O€6 1Q9820/1882
erzeugen, das eine Aussage über die Datenbite und ihre jeweilige Stelle liefert. Dieses zweite Prüfbündel sollte für den Fall, daß kein Fehler aufgetreten ist, mit dem ersten Prüfbündel identisch sein. Die beiden Prüfbündel werden in dem zweiten Prüfbündelgenerator 14 verglichen und die Vergleichsergebnisse werden dem Decodiemetzwerk 20 zugeführt. Wenn ein Unterschied zwischen beiden Prüfbündeln besteht, bestimmt das Decodiernetzwerk 20 den Ort der erkannten Fehler und veranlaßt, daß diejenigen Bits in dem Datenregister 18 invertiert werden, die fehlerhaft sind, wodurch die Daten in dem Datenregister 18 wieder in die Form gebracht werden, die am Eingang der Datenleitung 16 vorhanden war.
In Fig. 2 ist der Prüfbündelgenerator 12 genauer dargestellt. Er enthält einen m-stufigen Zähler 22, dem Taktimpulse zugeführt werden. Der Zähler 22 ist mit einem UND-Glied 24 verbunden, dem auch die Daten zugeführt werden. Ein Α-Register und ein B-Register 28 sind in einer Schieberegisterschaltung miteinander verbunden, was durch den mit 29 bezeichneten, gestrichelt dargestellten Block "Verschieben" angedeutet ist. Dieser Block stellt keine Schieberegisterstufe dar, sondern soll lediglich andeuten, daß die Register 26 und 28 in Form eines Schieberegisters miteinander verbunden sind. Ein Teil der Ausgänge des A-Registers 26 ist zusammen mit dem Ausgang des UND-Gliedes 24 mit einem exklusiven ODER-Glied 30 verbunden. Das Ausgangssignal des exklusiven ODER-Gliedes 30 und die Ausgangssignale der restlichen Stufen des A-Registers 26 werden gemeinsam nach einer geeigneten Stellenverschiebung durch die Schaltung 29 dem B-Register 28 zugeführt. Der Ausgang des B-Registers 28 ist einmal mit dem A-Register 26 und ebenfalls mit einem durch Taktimpulse gesteuerten UND-Glied 32 verbunden, dessen Ausgang an die Datenleitung 16 angeschlossen ist. Ein zweiter Pfad für die Verarbeitung von Daten durch den Prüfbündelgenerator 12 enthält ein Schieberegister 34, dessen Ausgang über ein exklusives ODER-Glied 36 mit seinem Eingang verbunden ist. Der Ausgang des Schieberegisters 34 ist außerdem über ein weiteres, durch Taktimpulse gesteuertes UND-Glied 38 mit der Datenleitung 16 verbunden.
Docket SA 968 066 109820/1882 ·
Das System nach Fig. 1, bei dem die Prüfbündelgeneratoren 12 und 14 gemäß der Schaltung nach Fig. 2 aufgebaut sind, kann dazu benutzt werden, die Stelle von Fehlern zu bestimmen, die in einem Bündel von der Länge kleiner oder gleich b in einem binären Datensatz auftreten, dessen Länge veniger als η ■ 2m - 1 Bits beträgt. In dem zu beschreibenden Beispiel werden die Daten seriell verarbeitet, was durch die Bezeichnung "(1)" neben dem Hort "Daten" bei der Leitung 16 der Fig. 2 angedeutet ist. Der Wert für b soll 3 und der für m soll 4 sein. In Fig. 2 gibt die in Klammern gesetzte Bezeichnung neben einer Leitung die Anzahl der parallelen Adern an, die durch die betreffende Leitung dargestellt werden. So verlassen z. B. b + m Leitungen das A-Register 26 und führen zum B-Register 28, wobei m von ihnen über die exklusiven ODER-Glieder 30 und die restlichen b Leitungen direkt mit dem B-Register 28 verbunden sind.
Bei diesem Beispiel werden vor oder während der übertragung die η Datenbits seriell der Datenleitung 16 zugeführt. Sie werden bei ihrem Eintreffen an dem UND-Glied 24 durch einen m-stufigen Zähler 22 gezählt, wobei die Stellenbezeichnung der "1"-Bits dem exklusiven ODER-Glied 30 zugeführt wird.
Der Inhalt des A-Registers 26 und des B-Registers 28 wird zu Beginn zu 0 gemacht. Unmittelbar bevor ein Bit auf der Datenleitung 16 erscheint, wird der Inhalt des B-Registers 28 in das A-Register 26 übertragen. Wenn das eintreffende Datenbit eine "1" ist, wird der Inhalt des Zählers 22 in den exklusiven ODER-Gliedern 30 mit m der Bits in dem A-Register 26 verknüpft. Das Ergebnis wird dem B-Register 18 zugeführt, während die anderen b Bits des A-Registers 26 direkt dem B-Register 28 zugeleitet werden. Die Verbindungen zwischen den Registern 26 und 28 sind so gewählt, daß, wenn die Eingangsdaten aus lauter Nullen bestehen, der Inhalt des Registers 26 während jedes Bitzyklus um eine Stelle umlaufend verschoben wird. Die Daten werden auch einem üblichen rückgekoppelten Schieberegister 34 mit b + m Stufen zugeführt. Die Länge dieses Registers ist notwendigerweise größer als 2b - 1. Die Länge b + m wird nur aus Zweckmäßigkeitsgründen und aus
Docket SA 968 066 109820/1882
Gründen der Geschwindigkeit beim Decodieren gewählt.
Wenn alle Daten in dieser Weise verarbeitet und übertragen wurden, ist ein erstes Prüfbündel entwickelt worden, das aus zwei verschiedenen Teilen besteht, die sich in den B-Register 28 und in dem Schieberegister 34 befinden. Dieses Prüfbündel wird über die UND-Glieder 32 und 38 der Datenleitung 16 zugeführt und mit den Daten übertragen. Auf der Empfangsseite enthält der Prüfbündelgenerator 14 ebenfalls die Schaltung nach Fig. 2 und führt mit den empfangenen Daten die gleichen Operationen aus. Dadurch wird ein zweites Prüfbündel entwickelt, das zwei verschiedene Teile besitzt, die in dem B-Register 26 und dem Schieberegister 34 des zweiten Prüfbündelgenerators 14 enthalten sind. Das erste und das zweite Prüfbtindel werden zur Erzeugung eines Fehlersyndroms in einem exklusiven ODER-Glied miteinander verknüpft. Wenn die empfangenen Daten die gleichen wie die gesendeten sind, besteht das Fehlersyndrom aus lauter Nullen.
Wenn jedoch zwischen dem Aussenden der Daten und ihrem Empfang einige Datenbits invertiert werden, und wenn diese Fehler auf ein Fehlerbündel der Länge b oder kleiner beschränkt sind, dann können diese Fehler mit Hilfe der Syndrome lokalisiert und korrigiert werden.
Wenn z. B. angenommen wird, daß die zu übertragenden Daten für die angegebenen Stellen:
10 987654321 0101110101
beträgt und wenn die Länge der Register 26, 28 und 34 gleich 7 ist, (b + m « 7), dann beträgt der Inhalt des Schieberegisters 34, nachdem alle Daten zugeführt wurden:
0 10 1110 V 10 1
und der Inhalt des Register 28 beträgt:
^ u „ e» q<o ^c 109820/1882
Docket SA 968 066
Ol OO (einmal verschoben)
0 0 0 0
0 0 11 (dreimal " )
0 0 0 0
0 10 1 (fünfmal M )
0 110 (sechsmal " )
111 O (siebenmal " )
00 OO
1 10 0 (neunmal " ) 0 0 0 0
0 110 0 11
Daher lautet das erste Prüfbündel, das den Inhalten der Register und 28 entspricht:
1111110 0110011
Wenn angenommen wird/ daß Fehler in den Bits 8 und 10 auftreten, dann lauten die dem Prüfbündelgenerator 14 zugeführten Daten für die angegebenen Bitstellen:
10 987654321 1111110101
Nach dem Verarbeiten der empfangenen Daten beträgt der Inhalt des Schieberegisters 34 in dem Prüfbündelgenerator 14:
1111110
V 10 1
0 10 1110
DOdCt SA 968 066 ■
Der Inhalt des Registers 28 im Prüfbündelgenerator 14 beträgt:
0 1 0 0 0 O O (einmal ve
0 1 0 O 0 0
1 0 0 1 1 (dreimal
1 0 1 0
0 (fünfmal
ö 1 (sechsmal
1 1 0 (siebenmal
0 0 1 1 1 0 (achtmal
1 0 0 O (neunmal
1 0 (zehnmal
0 1110 11
Dementsprechend beträgt das zweite Prüfbündel:
0101110 0111011
und das Fehlersyndrom beträgt:
1111110 0110011
V 0 10 1110 0 1110 11
S± -101000 0 b. »0001000
Die beiden Teile des Syndrome sind mit s± und b1 bezeichnet worden, wie das angegeben 1st. um das in dieser Weise erhaltene Syndrom zu decodieren, sei angenommen, daß sich s. anfangs in dem Schieberegister 34 befindet, und daß b. sich anfangs in dem Register 28 des Prüfbündelgeneratore 14 befindet. Der erste für das Lokalisieren der Fehler erforderliche Schritt besteht darin,
Docket SA 968 066 109820/1882
den Inhalt der Register 26 und 28 und des Schieberegisters solange zyklisch zu verschieben, bis das Muster
1000...OOOXXX...XXX
b - 1 "Nullen" b - 1 Bits
in dem Schieberegister 34 vorliegt. Für das oben betrachtete Beispiel bedeutet dies:
si b±
1010000 0001000
0101000 0000100
0010100 0000010
0001010 0000001
0000101 1000000
1000010 0100000
Zu diesem Zeitpunkt wird das Bit in der rechtesten Stelle des Musters b. mit b. bezeichnet. Das Bit in der zweiten Stelle von rechts wird b_ bezeichnet usw. Das linke Bit in dem Muster s. ist s.. Das ganz rechts befindliche Bit ist S2/ das Bit in der zweiten Stelle von rechts S3, usw.
Der Rest der Decodierung wird in dem Decodiernetzwerk 20 aufgrund der folgenden booleschen Verknüpfungen durchgeführt:
al " bl
a2 - b2 V (S2 - S1)
a, - b, V (S- · a ) V fs, . (a, V a.)l
a4 * b4 V (S4 · I1) V (S3 . ä2) ν S2 · Fa3 V U1 · a2)]
Die Bits a. geben die Adresse des führenden Fehlers. In diesem Falle ist
Docket SA 968 066 10 9 8 2 0/1882
N"1
«3-0
■ ·χ - O
Daher ist A1 - ACHT (binär 1000). Die übrigen Fehler können relativ zu diesem direkt aus den Muster β lokalisiert werden. Das Bit S1 ist zu 1 bestimmt worden. Es entspricht dem Fehler, dessen Adresse gefunden wurde. Die anderen Fehler haben alle höhere Adressen. Wenn S2 eine 1 wäre, dann läge an der Adresse NEUN (a^ addiert zu 1) ein weiterer Fehler vor. Wenn s. eine 1 ist, was für das oben angegebene Beispiel der Fall ist (b. « 00101, S2 « 0, S3 ■ 1, ...lauter Nullen ...) dann bedeutet das, daß ein weiterer Fehler an der Adresse ZEHN (a. addiert zu 2) vorhanden ist.
Das Invertieren der Bits 8 und 10 der empfangenen Daten liefert dann einen vollständig richtigen Datensatz.
Empfangener Datensatz Korrigierter Datensatz
10 987654321 10 987654321
1111110101 0101110101
Fehler in den Prüfbit· und Fehler die nicht auf ein Bündel kleiner als b beschränkt sind, können dadurch erkannt werden, daJ man beobachtet, welche Teile des Syndrome aus lauter Nullen bestehen und dadurch, daß man die booleschen Funktionen für das Decodieren so erweitert, daß sie mehr Bits des Registers 28 verknüpfen als notwendig sind, um die Adressen ... a_ su erhalten.
Obgleich die obige Beschreibung sich auf ein spezielles Beispiel mit begrenzter Datensatzlänge und begrenzter Länge des Fehlerbündels bezog, ist das beschriebene System in der Lage, alle Fehlerbündel mit b oder weniger Fehlern zu korrigieren, was mathe-
Docket SA 968 066 109820/1882
matisch für den allgemeinen Fall bewiesen werden kann. Tatsächlich ist das Problem/ zu beweisen, daß die Schaltung und das Verfahren gemäß der Erfindung dazu dienen, alle Fehlerbündel bis zur Länge b zu korrigieren/ gleichbedeutend damit, zu beweisen, daß, wenn ein Datensatz, der aus lauter Nullen mit Ausnahme eines Bündels kleiner als b besteht, dem System nach den Fign. 1 und 2 zugeführt wird, die Steilen der Einsen in dem Bündel eindeutig aus den verbleibenden Inhalten des Schieberegisters 34 und des Registers 28 bestimmt werden können. Kurz, das Problem zu beweisen, daß das mit der Schaltung nach den Fign. 1 und 2 durchgeführte Verfahren alle Fehler korrigiert, die auf ein Bündel kürzer als b beschränkt sind, kann in ein gleichwertiges Problem übersetzt werden, bei dem dem Eingang des Systems 10 nach Fig. 1 lauter Nullen mit Ausnahme eines Bündels, das kürzer als b ist, zugeführt werden. Es läßt sich zeigen, daß die Orte der Einsen in solch einem Eingangsstrom eindeutig aus dem Inhalt des Registers 28 und des Schieberegisters 34 lokalisiert werden können. Daraus folgt, daß das System IO nach Fig. 1, wenn es in der beschriebenen Weise betrieben wird, dazu dient, alle Bündel, die kleiner als b sind, zu korrigieren.
Es gibt andere fehlerprüfende und fehlerkorrigierende Codes, die weniger Prüfbits zur Korrektur eines Bündels derselben Größe, wie es durch das oben beschriebene Verfahren korrigiert wird, erfordern. Der Hauptvorteil des Systems und des Verfahrens gemäß der Erfindung besteht darin, daß ein Syndrom vergleichsweise schnell decodiert werden kann. Andere Codes, die ebenso schnell decodiert werden können, erfordern weit mehr Prüfbits. Ua beispielsweise Fehlerbündel zur korregieren, deren Längen 6, 11 oder 15 Bits in Datensätzen von 217 Bits beträgt, erfordert ein verschachtelter Hamming Code 96, 176 oder 240 Prüfbit», wogegen der Code der vorliegenden Erfindung lediglich 48, 56 oder 64 Prüfbits erfordert, um Fehlerbündel der angegebenen Länge zu korrigieren. Daraus ist su ersehen, ä&s der Unterschied« zwischen den beiden Codes und damit der Vorteil, den dl· Erfindung
Docket SA 968 OSS 109820/1882
gegenüber dem verschachtelten Hamming Code besitzt, wesentlich zunimmt, wenn die Länge des zu korrigierenden Fehlerbündels zunimmt. Dieser Vorteil wird teilweise dadurch aufgewogen» daß der verschachtelte Hasuaing Code bestimmte weitverstreute Fehler korrigieren kann, die der vorliegende Code nur erkennen kann. Dieser Code erkennt oder korrigiert jedoch soviele Fehler wie ein verschachtelter Hamming Cod·. Die Hauptaufgabe beider Codes ist es natürlich, alle einseinen Fehlerbündel zu korrigieren, deren Lange kleiner ist als eine vorgegebene Länge b und alle Fehlerbündel zu erkennen, deren Länge kleiner als 2b - 1 ist.
Die Art des bei der Anwendung der Erfindung benutzten Codes gestattet auch die Fehlerkorrektur bei paralleler Datenübertragung, wenn das UND-Glied 24 in Fig. 2 durch den Block 39 nach Fig. 3 ersetzt wird und wenn m überall mit Ausnahme der Ausgänge des Zählers 22 durch m + log2u ersetzt wird. Mit dieser Änderung führt die Datenleitung 16 parallele Daten in u Kanälen. Der Zähler 22 hat noch m Stufen und die Anzahl der Leitungen, die die Register 26 und 28 miteinander verbinden und die verschiedene Bezeichnungen einschließlich des Buchstabens m tragen, werden um eine Anzahl erhöht, die äquivalent ist zu log2u.
Für die Verarbeitung paralleler Daten ist der Block 39 der Fig. aus UND-Gliedern und exklusiven ODER-Gliedern zusammengesetzt und nimmt beispielsweise für den Fall, daß u - 4 und m « 5 ist, die folgenden Verknüpfungen vor:
C. « i. Zählerausgang D1 - i. Dateneingang C1-D1 C2-D1 C3-D1 C4-D1 C5.Dl O O C1-D2 C2-D2 C3-D2 C4-D2 C5-D2 O D2 C1-D3 C2-D3 C3-D3 C4-D3 C5-D3 D3 O V cD4 C2'D4 C3#D4 C4'D4 C5-D4 D4 D4
Docket SA 968 066 109820/1882
Mit den Elementen jeder Spalte wird eine exklusive ODER-Verknüpfung vorgenommen und die in Fig. 3 mit 39 bezeichnete Schaltung liefert sieben ( - m + log2u) Ausgangssignale. Die Decodierung erfolgt genau in der gleichen Heise wie das für den Fall der seriellen Datenübertrag bereits beschrieben wurde und die Ergebnisse sind die gleichen als wenn in all den Spuren die parallelen Daten hintereinander angeordnet worden wären und dem in Fig. 2 dargestellten einzigen Dateneingang zugeführt worden wären.
Bei der Verarbeitung paralleler Daten 1st es bisweilen wünschenswert, den Begrenzungspegel eines bestimmten Kanales einzustellen. Dies kann wegen der großen Anzahl von Fehler, die in einer der parallelen Spuren auftreten, erforderlich sein. Bei der Benutzung des Codes der vorliegenden Erfindung, soweit sie bis jetzt beschrieben wurde zur Korrektur von Fehlerbündeln in parallelen Daten, führt diese Situation wahrscheinlich zu der Erkennung von Fehlern jedoch ohne eine Anzeige, in welcher Spur die Fehler auftreten. Eine Identifizierung der Fehlerspur kann durch die Verwendung zusätzlicher Schaltungen, wie sie in den Fign. 4 und 5 dargestellt sind, in Verbindung mit den Fign. 1 bis 3 beschriebenen Schaltungen erzielt werden. Die in Fig. 4 im Blockschaltbild dargestellte Schaltung ist ein Baum aus den exklusiven ODER-Gliedern 40, 41 und 42, die zwischen den parallelen Eingangsleitungen und einer einzigen Ausgangsleitung angeordnet sind. Die Anzahl der exklusiven ODER-Glieder kann soweit erhöht werden als erforderlich ist, um alle parallelen Datenleitungen zu erfassen. Der Ausgang der Schaltung nach Fig. 4 ist mit dem Eingang des UND-Gliedes 24 und des exklusiven ODER-Gliedes 36 der Fig. 2 verbunden. Das Blockschaltbild der Fig. 4 zeigt nur vier parallele Eingänge, obgleich die Schaltung für acht Eingänge erweitert werden kann, wie das in Fig. 5 dargestellt ist.
Die zusätzlichen Prüfbits die so erzeugt werden, werden mittels der Schaltung nach Fig. 5 errechnet, in der ein Block 44 dargestellt 1st, der drei exklusive ODER-Bäume zur parallelen Verarbeitung der Daten aus acht Datenspuren enthält. Die drei Aus-
Docket SA 968 066 10 9 8 2 0/1882
gänge, an denen die Ergebnisse der drei angegebenen exklusiven ODER-Verkntipfungen erscheinen, führen zu drei über ein exklusives ODER-Glied 48 auf den Eingang rückgekoppelten Schieberegistern 46. Das Decodieren der Syndrombits des Prüfbündelgenerators nach Fig. 2 ist genau das gleiche wie es bereits beschrieben wurde mit der Ausnahme, daß die Adressen der erkannten Fehler genügend Information enthalten, um anzugeben, welche Bitgruppen fehlerhaft sind. Die zusätzlichen von den Schieberegistern 46 gelieferten Syndrome geben an, welches Bit jeder Bitgruppe fehlerhaft ist und geben damit auch die Spur an, für die der Begrenzungspegel eingestellt werden muß. Trotz der zusätzlichen Prüfbits, die für die weitere Information zur Bestimmung des fehlerenthaltenden Spurteiles benötigt werden, erfordert der vorliegende Code nur etwa halb so viel Prüfbits als ein verschachtelter Hamming Code. Die früher in Verbindung mit den Fign. 1 und 2 beschriebenen Decodierfunktionen können beträchtlich vereinfacht werden und die zur Decodierung benötigte Zeit kann wesentlich verkürzt werden, wenn der Zähler 22 nach Fig. 2 so gesteuert wird, daß er nicht nach dem Eintreffen jedes Bits, sondern nur nach dem Eintreffen von b Bits weitergeschaltet wird. In dem gegebenen Beispiel mit b « 3 liefert das Weiterschalten des Zählers 22 jeweils nach dem Eintreffen von drei Bits für das angegebene Fehlermuster folgendes Syndrom:
Fehlermuster: » 9 8 7 6 5 4 3 2 1 0 0 Zähler
10 0 1 0 0 0 0 0 0 0 von 3 auf
1 1 1 0 4 weiterge-
0 geschaltet.
0 0 ■ Syndrom
0 0
1
0 0 bi 1 1 0 1
0 10 0
Docket SA 968 066 10 9 8 2 0/1882
Da der Zähler nur einmal während eines Bündels von b oder weniger Bits weiterschaltet, werden die Decodierverknüpfungen in folgender Weise reduziert:
al = bl
a2 »b2 Ϋ
V [s2g2a2 +
V (s3g3a1 +
am+l β bn+l V 82*2an
am V (am-lam-2
[an-2 V (an-3 am-
Das Blockschaltbild der Fig. 6 stellt die Schaltung zur Implementierung dieser Funktionen dar. Die Schaltung besteht aus einer Reihe von UND-Gliedern 50, aus exklusiven ODER-Gliedern 52 und 60 sowie mit der Bezugsziffer 54 bezeichnete Blöcke, die in der dargestellten Weise miteinander verbunden sind. Einzelheiten der mit der Bezugsziffer 54 versehenen Blöcke sind in Fig. 7 dargestellt aus der zu ersehen ist, daß ein solcher Block 54 ein paar UND-Glieder 56 enthält, deren Ausgänge an ein ODER-Glied 58 angeschlossen sind.
Di· Bits g. der vorher angegebenen Decodierfunktion bilden folgendes während des Ausrichtteiles der Syndromdecodierung berechnete Muster:
typisches g* " 1 1 1 1 00000
Die Anzahl der Einsen in einer Funktion g^ ist genau di· Anzahl der Stellen, um die b. und s. während des anfänglichen Ausrichten· verschoben werden mußten. Die Anzahl der Datenbit· ist «in
Docket SA 968 066 10 9 8 2 0/1882
Vielfaches der Länge des Schieberegisters 34. Diese Bits zeigen daher die Stelle in dem Fehlerbündel an, bei dem der Zähler weitergeschaltet wurde. Sie werden ebenfalls decodiert, um anzuzeigen, welches der b Bits das erste fehlerhafte Bit war. Am Ausgang der Oecodierschaltung nach Fig. 6 erscheint das Bit a.. Die Bits ai*** am ^eben die Adresse der Gruppe aus b Bits, die den ersten
Fehler enthält. Wenn eins der a Bits a von Null verschieden ist.
dann ist ein unkorrigierbarer Fehler erkannt worden. Diese besondere Anordnung reduziert die Anzahl der erforderlichen Prüfbits etwas und dient auch dazu, die Decodierschaltung zu vereinfachen.
Die in Fig. 6 gezeigte Schaltung kann weiter vereinfacht werden,
wenn die Berechnung jedes der Bits a. bis a nacheinander vor-
A m
genommen wird. Dann wird nur ein aus exklusiven ODER-Gliedern bestehender Baum 60 mit b Eingängen benötigt. Ferner sind b Blöcke 54 und die UND-Glieder 50 und die exklusiven ODER-Glieder 52 an der Spitze der Fig. 6 erforderlich. Für dieses Decodierverfahren sind etwa drei Mikrosekunden erforderlich.
Die beschriebenen fehlerprüfenden Codes und die Schaltungen zu ihrer Implementierung, die vorher beschrieben worden sind, bieten wesentliche Vorteile gegenüber anderen Codes, die bisher verwendet wurden. Bestimmte dieser Codes erfordern mehr als 30 Mikrosekunden für das Decodieren und bereiten außerdem Schwierigkeiten, wenn parallele Daten korrigiert werden müssen und der Begrenzungspegel einstellbar sein muß. Andere Codes bereiten Schwierigkeiten bei der Verarbeitung paralleler Daten und benötigen außerdem zuviel Zeit für das Decodieren, während noch andere Codas beträchtlich mehr Prüfbits als der vorliegende Code erfordern. Dieser Code gestattet das Decodieren in weniger als 4 Mikrosekunden, benötigt weniger als die Hälfte an Prüfbits, die ein verschachtelter Hamming Code erfordert und liefert noch Informationen für die Einstellung des Begrenzungspegels einer Spur.
Docket SA 968 066 109820/1882

Claims (5)

  1. PATENTANSPRÜCHE
    Verfahren zur Korrektur von Fehlerbündeln in binär codierten Datengruppen, dadurch gekennzeichnet, daß aus einer zu übertragenden oder zu speichernden Datengruppe ein aus zwei Teilen bestehendes Prüfbündel abgeleitet wird, dessen erster Teil aus der Verknüpfung der Information der Datengruppe und dessen zweiter Teil durch Verknüpfen der Adressen der binären Einsen der Datengruppe gewonnen werden, daß das Prüfbündel nach der Datengruppe übertragen bzw. gespeichert wird und daß aus der übertragenen bzw. ausgelesenen Datengruppe erneut ein Prüfbündel abgeleitet und mit dem übertragenen bzw. gespeicherten verglichen wird, daß aus einer Nichtübereinstimmung der Prüfbündel ein ebenfalls zweiteiliges Syndrom abgeleitet und solange verschoben wird, bis der erste Teil eine vorgegebene Bitanordnung aufweist, daß diese Bitanordnung zur Gewinnung der Adresse des Fehlerbündels decodiert und die fehlerhaften Bits invertiert werden.
  2. 2. Verfahren nach Anspruch 1, dadurch gekennzeichnet, daß das Syndrom solange verschoben wird, bis es in seinem ersten Teil eine führende binäre Eins aufweist, auf die b-l Nullen (b ■ Länge des Fehlerbündels) folgen, an die sich mehrere Binärziffern anschließen, die den Wert Eins oder Null haben können.
  3. 3. Verfahren nach den Ansprüchen 1 und 2, dadurch gekennzeichnet, daß das Decodieren des vorgegebenen Bitmustere zur Gewinnung der Adresse des Fehlerbündels mit Hilfe der folgenden booleschen Verknüpfungen erfolgt:
    Docket SA 968 066
    109820/1882
    «2 - b2 v
    V[»2
    a4 - b4 V (.4 - I1) V (.3 . S2) V «2 . [a3 V
    wobei A1 die Adresse des ersten Fehler« des Bündel« angibt, bi die Bit« im zweiten Tei
    die in «einen ersten Teil.
    die Bit« im zweiten Teil des Syndrome darstellt und β.
  4. 4. Verfahren nach Anspruch 1, dadurch gekennzeichnet, daß der erste Teil des Prüfbündels durch eine zyklische Division aus den Bits einer Datengruppe und der zweite Teil durch eine Addition modulo 2 der jeweils um ein Bit verschobenen Adressen der Einsbits der Datengruppe erhalten wird.
  5. 5. Anordnung zur Duchführung des Verfahren« nach den Ansprüchen 1 bis 4, dadurch gekennzeichnet, das in den die Prüfbündel erzeugenden Generatoren (12, 14; Fig. 1) ein Schieberegister (34; Fig. 2) vorgesehen ist, dessen Ausgang über ein exklusives ODER-Glied (36) auf «einen Eingang rückgekoppelt 1st, sowie ein mehrstelliger Zähler (22), dessen Ausginge an die ersten Einginge einer Verknüpfungsschaltung (24) angeschlossen «lad, deren zweite Einginge mit der Daten leitung (16) verbunden sind und deren Ausginge fiber exklusive ODER-Glieder (30) an einen Teil eines ersten Register« (2t) führen, dessen Ausginge an ein ■weite« Register (26) angeschlossen sind, und daß die Register al« Schieberegister miteinander verbunden und ihre ierieaausglnge über UHD-Glleder (3a, 38) «η die Datealeltung angeschlossen «lad.
    Docket 8A 968 066 10 9 8 2 0/1882
    IJ
    Leerseite
DE2053836A 1969-11-05 1970-11-03 Anordnung zur Korrektur von Fehlerbündeln in binär codierten Datengruppen Expired DE2053836C3 (de)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
US87423469A 1969-11-05 1969-11-05

Publications (3)

Publication Number Publication Date
DE2053836A1 true DE2053836A1 (de) 1971-05-13
DE2053836B2 DE2053836B2 (de) 1978-10-19
DE2053836C3 DE2053836C3 (de) 1979-06-13

Family

ID=25363281

Family Applications (1)

Application Number Title Priority Date Filing Date
DE2053836A Expired DE2053836C3 (de) 1969-11-05 1970-11-03 Anordnung zur Korrektur von Fehlerbündeln in binär codierten Datengruppen

Country Status (7)

Country Link
US (1) US3622984A (de)
CA (1) CA918807A (de)
CH (1) CH526168A (de)
DE (1) DE2053836C3 (de)
FR (1) FR2071745A5 (de)
GB (1) GB1328163A (de)
NL (1) NL7016107A (de)

Families Citing this family (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4320511A (en) * 1979-03-13 1982-03-16 Kokusai Denshin Denwa Co., Ltd. Method and device for conversion between a cyclic and a general code sequence by the use of dummy zero bit series
DE3032468C2 (de) * 1980-08-28 1986-01-23 Siemens AG, 1000 Berlin und 8000 München Schaltungsanordnung zur Erkennung des Musters von Fehlerbündeln
JPS5758210A (en) * 1980-09-26 1982-04-07 Hitachi Ltd Error correction range controlling circuit
JPS57136833A (en) * 1981-02-17 1982-08-24 Sony Corp Time-division multiplex data transmitting method
US5631909A (en) * 1995-05-31 1997-05-20 Quantum Corporation Method and apparatus for determining burst errors in an error pattern
US6430714B1 (en) * 1999-08-06 2002-08-06 Emc Corporation Failure detection and isolation
AUPR440901A0 (en) * 2001-04-12 2001-05-17 Silverbrook Research Pty. Ltd. Error detection and correction
GB2377142A (en) * 2001-06-29 2002-12-31 Motorola Inc Encoder for generating an error checkword
US20070283208A1 (en) * 2006-06-01 2007-12-06 International Business Machines Corporation Systems, methods, and computer program products for providing a two-bit symbol bus error correcting code with bus diagnostic features
US20070283207A1 (en) * 2006-06-01 2007-12-06 International Business Machines Corporation Systems, methods, and computer program products for providing a two-bit symbol bus error correcting code with bus timing improvements
US20070283223A1 (en) * 2006-06-01 2007-12-06 International Business Machines Corporation Systems, methods, and computer program products for providing a two-bit symbol bus error correcting code with all checkbits transferred last
US7721178B2 (en) * 2006-06-01 2010-05-18 International Business Machines Corporation Systems, methods, and computer program products for providing a two-bit symbol bus error correcting code
US9379739B2 (en) * 2014-08-11 2016-06-28 Qualcomm Incorporated Devices and methods for data recovery of control channels in wireless communications

Family Cites Families (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US3222643A (en) * 1961-06-22 1965-12-07 Ibm Error detecting and correcting systems
NL130511C (de) * 1963-10-15
US3437995A (en) * 1965-03-15 1969-04-08 Bell Telephone Labor Inc Error control decoding system
US3411135A (en) * 1965-03-15 1968-11-12 Bell Telephone Labor Inc Error control decoding system
US3465287A (en) * 1965-05-28 1969-09-02 Ibm Burst error detector
US3466601A (en) * 1966-03-17 1969-09-09 Bell Telephone Labor Inc Automatic synchronization recovery techniques for cyclic codes
US3487361A (en) * 1966-12-15 1969-12-30 Ibm Burst error correction system
US3487362A (en) * 1967-04-10 1969-12-30 Ibm Transmission error detection and correction system

Also Published As

Publication number Publication date
NL7016107A (de) 1971-05-07
DE2053836C3 (de) 1979-06-13
CH526168A (de) 1972-07-31
FR2071745A5 (de) 1971-09-17
GB1328163A (en) 1973-08-30
US3622984A (en) 1971-11-23
DE2053836B2 (de) 1978-10-19
CA918807A (en) 1973-01-09

Similar Documents

Publication Publication Date Title
DE2060643C3 (de) Schaltungsanordnung zur Korrektur von Einzelfehlern
DE3040004C2 (de)
DE2357004C3 (de) Verfahren und Einrichtung zur Fehlerkorrektur für Daten
DE2916710C2 (de)
DE2260850A1 (de) Fehlerkorrektursystem
DE3111447C2 (de)
DE2425823A1 (de) Einrichtung zur fehlererkennung und fehlerkorrektur
DE2132565A1 (de) Umsetzer
DE2053836A1 (de) Verfahren und Vorrichtung zur Korrek Datengruppen
DE2456709C2 (de) Schaltungsanordnung zur Fehlererkennung und -korrektur
DE2622184A1 (de) Fehlerkorrekturverfahren
DE2455235C2 (de) Verfahren und Einrichtung zur Fehlererkennung in Zeitvielfachvermittlungsanlagen
EP0325318B1 (de) Vermittlungsanlage
DE2157829C2 (de) Anordnung zum Erkennen und Korrigieren von Fehlern in Binärdatenmustern
DE2916619A1 (de) System zum uebertragen binaerer daten ueber eine anzahl von kanaelen
DE102005022107B4 (de) Vorrichtung und Verfahren zum Bestimmen einer Position eines Bitfehlers in einer Bitfolge
DE3045609A1 (de) Verfahren und schaltungsanordnung zur abgabe einer korrigierten datengruppe an eine bestimmungsschaltung
DE2047868A1 (de) Schaltung zur Korrektur von Einzel fehlern in den Wortern eines zyklischen (n, k) Codes
DE3237848C2 (de) Korrekturvorrichtung zum Synchronisieren von durch Lage- und Schräglauffehler verursachten Daten-Zeitversätzen
AT394465B (de) Verfahren fuer die verarbeitung von aufeinanderfolgenden werten eines digitalen signals
EP0127118B1 (de) Speichersteueranordnung, insbesondere für fehlertolerantes Fernsprech-Vermittlungssystem
DE2000565A1 (de) Fehlerkorrigierendes System zur Korrektur mehrfacher,zufaelliger Fehler
DE3017830A1 (de) Datenfehler-korrektursystem
DE2657408A1 (de) Fehlerkorrekturschaltung
DE1937259A1 (de) Selbstpruefende Fehlererkennungsschaltung

Legal Events

Date Code Title Description
C3 Grant after two publication steps (3rd publication)
8339 Ceased/non-payment of the annual fee