IP Library Granted Patent US 11,734,107
Granted Patent B2
US 11,734,107 · App. 16/355,555 · Granted Aug 22, 2023

Decoding scheme for error correction code structure

Inventors: Avi Steiner (Kiriat Motzkin, IL); Hanan Weingarten (Herzliya, IL); Meir Nadam-Olegnowicz (Binyamina, IL); Ofir Kanter (Haifa, IL); Amir Nassie (Haifa, IL)
Assignee: KIOXIA CORPORATION
G06F11/1068G06F11/004G06F11/1028G11C29/781G11C29/844
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 11,734,107
App. No.
16/355,555
Granted
Aug 22, 2023
Kind
B2
Abstract

Various implementations described herein relate to systems and methods for performing error correction in a flash memory device by determining suggested corrections by decoding a codeword. In addition, whether a first set of the suggested corrections obtained based on a first component code of the plurality of component codes agree with a second set of the suggested corrections obtained based on a second component code of the plurality of component codes is determined. One of accepting the first set of the suggested corrections or rejecting the first set of the suggested corrections is selected based on whether the first set of the suggested corrections and the second set of the suggested corrections agree.

Claims (51)

1. A method for error correction in a flash memory device, comprising:

obtaining suggested corrections as a result of decoding a codeword comprising a plurality of component codes, wherein the decoding is performed in connection with a read operation of data from the flash memory device;

determining whether a first set of the suggested corrections obtained based on a first component code of the plurality of component codes agree with a second set of the suggested corrections obtained based on a second component code of the plurality of component codes, wherein the determining includes identifying at least a first one of the first set of suggested corrections and at least a second one of the second set of suggested corrections that both suggest corrections for a same two or more bits from the data read from the flash memory device that are encoded by both the first and second component codes; and

applying a set of ordered rules for selecting one of accepting the first set of the suggested corrections or rejecting the first set of the suggested corrections based on whether the first set of the suggested corrections and the second set of the suggested corrections agree, wherein the set of ordered rules includes at least one rule that forces acceptance of one or more additional suggested corrections in the first set of suggested corrections in addition to the first one of the first set of suggested corrections and one or more additional suggested corrections in the second set of suggested corrections in addition to the second one of the second set of suggested corrections.

2. The method of claim 1 , wherein

the codeword corresponds to an input payload having input bits;

the input bits are organized into a pseudo triangular matrix;

each row or column of the pseudo triangular matrix differs from an adjacent row or column by two or more bits; and

the input bits are encoded using the plurality of component codes based on mapping each of the input bits to two or more of the plurality of component codes based on the pseudo triangular matrix.

3. The method of claim 2 , wherein

the pseudo triangular matrix comprises a plurality of blocks;

each of the plurality of blocks comprises two or more of the input bits;

the first component code and the second component code encode a same block of the plurality of blocks.

4. The method of claim 1 , wherein determining whether the first set of the suggested corrections agree with the second set of the suggested corrections comprises determining that the first set of the suggested corrections agrees with the second set of the suggested corrections in response to:

determining that the first set of the suggested corrections and the second set of the suggested corrections comprise a same number of suggested corrections;

determining that the first set of the suggested corrections comprises a suggested correction; and

determining that the second set of the suggest corrections comprises the same suggested correction.

5. The method of claim 4 , further comprising selecting to accept the first set of the suggested corrections and the second set of the suggested corrections in response to determining that the first set of the suggested corrections agrees with the second set of the suggested corrections, by at least one bit.

6. The method of claim 4 , wherein a same two or more bits are mapped to both the first component code and the second component code.

7. The method of claim 4 , wherein the same number of suggested corrections is the error correction capability of the first component code and the second component code.

8. The method of claim 1 , wherein determining whether the first set of the suggested corrections agree with the second set of the suggested corrections comprises determining that the first set of the suggested corrections does not agree with the second set of the suggested corrections in response to:

determining that the first set of the suggested corrections comprises a suggested correction for two or more bits that are mapped to both the first component code and the second component code; and

determining that the second set of the suggested corrections are for bits other than the two or more bits that are mapped to both the first component code and the second component code.

9. The method of claim 8 , the first set of the suggested corrections comprises a number of suggested corrections equal to an error correction capability of the first component code.

10. The method of claim 8 , further comprising rejecting the first set of the suggested corrections in response to determining that the first set of the suggested corrections does not agree with the second set of the suggested corrections.

11. The method of claim 1 , wherein determining whether the first set of the suggested corrections agree with the second set of the suggested corrections comprises determining that the first set of the suggested corrections does not agree with the second set of the suggested corrections in response to:

determining that the second set of the suggested corrections comprises a suggested correction for two or more bits that are mapped to both the first component code and the second component code; and

