Memory addressing for a virtual machine implementation on a computer processor supporting virtual hash-page-table searching
First Claim
1. A method for efficiently translating virtual-memory addresses to physical-memory addresses in a computer system serving as a platform for execution of a number of guest operating systems, the method comprising:
- providing a monitor;
partitioning a machine-architecture-supplied virtual-address space into separate virtual-address-space partitions for use by the guest operating systems and the monitor, each virtual-address-space partition used by one of a guest operating system or the monitor;
running the monitor at a privilege level more privileged than any privilege level at which a guest operating system runs; and
intercepting, by the monitor, attempts by the guest operating systems to execute virtual-memory related instructions in order to create and maintain a guest-physical-address-to-host-physical-address map for each guest operating system; and
translate guest-virtual-memory addresses, within a virtual-address-space partition allocated by the monitor to the guest operating system, to host physical addresses.
3 Assignments
0 Petitions
Accused Products
Abstract
A software monitor, interposed between the hardware layer of a computer system and one or more guest operating systems, constructs and maintains a guest-physical-address-to-host-physical-address map for each guest operating system, and maintains a virtual memory addressing context for each guest operating system that may include a virtual-hash-page table for each guest operating system, the contents of translation registers for each guest operating system, CPU-specific virtual-memory translations for each guest operating system, and the contents of various status registers. The monitor runs at the highest privilege level provided by the hardware system, intercepting attempts to execute privileged instructions by guest operating systems, and simulates or enhances certain of the privileged instructions related to virtual-memory addressing in order to construct and maintain the guest-physical-address-to-host-physical-address map and to provide each guest operating system with the illusion that the guest operating system is executing as the most privileged process on a virtual machine.
-
Citations
21 Claims
-
1. A method for efficiently translating virtual-memory addresses to physical-memory addresses in a computer system serving as a platform for execution of a number of guest operating systems, the method comprising:
-
providing a monitor;
partitioning a machine-architecture-supplied virtual-address space into separate virtual-address-space partitions for use by the guest operating systems and the monitor, each virtual-address-space partition used by one of a guest operating system or the monitor;
running the monitor at a privilege level more privileged than any privilege level at which a guest operating system runs; and
intercepting, by the monitor, attempts by the guest operating systems to execute virtual-memory related instructions in order to create and maintain a guest-physical-address-to-host-physical-address map for each guest operating system; and
translate guest-virtual-memory addresses, within a virtual-address-space partition allocated by the monitor to the guest operating system, to host physical addresses. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20)
-
-
21. A monitor and hardware computer system comprising:
-
one or more processors that provide multiple privilege levels, translation caches, and machine-support for searching translation caches and virtual page tables;
system memory; and
a monitor that runs within the computer system at a privilege level more privileged than any privilege levels at which guest operating systems run within the computer system, the monitor partitioning virtual-address space into partitions, each partition used by one of the monitor or a guest operating system;
constructing and maintaining a map for each guest operating system containing indications of host physical memory pages corresponding to guest-operating-system virtual physical memory pages; and
substituting host physical addresses for guest virtual physical addresses in translation caches and virtual page tables so that machine-level virtual-address-translation features of the computer system, including translation-cache and virtual-page-table searches, can be carried out on behalf of the guest operating systems.
-
Specification