Writable tracking cells
First Claim
1. A method of operating a non-volatile memory having a plurality of memory cells, each for storing one of N data states, the method comprising:
- programming a plurality of populations of tracking cells, each of said populations including one or more tracking cells and each of said populations of tracking cells being associated with one of said N data states, wherein the tracking cells of a given population are programmed using a different programming algorithm than is used for a memory cell programmed to the associated data state; and
converting the threshold voltages of said memory cells to logical values of said N states using the threshold voltages of said populations of tracking cells, wherein each of said populations of tracking cells is programmed using the same program verify level as a memory cell programmed to the associated data state.
2 Assignments
0 Petitions
Accused Products
Abstract
The present invention presents several techniques for using writable tracking cells. Multiple tracking cells are provided for each write block of the memory. These cells are re-programmed each time the user cells of the associated write block are written, preferably at the same time, using the same fixed, global reference levels to set the tracking and user cell programmed thresholds. The threshold voltages of the tracking cells are read every time the user cells are read, and these thresholds are used to determine the stored logic levels of the user cells. In one set of embodiments, populations of one or more tracking cells are associated with different logic levels of a multi-state memory. These tracking cell populations may be provided for only a subset of the logic levels. The read points for translating the threshold voltages are derived for all of the logic levels based upon this subset. In one embodiment, two populations each consisting of multiple tracking cells are associated with two logic levels of the multi-bit cell. In an analog implementation, the user cells are read directly using the analog threshold values of the tracking cell populations without their first being translated to digital values. A set of alternate embodiments provide for using different voltages and/or timing for the writing of tracking cells to provide less uncertainty in the tracking cells'"'"' final written thresholds.
-
Citations
12 Claims
-
1. A method of operating a non-volatile memory having a plurality of memory cells, each for storing one of N data states, the method comprising:
-
programming a plurality of populations of tracking cells, each of said populations including one or more tracking cells and each of said populations of tracking cells being associated with one of said N data states, wherein the tracking cells of a given population are programmed using a different programming algorithm than is used for a memory cell programmed to the associated data state; and converting the threshold voltages of said memory cells to logical values of said N states using the threshold voltages of said populations of tracking cells, wherein each of said populations of tracking cells is programmed using the same program verify level as a memory cell programmed to the associated data state. - View Dependent Claims (2)
-
-
3. A method of operating a non-volatile memory having a plurality of memory cells, each for storing one of N data states, the method comprising:
-
programming a plurality of populations of tracking cells, each of said populations including one or more tracking cells and each of said populations of tracking cells being associated with one of said N data states, wherein the tracking cells of a given population are programmed using a different programming algorithm than is used for a memory cell programmed to the associated data state; and converting the threshold voltages of said memory cells to logical values of said N states using the threshold voltages of said populations of tracking cells, wherein programming said given population uses pulses of a shorter duration than are used for memory cells programmed to the associated data states.
-
-
4. A method of operating a non-volatile memory having a plurality of memory cells, each for storing one of N data states, the method comprising:
-
programming a plurality of populations of tracking cells, each of said populations including one or more tracking cells and each of said populations of tracking cells being associated with one of said N data states, wherein the tracking cells of a given population are programmed using a different programming algorithm than is used for a memory cell programmed to the associated data state; and converting the threshold voltages of said memory cells to logical values of said N states using the threshold voltages of said populations of tracking cells, wherein programming said given population uses a control gate voltage having a lower magnitude than is used for said programming one or more memory cells.
-
-
5. A method of operating a non-volatile memory having a plurality of memory cells, each for storing one of N data states, the method comprising:
-
programming a plurality of populations of tracking cells, each of said populations including one or more tracking cells and each of said populations of tracking cells being associated with one of said N data states, wherein the tracking cells of a given population are programmed using a different programming algorithm than is used for a memory cell programmed to the associated data state; and converting the threshold voltages of said memory cells to logical values of said N states using the threshold voltages of said populations of tracking cells, wherein programming said given population uses a drain voltage having a lower magnitude than is used for said programming one or more memory cells.
-
-
6. A method of operating a non-volatile memory having a plurality of memory cells, each for storing one of N data states, the method comprising:
-
programming a plurality of populations of tracking cells, each of said populations including one or more tracking cells and each of said populations of tracking cells being associated with one of said N data states, wherein the tracking cells of a given population are programmed using a different programming algorithm than is used for a memory cell programmed to the associated data state; and converting the threshold voltages of said memory cells to logical values of said N states using the threshold voltages of said populations of tracking cells, wherein said programming the plurality of populations of tracking cells is performed concurrently with programming one or more memory cells.
-
-
7. A method of operating a non-volatile memory having a plurality of memory cells, each for storing one of N data states, the method comprising:
-
programming a plurality of populations of tracking cells, each of said populations including one or more tracking cells and each of said populations of tracking cells being associated with one of said N data states, wherein the tracking cells of a given population are programmed using a different programming algorithm than is used for a memory cell programmed to the associated data state; and converting the threshold voltages of said memory cells to logical values of said N states using the threshold voltages of said populations of tracking cells, wherein said converting comprises; determining from the threshold voltages of said tracking cells a relation between the threshold voltages of said memory cells and the logical value of said N states; and translating the threshold voltages of said memory cells to logical values of said N states using said relation. - View Dependent Claims (8, 9, 10, 11)
-
-
12. A method of operating a non-volatile memory having a plurality of memory cells, each for storing one of N data states, the method comprising:
-
programming a plurality of populations of tracking cells, each of said populations including one or more tracking cells and each of said populations of tracking cells being associated with one of said N data states, wherein the tracking cells of a given population are programmed using a different programming algorithm than is used for a memory cell programmed to the associated data state; and converting the threshold voltages of said memory cells to logical values of said N states using the threshold voltages of said populations of tracking cells, wherein each of said populations of tracking cells comprises a plurality of tracking cells.
-
Specification