IP Library Granted Patent US 8,533,404
Granted Patent B2
US 8,533,404 · App. 12/503,480 · Granted Sep 10, 2013

Hardware and operating system support for persistent memory on a memory bus

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,533,404
App. No.
12/503,480
Granted
Sep 10, 2013
Kind
B2
Abstract

Implementations of a file system that is supported by a non-volatile memory that is directly connected to a memory bus, and placed side by side with a dynamic random access memory (DRAM), are described.

Claims (36)

1. A computing device comprising:

a central processing unit (CPU) component that enforces ordering and atomicity in a memory system of the computing device based in part by assigning an epoch identifier (epoch ID) to enforce writes;

a byte-addressable non-volatile memory component that is directly connected to a memory bus and directly accessed by the CPU component; and

a dynamic random access memory (DRAM), placed side by side with the byte-addressable non-volatile memory component.

2. The computing device of claim 1 , wherein the CPU component further includes a cache controller component and a memory controller component.

3. The computing device of claim 1 , wherein the CPU component provides ordering of writes to enforce correctness guarantees.

4. The computing device of claim 1 , wherein the byte-addressable non-volatile memory component is capable of using small and random writes to reduce traffic in the memory bus.

5. The computing device of claim 1 , wherein the byte-addressable non-volatile memory component is directly connected to the memory bus to obtain CPU speed.

6. The computing device of claim 1 , wherein the byte-addressable non-volatile memory component is a phase change memory (PCM).

7. The computing device of claim 1 , wherein the DRAM is used for stack and heap to improve wear lifetime of the byte-addressable non-volatile memory component.

8. The computing device of claim 1 , wherein the CPU component further comprises:

a cache controller component that uses the epoch ID, a persistence bit, and a dirty block counter to enforce ordering of writes; and

a memory controller component that enforces the ordering of writes by providing a timing restraint in addition to the persistence bit, the dirty block counter, and the epoch ID.

9. The computing device of claim 8 , wherein the memory controller component comprises:

a scheduler component that provides timing to the memory controller component; and

a memory controller transaction component that contains data to be flushed according to the timing provided by the scheduler component.

10. The computing device of claim 8 , wherein the persistence bit is used to reference the data that is to be written in the byte-addressable non-volatile memory component.

11. The computing device of claim 8 , wherein the memory controller component assures that a write cannot be reflected in the byte-addressable non-volatile memory component before in-flight writes associated with all earlier epochs are performed.

12. A computing device comprising:

a central processing unit (CPU) component, wherein the CPU component provides an epoch identifier (epoch ID);

a cache controller component coupled to the CPU component to enforce ordering and atomicity of writes to a memory system of the computing device based in part on the epoch identifier (epoch ID);

a memory controller component coupled to the CPU component to enforce the ordering and atomicity of the writes based in part on the epoch ID and in part on a timing restraint; and

a memory component directly accessible by the CPU component.

13. The computing device of claim 12 , wherein the memory component comprises:

a persistent memory component; and

a dynamic random access memory (DRAM).

14. The computing device of claim 13 , wherein the DRAM and the persistent memory component are directly coupled to a memory bus.

15. The computing device of claim 12 , wherein the memory controller component is integrated into the CPU component.

16. The computing device of claim 12 , wherein the memory controller component includes added state bits to track the epoch ID for the timing and scheduling of writes.

17. A computer system comprising:

a non-volatile memory component;

a dynamic random access memory (DRAM) coupled to the non-volatile memory component; and

a central processing unit (CPU) to enforce ordering and atomicity of writes to the non-volatile memory component, the CPU comprising a scheduler component and a memory controller transaction component to flush data according to timing provided by the scheduler component.

18. The computer system of claim 17 , wherein the scheduler component integrates access of the non-volatile memory component and the DRAM.

19. The computer system of claim 17 , wherein the CPU, the DRAM, and the non-volatile memory component are directly coupled to a memory bus.

20. The computer system of claim 17 , wherein the memory controller transaction component also uses persistence bits to represent the data.

Assignments (2)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Dec 9, 2014
From: MICROSOFT CORPORATION
To: MICROSOFT TECHNOLOGY LICENSING, LLC
Reel/Frame 034564/0001 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Sep 18, 2009
From: CONDIT, JEREMY P.; NIGHTINGALE, EDMUND B.; LEE, BENJAMIN C.; IPEK, ENGIN; FROST, CHRISTOPHER; BURGER, DOUGLAS C
To: MICROSOFT CORPORATION
Reel/Frame 023253/0260 →