IP Library › Granted Patent US 12,211,564
Granted Patent B2
US 12,211,564 · App. 18/091,231 · Granted Jan 28, 2025

Memory device, method for programming memory device, program verification method and memory system

Inventor: Xiaojiang Guo (Wuhan, CN)
Assignee: YANGTZE MEMORY TECHNOLOGIES CO., LTD.
G11C16/3459G11C16/102G11C29/52
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,211,564
App. No.
18/091,231
Granted
Jan 28, 2025
Kind
B2
Abstract

A memory device, a method for programming the memory device, a program verification method, and a memory system are provided. In the program verification method, an i th verification result of an i th program verification operation is obtained, where programming states verified by the i th program verification operation range from an n th state to an (n+k) th state, i and n are positive integers, k is a natural number, and the (n+k) th state is less than or equal to a highest programming state of the memory device; a range of programming states to be verified by an (i+1) th program verification operation is determined according to a verification sub-result for the n th state and a verification sub-result for the (n+k) th state in the i th verification result; and the (i+1) th program verification operation is executed according to the determined range of the programming states to be verified by the (i+ 1 ) th program verification operation.

Claims (71)

1. A program verification method for a memory device, comprising:

obtaining an verification result of an i th program verification operation, wherein programming states verified by the i th program verification operation range from an n th state to an (n+k) th state, i and n are positive integers, k is a natural number, and the (n+k) th state is less than or equal to a highest programming state of the memory device;

determining a range of programming states to be verified by an (i+1) th program verification operation according to a verification sub-result for the n th state and a verification sub-result for the (n+k) th state in the i th verification result; and

executing the (i+1) th program verification operation according to the determined range of the programming states to be verified by the (i+1) th program verification operation.

2. The program verification method of claim 1 , wherein determining the range of the programming states to be verified by the (i+1) th program verification operation according to the verification sub-result for the n th state and the verification sub-result for the (n+k) th state in the i th verification result comprises:

determining a lowest programming state to be verified by the (i+1) th program verification operation according to the verification sub-result for the n th state in the i th verification result; and

determining a highest programming state to be verified by the (i+1) th program verification operation according to the verification sub-result for the (n+k) th state in the i th verification result.

3. The program verification method of claim 2 , wherein the verification result for the n th state in the i th verification result comprises: i th statistical data of the n th state for counting a number of fail bits in programming for the n th state; and

determining the highest programming state to be verified by the (i+1) th program verification operation according to the verification sub-result for the (n+k) th state in the i th verification result comprises:

determining the number of fail bits in the programming for the n th state according to the i th statistical data of the n th state; when the number of fail bits in the programming for the n th state is less than a first preset value, determining that the lowest programming state to be verified by the ( i+ 1) th program verification operation is an (n+1) th state; and when the number of fail bits in the programming for the n th state is greater than or equal to the first preset value, determining that the lowest programming state to be verified by the (i+1) th program verification operation is the n th state; or

when a ratio of the number of fail bits in the programming for the n th state to a number of bits for which a target state is the n th state is less than a first preset ratio, determining that the lowest programming state to be verified by the (i+ 1 ) th program verification operation is the (n+1) th state; and when the ratio of the number of fail bits in the programming for the n th state to the number of bits for which the target state is the n th state is greater than or equal to the first preset ratio, determining the lowest programming state to be verified by the (i+1) th program verification operation to be the n th state.

4. The program verification method of claim 3 , further comprising:

acquiring a number of loops of a to-be-programmed memory cell; and

determining, according to the number of loops, a value range of the first preset value or a value range of the first preset ratio.

5. The program verification method of claim 3 , wherein

a value range of the first preset value is within an allowable range of an error correction code error correction mechanism performed on the memory device.

6. The program verification method of claim 2 , wherein the verification sub-result for the (n+k) th state in the i th verification result comprises: i th statistical data of the (n+k) th state for counting successful bits in programming for the (n+k) th state; and

wherein determining the highest programming state to be verified by the (n+1) th program verification operation according to the verification sub-result for the (n+k) th state in the i th verification result comprises:

determining a number of successful bits in the programming for the (n+k) th state according to i th statistical data of the (n+k) th state; when the number of successful bits in the programming for the (n+k) th state is larger than a second preset value, and the (n+k) th state is smaller than the highest programming state of the memory device, determining that the highest programming state to be verified by the (i+1) th program verification operation is an (n+k+1) th state; and when the number of successful bits in the programming for the (n+k) th state is less than or equal to the second preset value, determining that the highest programming state to be verified by the (i+1) th program verification operation is the (n+k) th state; or,

when a ratio of the number of successful bits in the programming for the (n+k) th state to a number of bits for which a target state is the (n+k) th state is greater than a second preset ratio, determining that the highest programming state to be verified by the (i+1) th program verification operation is the (n+k+1) th state; and when the ratio of the number of successful bits in the programming for the (n+k) th state to the number of bits for which the target state is the (n+k) th state is less than or equal to the second preset ratio, determining that the highest programming state to be verified by the (i+1) th program verification operation is the (n+k) th state.

7. The program verification method of claim 6 , further comprising:

