Virtualizing an IOMMU
AssigneeGlobalfoundries Inc.
InventorsMark D. Hummel, Andrew W. Lueck, Geoffrey S. Strongin, Mitchell Alsup, Michael Haertel
Life of this patent
Estimating the term…
Abstract
In one embodiment, a system comprises one or more input/output (I/O) devices; an I/O memory management unit (IOMMU) coupled to receive memory requests sourced by the I/O devices and configured to provide address translation for the memory requests; and a virtual machine monitor (VMM) configured to manage one or more virtual machines on the system, wherein the VMM is configured to virtualize the IOMMU, providing one or more virtual IOMMUs for use by one or more virtual machines.
Claims19
A system comprising:
- one or more input/output (I/O) devices;
- an I/O memory management unit (IOMMU) coupled to receive memory requests sourced by the I/O devices and configured to provide address translation for the memory requests;
- and
- a virtual machine monitor (VMM) configured to manage one or more virtual machines on the system, wherein the VMM is configured to virtualize the IOMMU, providing one or more virgital IOMMUs for use by one or more virtual machines.
An input/output (I/O) memory management unit (IOMMU) comprising:
- control logic configured to implement address translation for I/O device-initiated memory requests;
- and
- memory coupled to the control logic and configured to store translation data for performing the translations, the translation data corresponding to one or more I/O translation tables stored in a main memory system of a computer system including the IOMMU;
- wherein the control logic, in response to a read request for a capabilities block, is configured to return data defined in the capabilities block for the IOMMU, and wherein the capabilities block includes an indication of whether or not the IOMMU is configured to cache not-present translation table entries, and wherein the indication is useable to virtualize the IOMMU by changing, in a virtual machine monitor, the indication as returned by the control logic to a state indicating that the IOMMU does cache not-present translation table entries.
A method comprising:
- managing one or more virtual machines on a system that includes one or more input/output (I/O) devices and an I/O memory management unit (IOMMU) configured to provide address translation for memory requests issued by the I/O devices;
- and
- virtualizing the IOMMU, providing one or more virtual IOMMUs for use by one or more virtual machines.
Dependencies are inferred from the claim text.