IP Library Granted Patent US 10,748,628
Granted Patent B2
US 10,748,628 · App. 16/354,039 · Granted Aug 18, 2020

Read level tracking and optimization

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,748,628
App. No.
16/354,039
Filed
Mar 14, 2019
Granted
Aug 18, 2020
Kind
B2
Examiner
HUANG, MIN
Art Unit
2827
USPC
711/103
Abstract

Systems and methods for read level tracking and optimization are described. Pages from a wordline of a flash memory device read and the raw page data read from the wordline may be buffered in a first set of buffers. The raw page data for each of the pages may be provided to a decoder for decoding and the decoded page data for each of the pages buffered in a second set of buffers. First bin identifiers may be identified for memory cells of the wordline based on the raw page data and second bin identifiers may be identified for the memory cells of the wordline based on the decoded page data. Cell-level statistics may be accumulated based on the first bin identifiers and the second bin identifiers, and a gradient may be determined for respective read levels based on decoding results for each of the pages and the cell-level statistics. Settings for the read levels may be configured in the flash memory device based on the determined gradients.

Claims (80)

1. A method comprising:

identifying a first plurality of bin identifiers for memory cells of a wordline based on raw page data of the wordline buffered in a first set of buffers; and

identifying a second plurality of bin identifiers for the memory cells of the wordline based on decoded page data buffered in a second set of buffers;

accumulating cell-level statistics for the wordline based on the first plurality of bin identifiers and the second plurality of bin identifiers;

determining a gradient for each of a plurality of read levels based on a bin balance process and a decision directed process;

selecting the gradients determined by the bin balance process and the decision directed process bin based on decoding results indicating which pages read from the wordline were decodable; and

configuring settings for the plurality of read levels in a flash memory device based on the selected gradients.

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

providing the accumulated cell-level statistics to a bin balance module that runs the bin balance process and to a decision directed module that runs the decision directed process; and

processing the accumulated cell-level statistics with the bin balance process and the decision directed process.

3. The method of claim 2 , wherein the decision directed process determines the gradients for respective ones of the plurality of read levels based on read error counts.

4. The method of claim 3 , further comprising:

determining that one or more of the read error counts requires balancing for each of the plurality of read levels; and

balancing an area under tails of adjacent distributions that cross a read level between the adj acent distributions.

5. The method of claim 4 , further comprising:

adjusting the gradient for a respective read level of the plurality of read levels based on a bias; and

reducing an amount of dissimilarity between the adjacent read level distributions based on the adjusted gradient.

6. The method of claim 2 , further comprising:

determining whether one or more pages of a plurality of pages read from the wordline were decodable;

adjusting a setting of a respective read level of the plurality of read levels using the gradient determined by the directed decision process when a corresponding page of the plurality of pages was determined to be decodable; and

adjusting the setting of the respective read level of the plurality of read levels using the gradient determined by the bin balance process when the corresponding page of the plurality of pages was determined not to be decodable.

7. The method of claim 1 , further comprising:

reading a plurality of pages from the wordline of the flash memory device;

buffering the raw page data read from the wordline for each of the plurality of pages in the first set of buffers;

providing the raw page data for each of the plurality of pages to a decoder for decoding; and

buffering the decoded page data from the decoder for each of the plurality of pages in the second set of buffers.

8. The method of claim 1 , wherein the first plurality of bin identifiers for the memory cells of the wordline is identified based on logical values in the raw page data for a plurality of pages corresponding to the respective memory cells, and

wherein the second plurality of bin identifiers for the memory cells of the wordline is identified based on logical values in the decoded page data for the plurality of pages corresponding to the respective memory cells.

9. The method of claim 8 , wherein identifying the first plurality of bin identifiers comprises applying reverse gray coding to the logical values in the raw page data, and

wherein identifying the second plurality of bin identifiers comprises applying the reverse gray coding to the logical values in the decoded page data.

10. The method of claim 1 , wherein accumulating the cell-level statistics comprises incrementing bin counts based on the identified first plurality of bin identifiers or the identified second plurality of bin identifiers.

11. The method of claim 10 , wherein accumulating the cell-level statistics further comprises:

comparing the first plurality of bin identifiers to the second plurality of bin identifiers, respectively; and

incrementing first error-type counts and second error-type counts based on the comparison of the first plurality of bin identifiers to the second plurality of bin identifiers.

12. The method of claim 11 , wherein determining a gradient for each of the plurality of read levels comprises:

applying a gradient generator matrix to the bin counts to determine a first set of gradients;

determining a second set of gradients based on a difference between the first error-type counts and the second error-type counts; and

selecting, for each of the plurality of read levels, a gradient from the first set of gradients or a gradient from the second set of gradients based on the decoding results for each of a plurality of pages.

