11157306

Faster Access of Virtual Machine Memory Backed by a Host Computing Device's Virtual Memory

PublishedOctober 26, 2021
Assigneenot available in USPTO data we have
Technical Abstract

Patent Claims
20 claims

Legal claims defining the scope of protection, as filed with the USPTO.

1

1. A method of increasing a speed of access of computer memory, the method comprising: detecting a first memory access, from a first process, directed to a first range of memory in a first memory addressing scheme; generating, as a precondition to completing the first memory access, a first entry in a first hierarchically arranged memory address translation table, the first hierarchically arranged memory address translation table correlating memory addresses between the first memory addressing scheme and a second memory addressing scheme, the first entry being at least one hierarchical level above a hierarchically lowest level of tables such that a second range of memory, identified by the first entry, can be identified without reference to any table in the hierarchically lowest level of tables, the second range of memory being greater than the first range of memory; and in response to generating the first entry in the first hierarchically arranged memory address translation table, marking as used a first plurality of entries in a second hierarchically arranged memory address translation table, the second hierarchically arranged memory address translation table correlating memory addresses between the second memory addressing scheme and a third memory addressing scheme, the first plurality of entries referencing, in aggregate, the same second range of memory as the first entry in the first hierarchically arranged memory address translation table, wherein entries of the first plurality of entries are at a hierarchically lowest level of tables; wherein memory addressed by the first memory addressing scheme is backed by memory addressed by the third memory addressing scheme.

2

2. The method of claim 1 , further comprising: detecting a second memory access from the first process, the second memory access being directed to a third range of memory that differs from the first range of memory; and satisfying the second memory access by reference to a second subset of the first plurality of entries in the second hierarchically arranged memory address translation table; wherein the first memory access was satisfied by reference to a first subset of the first plurality of entries in the second hierarchically arranged memory address translation table, the first subset comprising different entries, in the second hierarchically arranged memory address translation table, than the second subset.

3

3. The method of claim 1 , further comprising: detecting, after the first memory access completes, that a first subset of the first plurality of entries in the second hierarchically arranged memory address translation table have had data, that was originally stored in physical memory, subsequently paged out to a non-volatile storage medium; invalidating, in response to the detecting, the first entry in the first hierarchically arranged memory address translation table; and generating, in place of the first entry in the first hierarchically arranged memory address translation table, a second plurality of entries in the first hierarchically arranged memory address translation table, the second plurality of entries referencing, in aggregate, at least some of the same second range of memory as the first entry, wherein entries of the second plurality of entries are at a hierarchically lowest level of tables.

4

4. The method of claim 3 , wherein the second plurality of entries references portions of the second range of memory that were previously accessed by the first process and were not paged out.

5

5. The method of claim 1 , further comprising: assembling, within the second memory addressing scheme, a first plurality of contiguous small page sized regions of memory into a single large page sized region of memory.

6

6. The method of claim 5 , wherein the assembling occurs subsequent to the detecting the first memory access and prior to the generating the first entry in the first hierarchically arranged memory address translation table.

7

7. The method of claim 5 , further comprising: generating a second entry in the first hierarchically arranged memory address translation table, the second entry being at the least one hierarchical level above the hierarchically lowest level of tables such that a third range of memory, identified by the second entry, can be identified without reference to any table in the hierarchically lowest level of tables, the third range of memory referencing the single large page sized region of memory into which the first plurality of the contiguous small page sized regions of memory were assembled; and in response to generating the second entry in the first hierarchically arranged memory address translation table, marking as used a second plurality of entries in the second hierarchically arranged memory address translation table, the second plurality of entries referencing the first plurality of the contiguous small page sized regions of memory which were assembled into the single large page sized region of memory.

8

8. The method of claim 7 , further comprising: copying data from a second plurality of small page sized regions of memory to at least a portion of the first plurality of the contiguous small page sized regions, the second plurality of small page sized regions being at least partly discontinuous; and invalidating a second plurality of entries in the first hierarchically arranged memory address translation table that referenced the second plurality of small page sized regions of memory, wherein entries of the second plurality of entries are at a hierarchically lowest level of tables; wherein the generated second entry in the first hierarchically arranged memory address translation table is utilized in place of the second plurality of entries that were invalidated.

9

9. The method of claim 7 , further comprising: copying data from a second set of one or more small page sized regions of memory to at least a portion of the first plurality of the contiguous small page sized regions; and invalidating a second plurality of entries in the first hierarchically arranged memory address translation table, the second plurality of entries comprising both: (1) a first subset of entries that reference the second set of the one or more small page sized regions of memory and (2) a second subset of entries that reference at least some of the first plurality of contiguous small page sized regions of memory, wherein entries of the second plurality of entries are at a hierarchically lowest level of tables; wherein the generated second entry in the first hierarchically arranged memory address translation table is utilized in place of the second plurality of entries that were invalidated.

10

10. The method of claim 5 , wherein the assembling the first plurality of contiguous small page sized regions of memory comprises copying data from some of the first plurality of contiguous small page sized regions to other small page sized regions of memory that differ from the first plurality of contiguous small page sized regions.

11

11. The method of claim 10 , wherein the copying the data from the some of the first plurality of contiguous small page sized regions to the other small page sized regions is only performed if a fragmentation of the first plurality of contiguous small page sized regions is below a fragmentation threshold.

12

12. The method of claim 1 , further comprising: preventing paging of the second range of memory.

