Memory management techniques

US9158699B2 · US · B2

Patent metadata
FieldValue
Publication numberUS-9158699-B2
Application numberUS-201414549501-A
CountryUS
Kind codeB2
Filing dateNov 20, 2014
Priority dateSep 12, 2011
Publication dateOct 13, 2015
Grant dateOct 13, 2015

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.

Memory management techniques that permit an executing process to store content in memory and later retrieve that content from the memory, but that also permit a memory manager to discard that content to address memory pressure. A process executing on a computing device may notify a memory manager of the computing device that first memory space allocated to the process contains first content that is available for discard. If the memory manager detects the computing device is experiencing memory pressure, the memory manager may address the memory pressure by selecting memory space available for discard and discarding the content of the memory space. Before a process reuses content made available for discard, the process may notify the memory manager of the intent to reuse and, in response, receive empty memory and an indication that the content was discarded or receive an indication that the content is still available for use.

First claim

Opening claim text (preview).

What is claimed is: 1. A method of using memory space of a computing device, the method comprising: determining whether a process is capable of regenerating content stored in at least a portion of a memory space; and indicating to a memory manager of the computing device that the content is available for potential discard based at least in part on a determination that the process is capable of regenerating the content stored in at least the portion of the memory space. 2. The method of claim 1 , further comprising: determining whether the content will be used within a threshold period of time, wherein: the indication to the memory manager is also based in part on a determination that it is uncertain whether the content will be used within the threshold period of time. 3. The method of claim 1 , further comprising: determining whether the content will be used within a threshold period of time, wherein: the indication to the memory manager is also based in part on a determination that the content will not be used within the threshold period of time. 4. The method of claim 1 , further comprising: determining whether the content will be used within a threshold period of time, wherein: the indication is provided to the memory manager in response to a determination the process is capable of regenerating the content stored in at least the portion of the memory space and at least one of: a determination that the content will not be used within the threshold period of time; or a determination that it is uncertain whether the content will be used within the threshold period of time. 5. The method of claim 1 , wherein the indication to the memory manager indicates to the memory manager that the content is available for discard and the memory space is to remain allocated. 6. The method of claim 1 , wherein the indication to the memory manager is also based at least in part on at least one of the content, a state of the process, or a user interaction. 7. The method of claim 1 , wherein the determining and the indicating are performed by the process. 8. A computing device, the computing device comprising: memory and at least one processor, the at least one memory and the at least one processor being respectively configured to store and execute instructions, including instructions for performing operations, the operations including: executing a process that uses memory space allocated by a memory manager; determining, by the process, whether: data stored in at least a portion of the memory space is to be discarded, the data stored in at least the portion of the memory space is to be retained, or the data stored in at least the portion of the memory space is available to be potentially discarded; in response to a determination that the data stored in at least a portion of the memory space is to be discarded, instructing the memory manager to discard the data stored in at least the portion of the memory space; and in response to a determination that the data stored in at least the portion of the memory space is available to be potentially discarded, indicating to the memory manager that the data stored in at least the portion of the memory space is available to be potentially discarded. 9. The computing device of claim 8 , wherein the operations also include: determining, by the process, that the data stored in at least the portion of the memory space is available to be potentially discarded; indicating to the memory manager that the data stored in at least the portion of the memory space is available to be potentially discarded; and subsequently notifying the memory manager of a request to use the data. 10. The computing device of claim 8 , wherein the operations also include: notifying the memory manager of a priority level for the data stored in at least the portion of the memory space that is available to be potentially discarded. 11. The computing device of claim 8 , wherein the memory manager retains or discards data available to be potentially discarded based at least in part on whether the computing device is experiencing memory pressure. 12. The computing device of claim 8 , wherein the memory manager retains or discards data available to be potentially discarded based at least in part on whether the computing device is to undergo a power state transition. 13. The computing device of claim 8 , wherein: the process is a graphics driver process; and the data available to be potentially discarded is a render target. 14. The computing device of claim 8 , wherein the indication to the memory manager that the data stored in at least the portion of the memory space is available to be potentially discarded is also an indication that the memory space is to remain allocated to the process. 15. A computing device, the computing device comprising: at least one memory and at least one processor, the at least one memory and the at least one processor being respectively configured to store and execute instructions, including instructions for performing operations, the operations including: determining whether a module executing on the computing device is capable of regenerating content stored in at least a portion of a memory space of the computing device; and in response to a determination that the module is capable of regenerating the content, indicating that the content is available for potential discard. 16. The computing device of claim 15 , wherein the operations further comprise: determining whether the content will be used within a threshold period of time, wherein: the indication is also based in part on a determination that it is uncertain whether the content will be used within the threshold period of time. 17. The computing device of claim 15 , wherein the operations further comprise: determining whether the content will be used within a threshold period of time, wherein: the indication is also based in part on a determination that the content will not be used within the threshold period of time. 18. The computing device of claim 15 , wherein the operations further comprise: determining whether the content will be used within a threshold period of time, wherein: the indication is also based in part on at least one of: a determination that the content will not be used within the threshold period of time; or a determination that it is uncertain whether the content will be used within the threshold period of time. 19. The computing device of claim 15 , wherein the indication indicates to a memory manager of the computing device that the content is available for discard and the memory space is to remain allocated. 20. The computing device of claim 15 , wherein the indication is also based at least in part on at least one of the content, a state of the process, or a user interaction.

Assignees

Inventors

Classifications

  • G06F12/02Primary

    Addressing or allocation; Relocation (program address sequencing G06F9/00; arrangements for selecting an address in a digital store G11C8/00) · CPC title

  • Virtual address space management · CPC title

  • Combination of memories, e.g. ROM and RAM such as to permit replacement or supplementing of words in one module by words in another module (address formation of the next microinstruction G06F9/26; masking faults in memories by using spares or by reconfiguring G11C29/70) · CPC title

  • using clearing, invalidating or resetting means · CPC title

  • Mechanisms to release resources · 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 US9158699B2 cover?
Memory management techniques that permit an executing process to store content in memory and later retrieve that content from the memory, but that also permit a memory manager to discard that content to address memory pressure. A process executing on a computing device may notify a memory manager of the computing device that first memory space allocated to the process contains first content tha…
Who is the assignee on this patent?
Microsoft Corp, Microsoft Technology Licensing Llc
What technology area does this patent fall under?
Primary CPC classification G06F12/02. Mapped technology areas include Physics.
When was this patent published?
Publication date Tue Oct 13 2015 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 8 related publications on this page (citations in our corpus or others sharing the same primary CPC).