IP Library › Granted Patent US 9,406,394
Granted Patent B2
US 9,406,394 · App. 14/726,927 · Granted Aug 2, 2016

Flash memory device using adaptive program verification scheme and related method of operation

Inventors: Sang Yong Yoon (Seoul, KR); Ki Tae Park (Seongnam-si, KR); Moo Sung Kim (Yongin-si, KR); Bo Geun Kim (Suwon-si, KR); Hyun Jun Yoon (Seongnam-si, KR)
Assignee: Samsung Electronics Co., Ltd.
G11C16/3459G11C11/5671G11C16/10G11C16/3454G11C11/56
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 9,406,394
App. No.
14/726,927
Granted
Aug 2, 2016
Kind
B2
Abstract

A method of programming a flash memory device comprises programming selected memory cells, performing a verification operation to determine whether the selected memory cells have reached a target program state, and determining a start point of the verification operation based on a programming characteristic associated with a detection of a pass bit during programming of an initial program state.

Claims (113)

1. A method of programming a nonvolatile memory device, comprising:

receiving a program address;

performing a first program loop according to the program address;

wherein the first program loop includes:

applying a first program voltage to selected memory cells corresponding to the program address;

applying a first verify voltage to the selected memory cells; and

storing a first verify result related with first memory cells targeted to a first program state which are verified using the first verify voltage, the first memory cells being included in the selected memory cells;

performing a second program loop according to the program address;

wherein the second program loop includes:

applying a second program voltage higher than the first program voltage to the selected memory cells;

checking a program pass/fail of the first program state based on the first verify result during applying the second program voltage;

applying a second verify voltage higher than the first verify voltage to the selected memory cells; and

storing a second verify result related with second memory cells targeted to a second program state which are verified using the second verify voltage, the second memory cells being included in the selected memory cells;

performing a third program loop according to the program address;

wherein the third program loop includes:

applying a third program voltage higher than the second program voltage to the selected memory cells; and

checking a program pass/fail of the second program state based on the second verify result during applying the third program voltage in response to a result of the checking the program pass/fail of the first program state.

2. The method of claim 1 , wherein the result of the checking the program pass/fail of the first program state is a program-pass.

3. The method of claim 1 , wherein the second program loop further includes:

determining whether to apply the first verify voltage to the selected memory cells at the second program loop based on the result of the checking the program pass/fail of the first program state.

4. The method of claim 1 , wherein all of the first memory cells are program-inhibited during applying the third program voltage based on the result of the checking the program pass/fail of the first program state.

5. The method of claim 1 , wherein a threshold voltage distribution of the first program state is adjacent to a threshold voltage distribution of the second program state.

6. A method of programming a nonvolatile memory device, comprising:

receiving a program address;

performing a first program loop according to the program address;

wherein the first program loop includes:

applying a first program voltage to selected memory cells corresponding to the program address;

applying a first verify voltage to the selected memory cells; and

storing a first verify result related with first memory cells targeted to a first program state which are verified using the first verify voltage, the first memory cells being included in the selected memory cells;

performing a second program loop according to the program address;

wherein the second program loop includes:

applying a second program voltage higher than the first program voltage to the selected memory cells;

counting a plurality of first program fail-bits among the first memory cells based on the first verify result during applying the second program voltage;

applying a second verify voltage higher than the first verify voltage to the selected memory cells; and

storing a second verify result related with second memory cells targeted to a second program state which are verified using the second verify voltage, the second memory cells being included in the selected memory cells;

performing a third program loop according to the program address;

wherein the third program loop includes:

applying a third program voltage higher than the second program voltage to the selected memory cells; and

counting a plurality of second program fail-bits among the second memory cells based on the second verify result during applying the third program voltage in response to a result of the counting the plurality of first program fail-bits among the first memory cells.

7. The method of claim 6 , wherein the result of the counting the plurality of first program fail-bits among the first memory cells is less than a first reference value.

8. The method of claim 7 , wherein the result of the counting the plurality of second program fail-bits among the second memory cells is compared with a second reference value, the second reference value is different from the first reference value.

9. The method of claim 7 , wherein the plurality of first program fail-bits among the first memory cells are program-inhibited during applying the third program voltage based on the result of the counting the plurality of first program fail-bits among the first memory cells.

10. The method of claim 6 , wherein the second program loop further includes:

determining whether to apply the first verify voltage to the selected memory cells at the second program loop based on the result of the counting the plurality of first program fail-bits among the first memory cells.

11. The method of claim 10 , wherein the second program loop further includes:

determining whether to apply the first verify voltage to the selected memory cells at the second program loop based on the result of the comparing the first counting result of the plurality of first program fail-bits with the first reference value.

12. A method of programming a nonvolatile memory device, comprising:

receiving a program address;

performing a first program loop according to the program address;

wherein the first program loop includes:

applying a first program voltage to selected memory cells corresponding to the program address;

applying a first verify voltage to the selected memory cells; and

storing a first verify result related with first memory cells targeted to a first program state which are verified using the first verify voltage, the first memory cells being included in the selected memory cells;

performing a second program loop according to the program address;

wherein the second program loop includes:

applying a second program voltage higher than the first program voltage to the selected memory cells; and

checking a program pass/fail of the first program state based on the first verify result during applying the second program voltage,

determining whether to apply the first verify voltage to the selected memory cells at the second program loop based on a result of the checking the program pass/fail of the first program state.

13. The method of claim 12 , wherein the second program loop further includes:

applying a second verify voltage higher than the first verify voltage to the selected memory cells; and

storing a second verify result related with second memory cells targeted to a second program state which are verified using the second verify voltage, the second memory cells being included in the selected memory cells.

14. The method of claim 13 , further comprising:

performing a third program loop according to the program address;

wherein the third program loop includes:

applying a third program voltage higher than the second program voltage to the selected memory cells; and

checking a program pass/fail of the second program state based on the second verify result during applying the third program voltage.

15. The method of claim 12 , wherein when the first program state is determined to be program-passed, all of the first memory cells are program inhibited during applying the second program voltage.

16. A method of programming a nonvolatile memory device, comprising:

receiving a program address;

performing a first program loop according to the program address;

wherein the first program loop includes:

applying a first program voltage to selected memory cells corresponding to the program address;

applying a first verify voltage to the selected memory cells; and

storing a first verify result related with first memory cells targeted to a first program state which are verified using the first verify voltage, the first memory cells being included in the selected memory cells;

performing a second program loop according to the program address;

wherein the second program loop includes:

applying a second program voltage higher than the first program voltage to the selected memory cells; and

counting a plurality of first program fail-bits among the first memory cells based on the first verify result during applying the second program voltage,

performing a third program loop according to the program address;

applying a third program voltage higher than the second program voltage to the selected memory cells,

program-inhibiting the plurality of first program fail-bits among the

first memory cells during applying the third program voltage based on a

result of the counting the plurality of first program fail-bits among the first

memory cells,

wherein the result of the counting the plurality of first program fail-bits is less than a first reference value.

17. The method of claim 16 , the second program loop further includes:

determining whether to apply the first verify voltage to the selected memory cells at the second program loop based on the result of the counting the plurality of first program fail-bits.

18. The method of claim 16 , wherein the second program loop further includes:

applying a second verify voltage higher than the first verify voltage to the selected memory cells; and

storing a second verify result related with second memory cells targeted to a second program state which are verified using the second verify voltage, the second memory cells being included in the selected memory cells;

wherein the third program loop further includes:

counting a plurality of second program fail-bits among the second memory cells based on the second verify result during applying the third program voltage.

19. The method of claim 18 , wherein the result of the counting the plurality of second program fail-bits among the second memory cells is compared with a second reference value, the second reference value is different from the first reference value.

20. A method of programming a nonvolatile memory device, comprising:

receiving a program address;

performing a first program loop according to the program address;

wherein the first program loop includes:

applying a first program voltage to selected memory cells corresponding to the program address;

applying a first verify voltage to the selected memory cells; and

storing a first verify result related with first memory cells targeted to a first program state which are verified using the first verify voltage, the first memory cells being included in the selected memory cells;

performing a second program loop according to the program address;

wherein the second program loop includes:

applying a second program voltage higher than the first program voltage to the selected memory cells; and

counting a plurality of first program fail-bits among the first memory cells based on the first verify result during applying the second program voltage,

comparing a first counting result of the plurality of first program fail-bits among the first memory cells with a first reference value,

applying a second verify voltage higher than the first verify voltage to the selected memory cells; and

storing a second verify result related with second memory cells targeted to a second program state which are verified using the second verify voltage, the second memory cells being included in the selected memory cells,

performing a third program loop according to the program address;

wherein the third program loop includes:

applying a third program voltage higher than the second program voltage to the selected memory cells; and

counting a plurality of second program fail-bits among the second memory cells based on the second verify result during applying the third program voltage in response to a result of the comparing the first counting result of the plurality of first program fail-bits among the first memory cells with the first reference value,

program-inhibiting the plurality of first program fail-bits among the first memory cells during applying the third program voltage in response to the result of the comparing the first counting result of the plurality of first program fail-bits with the first reference value

comparing a second counting result of the plurality of second program fail-bits among the second memory cells with a second reference value, the second reference value being different from the first reference value.

Priority Claims (1)
KR 10-2010-0012894 · Feb 11, 2010 · national
Continuity (3)
Continuation 13841503 · Mar 15, 2013
Continuation 12963867 · Dec 9, 2010
Related Publication 20150262700A1 · Sep 17, 2015