IP Library › Granted Patent US 9,740,419
Granted Patent B2
US 9,740,419 · App. 15/419,563 · Granted Aug 22, 2017

Methods and apparatus to preserve data of a solid state drive during a power loss event

Inventors: Yogesh B. Wakchaure (Folsom, CA); Aliasgar Madraswala (Folsom, CA); Pranav Kalavade (San Jose, CA); Xin Guo (San Jose, CA); David Pelster (Longmont, CO); Myron Loewen (Loveland, CO); Feng Zhu (San Jose, CA); Brennan A. Watt (Boulder, CO)
Assignee: Intel Corporation
G06F3/0625G06F3/065G06F3/0619G06F3/0688G06F12/0811G06F2212/283
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,740,419
App. No.
15/419,563
Granted
Aug 22, 2017
Kind
B2
Abstract

Methods, apparatus, systems and articles of manufacture to preserve data of a solid state drive during a power loss event are disclosed. An example method includes setting an alternate data cache (PDC 1 ) to a logical AND of a secondary data cache (SDC) and a primary data cache (PDC 0 ). The PDC 1 is set to a logical AND of the PDC 1 and a first result of a first sense operation. The PDC 0 is set to a logical AND of the PDC 0 and an inverse value of the PDC 1 . The PDC 1 is set to a logical AND of the SDC and the PDC 0 . The PDC 1 is set to a logical AND of the PDC 1 and an inverse value of a second result of a second sense operation. The SDC is set to a logical AND of the SDC and the PDC 0 . The SDC is set to a logical OR of the SDC or the PDC 0 . The PDC 0 is set to a logical AND of the PDC 0 and a third result of a third sensing operation.

Claims (67)

1. An apparatus comprising:

a first memory cell;

a primary data cache;

an alternate data cache;

a secondary data cache, the primary data cache, the alternate data cache, and the secondary data cache to store at least a portion of data while the data is written to the first memory cell; and

a non-volatile memory controller to, in response to an instruction to abort a write operation to the first memory cell:

set the alternate data cache equal to a logical AND of the secondary data cache and the primary data cache;

perform a first sense operation of the first memory cell at a first sensing threshold;

set the alternate data cache equal to a logical AND of the alternate data cache and a first result of the first sense operation;

set the primary data cache equal to a logical AND of the primary data cache and an inverse value of the alternate data cache;

set the alternate data cache equal to a logical AND of the secondary data cache and the primary data cache;

perform a second sense operation of the first memory cell at a second sensing threshold;

set the alternate data cache equal to a logical AND of the alternate data cache and an inverse value of a second result of the second sense operation;

set the secondary data cache equal to a logical AND of the secondary data cache and the primary data cache;

set the secondary data cache equal to a logical OR of the secondary data cache or the primary data cache;

perform a third sense operation of the first memory cell at a third sensing threshold; and

set the primary data cache equal to a logical AND of the primary data cache and a third result of the third sensing operation.

2. The apparatus as defined in claim 1 , wherein the non-volatile memory controller is further to, upon the setting of the primary data cache equal to the logical AND of the primary data cache and a third result of the third sensing operation:

write, to a second memory cell, the data stored in the primary data cache; and

write, to a third memory cell, the data stored in the secondary data cache.

3. The apparatus as defined in claim 2 , wherein the second memory cell is the first memory cell.

4. The apparatus as defined in claim 2 , wherein the second memory cell is separate from the first memory cell.

5. The apparatus as defined in claim 2 , wherein the third memory cell is separate from the first memory cell and the second memory cell.

6. The apparatus as defined in claim 2 , wherein the first memory cell is included in a first memory block, and the second memory cell and the third memory cell are included in a second memory block separate from the first memory block.

7. The apparatus as defined in claim 6 , wherein the second memory block is operated in a dedicated single level cell mode.

8. The apparatus as defined in claim 1 , further including:

an energy storage circuit;

a power loss event detector to detect a main power loss event; and

an abort instructor to, using energy stored in the energy storage circuit, provide the instruction to abort the ongoing write operation to the non-volatile memory controller in response to the detection of the main power loss event.

9. A method for recovering data to be written to an aborted memory cell, the method comprising:

