Behavior based programming of non-volatile memory
AssigneeSanDisk Corporation
InventorsJian Chen, Jeffrey W. Lutze, Yan Li, Daniel C. Guterman, Tomoharu Tanaka
Life of this patent
Estimating the term…
Abstract
The process for programming a set of memory cells is improved by adapting the programming process based on behavior of the memory cells. For example, a set of program pulses is applied to the word line for a set of flash memory cells. A determination is made as to which memory cells are easier to program and which memory cells are harder to program. Bit line voltages (or other parameters) can be adjusted based on the determination of which memory cells are easier to program and which memory cells are harder to program. The programming process will then continue with the adjusted bit line voltages (or other parameters).
Claims57
A method for programming non-volatile memory, comprising:
- categorizing particular non-volatile storage elements in a set of non-volatile storage elements into three or more different groups, each particular non-volatile storage element being categorized into one of the different groups based on its detected behavior;
- and
- programming said particular non-volatile storage elements using a different programming condition for each of the different groups.
A system for programming non-volatile memory, comprising:
- a set of non-volatile storage elements;
- a set of control lines in communication with said set of non-volatile storage elements;
- and
- a controlling circuit in communication with said control lines, said controlling circuit causes a categorizing of particular non-volatile storage elements in said set of non-volatile storage elements into three or more different groups, each particular non-volatile storage element being categorized into one of the different groups based on its detected behavior, and causes programming of each of said particular non-volatile storage elements using a different programming condition for each of the different groups.
A method for programming non-volatile memory, comprising:
- applying initial programming to non-volatile storage elements until at least one non-volatile storage element reaches a target threshold value;
- and
- responsive to the at least one non-volatile storage element reaching said target threshold value, adjusting programming of at least a subset of non-volatile storage elements that have not reached said target threshold value based on behavior of said non-volatile storage elements that have not reached said target threshold value.
A system for programming non-volatile memory, comprising:
- a set of non-volatile storage elements;
- control lines in communication with said set of non-volatile storage elements;
- and
- a controlling circuit in communication with said control lines, said controlling circuit causes initial programming of said non-volatile storage elements until at least one non-volatile storage element reaches a target threshold value, and, responsive to the at least one non-volatile storage element reaching said target threshold value, said controlling circuit causes adjustment of programming of at least a subset of non-volatile storage elements that have not reached said target threshold value based on behavior of said non-volatile storage elements that have not reached said target threshold value.
A method for programming non-volatile memory, comprising:
- applying an initial program voltage to a set of non-volatile storage elements;
- applying one or more non-zero source voltages to said set of non-volatile storage elements after commencing said initial program voltage;
- while applying said one or more non-zero source voltages, characterizing threshold voltages of said set of non-volatile storage elements by applying one or more positive voltages to control gates for said non-volatile storage elements and determining whether said non-volatile storage elements turn-on in order to determine whether said non-volatile storage elements have a threshold voltage greater than a compare point;
- and
- adjusting a programming parameter of at least a subset of said non-volatile storage elements based on said step of characterizing.
A system for programming non-volatile memory, comprising:
- a set of non-volatile storage elements;
- control lines in communication with said set of non-volatile storage elements;
- and
- a controlling circuit in communication with said control lines, said controlling circuit causes:
- application of an initial program voltage to said set of non-volatile storage elements,
- while applying one or more non-zero source voltages, characterization of threshold voltages of said set of non-volatile storage elements by applying a voltage to control gates for said non-volatile storage elements and determining whether said non-volatile storage elements turn-on in order to determine whether said non-volatile storage elements have a threshold voltage greater than a compare point;
- and
- adjustment of control line voltages of at least a subset of said non-volatile storage elements based on said step of characterizing.
A method for programming non-volatile memory, comprising:
- applying an initial program voltage to a non-volatile storage element;
- applying a verify voltage to a control gate for said of non-volatile storage element after commencing said applying of said initial program voltage;
- charging a bit line for said of non-volatile storage element after commencing said applying of said initial program voltage;
- allowing said bit line to discharge;
- and
- adjusting a programming parameter of said non-volatile storage elements based on said bit line discharging.
A system for programming non-volatile memory, comprising:
- a set of non-volatile storage elements;
- a word line in communication with said set of non-volatile storage elements;
- a set of bit lines in communication with said set of non-volatile storage elements;
- and
- a controlling circuit in communication with said word line, said control lines, and said non-volatile storage elements, said controlling circuit causes:
- application of an initial program voltage to said non-volatile storage elements,
- application of a verify voltage at a word line for said of non-volatile storage elements after commencing said initial program voltage,
- charging of bit lines for said of non-volatile storage elements after commencing said initial program voltage,
- allowing of said bit lines to discharge,
- adjustment of a programming parameter of at least a subset of said non-volatile storage elements based on said bit line discharging, and
- completion of programming of said non-volatile storage elements using said adjusted programming parameter.
Dependencies are inferred from the claim text.