IP Library Granted Patent US 10,417,087
Granted Patent B2
US 10,417,087 · App. 15/723,041 · Granted Sep 17, 2019

System and method for adaptive multiple read of NAND flash

Inventor: Guangming Lu (Irvine, CA)
Assignee: NGD Systems, Inc.
G06F11/1068G06F11/1012G11C11/5642G11C16/26G11C16/28G11C29/021G11C29/028G11C29/52H03M13/1108H03M13/2906H03M13/2951H03M13/3707H03M13/3723H03M13/3769H03M13/6325G11C29/42G11C2029/0411H03M13/09H03M13/1111
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,417,087
App. No.
15/723,041
Granted
Sep 17, 2019
Kind
B2
Abstract

A system and method for adaptive multiple read of NAND flash memory. A solid state drive may employ adaptive multiple-read to perform enhanced performance error correction using soft decisions without a performance penalty that otherwise might result from performing unnecessary reads. The soft decision error correcting algorithm may employ lookup tables containing log likelihood ratios. The method may include performing one or more read operations to obtain one or more raw data words for a code word, attempting to decode the code words using the one or more raw data words, and performing additional read operations when the decoding attempt fails. This process may be repeated until a decoding attempt succeeds.

Claims (75)

1. A method for reading data, the method comprising:

performing a first read operation on a first plurality of flash memory cells, at a first reference voltage, to form a first raw data word;

executing a first error correction code decoding attempt with the first raw data word;

when the first error correction code decoding attempt succeeds:

outputting a decoded data word generated by the first error correction code decoding attempt; and

when the first error correction code decoding attempt does not succeed:

performing a second read operation on the first plurality of flash memory cells, at a second reference voltage, to form a second raw data word; and

executing a second error correction code decoding attempt with both the first raw data word and the second raw data word.

2. The method of claim 1 , wherein the performing of the first read operation comprises storing the first raw data word in a buffer, the buffer having sufficient capacity to store the first raw data word and the second raw data word.

3. The method of claim 1 , wherein the performing of the second error correction code decoding attempt comprises fetching, from a first lookup table, a log likelihood ratio corresponding to:

a bit of the first raw data word; and

a corresponding bit of the second raw data word.

4. The method of claim 1 , further comprising,

when the second error correction code decoding attempt succeeds:

outputting a decoded data word generated by the second error correction code decoding attempt; and

when the second error correction code decoding attempt does not succeed:

performing a third read operation on the first plurality of flash memory cells, at a third reference voltage, to form a third raw data word; and

executing a third error correction code decoding attempt with the first raw data word, the second raw data word, and the third raw data word.

5. The method of claim 4 , wherein the performing of the third error correction code decoding attempt comprises fetching, from a second lookup table, a log likelihood ratio corresponding to:

a bit of the first raw data word;

a corresponding bit of the second raw data word; and

a corresponding bit of the third raw data word.

6. The method of claim 1 , further comprising:

performing a third read operation on a second plurality of flash memory cells, at the first reference voltage, to form a third raw data word, the second plurality of flash memory cells being in one page of flash memory with the first plurality of flash memory cells; and

when the first error correction code decoding attempt does not succeed:

performing a fourth read operation on the second plurality of flash memory cells, at the second reference voltage, to form a fourth raw data word.

7. The method of claim 6 , further comprising:

when the second error correction code decoding attempt succeeds:

performing a third error correction code decoding attempt with the third raw data word and the fourth raw data word.

8. The method of claim 7 , further comprising:

when the third error correction code decoding attempt succeeds:

outputting a decoded data word generated by the third error correction code decoding attempt; and

when the third error correction code decoding attempt does not succeed:

performing a fifth read operation on the second plurality of flash memory cells, at a third reference voltage, to form a fifth raw data word; and

executing a fourth error correction code decoding attempt with the third raw data word, the fourth raw data word, and the fifth raw data word.

9. A solid state drive, comprising:

flash memory; and

a processing circuit,

the processing circuit being configured to:

perform a first read operation on a first plurality of flash memory cells, at a first reference voltage, to form a first raw data word;

execute a first error correction code decoding attempt with the first raw data word;

when the first error correction code decoding attempt succeeds:

output a decoded data word generated by the first error correction code decoding attempt; and

