IP Library Granted Patent US 10,176,041
Granted Patent B2
US 10,176,041 · App. 14/305,958 · Granted Jan 8, 2019

Deterministic read retry method for soft LDPC decoding in flash memories

Inventors: Yingquan Wu (Palo Alto, CA); Armin Banaei (Sunnyvale, CA)
Assignee: Tidal Systems, Inc.
G06F11/1068H03M13/1111H03M13/3723H03M13/6325
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,176,041
App. No.
14/305,958
Granted
Jan 8, 2019
Kind
B2
Abstract

A method is disclosed for performing LDPC soft decoding of data stored in a flash storage device. Upon occurrence of a hard read failure, one or more retries with soft decoding after each retry are performed until soft decoding is successful or a maximum iteration count is reached. For each retry thresholds for sensing a level of a cell are adjusted according to a specific sequence. Likewise, the LLR table for each retry is selected from pre-determined LLR tables each corresponding to a retry attempt and the thresholds used for the retry attempt. The LLR table is not adjusted between retries or based on outcomes of any retries. A step size by which thresholds adjusted may be tuned to improve performance.

Claims (34)

1. A computer system comprising:

a processor; and

a storage device comprising a plurality of memory cells;

wherein the processor is programmed to:

perform an initial read of a code word from the plurality of cells using one or more voltage threshold levels;

determine a sequence of voltage threshold level adjustments;

perform the sequence of voltage threshold level adjustments on the one or more-voltage threshold levels to obtain one or more current voltage threshold levels based on an iteration count, wherein an iteration count is a quantity of times the one or more voltage threshold levels are adjusted;

retry reading the code word from the plurality of cells of the storage device using the one or more current voltage threshold levels;

attempt to decode the code word using a log likelihood ratio (LLR) table of a plurality of LLR tables, each LLR table of the plurality of LLR tables corresponding to the iteration count; and

if attempting to decode the code word is unsuccessful and the iteration count is less than a maximum iteration count, readjust the one or more voltage threshold levels using the respective sequence of voltage threshold level adjustments corresponding to the respective iteration count, retry reading the code word, and re-attempt to decode the code word;

wherein entries of the plurality of LLR tables are determined according to the sequence of voltage threshold level adjustments, and wherein the entries of the plurality of LLR tables are fixed and are not adjusted as a result of the decoding re-attempts and the read retries.

2. The computer system of claim 1 , wherein each LLR table of the plurality of LLR tables includes entries for less than all possible outcomes of outcomes of retrying reading the code word from the plurality of cells while performing the retry reading of the code word for the iteration count corresponding to the each LLR table.

3. The computer system of claim 1 , wherein the storage device is a NAND flash device.

4. The computer system of claim 1 , wherein the storage device is a multi-level cell NAND flash device.

5. The computer system of claim 1 , wherein the storage device is a three-level cell NAND flash device.

6. The computer system of claim 1 , wherein adjusting the one or more-voltage threshold levels to obtain the one or more current voltage threshold levels based on the iteration count comprises adjusting a plurality of threshold voltage levels according to two or more different step sizes.

7. The computer system of claim 1 , wherein the maximum iteration count is 6.

8. The computer system of claim 1 , wherein attempting to decode the code word comprises performing low density parity check (LDPC) decoding.

9. A method comprising:

performing an initial read of a code word from a plurality of cells of a storage device using one or more voltage threshold levels;

determining a sequence of voltage threshold adjustments;

performing the sequence of voltage threshold level adjustments on the one or more voltage threshold levels to obtain one or more current voltage threshold levels based on an iteration count, the one or more current voltage threshold levels for each value of the iteration count having different voltage threshold levels, wherein an iteration count is a quantity of times the one or more voltage-threshold levels are adjusted;

retrying reading the code word from the plurality of cells of the storage device using the one or more current voltage threshold levels;

