IP Library › Granted Patent US 10,587,288
Granted Patent B1
US 10,587,288 · App. 15/173,137 · Granted Mar 10, 2020

Systems and methods for iterative coding of product codes in nand FLASH controllers

Inventors: Shashi Kiran Chilappagari (San Jose, CA); Phong Sy Nguyen (Ho Chi Minh, VN)
Assignee: Marvell International Ltd.
H03M13/2948G06F11/1068G11C29/52H03M13/45
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,587,288
App. No.
15/173,137
Filed
Jun 3, 2016
Granted
Mar 10, 2020
Kind
B1
Examiner
AHMED, ENAM
Art Unit
2112
USPC
714/774
Abstract

Systems and methods for decoding a product code is provided. The system comprises a media, a first buffer, a second buffer, and a decoder. The media stores a plurality of codewords of a first code of the product code. The first buffer temporarily stores at least one codeword that has failed to be decoded. The second buffer temporarily stores soft information to be used in decoding. The decoder is configured to decode the plurality of codewords, determine if a first count of the at least one failed codeword exceeds a designed maximum number of codewords recoverable using the decoding method. In response to determining that the first count does not exceed the predefined threshold, the decoder iteratively process each failed codeword of the at least one failed codeword with the soft information, and attempt to decode at least one of each failed codeword that has been iteratively processed.

Claims (47)

1. A method for recovering memory failure when decoding codewords encoded by a product code from a memory, the method comprising:

retrieving, from a first memory section of the memory, for decoding, a plurality of codewords encoded by a first code of the product code;

for each codeword from the plurality of codewords, storing, at a buffer the respective codeword and soft information relating to a decoding process of the respective codeword when the respective codeword failed to be decoded by a decoder;

determining if a first count of the codewords that failed to be decoded by the decoder exceeds a predefined threshold indicative of a predefined number of codewords that the decoder can recover;

in response to determining that the first count does not exceed the predefined threshold:

retrieving, from the buffer, the stored codewords that failed to be decoded by the decoder and the soft information relating to the respective decoding process of each codeword;

iteratively decoding, by the same decoder, the stored codewords that failed to be decoded by reusing buffered soft information; and

transmitting the iteratively decoded codewords from the decoder to a second memory section of the memory.

2. The method of claim 1 , wherein the buffered soft information is updated based on a second code of the product code.

3. The method of claim 2 , wherein the buffered soft information is updated each time one of the plurality of codewords is successfully decoded.

4. The method of claim 2 , wherein the buffered soft information is updated only once at the beginning of the iterative processing of the plurality of codewords.

5. The method of claim 1 , further comprising:

successfully decoding at least one of the stored codewords that has been iteratively processed to produce a decoded codeword; and

updating the buffered soft information with at least one of the stored codewords that has been iteratively processed.

6. The method of claim 5 , further comprising updating the buffered soft information with the decoded codeword.

7. The method of claim 5 , wherein at least one of the stored codewords that has been iteratively processed is successfully decoded based on a decoding rule.

8. The method of claim 7 , further comprising attempting to decode subsequent codewords of the stored codewords that has been iteratively processed based on the decoding rule.

9. The method of claim 1 , wherein the each failed codeword of the stored codewords is iteratively processed in a serial fashion.

10. The method of claim 1 , further comprising:

determining a second count of failed codewords that failed to be decoded after one complete iteration of the plurality of codewords;

iteratively processing each failed codeword of the second count of failed codewords with the buffered soft information; and

attempting to decode each processed codeword of the second count of failed codewords.

11. The method of claim 1 , wherein the predefined threshold is a designed maximum number of failures recoverable with the method of decoding.

12. A system for recovering memory failure when decoding codewords encoded by a product code from a memory, the system comprising:

a decoder configured to retrieve, from a first memory section of the memory, the plurality of codewords encoded by a first code of the product code; the system further comprising:

for each codeword from the plurality of codewords, a buffer configured to store the respective codeword and soft information relating to a decoding process of the respective codeword when the respective codewords failed to be decoded by a decoder;

the decoder being further configured to:

determine if a first count of the codewords that failed to be decoded by the decoder exceeds a predefined threshold indicative of a maximum number of codewords that the decoder can recover;

in response to determining that the first count does not exceed the predefined threshold:

retrieve, from the buffer, the stored codewords that failed to be decoded by the decoder and the soft information relating to the respective decoding process of each codeword;

iteratively decode, by the same decoder, the stored codewords that failed to be decoded, by reusing the soft information; and

transmit the iteratively decoded codewords from the decoder to a second memory section of the memory.

13. The system of claim 12 , wherein the soft information is updated based on a second code of the product code.

14. The system of claim 13 , wherein the soft information is updated each time one of the plurality of codewords is successfully decoded.

15. The system of claim 13 , wherein the soft information is updated only once at the beginning of the iterative processing of the plurality of codewords.

16. The system of claim 12 , wherein the decoder is further configured to:

successfully decode at least one of the saved codewords that has been iteratively processed to produce a decoded codeword; and

update the soft information with at least one of the saved codewords that has been iteratively processed.

17. The system of claim 16 , wherein the decoder is further configured to update the soft information with the decoded codeword.

18. The system of claim 16 , wherein at least one of the saved codewords that has been iteratively processed is successfully decoded based on a decoding rule.

19. The system of claim 18 , wherein the decoder is further configured to attempt to decode subsequent codewords of the saved codewords that has been iteratively processed based on the decoding rule.

20. The system of claim 12 , wherein the each failed codeword of the at least one failed codeword is iteratively processed in a serial fashion.

21. The system of claim 12 , wherein the decoder is further configured to:

determine a second count of failed codewords that failed to be decoded after one complete iteration of the plurality of codewords;

iteratively process each failed codeword of the second count of failed codewords with the soft information; and

attempt to decode each processed codeword of the second count of failed codewords.

22. The system of claim 12 , wherein the predefined threshold is a designed maximum number of failures recoverable with the method of decoding.

Assignments (6)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jun 16, 2020
From: CAVIUM INTERNATIONAL
To: MARVELL ASIA PTE, LTD.
Reel/Frame 053475/0001 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Feb 20, 2020
From: MARVELL INTERNATIONAL LTD.
To: CAVIUM INTERNATIONAL
Reel/Frame 052918/0001 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Mar 31, 2017
From: CHILAPPAGARI, SHASHI KIRAN
To: MARVELL SEMICONDUCTOR, INC.
Reel/Frame 041815/0796 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Mar 31, 2017
From: MARVELL SEMICONDUCTOR, INC.
To: MARVELL INTERNATIONAL LTD.
Reel/Frame 041815/0909 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Mar 31, 2017
From: NGUYEN, PHONG SY
To: MARVELL TECHNOLOGY VIETNAM LLC.
Reel/Frame 041815/0916 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Mar 31, 2017
From: MARVELL TECHNOLOGY VIETNAM LLC.
To: MARVELL INTERNATIONAL LTD.
Reel/Frame 041816/0056 →
Continuity (1)
Provisional Application 62170935 · Jun 4, 2015
Cited By (1)
US 12,694,941