IP Library Granted Patent US 7,694,208
Granted Patent B2
US 7,694,208 · App. 11/313,438 · Granted Apr 6, 2010

Error correction algorithm using interleaved parity check and Reed-Solomon code

View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 7,694,208
App. No.
11/313,438
Granted
Apr 6, 2010
Kind
B2
Abstract

Methods and apparatuses for correcting errors in a data stream are described herein. In one aspect, the error correction process is operable to correct errors in at least two separate types of data streams, each of which utilizes a distinct error correction scheme. The error correction process utilizes Reed-Solomon code and Error Detection Code (EDC) in combination for error correction. The process comprises using a Reed-Solomon code to identify errors in a plurality of data blocks and attempting to correct the errors. An EDC map is then generated, wherein the EDC map identifies the location of the errors within the corresponding data blocks which includes errors that are not corrected by the Reed-Solomon code.

Claims (50)

1. An error correction device operable to receive a stream of encoded data, which includes a plurality of error detection codes (EDCs), the error correction device comprising:

a decoder operable to use the plurality of EDCs to detect errors in a first dimension of a two dimensional data array derived from the stream of encoded data, and use a Reed-Solomon code to correct codewords in a second dimension of the two dimensional data array, wherein the decoder is further operable to map codewords from the Reed-Solomon code to corresponding bits within at least one of the EDCs, wherein the decoder is operable to generate an EDC map to correlate the codewords from the Reed-Solomon code to EDC residuals, wherein the EDC map consists of binary ones for the bits within the EDC residual that are affected by a changing symbol within the Reed-Solomon codeword, and binary zeros in all the other bits.

2. The error correction device according to claim 1 , wherein a symbol size of the Reed-Solomon code is smaller than that of at least one of the EDCs.

3. The error correction device according to claim 2 , wherein the data storage medium is selected from a group consisting of optical disk, magnetic disk, optical tape, and magnetic tape.

4. The error correction device according to claim 1 , wherein the error correction device is configured as a part of a controller, and the controller is coupled to a transducer for detecting data recorded on a data storage medium.

5. The error correction device according to claim 4 , wherein the transducer comprises a magnetic tape drive head, and the data storage medium comprises a magnetic tape.

6. The error correction device according to claim 1 , wherein at least one of the EDCs is described by a primitive polynomial having a form g(x)=x n +1, where n is the number of bits within an EDC symbol.

7. The error correction device according to claim 6 , wherein a generator polynomial of the EDC has a form G(X)=X+α s wherein α is a root of the primitive polynomial and s is any integer between 0 and n−1.

8. The error correction device according to claim 1 , wherein the EDC map is normalized by performing a cyclic bit-rotation or other mapping operation, such that the bits within a bit-mask directly map to corresponding bits within the EDC residual.

9. The error correction device according to claim 8 , wherein two or more EDC maps are generated and a bit-wise logical OR of all the EDC maps is used for determining the bits of the EDC residual affected by all the notable Reed-Solomon codewords.

10. The error correction device according to claim 8 , wherein two or more EDC maps are generated and bit-wise logical AND and OR operations are used within the EDC maps to determine whether two or more Reed-Solomon codewords could affect the same bits within the EDC residual.

11. The error correction device according to claim 1 , wherein the decoder is operable to use an EDC map, and is further operable to determine an error pattern for a notable Reed-Solomon codeword deemed either non-correctable or unreliably corrected.

12. The error correction device according to claim 1 , wherein a second EDC from the plurality of EDCs is used exclusively for error detection and can determine whether corrections from a first EDC from the plurality of EDCs are reliable.

13. The error correction device according to claim 12 , wherein the second EDC comprises a cyclic redundancy check (CRC).

14. The error correction device according to claim 12 , wherein the second EDC comprises a Reed-Solomon code.

15. A method of data error correction comprising:

using a Reed-Solomon code to identify errors in a plurality of data blocks and attempt to correct the errors;

using cyclic redundancy check to determine whether there are errors in any of the data blocks; and

using an error detection code (EDC) in each data block to correct errors in the data block which are not corrected by the Reed-Solomon code, wherein using an EDC in each data block to correct errors further comprises generating an EDC map, wherein the EDC map identifies the location of the errors within the corresponding data blocks which includes errors that are not corrected by the Reed-Solomon code, wherein generating an EDC map comprises:

