IP Library Granted Patent US 8,607,124
Granted Patent B2
US 8,607,124 · App. 12/973,494 · Granted Dec 10, 2013

System and method for setting a flash memory cell read threshold

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 8,607,124
App. No.
12/973,494
Granted
Dec 10, 2013
Kind
B2
Abstract

A system, method and computer readable medium for performing a first read attempt of multiple codeword portions while using a first read threshold candidate to provide multiple first read results, wherein the multiple codeword portions are stored in multiple flash memory cells; calculating a first read threshold candidate error correction decoding based score; wherein the calculating comprises error correction decoding of the multiple first read results; performing a second read attempt of the multiple codeword portions while using a second read threshold candidate to provide multiple second read results; calculating a second read threshold candidate error correction decoding based score; wherein the calculating comprises error correction decoding of the multiple second read results; and selecting a first read threshold out of the first and second read threshold candidates based on a relationship between the first and second read threshold candidate error correction decoding based scores.

Claims (25)

1. A method for selecting a first read threshold, the method comprising: performing a first read attempt of multiple codeword portions using a first read threshold candidate to provide multiple first read results; calculating a first read threshold candidate error correction decoding based score, the calculation including error correction decoding of the multiple first read results; performing a second read attempt of the multiple codeword portions using a second read threshold candidate to provide multiple second read results; calculating a second read threshold candidate error correction decoding based score, the calculation including error correction decoding of the multiple second read results; comparing the first and the second read threshold candidate error correction decoding based scores; selecting a first read threshold based on a result of the comparing step; error-correction decoding of the multiple first read results to provide multiple first decoding results; assigning a score to each of the multiple first decoding result; and calculating the first read threshold candidate error correction decoding based score using the assigned scores of the multiple first decoding results.

2. The method of claim 1 , wherein the assigned scores are indicative of whether the error correction decoding detected an error, and whether a codeword portion associated with the first decoding result is uncorrectable by the error correction decoding.

3. The method of claim 1 , further including applying a Hamming error correction decoding scheme to the error-correction decoding.

4. A method for selecting a first read threshold, the method comprising: performing a first read attempt of multiple codeword portions using a first read threshold candidate to provide multiple first read results; calculating a first read threshold candidate error correction decoding based score, the calculation including error correction decoding of the multiple first read results; performing a second read attempt of the multiple codeword portions using a second read threshold candidate to provide multiple second read results; calculating a second read threshold candidate error correction decoding based score, the calculation including error correction decoding of the multiple second read results; comparing the first and the second read threshold candidate error correction decoding based scores; selecting a first read threshold based on a result of the comparing step; error-correction decoding of information units to provide multiple first decoding results, wherein each information unit includes a first read result and one or more stuffing bits; and determining that a first decoding result is uncorrectable if the corresponding error correction decoding indicates that at least one of the stuffing bits is erroneous.

5. A method for selecting a first read threshold, the method comprising: performing a first read attempt of multiple codeword portions using a first read threshold candidate to provide multiple first read results; calculating a first read threshold candidate error correction decoding based score, the calculation including error correction decoding of the multiple first read results; performing a second read attempt of the multiple codeword portions using a second read threshold candidate to provide multiple second read results; calculating a second read threshold candidate error correction decoding based score, the calculation including error correction decoding of the multiple second read results; comparing the first and the second read threshold candidate error correction decoding based scores; selecting a first read threshold based on a result of the comparing step; error-correction decoding of information units to provide multiple first decoding results, wherein each information unit includes a first read result and one or more stuffing bits; and determining that a first decoding result is uncorrectable if the corresponding error correction decoding indicates an error that is associated with a threshold voltage outside an allowable range of threshold voltages.

6. A method for selecting a first read threshold, the method comprising: performing a first read attempt of multiple codeword portions using a first read threshold candidate to provide multiple first read results; performing a second read attempt of the multiple codeword portions using a second read threshold candidate to provide multiple second read results; calculating a first read threshold candidate distribution-based score and a second read threshold distribution-based score based on a distribution of values of threshold voltages of the multiple flash memory cells; comparing the first and the second read threshold candidate error correction decoding based scores; and selecting a first read threshold based on a result of the comparing step; calculating a first score using a weighted sum of the first read threshold candidate distribution-based score and the first read threshold candidate error correction decoding based score; calculating a second score using a weighted sum of the second read threshold candidate distribution-based score and the second read threshold candidate error correction decoding based score; and selecting a first read threshold from the first and the second read threshold candidates using the values of the first score and the second score.

