Computer memory management in computing devices

US12204449B2 · US · B2

Patent metadata
FieldValue
Publication numberUS-12204449-B2
Application numberUS-202318167936-A
CountryUS
Kind codeB2
Filing dateFeb 13, 2023
Priority dateApr 17, 2020
Publication dateJan 21, 2025
Grant dateJan 21, 2025

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 system comprising: a processing system; and memory coupled to the processing system, the memory comprising computer executable instructions that, when executed, perform operations comprising: receiving, at a host operating system, a request for allocation of the memory, the memory comprising: (1) a first memory region allocated to the host operating system and subdivided into a plurality of first memory subregions individually having a first size, and (2) a second memory region allocated to a guest operating system hosted by the host operating system and subdivided into a plurality of second memory subregions individually having a second size larger than the first size; determining that the request is for allocation from the first memory region; and allocating a portion of the plurality of first memory subregions. 2. The system of claim 1 , wherein the first memory region supports a first set of memory region operations and the second memory region supports a second set of memory region operations that is different from the first set of memory region operations. 3. The system of claim 2 , wherein the first set of memory region operations include at least one of: allocation, deallocation, swapping, memory protection, segmentations, or error checking. 4. The system of claim 1 , wherein the host operating system comprises a memory manager for concurrently tracking status of the plurality of first memory subregions and the plurality of second memory subregions. 5. The system of claim 4 , wherein the memory manager provides a first application programming interface for requests from the host operating system and provides a second application programming interface for requests from the guest operating system. 6. The system of claim 5 , wherein the memory manager distinguishes between requests from the host operating system and requests from the guest operating system based on metadata included with the respective requests. 7. The system of claim 6 , wherein the metadata includes identifiers of processes registered with the memory manager. 8. The system of claim 4 , wherein the memory manager maintains a distribution of the first memory region and the second memory region upon update or reset of the host operating system. 9. The system of claim 1 , wherein determining that the request is for allocation from the first memory region comprises determining that the request was provided by a program or process executing in the host operating system. 10. The system of claim 1 , wherein determining that the request is for allocation from the second memory region comprises determining that the request was provided by a virtual machine or a container associated with the guest operating system. 11. The system of claim 1 , wherein, after the host operating system has been initialized: a memory subregion of the plurality of second memory subregions can be converted to a memory subregion of the plurality of first memory subregions; and the memory subregion of the plurality of first memory subregions can be converted to the memory subregion of the plurality of second memory subregions. 12. The system of claim 1 , wherein the first size and the second size can be set and adjusted during execution of the host operating system. 13. The system of claim 1 , wherein processing latency for allocating the portion of the plurality of second memory subregions to the guest operating system is lower than processing latency for allocating the portion of the plurality of first memory subregions to the guest operating system. 14. The system of claim 1 , wherein the system implements non-uniform memory access to enable the processing system to access local memory and non-local memory. 15. A method comprising: determining whether a request is for allocation from a first memory region or a second memory region of physical memory of a computing device, wherein: the first memory region is allocated to a first operating system and is subdivided into a plurality of first memory subregions individually having a first size; and the second memory region is allocated to a second operating system and is subdivided into a plurality of second memory subregions individually having a second size larger than the first size; and allocating a portion of the plurality of first memory subregions or a portion of the plurality of second memory subregions, respectively, in response to the request. 16. The method of claim 15 , wherein determining whether the request is for allocation from the first memory region or the second memory region comprises determining whether the request originated from the first operating system or the second operating system. 17. The method of claim 16 , wherein: requests originating from the first operating system result in allocations from the first memory region; and requests originating from the second operating system result in allocations from the second memory region. 18. The method of claim 15 , wherein: the first operating system is a host operating system of the computing device; and the second operating system is a guest operating system of the computing device, the guest operating system being hosted by the host operating system. 19. The method of claim 15 , wherein: the first operating system is implemented on a first device; and the second operating system is implemented on a second device that is different from the first device. 20. A system comprising: a processing system; and memory coupled to the processing system, the memory comprising computer executable instructions that, when executed, perform operations comprising: receiving, at a host operating system, a request for allocation of the memory, the memory comprising: (1) a first memory region allocated to the host operating system and subdivided into a plurality of first memory subregions individually having a first size, and (2) a second memory region allocated to a guest operating system hosted by the host operating system and subdivided into a plurality of second memory subregions individually having a second size larger than the first size; determining that the request is for allocation from the second memory region; and allocating a portion of the plurality of second memory subregions.

Assignees

Inventors

Classifications

  • Free address space management · CPC title

  • Space efficiency improvement · CPC title

  • via adapters, e.g. between incompatible applications · CPC title

  • Loading of operating system · 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 US12204449B2 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 Jan 21 2025 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 3 related publications on this page (citations in our corpus or others sharing the same primary CPC).