IP Library Granted Patent US 10,482,007
Granted Patent B2
US 10,482,007 · App. 15/370,566 · Granted Nov 19, 2019

Memory allocation on non-volatile storage

Inventor: Tyler W. Barrus (Midlothian, VA)
Assignee: NOBLIS, INC.
G06F12/0223G06F9/44573G06F12/023G06F12/0238G06F2212/1044G06F2212/1048G06F2212/202G06F2212/7202
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,482,007
App. No.
15/370,566
Granted
Nov 19, 2019
Kind
B2
Abstract

Techniques for allocating memory on non-volatile storage mediums, rather than on RAM storage mediums, are provided. In some embodiments, first functions in program code for allocating memory on RAM storage are replaced with corresponding second functions for allocating memory on non-volatile storage. Library files corresponding to the second functions may be stored in programming language libraries, such that the second function may be defined in order to allocate memory on non-volatile storage. In some embodiments, a library file for allocating memory on RAM storage may be modified such that it instead causes allocation of memory on non-volatile storage. Allocating memory, storing data in memory, or retrieving data in memory may, in some embodiments, include providing instructions for a processor to communicate via a bus associated with non-volatile storage rather than a bus associated with RAM storage.

Claims (39)

1. A computer system comprising:

one or more processors;

a RAM storage medium; and

a non-volatile storage medium storing first instructions configured to be executed by the one or more processors to cause the system to:

receive program code including a first memory allocation function for causing the program code to allocate, during execution of the program code, memory in the RAM storage medium;

determine, based on an amount of memory to be allocated for executing the program code, whether the first memory allocation function in the program code should be replaced with a second memory allocation function for causing the program code to allocate, during execution of the program code, memory in the non-volatile storage medium;

in response to determining to replace the first memory allocation function in the program code, modify the program code to replace the first memory allocation function with the second memory allocation function for causing the program code to allocate, during execution of the program code, memory in the non-volatile storage medium; and

execute the modified program code including the second memory allocation function to allocate memory in the non-volatile storage medium.

2. The system of claim 1 , wherein:

the RAM storage medium communicates with the one or more processors via a first bus, and the first memory allocation function causes the system to allocate memory over the first bus; and

the non-volatile storage medium communicates with the one or more processors via a second bus, and the second memory allocation function causes the system to allocate memory over the second bus.

3. The system of claim 1 , wherein the non-volatile storage medium is a solid state drive.

4. The system of claim 1 , wherein a first write speed associated with the RAM storage medium is faster than a second write speed associated with the non-volatile storage medium.

5. The system of claim 1 , wherein:

the first memory allocation function is associated with a first library file including second instructions for allocating memory on the RAM storage medium, the first library file being stored in a library of a programming language; and

the first instructions are configured to cause the system to store a second library file in the library, wherein the second library file is associated with the second memory allocation function and includes third instructions for allocating memory on the non-volatile storage medium.

6. The system of claim 1 , wherein the determining includes determining that the first memory allocation function in the program code should be replaced if the amount of memory to be allocated is not available in the RAM storage medium and is available in the non-volatile storage medium.

7. The system of claim 1 , wherein determining whether the first memory allocation function in the program code should be replaced with the second memory allocation function includes selecting the second memory allocation function, from among a plurality of other memory allocation functions, when the non-volatile storage medium associated with the second memory allocation function has a faster read/write time than storage media associated with the plurality of other memory allocation functions.

8. A method, performed at a system comprising one or more processors, a RAM storage medium, and a non-volatile storage medium, the method comprising:

receiving program code including a first memory allocation function for causing the program code to allocate, during execution of the program code, memory in the RAM storage medium;

determining, based on an amount of memory to be allocated for executing the program code, whether the first memory allocation function in the program code should be replaced with a second memory allocation function for causing the program code to allocate, during execution of the program code, memory in the non-volatile storage medium;

in response to determining to replace the first memory allocation function in the program code, modifying the program code to replace the first memory allocation function with the second memory allocation function for causing the program code to allocate, during execution of the program code, memory in the non-volatile storage medium; and

executing the modified program code including the second memory allocation function to allocate memory in the non-volatile storage medium.

9. The method of claim 8 , wherein:

the RAM storage medium communicates with the one or more processors via a first bus, and the first memory allocation function causes the system to allocate memory over the first bus; and

the non-volatile storage medium communicates with the one or more processors via a second bus, and the second memory allocation function causes the system to allocate memory over the second bus.

10. The method of claim 8 , wherein the RAM storage medium is a volatile storage medium.

11. The method of claim 8 , wherein the non-volatile storage medium is a solid state drive.

12. The method of claim 8 , wherein a first write speed associated with the RAM storage medium is faster than a second write speed associated with the non-volatile storage medium.

13. The method of claim 8 , comprising:

storing a first library file associated with the first memory allocation function in a library of a programming language, wherein the first library file comprises instructions for allocating memory on the RAM storage medium; and

storing a second library file associated with the second memory allocation function in the library, wherein the second library file comprises instructions for allocating memory on the non-volatile storage medium.

14. The method of claim 8 , wherein determining whether the first memory allocation function in the program code should be replaced comprises determining that the first memory allocation function in the program code should be replaced if the amount of memory to be allocated is not available in the RAM storage medium and is available in the non-volatile storage medium.

15. The method of claim 8 , wherein determining whether the first memory allocation function in the program code should be replaced with the second memory allocation function comprises selecting the second memory allocation function, from among a plurality of other memory allocation functions, when the non-volatile storage medium associated with the second memory allocation function has a faster read/write time than storage media associated with the plurality of other memory allocation functions.

16. A non-transitory computer-readable storage medium storing instructions configured to be executed by one or more processors of a device with a RAM storage medium and a non-volatile storage medium, the instructions being configured to cause the system to:

receive program code including a first memory allocation function for causing the program code to allocate, during execution of the program code, memory in the RAM storage medium;

determine, based on an amount of memory to be allocated for executing the program code, whether the first memory allocation function in the program code should be replaced with a second memory allocation function for causing the program code to allocate, during execution of the program code, memory in the non-volatile storage medium;

in response to determining to replace the first memory allocation function in the program code, modify the program code to replace the first memory allocation function with the second memory allocation function for causing the program code to allocate, during execution of the program code, memory in the non-volatile storage medium; and

execute the modified program code including the second memory allocation function to allocate memory in the non-volatile storage medium.

Assignments (2)
SECURITY INTEREST Recorded May 27, 2025
From: NOBLIS, INC.
To: PNC BANK, NATIONAL ASSOCIATION
Reel/Frame 071415/0887 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Dec 8, 2016
From: BARRUS, TYLER W.
To: NOBLIS, INC.
Reel/Frame 040605/0319 →
Continuity (1)
Related Publication 20180157585A1 · Jun 7, 2018