Conflict detection circuit for resolving access conflict to peripheral device by multiple virtual machines
First Claim
1. A processing device, comprising:
- a first processor core supporting a first virtual machine;
a second processor core supporting a second virtual machine;
a hypervisor capable of communicating with the first and second virtual machines;
a peripheral device shareable between the first and second virtual machines through an interface of the peripheral device, the interface comprising a set of registers; and
a conflict detection circuit capable of communicating with the hypervisor and the first and second virtual machines,wherein the conflict detection circuit is arranged to support a first and a second virtual image of the set of registers, each virtual image containing a set of register images each mapped to corresponding ones of the set of registers, wherein the first virtual image is associated with the first virtual machine and the second virtual image is associated with the second virtual machine,wherein the conflict detection circuit is arranged to handle an access request to the peripheral device before the hypervisor by;
detecting an access conflict caused by a current write request by the second virtual machine to access a register of the peripheral device via the corresponding register image of the second virtual image, wherein the register was previously being accessed by the first virtual machine; and
referring the access conflict in response to detection thereof to the hypervisor for resolving the access conflict, wherein the hypervisor is bypassed in the absence of the access conflict;
wherein, the hypervisor is configured to merge data of the current write request with data previously stored by the first virtual machine, and to write the merged data to the peripheral device.
15 Assignments
0 Petitions
Accused Products
Abstract
A system-on-chip device comprises a core supporting a first virtual machine image and a virtual machine monitoring unit capable of communicating with the first virtual machine image. A shareable resource is also provided as well as a conflict detection unit capable of communicating with the virtual machine monitoring unit and the first virtual machine image. The conflict detection unit is arranged to detect, when in use, an access conflict caused by more than one virtual machine image attempting to access initially the shareable resource. The conflict detection unit is arranged to refer, when in use, the access conflict in response to detection thereof to the virtual machine monitoring unit for resolving of the access conflict, thereby handling the access conflict before the virtual machine monitoring unit.
55 Citations
16 Claims
-
1. A processing device, comprising:
-
a first processor core supporting a first virtual machine; a second processor core supporting a second virtual machine; a hypervisor capable of communicating with the first and second virtual machines; a peripheral device shareable between the first and second virtual machines through an interface of the peripheral device, the interface comprising a set of registers; and a conflict detection circuit capable of communicating with the hypervisor and the first and second virtual machines, wherein the conflict detection circuit is arranged to support a first and a second virtual image of the set of registers, each virtual image containing a set of register images each mapped to corresponding ones of the set of registers, wherein the first virtual image is associated with the first virtual machine and the second virtual image is associated with the second virtual machine, wherein the conflict detection circuit is arranged to handle an access request to the peripheral device before the hypervisor by; detecting an access conflict caused by a current write request by the second virtual machine to access a register of the peripheral device via the corresponding register image of the second virtual image, wherein the register was previously being accessed by the first virtual machine; and referring the access conflict in response to detection thereof to the hypervisor for resolving the access conflict, wherein the hypervisor is bypassed in the absence of the access conflict; wherein, the hypervisor is configured to merge data of the current write request with data previously stored by the first virtual machine, and to write the merged data to the peripheral device. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13)
-
-
14. A method of peripheral access for a plurality of virtual machines, the method comprising:
-
supporting a first virtual machine on a first processor core; supporting a second virtual machine on a second processor core; supporting a hypervisor capable of communicating with the first and second virtual machines; supporting a peripheral device shareable between the first and second virtual machines through an interface of the peripheral device, the interface comprising a set of registers; supporting a conflict detection circuit capable of communicating with the hypervisor and the first and second virtual machines, wherein the conflict detection circuit is arranged to support a first and a second virtual image of the set of registers, each virtual image containing a set of register images each mapped to corresponding ones of the set of registers, wherein the first virtual image is associated with the first virtual machine and the second virtual image is associated with the second virtual machine, wherein the conflict detection circuit is arranged to handle an access request to the peripheral device before the hypervisor by; detecting an access conflict caused by a current write request by the second virtual machine to access a register of the peripheral device via the corresponding register image of the second virtual image, wherein the register was previously being accessed by the first virtual machine; and referring the access conflict in response to detection thereof to the hypervisor for resolving the access conflict, wherein the hypervisor is bypassed in the absence of the access conflict; wherein, the hypervisor is configured to merge data of the current write request with data previously stored by the first virtual machine, and to write the merged data to the peripheral device. - View Dependent Claims (15)
-
-
16. A non-transitory computer program product for running on a programmable apparatus, at least including code portions for performing steps of a method when run on a programmable apparatus, the method comprising:
-
supporting a first virtual machine on a first processor core; supporting a second virtual machine on a second processor core; supporting a hypervisor capable of communicating with the first and second virtual machines; supporting a peripheral device shareable between the first and second virtual machines through an interface of the peripheral device, the interface comprising a set of registers; supporting a conflict detection circuit capable of communicating with the hypervisor and the first and second virtual machines, wherein the conflict detection circuit is arranged to support a first and a second virtual image of the set of registers, each virtual image containing a set of register images each mapped to corresponding ones of the set of registers, wherein the first virtual image is associated with the first virtual machine and the second virtual image is associated with the second virtual machine, wherein the conflict detection circuit is arranged to handle an access request to the peripheral device before the hypervisor by; detecting an access conflict caused by a current write request by the second virtual machine to access a register of the peripheral device via the corresponding register image of the second virtual image, wherein the register was previously being accessed by the first virtual machine; and referring the access conflict in response to detection thereof to the hypervisor for resolving the access conflict, wherein the hypervisor is bypassed in the absence of the access conflict; wherein, the hypervisor is configured to merge data of the current write request with data previously stored by the first virtual machine, and to write the merged data to the peripheral device.
-
Specification