acquiring a step or a programming voltage slope of an incremental step pulse programming; and determining a value range of the second preset value or a value range of the second preset ratio according to the step or the programming voltage slope; wherein the program verification method is applied to an incremental step pulse programming method; or

acquiring a number of loops of a to-be-programmed memory cell; and determining the value range of the second preset value or the value range of the second preset ratio according to the number of loops.

8. The program verification method of claim 6 , wherein the second preset ratio ranges from 2% to 3%.

9. The program verification method of claim 1 , wherein determining the range of the programming states to be verified by the (i+1) th program verification operation according to the verification sub-result for the n th state and the verification sub-result for the (n+k) th state in the i th verification result comprises:

sampling the verification sub-result for the n th state and the verification sub-result for the (n+k) th state in the i th verification result respectively, to obtain an i th sampling statistical data of the n th state and an i th sampling statistical data of the (n+k) th state;

determining a lowest programming state to be verified by the (i+1) th program verification operation according to the i th sampling statistical data of the n th state; and

determining a highest programming state to be verified by the (i+1) th program verification operation according to the i th sampling statistics of the (n+k) th state.

10. A method of programming a memory device, comprising:

applying an (i+1) th programming pulse to to-be-programmed memory cells in the memory device;

in a process of applying the (i+1) th programming pulse, counting fail bits in programming for an n th state and in programming for an (n+k) th state in an i th programming operation according to a verification result for an n th state and a verification result for an (n+k) th state in the i th programming operation, to obtain an i th count result, wherein programming states verified by the i th program verification operation range from the n th state to the (n+k) th state, i and n are positive integers, k is a natural number, and the (n+k) th state is less than or equal to a highest programming state of the memory device;

determining a range of programming states to be verified by an (i+1) th program verification operation according to the i th count result; and

executing the (i+1) th program verification operation according to the determined range of the programming states to be verified by the (i+1) th program verification operation.

11. The method of claim 10 , wherein the i th count result comprises: a number of fail bits in programming for the n th state in the i th programming operation;

determining the range of programming states to be verified by the (i+1) th program verification operation according to the i th count result comprises:

when a number of fail bits in the programming for the n th state is less than a first preset value, determining that a lowest programming state to be verified by the (i+1) th program verification operation is an (n+1) th state; and when the number of fail bits in the programming for the n th state is greater than or equal to the first preset value, determining that the lowest programming state to be verified by the (i+1) th program verification operation is the n th state;

or

when a ratio of the number of fail bits in the programming for the n th state to a number of bits for which a target state is the n th state is less than a first preset ratio, determining that the lowest programming state to be verified by the ( i+ 1) th program verification operation is the (n+1) th state; and when the ratio of the number of fail bits in the programming for the n th state to the number of bits for which the target state is the n th state is greater than or equal to the first preset ratio, determining that the lowest programming state to be verified by the (i+1) th program verification operation is the n th state.

12. The method of claim 10 , wherein the i th count result comprises: a number of fail bits in the programming for the (n+k) th state in the i th programming operation;

determining the range of programming states to be verified by the (i+1) th program verification operation according to the i th count result comprises:

when a number of successful bits in programming for the (n+k) th state is larger than a second preset value, and the (n+k) th state is smaller than a highest programming state of the memory device, determining that the highest programming state to be verified by the (i+1) th program verification operation is an (n+k+1) th state; and when the number of successful bits in the programming for the (n+k) th state is less than or equal to the second preset value, determining that the highest programming state to be verified by the (i+1) th program verification operation is the (n+k) th state; or

when a ratio of the number of successful bits in the programming for the (n+k) th state to a number of bits for which the target state is the (n+k) th state is greater than a second preset ratio, determining that the highest programming state to be verified by the (i+1) th program verification operation is the (n+k+1) th state; and when the ratio of the number of successful bits in the programming for the (n+k) th state to the number of bits for which the target state is the (n+k) th state is less than or equal to the second preset ratio, determining that the highest programming state to be verified by the (i+1) th program verification operation is the (n+k) th state.

13. The method of claim 10 , wherein counting fail bits in the programming for the n th state and in the programming for the (n+k) th state in the i th programming operation according to the verification result for the n th state and the verification result for the (n+k) th state in the i th programming operation, to obtain the i th count result comprises:

sampling a verification sub-result for the n th state and a verification sub-result for the (n+k) th state in an i th verification result respectively to obtain i th sampling data of the n th state and the i th sampling data of the (n+k) th state; and

counting the fail bits in programming for the n th state and in programming for the (n+k) th state in the i th programming operation based on the i th sampling data of the n th state and the i th sampling data of the (n+k) th state, to obtain the i th count result.

14. A memory device, comprising:

a memory cell array comprising memory cell rows;

word lines respectively coupled to the memory cell rows; and

a peripheral circuit coupled to the word lines and configured to execute program verification operation on a selected memory cell row from the memory cell rows, the selected memory cell row coupled to a selected word line, wherein in order to execute the program verification operation, the peripheral circuit is configured to:

obtain an i th verification result of an i th program verification operation, wherein programming states verified by the i th program verification operation range from an n th state to an (n+k) th state, i and n are positive integers, k is a natural number, and the (n+k) th state is less than or equal to a highest programming state of the memory device;