attempting to decode the code word using a log likelihood ratio (LLR) table of a plurality of LLR tables, each LLR table of the plurality of LLR tables corresponding to the iteration count; and

if attempting to decode the code word is unsuccessful and the iteration count is less than a maximum iteration count, iterating through readjusting the one or more voltage threshold levels using the respective sequence of voltage threshold level adjustments corresponding to the respective iteration count, retrying reading of the code word, and re-attempting to decode the code word;

wherein entries of the plurality of LLR tables are determined according to the sequence of voltage threshold level adjustments, and wherein the entries of the plurality of LLR tables are fixed and are not adjusted as a result of the decoding re-attempts and the read retries.

10. The method of claim 9 , wherein each LLR table of the plurality of LLR tables includes entries for less than all possible outcomes of outcomes of retrying reading the code word from the plurality of cells while performing the retrying reading of the code word for the iteration count corresponding to the each LLR table.

11. The method of claim 9 , wherein the storage device is a NAND flash device.

12. The method of claim 9 , wherein the storage device is a multi-level cell NAND flash device.

13. The method of claim 9 , wherein the storage device is a three-level cell NAND flash device.

14. The method of claim 9 , wherein adjusting the one or more voltage threshold levels to obtain the one or more current voltage threshold levels based on the iteration count comprises adjusting a plurality of voltage threshold levels according to two or more different step sizes.

15. The method of claim 9 , wherein the maximum iteration count is 6.

16. The method of claim 9 , wherein attempting to decode the code word comprises performing low density parity check (LDPC) decoding.

17. The computer system of claim 1 , wherein adjusting the one or more voltage threshold levels to obtain the one or more current voltage threshold levels based on the iteration count comprises adjusting the one or more voltage threshold levels according to a step size adjusted on the fly.

Assignments (9)
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 050937/0001 →
RELEASE OF SECURITY INTEREST Recorded Aug 23, 2018
From: U.S. BANK NATIONAL ASSOCIATION, AS COLLATERAL AGENT
To: MICRON TECHNOLOGY, INC.
Reel/Frame 047243/0001 →
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 →
CORRECTIVE ASSIGNMENT TO CORRECT THE REPLACE ERRONEOUSLY FILED PATENT #7358718 WITH THE CORRECT PATENT #7358178 PREVIOUSLY RECORDED ON REEL 038669 FRAME 0001. ASSIGNOR(S) HEREBY CONFIRMS THE SECURITY INTEREST. Recorded Jun 8, 2017
From: MICRON TECHNOLOGY, INC.
To: U.S. BANK NATIONAL ASSOCIATION, AS COLLATERAL AGENT
Reel/Frame 043079/0001 →
PATENT SECURITY AGREEMENT Recorded Jun 2, 2016
From: MICRON TECHNOLOGY, INC.
To: MORGAN STANLEY SENIOR FUNDING, INC., AS COLLATERAL AGENT
Reel/Frame 038954/0001 →
SECURITY INTEREST Recorded May 12, 2016
From: MICRON TECHNOLOGY, INC.
To: U.S. BANK NATIONAL ASSOCIATION, AS COLLATERAL AGENT
Reel/Frame 038669/0001 →
CORRECTIVE ASSIGNMENT TO CORRECT THE ASSIGNEE NAME PREVIOUSLY RECORDED AT REEL: 033112 FRAME: 0775. ASSIGNOR(S) HEREBY CONFIRMS THE ASSIGNMENT. Recorded Aug 27, 2015
From: WU, YINGQUAN; BANAEI, ARMIN
To: TIDAL SYSTEMS, INC.
Reel/Frame 036502/0070 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jun 16, 2014
From: WU, YINGQUAN; BANAEI, ARMIN
To: TIDAL SYSTEMS
Reel/Frame 033112/0775 →
Continuity (1)
Related Publication 20150365106A1 · Dec 17, 2015
Cited By (3)
US 12,585,585 US 12,681,804 US 12,718,890