IP Library Granted Patent US 10,333,555
Granted Patent B2
US 10,333,555 · App. 15/222,057 · Granted Jun 25, 2019

Apparatuses and methods for interleaved BCH codes

Inventor: Yingquan Wu (Palo Alto, CA)
Assignee: Micron Technology, Inc.
H03M13/2792H03M13/152H03M13/2906
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 10,333,555
App. No.
15/222,057
Granted
Jun 25, 2019
Kind
B2
Abstract

An example methods for interleaved BCH codes can include encoding a plurality of portions of data using a first generator polynomial to obtain a plurality of respective BCH codewords. The method can include encoding an additional BCH codeword based at least in part on a second plurality of portions of data and the plurality of BCH codewords using a second generator polynomial. The method can include outputting the plurality of respective BCH codewords and the additional BCH codeword.

Claims (66)

1. A method for interleaving Bose-Chaudhuri-Hocquenghem (BCH) codewords, comprising:

encoding a first plurality of portions of data using a first generator polynomial to obtain a plurality of respective BCH codewords, wherein each of the plurality of respective BCH codewords comprises respective data and a respective quantity of parity data, wherein at least one respective quantity of parity data is different than at least one other respective quantity of parity data;

encoding a generalized integrated interleaved (GII) BCH codeword based at least in part on a second plurality of portions of data and on the plurality of respective BCH codewords using a second generator polynomial, wherein:

the second plurality of portions of data is encoded by the second generator polynomial resulting in a first output; and

the first output is added to a second output, wherein the second output is from a multiplexer which receives as inputs the plurality of respective BCH codewords and the first plurality of portions of data; and

outputting the plurality of respective BCH codewords and the generalized integrated interleaved (GII) BCH codeword.

2. The method of claim 1 , wherein the plurality of respective BCH codewords and the GII BCH codeword are encoded by substituting an integrating coefficient with a polynomial of α(x bi ).

3. The method of claim 1 , wherein encoding the plurality of respective BCH codewords comprises encoding a plurality of integrated interleaved BCH codewords.

4. The method of claim 1 , wherein encoding the in plurality of respective BCH codewords comprises encoding the first plurality of respective BCH codewords in a first encoding layer and encoding the generalized integrated interleaved (GII) BCH codeword comprises encoding the generalized integrated interleaved (GII) BCH codeword in a sub-layer of the first encoding layer.

5. The method of claim 1 , wherein encoding the plurality of respective BCH codewords comprises encoding the plurality of respective BCH codewords in a first encoding level and encoding the generalized integrated interleaved (GII) BCH codeword comprises encoding the generalized integrated interleaved (GII) BCH codeword in a second encoding level.

6. The method of claim 5 , further comprising generating a second generalized integrated interleaved (GII) BCH codeword and a third generalized integrated interleaved (GII) BCH codeword associated with the second encoding level, wherein the generalized integrated interleaved (GII) BCH codeword is a first generalized integrated interleaved (GII) BCH codeword.

7. The method of claim 6 , further comprising correcting a number of interleaves of codewords, wherein the first generalized integrated interleaved (GII) BCH codeword is configured to correct a greater number of errors in at least one of the number of interleaves than the plurality of respective BCH codewords.

8. The method of claim 7 , wherein the second generalized integrated interleaved (GII) BCH codeword is configured to correct a greater number of errors in at least one of the number of interleaves than the plurality of respective BCH codewords and the generalized integrated interleaved (GII) BCH codeword.

9. The method of claim 8 , wherein the third generalized integrated interleaved (GII) BCH codeword is configured to correct a greater number of errors in at least one of the number of interleaves than the plurality of respective BCH codewords, the first generalized integrated interleaved (GII) BCH codeword, and the second generalized integrated interleaved (GII) BCH codeword.

10. A method for encoding and decoding, comprising:

encoding a first plurality of portions of data using a first generator polynomial to obtain a plurality of respective Bose-Chaudhuri-Hocquenghem (BCH) codewords, wherein each of the plurality of respective BCH codewords comprises respective data and a respective quantity of parity data, wherein at least one respective quantity of parity data is different than at least one other respective quantity of parity data;

encoding a generalized integrated interleaved (GII) BCH codeword based at least in part on a second plurality of portions of data and on the plurality of respective BCH codewords using a second generator polynomial, wherein:

the second plurality of portions of data is encoded by the second generator polynomial resulting in a first output; and

the first output is added to a second output, wherein the second output is from a multiplexer which receives as inputs the plurality of respective BCH codewords and the first plurality of portions of data; and

outputting the plurality of respective BCH codewords and the integrated interleaved (II) BCH codeword;

determining a number of BCH code syndromes of a plurality of nested integrated interleaved (II) BCH codewords of the II BCH codeword;

setting respective syndromes of a sequence of odd syndromes of the number of BCH code syndromes to respective syndromes of a sequence of squared BCH code syndromes;

locating at least one interleave of the plurality of nested integrated interleaved (II) BCH codewords based on a generated error locator polynomial, wherein the generated error locator polynomial is generated using a previously generated error locator polynomial during a previous decoding attempt; and

correcting the at least one interleave.

11. The method of claim 10 , comprising, prior to determining the number of BCH code syndromes of the plurality of nested II BCH codewords:

determining a number of BCH code syndromes of a plurality of II BCH codewords;

generating a prior error locator polynomial;

locating at least one interleave of the plurality of II BCH codewords based on the prior error locator polynomial; and

