×

Hardware virtualized input output memory management unit

  • US 10,642,501 B1
  • Filed: 01/05/2015
  • Issued: 05/05/2020
  • Est. Priority Date: 01/10/2014
  • Status: Active Grant
First Claim
Patent Images

1. An apparatus for performing computation, comprising:

  • a physical processor element capable of being configured to execute a hypervisor that hosts one or more guest Operating Systems (OS) by presenting a respective virtualized machine interface to each hosted guest OS;

    a physical memory;

    an Input/Output (I/O) device; and

    an I/O Memory Management Unit (IOMMU) coupled to the physical processor element, the IOMMU configured to;

    receive from the hypervisor a direct mapping between a guest address for a hosted guest OS, and an address in the physical memory,store the mapping in a Translation Lookaside Buffer (TLB) maintained within the IOMMU,store a mapping in a device table between a guest identifier for the guest OS and an identifier for the I/O device,receive from the I/O device a request to access the physical memory, the request specifying an identifier for the I/O device, and responsive to receiving the request, to lookup the specified I/O device identifier in the device table, wherein the device table is modified by a corresponding entry in a device remap table,if the device table, as modified by the corresponding entry in the device remap table, comprises a matching entry, then to obtain a guest identifier from the matching entry, and use that obtained guest identifier and a device address provided with the request to index the TLB to determine an address in the physical memory that corresponds to the device address, andinitiate fulfillment of the I/O device request.

View all claims
  • 8 Assignments
Timeline View
Assignment View
    ×
    ×