System and method for emulating the operation of a translation look-aside buffer
AssigneeMicrosoft Corporation
InventorEric P. Traut
Life of this patent
Estimating the term…
Abstract
A method for tracking the changes to the emulated page tables of a host computer system is disclosed in which each memory location accessed by the guest computer system is placed on one of several hierarchical address translation lists maintained by the host computer system. In response to one or more events in the guest computer system, the contents of one or more of the address translation lists of the host computer system are unmapped as a means of tracking in the host computer system changes made to the address translation of virtual addresses to physical addresses in the emulated computer system.
Claims20
A method for emulating in a host computer system the operation of a memory management unit of a guest computer system, comprising a guest operating system, said method comprising the steps of:
- running an emulator program on the host system that emulates the operation of the memory management unit of the guest computer system;
- maintaining in the memory of the host computer system a page table of virtual memory address translations that corresponds to a virtual page table of virtual memory address translations of the guest computer system;
- writing to an address translation list a virtual memory address translation for each memory location accessed by the guest computer system;
- and
- unmapping from the page table of the host computer system the address translation entries on the address translation list in response to an action taken by the guest computer system.
In a computing environment in which a host operating system is emulating the operation of a guest computer system comprising a guest operating system, a method for tracking the memory addresses accessed by the guest operating system for the purpose of reconciling the content of a page table maintained by the host computer system and a virtual page table maintained by the guest computer system, comprising the steps of:
- placing the address translation of each virtual memory address accessed by the guest computer system in an address translation list maintained by the host computer system;
- and
- unmapping in the host computer system each address translation in the address translation list upon the occurrence of a predetermined event in the guest computer system.
A method for tracking in a page table of a computer system the contents of a page table of a guest computer system emulated in a host computer system, comprising the steps of:
- identifying memory locations accessed by the guest computer system;
- for each memory location accessed by the guest computer system, placing the address translation of the memory location on one of a plurality of address translation lists maintained by the host computer system;
- and
- when an event occurs in the guest computer system, unmapping from the page table of the host computer system the address translations appearing on one or more of the address translation lists, and, following the unmapping of a set of address translations from an address translation list, removing the address translations from the address translation list.
A method for unmapping entries in a page table of a host computer system to track the content of a page table of a guest computer system, said guest computer system comprising a guest operating system, said method comprising the steps of:
- compiling in the host system an address translation list of address translations for those memory locations accessed by the guest operating system;
- and
- unmapping in the page table of the host computer system the entries in the address translation list in response to an event in the computer system.
Dependencies are inferred from the claim text.