IP Library Granted Patent US 7,073,103
Granted Patent B2
US 7,073,103 · App. 10/314,055 · Granted Jul 4, 2006

Smart verify for multi-state memories

Assignee: SanDisk Corporation
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 7,073,103
App. No.
10/314,055
Granted
Jul 4, 2006
Kind
B2
Abstract

The present invention presents a “smart verify” technique whereby multi-state memories are programmed using a verify-results-based dynamic adjustment of the multi-states verify range for sequential-state-based verify implementations. This technique can increase multi-state write speed while maintaining reliable operation within sequentially verified, multi-state memory implementations. It does so by providing “intelligent” element to minimize the number of sequential verify operations for each program/verify/lockout step of the write sequence. In an exemplary embodiment of the write sequence for the multi-state memory during a program/verify cycle sequence of the selected storage elements, at the beginning of the process only the lowest state of the multi-state range to which the selected storage elements are being programmed is checked during the verify phase. Once the first storage state is reached by one or more of the selected elements, the next state in the sequence of multi-states is added to the verify process.

Claims (39)

1. A method of operating a non-volatile memory having a plurality of multi-state storage elements, comprising:

applying a first programming pulse to selected ones of said storage elements;

verifying the result of said first programming pulse on said selected storage elements for a first subset of said multi-state levels;

forming a second subset of said multi-state levels based on the results of said verifying, comprising determining whether to include in said second subset one of said multi-state levels not included in the first subset;

subsequent to said verifying, applying a second programming pulse to one or more of said selected storage elements; and

verifying the result of said second programming pulse on said one or more of said selected storage elements for the second subset of said multi-state levels.

2. The method of claim 1 , wherein the application of further programming pulse is terminated to those of said selected storage elements that verify at a respective target value in said verifying the result of said first programming pulse.

3. The method of claim 1 , wherein said forming a second subset of said multi-state levels based on said verifying further comprises determining whether to exclude in said second subset one of said multi-state levels included in the first subset.

4. A method of performing a programming operation on a plurality of multi-state data storage elements, comprising:

performing a programming operation to incrementally move the storage elements from a first data state sequentially through a plurality of second data states;

verifying the result of the preceding programming operation for a subset of one or more target values from a set of target values each corresponding to a respective second data state;

subsequently re-establishing said subset of one or more of said target values for a subsequent verify operation based on the result of the preceding verifying, comprising determining whether to include a target value not in the subset of the preceding verifying; and

subsequently repeating the performing a programming operation and the verifying using said re-established subset of target values.

5. The method of claim 4 , further comprising:

terminating further programming of those of said plurality of storage elements that verify at their respective target value in said verifying the result of the preceding programming operation.

6. The method of claim 4 , wherein said verifying the result comprises sequentially comparing the result of the preceding programming operation against the subset of target values.

7. The method of claim 4 , wherein said subsequently re-established subset of target values is the same as the preceding subset of target values.

8. The method of claim 4 , wherein subsequently re-establishing said subset of target values further comprises determining whether to delete a target value in the subset of the preceding verifying.

9. The method of claim 4 , wherein said performing a programming operation comprising pulsing the storage elements with a programming voltage.

10. The method of claim 9 , wherein said storage elements are EEPROM memory cells and said verifying comprises comparing a parameter indicative of the threshold values of the memory cells against the subset of target values, wherein said target values are values of said parameter.

11. The method of claim 4 , further comprising, subsequent to the repeating the performing a programming operation and the verifying using the re-established subset, repeating one or more times:

subsequently re-establishing said subset of one or more target values for a subsequent verify operation based on the result of the preceding verifying, comprising determining whether to include a target value not in the subset of the preceding verifying; and

subsequently repeating the performing a programming operation.

12. The method of claim 11 , further comprising:

removing from the plurality of multi-state data storage elements those of said storage elements that fail to program properly.

13. The method of claim 11 , wherein said determining whether to include a target value N not in the subset of target values of the preceding verifying is based on one or more of said storage elements verifying at one of said subset of target values in said preceding verifying.

14. The method of claim 13 , wherein the target value N in the sequence of the second data states is included in the subset of target values in response to one or more of said storage elements verifying at the target value (N−1) in the sequence of the second data states.

15. The method of claim 14 , wherein a target value N is included in the verify subset a first number of programming operations after one or more of said storage elements verifying at the target value (N−1) in the preceding verifying.

16. The method of claim 15 , wherein said first number is a settable parameter.

17. A memory comprising:

a plurality of multi-state storage elements;

programming circuitry connectable to the storage units to perform a program operation whereby the state of storage elements can be changed;

sensing circuitry connectable to the storage elements to determine the value of a parameter indicative of the state of the storage elements;

comparison circuitry connected to the sensing circuitry for performing a program verify operation using target values for said parameter corresponding to a subset of the multi-state levels; and

logic circuitry connected to the comparison circuitry, wherein adding of one or more multi-state levels to the subset of the multi-state levels that are used in the program verify operation is determined based on the results of the preceding program verify operation.

18. The memory of claim 17 , wherein in a program verify operation the comparison circuitry compares state of said storage elements to the target values sequentially.

19. The logic circuitry of claim 17 , wherein deletion of one or more multi-state levels from the set of the multi-state levels that are used in the program verify operation is determined based on the results of the preceding program verify operation.

20. The memory of claim 17 , wherein the logic circuitry locks out from further programming storage elements that correctly verify to their respective target values in the program verify operation.

21. The memory of claim 17 , wherein the storage elements are floating gate memory cells.

Assignments (4)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Nov 12, 2021
From: SANDISK TECHNOLOGIES LLC
To: WODEN TECHNOLOGIES INC.
Reel/Frame 058871/0928 →
CHANGE OF NAME Recorded May 25, 2016
From: SANDISK TECHNOLOGIES INC
To: SANDISK TECHNOLOGIES LLC
Reel/Frame 038813/0004 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded May 23, 2011
From: SANDISK CORPORATION
To: SANDISK TECHNOLOGIES INC.
Reel/Frame 026326/0417 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Dec 5, 2002
From: GONGWER, GEOFFREY S.; GUTERMAN, DANIEL C.; FONG, YUPIN KAWING
To: SANDISK CORPORATION
Reel/Frame 013562/0032 →
Continuity (1)
Related Publication 20040109362A1 · Jun 10, 2004