when the first error correction code decoding attempt does not succeed:

perform a second read operation on the first plurality of flash memory cells, at a second reference voltage, to form a second raw data word; and

execute a second error correction code decoding attempt with both the first raw data word and the second raw data word.

10. The solid state drive of claim 9 , wherein the performing of the first read operation comprises storing the first raw data word in a buffer, the buffer having sufficient capacity to store the first raw data word and the second raw data word.

11. The solid state drive of claim 9 , wherein the performing of the second error correction code decoding attempt comprises fetching, from a first lookup table, a log likelihood ratio corresponding to:

a bit of the first raw data word; and

a corresponding bit of the second raw data word.

12. The solid state drive of claim 9 , wherein the processing circuit is further configured to:

when the second error correction code decoding attempt succeeds:

output a decoded data word generated by the second error correction code decoding attempt; and

when the second error correction code decoding attempt does not succeed:

perform a third read operation on the first plurality of flash memory cells, at a third reference voltage, to form a third raw data word; and

execute a third error correction code decoding attempt with the first raw data word, the second raw data word, and the third raw data word.

13. The solid state drive of claim 12 , wherein the performing of the third error correction code decoding attempt comprises fetching, from a second lookup table, a log likelihood ratio corresponding to:

a bit of the first raw data word;

a corresponding bit of the second raw data word; and

a corresponding bit of the third raw data word.

14. The solid state drive of claim 9 , wherein the processing circuit is further configured to:

perform a third read operation on a second plurality of flash memory cells, at the first reference voltage, to form a third raw data word, the second plurality of flash memory cells being in one page of flash memory with the first plurality of flash memory cells; and

when the first error correction code decoding attempt does not succeed:

perform a fourth read operation on the second plurality of flash memory cells, at the second reference voltage, to form a fourth raw data word.

15. The solid state drive of claim 14 , wherein the processing circuit is further configured to:

when the second error correction code decoding attempt succeeds:

perform a third error correction code decoding attempt with the third raw data word and the fourth raw data word.

16. The solid state drive of claim 15 , wherein the processing circuit is further configured to:

when the third error correction code decoding attempt succeeds:

output a decoded data word generated by the third error correction code decoding attempt; and

when the third error correction code decoding attempt does not succeed:

perform a fifth read operation on the second plurality of flash memory cells, at a third reference voltage, to form a fifth raw data word; and

execute a fourth error correction code decoding attempt with the third raw data word, the fourth raw data word, and the fifth raw data word.

17. The method of claim 1 , further comprising, after at least two decoding attempts, the last of which succeeded, adjusting the first reference voltage, based on one or more statistics of differences, the differences including the difference between a raw data word and a decoded data word generated by the successful error correction code decoding attempt.

18. The solid state drive of claim 9 , wherein the processing circuit is configured, after at least two decoding attempts, the last of which succeeded, to adjust the first reference voltage, based on one or more statistics of differences, the differences including the difference between a raw data word and a decoded data word generated by the successful error correction code decoding attempt.

Assignments (4)
CORRECTIVE ASSIGNMENT TO CORRECT THE NAME OF CONVEYING PARTY PREVIOUSLY RECORDED AT REEL: 69518 FRAME: 243. ASSIGNOR(S) HEREBY CONFIRMS THE ASSET PURCHASE AGREEMENT. Recorded Jan 29, 2025
From: NGD SYSTEMS, INC.
To: NETLIST, INC.
Reel/Frame 070163/0719 →
ASSET PURCHASE AGREEMENT Recorded Dec 5, 2024
From: CMBG-FBC NGD SYSTEMS, LLC
To: NETLIST, INC.
Reel/Frame 069518/0243 →
SECURITY INTEREST Recorded Nov 3, 2021
From: NGD SYSTEMS, INC.
To: SILICON VALLEY BANK
Reel/Frame 058012/0289 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Feb 12, 2018
From: LU, GUANGMING
To: NGD SYSTEMS, INC.
Reel/Frame 044902/0033 →
Continuity (5)
Continuation In Part 15230075 · Aug 5, 2016
Continuation In Part 14806063 · Jul 22, 2015
Provisional Application 62403610 · Oct 3, 2016
Provisional Application 62027683 · Jul 22, 2014
Related Publication 20180024881A1 · Jan 25, 2018