IP Library Granted Patent US 7,301,807
Granted Patent B2
US 7,301,807 · App. 11/064,529 · Granted Nov 27, 2007

Writable tracking cells

View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 7,301,807
App. No.
11/064,529
Granted
Nov 27, 2007
Kind
B2
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.

Claims (29)

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. The method of claim 1 , further comprising:

removing from said populations of tracking cells a tracking cell which fails to be verified when programming said tracking cells.

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.

8. The method of claim 7 , wherein said memory cells are multi-state memory cells, N being greater than two.

9. The method of claim 8 , wherein plurality of populations of tracking cells are a plurality M of tracking cell populations, each comprised of a plurality of tracking cells, wherein each of said populations is associated with one of said multi-states.

10. The method of claim 9 , wherein M is less than N.

11. The method of claim 10 , wherein M is two.

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.

Assignments (2)
CHANGE OF NAME Recorded May 25, 2016
From: SANDISK TECHNOLOGIES INC
To: SANDISK TECHNOLOGIES LLC
Reel/Frame 038813/0004 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded May 19, 2011
From: SANDISK CORPORATION
To: SANDISK TECHNOLOGIES INC.
Reel/Frame 026311/0657 →