US 3697948 A
Apparatus including a decoder adapted for recovering the data from a received message corresponding to the sent message but which may be in error wherein the blocks of data consist of k bytes of data (D0, D1, D2,...Dk-1) each of b bits. The sent message comprises the k bytes of data plus two check bytes C1 and C2, each of b bits. The decoder is effective in recovering the data without error when not more than two of the bytes are in error no matter how many bits may be in error in the two bytes. Pointers are required which indicate the two bytes containing errors. In the absence of the pointers or in the presence of a single false pointer, the decoder is effective in recovering the data without error when not more than a single byte is in error no matter how many bits may be in error in the single byte. The message is encoded by computing the check bytes according to the relationship:
Claims available in
Description (OCR text may contain errors)
United States Patent Bossen [451 Oct. 10,1972
154] APPARATUS FOR CORRECTING TWO GROUPS OF MULTIPLE ERRORS Wappingers 340/1461 AG, 14 .1 AV
 References Cited UNITED STATES PATENTS 3,478,313 11/1969 Srinivasan ..340/l46.l 3,562,709 2/1971 Srinivasan ..340/146.1 3,582,878 6/1971 Bossen ..340/146.1 3,601,798 8/1971 Hsiao ..340/146.1
Primary Examiner-Charles E. Atkinson Attorney-Hanifin and Jancin and Harold H. Sweeney, Jr.
57 ABSTRACT Apparatus including a decoder adapted for recovering the data from a received message corresponding to the sent message but which may be in error wherein the blocks of data consist of k bytes of data (D D,, D ,...D,, each of b bits. The sent message comprises the k bytes ofdaiapliis tivo cficfbytes C} andC each of b bits. The decoder is effective in recovering the data without error when not more than two of the bytes are in error no matter how many bits may be in error in the two bytes. Pointers are required which indicate the two bytes containing errors. In the absence of the pointers or in the presence of a single false pointerjthe decoder is effective in recovering the data without error when not more than a single byte is in error no matter how many hits may be in error in the single byte. The message is encoded by computing the check bytes according to the relationship:
C1=IDO [D1 IDk 1 C =ID TD 7 D 7* D,,.
wherein I is the identity element and T, T ,...,T"" are distinct non-zero elements of Galois Field (2") wherein the indicated multiplication and addition are the Galois Field defined operations, and wherein b is an integer 1 and k is an integer 2 k 2.
12 Claims, 21 Drawing Figures n' ,0',,--,n' 1C] n' ,o,,---,u' ac' P0,P1,---PKH s s POINTER COMPUTER --10 COMPUTER 12 25 am 1 1 O F' KH Ng -1 2 CONTRO ERROR SIGN/n1 i... COMPUTER GENERATOR l0,--l 1 13. Se a." 20
C "1 S4 l0,l1,"l 1 OR CIRCUITS s g 2s 1 I i o ,o ,---,u I0,I1;-IK-1 i i ERROR coRREcToR PATENTEDncr 10 I972 3.697.948 SHEET U10F14 ENCODER MM PROCESSOR M E DECODER DATA )7 SENT RECEIVED RECOVERED MESSAGE MESSAGE FIG. 2
C COMPUTER 10 COMPUTER 12 28 CIRCUITS I 16 2 EPOYPFPKH \A 14 T 1 SIGNAL COMPUTER GENERATORJ ERROR CORRECTOR 132)) ,D ,6 INVENTOR 0' 1' K- DOUGLAS 0. BOSSEN ATTORNEY FIG. 3
PATENTEDocr 10 I972 SHEET USUF 14 FIG. 70
Se S Q 1 PKH l 1 58 A e? A 63 MP1 N NP] NP2 I0 11 1K4 S0 l 4 *1 OR A NOR OR 60 64 \69 1 N3 36 d \71 1 9 A R 1 DATA as 00R1BYTE A coon ERROR \73 15 .UNCORRECTABLE 8 OR "ERRORS s s s 11 13 21 22 23 24 "01 0 11 12 13 14 21 22 23 24 lahhl H4 NOR A NOR NOR Q K52 Se smcta BYTE I I km 50 ERRORS CORRECTION d XOR FSRBLE BYTE FIG. 7b comzscnom 0 11 f +1 0 11 2 K+1 5s OR PATENTEDUCT 10 I972 SHEET 08UF 14 9 T2: 0 @E oi oi OP wI N OF GE FIG.100
PATENTEDnm 10 i972 SHEET OSUF 14 PATENTEDUEI 10 I972 SHEET IUUF 14 T OF QI FlG.1Qb
PATENTEDom 10 I972 3. 697. 948
SHEET 11UF14 FIG. 10b 1 PATENTEDncr 10 I972 SHEET 12 0F 14 AFPARATUS FOR CORRECTING TWO GROUPS OF MULTIPLE ERRORS BACKGROUND OF THE INVENTION This invention relates to error correcting codes, and more particularly, to an error correcting code which, by the use of pointers, is capable of correcting two bytes of multiple errors.
In data communication systems as well as computers, the information can be coded by adding redundant bits to the data message in such a way that the message can be decoded with a practical amount of apparatus to obtain the original information corrected in the event an error has been introduced. Parallel data arrangements, that is, the information is contained in parallel bytes arranged in a block of data, are used in computers and are well known especially in multi-channel recording apparatus. In co-pending application Ser. No. 10,837, filed on Feb. 12, 1970, now U.S. Pat. No. 3,629,824 en coding and decoding apparatus is disclosed in which the redundant or check bits are associated with the data in a cross byte or cross track direction. This copending application sets forth a code capable of correcting one or more errors within a single, multiple-bit byte of data. The data is divided into blocks which consist of k bytes of data D D, D ,...,D,, (each of b bits), plus two check bytes C and C each of b bits. The decoder is effective in recovering the data without error when not more than a single byte of the received message is in error no matter how many bits may be in error in the single byte. The present invention utilizes the above-identified code but extends the capabilities thereof by combining therewith pointer signals which extend the error correcting capability of the arrangement to two bytes in error regardless of the number of bits in error in each byte.
SUMMARY OF THE INVENTION It is an object of the present invention to provide an encoding and decoding system which provides information as to which bytes are in error and extends the error correcting capabilities of the system to two bytes of data in error.
The code has k data byte positions 0, l,...,kl and two check byte positions k, k 1. Therefore, the whole message has a length k 2, or positions numbered 0, l 1,...,k 1. In a multi-track tape system, for example, each block of data has each of its bytes on a different track so that the code extends across the tracks, each track representing an information byte position. The check bytes, when they are generated, are each placed on further parallel tracks adjacent to the information tracks. The system generates i and j pointer signals p p,,...,p,,+ where i represents the track position of the first error signal and j represents the track position of the second error signal. Expressed algebraically,
Each pointer signal is associated with a particular track so that the i and j error signals each designate a particular track, thus indicating which bytes of the multiple bytes are in error.
. Signals referred to as distance" signals d are generated where d, l j i m, which clearly can have values 1, 2,...,k l. The distance signals represent the distance between the i and j error signal bytes. Since the values of j-i which are k or k+l indicate an error in one of the check bytes, and since errors in the check bytes are handled without reference to the distance signals, the 'set of distance values is restricted to the set 1, 2, ...,kl that is, d, ,d ,...,d
Single track correction in the random mode is performed in the event of a non-zero syndrome whether or not there is a single pointer given. Proper correction is accomplished even if a false pointer is provided and there exist errors in a single byte which is not indicated or pointed to. This single track correction is essentially the same single track correction set forth in the above identified application Ser. No. 10,837. I
The encoder computes the check bytes C and C according to the relationships:
C I D EDT D 69 F 0 63...? wherein I is the identity element and T, F -----I" are distinct, non-zero elements of Galois Field (2), wherein the indicated multiplication and addition are the Galois Field defined operations, and wherein b is an integer 1, and k is an integer 2 k 2"" The decoder computes two expressions known as the syndromes, where D',,, D, ,...,D',,.,, C, C are the received message bytes which may have errors in up to two tracks i and j:
S 2 ID' GB TD GB 7 D' 6B...&T"' D' G9C' In the presence of error patterns e, and e; in tracks i and siai lbay th a? QQJI Y W Q These expressions can be solved for e, and e, to obtain:
.1t=S1. 1" )Ti( ii 7 and e,=(TJi G91) (T 5 698,). The expressions for e, and e, represent the error pattern in the groups of data or bytes i and j, respectively. The received message data and the error patterns along with various control signals can be properly combined to produce the correct data D ,I), The symbol refers to the corrected data.
The foregoing and other objects, features and advantages of the invention will be apparent from the following more particular description of a preferred embodiment of the invention, as illustrated in the accompanying drawings.
FIG. 1 shows a block diagram of a data handling system utilizing the present invention.
FIG. 2 is an abbreviated data processing flow diagram of a preferred form of the present invention.
FIG. 3 is a schematic diagram showing the organization of the check bit computers C and C FIG. 4 is a schematic diagram showing the organization of the syndrome computers S, and S FIG. 5 illustrates the geometric relationships of data and check bits of one error correcting code.
FIG. 6 is a schematic diagram showing the details of the pointer latch circuit of FIG. 2.
FIGS. 7a through 7e are schematic diagrams showing more details of the control signal generator of FIG. 2.
FIG. 8 shows the encoding matrix for the code represented in the check bit computer mechanization of FIG. 3.
FIG. 9 shows the decoding matrix for the code represented in the syndrome computer mechanization shown in FIG. 4.
FIG. 10 illustrates that FIGS. 10a, la-l and l0a-2 show more details of the mechanization of the error computer of FIG. 2.
FIGS. b and l0b-l show further details of the mechanization of the error computer of FIG. 2.
FIGS. 11 and 11a are a schematic diagram showing in more detail the error corrector circuits of FIG. 2.
Referring to FIG. I, data enters an encoder 1 through a channel 2. Encoder 1 generates a sent message which passes through channel 3 to a processor 4 which performs some operation on the message, for example, storing it and subsequently reactivating it, and then transcribes a received message which passes through channel 5 to decoder 6 which decodes the received message and emits recovered data, which passes through channel 7 to some further use. The operation of processor 4 may be imperfect and make occasional errors so that the received message in channel S is not necessarily identical with the sent message in channel 3. The encoder l and decoder 6 cooperate to emit recovered data at channel 7 having fewer errors than are made by the processor.
It will be appreciated by those skilled in the art that this invention can be applied to information handling systems of various capacities. The invention, will, therefore, be first described in algebraic terms which are applicable to any size system and subsequently in terms of a specific system. The symbolism used throughout the application is the standard Boolean notation where:
= EXCLUSlVE OR AND According to the invention, data is processed by the system in blocks consisting of k bytes, each byte having b bits of data. Here and throughout, b designates an integer 1 and k an integer 2 k 2". The values of b and k are to be considered invariant for a particular embodiment, but are variously chosen for embodiments of various capacities. A block of data will accordingly be designated D, D,, D v vhere Do represents the first byte in the block, D, the second byte, and so on to D which represents the kth and last byte. A representative byte of data will be designated D, with the subscript j assuming any integral value 0 5 j k-l. According to the invention, the encoder calculates from the block of data two check bytes, (designated C, and C each of b bits and appends the check bytes to the k data bytes to generate the sent message of k 2 bytes.
In order to describe the calculation of the check bytes, it is convenient to note that for bytes composed of b binary bits there are 2 distinct bytes possible and to regard each possible byte as an element of a Galois Field of 2 elements (or GF(2") The existence of GF(2 is assured for any value of b by general theorems of algebra. (See for example, W. Wesley Peterson: Error Correcting Codes, M.l.T. Press, 1961). The Galois Filed implies two operations conventionally designated addition with the corresponding zero element 0, and multiplication with corresponding identity element 1. The terms addition and "multiplication and related terms such as adder will be used in this sense throughout.
The rules of addition and multiplication of bytes are established by recognizing that the GF(2 of possible bytes is isomorphic with the GF(2") of polynomials with coefficients in GF(2) taken modulo an irreducible polynomial of degree b. At least one irreducible polynomial exists for any b. The field of such polynomials is a vector space of dimension b over GF(2). Addition of the elements in GF(2) is therefore accomplished by addition of corresponding bits. Addition is of course in GF(2) and thus equivalent to addition modulo 2. Multiplication in GF(2) can be thought of as defining a set of linear transformations in the corresponding vector space of dimension b.
The vector space is spanned by the column vectors:
(wherein the 0 and l are binary symbols), or more compactly expressed:
wherein a is a primitive element of GP (2 (i.e., every non-zero element of the field can be obtained by raising a to some power.) The transformation matrix corresponding to multiplication by element Q is given by catenation of the column vectors:
[TQ= gab-l Q l"'IQ I 1 Multiplication of the element R by the element 0 in GF (2") is thus equivalent to multiplication of the vector R by the matrix T where the vector and matrix components are in GF(2). (i.e., binary bits.) These operations will be illustrated below in connection with a preferred embodiment.
Returning now to the data handling system, according to the invention, the encoder calculates the check bytes according to the relationships:
C==ID0 DWMQFI d (5) where T, T ,...,T*" are distinct, non-zero elements of GF( 2). Since there are 2"-l such elements, the number of bytes in a block is limited to k 2. It is convenient to express the relationships by which C, and C are computed by an encoding matrix given the coefficients:
and the encoding calculation can be written symbolically:
C H5 D Employing the relationships developed above, the encoding matrix can be expressed in binary form by replacing each element of GF( 2) appearing in the encoding matrix by the corresponding binary multiplication matrix. The resulting form of the encoding matrix will give explicitly the operations to be performed by a binary-based computer to calculate the check bytes.
Turning now to the decoding, the decoder receives a received message:
of k 2 bytes (the symbol refers to the received message) and computes a two-byte syndrome (8,, 8,) according to the relationships:
l 0 1 2 k-i i S [D 63 T D e37 D',...6BT"" D,, ,BC 9 described by a decoding matrix with k 2 columns and 2 rows:
H I I I I I 0 ITT ...T,, ,9I (10 where 0 is the zero element in GF(2). The calculation of the syndrome can be indicated symbolically:
D( The decoding matrix H can of course be expressed explicitly in binary form by substituting the binary multiplication matrices.
If I, T, T ,...,T"' are the non-zero elements of GF( 2') then to each such element T, there is an inverse element T" such that TT" I which is the identity element.
The pointer signals are derived from the system in which the error correction is taking place. For example, each group of data may give rise to a parity check signal which is an indication of the byte of data associated therewith being in error. Of course, a parity check bit signal is produced for each byte of data or group of data, thereby indicating on an individual basis the byte or bytes of data in error. Of course, there are other means of generating pointer" signals such as in set forth in corresponding U.S. patent application Ser. No. 40,836, filed May 26, 1970, entitled Enhanced Error Detection and Correction For Data Systems now U.S. Pat. No. 3,639,900. In this application, the 7 quality of the record read back operations on a real time basis is used as pointers to possible error conditions. The significance of the syndrome 8,, 8, together with the error pointers P P,,...,P,, can be understood from a consideration of the following operations which can be readily derived from the encoding and decoding relationships on the supposition that at least all but the two bytes whose pointers are turned on have been correctly transcribed, or that at least all but one byte of the message have been correctly transcribed in the presence of no pointers turned on or one pointer turned on. If syndromes S, 0 and S 0, then no error exists in the received message, regardless of whether or not two pointers are turned on. If no pointer or a single pointer is turned on and syndrome S, 0 and S is not equal to 0, then there is an error C',. If no pointer of one pointer is turned on and syndrome S, is not equal to 0 and S 0,, then there is an error in C',. If no pointer is turned on or if one pointer is one and S, is not equal to 0 and S, is not equal to 0, then an error of magnitude S, exists in data byte D, if, and only if, S, T" S,,. Under these conditions, the decoder computes for each data byte a criterion from the equation 8,, T' S, 69S, and generates the recovered data:
D, D, (if S, is not equal to 0) D, D,Q3S, (if 8,, equals 0) If the two error pointers P, and P, corresponding to data bytes D, and D, are turned on, then an error of a magnitude S, S, 69(1 69 T (T'' S, Q 8,) e, exists in data byte D, and an error of magnitude S 4 1 G) T"") (T S, 98,) e, exists in data byte D The decoder generates data according to:
In particular, it should be recognized that the two data bytes D, and D, are recovered correctly even if multiple bits within each byte are in error.
If two pointers, one in the data portion P, corresponding to data D,, and the P,, corresponding to C, are turned on, then an error of magnitude:
exits in data byte D, so that D, D',69e, represents the corrected byte. It should be noted that the check byte C, need not be corrected. If two pointers, one equal to P, corresponding to byte D, of the data and the other equal P corresponding to C, are turned on, then an error of magnitude S S, e, exists in byte D, so that D, D, 9e, represents the corrected byte D,.
The apparatus for providing the error correction as previously set forth is shown in block form in the diagram of FIG. 2. The coded data consisting of data bytes and check bytes D' D,,...,D,, C,, C, together with error pointers P P,,...,P which serve as inputs to the system decoder 6. The data bytes as well as the check byte C, are inputted to the S, syndrome computer 10 where the syndrome byte S, is computed according to the relationship:
The data bytes and the second check byte C, are fed into the S computer 12 where the second syndrome byte 8, is computed according to the relationship:
The syndrome signals S, and S actually consist of b signals since there is an actual syndrome signal generated for each check bit in the C, and C bytes. The syndrome signals S, and 8, pass in parallel channels 14,16 to the error computer 18 and control signal generator 20. The error computer 18 also receives control signals I I,,...,l,, and S, and from the syndrome bytes S, and S computes a byte S, according to the relationship:
if, and only if, I, 1. Otherwise, S is equal to S,. If S, is equal to 1 indicating signal byte correction, the error computer 18 also computes a set of control signals 1,,
7 where O s i s k-l such that I,-=1, if and only if $169 'I' S, is equal to 0. These I signals are sent to the error corrector 22 after being ORed with the I signals generated by the control signal generator 20 in OR circuits 24. The error computer 18 also receives control signals d d,,...,d and control signal J,,. The error computer computes the error byte e, according to the relationship:
if, and only if, d 1, otherwise S, 8;, if, and only if, Jg= 1. Otherwise, S, if j K 1 (case when none of 1,, J,,...,J,, l The 8, output from the error computer 18 is also supplied to a modulo 2 adder 26 which has as the other input the syndrome byte 8,. The output of the modulo 2 adder circuit is S, e according to the relation S 8 69 S e, which is fed to the error corrector 22. The error corrector 22 also receives the data bytes D' D',,...,D',, as well as the beforementioned control signals I I,,...,I and J J,,...,J These inputs and the bytes e and e, are utilized to produce the corrected data D I ),,...,D according to the relations:
Po oGB o i The control signal generator 20 receives the syndrome bytes 8 and S: from the respective S, and S, computer 10,12. In addition, pointer signals P P,,...,D are received from the pointer latch circuits 28. From these inputs, the control signal generator 20 generates the following signals:
1. NP I if, and only if, exactly one pointer is turned on;
2. NP I if, and only if, exactly two pointers are on;
3. N I if, and only if, zero or one pointers are on;
4. N 1 if, and only if, three or more pointers are on;
5. S I if, and only if, both syndrome bytes 8, and S; are 0;
6. S =l if, and only if, N =1 and S 0;
7. I signals giving locations of the first pointer if, and only if, 8;, =0.
8. J signals giving the location of the second pointer if, and only if, S,= 0; and
9. d signals giving the value of J-I.
l0. 8,, I if, and only it, exactly I of the syndrome bytes is non-zero;
I I. S,=S ORS S,,;
S,= I if, and only if, DATA is good;
12. N,,= I if, and only ifN I or ifS l and S =0 and none of the I signals are active.
The distance signals d d ,...,d and the I or first pointer signals I I ,...,I and the S, signal are utilized as inputs to the error computer 18 for the computation of S The error computer also computes a set of control signals if S, is equal to I. These control signals I, are generated where 0 s I s k-l such that I, is equal to I, if, and only if, S, QBT-S is equal to 0. These I signals l sh. are sent from the error computer 18 to OR circuits 24 where they are ORed with the I signals I I ,...,I from the control signal generator 20. These T signals are also sent to the control signal generator 20 indicating by the presence of one and only one I signal that single byte correction can be done. The resulting output of the OR circuits 24 should be I I ,...,I, which are utilized as the I signals input to the error corrector 22. the control signal generator 20 also produces the J signals J J ,...,J which are connected as inputs to the error corrector 22 designating the location of the second byte in error. I
The pointer latch circuits 28 receive as inputs pointer signals P P ,...,P which are essentially error detecting signals such as parity signals, one from each track or byte in the block of data. These pointer signals set their respective latch to its 1 condition for each byte which has an error. The condition of each latch is emitted by the pointer latch circuits as signals (called pointer signals) P P,,...',P which serve as the pointer signals connected to the control signal generator 20.
The pointer signals P P,,...,P are a set of single bit signals each of which are either 0 or I. P, being equal to 1 means that track I has detected errors and P 0 indicates that track I does not have detected errors. The I and .I signals are derived from the pointer signals. The I signals and J signals which serve as inputs to the error connector are derived as follows:
where I, 1, indicates that the first track in error is track i and where J,= 1, indicates that the second track in error is track j. In the above equations, the F, indicates the inverse of the function and the mathematical step indicated is the AND function.
The previously mentioned distance signals d which indicate the distance between the J and I bytes in error, are derived from the I and J signals as follows:
k-i 0 k-r where d, 1, indicates that the integer distance between the 2' signal and the j signal is i. It should be noted that in the determination of d the signal I J k is not used. I, I will be treated as a special case. It should also be noted that none of the i signals, j signals or d signals contain a J signal. This will also be treated as a special case.
In operation, where two of the pointers indicate separate bytes in error, then one I, one J and one d; will be turned on by indicating a l. The situation where only one P, indicates a l for a byte in error will be handled as a special case. The value I is assumed in the two pointer case when none of the other .Ifs equal 1.
The operation of the invention can best be seen by consideration of a number of different examples of error situations. The first example is the situation where two bytes in the block of data contain errors in the data portion D,,, D,,...,D',, of the message and two pointers are obtained indicating the bytes in error. Assuming that the bytes i and j are indicated by the pointer signals to be in error where S i j k-l. Under these conditions, the control signal generator 20 will produce signals 1, l and J, l and accordingly, d, 1 will be produced. Assuming that the two bytes in error and that the other bytes are transcribed properly, then the syndrome bytes S, and S, which are generated from the S, and 8, computers 10,12, respectively, will not both equal 0 since the two bytes are in error. Syndrome S, is algebraically equal to:
S, =e,g9e, (12) where e, represents the error pattern in byte i and 2, represents the error pattern in byte j. The second syndrome byte 8, is algebraically equal to:
Te,@Pe,=S (13) The above-noted equations (12) and (13) can be solved for e, and e,. Multiplying equation 12) by T we get: T S =e,@T e; (14) Adding equation (12) to equation (14) we get: S T 2EB l J 15) Multiply equation l 5) by (T 691 we get:
4=( 69 3=o (16) The byte S, is algebraically equivalent to e, It will be appreciated that the above-identified equations or steps are performed by the error computer 18. The output S, e, is utilized as one of the inputs to the modulo 2 adder circuit 26. The other input to the modulo 2 adder circuit is S, which as previously mentioned, S, e,-g9e, Thus, the modulo 2 adder circuit 26 with output S is performing the function S =S,EBS =e, which is algebraically equivalent to e e lfie which is equivalent to 2,. The S5 and 8., bytes of data serve as inputs to the error corrector 22. The error corrector 22 EXCLUSIVE ORs the received data with .the derived error pattern bytes e,- and e,- to produce the correct data D, and 15,-. The second example is similar to the first in that the pointers P P,,...,P,, indicate that two bytes are in error. However, one of the bytes in error is in the data portion D' ,...,D' and the other byte in error is the first check byte C', Assume that the data byte D, has the error pattern e, and that the check byte C, contains the error pattern e,. In this case, the control signal I, l and J, 1. It should be noted that 1,, l is one of the special situations mentioned previously and in this case, none of the distance signals d, is equal to l. The S, syndrome computer 10 producesthe syndrome byte S, which has the algebraic value e,6Be The S computer 12 produces the second syndrome byte S which has the algebraic value T e,. The error computer 18 produces the syndrome byte 3, 7" S 998, which has the algebraic value e According to its definition for the case of J, l, the output of the error computer 18 is S, S, which is equal to e,. As in example (12) given above, the modulo 2 adder circuit has as inputs S and S, and produces as an output the byte 8, S ,6; S, where S, e, e, and S, e,. Thus, S, is equal to e, e, which is equal to e,. The error corrector 22 receives S e, and the control signal I, and produces the correct data byte I)| D|(-})|.
The third example is the situation where two bytes are indicated as being in error by pointers P P,,...,P,, The one byte being in the data portion D ,...,D of the message, and the second byte being the second check byte C Thus, the message can be considered as having error pattern 2, and C having error pattern e,. In this case, the control signal I, l and none of the j signals-1,, J ,...,J are equal to 1. Accordingly, none of the distance signals d,, d ,...,d,, are equal to l. The syndrome byte S, generated by the S, computer 10 has the algebraic value e,. The second syndrome byte S, which is generated by the 8, computer 12 has the algebraic value T e, @e,. As mentioned previously, J k l is a special case and the error computer 18 produces as an output S, 0. Accordingly, the modulo 2 adder 26 receives as inputs S, e, and S, 0. This circuit produces S, e, which is utilized by the error corrector to produce 15, @691 which is the correct data byte.
The fourth example is the case where one of the syndromes S, or S, is not 0, and either 1 or 0 pointers indicates either 1 or no bytes in error. The signal S, 1 implies that one of the check bytes has the error and hence the data is good. The combination of signals N S l, which is equal to 8,, controls the single byte correction. In this example, one of the data bytes D ,...,D,, contains the error. Assuming D, has the error pattern e,. The S, computer 10 computes the syndrome byte S, which has the algebraic value e,. The S, computer 12 computes the syndrome 8, which has the algebraic value T e,- =S Now, under control of signal S =1, signals T 8,358, are tested for the condition T" S, @S, 0. This equation will equal 0 for one and only one value of i. If it does not become zero, then uncorrectable multiple errors exist. The particular value of i for which this will be true will be 1,, since T S 9 S, T (T e,) 63s, which equals e,@e, which equals 0. The S, output is defined to be 0. I, is then used as the correction pointer in the error corrector 22 circuits to indicate which data byte Di should be EXCLUSIVE ORed with S S 658., e, to obtain the corrected data D, D,6Be,. In other words if the error pattern or error byte is EXCLUSIVE ORed with the received data byte that is in error, the original correct data is obtained. These I signals are also sent to the control signal generator 20 to make the decision as to whether or not uncorrectable errors exist.
The foregoing examples take care of all the situations which can occur that can provide correction of the data. In the event that more than two pointers indicate r q i I15 625, .t x.r..,b9m 0 n ins e y e correction, then the control signal generator 20 will essentially put out a signal N, indicating that the data is in error and cannot be corrected.
Referring to FIG. 5, there is shown a chart indicating the geometric relationship between the data tracks and check bit tracks. The boxes labelled X are the data track cells or bit positions with the subscripts indicating the geometric location. The first subscript digit indicates the track, while the second subscript digit indicates the location of the bit in the track. Note that the byte is illustrated as being 4 bits long. Therefore, bit X01 is track 0 cell position 1. In a similar manner, the check bits C are geometrically identified. The syndrome S, and S, from the error correction code, include an array of cells which may contain two errors. It