IP Library › Granted Patent US 8,499,121
Granted Patent B2
US 8,499,121 · App. 13/222,919 · Granted Jul 30, 2013

Methods and apparatus to access data in non-volatile memory

Inventors: Niraj Tolia (Sunnyvale, CA); Nathan Lorenzo Binkert (Redwood City, CA); Jichuan Chang (Sunnyvale, CA)
Assignee: Hewlett-Packard Development Company, L.P.
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 8,499,121
App. No.
13/222,919
Granted
Jul 30, 2013
Kind
B2
Abstract

Example methods, apparatus, and articles of manufacture to access data are disclosed. A disclosed example method involves generating a key-value association table in a non-volatile memory to store physical addresses of a data cache storing data previously retrieved from a data structure. The example method also involves storing recovery metadata in the non-volatile memory. The recovery metadata includes a first address of the key-value association table in the non-volatile memory. In addition, following a re-boot process, the locations of the key-value association table and the data cache are retrieved using the recovery metadata without needing to access the data structure to re-generate the key-value association table and the data cache.

Claims (29)

1. A method to access data in non-volatile memory, the method comprising:

generating a key-value association table in a non-volatile memory to store physical addresses of a data cache storing data previously retrieved from a data structure;

storing recovery metadata at a location in the non-volatile memory, the recovery metadata including a first address of the key-value association table in the non-volatile memory; and

following a re-boot process, retrieving locations of the key-value association table and the data cache using the recovery metadata without accessing the data structure to re-generate the key-value association table and the data cache.

2. A method as defined in claim 1 , wherein the recovery metadata further includes a size of the key-value association table and a second address of the data cache.

3. A method as defined in claim 1 , wherein the re-boot process is performed in response to a system crash or a power failure of a device storing the key-value association table, the key-value association table remaining persistently stored in the non-volatile memory at the first address through the system crash or the power failure.

4. A method as defined in claim 1 , further comprising, following the re-boot process:

determining validity of the physical addresses in the key-value association table based on management bits stored in association with the physical addresses; and

determining validity of the data in the data cache based on data management bits stored in association with the data.

5. A method as defined in claim 1 , further comprising using a wear-leveling process to adjust the physical addresses corresponding to the data of the data cache and distribute writes in the non-volatile memory based on the adjusted physical addresses.

6. An apparatus to access data, the apparatus comprising:

a maintenance manager to store recovery metadata at a location in a non-volatile memory, the recovery metadata including a first address of a key-value association table in the non-volatile memory, the key-value association table storing physical addresses of a data cache; and

a recovery manager to, following a re-boot process, retrieve locations of the key-value association table and the data cache using the recovery metadata without retrieving data from an originating data source to re-build the key-value association table and the data cache.

7. An apparatus as defined in claim 6 further comprising a validity manager to determine validity of the physical addresses in the key-value association table and validity of the data in the data cache, and when at least one of the key-value association table or the data cache is not valid, revert the at least one of the key-value association table or the data cache to a valid version.

8. An apparatus as defined in claim 7 , wherein the validity manager is to determine the validity of the physical addresses in the key-value association table based on association management bits stored in association with the physical addresses and to determine the validity of the data in the data cache based on data management bits stored in association with the data.

9. An apparatus as defined in claim 6 , wherein the maintenance manager is further to store a size of the key-value association table and a second address of the data cache in the recovery metadata.

10. An apparatus as defined in claim 6 , wherein the re-boot process is performed in response to a system crash or a power failure of a device storing the key-value association table, the key-value association table to remain persistently stored in the non-volatile memory at the first address through the system crash or the power failure.

11. An apparatus as defined in claim 6 , further comprising a wear-level manager to adjust the physical addresses corresponding to the data of the data cache and distribute writes in the non-volatile memory based on the adjusted physical addresses.

12. A tangible machine accessible medium having instructions stored thereon that, when executed, cause a machine to at least:

generate a key-value association table in a non-volatile memory to store physical addresses of a data cache storing data previously retrieved from a data structure;

store recovery metadata in the non-volatile memory, the recovery metadata including a first address of the key-value association table in the non-volatile memory; and

following a re-boot process, retrieve locations of the key-value association table and the data cache using the recovery metadata without accessing the data structure to re-generate the key-value association table and the data cache.

13. A machine accessible medium as defined in claim 12 , wherein the recovery metadata further includes a size of the key-value association table and a second address of the data cache.

14. A machine accessible medium as defined in claim 12 , wherein the re-boot process is performed in response to a system crash or a power failure of a device storing the key-value association table, the key-value association table remaining persistently stored in the non-volatile memory at the first address through the system crash or the power failure.

15. A machine accessible medium as defined in claim 12 having instructions stored thereon that, when executed, cause the machine to, following the re-boot process:

determine validity of the physical addresses in the key-value association table based on association management bits stored in association with the physical addresses; and

determine validity of the data in the data cache based on data management bits stored in association with the data.

16. A machine accessible medium as defined in claim 12 having instructions stored thereon that, when executed, cause the machine to perform a wear-leveling process to adjust the physical addresses corresponding to the data of the data cache and distribute writes in the non-volatile memory based on the adjusted physical addresses.

17. A machine accessible medium as defined in claim 12 having instructions stored thereon that, when executed, cause the machine to store the recovery metadata at a fixed location in the non-volatile memory.

Assignments (2)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Nov 9, 2015
From: HEWLETT-PACKARD DEVELOPMENT COMPANY, L.P.
To: HEWLETT PACKARD ENTERPRISE DEVELOPMENT LP
Reel/Frame 037079/0001 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Sep 2, 2011
From: TOLIA, NIRAJ; BINKERT, NATHAN LORENZO; CHANG, JICHUAN
To: HEWLETT-PACKARD DEVELOPMENT COMPANY, L.P.
Reel/Frame 026850/0585 →
Continuity (1)
Related Publication 20130054869A1 · Feb 28, 2013