IP Library Granted Patent US 11,355,216
Granted Patent B1
US 11,355,216 · App. 17/223,807 · Granted Jun 7, 2022

Adaptive DSP generation of read thresholds for gaussian and non-gaussian distributions in solid state storage using cumulative observed counts

Inventor: Yingquan Wu (Palo Alto, CA)
G11C29/42G11C16/10G11C16/26G11C29/12005G11C29/44
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 11,355,216
App. No.
17/223,807
Granted
Jun 7, 2022
Kind
B1
Abstract

A level count disparity is determined based at least in part on an expected count of a plurality of cells in a solid state storage and an observed count of the plurality of cells in the solid state storage, where the observed count is obtained from a read performed on the solid state storage using a previous read threshold. A next read threshold is determined based at least in part on the level count disparity. A read is performed on the solid state storage using the next read threshold to obtain read data and error correction decoding is performed on the read data.

Claims (88)

1. A system, comprising:

solid state storage, including a plurality of cells, wherein each of the plurality of cells is configured to store at least two bits per cell;

a read controller that is configured to:

determine a level count disparity (D i (t) ) based at least in part on: (1) an expected count of the cells in the solid state storage and (2) a cumulative observed count (S i (t) ) of the plurality of cells in the solid state storage, wherein:

the cumulative observed count is associated with a number of cells in the solid state storage that are activated by performing a single read on the solid state storage using a previous read threshold (T i−1 (t) ), wherein the cumulative observed count includes: (1) a first number of cells (l 0 (t) ) that are associated with a 0 th state level (L 0 ) and (2) a second number of cells (l 1 (t) ) that are associated with a 1 st state level (L 1 ); and

the cumulative observed count is independent of other read thresholds;

determine a next read threshold based at least in part on the level count disparity; and

perform a read on the solid state storage using the next read threshold to obtain read data; and

an error correction decoder that is configured to perform error correction decoding on the read data.

2. The system recited in claim 1 , wherein the error correction decoder includes a hard decision error correction decoder that performs hard decision error correction decoding on the read data.

3. The system recited in claim 1 , wherein the read controller is configured to determine the next read threshold, including by:

determining an offset of the next read threshold, relative to the previous read threshold, based at least in part on the level count disparity and a second and older level count disparity; and

determining whether to add or subtract the offset from the previous read threshold based at least in part on the sign of the level count disparity.

4. The system recited in claim 1 , wherein the read controller is configured to determine the next read threshold, including by:

determining an offset of the next read threshold, relative to the previous read threshold, based at least in part on: the level count disparity, a second and older level count disparity, and a dampening sequence; and

determining whether to add or subtract the offset from the previous read threshold based at least in part on the sign of the level count disparity.

5. The system recited in claim 1 , wherein the read controller is further configured to:

perform a plurality of reads on the solid state storage at integer increments of Δ to obtain a plurality of read data at increments of Δ, wherein Δ is a smallest voltage increment supported by the solid state storage;

determine a second next read threshold based at least in part on an inversely weighted average and the plurality of read data at increments of Δ; and

perform a read on the solid state storage using the second next read threshold to obtain second read data.

6. The system recited in claim 1 , wherein:

the error correction decoder includes a hard decision error correction decoder that performs hard decision error correction decoding on the read data;

the read controller is further configured to:

perform a plurality of reads on the solid state storage at integer increments of Δ to obtain a plurality of read data at increments of Δ, wherein Δ is a smallest voltage increment supported by the solid state storage;

determine a second next read threshold based at least in part on an inversely weighted average and the plurality of read data at increments of Δ; and

perform a read on the solid state storage using the second next read threshold to obtain second read data; and

the system further includes a soft decision error correction decoder that performs soft decision error correction decoding on the second read data.

7. The system recited in claim 1 , wherein determining the next read threshold includes:

determining a direction of the next read threshold relative to the previous read threshold based at least in part on the level count disparity and independent of a second and earlier level count disparity (D i (t−1) ); and

determining a magnitude of the next read threshold based at least in part on the level count disparity and the second and earlier level count disparity.

8. A method, comprising:

determining a level count disparity (D i (t) ) based at least in part on: (1) an expected count of a plurality of cells in a solid state storage and (2) a cumulative observed count (S i (t) ) of the plurality of cells in the solid state storage, wherein:

each of the plurality of cells is configured to store at least two bits per cell;

the cumulative observed count is associated with a number of cells in the solid state storage that are activated by performing a single read on the solid state storage using a previous read threshold (T i−1 (t) ), wherein the cumulative observed count includes: (1) a first number of cells (l 0 (t) ) that are associated with a 0 th state level (L 0 ) and (2) a second number of cells (l 1 (t) ) that are associated with a 1 st state level (L 1 ); and

the cumulative observed count is independent of other read thresholds;

determining a next read threshold based at least in part on the level count disparity;

performing a read on the solid state storage using the next read threshold to obtain read data; and

performing error correction decoding on the read data.

9. The method recited in claim 8 , wherein performing error correction decoding includes performing hard decision error correction decoding on the read data.

10. The method recited in claim 8 , wherein determining the next read threshold, includes:

determining an offset of the next read threshold, relative to the previous read threshold, based at least in part on the level count disparity and a second and older level count disparity; and

