IP Library Granted Patent US 9,128,762
Granted Patent B2
US 9,128,762 · App. 12/638,950 · Granted Sep 8, 2015

Persistent content in nonvolatile memory

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,128,762
App. No.
12/638,950
Granted
Sep 8, 2015
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 (39)

1. A system comprising:

a nonvolatile memory;

a volatile memory;

a processor coupled to the nonvolatile memory and the volatile memory; and

a memory management component having an application programming interface (API) that includes a nonvolatile memory allocation routine configured to allocate a portion of the nonvolatile memory as persistent storage across instantiations of an application in accordance with a persistence qualifier that is provided to the nonvolatile memory allocation routine;

wherein the persistence qualifier is indicative of a type of persistence desired by the application.

2. The system of claim 1 , wherein the nonvolatile memory allocation routine maintains a data structure configured to associate persistent storage to each application.

3. The system of claim 1 , wherein the nonvolatile memory comprises phase change memory (PCM).

4. The system of claim 1 , wherein the nonvolatile memory comprises FLASH memory.

5. The electronic system of claim 1 , wherein the memory allocation routine is substantially of the form ptr=nvmalloc(size, key), wherein nvmalloc is nonvolatile memory allocation, size is a requested size, key is unique to the calling application, and ptr is a reference returned to the calling application.

6. The electronic system of claim 1 , wherein the memory allocation routine is configured to migrate page tables between the volatile memory and the non-volatile memory.

7. The electronic system of claim 1 , wherein the memory allocation routine is substantially of the form ptr=nvmalloc(size, key, the persistence qualifier), wherein nvmalloc is nonvolatile memory allocation, size is a requested size, key is unique to the calling application, the persistence qualifier is an option to guide the memory management component when maintaining the persistent storage in at least one of the nonvolatile memory or the volatile memory, and ptr is a reference returned to the calling application.

8. The electronic system of claim 1 , wherein the electronic system comprises a mobile phone.

9. The electronic system of claim 1 , wherein the electronic system comprises a mobile device.

10. A method, comprising:

receiving a request from an application for nonvolatile memory allocation, the request including a persistence qualifier indicative of a type of persistence desired by the application;

determining if the application is associated with previously allocated nonvolatile memory;

if the application is associated with previously allocated nonvolatile memory, returning a reference to the previously allocated nonvolatile memory;

if the application is not associated with previously allocated nonvolatile memory, allocating, using a nonvolatile memory allocation routine, nonvolatile memory according to the request and the persistence qualifier; and

migrating page tables to nonvolatile memory responsive, at least in part, to the application becoming dormant.

11. The method of claim 10 , further comprising:

managing reads and writes of the nonvolatile memory in accordance with the persistence qualifier.

12. The method of claim 11 , wherein the persistence qualifier specifies whether writes to the nonvolatile memory can be cached in volatile memory.

13. The method of claim 11 , wherein the persistence qualifier specifies whether reads from the nonvolatile memory can be cached in volatile memory.

14. The method of claim 10 , wherein the nonvolatile memory comprises the previously allocated nonvolatile memory and wherein the page tables reference persistent storage in the nonvolatile memory.

15. The method of claim 10 , further comprising:

executing an application while the page tables are in nonvolatile memory.

16. A non-transitory computer-readable medium having instructions encoded thereon that when accessed result in the machine performing:

receiving a request from an application for nonvolatile memory allocation, the request including a persistence qualifier indicative of a type of persistence desired by the application;

determining if the application is associated with previously allocated nonvolatile memory;

if the application is associated with previously allocated nonvolatile memory, returning a reference to the previously allocated nonvolatile memory;

if the application is not associated with previously allocated nonvolatile memory, allocating, using a nonvolatile memory allocation routine, nonvolatile memory according to the request and the persistence qualifier; and

migrating page tables to nonvolatile memory responsive, at least in part, to the application becoming dormant.

17. The non-transitory computer-readable medium of claim 16 , wherein the instructions when accessed further result in the machine performing:

managing a read, write, or combination thereof, of the nonvolatile memory according to the persistence qualifier.

18. The non-transitory computer-readable medium of claim 17 , wherein the persistence qualifier specifies whether writes to nonvolatile memory can be cached in volatile memory.

19. The non-transitory computer-readable medium of claim 17 , wherein the persistence qualifier specifies whether reads from nonvolatile memory can be cached in volatile memory.

20. The non-transitory computer-readable medium of claim 16 , wherein the page tables reference persistent storage in the nonvolatile memory.

21. The system of claim 1 , wherein the memory allocation routine includes at least one option to maintain the persistent storage in both the nonvolatile memory and volatile memory.

Assignments (8)
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 050937/0001 →
RELEASE OF SECURITY INTEREST Recorded Aug 23, 2018
From: U.S. BANK NATIONAL ASSOCIATION, AS COLLATERAL AGENT
To: MICRON TECHNOLOGY, INC.
Reel/Frame 047243/0001 →
CORRECTIVE ASSIGNMENT TO CORRECT THE REPLACE ERRONEOUSLY FILED PATENT #7358718 WITH THE CORRECT PATENT #7358178 PREVIOUSLY RECORDED ON REEL 038669 FRAME 0001. ASSIGNOR(S) HEREBY CONFIRMS THE SECURITY INTEREST. Recorded Jun 8, 2017
From: MICRON TECHNOLOGY, INC.
To: U.S. BANK NATIONAL ASSOCIATION, AS COLLATERAL AGENT
Reel/Frame 043079/0001 →
PATENT SECURITY AGREEMENT Recorded Jun 2, 2016
From: MICRON TECHNOLOGY, INC.
To: MORGAN STANLEY SENIOR FUNDING, INC., AS COLLATERAL AGENT
Reel/Frame 038954/0001 →
SECURITY INTEREST Recorded May 12, 2016
From: MICRON TECHNOLOGY, INC.
To: U.S. BANK NATIONAL ASSOCIATION, AS COLLATERAL AGENT
Reel/Frame 038669/0001 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Oct 26, 2011
From: NUMONYX B.V.
To: MICRON TECHNOLOGY, INC.
Reel/Frame 027126/0176 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jul 14, 2010
From: HULBERT, JARED E; RUDELIC, JOHN C; WANG, HONGYU
To: NUMONYX B.V.
Reel/Frame 024685/0871 →