A system and method for providing storage virtualization (SV) is disclosed. According to one embodiment, a system includes a storage device having a tier 1 cache and a Tier 2 storage, an operating system and a file system having a Tier 0 memory cache that stores application data. The Tier 0 memory cache synchronizes the application data with the tier 1 cache and the Tier 2 storage.
A method and system for dynamic storage scaling based on automatically parallelizing access of names and data across multiple nodes or micro object stores (MOSs) is provided. A dynamic storage scaling device cluster is provisioned for a particular level of parallelism (e.g., N MOSs) when the cluster is created. The N MOSs may initially reside in a few physical servers (e.g., one server). When the data distribution causes peak resource usage of the physical servers, new server(s) can be added. Some micro object stores (MOSs) are moved to the new physical server(s) through a meiosis process. The storage devices associated with the moved MOSs are unmounted from the original servers and mounted to the new server(s). The meiosis continues until the cluster grows to full capacity. The scaling is dynamic and efficient since no data copy is involved in the meiosis and the initial resource cost is optimized.
G06F 3/06 - Digital input from, or digital output to, record carriers
G06F 11/20 - Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements
A system and method for providing cloud virtualization (SV) is disclosed. According to one embodiment, a system includes a transactional cloud manager and a compute cluster connected to the transactional cloud manager. The compute cluster includes a system monitor and a control manager in a host. A virtual machine runs on the host, wherein the virtual machine has a VM system monitor and a VM control manager. The transactional cloud manager creates virtual machine clusters on the host.
09 - Scientific and electric apparatus and instruments
Goods & Services
Downloadable optimization software for optimizing computer performance; Downloadable optimization software for optimizing latency; Downloadable optimization software for optimizing throughput; Downloadable optimization software for optimizing resource utilization; Downloadable optimization software for optimizing scalability
5.
DYNAMIC I/O VIRTUALIZATION SYSTEM HAVING GUEST MEMORY MANAGEMENT FOR MAPPING VIRTUAL ADDRESSES USING VIRTUALIZATION APPLICATION PROGRAMMING INTERFACE (API) IN GUEST KERNAL
A system and method for providing dynamic I/O virtualization is herein disclosed. According to one embodiment, a device capable of performing hypervisor-agnostic and device-agnostic I/O virtualization includes a host computer interface, memory, I/O devices (GPU, disk, NIC), and efficient communication mechanisms for virtual machines to communicate their intention to perform I/O operations on the device. According to one embodiment, the communication mechanism may use shared memory. According to some embodiments, the device may be implemented purely in hardware, in software, or using a combination of hardware and software. According to some embodiments, the device may share its memory with guest processes to perform optimizations including but not limited to a shared page cache and a shared heap.
G06F 9/455 - EmulationInterpretationSoftware simulation, e.g. virtualisation or emulation of application or operating system execution engines
A61K 39/00 - Medicinal preparations containing antigens or antibodies
C07K 16/28 - Immunoglobulins, e.g. monoclonal or polyclonal antibodies against material from animals or humans against receptors, cell surface antigens or cell surface determinants
G06F 3/06 - Digital input from, or digital output to, record carriers
G06F 12/084 - Multiuser, multiprocessor or multiprocessing cache systems with a shared cache
G06F 12/0864 - Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches using pseudo-associative means, e.g. set-associative or hashing
G06F 12/0868 - Data transfer between cache memory and other subsystems, e.g. storage devices or host systems
G06F 12/1081 - Address translation for peripheral access to main memory, e.g. direct memory access [DMA]
G06F 13/28 - Handling requests for interconnection or transfer for access to input/output bus using burst mode transfer, e.g. direct memory access, cycle steal
6.
DYNAMIC DEVICE VIRTUALIZATION FOR USE BY GUEST USER PROCESSES BASED ON OBSERVED BEHAVIORS OF NATIVE DEVICE DRIVERS
A system and method for providing dynamic device virtualization is herein disclosed. According to one embodiment, the computer-implemented method includes providing a hypervisor and one or more guest virtual machines (VMs). Each guest VM is disposed to run a guest user process and the hypervisor is split into a device hypervisor and a compute hypervisor. The computer-implemented method further includes providing an interface between the device hypervisor and the compute hypervisor. The compute hypervisor manages an efficient use of CPU and memory of a host and the device hypervisor manages a device connected to the host by exploiting hardware acceleration of the device.
A system and method for providing cloud virtualization (SV) is disclosed. According to one embodiment, a system includes a transactional cloud manager and a compute cluster connected to the transactional cloud manager. The compute cluster includes a system monitor and a control manager in a host. A virtual machine runs on the host, wherein the virtual machine has a VM system monitor and a VM control manager. The transactional cloud manager creates virtual machine clusters on the host.
H04L 43/0876 - Network utilisation, e.g. volume of load or congestion level
H04L 67/52 - Network services specially adapted for the location of the user terminal
H04L 67/10 - Protocols in which an application is distributed across nodes in the network
8.
Dynamic I/O virtualization system having guest memory management for mapping virtual addresses using virtualization application programming interface (API) in guest kernal
A system and method for providing dynamic I/O virtualization is herein disclosed. According to one embodiment, a device capable of performing hypervisor-agnostic and device-agnostic I/O virtualization includes a host computer interface, memory, I/O devices (GPU, disk, NIC), and efficient communication mechanisms for virtual machines to communicate their intention to perform I/O operations on the device. According to one embodiment, the communication mechanism may use shared memory. According to some embodiments, the device may be implemented purely in hardware, in software, or using a combination of hardware and software. According to some embodiments, the device may share its memory with guest processes to perform optimizations including but not limited to a shared page cache and a shared heap.
G06F 9/455 - EmulationInterpretationSoftware simulation, e.g. virtualisation or emulation of application or operating system execution engines
C07K 16/28 - Immunoglobulins, e.g. monoclonal or polyclonal antibodies against material from animals or humans against receptors, cell surface antigens or cell surface determinants
G06F 3/06 - Digital input from, or digital output to, record carriers
G06F 12/0868 - Data transfer between cache memory and other subsystems, e.g. storage devices or host systems
G06F 12/1081 - Address translation for peripheral access to main memory, e.g. direct memory access [DMA]
G06F 13/28 - Handling requests for interconnection or transfer for access to input/output bus using burst mode transfer, e.g. direct memory access, cycle steal
A61K 39/00 - Medicinal preparations containing antigens or antibodies
G06F 12/084 - Multiuser, multiprocessor or multiprocessing cache systems with a shared cache
G06F 12/0864 - Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches using pseudo-associative means, e.g. set-associative or hashing
A system and method for providing storage virtualization (SV) is disclosed. According to one embodiment, a system includes a storage device having a tier 1 cache and a Tier 2 storage, an operating system and a file system having a Tier 0 memory cache that stores application data. The Tier 0 memory cache synchronizes the application data with the tier 1 cache and the Tier 2 storage.
A method and system for dynamic storage scaling based on automatically parallelizing access of names and data across multiple nodes or micro object stores (MOSs) is provided. A dynamic storage scaling device cluster is provisioned for a particular level of parallelism (e.g., N MOSs) when the cluster is created. The N MOSs may initially reside in a few physical servers (e.g., one server). When the data distribution causes peak resource usage of the physical servers, new server(s) can be added. Some micro object stores (MOSs) are moved to the new physical server(s) through a meiosis process. The storage devices associated with the moved MOSs are unmounted from the original servers and mounted to the new server(s). The meiosis continues until the cluster grows to full capacity. The scaling is dynamic and efficient since no data copy is involved in the meiosis and the initial resource cost is optimized.
G06F 3/00 - Input arrangements for transferring data to be processed into a form capable of being handled by the computerOutput arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
G06F 3/06 - Digital input from, or digital output to, record carriers
G06F 11/20 - Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements
A system and method for providing dynamic information virtualization (DIV) is disclosed. According to one embodiment, a device includes a dynamic optimization manager (DOM), a process and memory manager (PMM), a memory, and a host device driver. The device starts virtual functions after booting to allow a virtual machine (VM) running a guest operating system to identify the virtual functions and load virtual drivers of the virtual functions. The PMM allocates a unified cache from the memory to facilitate coherent access to information from storage and network resources by the VM. The host device driver enables a guess process in the VM to access the information stored in the unified cache in a secure and isolated manner.
G06F 21/57 - Certifying or maintaining trusted computer platforms, e.g. secure boots or power-downs, version controls, system software checks, secure updates or assessing vulnerabilities
G06F 12/08 - Addressing or allocationRelocation in hierarchically structured memory systems, e.g. virtual memory systems
G06F 12/0846 - Cache with multiple tag or data arrays being simultaneously accessible
12.
Dynamic device virtualization for use by guest user processes based on observed behaviors of native device drivers
A system and method for providing dynamic device virtualization is herein disclosed. According to one embodiment, the computer-implemented method includes providing a hypervisor and one or more guest virtual machines (VMs). Each guest VM is disposed to run a guest user process and the hypervisor is split into a device hypervisor and a compute hypervisor. The computer-implemented method further includes providing an interface between the device hypervisor and the compute hypervisor. The compute hypervisor manages an efficient use of CPU and memory of a host and the device hypervisor manages a device connected to the host by exploiting hardware acceleration of the device.
Security of dynamic I/O virtualization system having a bidirectional extended hybrid address space (EHAS) for allowing host kernel to access guest memory
A system and method for providing dynamic I/O virtualization is herein disclosed. According to one embodiment, a device capable of performing hypervisor-agnostic and device-agnostic I/O virtualization includes a host computer interface, memory, I/O devices (GPU, disk, NIC), and efficient communication mechanisms for virtual machines to communicate their intention to perform I/O operations on the device. According to one embodiment, the communication mechanism may use shared memory. According to some embodiments, the device may be implemented purely in hardware, in software, or using a combination of hardware and software. According to some embodiments, the device may share its memory with guest processes to perform optimizations including but not limited to a shared page cache and a shared heap.
G06F 9/455 - EmulationInterpretationSoftware simulation, e.g. virtualisation or emulation of application or operating system execution engines
G06F 12/0868 - Data transfer between cache memory and other subsystems, e.g. storage devices or host systems
C07K 16/28 - Immunoglobulins, e.g. monoclonal or polyclonal antibodies against material from animals or humans against receptors, cell surface antigens or cell surface determinants
G06F 13/28 - Handling requests for interconnection or transfer for access to input/output bus using burst mode transfer, e.g. direct memory access, cycle steal
G06F 3/06 - Digital input from, or digital output to, record carriers
G06F 12/1081 - Address translation for peripheral access to main memory, e.g. direct memory access [DMA]
G06F 12/0864 - Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches using pseudo-associative means, e.g. set-associative or hashing
A61K 39/00 - Medicinal preparations containing antigens or antibodies
G06F 12/084 - Multiuser, multiprocessor or multiprocessing cache systems with a shared cache
14.
Dynamic I/O virtualization system having guest memory management for mapping virtual addresses using virtualization application programming interface (API) in guest kernal
A system and method for providing dynamic I/O virtualization is herein disclosed. According to one embodiment, a device capable of performing hypervisor-agnostic and device-agnostic I/O virtualization includes a host computer interface, memory, I/O devices (GPU, disk, NIC), and efficient communication mechanisms for virtual machines to communicate their intention to perform I/O operations on the device. According to one embodiment, the communication mechanism may use shared memory. According to some embodiments, the device may be implemented purely in hardware, in software, or using a combination of hardware and software. According to some embodiments, the device may share its memory with guest processes to perform optimizations including but not limited to a shared page cache and a shared heap.
G06F 9/455 - EmulationInterpretationSoftware simulation, e.g. virtualisation or emulation of application or operating system execution engines
G06F 12/0868 - Data transfer between cache memory and other subsystems, e.g. storage devices or host systems
C07K 16/28 - Immunoglobulins, e.g. monoclonal or polyclonal antibodies against material from animals or humans against receptors, cell surface antigens or cell surface determinants
G06F 13/28 - Handling requests for interconnection or transfer for access to input/output bus using burst mode transfer, e.g. direct memory access, cycle steal
G06F 3/06 - Digital input from, or digital output to, record carriers
G06F 12/1081 - Address translation for peripheral access to main memory, e.g. direct memory access [DMA]
G06F 12/0864 - Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches using pseudo-associative means, e.g. set-associative or hashing
A61K 39/00 - Medicinal preparations containing antigens or antibodies
G06F 12/084 - Multiuser, multiprocessor or multiprocessing cache systems with a shared cache
A method and system for dynamic storage scaling based on automatically parallelizing access of names and data across multiple nodes or micro object stores (MOSs) is provided. A dynamic storage scaling device cluster is provisioned for a particular level of parallelism (e.g., N MOSs) when the cluster is created. The N MOSs may initially reside in a few physical servers (e.g., one server). When the data distribution causes peak resource usage of the physical servers, new server(s) can be added. Some micro object stores (MOSs) are moved to the new physical server(s) through a meiosis process. The storage devices associated with the moved MOSs are unmounted from the original servers and mounted to the new server(s). The meiosis continues until the cluster grows to full capacity. The scaling is dynamic and efficient since no data copy is involved in the meiosis and the initial resource cost is optimized.
G06F 3/00 - Input arrangements for transferring data to be processed into a form capable of being handled by the computerOutput arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
G06F 3/06 - Digital input from, or digital output to, record carriers
G06F 11/20 - Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements
16.
Dynamic device virtualization for use by guest user processes based on observed behaviors of native device drivers
A system and method for providing dynamic device virtualization is herein disclosed. According to one embodiment, the computer-implemented method includes providing a hypervisor and one or more guest virtual machines (VMs). Each guest VM is disposed to run a guest user process and the hypervisor is split into a device hypervisor and a compute hypervisor. The computer-implemented method further includes providing an interface between the device hypervisor and the compute hypervisor. The compute hypervisor manages an efficient use of CPU and memory of a host and the device hypervisor manages a device connected to the host by exploiting hardware acceleration of the device.
A system and method for providing cloud virtualization (SV) is disclosed. According to one embodiment, a system includes a transactional cloud manager and a compute cluster connected to the transactional cloud manager. The compute cluster includes a system monitor and a control manager in a host. A virtual machine runs on the host, wherein the virtual machine has a VM system monitor and a VM control manager. The transactional cloud manager creates virtual machine clusters on the host.
A system and method for providing storage virtualization (SV) is disclosed. According to one embodiment, a system includes a storage device having a tier 1 cache and a Tier 2 storage, an operating system and a file system having a Tier 0 memory cache that stores application data. The Tier 0 memory cache synchronizes the application data with the tier 1 cache and the Tier 2 storage.
A system and method for providing dynamic I/O virtualization is herein disclosed. According to one embodiment, a device capable of performing hypervisor-agnostic and device-agnostic I/O virtualization includes a host computer interface, memory, I/O devices (GPU, disk, NIC), and efficient communication mechanisms for virtual machines to communicate their intention to perform I/O operations on the device. According to one embodiment, the communication mechanism may use shared memory. According to some embodiments, the device may be implemented purely in hardware, in software, or using a combination of hardware and software. According to some embodiments, the device may share its memory with guest processes to perform optimizations including but not limited to a shared page cache and a shared heap.
G06F 9/455 - EmulationInterpretationSoftware simulation, e.g. virtualisation or emulation of application or operating system execution engines
G06F 12/0868 - Data transfer between cache memory and other subsystems, e.g. storage devices or host systems
G06F 13/28 - Handling requests for interconnection or transfer for access to input/output bus using burst mode transfer, e.g. direct memory access, cycle steal
G06F 3/06 - Digital input from, or digital output to, record carriers
G06F 12/1081 - Address translation for peripheral access to main memory, e.g. direct memory access [DMA]
G06F 12/0864 - Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches using pseudo-associative means, e.g. set-associative or hashing
G06F 12/084 - Multiuser, multiprocessor or multiprocessing cache systems with a shared cache
A system and method for providing storage virtualization (SV) is disclosed. According to one embodiment, a system includes a storage device having a tier 1 cache and a Tier 2 storage, an operating system and a file system having a Tier 0 memory cache that stores application data. The Tier 0 memory cache synchronizes the application data with the tier 1 cache and the Tier 2 storage.
A system and method for providing cloud virtualization (SV) is disclosed. According to one embodiment, a system includes a transactional cloud manager and a compute cluster connected to the transactional cloud manager. The compute cluster includes a system monitor and a control manager in a host. A virtual machine runs on the host, wherein the virtual machine has a VM system monitor and a VM control manager. The transactional cloud manager creates virtual machine clusters on the host.
Dynamic I/O virtualization system having guest memory management agent (MMA) for resolving page faults using hypercall to map a machine page into host memory
A system and method for providing dynamic I/O virtualization is herein disclosed. According to one embodiment, a device capable of performing hypervisor-agnostic and device-agnostic I/O virtualization includes a host computer interface, memory, I/O devices (GPU, disk, NIC), and efficient communication mechanisms for virtual machines to communicate their intention to perform I/O operations on the device. According to one embodiment, the communication mechanism may use shared memory. According to some embodiments, the device may be implemented purely in hardware, in software, or using a combination of hardware and software. According to some embodiments, the device may share its memory with guest processes to perform optimizations including but not limited to a shared page cache and a shared heap.
G06F 12/00 - Accessing, addressing or allocating within memory systems or architectures
G06F 9/455 - EmulationInterpretationSoftware simulation, e.g. virtualisation or emulation of application or operating system execution engines
G06F 12/0868 - Data transfer between cache memory and other subsystems, e.g. storage devices or host systems
G06F 13/28 - Handling requests for interconnection or transfer for access to input/output bus using burst mode transfer, e.g. direct memory access, cycle steal
G06F 3/06 - Digital input from, or digital output to, record carriers
G06F 12/1081 - Address translation for peripheral access to main memory, e.g. direct memory access [DMA]
G06F 12/0864 - Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches using pseudo-associative means, e.g. set-associative or hashing
G06F 12/084 - Multiuser, multiprocessor or multiprocessing cache systems with a shared cache
A system and method for providing dynamic information virtualization (DIV) is disclosed. According to one embodiment, a device includes a dynamic optimization manager (DOM), a process and memory manager (PMM), a memory, and a host device driver. The device starts virtual functions after booting to allow a virtual machine (VM) running a guest operating system to identify the virtual functions and load virtual drivers of the virtual functions. The PMM allocates a unified cache from the memory to facilitate coherent access to information from storage and network resources by the VM. The host device driver enables a guest process in the VM to access the information stored in the unified cache in a secure and isolated manner.
G06F 12/00 - Accessing, addressing or allocating within memory systems or architectures
G06F 12/0846 - Cache with multiple tag or data arrays being simultaneously accessible
G06F 12/084 - Multiuser, multiprocessor or multiprocessing cache systems with a shared cache
G06F 12/0802 - Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
G06F 21/57 - Certifying or maintaining trusted computer platforms, e.g. secure boots or power-downs, version controls, system software checks, secure updates or assessing vulnerabilities
24.
Dynamic I/O virtualization system having a bidirectional extended hybrid address space (EHAS) for allowing host kernel to access guest memory
A system and method for providing dynamic I/O virtualization is herein disclosed. According to one embodiment, a device capable of performing hypervisor-agnostic and device-agnostic I/O virtualization includes a host computer interface, memory, I/O devices (GPU, disk, NIC), and efficient communication mechanisms for virtual machines to communicate their intention to perform I/O operations on the device. According to one embodiment, the communication mechanism may use shared memory. According to some embodiments, the device may be implemented purely in hardware, in software, or using a combination of hardware and software. According to some embodiments, the device may share its memory with guest processes to perform optimizations including but not limited to a shared page cache and a shared heap.
G06F 3/00 - Input arrangements for transferring data to be processed into a form capable of being handled by the computerOutput arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
G06F 9/455 - EmulationInterpretationSoftware simulation, e.g. virtualisation or emulation of application or operating system execution engines
G06F 13/28 - Handling requests for interconnection or transfer for access to input/output bus using burst mode transfer, e.g. direct memory access, cycle steal
G06F 3/06 - Digital input from, or digital output to, record carriers
G06F 12/1081 - Address translation for peripheral access to main memory, e.g. direct memory access [DMA]
G06F 12/0868 - Data transfer between cache memory and other subsystems, e.g. storage devices or host systems
G06F 12/084 - Multiuser, multiprocessor or multiprocessing cache systems with a shared cache
G06F 12/0864 - Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches using pseudo-associative means, e.g. set-associative or hashing
A system and method for providing dynamic information virtualization (DIV) is disclosed. According to one embodiment, a device includes a dynamic optimization manager (DOM), a process and memory manager (PMM), a memory, and a host device driver. The device starts virtual functions after booting to allow a virtual machine (VM) running a guest operating system to identify the virtual functions and load virtual drivers of the virtual functions. The PMM allocates a unified cache from the memory to facilitate coherent access to information from storage and network resources by the VM. The host device driver enables a guess process in the VM to access the information stored in the unified cache in a secure and isolated manner.
A system and method for providing dynamic information virtualization (DIV) is disclosed. According to one embodiment, a device includes a dynamic optimization manager (DOM), a process and memory manager (PMM), a memory, and a host device driver. The device starts virtual functions after booting to allow a virtual machine (VM) running a guest operating system to identify the virtual functions and load virtual drivers of the virtual functions. The PMM allocates a unified cache from the memory to facilitate coherent access to information from storage and network resources by the VM. The host device driver enables a guess process in the VM to access the information stored in the unified cache in a secure and isolated manner.
G06F 12/00 - Accessing, addressing or allocating within memory systems or architectures
G06F 12/08 - Addressing or allocationRelocation in hierarchically structured memory systems, e.g. virtual memory systems
G06F 12/0846 - Cache with multiple tag or data arrays being simultaneously accessible
G06F 12/084 - Multiuser, multiprocessor or multiprocessing cache systems with a shared cache
G06F 12/0802 - Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
G06F 21/57 - Certifying or maintaining trusted computer platforms, e.g. secure boots or power-downs, version controls, system software checks, secure updates or assessing vulnerabilities
27.
Dynamic single root I/O virtualization (SR-IOV) processes system calls request to devices attached to host
A system and method for providing dynamic I/O virtualization is herein disclosed. According to one embodiment, a device capable of performing hypervisor-agnostic and device-agnostic I/O virtualization includes a host computer interface, memory, I/O devices (GPU, disk, NIC), and efficient communication mechanisms for virtual machines to communicate their intention to perform I/O operations on the device. According to one embodiment, the communication mechanism may use shared memory. According to some embodiments, the device may be implemented purely in hardware, in software, or using a combination of hardware and software. According to some embodiments, the device may share its memory with guest processes to perform optimizations including but not limited to a shared page cache and a shared heap.
G06F 12/00 - Accessing, addressing or allocating within memory systems or architectures
G06F 9/455 - EmulationInterpretationSoftware simulation, e.g. virtualisation or emulation of application or operating system execution engines
G06F 13/28 - Handling requests for interconnection or transfer for access to input/output bus using burst mode transfer, e.g. direct memory access, cycle steal
G06F 3/06 - Digital input from, or digital output to, record carriers
G06F 12/1081 - Address translation for peripheral access to main memory, e.g. direct memory access [DMA]
G06F 12/0868 - Data transfer between cache memory and other subsystems, e.g. storage devices or host systems
G06F 9/44 - Arrangements for executing specific programs
G06F 12/084 - Multiuser, multiprocessor or multiprocessing cache systems with a shared cache
G06F 12/0864 - Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches using pseudo-associative means, e.g. set-associative or hashing
A system and method for providing dynamic I/O virtualization is herein disclosed. According to one embodiment, a device capable of performing hypervisor-agnostic and device -agnostic I/O virtuaiization inciudes a host computer interface, memory, I/O devices (GPU, disk, NIC), and efficient communication mechanisms for virtual machines to communicate their intention to perform I/O operations on the device. According to one embodiment, the communication mechanism may use shared memory. According to some embodiments, the device may be implemented purely in hardware, in software, or using a combination of hardware and software. According to some embodiments, the device may share its memory with guest processes to perform optimizations including but not limited to a shared page cache and a shared heap.
A system and method for providing dynamic device virtualization is herein disclosed. According to one embodiment, the computer-implemented method includes observing a behavior of a native device driver of a device attached to a host computer, dynamically creating a virtual device driver by observing the behavior of the native device driver on a host operating system (OS) of the host computer, and providing the virtual device driver to a guest OS running on a virtualization host.
A system and method for providing dynamic device virtuaiization is herein disclosed. According to one embodiment, the computer-implemented method includes observing a behavior of a native device driver of a device attached to a host computer, dynamically creating a virtual device driver by observing the behavior of the native device driver on a host operating system (OS) of the host computer, and providing the virtual device driver to a guest OS running on a virtuaiization host.
G06F 15/16 - Combinations of two or more digital computers each having at least an arithmetic unit, a program unit and a register, e.g. for a simultaneous processing of several programs
G06F 9/44 - Arrangements for executing specific programs
A system and method for providing dynamic device virtualization is herein disclosed. According to one embodiment, the computer-implemented method includes providing a device virtualization via context switching between a guest user process and a host. The guest user process has an address space comprising at least a guest kernel and a host kernel. The guest user process is capable of making a first direct call into the host via the guest kernel of the address space. The host is capable of making a second direct call to the guest user process.
A system and method for providing dynamic device virtualization is herein disclosed. According to one embodiment, the computer-implemented method includes providing a hypervisor and one or more guest virtual machines (VMs). Each guest VM is disposed to run a guest user process and the hypervisor is split into a device hypervisor and a compute hypervisor. The computer-implemented method further includes providing an interface between the device hypervisor and the compute hypervisor. The compute hypervisor manages an efficient use of CPU and memory of a host and the device hypervisor manages a device connected to the host by exploiting hardware acceleration of the device.
G06F 15/16 - Combinations of two or more digital computers each having at least an arithmetic unit, a program unit and a register, e.g. for a simultaneous processing of several programs
G06F 9/44 - Arrangements for executing specific programs
33.
Making direct calls to a native device driver of a hypervisor using dynamic device driver virtualization
A system and method for providing dynamic device virtualization is herein disclosed. According to one embodiment, the computer-implemented method includes providing a device virtualization via context switching between a guest user process and a host. The guest user process has an address space comprising at least a guest kernel and a host kernel. The guest user process is capable of making a first direct call into the host via the guest kernel of the address space. The host is capable of making a second direct call to the guest user process.
A system and method for providing dynamic device virtualization is herein disclosed. According to one embodiment, the computer-implemented method includes providing a hypervisor and one or more guest virtual machines (VMs). Each guest VM is disposed to run a guest user process and the hypervisor is split into a device hypervisor and a compute hypervisor. The computer-implemented method further includes providing an interface between the device hypervisor and the compute hypervisor. The compute hypervisor manages an efficient use of CPU and memory of a host and the device hypervisor manages a device connected to the host by exploiting hardware acceleration of the device.