7. The method of claim 6 , further including determining a weight of the first read threshold candidate error correction decoding based score using an estimation of an amount of errors in the first codeword portions read results.

8. The method of claim 7 , further including determining the weight of the first read threshold candidate distribution based score using an estimation of an amount of errors in the first codeword portions read results.

9. The method of claim 6 , wherein calculating of the first score includes: calculating a first product by multiplying a weight by the first read threshold candidate distribution-based score; and adding the first product to the first read threshold candidate error correction decoding based score.

10. A method for selecting a first read threshold, the method comprising: performing a first read attempt of multiple codeword portions using a first read threshold candidate to provide multiple first read results; performing a second read attempt of the multiple codeword portions using a second read threshold candidate to provide multiple second read results; calculating a first read threshold candidate distribution-based score and a second read threshold distribution-based score based on a distribution of values of threshold voltages of the multiple flash memory cells; comparing the first and the second read threshold candidate error correction decoding based scores; and selecting a first read threshold based on a result of the comparing step; performing at least one additional read attempt of multiple codeword portions stored in the multiple flash memory cells using at least one additional read threshold candidate to provide multiple additional read results; calculating at least one additional read threshold candidate error correction decoding based score, the calculation including error correction decoding of the multiple additional read results; calculating at least one additional read threshold candidate distribution-based score using a distribution of values of voltage threshold of the multiple flash memory cells; and including the at least one additional read threshold candidate error correction decoding based score and the at least one additional read threshold candidate distribution-based score in the comparing step.

11. A method for selecting a first read threshold, the method comprising: performing a first read attempt of multiple codeword portions using a first read threshold candidate to provide multiple first read results; calculating a first read threshold candidate error correction decoding based score, the calculation including error correction decoding of the multiple first read results; performing a second read attempt of the multiple codeword portions using a second read threshold candidate to provide multiple second read results; calculating a second read threshold candidate error correction decoding based score, the calculation including error correction decoding of the multiple second read results; comparing the first and the second read threshold candidate error correction decoding based scores; selecting a first read threshold based on a result of the comparing step; selecting a set of read thresholds that differ from each other, the selecting of a currently evaluated read threshold including: performing a first read attempt of multiple codeword portions using a first read threshold candidate associated with the currently evaluated read threshold to provide multiple first read results; calculating a first read threshold candidate error correction decoding based score, the calculation including error correction decoding of the multiple first read results; performing a second read attempt of the multiple codeword portions using a second read threshold candidate associated with the currently evaluated read threshold to provide multiple second read results; calculating a second read threshold candidate error correction decoding based score, the calculation including error correction decoding of the multiple second read results.

12. The method of claim 11 , wherein the set of selected read thresholds includes most significant bit read thresholds and least significant bit read thresholds.

13. A method for selecting a first read threshold, the method comprising: performing a first read attempt of multiple codeword portions using a first read threshold candidate to provide multiple first read results; calculating a first read threshold candidate error correction decoding based score, the calculation including error correction decoding of the multiple first read results; performing a second read attempt of the multiple codeword portions using a second read threshold candidate to provide multiple second read results; calculating a second read threshold candidate error correction decoding based score, the calculation including error correction decoding of the multiple second read results; comparing the first and the second read threshold candidate error correction decoding based scores; selecting a first read threshold based on a result of the comparing step; calculating a first read threshold candidate distribution-based score by counting a number of flash memory cells that have a threshold voltage that is between each pair of read threshold candidates.

