Behavior based programming of non-volatile memory
First Claim
Patent Images
1. 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.
6 Assignments
0 Petitions
Accused Products
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).
239 Citations
57 Claims
-
1. 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. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13)
-
-
14. 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. - View Dependent Claims (15, 16, 17, 18, 19, 20, 21, 22, 23, 24)
-
-
25. 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. - View Dependent Claims (26, 27, 28, 29, 30, 31, 32, 33, 34, 35)
-
-
36. 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. - View Dependent Claims (37, 38, 39, 40, 41, 42, 43, 44, 45)
-
-
46. 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. - View Dependent Claims (47, 48)
-
-
49. 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. - View Dependent Claims (50)
-
-
51. 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. - View Dependent Claims (52, 53)
-
-
54. 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. - View Dependent Claims (55, 56, 57)
-
Specification