IP Library Granted Patent US 10,169,226
Granted Patent B2
US 10,169,226 · App. 15/393,919 · Granted Jan 1, 2019

Persistent content in nonvolatile memory

Inventors: Jared E. Hulbert (Cameron Park, CA); John C. Rudelic (Folsom, CA); Hongyu Wang (Shanghai, CN)
Assignee: Micron Technology, Inc.
G06F12/0246G06F3/0604G06F3/0631G06F3/0647G06F3/0665G06F3/0673G06F9/5016G06F12/0804G06F12/0888G06F12/1009G06F2212/1044G06F2212/2022G06F2212/604G06F2212/7202G11C11/5621G11C13/0004G11C15/046G11C16/0408G11C2211/5641
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 10,169,226
App. No.
15/393,919
Granted
Jan 1, 2019
Kind
B2
Abstract

Applications may request persistent storage in nonvolatile memory. The persistent storage is maintained across power events and application instantiations. Persistent storage may be maintained by systems with or without memory management units.

Claims (37)

1. A method comprising:

initiating an operation to freeze an application;

responsive to initiating the operation to freeze the application, migrating one or more pages of persistent storage from a volatile memory to a nonvolatile memory;

locking one or more page tables such that entries in the page tables refer only to pages of persistent storage in the nonvolatile memory; and

migrating the one or more frozen page tables to the nonvolatile memory.

2. The method of claim 1 , wherein migrating the one or more pages of persistent storage comprises migrating only those pages of persistent storage not already stored in the nonvolatile memory.

3. The method of claim 1 , further comprising:

receiving an instruction to unfreeze the application;

responsive to receiving the instruction to unfreeze the application, migrating the one or more page tables to the volatile memory; and

executing the application from the volatile memory while maintaining the one or more pages of persistent storage in the nonvolatile memory.

4. The method of claim 1 , further comprising:

receiving an instruction to unfreeze the application;

executing the application from the volatile memory while maintaining the one or more page tables and the one or more pages of persistent storage in the nonvolatile memory.

5. The method of claim 1 , wherein locking the one or more page tables comprises configuring the one or more page tables such that the one or more page tables cannot be modified.

6. A method comprising:

storing an application having a portion of persistent memory allocated thereto in a virtual memory space, wherein the portion of persistent memory is associated with a persistence qualifier indicative of a type of persistence assigned to the portion of persistent memory;

responsive to initiating an operation to freeze the application, migrating the portion of persistent memory from a volatile memory to a nonvolatile memory, wherein the nonvolatile memory comprises a physical memory space;

locking one or more page tables such that entries in the page tables refer only to pages of persistent memory in the nonvolatile memory; and

migrating the one or more frozen page tables to the nonvolatile memory.

7. The method of claim 6 , further comprising storing the portion of persistent memory in a volatile memory of the physical memory space.

8. The method of claim 7 , further comprising indicating, via the persistence qualifier, that the portion of persistent memory has a write back type of persistence.

9. The method of claim 8 , wherein writing data to the portion of persistent storage includes writing the data to the volatile memory at a first time and writing the data to the nonvolatile memory at a second time.

10. The method of claim 7 , further comprising indicating, via the persistence qualifier, that the portion of persistent memory has a write through type of persistence.

11. The method of claim 10 , wherein writing the data to the portion of the persistent storage includes writing the data to the volatile memory and the nonvolatile memory as a single operation.

12. The method of claim 6 , further comprising indicating, via the persistence qualifier, that the portion of persistent memory has a direct input/output type of persistence.

13. The method of claim 6 , further comprising storing a data structure on the nonvolatile memory, wherein the data structure stores an application key associated with the application, a size of the portion of persistent memory; and a pointer to a location of the portion of persistent memory in the nonvolatile memory.

14. A method comprising:

storing one or more applications in a virtual memory space, wherein each of the one or more applications has allocated thereto a respective portion of persistent memory having an associated persistence qualifier indicative of a type of persistence;

responsive to initiating an operation to freeze at least one of the one or more applications, migrating the respective portion of persistent memory to a nonvolatile memory, wherein the nonvolatile memory comprises a physical memory space;

locking one or more page tables such that entries in the page tables refer only to pages of persistent memory in the nonvolatile memory; and

migrating, via a processor, the one or more frozen page tables to the nonvolatile memory.

15. The apparatus of claim 14 , further comprising storing one or more of the respective portions of persistent memory in a volatile memory based on the persistence qualifier.

16. The method of claim 15 , further comprising storing one or more page tables in the volatile memory, wherein the one or more page tables comprise a data structure associating the one or more applications with a respective associated persistence qualifier.

17. The method of claim 16 , further comprising migrating, via the processor, the one or more page tables from the volatile memory to the nonvolatile memory responsive to an instruction to freeze the one or more applications.

18. The method of claim 17 , further comprising migrating, via the processor, the one or more page tables from the nonvolatile memory to the volatile memory responsive to an instruction to unfreeze the one or more applications.

19. The method of claim 18 , further comprising executing, via the processor, the one or more applications from the virtual memory space while maintaining the portions of the persistent memory in the nonvolatile memory.

20. The method of claim 16 , further comprising executing, via the processor, the one or more applications from the virtual memory space while maintaining the one or more page tables and the portions of the persistent memory in the nonvolatile memory.

Assignments (4)
RELEASE OF SECURITY INTEREST Recorded Nov 12, 2019
From: JPMORGAN CHASE BANK, N.A., AS COLLATERAL AGENT
To: MICRON TECHNOLOGY, INC.; MICRON SEMICONDUCTOR PRODUCTS, INC.
Reel/Frame 051028/0001 →
RELEASE OF SECURITY INTEREST Recorded Oct 9, 2019
From: MORGAN STANLEY SENIOR FUNDING, INC., AS COLLATERAL AGENT
To: MICRON TECHNOLOGY, INC.
Reel/Frame 050695/0825 →
SECURITY INTEREST Recorded Jul 13, 2018
From: MICRON TECHNOLOGY, INC.; MICRON SEMICONDUCTOR PRODUCTS, INC.
To: JPMORGAN CHASE BANK, N.A., AS COLLATERAL AGENT
Reel/Frame 047540/0001 →
SUPPLEMENT NO. 3 TO PATENT SECURITY AGREEMENT Recorded Feb 10, 2017
From: MICRON TECHNOLOGY, INC.
To: MORGAN STANLEY SENIOR FUNDING, INC.
Reel/Frame 041675/0105 →
Continuity (3)
Continuation 14848159 · Sep 8, 2015
Continuation 12638950 · Dec 15, 2009
Related Publication 20170109275A1 · Apr 20, 2017