Patents Assigned to VMware
  • Patent number: 7069413
    Abstract: The invention is used in a virtual machine monitor for a multiprocessing system that includes a virtual memory system. During a software-based processing of a guest instruction, including translating or interpreting a guest instruction, mappings between virtual addresses and physical addresses are retained in memory until processing of the guest instruction is completed. The retained mappings may be cleared after each guest instruction has been processed, or after multiple guest instructions have been processed. Information may also be stored to indicate that an attempt to map a virtual address to a physical address was not successful. The invention may be extended beyond virtual machine monitors to other systems involving the software-based processing of instructions, and beyond multiprocessing systems to other systems involving concurrent access to virtual memory management data.
    Type: Grant
    Filed: January 29, 2003
    Date of Patent: June 27, 2006
    Assignee: VMware, Inc.
    Inventors: Ole Agesen, Pratap Subrahmanyam
  • Patent number: 6961806
    Abstract: A computer system includes at least one virtual machine that has a plurality of virtual processors all running on an underlying hardware platform. A software interface layer such as a virtual machine monitor establishes traces on primary structures located in a common memory space as needed for the different virtual processors. Whenever any one of the virtual processors generates a trace event, such as accessing a traced structure, then a notification is sent to at least the other virtual processors that have a trace on the accessed primary structure. In some applications, the VMM derives and maintains secondary structures corresponding to the primary structures, such as where the VMM converts, through binary translation, original code intended to run on a virtual processor into code that can be run on an underlying physical processor of the hardware platform. In these applications, the VMM may rederive or invalidate the secondary structures as needed upon receipt of the notification of the trace event.
    Type: Grant
    Filed: December 10, 2001
    Date of Patent: November 1, 2005
    Assignee: VMware, Inc.
    Inventors: Ole Agesen, Pratap Subrahmanyam, Scott W. Devine, Mendel Rosenblum, Edouard Bugnlon
  • Patent number: 6961941
    Abstract: A computer architecture includes a first operating system (COS), which may be a commodity operating system, and a kernel, which acts as a second operating system. The COS is used to boot the system as a whole. After booting, the kernel is loaded and displaces the COS from the system level, meaning that the kernel itself directly accesses predetermined physical resources of the computer. All requests for use of system resources then pass via the kernel. System resources are divided into those that, in order to maximize speed, are controlled exclusively by the kernel, those that the kernel allows the COS to handle exclusively, and those for which control is shared by the kernel and COS. In the preferred embodiment of the invention, at least one virtual machine (VM) runs via a virtual machine monitor, which is installed to run on the kernel. Each VM, the COS, and even each processor in a multiprocessor embodiment, are treated as separately schedulable entities that are scheduled by the kernel.
    Type: Grant
    Filed: June 8, 2001
    Date of Patent: November 1, 2005
    Assignee: VMware, Inc.
    Inventors: Michael Nelson, Scott W. Devine, Beng-Hong Lim
  • Patent number: 6944699
    Abstract: A virtual machine monitor (VMM) is included in a computer system that has a protected host operating system (HOS). A virtual machine running at least one application via a virtual operating system is connected to the VMM. Both the HOS and the VMM have separate operating contexts and disjoint address spaces, but are both co-resident at system level. A driver that is downloadable into the HOS at system level forms a total context switch between the VMM and HOS contexts. A user-level emulator accepts commands from the VMM via the system-level driver and processes these commands as remote procedure calls. The emulator is able to issue host operating system calls and thereby access the physical system devices via the host operating system. The host operating system itself thus handles execution of certain VMM instructions, such as accessing physical devices.
    Type: Grant
    Filed: November 27, 2002
    Date of Patent: September 13, 2005
    Assignee: VMware, Inc.
    Inventors: Edouard Bugnion, Scott W. Devine, Mendel Rosenblum
  • Patent number: 6880022
    Abstract: A computer has a hardware memory arranged into portions that are separately addressable using first identifiers, which are represented using a first number of address bits. A subsystem that is able to address a second space of the hardware memory using second identifiers initiates I/O requests directed to a device that is able to address a different, first memory space using first identifiers, which are represented using a second number of address bits. The second identifiers are initially mapped into the second memory space, but for any I/O request that meets a remapping criterion, the corresponding second identifier is remapped to one of the first identifiers that identifies a portion of the memory in the first memory space. The second space is different from the first space and the second number of address bits is greater less than the first number of address bits.
    Type: Grant
    Filed: April 19, 2004
    Date of Patent: April 12, 2005
    Assignee: VMware, Inc.
    Inventors: Carl A. Waldspurger, Michael Nelson, Kinshuk Govil
  • Patent number: 6795966
    Abstract: A computer system is interrupted, and its entire state information is extracted as one or more checkpoints at one or more respective points during operation of the system. The checkpoint may be restored into the system at any later time, even multiple times, and it may also even be loaded into one or more other systems; all systems loaded with the same checkpoint will then execute from the same checkpointed state. The state extraction mechanism is preferably a virtual machine monitor, on which one or more virtual machines are installed, each virtual machine constituting an encapsulated, virtualized computer system whose states can be checkpointed under control of the virtual machine monitor. Checkpoints may be stored on a portable memory device or transmitted as a batch or dynamically over a network so that even virtual machines installed at different sites may execute from the same state.
    Type: Grant
    Filed: February 4, 2000
    Date of Patent: September 21, 2004
    Assignee: VMWare, Inc.
    Inventors: Beng-Hong Lim, Edouard Bugnion, Scott W. Devine
  • Patent number: 6789156
    Abstract: A computer system has one or more software context that share use of a memory that is divided into units such as pages. In the preferred embodiment of the invention, the context are, or include, virtual machines running on a common hardware platform. The context, as opposed to merely the addresses or page numbers, of virtual memory pages that accessible to one or more contexts are examined. If two or more context pages are identical, then their memory mappings are changed to point to a single, shared copy of the page in the hardware memory, thereby freeing the memory space taken up by the redundant copies. The shared copy is ten preferable marked copy-on-write. Sharing is preferably dynamic, whereby the presence of redundant copies of pages is preferably determined by hashing page contents and performing full content comparisons only when two or more pages hash to the same key.
    Type: Grant
    Filed: July 25, 2001
    Date of Patent: September 7, 2004
    Assignee: VMWare, Inc.
    Inventor: Carl A. Waldspurger
  • Patent number: 6785886
    Abstract: One or more virtual machines (VM's) run via a virtual machine monitor (VMM) on a hardware platform that has a segmented memory architecture. Each VM has at least one VM descriptor table that has, as entries, VM segment descriptors. At least one VMM descriptor table is established, including at least one shadow descriptor table that stores shadow descriptors for certain of the VM segment descriptors, which are then shadowed descriptors. The VMM compares the shadow descriptors with their respective corresponding shadowed VM descriptors, detects any lack of correspondence between the shadow descriptor table and the corresponding VM descriptor table, and updates and thereby synchronizes each shadow descriptor with its respective shadowed VM descriptor no later than, and preferably only upon the first use of, the respective descriptor by the VM.
    Type: Grant
    Filed: August 24, 2000
    Date of Patent: August 31, 2004
    Assignee: VMWare, Inc.
    Inventors: Beng-Hong Lim, Bich C. Le, Edouard Bugnion
  • Patent number: 6735601
    Abstract: Applications, which consist of one or more files containing executable code and/or data, are stored preferably in unmodified form in a provider system. Separately processable portions of the files contain file structure information as well as actual, processable content. A skeleton of each file, consisting of the file structure information but not the processable content, is stored within a user system, and preferably within a virtual machine, along with access information identifying where the actual content is stored. Whenever the user system, in particular, its operating system, issues a request for access to any file portion whose structure only is stored, then the corresponding content is downloaded via a network, from the provider to the user. A broker system may be included as an intermediary between the provider and the user and may perform such functions as billing and selection of available file providers.
    Type: Grant
    Filed: December 29, 2000
    Date of Patent: May 11, 2004
    Assignee: VMware, Inc.
    Inventor: Pratap Subrahmanyam
  • Patent number: 6725289
    Abstract: A subsystem that is able to address a second memory region initiates I/O requests directed to a device that is able to address a first memory region that is different from the second memory region. Requests for memory are mapped at least once, for example from virtual to physical page numbers. The I/O requests are conditionally remapped to pages in the first region as a function of how often they are involved in the I/O operations and would normally otherwise need to be copied. Remapping may also be made conditional on a function of availability of memory in the first region. In a preferred embodiment of the invention, the I/O requests are initiated by a subsystem within a virtual machine, which runs via an intermediate software layer such as a virtual machine monitor on an underlying hardware and software platform. A typical application of the invention is DMA.
    Type: Grant
    Filed: April 17, 2002
    Date of Patent: April 20, 2004
    Assignee: VMware, Inc.
    Inventors: Carl A. Waldspurger, Michael Nelson, Kinshuk Govil
  • Patent number: 6711672
    Abstract: A sequence of input language (IL) instructions of a guest system is converted, for example by binary translation, into a corresponding sequence of output language (OL) instructions of a host system, which executes the OL instructions. In order to determine the correct return address after any IL call to a subroutine, the corresponding OL return address is stored in an array at a location determined by a hash function. After completion of execution of the OL translation of the IL subroutine, execution is transferred to the address stored in the array at the location where the correct OL return address was previously stored. This location may have been overwritten by some other OL return address.
    Type: Grant
    Filed: September 22, 2000
    Date of Patent: March 23, 2004
    Assignee: VMware, Inc.
    Inventor: Ole Agesen
  • Patent number: 6704925
    Abstract: A dynamic binary translator converts input instruction sequences into output instruction sequences that are stored in a translation cache. In order to maintain coherence of the translation cache with the run-time version of the input instructions, translated code is checked by either a conflict detection mechanism or a code-invariance mechanism. For conflict detection, the system preferably uses memory traces generated by the memory management unit of the underlying hardware processor. In order to check for code-invariance, preludes for comparing cached, output instruction sequences with their supposed run-time input instruction equivalents are appended to the cached instructions themselves. Changes in the input sequences then result only in retranslation of instruction sequences in which at least one instruction has changed; this avoids costly total flushes of the translation cache.
    Type: Grant
    Filed: December 1, 1998
    Date of Patent: March 9, 2004
    Assignee: VMware, Inc.
    Inventor: Edouard Bugnion
  • Patent number: 6496847
    Abstract: A virtual machine monitor (VMM) is included in a computer system that has a protected host operating system (HOS). A virtual machine running at least one application via a virtual operating system is connected to the VMM. Both the HOS and the VMM have separate operating contexts and disjoint address spaces, but are both co-resident at system level. A driver that is downloadable into the HOS at system level forms a total context switch between the VMM and HOS contexts. A user-level emulator accepts commands from the VMM via the system-level driver and processes these commands as remote procedure calls. The emulator is able to issue host operating system calls and thereby access the physical system devices via the host operating system. The host operating system itself thus handles execution of certain VMM instructions, such as accessing physical devices.
    Type: Grant
    Filed: September 10, 1998
    Date of Patent: December 17, 2002
    Assignee: VMWare, Inc.
    Inventors: Edouard Bugnion, Scott W. Devine, Mendel Rosenblum
  • Patent number: 6397242
    Abstract: In a computer that has hardware processor, and a memory, the invention provides a virtual machine monitor (VMM) and a virtual machine (VM) that has at least one virtual processor and is operatively connected to the VMM for running a sequence of VM instructions, which are either directly executable or non-directly executable. The VMM includes both a binary translation sub-system and a direct execution sub-system, as well as a sub-system that determines if VM instructions must be executed using binary translation, or if they can be executed using direct execution. Shadow descriptor tables in the VMM, corresponding to VM descriptor tables, segment tracking and memory tracing are used as factors in the decision of which execution mode to activate. The invention is particularly well-adapted for virtualizing computers in which the hardware processor has an Intel x86 architecture.
    Type: Grant
    Filed: October 26, 1998
    Date of Patent: May 28, 2002
    Assignee: VMWare, Inc.
    Inventors: Scott W. Devine, Edouard Bugnion, Mendel Rosenblum