Method and apparatus for providing for two bits-error detection and correction
AssigneeNCR Canada Ltd - NCR Canada Ltee
InventorsSimon Kustedjo, Kuen H. Mak
Life of this patent
Estimating the term…
Abstract
A method and apparatus for detecting errors in a data word and for correcting up to two error bits therein through using Bose-Chaudhuri-Hocquenghem (BCH) codes. A Galois field table is arranged in an anti-log and log format to facilitate the calculation of certain values such as ##EQU1## associated with the BCH codes.
Claims16
A circuit for use with data elements, with each data element including a data message and associated BCH codes, comprising:
- first means for generating from said data elements, the S.sub.1, S.sub.2 and S.sub.3 values associated with said BCH codes;
- second means including a processing means for calculating the quotient of ##EQU18## wherein S.sub.3 is considered as .alpha..sup.a and S.sub.1 is considered as .alpha..sup.b ;
- said second means including a Galois field table being arranged in an anti-log and log format to enable said processing means to calculate said quotient by subtracting the log of .alpha..sup.b obtained from said Galois field table from the log of .alpha..sup.a obtained from said Galois field table to produce a resulting log which is used to obtain a resulting anti-log value A from said Galois field table;
- and
- third means including said processing means for receiving said S.sub.1, S.sub.2, S.sub.3 values and said anti-log value A and also for determining therefrom the locations of a predetermined number of errors (if any) in a said data element.
An apparatus comprising:
- means for generating data messages whereby each data message is comprised of a plurality of quintuples, with said quintuples having binary bit patterns, wherein a binary bit pattern having more than two predetermined consecutive binary bits of a first kind within a quintuple is considered an error;
- means for generating BCH codes associated with said data messages;
- means for inserting binary bits of a second kind at predetermined locations in said BCH codes to produce pseudo BCH codes for each said data message so as to make said pseudo BCH codes consistent with said quintuples whereby a bit pattern having more than two consecutive binary bits of said first kind within a quintuple of said pseudo BCH codes is indicative of an error when said pseudo BCH codes are subsequently read;
- means for reading said data messages and associated pseudo BCH codes;
- and
- means for checking on the accuracy of the data messages and associated pseudo BCH codes;
- said checking means comprising:
- first means including a processor means for checking said pseudo BCH codes to determine whether an error has occurred in the reading of said data messages and pseudo BCH codes as evidenced by finding more than two consecutive binary bits of said first kind within a quintuple of said pseudo BCH codes;
- second means including said processor means for eliminating said binary bits of said second kind from said pseudo BCH codes to obtain said BCH codes for the associated data messages to produce data elements, with each data element including a said data message and its associated BCH codes;
- third means for generating from said data elements, the S.sub.1, S.sub.2 and S.sub.3 values associated with said BCH codes;
- fourth means including said processing means for calculating the quotient of ##EQU19## wherein S.sub.3 is considered as .alpha..sup.a and S.sub.1 is considered as .alpha..sup.b ;
- said fourth means including a Galois field table being arranged in an anti-log and log format to enable said processing means to calculate said quotient by subtracting the log of .alpha..sup.b obtained from said Galois field table from the log of .alpha..sup.a obtained from said Galois field table to produce a resulting log which is used to obtain a resulting anti-log value A from said Galois field table;
- and
- fifth means including said processing means for receiving said S.sub.1, S.sub.2, S.sub.3 values and said anti-log value A and also for determining therefrom the locations of a predetermined number of errors (if any) in a said data element.
A method of detecting errors in a data element including a data message and associated BCH codes, comprising:
- (a) generating from said data elements the S.sub.1, S.sub.2 and S.sub.3 values associated with said BCH codes;
- (b) calculating the quotient of ##EQU20## (wherein S.sub.3 is considered as .alpha..sup.a and S.sub.1 is considered as .alpha..sup.b) by using a Galois field table which is arranged in an anti-log and log format to enable a processing means to calculate said quotient by subtracting the log of .alpha..sup.b obtained from said Galois field table from the log of .alpha..sup.a obtained from said Galois field table to produce a resulting log which is used to obtain a resulting anti-log value A from said Galois field table;
- determining the number of errors within a data element by using the associated said S.sub.1, S.sub.2 and S.sub.3 values;
- and
- using the S.sub.1, S.sub.2, S.sub.3 values and the anti-log value A for determining therefrom the locations of a predetermined number of errors in a said data element.
A method of detecting errors in a data element including a data message and associated pseudo BCH codes wherein each said data message is comprised of a plurality of quintuples, with said quintuples having binary patterns wherein a binary pattern having more than two identical consecutive binary bits of a first kind within a quintuple is considered an error;
- said pseudo BCH codes being BCH codes which have been modified by the addition of binary bits of a second kind at predetermined locations in said BCH codes so as to make the format of said pseudo BCH codes correspond to said quintuples;
- said method comprising:
- examining each said data element to determine whether or not more than two identical consecutive bits of said first kind are found within a quintuple in said data message or the associated pseudo BCH codes;
- eliminating said binary bits of said second kind from said pseudo BCH codes to produce said BCH codes for the associated data message;
- generating from said data message and associated BCH codes for said data elements the S.sub.1, S.sub.2 and S.sub.3 values associated with said BCH codes;
- calculating the quotient of ##EQU21## (wherein S.sub.3 is considered as .alpha..sup.a and S.sub.1 is considered as .alpha..sup.b) by using a Galois field table which is arranged in an anti-log and log format to enable a processing means to calculate said quotient by subtracting the log of .alpha..sup.b obtained from said Galois field table from the log of .alpha..sup.a obtained from said Galois field table to produce a resulting log which is used to obtain a resulting anti-log value A from said Galois field table;
- determining the number of errors within a data element by using the associated said S.sub.1, S.sub.2 and S.sub.3 values;
- and
- using the S.sub.1, S.sub.2, S.sub.3 values and the anti-log value A for determining therefrom the locations of a predetermined number of errors in a said data element.
Dependencies are inferred from the claim text.