Method and apparatus for communications between a virtualized host and remote devices
First Claim
1. A method of communicating between a plurality of virtual machines on a host computer and a plurality of remotely located devices connected to a plurality of remote computers, the method comprising:
- establishing, by a connection manager, communications between a host bridging module, of the host computer, comprised of hardware circuits, and a first one of the plurality of remote computers, the first one of the plurality of remote computers comprising a Universal Serial Bus (USB) device interface and a High Definition (HD) audio interface;
associating, by the connection manager, the first one of the plurality of remote computers with a first one of the plurality of virtual machines, the plurality of virtual machines hosted on a Central Processor Unit (CPU) sub-system that is physically separate from the host bridging module;
presenting, by the host bridging module, via a physical Peripheral Component Interconnect (PCI)-Express connection, to the first one of the plurality of virtual machines, in forms recognizable by native bus drivers of an operating system of the first one of the plurality of virtual machines as forms in which hardware interface functions are presented by local interface controller hardware that controls local device interfaces, a USB bus controller interface in operative control, via the communications, with the USB device interface and an HD audio bus controller interface in operative control, via the communications, with the HD audio device interface;
executing, by the first one of the plurality of virtual machines, a command in response to an event presented by the USB bus controller interface function, the event associated with the USB device interface, the executing the command generating data;
sending, via the HD audio bus controller interface and the communications, the data to the first one of the plurality of remote computers, the data usable by the HD audio device interface; and
determining that a second one of the plurality of remote computers requires a set of interface functions and repeating the establishing, the associating, the presenting, the executing, and the sending between a second one of the plurality of virtual machines and the second one of the plurality of remote computers.
6 Assignments
0 Petitions
Accused Products
Abstract
Communicating between virtual machines on a host computer and remotely located devices connected to device interfaces of remote computers is disclosed. The method comprises establishing communication between the host computer and at least one remote computer in operative control of at least a first device interface and a second device interface; determining that the device interfaces belong to a set of supported device interfaces; associating the at least one remote computer with at least one virtual machine; presenting to the virtual machine, in forms recognizable by the virtual machine as forms in which interface functions are presented by local controllers, interface functions associated with the first device interface and the second device interface; executing commands in response to the interface functions associated with the device interfaces; and sending to the remote computer commands and/or data related to the presented interface and usable by the device interfaces.
90 Citations
19 Claims
-
1. A method of communicating between a plurality of virtual machines on a host computer and a plurality of remotely located devices connected to a plurality of remote computers, the method comprising:
-
establishing, by a connection manager, communications between a host bridging module, of the host computer, comprised of hardware circuits, and a first one of the plurality of remote computers, the first one of the plurality of remote computers comprising a Universal Serial Bus (USB) device interface and a High Definition (HD) audio interface; associating, by the connection manager, the first one of the plurality of remote computers with a first one of the plurality of virtual machines, the plurality of virtual machines hosted on a Central Processor Unit (CPU) sub-system that is physically separate from the host bridging module; presenting, by the host bridging module, via a physical Peripheral Component Interconnect (PCI)-Express connection, to the first one of the plurality of virtual machines, in forms recognizable by native bus drivers of an operating system of the first one of the plurality of virtual machines as forms in which hardware interface functions are presented by local interface controller hardware that controls local device interfaces, a USB bus controller interface in operative control, via the communications, with the USB device interface and an HD audio bus controller interface in operative control, via the communications, with the HD audio device interface; executing, by the first one of the plurality of virtual machines, a command in response to an event presented by the USB bus controller interface function, the event associated with the USB device interface, the executing the command generating data; sending, via the HD audio bus controller interface and the communications, the data to the first one of the plurality of remote computers, the data usable by the HD audio device interface; and determining that a second one of the plurality of remote computers requires a set of interface functions and repeating the establishing, the associating, the presenting, the executing, and the sending between a second one of the plurality of virtual machines and the second one of the plurality of remote computers. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13)
-
-
14. A computer readable memory, containing computer instructions which, when executed by a first processor of a host computer, manage communication between a plurality of virtual machines on a second processor of the host computer and a plurality of remotely located devices connected to a plurality of remote computers, by:
-
establishing, by the first processor, communications between the host computer and one of the plurality of remote computers, the one of the plurality of remote computers comprising a Universal Serial Bus (USB) device interface and a High Definition (HD) Audio device interface; associating, by the first processor, the one of the plurality of remote computers with a one of the plurality of virtual machines; presenting, by the first processor, via a physical Peripheral Component Interconnect (PCI)-Express connection, to the one of the plurality of virtual machine, in forms recognizable by native bus drivers of an operating system of the one of the plurality of virtual machines as forms in which hardware interface functions are presented by local interface controller hardware that control local device interfaces, a USB bus controller interface in operative control, via the communications, of the first device interface type and an HD Audio bus controller interface function associated with the second device interface; executing, by the one of the plurality of virtual machines, a command in response to an event presented by the USB device controller interface, the event associated with the USB device interface, the executing the command generating data; and sending, via the HD audio bus controller interface and the communications, the data to the one of the plurality of remote computers, the data usable by the HD Audio device interface; and determining that a second one of the plurality of remote computers requires a set of interface functions and repeating the establishing, the associating, the presenting, the executing, and the sending between a second one of the plurality of virtual machines and the second one of the plurality of remote computers.
-
-
15. An apparatus for communicating between a plurality of virtual machines on a host computer and a plurality of remotely located device interfaces, the apparatus comprising:
-
a Central Processing Unit (CPU) sub-system that hosts the plurality of virtual machines; a physical Peripheral Component Interconnect (PCI)-Express connection; a host bridging module comprised of hardware circuits that is independent of the CPU sub-system, the host bridging module physically coupled to the CPU sub-system by the physical PCI-Express connection, the host bridging module comprised of hardware circuits comprising a plurality of interface functions presented to the CPU sub-system, via the physical PCI-Express connection, as a plurality of PCI-based peripheral bus controllers, the plurality of interface functions enabled to communicate, commands and data, with the plurality of remotely located device interfaces in a one-to-one relationship, each of the plurality of interface functions individually presented, as equivalent to a local bus controller for local ones of the plurality of remotely located device interfaces, to a bus driver of ones of the plurality of virtual machines; and a network interface, the network interface operatively coupling, via a computer network, the host bridging module and a plurality of remote computers, the plurality of remote computers comprising the plurality of remotely located device interfaces. - View Dependent Claims (16, 17, 18, 19)
-
Specification