13

13. The method of claim 12 , wherein the preventing the paging of the second range of memory is only performed if one or more portions of the second range of memory are accessed more frequently than an access frequency threshold.

14

14. The method of claim 12 , further comprising removing the prevention of paging of the second range of memory if one or more portions of the second range of memory are accessed less frequently than an access frequency threshold.

15

15. The method of claim 1 , wherein the second range of memory is 2 MB in size.

16

16. A computing device comprising: one or more central processing units; random access memory (RAM); and one or more computer-readable storage media comprising: a first set of computer-executable instructions, which, when executed by the computing device, cause the computing device to provide a memory manager referencing a second hierarchically arranged memory address translation table that correlates memory addresses between a second memory addressing scheme and a third memory addressing scheme; a second set of computer-executable instructions, which, when executed by the computing device, cause the computing device to execute a first process that accesses memory addressed by a first memory addressing scheme that is backed by memory addressed by the third memory addressing scheme; and a third set of computer-executable instructions, which, when executed by the computing device, cause the computing device to: detect that the first memory access is directed to a first range of memory; generate, as a precondition to completing the first memory access, a first entry in a first hierarchically arranged memory address translation table, the first hierarchically arranged memory address translation table correlating the memory addresses between the first memory addressing scheme and the second memory addressing scheme, the first entry being at least one hierarchical level above a hierarchically lowest level of tables such that a second range of memory, identified by the first entry, can be identified without reference to any table in the hierarchically lowest level of tables, the second range of memory being greater than the first range of memory; and in response to generating the first entry in the first hierarchically arranged memory address translation table, mark as used a first plurality of entries in the second hierarchically arranged memory address translation table, the first plurality of entries referencing, in aggregate, the same second range of memory as the first entry in the first hierarchically arranged memory address translation table, wherein entries of the first plurality of entries are at a hierarchically lowest level of tables.

17

17. The computing device of claim 16 , wherein the third set of computer-executable instructions comprises further computer-executable instructions, which, when executed by the computing device, cause the computing device to: detect, after the first memory access completes, that a first subset of the first plurality of entries in the second hierarchically arranged memory address translation table have had data, that was originally stored in the RAM, subsequently paged out to one of the one or more computer-readable storage media; invalidate, in response to the detecting, the first entry in the first hierarchically arranged memory address translation table; and generate, in place of the first entry in the first hierarchically arranged memory address translation table, a second plurality of entries in the first hierarchically arranged memory address translation table, the second plurality of entries referencing, in aggregate, at least some of the same second range of memory as the first entry, wherein entries of the second plurality of entries are at a hierarchically lowest level of tables.

18

18. The computing device of claim 16 , wherein the third set of computer-executable instructions comprises further computer-executable instructions, which, when executed by the computing device, cause the computing device to: assemble, within the second memory addressing scheme, a first plurality of contiguous small page sized regions of memory into a single large page sized region of memory; wherein the assembling occurs subsequent to the detecting the first memory access and prior to the generating the first entry in the first hierarchically arranged memory address translation table.

19

19. The computing device of claim 16 , wherein the third set of computer-executable instructions comprises further computer-executable instructions, which, when executed by the computing device, cause the computing device to: prevent paging of the second range of memory.

20

20. One or more computer-readable storage media comprising computer-executable instructions, which when executed, cause a computing device to: detect a first memory access, from a first process, directed to a first range of memory in a first memory addressing scheme; generate, as a precondition to completing the first memory access, a first entry in a first hierarchically arranged memory address translation table, the first hierarchically arranged memory address translation table correlating memory addresses between the first memory addressing scheme and a second memory addressing scheme, the first entry being at least one hierarchical level above a hierarchically lowest level of tables such that a second range of memory, identified by the first entry, can be identified without reference to any table in the hierarchically lowest level of tables, the second range of memory being greater than the first range of memory; and in response to generating the first entry in the first hierarchically arranged memory address translation table, mark as used a first plurality of entries in a second hierarchically arranged memory address translation table, the second hierarchically arranged memory address translation table correlating memory addresses between the second memory addressing scheme and a third memory addressing scheme, the first plurality of entries referencing, in aggregate, the same second range of memory as the first entry in the first hierarchically arranged memory address translation table, wherein entries of the first plurality of entries are at a hierarchically lowest level of tables; wherein memory addressed by the first memory addressing scheme is backed by memory addressed by the third memory addressing scheme.

Patent Metadata

Filing Date

Unknown

Publication Date

October 26, 2021

Inventors

Yevgeniy BAK
Mehmet IYIGUN
Arun U. KISHAN

Want to explore more patents?

Browse 5M+ US patents with plain-English claim translations and AI-generated analysis.

Citation & reuse

Analysis on this page is generated by Patentable — an AI-powered patent intelligence platform. AI-generated summaries, explanations, and analysis may be reused with attribution and a visible link back to the canonical URL below. Patent abstracts and claims are USPTO public domain.

Cite as: Patentable. “FASTER ACCESS OF VIRTUAL MACHINE MEMORY BACKED BY A HOST COMPUTING DEVICE'S VIRTUAL MEMORY” (11157306). https://patentable.app/patents/11157306

© 2026 Patentable. All rights reserved.

Patentable is a research and drafting-assistant tool, not a law firm, and does not provide legal advice. Documents we generate are drafts for review by a licensed patent attorney.