Sharing a physical device among multiple clients
OwnerMichael Goldsmithinventor
Life of this patent
Estimating the term…
Abstract
A physical device has core function circuitry that is to perform a core I/O function of a computer system. Multiple client interface circuits are provided, each of which presents itself as a complete device to a software client in the system, to access the core function circuitry. Multiplexing circuitry couples the client interfaces to the core I/O functionality. Other embodiments are also described and claimed.
Claims35
A physical device comprising:
- core function circuitry that is to perform a core function of a computer system;
- a plurality of client interface circuits each of which presents itself as a complete device to a software client in the system to access the core function circuitry;
- and
- multiplexing circuitry that couples the plurality of client interface circuits to the core function circuitry.
An I/O device comprising:
- core I/O function circuitry to perform a core I/O function of a computer system;
- and
- a plurality of client interface circuits any one of which can be used by a virtual machine (VM) in the system to access the core I/O function circuitry to invoke the same core I/O function.
A computer system with virtual machine capability, comprising:
- a processor;
- a memory having a virtual machine monitor (VMM) stored therein, wherein the VMM is to be accessed by the processor to manage a plurality of virtual machines (VMs) in the system for running a plurality of client programs, respectively;
- and
- an I/O device having a plurality of interfaces in hardware where each interface presents itself as a separate I/O device to a respective one of the plurality of client programs that will be running within the plurality of VMs.
A virtualization apparatus comprising:
- means for performing a core I/O function of a computer system;
- means for presenting a plurality of complete interfaces to a plurality of virtual machine (VM) clients for accessing the core I/O function, wherein each interface is complete in that it can be accessed as a separate I/O device by the same device driver;
- and
- means for passing messages between the core I/O function performance means and the complete interface presentation means.
A method for sharing an I/O device, comprising:
- performing a plug and play discovery process in a computer system;
- and
- detecting by said process that a plurality of I/O devices are present in the system, when in actuality the detected I/O devices are due to a single physical I/O device being connected to the system and in which its core I/O functionality is shared by a plurality of hardware client interfaces in the physical I/O device.
An article of manufacture having a machine-readable medium with data stored therein that, when accessed by a processor in a computer system, writes to and reads from a control interface of a physical device in the system to control access to the same core functionality of the device by a plurality of client interfaces in hardware each of which presents itself as a complete device to a device driver program in the system.
A mutliprocessor computer system with virtual machine capability, comprising:
- a plurality of processors;
- a memory having a virtual machine monitor (VMM) stored therein, wherein the VMM is to be run by one of the processors to manage a plurality of virtual machines (VMs) in the system for running a plurality of client programs, respectively;
- and
- an I/O device having core functionality and a plurality of interfaces in hardware each of which presents itself as a separate I/O device to a respective one of the plurality of client programs that will be running within the plurality of VMs, wherein the plurality of VMs can simultanously access the core functionality of the I/O device via the plurality of interfaces without being aware of each other and without the VMM having to arbitrate between the plurality of VMs.
Dependencies are inferred from the claim text.