IP Library Granted Patent US 9,501,402
Granted Patent B2
US 9,501,402 · App. 14/184,256 · Granted Nov 22, 2016

Techniques to perform power fail-safe caching without atomic metadata

Inventor: Sanjeev N. Trika (Hillsboro, OR)
Assignee: INTEL CORPORATION
G06F12/0246G06F11/1441G06F12/0815G06F12/0866G06F12/0804G06F2212/222
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,501,402
App. No.
14/184,256
Granted
Nov 22, 2016
Kind
B2
Abstract

A method and system to allow power fail-safe write-back or write-through caching of data in a persistent storage device into one or more cache lines of a caching device. No metadata associated with any of the cache lines is written atomically into the caching device when the data in the storage device is cached. As such, specialized cache hardware to allow atomic writing of metadata during the caching of data is not required.

Claims (49)

1. A method comprising:

utilizing, by a controller, at most, half of a full data storage capacity of a flash memory cache to cache data of a storage device that comprises a redundant array of independent disks (RAID) of a multicore processor computer; and

writing the data back to the RAID using a write back caching scheme, the write back caching scheme resulting in stored data in the storage device being capable of being asynchronous with cached data in flash memory cache, the cached data in the flash memory cache to be periodically flushed, prior to shutdown of the apparatus, to the storage device so as to ensure that, after completion of a flushing of the cached data to the storage device, all flushed cached data is capable of being recoverable despite improper shutdown of the apparatus;

the controller comprising both a run-time controller and a recovery controller, the run-time controller to implement caching mechanisms, the caching mechanisms including (1) detection of cache hits and cache misses and (2) queuing of caching commands and eviction commands;

the recovery controller to recover, after a failure event has occurred, cache state of cache lines in the cache;

the run-time controller and the recovery controller being comprised, at least in part, in a block storage driver of an operating system of the computer;

the run-time controller and/or the recovery controller to (1) determine, at least in part, whether processor utilization rate of the computer is below a threshold, and (2) synchronize the cached data of the cache with the stored data of the storage device when the processor utilization rate is below the threshold.

2. The method of claim 1 , wherein:

in event of power failure of the cache, integrity and coherency of the data in the cache are preserved.

3. The method of claim 1 , wherein:

the cache is also to cache other data of non-volatile main memory of the multicore processor computer.

4. The method of claim 1 , wherein:

the computer comprises a multicore processor and a Universal Serial Bus (USB) interface; and

the processor is to communicate with the USB interface, the RAID, and the cache.

5. The method of claim 1 , wherein:

the cache and the controller are comprised in a system on chip.

6. An apparatus comprising:

a flash memory cache having a full data storage capacity;

a controller to utilize, at most, half of the full data storage capacity to cache data of a storage device that comprises a redundant array of independent disks (RAID) of a multicore processor computer; and

wherein a write back caching scheme is to be used to write the data back to the RAID, the write back caching scheme resulting in stored data in the storage device being capable of being asynchronous with cached data in flash memory cache, the cached data in the flash memory cache to be periodically flushed, prior to shutdown of the apparatus, to the storage device so as to ensure that, after completion of a flushing of the cached data to the storage device, all flushed cached data is capable of being recoverable despite improper shutdown of the apparatus;

the controller comprising both a run-time controller and a recovery controller, the run-time controller to implement caching mechanisms, the caching mechanisms including (1) detection of cache hits and cache misses and (2) queuing of caching commands and eviction commands;

the recovery controller to recover, after a failure event has occurred, cache state of cache lines in the cache;

the run-time controller and the recovery controller being comprised, at least in part, in a block storage driver of an operating system of the computer;

the run-time controller and/or the recovery controller to (1) determine, at least in part, whether processor utilization rate of the computer is below a threshold, and (2) synchronize the cached data of the cache with the stored data of the storage device when the processor utilization rate is below the threshold.

7. The apparatus of claim 6 , wherein:

in event of power failure of the cache, integrity and coherency of the data in the cache are preserved.

8. The apparatus of claim 6 , wherein:

the cache is also to cache other data of non-volatile main memory of the multicore processor computer.

9. The apparatus of claim 6 , wherein:

the computer comprises a multicore processor and a Universal Serial Bus (USB) interface; and

the processor is to communicate with the USB interface, the RAID, and the cache.

10. The apparatus of claim 6 , wherein:

the cache and the controller are comprised in a system on chip.

11. Computer readable storage medium storing instructions that, when executed by a machine, result in performance of operations comprising:

utilizing, by a controller, at most, half of a full data storage capacity of a flash memory cache to cache data of a storage device that comprises a redundant array of independent disks (RAID) of a multicore processor computer; and

writing the data back to the RAID using a write back caching scheme, the write back caching scheme resulting in stored data in the storage device being capable of being asynchronous with cached data in flash memory cache, the cached data in the flash memory cache to be periodically flushed, prior to shutdown of the apparatus, to the storage device so as to ensure that, after completion of a flushing of the cached data to the storage device, all flushed cached data is capable of being recoverable despite improper shutdown of the apparatus;

the controller comprising both a run-time controller and a recovery controller, the run-time controller to implement caching mechanisms, the caching mechanisms including (1) detection of cache hits and cache misses and (2) queuing of caching commands and eviction commands;

the recovery controller to recover, after a failure event has occurred, cache state of cache lines in the cache;

the run-time controller and the recovery controller being comprised, at least in part, in a block storage driver of an operating system of the computer;

the run-time controller and/or the recovery controller to (1) determine, at least in part, whether processor utilization rate of the computer is below a threshold, and (2) synchronize the cached data of the cache with the stored data of the storage device when the processor utilization rate is below the threshold.

12. The medium of claim 11 , wherein:

in event of power failure of the cache, integrity and coherency of the data in the cache are preserved.

13. The medium of claim 11 , wherein:

the cache is also to cache other data of non-volatile main memory of the multicore processor computer.

14. The medium of claim 11 , wherein:

the computer comprises a multicore processor and a Universal Serial Bus (USB) interface; and

the processor is to communicate with the USB interface, the RAID, and the cache.

15. The medium of claim 11 , wherein:

the cache and the controller are comprised in a system on chip.

Assignments (2)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Feb 10, 2023
From: INTEL CORPORATION
To: SK HYNIX NAND PRODUCT SOLUTIONS CORP.
Reel/Frame 062702/0048 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Sep 15, 2016
From: TRIKA, SANJEEV N.
To: INTEL CORPORATION
Reel/Frame 039757/0081 →
Continuity (3)
Division 13473419 · May 16, 2012
Continuation 12414385 · Mar 30, 2009
Related Publication 20140173190A1 · Jun 19, 2014