US6868517B1 - Method and apparatus for checking read errors with two cyclic redundancy check stages - Google Patents
Method and apparatus for checking read errors with two cyclic redundancy check stages Download PDFInfo
- Publication number
- US6868517B1 US6868517B1 US10/118,504 US11850402A US6868517B1 US 6868517 B1 US6868517 B1 US 6868517B1 US 11850402 A US11850402 A US 11850402A US 6868517 B1 US6868517 B1 US 6868517B1
- Authority
- US
- United States
- Prior art keywords
- error
- data
- crc
- sequence
- digital data
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Expired - Lifetime, expires
Links
- 238000000034 method Methods 0.000 title claims abstract description 57
- 125000004122 cyclic group Chemical group 0.000 title claims description 15
- 238000012937 correction Methods 0.000 claims abstract description 42
- 238000013500 data storage Methods 0.000 claims abstract description 35
- 230000004044 response Effects 0.000 claims 12
- 101100258315 Neurospora crassa (strain ATCC 24698 / 74-OR23-1A / CBS 708.71 / DSM 1257 / FGSC 987) crc-1 gene Proteins 0.000 description 9
- 101100258328 Neurospora crassa (strain ATCC 24698 / 74-OR23-1A / CBS 708.71 / DSM 1257 / FGSC 987) crc-2 gene Proteins 0.000 description 8
- 238000001514 detection method Methods 0.000 description 8
- 238000010586 diagram Methods 0.000 description 4
- 238000004364 calculation method Methods 0.000 description 2
- 230000006870 function Effects 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 230000005540 biological transmission Effects 0.000 description 1
- 238000010276 construction Methods 0.000 description 1
- 238000011156 evaluation Methods 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 238000012545 processing Methods 0.000 description 1
- 208000011580 syndromic disease Diseases 0.000 description 1
Images
Classifications
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M13/00—Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
- H03M13/03—Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words
- H03M13/05—Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words using block codes, i.e. a predetermined number of check bits joined to a predetermined number of information bits
- H03M13/09—Error detection only, e.g. using cyclic redundancy check [CRC] codes or single parity bit
- H03M13/091—Parallel or block-wise CRC computation
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M13/00—Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
- H03M13/29—Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes combining two or more codes or code structures, e.g. product codes, generalised product codes, concatenated codes, inner and outer codes
Definitions
- the present invention relates to method and apparatus for checking read errors using two CRC (Cyclic Redundancy Check) stages, and preferably to method and apparatus for detecting errors read from a magnetic disk storage medium in the read channel of a hard disk drive.
- the present invention also relates to method and apparatus for detecting and correcting such errors.
- a disk drive data sector typically has 512 bytes of data, denoted B 0 , B 1 , . . . , B 511 .
- CRC bytes are calculated using all 512 bytes of data. In the following description, 4 CRC bytes will be used for simplicity. However, the techniques described can be easily used with other numbers of CRC bits/bytes, as needed. The techniques described below can be easily modified for other numbers of CRC bytes or other sector sizes.
- C 0 , C 1 , C 2 , C 3 be the 4 CRC bytes. Each byte includes 8 bits. Bits b 1, 0 , . . . , b i, 7 denote the 8 bits of the byte B i , and a similar notation is used for other bytes.
- data to be written on a disk is supplied to a CRC encoder 12 , then to an ECC encoder 14 , for writing onto disk 18 with head 16 .
- the ECC unit 24 computes the error values and the error locations.
- the buffer manager 48 takes the error values and error locations, and corrects the errors in the memory 50 . Because the CRC unit 26 does not have access to the data after ECC correction by the ECC unit 24 , the CRC unit 26 does the CRC check using the error vector and the data before ECC correction.
- the ECC unit 24 generates the error vector in a different order. Instead of generating the error vector in the normal order shown below:
- the present invention provides apparatus and method which uses two CRC stages to detect and/or correct errors in read digital data.
- structure and/or steps are provided for detecting errors in data stored in a data storage medium, including a correction, device or step which receives at least one of (i) data and (ii) data with errors, from the data storage medium, and outputs an error sequence in a first order in the case where data with errors is received.
- a first CRC device or step is provided which receives at least one of (i) data and (ii) data with errors from the data storage medium, and outputs a CRC checksum.
- a second CRC device or step then receives both the error sequence and the CRC checksum, and outputs another CRC checksum indicative of whether the correction device or step has generated a correct error sequence.
- structure and/or function for determining whether digital data read from a digital data storage device contains errors includes decoder structure that receives the digital data read from the storage device, the data comprising data bytes and bytes with errors interleaved in a first order, said decoder structure outputting an error sequence in a reversed interleaved order.
- a first CRC circuit receives the digital data read from the storage device in the first interleaved order, and outputs a remainder.
- a second CRC circuit receives both the error sequence in reverse interleaved order (generated by the correction device) and the remainder, performs a mathematical operation on the first error sequence and the remainder, and outputs an error signal when the mathematical operation determines that the correction device did not generate the error sequence correctly.
- a read channel for a disk storage medium reads digital data comprising data bytes and bytes with errors, and includes a head for reading the digital data from the disk storage medium.
- An error correction device is provided which receives the data bytes and the bytes with errors from the disk storage medium, performs an error correction operation on the received bytes and bytes with errors, and outputs a first error sequence in a first order.
- a first CRC device receives the data bytes and the bytes with errors from the disk storage medium, performs a cyclic redundancy check operation on the received bytes, and outputs a CRC checksum.
- a second CRC device receives both the error sequence and the CRC checksum, performs a cyclic redundancy check operation on the received error sequence and CRC checksum, and outputs a signal indicative of the presence or absence of an error in the error sequence.
- a first CRC circuit is provided that receives the digital data read from the storage device in the first interleaved order, and outputs a remainder.
- a second CRC circuit receives both the error sequence in reversed interleaved order (generated by the correction device) and the remainder, performs a mathematical operation on the error sequence and the remainder, and outputs an error signal when the mathematical operation determines that an error exists in the error sequence.
- Error correction circuitry may also be provided for error-correcting the received data bytes when said second CRC circuit does not output the error signal.
- control circuitry may also be supplied for causing the digital data to be re-read from the digital data storage device when said second CRC circuit outputs the error signal.
- FIG. 1 is a schematic block diagram of known circuitry for reading digital data from a disk medium
- FIG. 2 is a schematic block diagram of circuitry for reading digital data from a disk medium according the present invention.
- FIG. 3 is a schematic block diagram of prior art circuitry for binary polynomial division.
- FIG. 4 is a schematic block diagram of a binary division circuit which operates at a byte clock rate with look-forward structure, according the preferred embodiment.
- the present invention will be described with respect to the read channel of a magnetic disk drive, it is to be understood that the invention has applicability in other storage media such as magnetic tape, optical, magneto-optical, integrated circuits, etc.
- the present invention may also find use in other technical fields such as digital transmission error detection in communications systems such as telephony, satellite, Internet, LANs, etc.
- the present invention will be described in terms of integrated circuitry residing on a single chip in the read channel of a computer hard disk drive.
- the present invention may be embodied in software, as a series of processing steps, or as a combination of hardware and software, as will be understood by those of ordinary skill in the art.
- the present invention provides a second CRC decoding stage, which receives outputs from both the ECC decoder and the first CRC stage, to determine whether the error sequence generated in the ECC decoder is correct or not.
- the digital data read from the disk is stored in the buffer memory 50 and decoded by Reed-Soloman (R-S) decoder 40 .
- the error locations and the error values generated by the R-S decoder 40 are passed to FIFO 46 .
- the buffer manager 48 takes the error locations and error values, and corrects the errors contained in buffer memory 50 , as shown.
- the read data is also provided to a first CRC 42 where the remainder R g is calculated.
- R g When R g is zero and the syndromes calculated by the R-S decoder 40 are also zero, there is no error in the read data; where R g is nonzero, an error exists in the read data.
- the output of CRC 42 is supplied to a second CRC 44 , as shown.
- the second CRC 44 receives error locations and error values in an order which is the reverse of the order received by the CRC 42 .
- the CRC 44 thus calculates R ghat [c hat (x)], where g hat and c hat represent the reversed generator polynomial X L g(x ⁇ 1 ) and the modified reversed error sequence in bits, respectively.
- R ghat When R ghat is zero, the R-S decoder 40 generated the error locations and error values correctly; where R ghat is nonzero, the R-S decoder 40 failed to generate the error sequence correctly.
- the present invention utilizes several additional techniques for accurately detecting errors in read data.
- the CRC- 1 42 and the CRC- 2 44 according to the present invention preferably use a binary code for the error detection rather than using a second Reed-Solomon code.
- the CRC- 1 42 and the CRC- 2 44 use the same structure as shown in FIG. 4 ; the difference is in the coefficients of the generated polynomial.
- the use of binary code allows for more flexibility in sector length. For example, the disk drive industry is now discussing 4 KB sector size, which would require significant changes to support such long sectors.
- the binary CRC detector according to the present invention can support sector length roughly up to 64 MB.
- the “miscorrection detection” is based on (i) the raw data before ECC correction, and (ii) the error vector (error locations and error values).
- the CRC- 1 and the R-S decoder use the raw data, and the R-S decoder provides the error vector. This is in contrast to the use of error location and evaluation polynomials.
- the preferred embodiment uses a look-forward technique for the binary CRC polynomial division circuits so that the binary polynomial division circuit operates at byte clock (or other clock rates depending on how many bits are being “looked forward”).
- Both the CRC- 1 and the CRC- 2 in FIG. 2 preferably operate at a byte clock rate.
- the circuitry for implementing the above algorithm includes two binary polynomial division circuits ( FIG. 4 ) which operate at symbol clock rates with a look-forward technique which will be described next.
- the symbol clock rate could be a byte clock rate or another clock rate depending on the symbol size.
- a “symbol” is a group of bits, such as a byte (if it is a group of 8 bits); or a 10-bit symbol if it is a group of 10 bits.
- FIG. 3 shows a known polynomial division circuit while FIG. 4 shows the binary polynomial division circuit which operates at a byte clock rate with a look-forward structure, according to the present invention.
- FIG. 3 after k bits of data is shifted into Mux 32 at a bit-clock rate, the calculation of the remainder is done and the remainder is stored in the registers 34 and is ready to be shifted out at the bit-clock rate.
- the content in the registers 34 are r 0 , r 1 , r 2 , . . .
- the binary polynomial division circuit of FIG. 4 operates at a byte clock rate (as an example, note that this technique can be easily extended to other bit-widths, like a 10-bit symbol clock rate).
- the look-forward logic in FIG. 4 contains logic 34 ′, 36 ′, and 72 ′ to calculate the feed-back bits q i , using the AND and XOR operation described above, i.e., the calculation of the feed-back bits is straightforward.
- the look-forward block 70 ′ calculates precisely what is shown in the above table. Given this architecture, note that only two such blocks are used, one for the generator polynomial and one for the “reverse generator” polynomial, i.e., one FIG.
- CRC 44 of FIG. 2 When CRC 44 of FIG. 2 detects an error in the decoded data, it may generate an error signal S e which may cause the data block to be reread in an attempt to correct the error. In the embodiment where CRC receives the output of CRC 42 , it can use logic to determine whether to output the error signal S e . For example, CRC 44 ′ may output S e when both R g and R ghat are nonzero, or when any (or a predetermined) one of them is nonzero. In a particularly preferred embodiment, CRC 44 takes 4 bytes from CRC 42 , adds 4 bytes to the R-S 40 decoder output, and calculates a remainder R.
- R is zero, there is no error; if R is nonzero, an error may exist, and S e is output. In this way, errors can be more accurately detected, since a CRC operation is performed on both the read data and the error vector generated by the R-S decoder (which generates the error sequence in the reverse interleaved order). With this technique, data errors may be detected approximately 10 9 more reliably, which is especially useful in high reliability applications.
Abstract
Description
be the generator polynomial of the CRC code, where gi is either 0 or 1.
U i =B N
where the “+” is a bitwise XOR operation, and s is the number of data bytes per sector. If other data (e.g., SPBA) needs to be protected by ECC and CRC, these data are treated as user data. (Example, U0=B0+B1+B2 in three interleave case, and U0=B0+B1+B2+B3 in four interleave case).
k=┌s÷N I┐. (3)
divided by the generator polynomial of the CRC code, where L is the number of CRC bits. The 32 coefficients of r(x) form the 4 CRC bytes: C0=(r24, . . . , r31), C1=(r16, . . . , r23), C2=(r8, . . . , r15), C3=(r0, . . . , r7). Note that the bits order of the four CRC bytes does not matter as long as the CRC encoding and CRC checking units agree on the CRC bits order.
- First interleave B0 B3 . . . B507 B510 C1 D0,0 D0,1 . . . D0,2t−1
- Second interleave B1 B4 . . . B508 B511 C2 D1,0 D1,1 . . . D1,2t−1
- Third interleave B2 B5 . . . B509 C0 C3 D2,0 D2,1 . . . D2,2t−1
where Di,0, . . . , Di, 2t−1 are the ECC bytes for the ith interleave generated by a Reed-Solomon encoder, and 2t is the number of ECC bytes per interleave.
- First interleave B0 B4 . . . B508 C0 D0,0 D0,1 . . . D0,2t−1
- Second interleave B1 B5 . . . B509 C1 D1,0 D1,1 . . . D1,2t−1
- Third interleave B2 B6 . . . B510 C2 D2,0 D2,1 . . . D2,2t−1
- Fourth interleave B3 B7 . . . B511 C3 D3,0 D3,1 . . . D3,2t−1
- B0, B1, . . . , B511, C0, . . . , C3, D0,0, D1,0, D2,0, . . . D0,2t−1, D1,2t−1, D2,2t−1,
-
- EB0, EB1, . . . , EB511, EC0, EC1, EC2, EC3, ED0,0, . . . , ED2,2t−1,
theECC unit 24 generates the errors in a “reversed interleaved order”, shown below: - ED0,2t−1, ED0,2t−2, . . . , ED0,0, EC1, EB510, EB507, . . , EB0 then
- ED1,2t−1, ED1,2t−2, . . . , ED1,0, EC2, EB511, EB508, . . , EB1 and then
- ED2,2t−1, ED2,2t−2, . . . , ED2,0, EC2, EB509, EB506, . . , EB2
where the notation EB0 means the error value at the position of B0, that is, data read back is actually RB0=(B0+EB0). Note that most entries in the error sequence are zeros.
- EB0, EB1, . . . , EB511, EC0, EC1, EC2, EC3, ED0,0, . . . , ED2,2t−1,
represents the data sequence in bits, and
d(x)=a(x)g(x)+r(x) (6)
Suppose r(x) (calculated by CRC-1, 42) is known, and the data sequence is in reverse order, i.e:
It should be determined whether this “reversed bit sequence” is actually the reversed sequence (i.e., whether the
x n−1 d(x −1)=x n−1 [a(x −1)g(x −1)]+x n−1 r(x −1)=[x n−L−1 a(x −1)][x L g(x −1)]+x n−1 r(x −1) (8)
and therefore
x n−1 d(x −1)−x n−1 r(x −1)=[x n−L−1 a(x −1)][x L g(x −1)]. (9)
ĝ(x)=x L g(x−1 ), (10)
This remainder should be zero as shown above if the “reversed sequence” is indeed the reversed sequence.
- RB0, RB1, . . . , RB511, RC0, . . . , RC3, RD0,0, RD1,0, RD2,0, . . . , RD0,2t−1, RD1,2t−1, RD2,2t−1 and the error sequences generated by the ECC unit 40:
- ED0,2t−1, ED0,2t−2, . . . , ED0,0, EC1, EB510, EB507, . . . , EB0
- ED1,2t−1, ED1,2t−2, . . . , ED1,0, EC2, EB511, EB508, . . . , EB1
- ED2,2t−1, ED2,2t−2, . . . , ED2,0, EC3, EC0, EB509, EB506, . . . , EB2
- Notation: Let B i =(bi,7,bi,6,bi,5,bi,4,bi,3,b2,bi,1,bi,0) be the “bits order reversed” byte of Bi.
-
- Step 1: CRC-1, 42 calculates the reminder RM0, RM1, RM2, RM3 of the sequence: RB0+RB1+RB2, RB3+RB4+RB5, RB6+RB7+RB8, . . . , RB510+RB511, RC0, RC1, RC2, RC3, with respect to the generator polynomial g(x).
- Step2: CRC-2 calculates the remainder of the following sequence: 0, 0, (RM 1+EC 1), 0, EB 510, EB 508, . . . , EB 1, with respect to the “reversed generator polynomial” ĝ(x).
- Step3: CRC-2 calculates the remainder of the following sequence: 0, (EC 2+RM 2), 0, 0, EB 511, EB 508, . . . , EB 1, with respect “reversed generator polynomial” ĝ(x). And add this remainder with the remainder calculated in the
Step 2. - Step 4: CRC-2 calculates the remainder of the following sequence: (RM3 +EC 3), 0, 0, (RM 0+EC3 ), EB 509, EB 506, . . . , EB 2, with respect to the “reversed generator polynomial” ĝ(x); and adds this remainder with the remainder calculated in the
Step 2. - If the summation (i.e.: bitvise XOR) of the three remainders calculated in
Steps 2, 3, 4 is not all-zero, a “miscorrection” is detected by CRC-2.
-
- Step 1: CRC-1, 42 calculates the reminder RM0, RM1, RM2, RM3 of the sequence: RB0+RB1+RB2, RB3+RB4+RB5, RB6+RB7+RB8, . . . , RB510+RB511, RC0, RC1, RC2, RC3, 0, 0, 0, 0, with respect to the generator polynomial g(x).
- Step2: Calculates the reminder of the following sequence: RM 3 , RM 2 , RM 1 , RM 0 , 0, 0, EC 1, 0, EB 510, EB 507, . . . , EB 0, with respect to the “reversed generator polynomial” ĝ(x).
- Step3: Calculates the reminder of the following sequence: 0, EC 2, 0, 0, EB 511, EB 508, . . . , EB 1, with respect to the “reversed generator polynomial” ĝ(x). And add this reminder with the reminder calculated in the
Step 2. - Step 4: Calculates the reminder of the following sequence: EC 3, 0, 0, EC 0, EB 509, EB 506, . . . , EB 2, with respect to the “reversed generator polynomial” ĝ(x). And add this reminder with the reminder calculated in the
Step 2. - If the summation (i.e.: bitwise XOR) of the three reminders calculated in
Steps 2, 3, 4 is not all zero, a “miscorrection” is detected.
represent k bits of data, then the circuit depicted in
g(x)=1+x 11 +x 25 +x 28 +x 29 +x 40 (13)
Note that this polynomial has the following advantages:
-
- 1. Since g1= . . . =g10=g30= . . . =g39=0, the “look-forward” of the feed-back bits for both the generator polynomial and the “reverse generator polynomial” are extremely simple: they are simply the last 10 bits in the registers XOR with the current 10-bits of data.
- 2. Most coefficients are zeros, so the XOR of the lines in Table 1 is simple.
Claims (80)
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US10/118,504 US6868517B1 (en) | 2001-05-15 | 2002-04-08 | Method and apparatus for checking read errors with two cyclic redundancy check stages |
US11/049,753 US7310765B1 (en) | 2001-05-15 | 2005-02-04 | Method and apparatus for checking read errors with two cyclic redundancy check stages |
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US29068301P | 2001-05-15 | 2001-05-15 | |
US10/118,504 US6868517B1 (en) | 2001-05-15 | 2002-04-08 | Method and apparatus for checking read errors with two cyclic redundancy check stages |
Related Child Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
US11/049,753 Continuation US7310765B1 (en) | 2001-05-15 | 2005-02-04 | Method and apparatus for checking read errors with two cyclic redundancy check stages |
Publications (1)
Publication Number | Publication Date |
---|---|
US6868517B1 true US6868517B1 (en) | 2005-03-15 |
Family
ID=34277949
Family Applications (2)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
US10/118,504 Expired - Lifetime US6868517B1 (en) | 2001-05-15 | 2002-04-08 | Method and apparatus for checking read errors with two cyclic redundancy check stages |
US11/049,753 Expired - Lifetime US7310765B1 (en) | 2001-05-15 | 2005-02-04 | Method and apparatus for checking read errors with two cyclic redundancy check stages |
Family Applications After (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
US11/049,753 Expired - Lifetime US7310765B1 (en) | 2001-05-15 | 2005-02-04 | Method and apparatus for checking read errors with two cyclic redundancy check stages |
Country Status (1)
Country | Link |
---|---|
US (2) | US6868517B1 (en) |
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20070067700A1 (en) * | 2005-09-06 | 2007-03-22 | Chien-Chih Chen | Error correction apparatus and method thereof |
US20080115040A1 (en) * | 2006-10-31 | 2008-05-15 | Greenlaw Jonathan E | Checksum generator for variable-length data |
US20100318887A1 (en) * | 2009-06-10 | 2010-12-16 | International Business Machines Corporation | Data verification using checksum sidefile |
US7953907B1 (en) * | 2006-08-22 | 2011-05-31 | Marvell International Ltd. | Concurrent input/output control and integrated error management in FIFO |
US8468423B2 (en) | 2011-09-01 | 2013-06-18 | International Business Machines Corporation | Data verification using checksum sidefile |
US20150019932A1 (en) * | 2013-07-11 | 2015-01-15 | Kabushiki Kaisha Toshiba | Storage device, crc generation device, and crc generation method |
Families Citing this family (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP4791525B2 (en) * | 2006-02-14 | 2011-10-12 | 富士通株式会社 | Read processing apparatus and read method |
US8127211B2 (en) * | 2007-06-20 | 2012-02-28 | Texas Instruments Incorporated | Adding known data to CRC processing without increased processing time |
US8397107B1 (en) * | 2009-12-11 | 2013-03-12 | Western Digital Technologies, Inc. | Data storage device employing data path protection using both LBA and PBA |
JP5685848B2 (en) * | 2010-07-27 | 2015-03-18 | 富士通株式会社 | Computer, program, and computer control method |
US8671250B2 (en) | 2011-12-15 | 2014-03-11 | Western Digital Technologies, Inc. | Data storage device generating redundancy for data path protection of a parity sector |
Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5136592A (en) * | 1989-06-28 | 1992-08-04 | Digital Equipment Corporation | Error detection and correction system for long burst errors |
US5157669A (en) | 1988-10-14 | 1992-10-20 | Advanced Micro Devices, Inc. | Comparison of an estimated CRC syndrome to a generated CRC syndrome in an ECC/CRC system to detect uncorrectable errors |
US5602857A (en) * | 1993-09-21 | 1997-02-11 | Cirrus Logic, Inc. | Error correction method and apparatus |
US5671237A (en) | 1993-11-04 | 1997-09-23 | Cirrus Logic, Inc. | Cyclical redundancy check method and apparatus |
US5909334A (en) | 1996-05-10 | 1999-06-01 | Western Digital Corporation | Verifying write operations in a magnetic disk drive |
US6092231A (en) * | 1998-06-12 | 2000-07-18 | Qlogic Corporation | Circuit and method for rapid checking of error correction codes using cyclic redundancy check |
US6317855B1 (en) * | 1998-04-14 | 2001-11-13 | Fujitsu Limited | Method and apparatus for checking data error correction |
US6594793B1 (en) * | 2000-09-08 | 2003-07-15 | Ericsson Inc. | Methods and systems for multiplexing and decoding variable length messages in digital communications systems |
-
2002
- 2002-04-08 US US10/118,504 patent/US6868517B1/en not_active Expired - Lifetime
-
2005
- 2005-02-04 US US11/049,753 patent/US7310765B1/en not_active Expired - Lifetime
Patent Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5157669A (en) | 1988-10-14 | 1992-10-20 | Advanced Micro Devices, Inc. | Comparison of an estimated CRC syndrome to a generated CRC syndrome in an ECC/CRC system to detect uncorrectable errors |
US5136592A (en) * | 1989-06-28 | 1992-08-04 | Digital Equipment Corporation | Error detection and correction system for long burst errors |
US5602857A (en) * | 1993-09-21 | 1997-02-11 | Cirrus Logic, Inc. | Error correction method and apparatus |
US5671237A (en) | 1993-11-04 | 1997-09-23 | Cirrus Logic, Inc. | Cyclical redundancy check method and apparatus |
US5909334A (en) | 1996-05-10 | 1999-06-01 | Western Digital Corporation | Verifying write operations in a magnetic disk drive |
US6317855B1 (en) * | 1998-04-14 | 2001-11-13 | Fujitsu Limited | Method and apparatus for checking data error correction |
US6092231A (en) * | 1998-06-12 | 2000-07-18 | Qlogic Corporation | Circuit and method for rapid checking of error correction codes using cyclic redundancy check |
US6594793B1 (en) * | 2000-09-08 | 2003-07-15 | Ericsson Inc. | Methods and systems for multiplexing and decoding variable length messages in digital communications systems |
Non-Patent Citations (1)
Title |
---|
Jiin Lee et al.; An advanced Winchester disk controller; VLSI Technology, Systems and Applications, 1989, Proceedings of Technical Papers. 1989 International Symposium on , May 17-19, 1989; P376-379. * |
Cited By (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20070067700A1 (en) * | 2005-09-06 | 2007-03-22 | Chien-Chih Chen | Error correction apparatus and method thereof |
US7823045B2 (en) | 2005-09-06 | 2010-10-26 | Realtek Semiconductor Corp. | Error correction apparatus and method thereof |
US7953907B1 (en) * | 2006-08-22 | 2011-05-31 | Marvell International Ltd. | Concurrent input/output control and integrated error management in FIFO |
US8271701B1 (en) | 2006-08-22 | 2012-09-18 | Marvell International Ltd. | Concurrent input/output control and integrated error management in FIFO |
US20080115040A1 (en) * | 2006-10-31 | 2008-05-15 | Greenlaw Jonathan E | Checksum generator for variable-length data |
US7941727B2 (en) | 2006-10-31 | 2011-05-10 | Hewlett-Packard Development Company, L.P. | Checksum generator for variable-length data |
US20100318887A1 (en) * | 2009-06-10 | 2010-12-16 | International Business Machines Corporation | Data verification using checksum sidefile |
US8352835B2 (en) | 2009-06-10 | 2013-01-08 | International Business Machines Corporation | Data verification using checksum sidefile |
US8468423B2 (en) | 2011-09-01 | 2013-06-18 | International Business Machines Corporation | Data verification using checksum sidefile |
US8473816B2 (en) | 2011-09-01 | 2013-06-25 | International Business Machines Corporation | Data verification using checksum sidefile |
US20150019932A1 (en) * | 2013-07-11 | 2015-01-15 | Kabushiki Kaisha Toshiba | Storage device, crc generation device, and crc generation method |
US9092354B2 (en) * | 2013-07-11 | 2015-07-28 | Kabushiki Kaisha Toshiba | Storage device, CRC generation device, and CRC generation method |
Also Published As
Publication number | Publication date |
---|---|
US7310765B1 (en) | 2007-12-18 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US7310765B1 (en) | Method and apparatus for checking read errors with two cyclic redundancy check stages | |
US6272659B1 (en) | Error correction code processor employing adjustable correction power for miscorrection minimization | |
EP0864125B1 (en) | Data integrity and cross-check code with logical block address | |
US6574774B1 (en) | Physical block address recovery apparatus system and method for cyclic error correction codes | |
EP0357461B1 (en) | Error correction circuit | |
JP4833173B2 (en) | Decoder, encoding / decoding device, and recording / reproducing device | |
US7444582B1 (en) | Architecture and control of reed-solomon error-correction decoding | |
US7234097B1 (en) | Methods of supporting host CRC in data storage systems without RLL coding | |
US5872799A (en) | Global parity symbol for interleaved reed-solomon coded data | |
US6421805B1 (en) | Rogue packet detection and correction method for data storage device | |
US20040010742A1 (en) | Method and apparatus for error detection | |
JP2009181656A (en) | Encoding device, decoding device, encoding-decoding device, and recording and reproducing device | |
KR20010067139A (en) | Recording/reproduction device, semiconductor memory, and memory card using the semiconductor memory | |
JPH11508712A (en) | Method and apparatus for protecting data in a disk drive buffer | |
EP0373764A2 (en) | Correction of random and burst errors | |
US8196011B2 (en) | Error detection and correction circuit and semiconductor memory | |
US6832042B1 (en) | Encoding and decoding system in an optical disk storage device | |
EP0753942A2 (en) | Word-wise processing for reed-solomon codes | |
EP1293978A1 (en) | Coding/decoding process and device, for instance for disk drives | |
US5974582A (en) | High-speed chien search logic | |
US5943348A (en) | Method to check for burst limiting in error correcting systems | |
EP1213841A2 (en) | Erasure correction for ECC entities | |
US5809042A (en) | Interleave type error correction method and apparatus | |
Tang et al. | Coding for error control | |
US6640319B1 (en) | Mis-synchronization detection system |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
AS | Assignment |
Owner name: MARVELL SEMICONDUCTOR, INC., CALIFORNIA Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNORS:FENG, WEISHI;ZHANG, LIANG;YU, ZHAN;REEL/FRAME:013358/0556;SIGNING DATES FROM 20020924 TO 20020927 Owner name: MARVELL INTERNATIONAL LTD., BERMUDA Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNOR:MARVELL SEMICONDUCTOR, INC.;REEL/FRAME:013358/0564 Effective date: 20020930 |
|
STCF | Information on status: patent grant |
Free format text: PATENTED CASE |
|
FPAY | Fee payment |
Year of fee payment: 4 |
|
FPAY | Fee payment |
Year of fee payment: 8 |
|
FPAY | Fee payment |
Year of fee payment: 12 |
|
AS | Assignment |
Owner name: CAVIUM INTERNATIONAL, CAYMAN ISLANDS Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNOR:MARVELL INTERNATIONAL LTD.;REEL/FRAME:052918/0001 Effective date: 20191231 |
|
AS | Assignment |
Owner name: MARVELL ASIA PTE, LTD., SINGAPORE Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNOR:CAVIUM INTERNATIONAL;REEL/FRAME:053475/0001 Effective date: 20191231 |