ASID Virtualization for Scalable I/O Device Address Translation

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

In scalable virtualization of input/output devices, conflicts arise between guest address space identifiers (ASIDs) of different virtual machines due to the physical IOMMU's limitation in handling multiple ASIDs, leading to address translation issues and performance bottlenecks.

Innovation Solution

The implementation of ASID virtualization, where the virtual machine monitor (VMM) translates guest ASIDs to unique host ASIDs, managing these translations through a translation controller and tables to ensure each I/O device uses host ASIDs for DMA requests, resolving conflicts and enabling efficient address space management.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Adaptability or versatility

If the physical IOMMU handles multiple guest ASIDs directly, then address translation for multiple virtual machines can be performed, but conflicts arise between guest ASIDs of different virtual machines leading to address translation issues

Engineering Contradiction:
Improveability to handle multiple virtual machinesVSAvoidaddress translation correctness
Core Design Contradiction:
Adaptability or versatilityVSReliability

Solution Approach 1:

The patent introduces a virtualization layer (VMM/hypervisor) as an intermediary between guest ASIDs and the physical IOMMU. This virtualization layer maintains ASID translation tables that map guest ASIDs to host ASIDs, ensuring that conflicts between guest ASIDs of different virtual machines are resolved before reaching the physical IOMMU. The intermediary translates and manages ASID mappings, preventing address translation conflicts while maintaining support for multiple virtual machines.

Inventive Principle:
Principle #24Intermediary (Mediator)

2Device complexity

If guest ASIDs are used directly without virtualization, then address space management is simple, but performance bottlenecks occur due to the physical IOMMU's limitation in handling multiple ASIDs

Engineering Contradiction:
Improveaddress space management simplicityVSAvoidI/O processing throughput
Core Design Contradiction:
Device complexityVSProductivity

Solution Approach 1:

The patent segments the address space management into two distinct layers: guest ASID management at the virtual machine level and host ASID management at the physical IOMMU level. The virtualization layer maintains separate ASID translation tables for each virtual machine, allowing independent address space management while enabling the physical IOMMU to handle multiple ASIDs efficiently through host-level abstraction. This segmentation eliminates performance bottlenecks by distributing management responsibilities across layers.

Inventive Principle:
Principle #1Segmentation

3Reliability

If ASID virtualization is implemented through translation tables, then conflicts between virtual machines are avoided, but the system complexity increases due to the translation controller and tables

Engineering Contradiction:
Improveaddress translation correctnessVSAvoidtranslation management structure
Core Design Contradiction:
ReliabilityVSDevice complexity

Solution Approach 1:

The patent implements a universal ASID translation mechanism that serves multiple virtual machines through a common virtualization layer. The translation controller and ASID translation tables are designed to handle address space translations for any number of virtual machines using a standardized approach. This universal structure manages complexity by providing a single, multi-functional translation system rather than separate translation mechanisms for each virtual machine, thereby maintaining reliability while controlling system complexity.

Inventive Principle:
Principle #6Universality (Multi-functionality)

Data Source

PatentUS11656899B2Virtualization of process address space identifiers for scalable virtualization of input/output devices
Publication Date: 2023.05.23 INTEL CORP
  • US11656899B2 patent drawing
  • US11656899B2 patent drawing
  • US11656899B2 patent drawing

AI summary

Implementations of the disclosure provide a processing device comprising an address translation circuit to intercept a work request from an I/O device. The work request comprises a first ASID to map to a work queue. A second ASID of a host is allocated for the first ASID based on the work queue. The second ASID is allocated to at least one of: an ASID register for a dedicated work queue (DWQ) or an ASID translation table for a shared work queue (SWQ). Responsive to receiving a work submission from the SVM client to the I/O device, the first ASID of the application container is translated to the second ASID of the host machine for submission to the I/O device using at least one of: the ASID register for the DWQ or the ASID translation table for the SWQ based on the work queue associated with the I/O device.