13. The method of claim 12 , wherein applying the gradient generator matrix to the bin counts comprises:

selecting the gradient generator matrix from a plurality of gradient generator matrices based on the decoding results for each of the plurality of pages; and

multiplying the selected gradient generator matrix by the bin counts to determine the first set of gradients.

14. A data storage system, comprising:

a flash memory device comprising a plurality of wordlines;

a first set of buffers;

a second set of buffers; and

a controller configured to:

identify a first plurality of bin identifiers for memory cells of a wordline of the plurality of wordlines based on raw page data buffered in the first set of buffers;

identify a second plurality of bin identifiers for the memory cells of the wordline based on decoded page data buffered in a second set of buffers;

accumulate cell-level statistics based on the first plurality of bin identifiers and the second plurality of bin identifiers;

determine a gradient comprising a magnitude and a direction for each of a plurality of read levels based on a bin balance process and a decision directed process;

select the gradients determined by the bin balance process and the decision directed process bin based on decoding results indicating which pages read from the wordline were decodable; and

configure settings for the plurality of read levels in the flash memory device based on the determined gradients.

15. The data storage system of claim 14 , wherein the controller is further configured to:

provide the accumulated cell-level statistics to a bin balance module of the data storage system that runs the bin balance process and to a decision directed module of the data storage system that runs the decision directed process; and

process the accumulated cell-level statistics with the bin balance process and the decision directed process.

16. The data storage system of claim 15 , wherein the decision directed process determines the gradients for respective ones of the plurality of read levels based on read error counts.

17. The data storage system of claim 16 , wherein the controller is further configured to:

determine that one or more of the read error counts requires balancing for each of the plurality of read levels;

balance an area under tails of adjacent distributions that cross a read level between the adjacent distributions;

adjust the gradient for a respective read level of the plurality of read levels based on a bias; and

reduce an amount of dissimilarity between the adjacent read level distributions based on the adjusted gradient.

18. The data storage system of claim 15 , wherein the controller is further configured to:

determine whether one or more pages of a plurality of pages read from the wordline were decodable;

adjust a setting of a respective read level of the plurality of read levels using the gradient determined by the directed decision process when a corresponding page of the plurality of pages was determined to be decodable; and

adjust the setting of the respective read level of the plurality of read levels using the gradient determined by the bin balance process when the corresponding page of the plurality of pages was determined not to be decodable.

19. The data storage system of claim 18 , wherein the controller is further configured to:

read a plurality of pages from the wordline of the flash memory device;

buffer the raw page data read from the wordline for each of the plurality of pages in the first set of buffers;

provide the raw page data for each of the plurality of pages to a decoder for decoding; and

buffer the decoded page data from the decoder for each of the plurality of pages in the second set of buffers.

20. A data storage system, comprising:

a flash memory device comprising a plurality of wordlines;

a first set of buffers;

a second set of buffers;

means for identifying a first plurality of bin identifiers for memory cells of a wordline of the plurality of wordlines based on raw page data read from the wordline for each of a plurality of pages buffered in the first set of buffers;

means for identifying a second plurality of bin identifiers for the memory cells of the wordline based on page data decoded from the raw page data and buffered in the second set of buffers;

means for accumulating cell-level statistics based on the first plurality of bin identifiers and the second plurality of bin identifiers;

means for determining a gradient for each of a plurality of read levels based on a bin balance process and a decision directed process;

means for selecting the gradients determined by the bin balance process and the decision directed process bin based on decoding results indicating which pages read from the wordline were decodable; and

means for configuring settings for the plurality of read levels in the flash memory device based on the selected gradients.

Assignments (10)
PARTIAL RELEASE OF SECURITY INTERESTS Recorded Apr 25, 2025
From: JPMORGAN CHASE BANK, N.A., AS AGENT
To: SANDISK TECHNOLOGIES, INC.
Reel/Frame 071382/0001 →
SECURITY AGREEMENT Recorded Apr 25, 2025
From: SANDISK TECHNOLOGIES, INC.
To: JPMORGAN CHASE BANK, N.A., AS COLLATERAL AGENT
Reel/Frame 071050/0001 →
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 - DDTL LOAN AGREEMENT Recorded Aug 21, 2023
From: WESTERN DIGITAL TECHNOLOGIES, INC.
To: JPMORGAN CHASE BANK, N.A.
Reel/Frame 067045/0156 →
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 →
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 3, 2019
From: BARNDT, RICHARD DAVID; COMETTI, ALDO GIOVANNI; GALBRAITH, RICHARD LEO; GOODE, JONAS ANDREW; RAVINDRAN, NIRANJAY; WEATHERS, ANTHONY DWAYNE
To: WESTERN DIGITAL TECHNOLOGIES, INC.
Reel/Frame 049072/0901 →