determining that the first set of the suggested corrections are for bits other than the two or more bits that are mapped to both the first component code and the second component code.

12. The method of claim 11 , wherein the first set of the suggested corrections comprises a number of suggested corrections equal to an error correction capability of the first component code.

13. The method of claim 11 , further comprising rejecting the first set of the suggested corrections in response to determining that the first set of the suggested corrections does not agree with the second set of the suggested corrections.

14. The method of claim 1 , wherein determining whether the first set of the suggested corrections agree with the second set of the suggested corrections comprises determining that the first set of the suggested corrections does not agree with the second set of the suggested corrections in response to determining that the first set of the suggested corrections and the second set of the suggested corrections do not have any suggested correction in common.

15. The method of claim 14 , further comprising rejecting the second set of the suggested corrections in response to determining that the first set of the suggested corrections does not agree with the second set of the suggested corrections.

16. The method of claim 14 , wherein

the first set of the suggested corrections comprises a number of suggested corrections less than an error correction capability of the first component code; and

the second set of the suggested corrections comprises a number of suggested corrections equal to an error correction capability of the second component code.

17. The method of claim 1 , wherein the plurality of component codes are Bose-Chaudhuri-Hocquenghem (BCH) components.

18. A flash memory device, comprising:

a non-volatile memory; and

a controller configured to perform error correction for the non-volatile memory by:

obtaining suggested corrections as a result of decoding a codeword comprising a plurality of component codes, wherein the decoding is performed in connection with a read operation of data from the flash memory device;

determining whether a first set of the suggested corrections obtained based on a first component code of the plurality of component codes agree with a second set of the suggested corrections obtained based on a second component code of the plurality of component codes, wherein the determining includes identifying at least a first one of the first set of suggested corrections and at least a second one of the second set of suggested corrections that both suggest corrections for a same two or more bits from the data read from the flash memory device that are encoded by both the first and second component codes; and

applying a set of ordered rules for selecting one of accepting the first set of the suggested corrections or rejecting the first set of the suggested corrections based on whether the first set of the suggested corrections and the second set of the suggested corrections agree, wherein the set of ordered rules includes at least one rule that forces acceptance of one or more additional suggested corrections in the first set of suggested corrections in addition to the first one of the first set of suggested corrections and one or more additional suggested corrections in the second set of suggested corrections in addition to the second one of the second set of suggested corrections.

19. The flash memory device of claim 18 , wherein

the codeword corresponds to an input payload having input bits;

the input bits are organized into a pseudo triangular matrix;

each row or column of the pseudo triangular matrix differs from an adjacent row or column by two or more bits; and

the input bits are encoded using the plurality of component codes based on mapping each of the input bits to two or more of the plurality of component codes based on the pseudo triangular matrix.

20. A non-transitory computer-readable medium storing computer-readable instructions, such that when executed, causes a controller of a flash memory device to perform error correction by:

obtaining suggested corrections as a result of decoding a codeword comprising a plurality of component codes, wherein the decoding is performed in connection with a read operation of data from the flash memory device;

determining whether a first set of the suggested corrections obtained based on a first component code of the plurality of component codes agree with a second set of the suggested corrections obtained based on a second component code of the plurality of component codes, wherein the determining includes identifying at least a first one of the first set of suggested corrections and at least a second one of the second set of suggested corrections that both suggest corrections for a same two or more bits from the data read from the flash memory device that are encoded by both the first and second component codes; and

applying a set of ordered rules for selecting one of accepting the first set of the suggested corrections or rejecting the first set of the suggested corrections based on whether the first set of the suggested corrections and the second set of the suggested corrections agree, wherein the set of ordered rules includes at least one rule that forces acceptance of one or more additional suggested corrections in the first set of suggested corrections in addition to the first one of the first set of suggested corrections and one or more additional suggested corrections in the second set of suggested corrections in addition to the second one of the second set of suggested corrections.

Assignments (4)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jan 13, 2022
From: STEINER, AVI; WEINGARTEN, HANAN; NADAM-OLEGNOWICZ, MEIR; KANTER, OFIR; NASSIE, AMIR
To: OCZ ISRAEL LIMITED
Reel/Frame 058644/0394 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jan 13, 2022
From: OCZ ISRAEL LIMITED
To: TOSHIBA MEMORY AMERICA, INC.
Reel/Frame 058644/0504 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jan 13, 2022
From: TOSHIBA MEMORY AMERICA, INC.
To: TOSHIBA MEMORY CORPORATION
Reel/Frame 058644/0548 →
CHANGE OF NAME Recorded Jan 13, 2022
From: TOSHIBA MEMORY CORPORATION
To: KIOXIA CORPORATION
Reel/Frame 058744/0085 →
Continuity (1)
Related Publication 20200293399A1 · Sep 17, 2020