IP Library Granted Patent US 9,136,011
Granted Patent B2
US 9,136,011 · App. 13/843,225 · Granted Sep 15, 2015

Soft information module

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 9,136,011
App. No.
13/843,225
Granted
Sep 15, 2015
Kind
B2
Abstract

A system and method for generating reliability information, such as “soft information,” from a flash memory device is disclosed. A plurality of memory cells are read by a data storage controller at a first read level to obtain a plurality of program values. On an error indicator being received in connection with reading the plurality of memory cells, the plurality of memory cells are read one or more times at one or more different read levels to categorize the plurality of memory cells into two or more cell program regions. A confidence value is then assigned to each memory cell based on a corresponding cell program region for the memory cell, the confidence value being representative of a likelihood that the memory cell is programmed to a corresponding program value read at the first read level.

Claims (53)

1. A method for generating reliability information from a flash memory device, comprising:

reading a plurality of memory cells at a first read level to obtain a plurality of program values:

receiving an error indicator in connection with the reading of the plurality of memory cells;

reading, in response to receiving the error indicator, the plurality of memory cells at one or more different read levels to categorize the plurality of memory cells into two or more cell program regions; and

assigning a confidence value to each memory cell based on a corresponding cell program region for the memory cell, the confidence value being representative of a likelihood that the memory cell is programmed to a corresponding program value read at the first read level.

2. The method of claim 1 , wherein the two or more cell program regions are bounded by the first read level and one of the different read levels.

3. The method of claim 2 , further comprising:

calculating a respective confidence value for each of the cell program regions based on how many of the plurality of memory cells are in the cell program region compared to one or more other program regions; and

assigning the confidence value calculated for each cell program region to each respective memory cell in the cell program region.

4. The method of claim 2 , wherein reading the plurality of memory cells at one or more different read levels comprises reading the plurality of memory cells using a second read level below the first read level and a third read level above the first read level, and

wherein a first program region comprises one or more cells having a programmed value between the first read level and the second read level and a second program region comprises one or more cells having a programmed value between the first read level and the third read level.

5. The method of claim 4 , wherein reading the plurality of memory cells at one or more different read levels comprises reading the plurality of memory cells using a fourth read level below the second read level and a fifth read level above the sixth read level,

wherein a third program region comprises one or more cells having a programmed value between the fourth read level and the second read level and a fourth program region comprises one or more cells having a programmed value between the fifth read level and the third read level.

6. The method of claim 1 , wherein the first read level is based on a predetermined threshold for distinguishing between two potential programming values of a memory cell, and

wherein a respective memory cell is determined to be in a respective cell program region if the respective memory cell cannot be read at the first read level but is read at one of the different read levels associated with the respective cell program region.

7. The method of claim 1 , wherein the confidence value assigned to each memory cell is retrieved from a lookup table by indexing the lookup table by the corresponding cell program region.

8. The method of claim 1 , wherein the confidence value is a log-likelihood ratio.

9. The method of claim 1 , further comprising:

determining one or more cell program distributions for the plurality of program values,

wherein, for a distribution, a lower confidence value is assigned to a cell program region comprising program values at an edge of the distribution than a cell program region comprising program values closer to a mean of the distribution.

10. The method of claim 1 , further comprising:

applying an initial read level to the plurality of memory cells to obtain a least significant bit value for each of the plurality of memory cells; and

determining the first read level based on the least significant bit value.

11. A system, comprising:

one or more flash memory devices;

a controller operable to initiate one or more memory commands to the one or more flash memory devices, the controller further operable to:

initiate a first read of a plurality of memory cells of the one or more flash memory devices;

determine, based on the first read, a program level for one or more of the plurality of memory cells;

receive an error indicator associated with the first read;

initiate, in response to the error indicator, multiple reads of the one or more memory cells at different levels; and

determine a probability that the one or more memory cells are programmed to the program level based on the multiple reads.

12. The system of claim 11 , wherein the plurality of memory cells are read using a first read level, the controller further operable to:

categorize the one or more memory cells into two or more cell program regions based on the multiple reads; and

determine the probability based on the program level and a cell program region in which the one or more memory cells are categorized.

13. The system of claim 12 , the controller further operable to:

calculate, for each cell program region, a confidence value based on how many of the plurality of memory cells are in the cell program region compared to one or more other program regions, and assign the confidence value to each memory cell in the cell program region.

14. The system of claim 12 , wherein the controller being operable to initiate multiple reads comprises the controller being operable to:

initiate reading the one or more memory cells using a second read level below the first read level and a third read level above the first read level, and

wherein a first program region comprises one or more cells having a programmed value between the first read level and the second read level and a second program region comprises one or more cells having a programmed value between the first read level and the third read level.

15. The system of claim 12 , wherein the controller being operable to initiate multiple reads comprises the controller being operable to:

initiate reading the one or more memory cells using a fourth read level below the second read level and a fifth read level above the sixth read level,

wherein a third program region comprises one or more cells having a programmed value between the fourth read level and the second read level and a fourth program region comprises one or more cells having a programmed value between the fifth read level and the third read level.

16. The system of claim 11 , the controller further operable to:

apply an initial read level to the one or more memory cells to obtain a least significant bit value for each memory cell; and

determine a first read level for the first read based on the least significant bit value.

17. The system of claim 11 , wherein determining the probability comprises associating the one or more memory cells with a log-likelihood ratio.

18. The system of claim 17 , wherein the log-likelihood ratio associated with each memory cell is retrieved from a lookup table by indexing the lookup table by the corresponding cell program region.

19. A machine-readable medium having instructions stored thereon that, when executed by a processor, perform a method for providing memory device readiness to a memory controller, the method comprising:

initiating a first read of a plurality of memory cells of one or more flash memory devices;

determining, based on the first read, a program level for one or more of the plurality of memory cells;

initiating, in response to the error indicator, multiple reads of the one or more memory cells at different levels;

categorize the one or more memory cells into two or more cell groups based on the multiple reads; and

determining a probability that the one or more memory cells are programmed to the program level based on the program level and a cell group in which the one or more memory cells are categorized.

Assignments (12)
SECURITY AGREEMENT (SUPPLEMENTAL) Recorded Nov 14, 2024
From: WESTERN DIGITAL TECHNOLOGIES, INC.
To: JPMORGAN CHASE BANK, N.A., AS COLLATERAL AGENT
Reel/Frame 069411/0208 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Oct 11, 2024
From: SANDISK TECHNOLOGIES, INC.
To: WESTERN DIGITAL TECHNOLOGIES, INC.
Reel/Frame 069168/0273 →
PATENT COLLATERAL AGREEMENT Recorded Aug 23, 2024
From: SANDISK TECHNOLOGIES, INC.
To: JPMORGAN CHASE BANK, N.A., AS THE AGENT
Reel/Frame 068762/0494 →
CHANGE OF NAME Recorded Jun 27, 2024
From: SANDISK TECHNOLOGIES, INC.
To: SANDISK TECHNOLOGIES, INC.
Reel/Frame 067982/0032 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded May 29, 2024
From: WESTERN DIGITAL TECHNOLOGIES, INC.
To: SANDISK TECHNOLOGIES, INC.
Reel/Frame 067567/0682 →
PATENT COLLATERAL AGREEMENT - A&R LOAN AGREEMENT Recorded Aug 21, 2023
From: WESTERN DIGITAL TECHNOLOGIES, INC.
To: JPMORGAN CHASE BANK, N.A.
Reel/Frame 064715/0001 →
PATENT COLLATERAL AGREEMENT - DDTL LOAN AGREEMENT Recorded Aug 21, 2023
From: WESTERN DIGITAL TECHNOLOGIES, INC.
To: JPMORGAN CHASE BANK, N.A.
Reel/Frame 067045/0156 →
RELEASE OF SECURITY INTEREST AT REEL 052915 FRAME 0566 Recorded Feb 8, 2022
From: JPMORGAN CHASE BANK, N.A.
To: WESTERN DIGITAL TECHNOLOGIES, INC.
Reel/Frame 059127/0001 →
SECURITY INTEREST Recorded Feb 6, 2020
From: WESTERN DIGITAL TECHNOLOGIES, INC.
To: JPMORGAN CHASE BANK, N.A., AS AGENT
Reel/Frame 052915/0566 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded May 16, 2018
From: HGST TECHNOLOGIES SANTA ANA, INC.
To: WESTERN DIGITAL TECHNOLOGIES, INC.
Reel/Frame 046174/0446 →
CHANGE OF NAME Recorded Jul 1, 2015
From: STEC, INC.
To: HGST TECHNOLOGIES SANTA ANA, INC.
Reel/Frame 036042/0390 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded May 3, 2013
From: WEATHERS, ANTHONY D.; BARNDT, RICHARD D.; HU, XINDE
To: STEC, INC.
Reel/Frame 030350/0780 →