IP Library Granted Patent US 11,550,648
Granted Patent B2
US 11,550,648 · App. 17/504,440 · Granted Jan 10, 2023

Program verify adaptation for non-volatile memory

Inventor: Ming Jin (San Jose, CA)
Assignee: Western Digital Technologies, Inc.
G06F11/0754G06F11/073G06F11/1048G11C29/00
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,550,648
App. No.
17/504,440
Granted
Jan 10, 2023
Kind
B2
Abstract

Disclosed is a system and method for providing program verify adaptation for flash memory. The method includes performing an adjustment iteration, which includes accessing error counts for respective N states of a plurality of memory cells, applying a weighting to the error counts based on a binary data coding for the N states, determining a state Smin of the N states having a minimum error count Emin from the error counts, determining a state Smax of the N states having a maximum error count Emax from the error counts, determining a difference between the Emax and the Emin satisfies an error count threshold, and adjusting, by a predefined value, a respective program verify offset of a lowest state from Smin and Smax, and of each state between Smin and Smax in the N states, wherein the adjusting is a decrement when Smin is less than Smax and an increment otherwise.

Claims (52)

1. A method for a data storage system, the method comprising:

programming memory cells of the data storage system into multiple states associated with program verify voltages, wherein the memory cells comprises non-volatile memory cells;

determining that an adaptation is due for adjusting program verify offsets for the multiple states;

adjusting the program verify voltages of the memory cells, wherein the adjusting includes altering one or more program verify offsets to distribute errors across the memory cells, wherein the adjusting facilitates improvement of bit error correction and reliability over not performing the adjusting;

when a first count of read operations on data programmed based on the altered one or more program verify offsets satisfies a threshold number of read operations, repeating the adjusting until a difference between a maximum error count and a minimum error count does not satisfy an error threshold; and

programming at least some of the memory cells using at least some of the adjusted program verify voltages.

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

obtaining error counts for respective multiple states of the memory cells, wherein the error counts are for errors between the respective multiple states and adjacent states; and

determining a minimum state and a maximum state of the multiple states having the minimum error count and the maximum error count, respectively, based on the error counts.

3. The method of claim 2 , wherein the adjusting comprises:

tuning a respective program verify offset of a lowest state based on the minimum and maximum states, and of each state between the minimum state and the maximum state, wherein the tuning comprises a reduction when the minimum state is less than the maximum state, and wherein the tuning comprises an increase when the minimum state is greater than the maximum state.

4. The method of claim 3 , wherein the adjusting comprises:

applying a weighting to the error counts, wherein the weighting is based on a binary data coding for the multiple states; and

determining a difference between the maximum and minimum error counts satisfies the error threshold.

5. The method of claim 3 , wherein the tuning comprises tuning based on a predetermined value.

6. The method of claim 5 , wherein the predetermined value is a voltage increment recognizable by a digital-to-analog converter circuit for performing reading operations on at least some of the memory cells.

7. A data storage system, comprising:

memory cells comprising non-volatile memory cells; and

one or more controllers configured to cause:

programming the memory cells of the data storage system into multiple states associated with program verify voltages;

determining that an adaptation is due for adjusting program verify offsets;

adjusting the program verify voltages of the memory cells, wherein the adjusting includes altering one or more program verify offsets to distribute errors across the memory cells, wherein the adjusting facilitates improvement of bit error correction and reliability over not performing the adjusting;

when a first count of read operations on data programmed based on the altered one or more program verify offsets satisfies a threshold number of read operations, repeating the adjusting until a difference between a maximum error count and a minimum error count does not satisfy an error threshold; and

programming at least some of the memory cells using at least some of the adjusted program verify voltages.

8. The data storage system of claim 7 , wherein the adjusting comprises:

obtaining error counts for respective multiple states of the memory cells, wherein the error counts are for errors between the respective multiple states and adjacent states; and

determining a minimum state and a maximum state of the multiple states having the minimum error count and the maximum error count, respectively, based on the error counts.

9. The data storage system of claim 8 , wherein the adjusting comprises:

tuning a respective program verify offset of a lowest state based on the minimum and maximum states, and of each state between the minimum state and the maximum state, wherein the tuning comprises a reduction when the minimum state is less than the maximum state, and wherein the tuning comprises an increase when the minimum state is greater than the maximum state.

10. The data storage system of claim 9 , wherein the adjusting comprises:

applying a weighting to the error counts, wherein the weighting is based on a binary data coding for the multiple states; and

determining a difference between the maximum and minimum error counts satisfies the error threshold.

11. The data storage system of claim 9 , wherein the tuning comprises tuning based on a predetermined value.

12. The data storage system of claim 11 , wherein the predetermined value is a voltage increment recognizable by a digital-to-analog converter circuit for performing reading operations on at least some of the memory cells.

13. The data storage system of claim 8 , wherein the error counts are sampled from a representative distribution of the memory cells.

14. The data storage system of claim 7 ,

wherein the adaptation is due when a program/erase cycle count for at least some of the memory cells reaches a threshold value, and

wherein the data storage system comprises one or more memory devices, the one or more memory devices comprises wordlines, and the wordlines comprises the memory cells.

15. The data storage system of claim 7 , wherein the adaptation is due when an operating condition of the data storage system is changed.

16. The data storage system of claim 7 , wherein when the first count of read operations on the data programmed based on the altered one or more program verify offsets satisfies the threshold number of read operations, the one or more controllers are configured to cause updating error counts for respective multiple states of the memory cells.

17. An apparatus, comprising:

means for programming memory cells into multiple states associated with program verify voltages, wherein the memory cells comprises non-volatile memory cells;

means for determining that an adaptation is due for adjusting program verify offsets for the multiple states;

means for adjusting the program verify voltages of the memory cells, wherein the adjusting includes altering one or more program verify offsets to distribute errors across the memory cells, wherein the adjusting facilitates improvement of bit error correction and reliability over not performing the adjusting;

when a first count of read operations on data programmed based on the altered one or more program verify offsets satisfies a threshold number of read operations, means for repeating the adjusting until a difference between a maximum error count and a minimum error count does not satisfy an error threshold; and

means for programming at least some of the memory cells using at least some of the adjusted program verify voltages.

18. The apparatus of claim 17 , wherein the means for adjusting comprises:

means for obtaining error counts for respective multiple states of the memory cells, wherein the error counts are for errors between the respective multiple states and adjacent states; and

means for determining a minimum state and a maximum state of the multiple states having the minimum error count and the maximum error count, respectively, based on the error counts.

19. The apparatus of claim 18 , wherein the means for adjusting comprises:

means for tuning a respective program verify offset of a lowest state based on the minimum and maximum states, and of each state between the minimum state and the maximum state, wherein the means for tuning comprises means for reducing the respective program verify offset when the minimum state is less than the maximum state, and wherein the means for tuning comprises means for increasing the respective program verify offset when the minimum state is greater than the maximum state.

20. The apparatus of claim 19 , wherein the means for adjusting comprises: means for applying a weighting to the error counts; and means for determining a difference between the maximum and minimum error counts satisfies the error threshold.

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 058426 FRAME 0815 Recorded Feb 8, 2022
From: JPMORGAN CHASE BANK, N.A.
To: WESTERN DIGITAL TECHNOLOGIES, INC.
Reel/Frame 058965/0679 →
SECURITY INTEREST Recorded Dec 9, 2021
From: WESTERN DIGITAL TECHNOLOGIES, INC.
To: JPMORGAN CHASE BANK, N.A., AS AGENT
Reel/Frame 058426/0815 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Nov 2, 2021
From: JIN, MING
To: WESTERN DIGITAL TECHNOLOGIES, INC.
Reel/Frame 057997/0782 →