High-performance input-output devices supporting scalable virtualization

US11656916B2 · US · B2

Patent metadata
FieldValue
Publication numberUS-11656916-B2
Application numberUS-202117361932-A
CountryUS
Kind codeB2
Filing dateJun 29, 2021
Priority dateMay 2, 2017
Publication dateMay 23, 2023
Grant dateMay 23, 2023

How to read this patent

A practical reading order for non-experts. Skip the full description unless you need deep technical detail.

  1. Title

    What the patent document calls the invention.

  2. Abstract

    A short plain-language summary of the technical disclosure.

  3. Assignees and inventors

    Who owns or filed the patent and who is credited as inventor.

  4. Key dates

    Filing, priority, publication, and grant dates set the timeline.

  5. First independent claim

    The legal scope of protection — read this for what is actually claimed.

  6. CPC / IPC classifications

    Technology tags used to group this patent with similar filings.

  7. Citations and related patents

    Prior art links and similar publications in this corpus.

Abstract

Official abstract text for this publication.

Techniques for scalable virtualization of an Input/Output (I/O) device are described. An electronic device composes a virtual device comprising one or more assignable interface (AI) instances of a plurality of AI instances of a hosting function exposed by the I/O device. The electronic device emulates device resources of the I/O device via the virtual device. The electronic device intercepts a request from the guest pertaining to the virtual device, and determines whether the request from the guest is a fast-path operation to be passed directly to one of the one or more AI instances of the I/O device or a slow-path operation that is to be at least partially serviced via software executed by the electronic device. For a slow-path operation, the electronic device services the request at least partially via the software executed by the electronic device.

First claim

Opening claim text (preview).

