IP Library Granted Patent US 8,219,741
Granted Patent B2
US 8,219,741 · App. 12/485,124 · Granted Jul 10, 2012

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,219,741
App. No.
12/485,124
Granted
Jul 10, 2012
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 (42)

1. A system comprising:

one or more processors;

memory, communicatively coupled to the one or more processors, storing instructions that, when executed by the one or more processors, configure the one or more processors to perform acts comprising:

receiving a first write operation to write at least a first set of data to a first portion of a non-volatile memory;

determining whether the first set of data can be written atomically;

in response to determining that the first set of data can be written atomically, atomically writing the first set of data to the first portion of the non-volatile memory; else

in response to determining that the first set of data cannot be written atomically:

copying the first set of data to a second portion of the non-volatile memory,

writing metadata associated with the first set of data to a third portion of the non-volatile memory, and

atomically committing the third portion of the non-volatile memory.

2. The system of claim 1 , wherein atomically committing the third portion of non-volatile memory comprises changing a pointer.

3. The system of claim 1 , wherein the non-volatile memory comprises file data organized as a tree structure.

4. The system of claim 1 , wherein a file system reads and writes data structures directly from and to the non-volatile memory.

5. The system of claim 1 , wherein a state of an application is stored into the non-volatile memory.

6. The system of claim 1 , wherein a first file system for the non-volatile memory operates in conjunction with a second file system for persistent storage such as a hard disk or solid-state disk.

7. The system of claim 1 , wherein upon receiving the first write operation to write at least the first set of data to the first portion of the non-volatile memory, the acts further comprise:

receiving a second write operation to write at least a second set of data to the second portion of the non-volatile memory; and

atomically writing the first set of data and atomically writing the second set of data in a same order as the first write operation and the second write operation were received.

8. A method comprising:

under control of one or more processors configured with executable instructions:

receiving a first write operation to write at least a first set of data to a first portion of a non-volatile memory;

determining whether the first set of data can be written atomically;

in response to determining that the first set of data can be written atomically, atomically writing the first set of data to the first portion of non-volatile memory; else

in response to determining that the first set of data cannot be written atomically:

copying the first set of data to a second portion of the non-volatile memory,

writing metadata associated with the first set of data to a third portion of the non-volatile memory, and

atomically committing the third portion of the non-volatile memory.

9. The method of claim 8 , wherein atomically committing the third portion of non-volatile memory comprises changing a pointer.

10. The method of claim 8 , wherein the non-volatile memory comprises file data organized as a tree structure.

11. The method of claim 8 , wherein a file system reads and writes data structures directly from and to the non-volatile memory.

12. The method of claim 8 , wherein an operating system saves data into non-volatile memory in order to bypass at least a portion of a boot sequence.

13. The method of claim 8 , wherein a state of an application is stored into the non-volatile memory.

14. The method of claim 8 , wherein a first file system for the non-volatile memory operates in conjunction with a second file system for persistent storage.

15. The method of claim 8 , wherein upon receiving the first write operation to write at least the first set of data to the first portion of the non-volatile memory, the method further comprises:

receiving a second write operation to write at least a second set of data to the second portion of the non-volatile memory; and

atomically writing the first set of data and atomically writing the second set of data in a same order as the first write operation and the second write operation were received.

16. A storage device having thereon a data structure, comprising:

a tree that stores file data and metadata associated with the file data in non-volatile memory, wherein at least a portion of the file data in the tree is capable of being atomically updated in the non-volatile memory without making any other modifications to the tree.

17. The storage device of claim 16 , wherein the tree comprises page-sized blocks comprising at least one of pointers, user data, or file system metadata.

18. The storage device of claim 16 , wherein the tree comprises at least one pointer to a data block that is capable of being atomically updated.

19. The storage device of claim 16 , wherein the tree comprises files, wherein each file comprises at least a portion of a data block.

20. The storage device of claim 16 , wherein the tree comprises at least one root pointer that stores a value of a file size, wherein the value is capable of being atomically updated.

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 Jun 16, 2009
From: CONDIT, JEREMY P.; IPEK, ENGIN; NIGHTINGALE, EDMUND B.; LEE, BENJAMIN C.; FROST, CHRISTOPHER; BURGER, DOUG
To: MICROSOFT CORPORATION
Reel/Frame 022829/0763 →