creating a set of EDC Maps for each notable Reed-Solomon codeword, the EDC map consisting of binary ones for the bits within the EDC residual that might be are affected by a changing symbol within the Reed-Solomon codeword, and binary zeros in all the other bits; and

normalizing the EDC Maps by performing a mapping operation, such that the bits within the bit-mask directly map to corresponding bits within the EDC residual.

16. The method according to claim 15 , wherein the mapping operation comprises a cyclic bit-rotation.

17. The method according to claim 15 , wherein at least one of the EDC is described by a primitive polynomial having a form g(x)=x n +1, where n is the number of bits within an EDC symbol.

18. The method according to claim 17 , wherein a generator polynomial of the EDC has a form G(X)=X+α s where α is a root of the primitive polynomial and s is any integer between 0 and n−1.

19. A tape drive operable to perform the method according to claim 15 .

20. A magnetic tape drive comprising:

a controller operable to use a Reed-Solomon code to identify errors in a plurality of data blocks and attempt to correct the errors, use cyclic redundancy check to determine whether there are errors in any of the data blocks, and use EDC in each data block to correct errors in the data block which are not corrected by the Reed-Solomon code,

wherein the controller is further operable to generate an EDC map that maps codewords from the Reed-Solomon code to corresponding bits within at least one EDC, wherein the controller is operable to use the EDC map to identify the location of the at least one error within the corresponding data block,

wherein the at least one error is not corrected by the Reed-Solomon code, and the controller is further operable to use the EDC map to correct the at least one error.

21. An error correction device operable to receive a stream of encoded data, which includes a plurality of error detection codes (EDCs), the error correction device comprising:

a decoder operable to use the plurality of EDCs to detect errors in a first dimension of a two dimensional data array derived from the stream of encoded data, and use a Reed-Solomon code to correct codewords in a second dimension of the two dimensional data array, wherein the decoder is further operable to map codewords from the Reed-Solomon code to corresponding bits within at least one of the EDCs,

wherein at least one of the EDCs is described by a primitive polynomial having a form g(x)=x n +1, where n is the number of bits within an EDC symbol.

22. The error correction device according to claim 21 , wherein a generator polynomial of the EDC has a form G(X)=X+α s wherein α is a root of the primitive polynomial and s is any integer between 0 and n−1.

23. An error correction device operable to receive a stream of encoded data, which includes a plurality of error detection codes (EDCs), the error correction device comprising:

a decoder operable to use the plurality of EDCs to detect errors in a first dimension of a two dimensional data array derived from the stream of encoded data, and use a Reed-Solomon code to correct codewords in a second dimension of the two dimensional data array, wherein the decoder is further operable to map codewords from the Reed-Solomon code to corresponding bits within at least one of the EDCs,

wherein the decoder is operable to generate an EDC map to correlate the codewords from the Reed-Solomon code to EDC residuals, wherein the EDC map consists of binary ones for the bits within the EDC residual that are affected by a changing symbol within the Reed-Solomon codeword, and binary zeros in all the other bits.

24. The error correction device according to claim 23 , wherein the EDC map is normalized by performing a cyclic bit-rotation or other mapping operation, such that the bits within a bit-mask directly map to corresponding bits within the EDC residual.

25. The error correction device according to claim 24 , wherein two or more EDC maps are generated and a bit-wise logical OR of all the EDC maps is used for determining the bits of the EDC residual affected by all the notable Reed-Solomon codewords.

26. The error correction device according to claim 24 , wherein two or more EDC maps are generated and bit-wise logical AND and OR operations are used within the EDC maps to determine whether two or more Reed-Solomon codewords could affect the same bits within the EDC residual.

27. A method of data error correction comprising:

using a Reed-Solomon code to identify errors in a plurality of data blocks and attempt to correct the errors;

using cyclic redundancy check to determining whether there are errors in any of the data blocks; and

using an error detection code (EDC) in each data block to correct errors in the data block which are not corrected by the Reed-Solomon code,

wherein using EDC in each data block to correct errors further comprises generating an EDC map, wherein the EDC map identifies the location of the errors within the corresponding data blocks which includes errors that are not corrected by the Reed-Solomon code, and

