Sharing a physical device among multiple clients
First Claim
Patent Images
1. 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.
1 Assignment
0 Petitions
Accused Products
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.
103 Citations
35 Claims
-
1. 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. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14)
-
-
15. 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. - View Dependent Claims (16, 17, 18)
-
-
19. 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. - View Dependent Claims (20, 21)
-
-
22. 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. - View Dependent Claims (23, 24)
-
-
25. 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. - View Dependent Claims (26, 27, 28)
-
- 29. 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.
-
35. 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.
-
Specification