IP Library Granted Patent US 10,872,013
Granted Patent B2
US 10,872,013 · App. 16/354,526 · Granted Dec 22, 2020

Non volatile memory controller device and method for adjustment

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,872,013
App. No.
16/354,526
Granted
Dec 22, 2020
Kind
B2
Abstract

There is provided a method of providing adjusted LLR values of a plurality of bits in a codeword to an LDPC decoder, the plurality of bits representing a plurality of charge states of a plurality of memory cells of a non-volatile memory. The method comprises storing in a non-volatile memory controller associated with the non-volatile memory LLR values of the plurality of bits. The controller then determines a plurality of levels of the charge states represented by the plurality of bits. The controller then generates, by a distribution processor, distributions of a population of the plurality of bits in the codeword at each of the plurality of levels at a first and a second time after the first time. The controller then generates the adjusted LLR values based on a comparison between the first and second distributions, and then decodes the codeword according to the adjusted LLR values.

Claims (48)

1. A method of providing one or more adjusted log likelihood ratio (LLR) values of a plurality of bits in a codeword to a low-density parity check (LDPC) decoder, the plurality of bits representing a plurality of charge states of a plurality of memory cells of a non-volatile memory, the method comprising:

storing in a non-volatile memory controller communicatively coupled to the non-volatile memory one or more LLR values associated with the plurality of bits;

determining, by translation circuitry, a plurality of levels of the plurality of charge states represented by the plurality of bits;

generating, by a distribution processor,

a first distribution of a population of the plurality of levels at a first time, and

a second distribution of the population of the plurality of levels at a second time after the first time;

generating, by an LLR generator, the one or more adjusted LLR values of the plurality of bits based on a comparison between the first and second distributions; and

decoding, by the LDPC decoder, the codeword according to the one or more adjusted LLR values.

2. The method of claim 1 , wherein the comparison comprises:

determining a minimum population in each of the first and second distributions, and the associated level at each minimum population;

determining a difference between the associated levels for the first and second distributions; and

determining a corrected LLR value for each bit in the codeword that minimizes the difference.

3. The method of claim 1 , wherein the one or more LLR values are stored in a first look up table (LUT), and wherein the one or more adjusted LLR values are stored in a second LUT.

4. The method of claim 1 , wherein the first and second distributions comprise cumulative population distributions.

5. The method of claim 1 , wherein the level is a threshold voltage level associated with a charge state of a cell of the non-volatile memory.

6. The method of claim 2 , wherein the difference between the associated levels for the first and second distributions corresponds to a change in read threshold voltage of the cells of the non-volatile memory.

7. The method of claim 1 , wherein determining the cell charge state of a cell comprises performing multiple reads on each cell at varying threshold voltages.

8. The method of claim 1 , wherein the plurality of cell charge states and their associated numerical levels are stored in the non-volatile memory controller.

9. The method of claim 1 , wherein the level of a cell varies according to the cell charge state of plurality of cells.

10. The method of claim 1 , wherein the level of a cell varies according to a length of time since the cell was programmed with charge.

11. The method of claim 1 , wherein the level of a cell varies according to a total number of read cycles or program and erase cycles the target cell has been subjected to.

12. The method of claim 3 , wherein the LLR values stored in the first and second LUTs are predetermined.

13. The method of claim 1 , wherein the non-volatile memory comprises any one of: single level cells (SLCs), multi-level cells (MLCs), triple level cells (TLCs) and quadruple level cells (QLCs).

14. The method of claim 1 , wherein the plurality of cells of the non-volatile memory is capable of being in any one of two, four, eight or sixteen cell charge states.

15. A non-volatile memory controller for adjusting one or more log likelihood ratio (LLR) values of a plurality of bits in a codeword for low-density parity check (LDPC) decoding, the plurality of bits representing a plurality of charge states of a plurality of memory cells of a non-volatile memory, the controller comprising:

storing circuitry configured to store one or more LLR values of the at least one bit;

translation circuitry configured to determine a plurality of levels of the plurality of charge states represented by the plurality of bits;

a distribution processor configured to:

generate a first distribution of a population of the plurality of levels at a first time; and

generate a second distribution of the population of the plurality levels at a second time after the first time;

an LLR generator configured to generate the one or more adjusted LLR values of the plurality of bits based on a comparison between the first and second distributions; and

an LDPC decoder configured to decode the codeword using the one or more adjusted LLR values.

16. The controller of claim 15 , wherein the distribution processor is also configured to:

determine a minimum population in each of the first and second distributions, and the associated level at each minimum population; and

determine a difference between the associated levels for the first and second distributions, and

wherein the LLR generator is configured to determine a corrected LLR value for each bit in the codeword that minimizes the difference.

17. The controller of claim 15 , wherein the LLR generator is configured to store the one or more LLR values in a first look up table (LUT), and wherein the LLR generator is also configured to store the one or more adjusted LLR values in a second LUT.

18. The controller of claim 15 , wherein the first and second distributions comprise cumulative population distributions.

19. The controller of claim 15 , wherein the level is a threshold voltage level associated with a charge state of a cell of the non-volatile memory.

20. The controller of claim 16 , wherein the difference between the associated levels for the first and second distributions corresponds to a change in threshold voltage of the cells of the non-volatile memory.

21. The controller of claim 15 , wherein determining the cell charge state of a cell comprises performing multiple reads on each cell at varying threshold voltages.

22. The controller of claim 15 , wherein the plurality of cell charge states and their associated numerical levels are stored in the non-volatile memory controller.

23. The controller of claim 15 , wherein the level of a cell varies according to the cell charge state of plurality of cells.

24. The controller of claim 15 , wherein the level of a cell varies according to a length of time since the cell was programmed with charge.

25. The controller of claim 15 , wherein the level of a cell varies according to a total number of program and erase cycles the target cell has been subjected to.

26. The controller of claim 17 , wherein the LLR values stored in the first and second LUTs are predetermined.

27. The controller of claim 15 , wherein the non-volatile memory comprises any one of: single level cells (SLCs), multi-level cells (MLCs), triple level cells (TLCs) and quadruple level cells (QLCs).

28. The controller of claim 15 , wherein the plurality of cells of the non-volatile memory is capable of being in any one of two, four, eight or sixteen cell charge states.

Assignments (1)
CHANGE OF NAME AND ADDRESS Recorded Jan 31, 2022
From: TOSHIBA MEMORY CORPORATION
To: KIOXIA CORPORATION
Reel/Frame 058905/0582 →