Increasing granularity of dirty bit information in hardware assisted memory management systems
First Claim
Patent Images
1. A memory management unit (MMU) of a computer system having virtual machines instantiated therein, wherein the MMU comprises:
- a guest page walker that accesses a set of first mapping tables that are hierarchically arranged and define mappings between guest virtual addresses and guest physical addresses and a set of second mapping tables that are hierarchically arranged and define mappings between guest physical addresses and machine memory addresses, the set of second mapping tables including a root table and a plurality of bottom-level tables, and that uses a pointer to each table and the guest virtual addresses to form a guest physical address for translation to a machine memory address; and
a nested page walker that translates the guest physical address for translation into a machine memory address,wherein each of a plurality of entries of the bottom-level tables references a machine memory page in common with at least one other entry of the bottom-level tables, and each of the plurality of entries of the bottom-level tables includes a status bit value that indicates whether or not data stored in the machine memory page referenced by said entry is dirty or not, and said status bit values of at least two entries of the bottom-level tables that reference the same machine memory page are different.
2 Assignments
0 Petitions
Accused Products
Abstract
In a computer system having virtual machines, one or more unused bits of a guest physical address range are allocated for aliasing so that multiple virtually addressed sub-pages can be mapped to a common memory page. When one bit is allocated for aliasing, dirty bit information can be provided at a granularity that is one-half of a memory page. When M bits are allocated for aliasing, dirty bit information can be provided at a granularity that is 1/(2M)-th of a memory page.
17 Citations
14 Claims
-
1. A memory management unit (MMU) of a computer system having virtual machines instantiated therein, wherein the MMU comprises:
-
a guest page walker that accesses a set of first mapping tables that are hierarchically arranged and define mappings between guest virtual addresses and guest physical addresses and a set of second mapping tables that are hierarchically arranged and define mappings between guest physical addresses and machine memory addresses, the set of second mapping tables including a root table and a plurality of bottom-level tables, and that uses a pointer to each table and the guest virtual addresses to form a guest physical address for translation to a machine memory address; and a nested page walker that translates the guest physical address for translation into a machine memory address, wherein each of a plurality of entries of the bottom-level tables references a machine memory page in common with at least one other entry of the bottom-level tables, and each of the plurality of entries of the bottom-level tables includes a status bit value that indicates whether or not data stored in the machine memory page referenced by said entry is dirty or not, and said status bit values of at least two entries of the bottom-level tables that reference the same machine memory page are different. - View Dependent Claims (2, 3, 4, 5, 6, 7)
-
-
8. A method of mapping guest virtual addresses to machine memory addresses in a computer system having virtual machines instantiated therein, comprising:
-
receiving a guest virtual address to be mapped; traversing guest page tables using portions of the guest virtual address to obtain a guest physical address corresponding to the guest virtual address; modifying a binary representation of the guest physical address corresponding to the guest virtual address by copying the value of a first bit of the binary representation to a second bit of the binary representation, wherein the second bit is more significant than the first bit; and translating the guest physical address corresponding to the guest virtual address to a machine memory address using the modified binary representation. - View Dependent Claims (9, 10, 11, 12, 13, 14)
-
Specification