determining whether to add or subtract the offset from the previous read threshold based at least in part on the sign of the level count disparity.

11. The method recited in claim 8 , wherein determining the next read threshold includes:

determining an offset of the next read threshold, relative to the previous read threshold, based at least in part on: the level count disparity, a second and older level count disparity, and a dampening sequence; and

determining whether to add or subtract the offset from the previous read threshold based at least in part on the sign of the level count disparity.

12. The method recited in claim 8 , further comprising:

performing a plurality of reads on the solid state storage at integer increments of Δ to obtain a plurality of read data at increments of Δ, wherein Δ is a smallest voltage increment supported by the solid state storage;

determining a second next read threshold based at least in part on an inversely weighted average and the plurality of read data at increments of Δ; and

performing a read on the solid state storage using the second next read threshold to obtain second read data.

13. The method recited in claim 8 , wherein:

performing error correction decoding includes performing hard decision error correction decoding on the read data; and

the method further comprises:

performing a plurality of reads on the solid state storage at integer increments of Δ to obtain a plurality of read data at increments of Δ, wherein Δ is a smallest voltage increment supported by the solid state storage;

determining a second next read threshold based at least in part on an inversely weighted average and the plurality of read data at increments of Δ;

performing a read on the solid state storage using the second next read threshold to obtain second read data; and

performing soft decision error correction decoding on the second read data.

14. The method recited in claim 8 , wherein determining the next read threshold includes:

determining a direction of the next read threshold relative to the previous read threshold based at least in part on the level count disparity and independent of a second and earlier level count disparity (D i (t−1) ); and

determining a magnitude of the next read threshold based at least in part on the level count disparity and the second and earlier level count disparity.

15. A computer program product embodied in a non-transitory computer readable medium and comprising computer instructions for:

determining a level count disparity (D i (t) ) based at least in part on: (1) an expected count of a plurality of cells in a solid state storage and (2) a cumulative observed count (S i (t) ) of the plurality of cells in the solid state storage, wherein:

each of the plurality of cells is configured to store at least two bits per cell;

the cumulative observed count is associated with a number of cells in the solid state storage that are activated by performing a single read on the solid state storage using a previous read threshold (T i−1 (t) ), wherein the cumulative observed count includes: (1) a first number of cells (l 0 (t) ) that are associated with a 0 th state level (L 0 ) and (2) a second number of cells (l 1 (t) ) that are associated with a 1 st state level (L 1 ); and

the cumulative observed count is independent of other read thresholds;

determining a next read threshold based at least in part on the level count disparity;

performing a read on the solid state storage using the next read threshold to obtain read data; and

performing error correction decoding on the read data.

16. The computer program product recited in claim 15 , wherein performing error correction decoding includes performing hard decision error correction decoding on the read data.

17. The computer program product recited in claim 15 , wherein determining the next read threshold, includes:

determining an offset of the next read threshold, relative to the previous read threshold, based at least in part on the level count disparity and a second and older level count disparity; and

determining whether to add or subtract the offset from the previous read threshold based at least in part on the sign of the level count disparity.

18. The computer program product recited in claim 15 , wherein determining the next read threshold includes:

determining an offset of the next read threshold, relative to the previous read threshold, based at least in part on: the level count disparity, a second and older level count disparity, and a dampening sequence; and

determining whether to add or subtract the offset from the previous read threshold based at least in part on the sign of the level count disparity.

19. The computer program product recited in claim 15 , further comprising:

performing a plurality of reads on the solid state storage at integer increments of Δ to obtain a plurality of read data at increments of Δ, wherein Δ is a smallest voltage increment supported by the solid state storage;

determining a second next read threshold based at least in part on an inversely weighted average and the plurality of read data at increments of Δ; and

performing a read on the solid state storage using the second next read threshold to obtain second read data.

20. The computer program product recited in claim 15 , wherein:

performing error correction decoding includes performing hard decision error correction decoding on the read data; and

the method further comprises:

performing a plurality of reads on the solid state storage at integer increments of Δ to obtain a plurality of read data at increments of Δ, wherein Δ is a smallest voltage increment supported by the solid state storage;

determining a second next read threshold based at least in part on an inversely weighted average and the plurality of read data at increments of Δ;

performing a read on the solid state storage using the second next read threshold to obtain second read data; and

performing soft decision error correction decoding on the second read data.

21. The computer program product recited in claim 15 , wherein determining the next read threshold includes:

determining a direction of the next read threshold relative to the previous read threshold based at least in part on the level count disparity and independent of a second and earlier level count disparity (D i (t−1) ); and

determining a magnitude of the next read threshold based at least in part on the level count disparity and the second and earlier level count disparity.

Assignments (2)
CHANGE OF NAME Recorded Aug 13, 2025
From: BEIJING TENAFE ELECTRONIC TECHNOLOGY CO., LTD.
To: NANJING TENAFE ELECTRONIC TECHNOLOGY CO., LTD.
Reel/Frame 072008/0631 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jun 2, 2021
From: WU, YINGQUAN
To: BEIJING TENAFE ELECTRONIC TECHNOLOGY CO., LTD.
Reel/Frame 056411/0636 →
Cited By (2)
US 12,525,994 US 12,608,157