wherein generating an EDC map comprises:

creating a set of EDC Maps for each notable Reed-Solomon codeword, the EDC map consisting of binary ones for the bits within the EDC residual that are affected by a changing symbol within the Reed-Solomon codeword, and binary zeros in all the other bits; and

normalizing the EDC Maps by performing a mapping operation, such that the bits within the bit-mask directly map to corresponding bits within the EDC residual.

28. The method according to claim 27 , wherein the mapping operation comprises a cyclic bit-rotation.

29. The method according to claim 28 , wherein at least one of the EDC is described by a primitive polynomial having a form g(x)=x n +1, where n is the number of bits within an EDC symbol.

30. The method according to claim 29 , wherein a generator polynomial of the EDC has a form G(X)=X+α s where α is a root of the primitive polynomial and s is any integer between 0 and n−1.

Assignments (13)
TERMINATION AND RELEASE OF INTELLECTUAL PROPERTY SECURITY AGREEMENT AT REEL/FRAME NO. 40473/0378 Recorded Oct 8, 2025
From: PNC BANK, NATIONAL ASSOCIATION, AS AGENT
To: QUANTUM CORPORATION
Reel/Frame 073061/0454 →
TERMINATION AND RELEASE OF AMENDED AND RESTATED INTELLECTUAL PROPERTY SECURITY AGREEMENT AT REEL/FRAME NO. 48029/0525 Recorded Aug 19, 2025
From: PNC BANK, NATIONAL ASSOCIATION, AS AGENT
To: QUANTUM CORPORATION
Reel/Frame 072542/0594 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Apr 24, 2025
From: BLUE TORCH FINANCE LLC, AS AGENT FOR THE SECURED PARTIES
To: ALTER DOMUS (US) LLC, AS AGENT FOR THE SECURED PARTIES
Reel/Frame 071019/0850 →
RELEASE OF SECURITY INTEREST Recorded Aug 10, 2021
From: U.S. BANK NATIONAL ASSOCIATION
To: QUANTUM CORPORATION; QUANTUM LTO HOLDINGS, LLC
Reel/Frame 057142/0252 →
SECURITY INTEREST Recorded Aug 5, 2021
From: QUANTUM CORPORATION; QUANTUM LTO HOLDINGS, LLC
To: BLUE TORCH FINANCE LLC, AS AGENT
Reel/Frame 057107/0001 →
SECURITY INTEREST Recorded Jan 8, 2019
From: QUANTUM CORPORATION
To: PNC BANK, NATIONAL ASSOCIATION
Reel/Frame 048029/0525 →
RELEASE OF SECURITY INTEREST Recorded Dec 27, 2018
From: TCW ASSET MANAGEMENT COMPANY LLC, AS AGENT
To: QUANTUM CORPORATION
Reel/Frame 047988/0642 →
SECURITY INTEREST Recorded Dec 27, 2018
From: QUANTUM CORPORATION, AS GRANTOR; QUANTUM LTO HOLDINGS, LLC, AS GRANTOR
To: U.S. BANK NATIONAL ASSOCIATION, AS AGENT
Reel/Frame 049153/0518 →
RELEASE OF SECURITY INTEREST Recorded Oct 25, 2016
From: WELLS FARGO CAPITAL FINANCE, LLC, AS AGENT
To: QUANTUM CORPORATION
Reel/Frame 040474/0079 →
SECURITY INTEREST Recorded Oct 25, 2016
From: QUANTUM CORPORATION
To: PNC BANK, NATIONAL ASSOCIATION
Reel/Frame 040473/0378 →
SECURITY INTEREST Recorded Oct 21, 2016
From: QUANTUM CORPORATION
To: TCW ASSET MANAGEMENT COMPANY LLC, AS AGENT
Reel/Frame 040451/0183 →
SECURITY AGREEMENT Recorded Mar 31, 2012
From: QUANTUM CORPORATION
To: WELLS FARGO CAPITAL FINANCE, LLC, AS AGENT
Reel/Frame 027967/0914 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Mar 28, 2006
From: BALL, MATTHEW V.
To: QUANTUM CORPORATION
Reel/Frame 017375/0168 →