IP Library Granted Patent US 9,417,948
Granted Patent B2
US 9,417,948 · App. 14/662,470 · Granted Aug 16, 2016

Advanced programming verification schemes for memory cells

Inventors: Eyal Gurgi (Tikva, IL); Yoav Kasorla (Yehuda, IL); Barak Rotbard (Tel-Aviv, IL); Shai Ojalvo (Olesh, IL)
Assignee: Apple Inc.
G06F11/0772G06F11/07G06F11/073G06F11/263G11C11/1677G11C11/5628G11C11/5635G11C11/5678G11C13/0035G11C13/0064G11C13/0069G11C13/0097
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 9,417,948
App. No.
14/662,470
Granted
Aug 16, 2016
Kind
B2
Abstract

A method for data storage includes receiving in a memory device data for storage in a group of memory cells. The data is stored in the group by performing a Program and Verify (P&V) process, which applies to the memory cells in the group a sequence of programming pulses and compares respective analog values of the memory cells in the group to respective verification thresholds. Immediately following successful completion of the P&V process, a mismatch between the stored data and the received data is detected in the memory device. An error in storage of the data is reported responsively to the mismatch.

Claims (42)

1. An apparatus, comprising:

a plurality of data storage cells; and

circuitry configured to:

receive data for storage in a group of the plurality of data storage cells;

store the data in the group of the plurality of data storage cells;

determine a number of erased data storage cells included in the group of the plurality of data storage cells following the storage of the data in the group of the plurality of data storage cells; and

report an error indicative of double programming the group of the plurality of memory cells in response to a determination that the number of erased data storage cells included in the group of the plurality of data storage cells is less than a threshold value.

2. The apparatus of claim 1 , wherein to store the data in the group of the plurality of data storage cells, the circuitry is further configured to:

apply a sequence of programming pulses to each data storage cell in the group of the plurality of data storage cells; and

compare values stored in each data storage cell in the group of the plurality of data storage cells to respective verification threshold values.

3. The apparatus of claim 1 , wherein to determine the number of erased data storage cells included in the group of the plurality of data storage cells, the circuitry is further configured to perform a read operation on at least one data storage cell in the group of the plurality of data storage cells using an erase read threshold value.

4. The apparatus of claim 3 , wherein the erase read threshold value is zero volts.

5. The apparatus of claim 1 , wherein each data storage cell of the plurality of data storage cells comprises a multi-level data storage cell.

6. The apparatus of claim 5 , wherein to store the data in the group of the plurality of data storage cells, the circuitry is further configured to store a respective portion of the data in a Least Significant Bit of each data storage cell in the group of the plurality of data storage cells.

7. A method, comprising:

receiving data for storage in a group of a plurality of data storage cells included in a memory;

storing the data in the group of the plurality of data storage cells;

determining a number of erased data storage cells included in the group of the plurality of data storage cells following storing the data in the group of the plurality of data storage cells; and

reporting an error indicative of double programming the group of the plurality of memory cells in response to determining that the number of erased data storage cells included in the group of the plurality of data storage cells is less than a threshold value.

8. The method of claim 7 , wherein determining the number of erased data storage cells included in the group of the plurality of data storage cells comprises performing a read operation on at one least data storage cell in the group of the plurality of data storage cells using an erase read threshold value.

9. The method of claim 8 , wherein the erase read threshold value is zero volts.

10. The method of claim 7 , wherein storing the data in the group of the plurality of data storage cells comprises:

applying a sequence of programming pulses to each data storage cell in the group of the plurality of data storage cells; and

comparing values stored in each data storage cell in the group of the plurality of data storage cells to respective verification threshold values.

11. The method of claim 7 , wherein each data storage cell of the plurality of data storage cells comprises a multi-level data storage cell.

12. The method of claim 11 , wherein storing the data in the group of the plurality of data storage cells comprises storing a respective portion of the data in a Least Significant Bit of each data storage cell in the group of the plurality of data storage cells.

13. The method of claim 7 , further comprising reporting a programming success in response to determining that the number of erased data storage cells included in the group of the plurality of data storage cells is greater than or equal to the threshold value.

14. A system, comprising:

a memory device including a plurality of data storage cells; and

a controller coupled to the memory device, wherein the controller is configured to:

receive data for storage in a group of the plurality of data storage cells;

store the data in the group of the plurality of data storage cells;

determine a number of erased data storage cells included in the group of the plurality of data storage cells following the storage of the data in the group of the plurality of data storage cells; and

report an error indicative of double programming the group of the plurality of memory cells in response to a determination that the number of erased data storage cells included in the group of the plurality of data storage cells is less than a threshold value.

15. The system of claim 14 , wherein to store the data in the group of the plurality of data storage cells, the controller is further configured to:

apply a sequence of programming pulses to each data storage cell in the group of the plurality of data storage cells; and

compare values stored in each data storage cell in the group of the plurality of data storage cells to respective verification threshold values.

16. The system of claim 14 , wherein to determine the number of erased data storage cells included in the group of the plurality of data storage cells, the controller is further configured to perform a read operation on at one least data storage cell in the group of the plurality of data storage cells using an erase read threshold value.

17. The system of claim 16 , wherein the erase read threshold value is zero volts.

18. The system of claim 14 , wherein each data storage cell of the plurality of data storage cells comprises a multi-level data storage cell.

19. The system of claim 18 , wherein to store the data in the group of the plurality of data storage cells, the controller is further configured to store a respective portion of the data in a Least Significant Bit of each data storage cell in the group of the plurality of data storage cells.

20. The system of claim 14 , wherein the controller is further configured to report a programming success in response to a determination that the number of erased data storage cells included in the group of the plurality of data storage cells is greater than or equal to the threshold value.

Continuity (4)
Continuation 13356694 · Jan 24, 2012
Provisional Application 61436619 · Jan 27, 2011
Provisional Application 61486341 · May 16, 2011
Related Publication 20150193293A1 · Jul 9, 2015