EP0229698A2

Decoder for product codes and method of decoding such codes.

Abstract

A product code arranged in a rectangular array is formed of a data portion comprising data bytes (D0 to D523), an error detecting code (EDC), and parity portions (C1 and C2). A generator for the product code includes a RAM for storing the data and parity codes. The error detecting code (EDC) is generated at the same time as the parity code, thereby reducing the processing time. The error detecting code (EDC) is processed with the data to produce the parity code of the corresponding data block. A decoder for the code corrects errors on the basis of the parity codes but, upon receipt of a data request signal, error correction is interrupted and the required data is output as long as no error is detected on the basis of the error detecting code (EDC).

EP0229698A2, drawing sheet 1
Sheet 1 of 4

Term

Term ended

Projected expiry passed 9 January 2007, 19.7 years ago.

  1. Priority
  2. Filed
  3. Published
  4. Projected expiry
  5. Today

14 claims: 6 independent, 8 dependent

  1. 1
    A generator for generating error correcting codes (C1) for correcting possible errors in a predetermined quantity of data associated with an error detecting code (EDC) for detecting the possible errors in said predetermined quantity of data, the generator being characterised by:(a) data block supply means (1) for segmenting said predetermined quantity of data into data blocks (D0-D47..D48-D95..) of predetermined data length and for sequentially supplying said data blocks (D0-D47..D48-D95..);(b) error correcting code generating means (2) for generating a separate error correcting code (C1) corresponding to each of said data blocks (D0-D47..D48-D95..);(c) last data detection means (5) for detecting the last data block (D480-D523) supplied from said data block supply means (1);(d) error detecting code generating means (3) sequentially supplied with each of said data blocks (D0-D47..D48-D95..) for generating a unique error detecting code (EDC) which is formed from said predetermined quantity of data, in response to an output signal from said last data detection means (5);and(e) means (6) for supplying the error detecting code (EDC) derived from said error detecting code generating means (3) and said last data block (D480-D523) to said error correcting code generating means (2), said error detecting code (EDC) being added to said last data block (D480-D523) thereby to form the predetermined data length which constitutes a single one of said data blocks.
  2. 5
    A generator according to any one of the preceding claims, wherein said predetermined quantity of data is 512 bytes of data.
  3. 6
    A decoder for decoding a product code which is formed from a predetermined quantity of data, an error correcting code (C.) for correcting possible errors in said predetermined quantity of data, and an error detecting code (EDC) for detecting possible errors in said predetermined quantity of data, said decoder being characterised by:(a) error correcting means (14) for correcting said possible errors in said predetermined quantity of data and in said error detecting code (EDC) on the basis of said product code;(b) means (13, 19) for ending the error correction processing of said possible errors by said error correcting means (14) in response to an external data request signal (Rx);(c) error detecting means (15) operable to receive the predetermined quantity of error corrected data from said error correcting means (14) in response to said data request signal (Rx) and to check for possible errors in said predetermined quantity of error corrected data by using said error detecting code (EDC);and(d) means (16) for outputting said predetermined quantity of error checked data when no errors are detected by said error detecting means (15).
  4. 12
    A method of generating an error correcting code for correcting possible errors in a predetermined quantity of data assocated with an error detecting code for detecting the possible errors in said predetermined quantity of data, the method being characterised by the steps of:(a) segmenting said predetermined quantity of data into respective blocks (D0-D47..D48-D95..) of a predetermined data length;(b) sequentially supplying said data blocks (D0-D47..D48-D95..);(c) sequentially generating an error correcting code (C1) corresponding to each of said data blocks (D0-D47..D48-D95..);(d) receiving said data blocks (D0-D47..D48-D95..) sequentially and generating an error detecting code (EDC) in response to the supply of a last data block D480-D523);and(e) generating an error correcting code (C1) corresponding to said last data block (D480-D523) and said error detecting code (EDC), including adding the data lengths of said last data block (D480-D523) and said error detecting code (EDC) thereby to form a data length of one block.
  5. 13
    A method of decoding a product code which is generated for correcting possible errors in a predetermined quantity of data associated with an error detecting code (EDC) for detecting possible errors in said predetermined quantity of data, the method being characterised by the steps of:(a) correcting (steps 1 - 3, 10, 11) said possible errors in said predetermined quantity of data and said error detecting code (EDC) on the basis of said product code;(b) ending (step 5) the error correction process in response to an external data request signal (Rx);(c) error-checking (steps 6, 7) upon receipt of said data request signal (Rx) by using said error detecting code (EDC) associated with said predetermined quantity of error corrected data;and(d) outputting (step 8) said predetermined quantity of error corrected data when no error is detected.
  6. 14
    Apparatus for generating a product code, characterised by:(a) means (1) for receiving a predetermined quantity of data;(b) means (3) for generating an error detecting code (EDC) for detecting possible errors in said predetermined quantity of data. said error detecting code (EDC) being generated from said predetermined quantity of data and added to it so as to form a rectangular array of data;(c) means (2) for generating a series of separate first error correcting codes (C1) from corresponding blocks (D0-D47..D48-D95..) of data in each of the row directions of said rectangular array and adding each of said first error correcting codes (C1) to its corresponding block of data in each row direction;and(d) means for generating a series of separate second error correcting codes (C2) from corresponding blocks (D0-D480..D47-D479..) of data in each of the column directions of said rectangular array and adding each of said second error correcting codes (C2) to its corresponding block of data in each column direction.