IP Library Granted Patent US 11,763,905
Granted Patent B2
US 11,763,905 · App. 17/553,024 · Granted Sep 19, 2023

Storage system and method for data protection during power loss

Inventors: Grishma Shah (Milpitas, CA); Sergey Anatolievich Gorobets (Edinburgh, GB); Daniel Tuers (Kapaa, HI)
Assignee: Western Digital Technologies, Inc.
G11C16/3481G11C16/08G11C16/102G11C16/26G11C16/3459G11C29/021
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 11,763,905
App. No.
17/553,024
Granted
Sep 19, 2023
Kind
B2
Abstract

Upon detecting power loss during the process of programming multi-level cell (MLC) memory in a storage system, the storage system takes steps to prevent data loss. In one example, the controller sends a graceful shutdown command to the memory, in response to which the memory aborts the ongoing programming operation and stores data from data latches associated with unprogrammed memory cells in single-level cell (SLC) memory. The memory can also store data from programmed memory cells in the SLC memory. The data to be programmed in the MLC memory can be reconstructed prior to powering down the storage system or after the storage system is powered back up. The reconstructed data can then be programmed in the MLC memory.

Claims (36)

1. A storage system comprising:

a memory comprising data latches and a non-volatile memory array comprising single-level cell (SLC) memory and multi-level cell (MLC) memory; and

a controller configured to send a command to the memory in response to detection of power loss;

wherein in response to receiving the command, the memory is configured to abort an ongoing programming operation to program data, from the data latches, in the MLC memory, wherein after aborting the ongoing programming operation, some, but not all, memory cells in the MLC memory are successfully programmed; and

wherein the controller is further configured to:

store, in the SLC memory prior to powering down the storage system, data from the data latches that correspond to memory cells in the MLC memory that were not successfully programmed;

after powering up the storage system, reconstruct the data that was to be programmed in the MLC memory from the data stored in the SLC memory and from the memory cells in the MLC memory that were successfully programmed.

2. The storage system of claim 1 , wherein the controller is further configured to, after powering up the storage system, cause the data to be read from the SLC memory.

3. The storage system of claim 1 , wherein the ongoing programming operation is aborted without corrupting the data latches.

4. The storage system of claim 1 , wherein the memory is further configured to reconstruct the data one page at a time.

5. The storage system of claim 1 , wherein the controller is further configured to determine that a memory cell in the MLC memory was successfully programmed in response to determining its corresponding data latch indicates successful programming.

6. The storage system of claim 1 , wherein the controller is further configured to power down the storage system after storing the data in the SLC memory.

7. The storage system of claim 1 , further comprising a capacitor configured to power the storage system for shutdown operations in an absence of power from a host.

8. The storage system of claim 1 , wherein the memory comprises a three-dimensional memory.

9. In a storage system comprising a controller and a memory comprising data latches and a non-volatile memory array comprising single-level cell (SLC) memory and multi-level cell (MLC) memory, a method comprising:

sending a command from the controller to the memory in response to detection of power loss;

in response to the memory receiving the command, aborting an ongoing programming operation to program data, from the data latches, in the MLC memory, wherein after aborting the ongoing programming operation, some, but not all, memory cells in the MLC memory are successfully programmed; and

prior to powering down the storage system, programming, in the SLC memory, data from the data latches that correspond to memory cells in the MLC memory that were not successfully programmed; and

after powering up the storage system, reconstructing the data that was to be programmed in the MLC memory from the data stored in the SLC memory and from the memory cells in the MLC memory that were successfully programmed.

10. The method of claim 9 , further comprising, after powering up the storage system:

programming the reconstructed data in the MLC memory.

11. The method of claim 10 , further comprising error correcting the data read from the SLC memory.

12. The method of claim 9 , wherein the ongoing programming operation is aborted without corrupting the data latches.

13. The method of claim 9 , further comprising determining that a memory cell in the MLC memory was successfully programmed in response to determining its corresponding data latch indicates successful programming.

14. The method of claim 9 , further comprising powering down the storage system after programming the SLC memory.

15. The method of claim 9 , further comprising logging memory status information and information about write-aborted locations in the MLC memory.

16. A storage system comprising:

a memory comprising data latches and a non-volatile memory array comprising single-level cell (SLC) memory and multi-level cell (MLC) memory;

means for, in response to receiving a command generated in response to detection of power loss, aborting an ongoing programming operation to program data, from the data latches, in the MLC memory, wherein after aborting the ongoing programming operation, some, but not all, memory cells in the MLC memory are successfully programmed;

means for storing, in the SLC memory prior to powering down the storage system, data from the data latches that correspond to memory cells in the MLC memory that were not successfully programmed; and

means for, after powering up the storage system, reconstructing the data that was to be programmed in the MLC memory from the data stored in the SLC memory and from the memory cells in the MLC memory that were successfully programmed.

17. The storage system of claim 16 , further comprising:

means for programming the reconstructed data in the MLC memory.

18. The storage system of claim 16 , further comprising:

means for error correcting the data read from the SLC memory.

19. The storage system of claim 16 , further comprising a capacitor configured to power the storage system for shutdown operations in an absence of power from a host.

Assignments (8)
PARTIAL RELEASE OF SECURITY INTERESTS Recorded Apr 25, 2025
From: JPMORGAN CHASE BANK, N.A., AS AGENT
To: SANDISK TECHNOLOGIES, INC.
Reel/Frame 071382/0001 →
SECURITY AGREEMENT Recorded Apr 25, 2025
From: SANDISK TECHNOLOGIES, INC.
To: JPMORGAN CHASE BANK, N.A., AS COLLATERAL AGENT
Reel/Frame 071050/0001 →
PATENT COLLATERAL AGREEMENT Recorded Aug 23, 2024
From: SANDISK TECHNOLOGIES, INC.
To: JPMORGAN CHASE BANK, N.A., AS THE AGENT
Reel/Frame 068762/0494 →
CHANGE OF NAME Recorded Jun 27, 2024
From: SANDISK TECHNOLOGIES, INC.
To: SANDISK TECHNOLOGIES, INC.
Reel/Frame 067982/0032 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded May 29, 2024
From: WESTERN DIGITAL TECHNOLOGIES, INC.
To: SANDISK TECHNOLOGIES, INC.
Reel/Frame 067567/0682 →
PATENT COLLATERAL AGREEMENT - DDTL LOAN AGREEMENT Recorded Aug 21, 2023
From: WESTERN DIGITAL TECHNOLOGIES, INC.
To: JPMORGAN CHASE BANK, N.A.
Reel/Frame 067045/0156 →
PATENT COLLATERAL AGREEMENT - A&R LOAN AGREEMENT Recorded Aug 21, 2023
From: WESTERN DIGITAL TECHNOLOGIES, INC.
To: JPMORGAN CHASE BANK, N.A.
Reel/Frame 064715/0001 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Dec 16, 2021
From: SHAH, GRISHMA; GOROBETS, SERGEY ANATOLIEVICH; TUERS, DANIEL
To: WESTERN DIGITAL TECHNOLOGIES, INC.
Reel/Frame 058410/0432 →
Continuity (1)
Related Publication 20230197176A1 · Jun 22, 2023