IO Virtualization on ARM Platforms


Let MindShare Bring IO Virtualization on ARM Platforms to Life for You

Virtualization is one of the hot, exciting areas in the industry today, generating significant revenue, and solving critical problems in data centers and in embedded and mobile markets. However, software virtualization techniques add too much overhead to allow virtualization to be used for some applications. This class will look at those problem applications and the hardware solutions architected by ARM as well as support in standards like PCI Express (PCIe). The course focuses on ARM SoCs that have hardware support for DMA remapping (System MMU - SMMU) and virtual interrupts (GICv3 and GICv4). The course also discusses details of Address Translation Services (ATS), Access Control Services (ACS) and Single-Root IOV (SRIOV) implementations (though not multi-root IOV MRIOV).

MindShare Courses On IO Virtualization:

Course Name

Virtual Classroom

IO Virtualization on ARM Platforms 
3 days

3 days
Notify Me When Available 

All of MindShare's classroom and virtual classroom courses can be customized to fit the needs of your group.

IO Virtualization on ARM Platforms Course Info

You Will Learn:

  • What virtualization is, and the revenue generating uses for virtualization
  • The major sources of overhead with software-only virtualization techniques
  • How I/O virtualization will use the new hardware assists, to solve these problems
  • ARM SMMU and ARM GICv3/v4
  • DMA remapping (Intermediate Physical to Host Physical as well as Shared Virtual Memory)
  • PCIe Address Translation Services (ATS)
  • PCIe Access Control Services (ACS)
  • Single-Root IOV (SRIOV)
  • Process Address Space IDs (PASIDs)

Course Length: 3 Days

Who Should Attend?

This class targets hardware and software engineers who desire to understand the full picture of how the new IOV hardware is to be used, and the software needed to drive that hardware.

Course Outline:

  • Introduction to Virtualization
    • What is virtualization
    • Why is it important
    • Software Techniques
    • Performance Issues
    • PCI Pass-through (DirectPath I/O)
  • PCIe Address Translation Services (ATS)
    • What it is and how it helps
      • Performance benefits
    • ATS Protocol
      • Changes to PCIe packets
    • Address Translation Caches (ATCs)
  • PCIe Access Control Services (ACS)
    • What it is and why it's needed
  • PCIe Single-Root IO Virtualization (SRIOV)
    • What it is and how it helps
    • Functions vs. Physical Functions (PFs) vs. Virtual Functions (VFs)
    • SRIOV Capability Structure (including VF BARs)
    • Config space of VFs
    • PCIe Alternative Routing ID (ARI)
  • ARM SMMU: DMA Remapping
    • What it is and how it helps
      • Performance benefits
      • Security benefits
    • Virtual Address (VA) vs. Intermediate Physical Address (IPA) vs. Physical Addresses (PA)
    • SMMU functionality and data structures
    • Latency issues
  • Shared Virtual Memory
    • What it is and how it helps
    • PCIe Process Space IDs (PASIDs)
    • ARM SMMU support of PASIDs
  • ARM GICv3 / v4: Interrupt Remapping
    • What it is and why it's needed
      • Big security issue
      • Virtualization performance improvements
    • MSI / MSI-X review (interrupt delivery)
    • Shared Peripheral Interrupts (SPIs) vs Locality-specific Peripheral Interrupts (LPIs)
    • Interrupt Translation Service (ITS)
      • Virtual interrupts

Recommended Prerequisites:
PCI Express architecture background as well as general understanding of PC architecture.

Supplied Materials:
1) Downloadable PDF version of the presentation slides.
2) Optional: MindShare Arbor software tool, used for student labs in the class.