Memory management in non-volatile memory
AssigneeMicrosoft Technology Licensing, LLC
InventorsAleksandar Dragojevic, Tudor Alexandru David
Life of this patent
Estimating the term…
Abstract
A method for allocating memory in a computing device having a non-volatile main memory is described. The method comprises receiving, by a memory allocator, a request for non-volatile memory allocation of an object from a program executing on the computing device, the request comprising a requested memory size and registration data from the program. The method comprises finding an available address of one of a plurality of portions of a page of the non-volatile memory and searching an active page table in the non-volatile main memory to find the page and if the page is not found in the active page table: inserting the page into the active page table; and waiting for a memory write for inserting the page into the active page table to complete.
Claims20
A method for allocating memory in a computing device having a non-volatile memory, the method comprising:
- receiving, by a memory allocator, a request for non-volatile memory allocation of an object from a program executing on the computing device, the request comprising a requested memory size and registration data from the program;
- identifying an available address of a portion of a page of the non-volatile memory, the page being a block of allocable memory;
- identifying the page in an active page table in the non-volatile memory;
- issuing a write to the identified available address of the portion of the page of the non-volatile memory to mark the portion of the non-volatile memory as allocated;
- and
- returning the address of the allocated portion of the non-volatile memory.
A system, comprising:
- a non-volatile memory;
- at least one processor;
- and
- a memory allocator, implemented on the at least one processor, configured to:
- receive a request for non-volatile memory allocation of an object from a program executing on the system, the request comprising a requested memory size and registration data from the program,
- identify an available address of a portion of a page of the non-volatile memory, the page being a block of allocable memory;
- identify the page in an active page table in the non-volatile memory;
- issue a write to the identified available address of the portion of the page of the non-volatile memory to mark the portion of the non-volatile memory as allocated;
- and
- return the address of the allocated portion of the non-volatile memory.
A method for deallocating memory in a computing device having a non-volatile memory, the method comprising:
- receiving, from a program executing at the computing device, a request for deallocating a portion of the non-volatile memory allocated to an object;
- identifying a page containing a portion of the non-volatile memory, the page being a block of allocable memory;
- identifying the page in an active page table in the non-volatile memory:
- removing the object from the non-volatile memory;
- and
- issuing a write to the portion of the non-volatile memory to mark the non-volatile memory portion as freed.
Dependencies are inferred from the claim text.