Alternate Address Space to Permit Virtual Machine Monitor Access to Guest Virtual Address Space
First Claim
Patent Images
1. A processor comprising:
- one or more first registers configured to store first state defining a first address space mappable to a memory system to which the processor is coupled during use;
one or more second registers configured to store second state defining a second address space mappable to the memory system; and
an execution core coupled to the one or more first registers and the one or more second registers, and during execution of a guest under the control of a virtual machine monitor (VMM), the execution core is configured to use the first address space for data accesses generated by the guest, and during execution of non-guest code, the execution core is configured to select between the first address space and the second address space for a given data access generated by the non-guest code.
3 Assignments
0 Petitions
Accused Products
Abstract
In one embodiment, a processor supports an alternate address space during execution of non-guest code (such as a minivisor or a virtual machine monitor (VMM)). The alternate address space may be the guest address space. An instruction in the minivisor/VMM may specify the alternate address space for a data access, permitting the minivisor/VMM to read guest memory state via the alternate address space. In another embodiment, a processor may implement a page table base address register dedicated for the minivisor'"'"'s use. In still another embodiment, the minivisor may be implemented as a specified entry point in the VMM address space.
48 Citations
22 Claims
-
1. A processor comprising:
-
one or more first registers configured to store first state defining a first address space mappable to a memory system to which the processor is coupled during use; one or more second registers configured to store second state defining a second address space mappable to the memory system; and an execution core coupled to the one or more first registers and the one or more second registers, and during execution of a guest under the control of a virtual machine monitor (VMM), the execution core is configured to use the first address space for data accesses generated by the guest, and during execution of non-guest code, the execution core is configured to select between the first address space and the second address space for a given data access generated by the non-guest code. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15)
-
-
16. A method comprising:
-
during execution of a guest, using a first address space that is mappable to a system memory for data accesses generated by the guest; detecting a guest exit to non-guest code; responsive to the guest exit, establishing the first address space as an alternate address space useable by the non-guest code, the non-guest code also having a second address space mappable to the system memory as a current address space; performing a first data access by the non-guest code, the performing including selecting the first address space for the first data access; and performing a second data access by the non-guest code, the performing including selecting the second address space for the second data access. - View Dependent Claims (17)
-
-
18. A computer accessible storage medium storing a plurality of instructions which, when executed:
-
generate a first data access using a first address space mappable to a system memory, the first address space also used by a guest that is controlled by the plurality of instructions; and generate a second data access using a second address space mappable to the system memory, the second address space assigned to the plurality of instructions. - View Dependent Claims (19)
-
- 20. A computer system comprising host hardware that includes at least one processor and a system memory, wherein the system memory stores at least one guest and a virtual machine monitor (VMM) during use, wherein the VMM controls execution of the guest, and wherein the processor supports a first address space during execution of the guest, and wherein the processor supports a second address space during execution of non-guest code, wherein the first address space and the second address space are mappable to the system memory, and wherein the processor further supports the first address space as an alternate address space during execution of the non-guest code, wherein the processor selects one of the first address space and the second address space for a data access generated during execution of the non-guest code.
Specification