Smart verify for multi-state memories
First Claim
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.
3 Assignments
0 Petitions
Accused Products
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” means 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. This next state can either be added immediately upon the fastest elements reaching this preceding state in the sequence or after a delay of several program cycles. The adding of states to the set being checked in the verify phase continues through the rest of the set of multi-states in sequence, until the highest state has been added. Additionally, lower states can be removed from the verify set as all of the selected storage elements bound for these levels verify successfully to those target values and are locked out from further programming.
-
Citations
16 Claims
-
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. - View Dependent Claims (2, 3)
-
-
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. - View Dependent Claims (5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16)
-
Specification