IP Library Granted Patent US 10,115,476
Granted Patent B2
US 10,115,476 · App. 15/221,947 · Granted Oct 30, 2018

Advanced programming verification schemes for memory cells

Inventors: Eyal Gurgi (Petah-Tikva, IL); Yoav Kasorla (Kfar Netar, IL); Barak Rotbard (Tel-Aviv, IL); Shai Ojalvo (Moshav Olesh, IL)
Assignee: Apple Inc.
G11C29/38G06F11/07G06F11/073G06F11/0772G06F11/263G11C11/1677G11C11/5628G11C11/5635G11C11/5678G11C13/0035G11C13/0064G11C13/0069G11C13/0097G11C16/10G11C16/3459G11C29/12015G11C29/44G11C29/50012
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 10,115,476
App. No.
15/221,947
Granted
Oct 30, 2018
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 (33)

1. An apparatus, comprising:

a plurality of blocks, wherein each block of the plurality of blocks includes a plurality of data storage cells;

circuitry configured to:

measure respective durations of one or more write commands associated with storing data in one or more data storage cells of the plurality of data storage cells in a particular block of the plurality of blocks;

compare the respective durations of the one or more write commands to a predefined duration range; and

identify the particular block as bad in response to a determination that the respective durations of the one or more write commands deviate from the predefined duration range.

2. The apparatus of claim 1 , wherein to compare the respective durations of the one or more write commands to the predefined duration range, the circuitry is further configured to calculate an average duration dependent upon the respective durations of the one or more write commands.

3. The apparatus of claim 1 , wherein to compare the respective durations of the one or more write commands to the predefined duration range, the circuitry is further configured to determine a maximum duration using the respective durations of the one or more write commands.

4. The apparatus of claim 1 , wherein to compare the respective durations of the one or more write commands to the predefined duration range, the circuitry is further configured to determine a minimum duration the respective durations of the one or more write commands.

5. The apparatus of claim 1 , wherein the circuitry is further configured to remove the particular block from service in response to identifying the particular block as bad.

6. The apparatus of claim 1 , wherein the circuitry is further configured to perform additional evaluation of the particular block in response to identifying the particular block as bad.

7. A method, comprising:

measuring respective durations of one or more write commands associated with storing data in one or more data storage cells of a plurality of data storage cells included in a particular block of a plurality of blocks;

comparing the respective durations of the one or more write commands to a predefined duration range; and

identifying the particular block as bad in response to determining that the respective durations of the one or more write commands deviate from the predefined duration range.

8. The method of claim 7 , wherein comparing the respective durations of the one or more write commands to the predefined duration range includes calculating an average duration using the respective durations of the one or more write commands.

9. The method of claim 7 , wherein comparing the respective durations of the one or more write commands to the predefined duration range includes calculating a maximum duration of the respective durations of the one or more write commands.

10. The method of claim 7 , wherein comparing the respective durations of the one or more write commands to the predefined duration range includes calculating a minimum duration using the respective durations of the one or more write commands.

11. The method of claim 7 , further comprising removing the particular block from service in response to identifying the particular block as bad.

12. The method of claim 7 , further comprising performing an additional evaluation of the particular block in response to identifying the particular block as bad.

13. The method of claim 7 , further comprising comparing data read from at least one data storage cell of the plurality of data storage cells included in the particular block to expected data in response to determining that the respective durations of the one or more write commands deviate from the predefined duration range.

14. A system, comprising:

a memory device including a plurality of blocks, wherein each block includes a plurality of data storage cells; and

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

measure respective durations of one or more write commands associated with storing data in one or more data storage cells of the plurality of data storage cells in a particular block of the plurality of blocks;

compare the respective durations of the one or more write commands to a predefined duration range; and

identify the particular block as bad in response to a determination that the respective durations of the one or more write commands deviate from the predefined duration range.

15. The system of claim 14 , wherein to compare the respective durations of the one or more write commands to the predefined duration range, the controller is further configured to calculate an average duration dependent upon the respective durations of the one or more write commands.

16. The system of claim 14 , wherein to compare the respective durations of the one or more write commands to the predefined duration range, the controller is further configured to determine a maximum duration dependent upon the respective durations of the one or more write commands.

17. The system of claim 14 , wherein to compare the respective durations of the one or more write operations to the predefined duration range, the controller is further configured to determine a minimum duration dependent upon the respective durations of the one or more write commands.

18. The system of claim 14 , wherein the controller is further configured to remove the particular block from service in response to identifying the particular block as bad.

19. The system of claim 14 , wherein the controller is further configured to perform additional evaluation of the particular block in response to identifying the particular block as bad.

20. The system of claim 14 , wherein the controller is further configured to compare data read from at least one data storage cell of the plurality of data storage cells included in the particular block to expected data in response to the determination that the respective durations of the one or more write commands deviate from the predefined duration range.

Continuity (5)
Continuation 14662470 · Mar 19, 2015
Continuation 13356694 · Jan 24, 2012
Provisional Application 61436619 · Jan 27, 2011
Provisional Application 61486341 · May 16, 2011
Related Publication 20160336078A1 · Nov 17, 2016