14. A method for selecting a first read threshold, the method comprising: performing a first read attempt of multiple codeword portions using a first read threshold candidate to provide multiple first read results; calculating a first read threshold candidate error correction decoding based score, the calculation including error correction decoding of the multiple first read results; performing a second read attempt of the multiple codeword portions using a second read threshold candidate to provide multiple second read results; calculating a second read threshold candidate error correction decoding based score, the calculation including error correction decoding of the multiple second read results; comparing the first and the second read threshold candidate error correction decoding based scores; selecting a first read threshold based on a result of the comparing step; selecting a selected read threshold out of a group of k read threshold candidates, wherein k is greater than three; the selecting including calculating a score of a k read threshold candidate by: calculating a first product by multiplying a weight by a k read threshold candidate read threshold candidate distribution-based score, wherein the k read threshold candidate distribution-based score equals a number of flash memory cells that have a threshold voltage within a range that starts at a (k−1) read threshold candidate and ends at a (k+1) read threshold candidate; and adding the first product to a k read threshold candidate error correction decoding based score.

15. A non-transitory computer readable medium having stored thereon instructions which when executed by a processor cause the processor to perform the method of: performing a first read attempt of multiple codeword portions using a first read threshold candidate to provide multiple first read results; calculating a first read threshold candidate error correction decoding based score, the calculation including error correction decoding of the multiple first read results; performing a second read attempt of the multiple codeword portions using a second read threshold candidate to provide multiple second read results; calculating a second read threshold candidate error correction decoding based score, the calculation including error correction decoding of the multiple second read results; comparing the first and the second read threshold candidate error correction decoding based scores; and selecting a first read threshold based on a result of the comparing step; error-correction decoding of the multiple first read results to provide multiple first decoding results; assigning a score to each of the multiple first decoding result; and calculating the first read threshold candidate error correction decoding based score using the assigned scores of the multiple first decoding results.

16. The non-transitory computer readable medium of claim 15 , wherein the assigned scores are is indicative of whether the error correction decoding detected an error, and whether a codeword portion associated with the first decoding result is uncorrectable by the error correction decoding.

17. The non-transitory computer readable medium of claim 15 , further including instructions that cause the processor to perform the step of applying a Hamming error correction decoding scheme to the error-correction decoding.

18. A non-transitory computer readable medium having stored thereon instructions which when executed by a processor cause the processor to perform the method of: performing a first read attempt of multiple codeword portions using a first read threshold candidate to provide multiple first read results; calculating a first read threshold candidate error correction decoding based score, the calculation including error correction decoding of the multiple first read results; performing a second read attempt of the multiple codeword portions using a second read threshold candidate to provide multiple second read results; calculating a second read threshold candidate error correction decoding based score, the calculation including error correction decoding of the multiple second read results; comparing the first and the second read threshold candidate error correction decoding based scores; and selecting a first read threshold based on a result of the comparing step; error-correction decoding of information units to provide multiple first decoding results, wherein each information unit includes a first read result and one or more stuffing bits; and determining that a first decoding result is uncorrectable if the corresponding error correction decoding indicates that at least one of the stuffing bits is erroneous.

19. A non-transitory computer readable medium having stored thereon instructions which when executed by a processor cause the processor to perform the method of: performing a first read attempt of multiple codeword portions using a first read threshold candidate to provide multiple first read results; calculating a first read threshold candidate error correction decoding based score, the calculation including error correction decoding of the multiple first read results; performing a second read attempt of the multiple codeword portions using a second read threshold candidate to provide multiple second read results; calculating a second read threshold candidate error correction decoding based score, the calculation including error correction decoding of the multiple second read results; comparing the first and the second read threshold candidate error correction decoding based scores; and selecting a first read threshold based on a result of the comparing step; error-correction decoding of information units to provide multiple first decoding results, wherein each information unit includes a first read result and one or more stuffing bits; and determining that a first decoding result is uncorrectable if the corresponding error correction decoding indicates an error that is associated with a threshold voltage outside an allowable range of threshold voltages.

20. A non-transitory computer readable medium having stored thereon instructions which when executed by a processor cause the processor to perform the method of: performing a first read attempt of multiple codeword portions using a first read threshold candidate to provide multiple first read results; calculating a first read threshold candidate error correction decoding based score, the calculation including error correction decoding of the multiple first read results; performing a second read attempt of the multiple codeword portions using a second read threshold candidate to provide multiple second read results; calculating a second read threshold candidate error correction decoding based score, the calculation including error correction decoding of the multiple second read results; comparing the first and the second read threshold candidate error correction decoding based scores; and selecting a first read threshold based on a result of the comparing step; calculating a first read threshold candidate distribution-based score and a second read threshold distribution-based score based on a distribution of values of threshold voltages of the multiple flash memory cells; and including the first read threshold candidate distribution-based score and the second read threshold distribution-based score in the comparing step.

