IP Library Granted Patent US 10,061,655
Granted Patent B2
US 10,061,655 · App. 15/152,295 · Granted Aug 28, 2018

Volatile cache reconstruction after power failure

Inventors: Shashank Nemawarkar (Austin, TX); Balakrishnan Sundararaman (Austin, TX); Mark Ish (Castro Valley, CA)
Assignee: SEAGATE TECHNOLOGY LLC
G06F11/1456G06F3/0605G06F3/0619G06F3/0647G06F3/0653G06F3/0673G06F9/4418G06F11/0727G06F11/0751G06F11/0793G06F12/0804G06F12/0866G06F11/1446G06F2212/1032G06F2212/261G06F2212/305G06F2212/3042G06F2212/7208
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,061,655
App. No.
15/152,295
Granted
Aug 28, 2018
Kind
B2
Abstract

The disclosed technology provides for off-loading dirty data from a volatile cache memory to multiple non-volatile memory devices responsive to detection of a power failure. The arrangement of the dirty data is describable by a cache image, which is reconstructed within the volatile memory from the non-volatile memory devices responsive to detection of power restoration following the power failure.

Claims (44)

1. A method comprising:

writing dirty data to a volatile cache memory; and

responsive to detection of a power failure, selecting a subset of available non-volatile memory devices based on estimated power consumption during cache offload for different combinations of the available non-volatile memory devices receiving different portions of the dirty data during the cache offload; and

off-loading the dirty data to the selected subset of the available non-volatile memory devices.

2. The method of claim 1 , further comprising:

off-loading the dirty data from the volatile cache memory to two or more non-contiguous storage regions of non-volatile memory responsive to the detection of the power failure, wherein an arrangement of the dirty data is describable by a cache image; and

reconstructing the cache image of the dirty data from the non-volatile memory and restoring the cache image within the volatile cache memory responsive to detection of power restoration following the power failure.

3. The method of claim 2 , further comprising:

responsive to restoration of the cache image within the volatile cache memory, flushing the dirty data of the reconstructed cache image to corresponding target logical block addresses in the non-volatile memory.

4. The method of claim 2 , wherein different subsets of the dirty data are off-loaded to different non-volatile memory devices.

5. The method of claim 1 , further comprising:

powering down portions of a storage device prior to off-loading the dirty data.

6. The method of claim 1 , wherein the dirty data is off-loaded to one or more regions of non-volatile memory reserved for storing the dirty data or portions thereof.

7. The method of claim 1 , further comprising:

selecting two or more non-volatile devices to receive different portions of the dirty data.

8. The method of claim 1 , further comprising:

powering down at least one of the available non-volatile memory devices responsive to the selection of the subset of non-volatile memory devices; and

off-loading the dirty data from the volatile cache memory to the selected subset of the non-volatile memory devices.

9. The method of claim 1 , wherein selecting the subset of the available non-volatile memory devices further comprises selecting a combination of the available non-volatile memory devices that can receive the different portions of the dirty data while utilizing a least amount of power during the cache offload.

10. A storage device comprising:

volatile memory storing dirty data;

and

a controller configured to:

identify a plurality of non-volatile memory devices available to receive different portions of the dirty data during a cache offload performed responsive to detection of a power failure;

select a subset of the available non-volatile memory devices based on estimated power consumption during the cache offload for different combinations of the available non-volatile memory devices; and

off-load the dirty data to the selected subset of the available non-volatile memory devices.

11. The storage device of claim 10 , wherein the controller is further configured to reconstruct a cache image within the volatile memory responsive to power restoration.

12. The storage device of claim 11 , wherein the controller is further configured to flush data of the reconstructed cache image to a corresponding target logical block address in the non-volatile memory responsive to successful reconstruction of the cache image within the volatile memory.

13. The storage device of claim 11 , wherein the cache image is flushed to one or more regions of non-volatile memory reserved for storing the cache image or portions thereof.

14. The storage device of claim 11 , wherein the controller is further configured to select two or more non-volatile memory devices to receive different portions of the dirty data in the off-load.

15. The storage device of claim 10 , wherein the controller is further configured to power down portions of the storage device prior to off-loading the dirty data.

16. The storage device of claim 10 , wherein the controller selects the subset of the available non-volatile memory devices that can receive the different portions of the dirty data while utilizing a least amount of power during the cache offload.

17. One or more tangible computer-readable storage media encoding computer-executable instructions for executing on a computer system a computer process, the computer process comprising:

writing dirty data to a volatile cache memory; and

responsive to detection of a power failure, identifying a plurality of non-volatile memory devices available to receive different portions of the dirty data during a cache offload;

selecting a subset of the available non-volatile memory devices based on estimated power consumption during the cache offload for different combinations of the available non-volatile memory devices; and

off-loading the dirty data to the selected subset of the available non-volatile memory devices.

18. The one or more tangible computer-readable storage media of claim 17 , wherein the computer process further comprises:

off-loading the dirty data from the volatile cache memory to two or more non-volatile memory devices responsive to detection of a power failure, the content and arrangement of the cache data describable by a cache image; and

reconstructing the cache image of the dirty data and restoring the cache image within the volatile cache memory from the two or more non-volatile memory devices responsive to detection of power restoration following the power failure.

19. The one or more tangible computer-readable storage media of claim 18 , wherein the computer process further comprise:

flushing dirty data of the reconstructed cache image to target non-volatile storage locations.

20. The one or more tangible computer-readable storage media of claim 18 , wherein the cache image is off-loaded to one or more regions of non-volatile memory reserved for storing the cache image or portions thereof.

21. The one or more tangible computer-readable storage media of claim 17 , wherein selecting the subset of the available non-volatile memory devices further comprises selecting a combination of the available devices that can receive the different portions of the dirty data while utilizing a least amount of power during the cache offload.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded May 11, 2016
From: NEMAWARKAR, SHASHANK; SUNDARARAMAN, BALAKRISHNAN; ISH, MARK
To: SEAGATE TECHNOLOGY LLC
Reel/Frame 038552/0656 →
Continuity (1)
Related Publication 20170329706A1 · Nov 16, 2017