IO Virtualization on ARM Platforms

Duration: 4 days

Course Image

PC Virtualization eLearning Course

Overview

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).

 

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

What 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 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

Training Materials

  • PDF of course slides

Prerequisites

PCI Express architecture background as well as general understanding of PC architecture is recommended.

Related Courses

Course NamePDFClassroomVirtual ClassroomeLearning
IO Virtualization for ARM Platforms4 days8 half-days
PC Virtualization4 days8 half-days Show Me

IO Virtualization for ARM Platforms

Class: 4 days

Virtual Classroom: 8 half-days

ELEARNING:

PC Virtualization

Class: 4 days

Virtual Classroom: 8 half-days

ELEARNING: Show Me

Related Items

Live Training Courses