EP1589665A1

Error correction decoder comprising an erasure correcting Reed-Solomon decoder and a CRC decoder

Abstract

An error correction decoder (112) for decoding data of a hard drive, tape drive or the like which is protected by a product code (202) of an inner CRC and an outer Reed-Solomon code. The error correction decoder comprises a Reed-Solomon decoder (400) including as many cells (402) as redundancy symbols (206) in a Reed-Solomon codeword (210). In a syndrome generation step (600), each cell generates a partial syndrome. In a error value determination step (800), each cell generates a partial error value based on a line of the inverse of an error location matrix obtained from error locations detected by the CRC. Each cell processes in parallel data from a plurality of Reed-Solomon codewords.

EP1589665A1, drawing sheet 1
Sheet 1 of 11

Term

Term ended

Projected expiry passed 18 February 2025, 1.6 years ago.

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

44 claims: 3 independent, 41 dependent

  1. 1
    A decoder to correct errors in data, comprising:a plurality of cells, each cell configured to generate a partial syndrome based on data blocks and one or more redundancy blocks, and to generate a partial error value based on the partial syndrome and a portion of an inverse of an error location matrix that identifies locations of any data blocks having errors;anda summation logic connected to the plurality of cells, the summation logic configured to generate an error value based on the partial error values generated by the plurality of cells, wherein the error value corrects errors in one of the data blocks.
  2. 22
    The decoder of any one of claims 1 to 21, wherein the decoder is a component of a data storage device, and wherein the data blocks and one or more redundancy blocks are retrieved from a storage medium and held in a data buffer in the data storage device.
  3. 24
    A method of correcting errors in data, comprising:receiving data blocks and one or more redundancy blocks;generating an inverse of an error location matrix with locations of any received data blocks with errors;generating a plurality of partial syndromes in a plurality of cells of a decoder, wherein each one of the plurality of partial syndromes are generated in each one of the plurality of cells based on the received data blocks and one or more redundancy blocks;generating a plurality of partial error values in the plurality of cells, wherein each one of the plurality of partial error values are generated in each one of the plurality of cells based on a partial syndrome and a portion of the inverse of the error location matrix;andgenerating an error value based on the plurality of partial error values generated by the plurality of cells.