21. The non-transitory computer readable medium of claim 20 , further including instructions that cause the processor to perform the steps of: calculating a first score using a weighted sum of the first read threshold candidate distribution-based score and the first read threshold candidate error correction decoding based score; calculating a second score using a weighted sum of the second read threshold candidate distribution-based score and the second read threshold candidate error correction decoding based score; and selecting a first read threshold from the first and the second read threshold candidates using the values of the first score and the second score.

22. The non-transitory computer readable medium of claim 21 , further including instructions that cause the processor to perform the step of determining a weight of the first read threshold candidate error correction decoding based score using an estimation of an amount of errors in the first codeword portions read results.

23. A method for selecting a first read threshold, the method comprising: performing a first read attempt of multiple codeword portions using a first read threshold candidate to provide multiple first read results; calculating a first read threshold candidate error correction decoding based score, the calculation including error correction decoding of the multiple first read results; performing a second read attempt of the multiple codeword portions using a second read threshold candidate to provide multiple second read results; calculating a second read threshold candidate error correction decoding based score, the calculation including error correction decoding of the multiple second read results; comparing the first and the second read threshold candidate error correction decoding based scores; selecting a first read threshold based on a result of the comparing step; estimating a log likelihood ratio (LLR) of a cell being located between a certain threshold bin; using the estimated LLR as a reference of a reliability of a value a certain cell obtains.

24. The method of claim 23 , wherein an error correction decoding based score is used as the LLR estimation.

25. The method of claim 23 , wherein the LLR estimation is performed prior to applying a soft decoding procedure on the content of a flash memory cell.

Assignments (9)
MERGER Recorded Mar 3, 2023
From: AVAGO TECHNOLOGIES INTERNATIONAL SALES PTE. LIMITED; BROADCOM INTERNATIONAL PTE. LTD.
To: AVAGO TECHNOLOGIES INTERNATIONAL SALES PTE. LIMITED
Reel/Frame 062952/0850 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Sep 14, 2020
From: AVAGO TECHNOLOGIES INTERNATIONAL SALES PTE. LIMITED
To: BROADCOM INTERNATIONAL PTE. LTD.
Reel/Frame 053771/0901 →
CORRECTIVE ASSIGNMENT TO CORRECT THE EXECUTION DATE PREVIOUSLY RECORDED AT REEL: 047422 FRAME: 0464. ASSIGNOR(S) HEREBY CONFIRMS THE MERGER. Recorded Mar 6, 2019
From: AVAGO TECHNOLOGIES GENERAL IP (SINGAPORE) PTE. LTD.
To: AVAGO TECHNOLOGIES INTERNATIONAL SALES PTE. LIMITED
Reel/Frame 048883/0702 →
MERGER Recorded Oct 5, 2018
From: AVAGO TECHNOLOGIES GENERAL IP (SINGAPORE) PTE. LTD.
To: AVAGO TECHNOLOGIES INTERNATIONAL SALES PTE. LIMITED
Reel/Frame 047422/0464 →
RELEASE OF SECURITY INTEREST Recorded Jan 11, 2017
From: KREOS CAPITAL IV (EXPERT FUND) LIMITED
To: DENSBITS TECHNOLOGIES LTD.
Reel/Frame 041339/0921 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jan 27, 2016
From: DENSBITS TECHNOLOGIES LTD.
To: AVAGO TECHNOLOGIES GENERAL IP (SINGAPORE) PTE. LTD.
Reel/Frame 037622/0224 →
SECURITY INTEREST Recorded Mar 18, 2015
From: DENSBITS TECHNOLOGIES LTD.
To: KREOS CAPITAL IV (EXPERT FUND) LIMITED
Reel/Frame 035222/0547 →
SECURITY INTEREST Recorded Jul 30, 2014
From: DENSBITS TECHNOLOGIES LTD.
To: KREOS CAPITAL IV (EXPERT FUND) LIMITED
Reel/Frame 033444/0628 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jun 6, 2011
From: WEINGARTEN, HANAN
To: DENSBITS TECHNOLOGIES LTD.
Reel/Frame 026392/0933 →