Chapter 9: Virtualization & ATS

SR-IOV, MR-IOV, Address Translation Services

Virtualization Overview

PCIe provides extensive virtualization support for cloud and enterprise environments:

Key Virtualization Technologies

  • SR-IOV: Single Root I/O Virtualization
  • MR-IOV: Multi-Root I/O Virtualization
  • ATS: Address Translation Services
  • ARI: Alternative Routing-ID Interpretation

Single Root I/O Virtualization (SR-IOV)

SR-IOV allows a single physical device to present multiple virtual instances to the system:

Physical Function (PF) VF 0 VF 1 VF 2 VF N VM 1 VM 2 VM 3 VM N

Key Concepts

FeaturePhysical FunctionVirtual Function
ConfigurationFull Type 0Limited
BARs6 BARsUp to 6 VF BARs
InterruptsINTx, MSI, MSI-XMSI-X only
ControlFull device controlData path only
Direct VM AssignmentHypervisorYes

Multi-Root I/O Virtualization (MR-IOV)

MR-IOV extends SR-IOV for multi-host sharing (e.g., blade servers):

Alternative Routing-ID Interpretation (ARI)

ARI extends function numbering beyond 8 functions per device:

Address Translation Services (ATS)

ATS enables devices to cache address translations from IOMMU:

ATS Flow

  1. Device sends Translation Request to Root Complex
  2. Root Complex queries IOMMU for translation
  3. Translation Completion returned to device
  4. Device caches translation in ATC (Address Translation Cache)
  5. Future DMAs use translated addresses directly

Benefits

Page Request Interface (PRI)

PRI allows devices to request pages that are not present in memory:

Process Address Space ID (PASID)

PASID enables devices to access multiple process address spaces: