IP Library Granted Patent US 12,423,004
Granted Patent B1
US 12,423,004 · App. 18/612,199 · Granted Sep 23, 2025

System and method for determining optimal program parameters in non-volatile memory systems

Inventors: Avi Steiner (Tel Aviv, IL); Alex Britva (Tel Aviv, IL); Liran Kost (Tel Aviv, IL); Eyal Nitzan (Tel Aviv, IL); Hanan Weingarten (Tel Aviv, IL); Yasuhiko Kurosawa (Kanagawa, JP); Yasuyuki Ushijima (Tokyo, JP)
Assignee: KIOXIA CORPORATION
G06F3/0619G06F3/0659G06F3/0679
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 12,423,004
App. No.
18/612,199
Granted
Sep 23, 2025
Kind
B1
Abstract

One or more processors of a system may determine one or more program parameters of a plurality of rows of cells of a non-volatile memory, determine a first threshold of a first parameter of each row based on the one or more program parameters of the plurality of rows, determine, by changing a programming time of each row, a set of parameters of each row that causes the first parameter not to cross the first threshold, determine a second threshold of a second parameter of each row based on production statistics of a plurality of dies as a result of mass production, adjust the programming time of each row to cause the second parameter not to cross the second threshold, and program data to a first row of the plurality of rows using the set of parameters of the first row and the adjusted programming time of the first row.

Claims (64)

1. A system comprising

one or more processors configured to:

determine, using first data relating to a sample set of non-volatile memory devices, one or more program parameters of a plurality of rows of cells of a non-volatile memory;

determine, using the first data, a first threshold of a first parameter of each row based at least in part on the one or more program parameters of the plurality of rows;

determine, by changing a programming time of each row, a set of parameters of each row that causes the first parameter not to cross the first threshold;

determine a second threshold of a second parameter of each row based at least in part on production information that includes production statistics of a plurality of dies as a result of mass production;

adjust the programming time of each row to cause the second parameter not to cross the second threshold; and

program data to a first row of the plurality of rows using the set of parameters of the first row and the adjusted programming time of the first row.

2. The system of claim 1 , wherein each of the plurality of rows corresponds to a word line.

3. The system of claim 1 , wherein the production statistics comprise a collection of statistics obtained by at least one of programming on the plurality of dies with predetermined program parameters or reading from the plurality of dies with predetermined read parameters in program disturb stress.

4. The system of claim 1 , wherein the one or more program parameters comprise at least one of an average programming time, an average of bit error rate (BER) per page (page BER), or a standard deviation of page BER.

5. The system of claim 1 , wherein

the first parameter is a page BER, and

the one or more processors are configured to determine the first threshold based at least in part on a row having a highest BER at end-of-life (EOL) stress conditions among the plurality of the rows.

6. The system of claim 1 , wherein

the second parameter is at least one of an average of bit error rate (BER) per page (page BER) or a standard deviation of page BER, and

In determining the second threshold, the one or more processors are configured to convert a distribution of the second parameter in a mass production of non-volatile devices to a distribution of the second parameter in a plurality of non-volatile devices.

7. The system of claim 6 , wherein in determining the second threshold, the one or more processors are configured to:

convert the distribution of the second parameter in the plurality of non-volatile devices to a distribution of the second parameters in pages of the plurality of non-volatile devices.

8. The system of claim 1 , wherein the set of candidate parameters comprise at least one of an incremental step pulse programming (ISPP), a maximum number of pulses (NPP), or a program voltage (VPGM).

9. The system of claim 1 , wherein

the plurality of rows are divided into a plurality of row groups, at least one of the plurality of row groups including two or more rows,

in determining the set of parameters of each row, the one or more processors are configured to determine a set of parameters of a first row group of the plurality of row groups;

in determining the first threshold of the first parameter of each row, the one or more processors are configured to determine a threshold of the first parameter of the first row group; and

in determining the second threshold of the second parameter of each row, the one or more processors are configured to determine a threshold of the first parameter of the first row group.

10. The system of claim 1 , wherein in determining the set of parameters of each row, the one or more processors are configured to:

randomly generate a plurality of sets of candidate parameters for the first row;

perform a test operation on the first row using each of the plurality of sets, the test operation comprising at least one of a write operation or a read operation;

determine whether a result of the test operation on the first row causes the first parameter not to cross the first threshold;

in response to determining that the result of the test operation on the first row causes the first parameter not to cross the first threshold, increase the programming time of on the first row;

in response to determining that the result of the test operation on the first row causes the first parameter to cross the first threshold, decrease the programming time of the first row;

determine a write performance of each of the plurality of sets based at least in part on the programming time of the first row; and

select, from among the plurality of sets of candidate parameters, based at least in part on the write performance of each of the plurality of sets, the set of parameters of the first row.

11. A method comprising:

determining, by one or more processors of a system, using first data relating to a sample set of non-volatile memory devices, one or more program parameters of a plurality of rows of cells of a non-volatile memory;

determining, by the one or more processors, using the first data, a first threshold of a first parameter of each row based at least in part on the one or more program parameters of the plurality of rows;

determining, by the one or more processors changing a programming time of each row, a set of parameters of each row that causes the first parameter not to cross the first threshold;

determining, by the one or more processors, a second threshold of a second parameter of each row based at least in part on production information that includes production statistics of a plurality of dies as a result of mass production;

adjusting, by the one or more processors, the programming time of each row to cause the second parameter not to cross the second threshold; and

programming, by the one or more processors, data to a first row of the plurality of rows using the set of parameters of the first row and the adjusted programming time of the first row.

12. The method of claim 11 , wherein each of the plurality of rows corresponds to a word line.

13. The method of claim 11 , wherein the production statistics comprise a collection of statistics obtained by at least one of programming on the plurality of dies with predetermined program parameters or reading from the plurality of dies with predetermined read parameters in program disturb stress.

14. The method of claim 11 , wherein the one or more program parameters comprise at least one of an average programming time, an average of bit error rate (BER) per page (page BER), or a standard deviation of page BER.

15. The method of claim 11 , wherein

the first parameter is a page BER, and

the method comprises determining the first threshold based at least in part on a row having a highest BER at end-of-life (EOL) stress conditions among the plurality of the rows.

16. The method of claim 11 , wherein

the second parameter is at least one of an average of bit error rate (BER) per page (page BER) or a standard deviation of page BER, and

determining the second threshold comprises converting a distribution of the second parameter in a mass production of non-volatile devices to a distribution of the second parameter in a plurality of non-volatile devices.

17. The method of claim 16 , wherein determining the second threshold comprises:

converting the distribution of the second parameter in the plurality of non-volatile devices to a distribution of the second parameters in pages of the plurality of non-volatile devices.

18. The method of claim 11 , wherein the set of candidate parameters comprise at least one of an incremental step pulse programming (ISPP), a maximum number of pulses (NPP), or a program voltage (VPGM).

19. The method of claim 11 , wherein

the plurality of rows are divided into a plurality of row groups, at least one of the plurality of row groups including two or more rows,

determining the set of parameters of each row comprises determining a set of parameters of a first row group of the plurality of row groups;

determining the first threshold of the first parameter of each row comprises determining a threshold of the first parameter of the first row group; and

determining the second threshold of the second parameter of each row comprises determining a threshold of the first parameter of the first row group.

20. A system, comprising:

one or more processors configured to:

determine, using first data relating to a sample set of non-volatile memory devices, one or more program parameters of each of a plurality of rows of cells of a non-volatile memory;

adjust, using the first data, the one or more program parameters of each of the plurality of rows by equalizing the one or more program parameters across the plurality of rows;

determine one or more programming voltages of each row based at least in part on the adjusted program parameters of the plurality of rows;

determine, by changing a programming time of each row, a set of parameters of each row that do not cause a first parameter to cross a first threshold; and

program a first row of the plurality of rows using the one or more programming voltages of the first row and the determined set of parameters of the first row.

Assignments (4)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Dec 27, 2024
From: STEINER, AVI; BRITVA, ALEX; KOST, LIRAN; NITZAN, EYAL; WEINGARTEN, HANAN
To: KIOXIA ISRAEL LIMITED
Reel/Frame 069689/0277 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Dec 27, 2024
From: KUROSAWA, YASUHIKO; USHIJIMA, YASUYUKI
To: KIOXIA CORPORATION
Reel/Frame 069689/0386 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Dec 27, 2024
From: KIOXIA ISRAEL LIMITED
To: KIOXIA AMERICA, INC.
Reel/Frame 069689/0492 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Dec 27, 2024
From: KIOXIA AMERICA, INC.
To: KIOXIA CORPORATION
Reel/Frame 069689/0532 →
References Cited (3)
US 7821824B2 · Shinagawa · 2010 [cited by examiner]
US 20030051093A1 · Takeuchi · 2003 [cited by examiner]
US 20140281769A1 · Ohshima · 2014 [cited by examiner]
Cited By (1)
US 12,717,525