×

Method and system for performing virtual to physical address translations in a virtual machine monitor

  • US 7,069,413 B1
  • Filed: 01/29/2003
  • Issued: 06/27/2006
  • Est. Priority Date: 01/29/2003
  • Status: Expired due to Term
First Claim
Patent Images

1. A method for attempting to determine memory mappings between virtual addresses and physical addresses in a Virtual Machine Monitor (VMM), the VMM running on a physical computer having a plurality of physical processors and implementing a virtual memory system that is used by the physical processors, the method being used during a software-based processing of one or more guest instructions, the processing of the one or more guest instructions requiring one or more guest memory mappings, the method comprising:

  • (A) establishing a data store for memory mappings between virtual addresses and physical addresses that is separate from the virtual memory system used by the physical processors;

    (B) for one or more of the required memory mappings, performing the following steps;

    (1) searching the data store for a virtual address for the required memory mapping, and performing the following step;

    (2) if a matching virtual address is not found, performing the following steps;

    (a) attempting to establish the required memory mapping according to the virtual memory system used by the physical processors;

    (b) if the required memory mapping is established according to the virtual memory system, using the established memory mapping, and adding an entry to the data store indicating the established memory mapping for the virtual address and retaining the established memory mapping at least until the software-based processing of a current guest instruction is completed; and

    (c) if the required memory mapping is not established according to the virtual memory system, using no memory mapping, and adding an entry to the data store indicating that a memory mapping was not found for the virtual address; and

    (3) if a matching virtual address is found, performing the following steps;

    (a) if an entry containing the matching virtual address indicates that a memory mapping was not found for the virtual address, using no memory mapping; and

    (b) if an entry containing the matching virtual address indicates that a memory mapping was found for the virtual address, using the memory mapping indicated in the entry; and

    (C) upon completing the processing of one or more guest instructions, invalidating all entries in the data store.

View all claims
  • 1 Assignment
Timeline View
Assignment View
    ×
    ×