IP Library Granted Patent US 9,063,864
Granted Patent B2
US 9,063,864 · App. 13/549,819 · Granted Jun 23, 2015

Storing data in presistent hybrid memory

Inventors: Jichuan Chang (Sunnyvale, CA); Parthasarathy Ranganathan (San Jose, CA)
Assignee: Hewlett-Packard Development Company, L.P.
G06F12/0895G06F12/0866G06F12/0804Y02B60/1225
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,063,864
App. No.
13/549,819
Filed
Jul 16, 2012
Granted
Jun 23, 2015
Kind
B2
Art Unit
2137
USPC
711/105
Abstract

Storing data in persistent hybrid memory includes promoting a memory block from non-volatile memory to a cache based on a usage of said memory block according to a promotion policy, tracking modifications to the memory block while in the cache, and writing the memory block back into the non-volatile memory after the memory block is modified in the cache based on a writing policy that keeps a number of the memory blocks that are modified at or below a number threshold while maintaining the memory block in the cache.

Claims (38)

1. A method for storing data in persistent hybrid memory, comprising:

promoting a memory block from non-volatile memory to a cache based on usage of said memory block according to a promotion policy;

tracking modifications to said memory block while in said cache; and

writing said memory block back into said non-volatile memory after said memory block is modified in said cache according to a write back policy that keeps a number of said memory blocks that are modified at or below a number threshold while maintaining said memory block in said cache.

2. The method of claim 1 , further comprising tracking usage on a per memory block basis in said cache and said non-volatile memory.

3. The method of claim 1 , wherein said write back policy comprises a throttling sub-policy of writing back said memory block between on demand requests.

4. The method of claim 1 , wherein writing said memory block back into said non-volatile memory after said memory block is modified in said cache according to a write back policy while maintaining said memory block in said cache includes writing said memory block together with selected modified memory blocks to said non-volatile memory.

5. The method of claim 1 , wherein said write back policy includes predicting when said memory block is finished receiving modifications.

6. The method of claim 1 , wherein said cache comprises dynamic random access memory.

7. The method of claim 1 , wherein said promotion policy comprises promoting said memory block based on a frequency and/or likelihood of writing to said memory block.

8. The method of claim 1 , wherein promoting a memory block from non-volatile memory to a cache based on usage of said memory block according to a promotion policy includes evicting a second memory block in said cache back to said non-volatile memory.

9. The method of claim 1 , wherein said number threshold is number of memory blocks that a back-up power source is capable of writing back to said non-volatile member in an event of a power failure.

10. The method of claim 1 , wherein writing said memory block back into said non-volatile memory after said memory block is modified in said cache according to a write back policy that keeps a number of said memory blocks that are modified at or below a number threshold while maintaining said memory block in said cache includes evicting or periodically writing back dirty blocks in said cache during a background operation so that at any given time said number of memory blocks that are modified in the cache is at or below said threshold.

11. A memory device, comprising:

a hybrid memory structure comprising a non-volatile memory location and a cache;

said non-volatile memory location comprising memory dedicated to tracking memory block usage; and

a processor programmed to

promote selected memory blocks based on said memory block usage;

track modifications to said selected memory blocks while in said cache;

write back at least one of said selected memory blocks according to a write back policy that predicts when said at least one of said selected memory blocks is finished being modified; and

use a back-up power source electrically connected to said hybrid memory structure to write back remaining memory blocks in said cache that are inconsistent with said non-volatile memory location during a power failure.

12. The device of claim 11 , wherein said write back policy includes a throttling sub-policy to limit writing said selected memory blocks back during on demand requests.

13. A non-transitory computer readable storage medium storing computer readable program code, the computer readable program code executable by a processor, comprising:

computer readable program code to promote a memory block from a non-volatile memory location to a cache based on tracked memory block usage;

computer readable program code to track modifications to said memory block while said memory block is in said cache; and

computer readable program code to write back said memory block according to a write back policy that predicts when said memory block is finished being modified.

14. The non-transitory computer readable storage medium of claim 13 , the computer readable program code further comprising computer readable program code to use a back-up power source to write back remaining memory blocks inconsistent with said non-volatile memory location during a power failure.

15. The non-transitory computer readable storage medium of claim 13 , the computer readable program code further comprising computer readable program code to limit writing said memory block back during on demand requests.

16. A memory device, comprising:

a hybrid memory structure comprising a non-volatile memory and a cache; and

a processor programmed to

promote data from selected memory blocks in the non-volatile memory to the cache based on said memory block usage;

track modifications to said data while in said cache; and

write back at least some of said data from cache to the non-volatile memory according to a write back policy that predicts when modification of data being written back is finished.

17. The memory device of claim 16 , further comprising a back-up power source electrically connected to said hybrid memory structure, wherein said processor is programmed to use said back-up power source to write back remaining memory blocks in said cache that are inconsistent with said non-volatile memory during a power failure.

18. The memory device of claim 16 , wherein said write back policy includes a throttling sub-policy to limit writing data back to the non-volatile memory during on demand requests.

19. The memory device of claim 16 , wherein said write back policy comprises a limit on a number of memory blocks that can be modified in cache before a write back of at least some data to said non-volatile memory occurs.

20. The memory device of claim 16 , wherein said non-volatile memory comprises memristor 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 Jul 16, 2012
From: CHANG, JICHUAN; RANGANATHAN, PARTHASARATHY
To: HEWLETT-PACKARD DEVELOPMENT COMPANY, L.P.
Reel/Frame 028559/0842 →
Continuity (1)
Related Publication 20140019677A1 · Jan 16, 2014