IP Library Granted Patent US 9,746,895
Granted Patent B2
US 9,746,895 · App. 15/004,830 · Granted Aug 29, 2017

Use of volatile memory as non-volatile memory

Inventors: Bryan Kelly (Carnation, WA); Mark Santaniello (Redmond, WA); Sriram Govindan (Redmond, WA); Anirudh Badam (Issaquah, WA)
Assignee: Microsoft Technology Licensing, LLC
G06F1/28G06F3/0619G06F3/0647G06F3/0653G06F3/0685
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,746,895
App. No.
15/004,830
Granted
Aug 29, 2017
Kind
B2
Abstract

A computing device may comprise a processor, a volatile memory and a non-volatile storage device. An operating system or firmware of the device may cause one or more pages of the volatile memory to be treated, by applications executing on the computing device, as non-volatile memory pages. A maximum number of pages that may be treated as non-volatile may be determined based on an amount of energy available in a battery and an amount of energy needed to transfer a page of memory to the non-volatile storage device.

Claims (48)

1. A computing device comprising:

a volatile memory logically partitioned into a plurality of pages;

a non-volatile storage device, wherein content of a page of the plurality of pages is transferable to the non-volatile storage device by a memory transfer operation;

an operating system of the computing device;

one or more processors that cause the computing device to at least:

receive information indicative of an amount of energy in a battery, the energy available for use by the computing device;

determine an amount of energy needed to perform the memory transfer operation;

determine, based at least in part on the amount of energy needed to perform the memory transfer operation, a number of pages of the plurality of pages whose content is transferable to the non-volatile storage device using the amount of energy available for use by the computing device; and

configure the operating system to treat one or more pages of the plurality of pages of the volatile memory as non-volatile memory, wherein a number of the one or more pages is based on the determined number of pages.

2. The computing device of claim 1 , wherein the one or more processors further cause the computing device to at least:

transfer contents of the one or more pages to a reserved portion of the non-volatile storage device.

3. The computing device of claim 2 , wherein the contents of the one or more pages are transferred in response to receiving information indicative of a reduction in the amount of energy in the battery.

4. The computing device of claim 1 , wherein configuring the operating system comprises updating configuration interface data with information indicative of one or more pages of non-volatile memory corresponding to the one or more pages of volatile memory.

5. A method of using memory of a computing device, the method comprising:

obtaining information indicative of an amount of energy needed to transfer contents of a page of volatile memory to non-volatile memory;

receiving information indicative of an amount of energy available for transferring contents of the page of volatile memory to the non-volatile memory;

determining, based at least in part on the amount of energy needed, that the contents of the page of volatile memory are transferable to the non-volatile memory using the amount of energy available; and

configuring an operating system of the computing device to treat the page of volatile memory as a page of non-volatile memory.

6. The method of claim 5 , further comprising:

transferring the contents of the page of volatile memory to a reserved portion of the non-volatile memory.

7. The method of claim 5 , further comprising:

transferring the contents of the page of volatile memory to a reserved portion of the non-volatile memory in response to receiving information indicative of a reduction in the amount of energy available for transferring contents of the page of volatile memory to the non-volatile memory.

8. The method of claim 5 , wherein configuring the operating system comprises updating configuration interface data with information indicative of one or more pages of non-volatile memory corresponding to the one or more pages of volatile memory.

9. The method of claim 5 , further comprising:

determining that the contents of the page of volatile memory are transferable to the non-volatile memory based at least in part on information indicative of at least one of a performance mode or a safety mode of the computing device.

10. The method of claim 5 , further comprising:

receiving information indicative of the computing device having switched from utility power to battery power;

configuring the operating system to treat the page of volatile memory as volatile memory based at least in part on a length of time since the computing device switched from utility power to battery power; and

transferring the contents of the page of volatile memory to the non-volatile memory.

11. The method of claim 5 , wherein the information indicative of an amount of energy needed to transfer contents of a page of volatile memory to non-volatile memory is based at least in part on energy consumed by performing a direct memory access transfer from the page of volatile memory to the non-volatile memory.

12. The method of claim 5 , wherein the information indicative of an amount of energy needed to transfer contents of a page of volatile memory to non-volatile memory is based at least in part on energy consumed by a processor initiating an operation to transfer the contents of the page.

13. The method of claim 5 , further comprising:

determining that the contents of the page of volatile memory are transferable based at least in part on a number of other pages of volatile memory configured to be treated by the operating system as non-volatile memory pages.

14. The method of claim 5 , further comprising:

determining a maximum number of pages of volatile memory that are transferable to the non-volatile memory using the energy available for transferring contents of the page of volatile memory to the non-volatile memory.

15. A system comprising:

means for obtain obtaining information indicative of an amount of energy needed to transfer contents of a volatile memory to a non-volatile memory;

means for receiving information indicative of an amount of energy available for transferring the contents of the volatile memory to the non-volatile memory;

means for identifying, based at least in part on the amount of energy needed, a portion of the volatile memory that is transferable to the non-volatile memory using the amount of energy available; and

means for configuring an operating system of the system to treat the portion of the volatile memory as non-volatile memory.

16. The system of claim 15 , comprising:

means for identifying the portion of the volatile memory that is transferable to the non-volatile memory by at least determining an amount of memory that could be transferred to the non-volatile memory using the amount of energy available.

17. The system of claim 15 , comprising:

means for calculating a statistical probability that, in an event of a utility power interruption, the portion of the volatile memory would be transferable to the non-volatile memory using the amount of energy available.

18. The system of claim 15 , comprising further:

means for transferring the portion of volatile memory to a reserved portion of the non-volatile memory in response to receiving information indicative of a reduction in the amount of energy available for transferring the contents of the volatile memory to the non-volatile memory.

19. The system of claim 15 , wherein the operating system is configured to treat the portion of the volatile memory as non-volatile memory by at least updating configuration and interface data accessed by the operating system.

20. The system of claim 15 , wherein the portion of the volatile memory is treated by the operating system as non-volatile memory by at least providing, to an application executing on the system, information indicative of a commit mode compatible with data stored in the portion of the volatile memory.

Assignments (4)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jan 26, 2018
From: MICROSOFT CORPORATION
To: MICROSOFT TECHNOLOGY LICENSING, LLC
Reel/Frame 044744/0203 →
EMPLOYMENT AGREEMENT Recorded Sep 20, 2017
From: KELLY, BRYAN
To: MICROSOFT CORPORATION
Reel/Frame 044007/0946 →
EMPLOYMENT AGREEMENT Recorded Aug 7, 2017
From: KELLY, BRYAN
To: MICROSOFT CORPORATION
Reel/Frame 043607/0859 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jan 17, 2017
From: SANTANIELLO, MARK; GOVINDAN, SRIRAM; BADAM, ANIRUDH
To: MICROSOFT TECHNOLOGY LICENSING, LLC
Reel/Frame 040985/0707 →
Continuity (1)
Related Publication 20170212573A1 · Jul 27, 2017