The invention claimed is: 1. An apparatus comprising: a plurality of backend resources; and one or more physical function base address registers (PF-BARs) to store one or more base addresses of one or more address ranges to be mapped to a plurality of memory-mapped input/output (MMIO) registers, including a first MMIO register to be accessed for a direct-path operation and a second MMIO register to be accessed for an intercepted-path operation; wherein hardware is to provide guest physical address to host physical address translation for the first MMIO register but not for the second MMIO register; access for the direct-path operation is to be mapped by a virtual machine monitor (VMM) to an interface for a virtual device, the interface to be composed of one or more of the plurality of backend resources and to be identified by a process address-space identifier (PASID); and access for the intercepted-path operation is to be intercepted by the VMM for emulation. 2. The apparatus of claim 1 , wherein the one or more PF-BARs includes a plurality of variable size PF-BARs. 3. The apparatus of claim 1 , wherein the one or more PF-BARs includes a plurality of non-contiguous PF-BARs. 4. The apparatus of claim 1 , wherein the one or more PF-BARs include at least one Peripheral Component Interconnect Express (PCIe) base address register. 5. The apparatus of claim 1 , wherein the access for the intercepted-path operation is to be intercepted by the VMM for emulation of a configuration space of the virtual device. 6. The apparatus of claim 1 , wherein the plurality of backend resources includes at least one of a transmission/reception (Tx/Rx) queue, a command queue, a Field Programmable Gate Array (FPGA) context, a set of one or more processing units, a Graphics Processing Unit (GPU) context, and a general-purpose computing on graphics processing unit (GPGPU) context. 7. A method comprising: storing, in one or more physical function base address registers (PF-BARs), one or more base addresses of one or more address ranges to be mapped to a plurality of memory-mapped input/output (MMIO) registers, including a first MMIO register to be accessed for a direct-path operation and a second MMIO register to be accessed for an intercepted-path operation; performing, by hardware, guest physical address to host physical address translation for the first MMIO register but not for the second MMIO register; mapping, by a virtual machine monitor (VMM), access for the direct-path operation to an interface for a virtual device, the interface to be composed of one or more of a plurality of backend resources and to be identified by a process address-space identifier (PASID); and intercepting, by the VMM, access for the intercepted-path operation for emulation. 8. The method of claim 7 , wherein the one or more PF-BARs includes a plurality of variable size PF-BARs. 9. The method of claim 7 , wherein the one or more PF-BARs includes a plurality of non-contiguous PF-BARs. 10. The method of claim 7 , wherein the one or more PF-BARs include at least one Peripheral Component Interconnect Express (PCIe) base address register. 11. The method of claim 7 , wherein the access for the intercepted-path operation is to be intercepted by the VMM for emulation of a configuration space of the virtual device. 12. The method of claim 7 , wherein the plurality of backend resources includes at least one of a transmission/reception (Tx/Rx) queue, a command queue, a Field Programmable Gate Array (FPGA) context, a set of one or more processing units, a Graphics Processing Unit (GPU) context, and a general-purpose computing on graphics processing unit (GPGPU) context. 13. A non-transitory machine-readable medium storing instructions, which when executed by a machine, cause the machine to perform a method comprising: storing, in one or more physical function base address registers (PF-BARs), one or more base addresses of one or more address ranges to be mapped to a plurality of memory-mapped input/output (MMIO) registers, including a first MMIO register to be accessed for a direct-path operation and a second MMIO register to be accessed for an intercepted-path operation; performing, by hardware, guest physical address to host physical address translation for the first MMIO register but not for the second MMIO register; mapping, by a virtual machine monitor (VMM), access for the direct-path operation to an interface for a virtual device, the interface to be composed of one or more of a plurality of backend resources and to be identified by a process address-space identifier (PASID); and intercepting, by the VMM, access for the intercepted-path operation for emulation. 14. The non-transitory machine-readable medium of claim 13 , wherein the one or more PF-BARs includes a plurality of variable size PF-BARs. 15. The non-transitory machine-readable medium of claim 13 , wherein the one or more PF-BARs includes a plurality of non-contiguous PF-BARs. 16. The non-transitory machine-readable medium of claim 13 , wherein the one or more PF-BARs include at least one Peripheral Component Interconnect Express (PCIe) base address register. 17. The non-transitory machine-readable medium of claim 13 , wherein the access for the intercepted-path operation is to be intercepted by the VMM for emulation of a configuration space of the virtual device. 18. The non-transitory machine-readable medium of claim 13 , wherein the plurality of backend resources includes at least one of a transmission/reception (Tx/Rx) queue, a command queue, a Field Programmable Gate Array (FPGA) context, a set of one or more processing units, a Graphics Processing Unit (GPU) context, and a general-purpose computing on graphics processing unit (GPGPU) context.

Assignees

Inventors

Classifications

  • H04L51/226Primary

    Delivery according to priorities · CPC title

  • Hierarchically arranged intermediate devices, e.g. for hierarchical caching · CPC title

  • G06F9/5077Primary

    Logical partitioning of resources; Management or configuration of virtualized resources (specific details on emulation or internal functioning of virtual machines G06F9/455) · CPC title

  • by interrupt, e.g. masked · CPC title

  • using proxies for addressing · CPC title

Patent family

Related publications grouped by family.

External sources

Frequently asked questions

Answers are generated from the same data shown on this page.

What does patent US11656916B2 cover?
Techniques for scalable virtualization of an Input/Output (I/O) device are described. An electronic device composes a virtual device comprising one or more assignable interface (AI) instances of a plurality of AI instances of a hosting function exposed by the I/O device. The electronic device emulates device resources of the I/O device via the virtual device. The electronic device intercepts a …
Who is the assignee on this patent?
Intel Corp
What technology area does this patent fall under?
Primary CPC classification H04L51/226. Mapped technology areas include Electricity.
When was this patent published?
Publication date Tue May 23 2023 00:00:00 GMT+0000 (Coordinated Universal Time) (B2). Legal status and post-grant events are not shown on this page.
What related patents are in patentsdb?
We list 12 related publications on this page (citations in our corpus or others sharing the same primary CPC).