in response to a number of interleaves of the plurality of II BCH codewords being uncorrectable independent of using the plurality of nested II BCH codewords, performing the determination of the number of BCH code syndromes of the plurality of nested II BCH codewords.

12. The method of claim 11 , comprising, in response to the number of interleaves of the plurality of II BCH codewords being correctable:

correcting the number of interleaves that include an error; and

saving the corrected number of interleaves that include the error.

13. The method of claim 10 , comprising generating the error locator polynomial.

14. The method of claim 10 , wherein the error locator polynomial is generated using a Berlekamp method and additional syndrome inputs.

15. The method of claim 10 , comprising determining higher order syndromes through a recursive linear-feedback shift registry (LFSR).

16. The method of claim 15 , comprising updating at least one of the higher order syndromes based on the determined higher order syndromes determination.

17. An apparatus, comprising:

a controller; and

an encoder, wherein the encoder is configured to:

encode a plurality of portions of data using a first generator polynomial to obtain a first plurality of respective Bose-Chaudhuri-Hocquenghem (BCH) codewords of a first encoding layer;

encode a second plurality of nested BCH codewords based at least in part on an additional plurality of portions of data and the first plurality of respective BCH codewords using a second generator polynomial, wherein the second plurality of nested BCH codewords are a sub-layer of the first encoding layer and are a generalized integrated interleaved (GII) code,

wherein:

the additional plurality of portions of data is encoded by the second generator polynomial resulting in a first output; and

the first output is added to a second output wherein the second output is from a multiplexer which receives as inputs the first plurality of respective BCH codewords and the plurality of portions of data; and

wherein a minimum distance of the generalized integrated interleaved (GII) code is a minimum of respective terms corresponding to respective nested BCH codewords of the second plurality of nested BCH codewords, wherein each respective term comprises a respective distance of the corresponding respective nested BCH codeword.

18. The apparatus of claim 17 , wherein the encoder employs a polynomial of α(x bi ) to encode the first plurality of respective BCH codewords and the second plurality of nested BCH codewords.

19. The apparatus of claim 17 , wherein the encoder is further configured to encode the second plurality of nested BCH codewords with fewer codewords than the first plurality of respective BCH codewords.

20. The apparatus of claim 17 , wherein the encoder is further configured to encode the first and the second plurality by applying a linear-feedback shift registry encoding.

21. The apparatus of claim 20 , wherein the encoder is further configured to determine a parity polynomial p i (x).

22. An apparatus comprising:

a controller;

an encoder, wherein the encoder is configured to:

encode a plurality of portions of data using a first generator polynomial to obtain a first plurality of respective Bose-Chaudhuri-Hocquenghem (BCH) codewords of a first encoding layer;

encode a second plurality of nested BCH codewords based at least in part on an additional plurality of portions of data and the first plurality of respective BCH codewords using a second generator polynomial, wherein the second plurality of nested BCH codewords are a sub-layer of the first encoding layer and are an integrated interleaved (II) codeword,

wherein:

the additional plurality of portions of data is encoded by the second generator polynomial resulting in a first output; and

the first output is added to a second output, wherein the second output is from a multiplexer which receives as inputs the first plurality of respective BCH codewords and the plurality of portions of data; and

wherein a minimum distance of the integrated interleaved (II) codeword is a minimum of respective terms corresponding to respective nested BCH codewords of the second plurality of nested BCH codewords, wherein each respective term comprises a respective distance of the corresponding respective nested BCH codeword; and

a decoder coupled to the controller, wherein the controller is configured to operate the decoder to:

determine a first plurality of syndromes associated with the II codeword;

set respective syndromes of a sequence of odd syndromes of the first plurality of syndromes to respective syndromes of a sequence of squared BCH code syndromes;

locate at least one interleave of the II BCH codeword based on a generated first error locator polynomial; and

in response to a number of interleaves of the II BCH codeword being uncorrectable, determine a number of BCH code syndromes of a plurality of nested integrated interleaved (II) BCH codewords of the II BCH codeword;

generate a second error locator polynomial, wherein the second error locator polynomial is generated using the first error locator polynomial previously generated;

locate at least one interleave of the plurality of nested II BCH codewords based on the second error locator polynomial; and

correct at least one interleave.

Assignments (5)
RELEASE OF SECURITY INTEREST Recorded Nov 12, 2019
From: JPMORGAN CHASE BANK, N.A., AS COLLATERAL AGENT
To: MICRON TECHNOLOGY, INC.; MICRON SEMICONDUCTOR PRODUCTS, INC.
Reel/Frame 051028/0001 →
RELEASE OF SECURITY INTEREST Recorded Oct 9, 2019
From: MORGAN STANLEY SENIOR FUNDING, INC., AS COLLATERAL AGENT
To: MICRON TECHNOLOGY, INC.
Reel/Frame 050680/0268 →
SECURITY INTEREST Recorded Jul 13, 2018
From: MICRON TECHNOLOGY, INC.; MICRON SEMICONDUCTOR PRODUCTS, INC.
To: JPMORGAN CHASE BANK, N.A., AS COLLATERAL AGENT
Reel/Frame 047540/0001 →
SUPPLEMENT NO. 2 TO PATENT SECURITY AGREEMENT Recorded Feb 10, 2017
From: MICRON TECHNOLOGY, INC.
To: MORGAN STANLEY SENIOR FUNDING, INC.
Reel/Frame 041671/0902 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jul 28, 2016
From: WU, YINGQUAN
To: MICRON TECHNOLOGY, INC.
Reel/Frame 039281/0799 →
Continuity (1)
Related Publication 20180034482A1 · Feb 1, 2018