Computer memory management in computing devices

US11580019B2 · US · B2

Patent metadata
FieldValue
Publication numberUS-11580019-B2
Application numberUS-202016851263-A
CountryUS
Kind codeB2
Filing dateApr 17, 2020
Priority dateApr 17, 2020
Publication dateFeb 14, 2023
Grant dateFeb 14, 2023

How to read this patent

A practical reading order for non-experts. Skip the full description unless you need deep technical detail.

  1. Title

    What the patent document calls the invention.

  2. Abstract

    A short plain-language summary of the technical disclosure.

  3. Assignees and inventors

    Who owns or filed the patent and who is credited as inventor.

  4. Key dates

    Filing, priority, publication, and grant dates set the timeline.

  5. First independent claim

    The legal scope of protection — read this for what is actually claimed.

  6. CPC / IPC classifications

    Technology tags used to group this patent with similar filings.

  7. Citations and related patents

    Prior art links and similar publications in this corpus.

Abstract

Official abstract text for this publication.

Techniques for computer memory management are disclosed herein. In one embodiment, a method includes in response to receiving a request for allocation of memory, determining whether the request is for allocation from a first memory region or a second memory region of the physical memory. The first memory region has first memory subregions of a first size and the second memory region having second memory subregions of a second size larger than the first size of the first memory region. The method further includes in response to determining that the request for allocation of memory is for allocation from the first or second memory region, allocating a portion of the first or second multiple memory subregions of the first or second memory region, respectively, in response to the request.

First claim

Opening claim text (preview).

We claim: 1. A method of computer memory management in a computing device having a processor operatively coupled to a physical memory, the processor executing instructions to provide a first operating system in the computing device, the method comprising: receiving, at the first operating system, a request for allocation of memory; in response to receiving the request for allocation of memory, determining whether the request is for allocation from a first memory region or a second memory region of the physical memory, wherein: the first memory region is allocated to the first operating system and is subdivided into multiple first memory subregions individually having a first size; and the second memory region is allocated to a second operating system and is subdivided into multiple second memory subregions individually having a second size larger than the first size, wherein the second operating system is a guest operating system hosted by the computing device; and the first operating system concurrently tracks memory operating status of each of the multiple first memory subregions and of each of the multiple second memory subregions at the first and second memory regions, respectively; and in response to determining that: the request for allocation of memory is for allocation from the first memory region, allocating a portion of the multiple first or second memory subregions; or the request for allocation of memory is for allocation from the second memory region, allocating a portion of the multiple second memory subregions. 2. The method of claim 1 wherein determining whether the request is for allocation from the first memory region or the second memory region of the physical memory includes determining whether the request is received from a first Application Programming Interface (“API”) corresponding to the first memory region or from a second API corresponding to the second memory region, and wherein the first memory subregions each having a size of a memory page in the physical memory. 3. The method of claim 1 wherein: the first operating system is a host operating system; and determining whether the request is for allocation from the first memory region or the second memory region of the physical memory includes: determining whether the received request is for allocation of memory to the guest operating system supported by the host operating system in the computing device; and in response to determining that the received request is for allocation of memory to the guest operating system, indicating that the request is for allocation from the second memory region. 4. The method of claim 1 wherein: the first memory region supports a first set of memory management operations; the second memory region support a second set of memory management operations; and the first set is larger than the second set. 5. The method of claim 1 wherein: the first and second memory regions each include a percentage of memory configured to store metadata corresponding to the multiple first and second memory subregions, respectively; and the percentage of memory configured to store the metadata of the multiple second memory subregions is smaller than that of the multiple first memory subregions. 6. The method of claim 1 wherein: the first and second memory regions each include an amount of memory configured to store metadata of the multiple first and second memory subregions, respectively; and allocating a portion of the multiple first or second memory subregions of the first or second memory region, respectively, includes: allocating an amount of memory from the second memory region in response to the request; and updating metadata of the allocated amount of memory from the second memory region, the amount of the metadata updated being smaller than if a same amount of memory were allocated from the first memory region. 7. The method of claim 1 , further comprising: receiving, at the first operating system, a request to convert a portion of memory from the second memory region to the first memory region; and in response to receiving the request, converting the portion of memory from the second memory region into one or more first memory subregions having the first size smaller than the second size. 8. The method of claim 1 , further comprising: receiving, at the first operating system, a request to convert a portion of memory from the first memory region to the second memory region; and in response to receiving the request, converting the portion of memory from the first memory region into one or more second memory subregions having the second size larger than the first size. 9. The method of claim 1 , further comprising: upon receiving a command to update the first operating system in the computing device, maintaining a mapping of the first and second memory regions in the physical memory and data in the second memory region; updating data of the first operating system in the first memory region while the data in the second memory region are maintained; and restarting the first operating system upon completion of updating data of the first operating system in the first memory region while the data in the second memory region is maintained. 10. A computing device, comprising: a processor; and a physical memory operatively coupled to the processor, the physical memory containing instructions executable by the processor to cause the computing device to provide a first operating system, wherein the physical memory includes: a first memory region allocated to the first operating system and subdivided into multiple first memory subregions of a first size; a second memory region allocated to a second operating system and subdivided into multiple second memory subregions of a second size larger than the first size, wherein the second operating system is a guest operating system hosted by the computing device; and wherein the first operating system concurrently tracks memory operating status of each of the multiple first memory subregions and each of the multiple second memory subregions at the first and second memory regions, respectively; and the physical memory includes additional instructions executable by the processor to cause the computing device to: receive, at the first operating system, a request for allocation of memory; and in response to receiving the request for allocation of memory, selectively allocate a portion of the first or second multiple memory subregions of the first or second memory region, respectively. 11. The computing device of claim 10 wherein to selectively allocate includes to determine whether the request is received from a first Application Programming Interface (“API”) corresponding to the first memory region or from a second API corresponding to the second memory region. 12. The computing device of claim 10 wherein: the first operating system is a host operating system; and to selectively allocate includes to: determine whether the received request is for allocation of memory to the guest operating system supported by the host operating system in the computing device; and in response to determining that the received request is for allocation of memory to the guest operating system, indicate that the request is for allocation from the second memory region. 13. The computing device of claim 10 wherein: the first and second memory regions each include an amount of memory configured to store metadata corresponding to the multiple first and second memory subregions, respectively; and the amount of memory configured to store the metadata of the multiple second memory subregions

Assignees

Inventors

Classifications

  • Configuration or reconfiguration · CPC title

  • Space efficiency improvement · CPC title

  • for multiple virtual address spaces, e.g. segmentation (G06F12/1045 takes precedence) · CPC title

  • Free address space management · CPC title

  • Page size control · CPC title

Patent family

Related publications grouped by family.

External sources

Frequently asked questions

Answers are generated from the same data shown on this page.

What does patent US11580019B2 cover?
Techniques for computer memory management are disclosed herein. In one embodiment, a method includes in response to receiving a request for allocation of memory, determining whether the request is for allocation from a first memory region or a second memory region of the physical memory. The first memory region has first memory subregions of a first size and the second memory region having seco…
Who is the assignee on this patent?
Microsoft Technology Licensing Llc
What technology area does this patent fall under?
Primary CPC classification G06F12/0646. Mapped technology areas include Physics.
When was this patent published?
Publication date Tue Feb 14 2023 00:00:00 GMT+0000 (Coordinated Universal Time) (B2). Legal status and post-grant events are not shown on this page.
What related patents are in patentsdb?
We list 5 related publications on this page (citations in our corpus or others sharing the same primary CPC).