Compensating for coupling during programming
AssigneeSanDisk Technologies LLC
InventorYan Li
Life of this patent
Estimating the term…
Abstract
Shifts in the apparent charge stored on a floating gate (or other charge storing element) of a non-volatile memory cell can occur because of the coupling of an electric field based on the charge stored in adjacent floating gates (or other adjacent charge storing elements). To compensate for this coupling, the read or programming process for a given memory cell can take into account the programmed state of an adjacent memory cell. To determine whether compensation is needed, a process can be performed that includes sensing information about the programmed state of an adjacent memory cell (e.g., on an adjacent bit line or other location).
Claims17
A method of programming non-volatile storage, comprising:
- programming a first non-volatile storage element to store first data;
- and
- programming a second non-volatile storage element to store second data in parallel with the programming of the first non-volatile storage element to store first data, the programming of the first non-volatile storage element to store first data is configured by setting a target of the programming of the first non-volatile storage element based on the second data.
A method of programming non-volatile storage, comprising:
- programming a first non-volatile storage element to store first data;
- and
- programming a second non-volatile storage element to store second data in parallel with the programming of the first non-volatile storage element to store first data, the programming of the first non-volatile storage element to store first data is configured by setting a verify level used during the programming of the first non-volatile storage element, the verify level is set based on the second data.
A method of programming non-volatile storage, comprising:
- programming a first non-volatile storage element to store first data;
- programming a second non-volatile storage element to store second data;
- and
- programming a third non-volatile storage element to store third data, the programming of the first non-volatile storage element to store first data is configured based on the second data and the third data.
A method of programming non-volatile storage, comprising:
- accessing first data to be stored into a first non-volatile storage element;
- determining whether to adjust programming of the first data into the first non-volatile storage element based on second data to be programmed into a different non-volatile storage element;
- and
- programming the first data into the first non-volatile storage element in parallel with programming the second data into the different non-volatile storage element, the programming of the first data into the first non-volatile storage element includes an adjustment if the determining concluded that the programming of the first data into the first non-volatile storage element should be adjusted.
A method of programming non-volatile storage, comprising:
- (a) applying a predetermined dose of programming voltage to a group of non-volatile memory cells in parallel to increase a threshold voltage of each non-volatile memory cell under programming;
- (b) sensing each non-volatile memory cell of the group in parallel to verify its memory state relative to a respective target state, the sensing determines the threshold voltage of each non-volatile memory cell relative to a predetermined verify level, the predetermined verify level being a function of the respective target state and the target states of one or more neighboring non-volatile memory cells of the group;
- and
- (c) inhibiting from further programming each non-volatile memory cell in the group that has been verified;
- and repeating (a)-(c) until more non-volatile memory cells of the group have been verified to the respective target memory states.
Dependencies are inferred from the claim text.