Identifying uncorrectable codewords in a Reed-Solomon decoder for errors and erasures
AssigneeHewlett-Packard Development Company, L.P.
InventorsDavid Murray Banks, Jonathan Jedwab, James A Davis
Life of this patent
Estimating the term…
Abstract
A method and apparatus for identifying uncorrectable Reed-Solomon codewords in the presence of Reed-Solomon codewords which may have errors and erasures and otherwise be correctable.
Claims9
A method of identifying uncorrectable codewords in a Reed-Solomon decoder handling errors and erasures, the Reed-Solomon decoder including at least six hardware logic functions, the method comprising the steps of:
- indicating an uncorrectable codeword when any one or more of the following conditions (a) to (f) is satisfied:
- (a) no solution to key equation σ(x)T(x)≡(x)modx2T is found by a first one of said at least six hardware logic functions;
- (b) deg σ(x)≠nerrors is determined by a second one of said at least six hardware logic functions;
- (c) error and erasure locations coincide is determined by a third one of said at least six hardware logic functions;
- (d) deg ω(x)≧nerrors+nerasures is determined by a forth one of said at least six hardware logic functions;
- (e) nerasures+2*nerrors>2T is determined by a fifth one of said at least six hardware logic functions and
- (f) an error location has a zero correction magnitude is determined by a sixth one of said at least six hardware logic functions;
- where nerrors and nerasures represent, respectively, a number of errors with reference to an error locator polynomial σ(x) and a number of erasures with reference to an erasure locator polynomial Λ(x), 2T is the strength of a Reed-Solomon code, ω(x) is an errata evaluator polynomial, and T(x) is a modified syndrome polynomial.
A detector circuit arranged to identify an uncorrectable codeword, for use in a Reed-Solomon decoder handling errors and erasures, the circuit comprising:
- a logic unit arranged to identify each condition:
- (a) no solution to key equation σ(x)T(x)≡(x)modx2T;
- (b) deg σ(x)≠nerrors;
- (c) error and erasure locations coincide;
- (d) degω(x) ≧nerrors+nerasures;
- (e) nerasures+2*nerrors>2T;
- and
- (f) an error location has a zero correction magnitude;
- where nerrors and nerasures represents, respectively, a number of errors and erasures with reference to an error locator polynomial σ(x) and an erasure locator polynomial Λ(x), 2T is the strength of a Reed-Solomon code, ω(x) is an errata evaluator polynomial, and T(x) is a modified syndrome polynomial;
- and
- an indicator unit arranged to indicate an uncorrectable codeword, responsive to the logic unit.
A method of identifying uncorrectable Reed-Solomon codewords in a group Reed-Solomon codewords being passed to a Reed-Solomon decoder, the Reed-Solomon decoder including a polynomial generation unit, a polynomial evaluation unit, an uncorrectable error detector and an error correction block, the method comprising:
- generating polynomial data in the polynomial generation unit representing locations and magnitudes of errors and erasure in a Reed-Solomon codeword passed to the Reed-Solomon decoder,
- performing a Chien search on said polynomial data in the polynomial evaluation unit and solving Forney's equations to determine correction locations and magnitudes to be applied to the Reed-Solomon codeword passed to the Reed-Solomon decoder, and
- detecting, in the uncorrectable error detector, that the Reed-Solomon codeword passed to the Reed-Solomon decoder is an uncorrectable codeword when any one or more of the following conditions (a) to (f) is satisfied:
- (a) no solution to key equation σ(x)T(x)≡(x)modx2T is found by a first logic means;
- (b) deg σ(x)≠nerrors is determined by a second logic means;
- (c) error and erasure locations coincide is determined by a third logic means;
- (d) deg ω(x)≧nerrors+nerasures is determined by a forth logic means;
- (e) nerasures+2*nerrors>2T is determined by a fifth logic means and
- (f) an error location has a zero correction magnitude is determined by a sixth logic means;
- where nerrors and nerasures represent, respectively, a number of errors with reference to an error locator polynomial σ(x) and a number of erasures with reference to an erasure locator polynomial Λ(x), 2T is the strength of a Reed-Solomon code, ω(x) is an errata evaluator polynomial, and T(x) is a modified syndrome polynomial;
- and
- if the Reed-Solomon codeword passed to the Reed-Solomon decoder is not an uncorrectable codeword, then performing error correction on the Reed-Solomon codeword passed to the Reed-Solomon decoder using the correction locations and magnitudes determined by solving Forney's equations.
Dependencies are inferred from the claim text.