determine a range of programming states to be verified by the (i+1) th program verification operation according to a verification sub-result for the n th state and a verification sub-result for the (n+k) th state in the i th verification result; and

execute the (i+1) th program verification operation according to the determined range of programming states to be verified by the (i+1) th program verification operation.

15. The memory device of claim 14 , wherein when determining the range of the programming states to be verified by the (i+1) th program verification operation according to the verification sub-result for the n th state and the verification sub-result for the (n+k) th state in the i th verification result, the peripheral circuit is configured to:

determine a lowest programming state to be verified by the (i+1) th program verification operation according to the verification sub-result for the n th state in the i th verification result; and

determine a highest programming state to be verified by the (i+1) th program verification operation according to the verification sub-result for the (n+k) th state in the i th verification result.

16. The memory device of claim 15 , wherein the verification result for the n th state in the i th verification result comprises: i th statistical data of the n th state for counting a number of fail bits in programming for the n th state, and

when determining the highest programming state to be verified by the (i+1) th program verification operation according to the verification sub-result for the (n+k) th state in the i th verification result, the peripheral circuit is configured to:

determine the number of fail bits in the programming for the n th state according to the i th statistical data of the n th state; when the number of fail bits in the programming for the n th state is less than a first preset value, determine that the lowest programming state to be verified by the (i+1) th program verification operation is an (n+1) th state; and when the number of fail bits in the programming for the n th state is greater than or equal to the first preset value, determine that the lowest programming state to be verified by the (i+1) th program verification operation is the n th state; or

when a ratio of the number of fail bits in the programming for the n th state to a number of bits for which a target state is the n th state is less than a first preset ratio, determine that the lowest programming state to be verified by the (i+1) th program verification operation is the (n+1) th state; and when the ratio of the number of fail bits in the programming for the n th state to the number of bits for which the target state is the n th state is greater than or equal to the first preset ratio, determine the lowest programming state to be verified by the (i+1) th program verification operation to be the n th state.

17. The memory device of claim 16 , wherein the peripheral circuit is further configured to:

acquire a number of loops of a to-be-programmed memory cell; and

determine, according to the number of loops, a value range of the first preset value or a value range of the first preset ratio.

18. The memory device of claim 16 , wherein

a value range of the first preset value is within an allowable range of an error correction code error correction mechanism performed on the memory device.

19. The memory device of claim 15 , wherein the verification sub-result for the (n+k) th state in the i th verification result comprises: i th statistical data of the (n+k) th state for counting successful bits in programming for the (n+k) th state, and

when determining the highest programming state to be verified by the (n+1) th program verification operation according to the verification sub-result for the (n+k) th state in the i th verification result, the peripheral circuit is configured to:

determine a number of successful bits in the programming for the (n+k) th state according to i th statistical data of the (n+k) th state; when the number of successful bits in the programming for the (n+k) th state is larger than a second preset value, and the (n+k) th state is smaller than the highest programming state of the memory device, determine that the highest programming state to be verified by the (i+1) th program verification operation is an (n+k+1) th state; and when the number of successful bits in the programming for the (n+k) th state is less than or equal to the second preset value, determine that the highest programming state to be verified by the (i+1) th program verification operation is the (n+k) th state; or

when a ratio of the number of successful bits in the programming for the (n+k) th state to a number of bits for which a target state is the (n+k) th state is greater than a second preset ratio, determine that the highest programming state to be verified by the (i+1) th program verification operation is the (n+k+1) th state; and when the ratio of the number of successful bits in the programming for the (n+k) th state to the number of bits for which the target state is the (n+k) th state is less than or equal to the second preset ratio, determine that the highest programming state to be verified by the (i+1) th program verification operation is the (n+k) th state.

20. The memory device of claim 19 , wherein the peripheral circuit is further configured to:

acquire a step or a programming voltage slope of an incremental step pulse programming; and determine a value range of the second preset value or a value range of the second preset ratio according to the step or the programming voltage slope; or

acquire a number of loops of a to-be-programmed memory cell; and determine the value range of the second preset value or the value range of the second preset ratio according to the number of loops.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jan 12, 2023
From: GUO, XIAOJIANG
To: YANGTZE MEMORY TECHNOLOGIES CO., LTD.
Reel/Frame 062365/0187 →
Continuity (2)
Continuation PCTCN2021115699 · Aug 31, 2021
Related Publication 20230148366A1 · May 11, 2023
References Cited (11)
US 8611155B2 · Kim · 2013 [cited by examiner]
US 9406393B2 · Park · 2016 [cited by examiner]
US 11031084B1 · Lee · 2021 [cited by examiner]
US 20150348633A1 · Song et al. · 2015 [cited by applicant]
CN 102157204A · 2011 [cited by applicant]
CN 105390157A · 2016 [cited by applicant]
CN 106981306A · 2017 [cited by applicant]
CN 108133732A · 2018 [cited by applicant]
CN 110349607A · 2019 [cited by applicant]
CN 111599400A · 2020 [cited by applicant]
CN 112825260A · 2021 [cited by applicant]