setting an alternate data cache equal to a logical AND of a secondary data cache and a primary data cache, wherein the alternate data cache, the secondary data cache, and the primary data cache are to store at least a portion of data while the data is written to the aborted memory cell;

performing a first sense operation of the aborted memory cell at a first sensing threshold;

setting the alternate data cache equal to a logical AND of the alternate data cache and a first result of the first sense operation;

setting the primary data cache equal to a logical AND of the primary data cache and an inverse value of the alternate data cache;

setting the alternate data cache equal to a logical AND of the secondary data cache and the primary data cache;

performing a second sense operation of the aborted memory cell at a second sensing threshold;

setting the alternate data cache equal to a logical AND of the alternate data cache and an inverse value of a second result of the second sense operation;

setting the secondary data cache equal to a logical AND of the secondary data cache and the primary data cache;

setting the secondary data cache equal to a logical OR of the secondary data cache or the primary data cache;

performing a third sense operation of the aborted memory cell at a third sensing threshold; and

setting the primary data cache equal to a logical AND of the primary data cache and a third result of the third sensing operation.

10. The method as defined in claim 9 , further including, upon the setting of the primary data cache equal to the logical AND of the primary data cache and a third result of the third sensing operation:

writing, to a first memory cell, the data stored in the primary data cache; and

writing, to a second memory cell, the data stored in the secondary data cache.

11. The method as defined in claim 10 , wherein the first memory cell is the aborted memory cell.

12. The method as defined in claim 10 , wherein the first memory cell is separate from the aborted memory cell.

13. The method as defined in claim 10 , wherein the second memory cell is separate from the aborted memory cell and the first memory cell.

14. The method as defined in claim 10 , wherein the aborted memory cell is included in a first memory block, and the first memory cell and the second memory cell are included in a second memory block separate from the first memory block.

15. The method as defined in claim 14 , wherein the second memory block is operated in a dedicated single level cell mode.

16. At least one tangible machine readable storage medium comprising instructions that, when executed, cause one or more processors to at least:

set an alternate data cache equal to a logical AND of a secondary data cache and a primary data cache, wherein the alternate data cache, the secondary data cache, and the primary data cache are to store at least a portion of data while the data is written to a memory cell;

perform a first sense operation of the memory cell at a first sensing threshold;

set the alternate data cache equal to a logical AND of the alternate data cache and a first result of the first sense operation;

set the primary data cache equal to a logical AND of the primary data cache and an inverse value of the alternate data cache;

set the alternate data cache equal to a logical AND of the secondary data cache and the primary data cache;

perform a second sense operation of the memory cell at a second sensing threshold;

set the alternate data cache equal to a logical AND of the alternate data cache and an inverse value of a second result of the second sense operation;

set the secondary data cache equal to a logical AND of the secondary data cache and the primary data cache;

set the secondary data cache equal to a logical OR of the secondary data cache or the primary data cache;

perform a third sense operation of the memory cell at a third sensing threshold; and

set the primary data cache equal to a logical AND of the primary data cache and a third result of the third sensing operation.

17. The at least one tangible machine readable storage medium as defined in claim 16 , wherein the instructions, when executed, further cause the machine to, upon the setting of the primary data cache equal to a logical AND of the primary data cache and a third result of the third sensing operation:

write, to a first memory cell, the data stored in the primary data cache; and

write, to a second memory cell, the data stored in the secondary data cache.

18. The at least one tangible machine readable storage medium as defined in claim 17 , wherein the first memory cell is the aborted memory cell.

19. The at least one tangible machine readable storage medium as defined in claim 17 , wherein the first memory cell is separate from the aborted memory cell.

20. The at least one tangible machine readable storage medium as defined in claim 17 , wherein the aborted memory cell is included in a first memory block, and the first memory cell and the second memory cell are included in a second memory block separate from the first memory block.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Feb 28, 2017
From: WAKCHAURE, YOGESH B.; MADRASWALA, ALIASGAR S.; KALAVADE, PRANAV; GUO, XIN; PELSTER, DAVID J.; LOEWEN, MYRON; ZHU, FENG; WATT, BRENNAN A.
To: INTEL CORPORATION
Reel/Frame 041398/0642 →
Continuity (2)
Continuation 14884428 · Oct 15, 2015
Related Publication 20170139626A1 · May 18, 2017