High-speed packet transfer in computer systems with multiple interfaces
AssigneeVMware, Inc.
InventorsMatthew Ecoleston, Bich Cau Le
Life of this patent
Estimating the term…
Loading patent…
AssigneeVMware, Inc.
InventorsMatthew Ecoleston, Bich Cau Le
Estimating the term…
An initiating subsystem transfers a data set either in or out in subsets such as packets. Packet transfer is sequential, and transfer of a packet is contingent upon successful transfer of a previous packet. Actual data transfer to or from a destination, over a channel, is handled by a host interface. When an intermediate subsystem, included as an interface between the initiating subsystem and host interface, senses that the initiating subsystem wants to transfer data, it receives a first packet from the initiating system. While continuing to indicate to the initiating system that transfer of the first packet is still pending, thereby causing the initiating system to suspend further packet submission, the intermediate subsystem sends to the host interface information concerning the entire data set to be transferred. When the entire data set is transferred, the intermediate subsystem emulates successful packet-wise transfer to the initiating subsystem. In the preferred embodiment of the invention, the initiating subsystem is a virtual machine, the intermediate subsystem is a virtual machine monitor, and the packets are created according to the USB protocol. Mechanisms are included to detect and correct potential data incoherency that might arise while packet transfer from the initiating subsystem is suspended.
A method for transferring a data set between a transfer-initiating subsystem and a target via an intermediate subsystem, a transfer-executing subsystem, and a channel, where:
A method for transferring a data set between a virtual machine and a target via a virtual machine monitor, a host interface, and a channel, where:
A method for transferring a data set from a transfer-initiating subsystem to a target via an intermediate subsystem, a transfer-executing subsystem, and a channel, where:
A system for transferring a data set between a transfer-initiating subsystem and a target via a transfer-executing subsystem and over a channel, where:
Dependencies are inferred from the claim text.