PC Virtualization eLearning Course

View all eLearning Courses

PCI Express Courses
PCIe6 Update eLearning Course
PCIe Security eLearning Course
Comprehensive PCIe 5.0 eLearning Course
Advanced PCIe eLearning Course
Core PCIe eLearning Course
Fundamentals of PCI Express eLearning Course
PIPE 6.0 - PHY Interface for PCI Express and more
CXL Courses
CXL Fundamentals eLearning Course
Comprehensive CXL 2.0 eLearning Course
CXL 3.1 Update eLearning Course
USB Courses
USB4 Architecture eLearning Course
USB Type-C and Power Delivery eLearning Course
USB 3.2 Update
Comprehensive USB 3.1 eLearning Course
xHCI eLearning Course
x86 Architecture Courses
Intel x86 Processor and Platform Architecture eLearning Course
Thunderbolt 3 Fundamentals
x86 Architecture eLearning Course
ARM Courses
Fundamentals of ARM Architecture
ARMv8-M and v8.1-M eLearning Course
ARM 64-bit Architecture (ARM v8-A) eLearning Course
ARM v8-A Registers and Instruction Set eLearning Course
ARM v8-A Memory Management eLearning Course
ARM v8-A Exceptions and Interrupts eLearning Course
Comprehensive ARM Architecture eLearning Course
ARM v7 Registers and Instruction Set eLearning Course
ARM v7 Memory Management eLearning Course
ARM v7 Exceptions and Interrupts eLearning Course
Fundamentals of AMBA eLearning Course
ARM 32-bit Architecture (ARM v7) eLearning Course
ARM v8-A Porting and Software Optimization eLearning Course
ARM v8-A (64-bit) Pipelines eLearning Course
ARM MCU Architecture eLearning Course
ARM Cortex-M7 Processor eLearning Course
Fundamentals of ARMv8-A eLearning Course
Memory Courses
DRAM Class PRE-WORK
DRAM Class Supplementary Material
Modern DRAM (DDR5 / DDR4 / LPDDR5 / LPDDR4) eLearning Course
I3C Architecture eLearning Course
Fundamentals of DRAM
Storage Courses
SAS 3.0 Storage Technology eLearning Course
Advanced Host Controller Interface (AHCI) eLearning Course
NVM Express 1.4 eLearning Course
NVMe-oF eLearning Course
SATA 3.2 Technology eLearning Course
Universal Flash Storage (UFS) eLearning Course
Virtualization Courses
PC Virtualization eLearning Course
IO Virtualization for Intel Platforms eLearning Course
Firmware Courses
UEFI x64 Architecture eLearning Course



PC Virtualization eLearning Course

Instructor(s): Paul Devriendt
Number of Modules: 45
Subscription Length: 90 days

Course Price
$995.00



PC Virtualization

What's Included?

PC Virtualization eLearning modules
(unlimited access for 90 days)
PDF of Course Slides
(yours to keep, does not expire)

Benefits of eLearning:

  • Access to the Instructor - Ask questions to the MindShare Instructor that taught the course
  • Cost Effective - Get the same information delivered in a live MindShare class at a fraction of the cost
  • Available 24/7 - MindShare eLearning courses are available when and where you need them
  • Learn at Your Pace - MindShare eLearning courses are self-paced, so you can proceed when you're ready

Who Should View?

Virtualization is a topic that covers both hardware and software. This course is suitable for hardware engineers who desire to understand the full picture of how the hardware is used, and is suitable for software engineers who desire to understand how to implement the required software.

Course Outline:

  • Chapter 1a: Introduction to Virtualization
    - Covers table of contents, intro to multi-tasking, encapsulation and virtualization, application level virtualization, API virtualization, containers, emulation
  • Chapter 1b: Introduction to Virtualization
    - Machine (server) virtualization, Type 1 vs Type 2 hypervisors, guest vs host, virtual machine definition, partitioning, operating system vs hypervisor
  • Chapter 1c: Introduction to Virtualization
    - Everything seen by guest is fake, multiple guests, monolithic hypervisor vs microkernel, thin hypervisor, why virtualization?, consolidation, migration, virtual storage, virtual desktop
  • Chapter 2a: Processor Virtualization: Trap and Emulate Basics
    - Intro to trap and emulate approach, privileged instructions vs sensitive instructions, x86 register set, x86 operating modes, privilege levels, exceptions
  • Chapter 2b: Processor Virtualization: Trap and Emulate Basics
    - Trap and emulate examples: MMIO, PCI Config space, optimizing trap and emulate
  • Chapter 3a: Processor Virtualization: Software Techniques
    - Ring aliasing, Flags register, paravirtualization
  • Chapter 3b: Processor Virtualization: Software Techniques
    - Binary translation, VMWare and binary translation: Translation Units (TUs), Compiled Code Fragments (CCFs), user-mode exceptions and the VMM (hypervisor), adaptive binary translation, impact on memory (DRAM), processor architecture issues
  • Chapter 4a: Processor Virtualization: Intel VT-x
    - Terminology, new modes of operation (VMX non-root mode and VMX root mode)
  • Chapter 4b: Processor Virtualization: Intel VT-x
    - Enabling VMX root mode, multiple guests and multiple virtual processors, VMXON region, Virtual Machine Control Structure (VMCS)
  • Chapter 4c: Processor Virtualization: Intel VT-x
    - VMCS revision, mode switching and the VMCS, guest state area, VMResume loop and #VE
  • Chapter 4d: Processor Virtualization: Intel VT-x
    - Host state area, VM execution controls (pin based), NMI virtualization, preemption timer, MSR bitmaps, primary processor controls vs secondary processor
  • Chapter 4e: Processor Virtualization: Intel VT-x
    - More execution control fields, APIC virtualization and the VMCS, VM Entry controls, VM Exit controls, VM Exit information, exit reasons, accessing the VMCS (VMRead and VMWrite)
  • Chapter 5a: Processor Virtualization: Multi-Core and SMP Guests
    - VMCSs with multiple guests, multiple cores and multiple virtual processors, SMP in the guest, processor overcommit
  • Chapter 5b: Processor Virtualization: Multi-Core and SMP Guests
    - Hyperthreading and VMWare, Intel-VT detection and enable, MSRs related to VMX behavior
  • Chapter 5c: Processor Virtualization: Multi-Core and SMP Guests
    - Real mode guests, system management mode (SMM), dual monitor SMM, new instructions for Intel VT
  • Chapter 6: Processor Virtualization: Nested Virtualization
    - Defines nested virtualization, terminology, different techniques to accomplish (binary translation, paravirtualization, hardware support, VMCS shadowing)
  • Chapter 7a: Processor Virtualization: Virtualization of Interrupts
    - Brief history of x86 interrupts, priority of vectors, 8259A behavior, APICs introduced, Local APIC, IO APIC, interrupt delivery example
  • Chapter 7b: Processor Virtualization: Virtualization of Interrupts
    - Masking interrupts, interrupt shadows, interrupts to guest or hypervisor, virtual vs physical interrupt, Intel event injection, Intel interruptibility states, Intel activity states, APIC virtualization, virtual APIC registers
  • Chapter 8: Processor Virtualization: Performance Observations and Other Uses
    - Overhead of classical virtualization, Intel VT performance, software vs hardware assists, biggest cause of intercepts, paravirtualization help, application wrapping, application partitioning, hypervisor call (Hypercall), other uses of virtualization
  • Chapter 9: Processor Virtualization: Security Features and Intel TXT
    - Virtualization and security, root of trust, Trusted Platform Module (TPM), LaGrande technology, safer mode extensions, DMA protection
  • Chapter 10a: Memory Virtualization: x86 Memory Addressing Intro
    - x86 memory addressing intro, segmentation (segmented memory model vs flat memory model), basic paging implementation, page directory entry, page table entry
  • Chapter 10b: Memory Virtualization: x86 Memory Addressing Intro
    - On-demand paging example, Page Size Extensions (PSE), 4MB pages, Physical Address Extensions (PAE), 2MB pages, IA32e (Long) mode paging, 4KB, 2MB and 1GB pages
  • Chapter 11: Memory Virtualization: Shadow Paging
    - Block allocation of memory and issues with that approach, shadow paging example, building shadow page tables, maintaining shadow page tables, thrashing the TLBs, optimizations, issues with shadow page table approach
  • Chapter 12: Memory Virtualization: Intel Extended Page Tables (EPTs)
    - Performance impacts of shadow paging, hardware assist for paging, Extended Page Table (EPT) implementation, EPT entries, page modification logging, TLB behavior with EPT, Virtual Processor Identifiers (VPIDs)
  • Chapter 13: Memory Virtualization: Memory Overcommit and Cache Management
    - Memory overcommit explanation, handling page faults within the guest, memory hot plug, balloon driver concept, page sharing, Linux and Kernel Same-page Merging (KSM)
  • Chapter 14a: IO Virtualization: Introduction and Approaches
    - Explanation of why a device cannot be directly shared simultaneously between two guests, approaches for sharing, Trap and Emulation approach (pros and cons), Paravirtualization approach (pros and cons)
  • Chapter 14b: IO Virtualization: Introduction and Approaches
    - Passthrough approach (pros and cons), PCIe Single-Root IO Virtualization (SRIOV), issues with passthrough: DMA operations and Interrupt delivery, description of DMA issue of passthrough approach, IOMMU (DMA Remapping Engine) solution, hypervisor involvement
  • Chapter 15a: IO Virtualization: Virtualization and the Network
    - Microsoft WfW, hubs and switches, networking models, switch vs router, virtual NICs for guests, VMWare and MAC assignment
  • Chapter 15b: IO Virtualization: Virtualization and the Network
    - Redundancy and teaming, multiple software switches, TCP performance issue, CPU saturation, VMWare NetQueue, Intel VM Device Queues (VMDQs)
  • Chapter 16: IO Virtualization: Passthrough (Hardware Help)
    - Reducing overhead of virtualization, direct assignment of devices, IO models, DMA translation necessary, intro to PCI and Intel specs related to IOV support
  • Chapter 17a: IO Virtualization: PCIe Address Translation Services (ATS)
    - Two views of memory (processor down vs device up), IOMMU solves functional problem but introduces latency, device TLBs can help, ATS terminology: Translation Agent, Address Translation and Protection Tables, Address Translation Cache, configuring ATS feature, populating an ATC, translation requests vs DMA reads, translation completions
  • Chapter 17b: IO Virtualization: PCIe Address Translation Services (ATS)
    - Security of ATS, invalidation of cached entries in ATC, invalidate request, invalidate completion, what if translation not successful?, Page Request Services, page request message, PRG Response message, other uses of ATS
  • Chapter 18: IO Virtualization: PCI Access Control Services (ACS)
    - Peer-to-peer (P2P) request redirect, P2P completion redirect, upstream forwarding, P2P egress control, direct translated P2P, translation blocking, source validation
  • Chapter 19a: IO Virtualization: PCIe Single-Root IOV (SRIOV)
    - SRIOV terminology, function vs physical function (PF) vs virtual function (VF), enabling VFs, traffic to/from guests, config space ALWAYS controlled by hypervisor
  • Chapter 19b: IO Virtualization: PCIe Single-Root IOV (SRIOV)
    - SRIOV capability structure, BARs vs VF BARs, Alternative Routing-ID Interpretation (ARI), PF and VFs association, requester ID determination, function dependencies, error handling, interrupts, power management
  • Chapter 20a: IO Virtualization: Intel VT-d - DMA Remapping (Part 1: gPA -> PA)
    - Terminology, Guest Physical Address (gPA), host/real Physical Address (PA), domains, DMA remapping engines (IOMMUs), translation table maintenance
  • Chapter 20b: IO Virtualization: Intel VT-d - DMA Remapping (Part 1: gPA -> PA)
    - DMA address translation look-up process, Root Table, Context Table, Root Entry format, Context Entry format, Super (large) pages, translation table entry format, address translation faults, non-recoverable vs recoverable faults, primary fault logging registers, advanced fault logging
  • Chapter 21: IO Virtualization: Shared Virtual Memory, PCIe PASID and Intel VT-d (Part 2: VA -> [gPA ->] PA)
    - Purpose of Shared Virtual Memory (SVM), SVM example usage and issues, Process Address Space ID (PASID) solution, PCIe TLP prefix, PASID capability structure, DMAR (IOMMU) support for PASIDs, Extended Root Entry format, Extended Context Entry format
  • Chapter 22: IO Virtualization: x86 Interrupt Delivery Intro
    - x86 interrupt controllers, local APIC IDs (Physical APIC ID vs Logical APIC ID), physical destination mode, logical flat destination mode, logical cluster destination mode, redirectable interrupts, inter-processor interrupts (IPIs), Message Signaled Interrupt (MSI) encoding
  • Chapter 23a: IO Virtualization: Intel VT-d - Interrupt Remapping
    - Purpose of interrupt remapping, interrupt remapping table, Interrupt Remapping Table Entry (IRTE) format, example use
  • Chapter 23b: IO Virtualization: Intel VT-d - Interrupt Remapping
    - Interrupt example with HW emulation, interrupt example with passthrough device, posted interrupts, Posted Interrupt Descriptor (PID), interrupt posting examples, urgent (latency sensitive) interrupts, interrupt remapping faults
  • Chapter 24: IO Virtualization: VM Migration and PCIe Multi-Root IOV (MRIOV)
    - Purpose of migration, live vs cold migration, Intel FlexMigration, MRIOV concept, MRIOV topology examples
  • Chapter 25: Miscellaneous: Intel GVT Graphics and Virtualization and Time
    - Intel GVT-d, Intel GVT-s, Intel GVT-g, needs for time (wall clock time and delay/periodic mechanism), timer ticks, issues with time and virtualization, several solutions are covered
  • Chapter 26: Miscellaneous: Other Software and Virtualization Questions
    - Detecting virtualized environments, what the guest sees, writing guest software, guest software and the disk, dedication of processor cores, cache and TLB effects
  • Chapter 27: Miscellaneous: Intro to PC Virtualization Software Products
    - VMWare solutions, Microsoft solutions, Xen, Kernel Virtual Machine (KVM)
Course Modules
ModuleLength
Module 1a: Introduction to Virtualization27 minutes
Module 1b: Introduction to Virtualization29 minutes
Module 1c: Introduction to Virtualization24 minutes
Module 2a: Processor Virtualization: Trap and Emulate Basics26 minutes
Module 2b: Processor Virtualization: Trap and Emulate Basics19 minutes
Module 3a: Processor Virtualization: Software Techniques18 minutes
Module 3b: Processor Virtualization: Software Techniques30 minutes
Module 4a: Processor Virtualization: Intel VT-x20 minutes
Module 4b: Processor Virtualization: Intel VT-x24 minutes
Module 4c: Processor Virtualization: Intel VT-x23 minutes
Module 4d: Processor Virtualization: Intel VT-x18 minutes
Module 4e: Processor Virtualization: Intel VT-x32 minutes
Module 5a: Processor Virtualization: Multi-Core and SMP Guests29 minutes
Module 5b: Processor Virtualization: Multi-Core and SMP Guests41 minutes
Module 5c: Processor Virtualization: Multi-Core and SMP Guests17 minutes
Module 6: Processor Virtualization: Nested Virtualization15 minutes
Module 7a: Processor Virtualization: Virtualization of Interrupts25 minutes
Module 7b: Processor Virtualization: Virtualization of Interrupts20 minutes
Module 8: Processor Virtualization: Performance Observations and Other Uses33 minutes
Module 9: Processor Virtualization: Security Features and Intel TXT9 minutes
Module 10a: Memory Virtualization: x86 Memory Addressing Intro31 minutes
Module 10b: Memory Virtualization: x86 Memory Addressing Intro17 minutes
Module 11: Memory Virtualization: Shadow Paging37 minutes
Module 12: Memory Virtualization: Intel Extended Page Tables (EPTs)32 minutes
Module 13: Memory Virtualization: Memory Overcommit and Cache Management28 minutes
Module 14a: IO Virtualization: Introduction and Approaches24 minutes
Module 14b: IO Virtualization: Introduction and Approaches18 minutes
Module 15a: IO Virtualization: Virtualization and the Network21 minutes
Module 15b: IO Virtualization: Virtualization and the Network18 minutes
Module 16: IO Virtualization: Passthrough (Hardware Help)19 minutes
Module 17a: IO Virtualization: PCIe Address Translation Services (ATS)27 minutes
Module 17b: IO Virtualization: PCIe Address Translation Services (ATS)24 minutes
Module 18: IO Virtualization: PCI Access Control Services (ACS)11 minutes
Module 19a: IO Virtualization: PCIe Single-Root IOV (SRIOV)19 minutes
Module 19b: IO Virtualization: PCIe Single-Root IOV (SRIOV)28 minutes
Module 20a: IO Virtualization: Intel VT-d - DMA Remapping (Part 1: gPA -> PA)20 minutes
Module 20b: IO Virtualization: Intel VT-d - DMA Remapping (Part 1: gPA -> PA)28 minutes
Module 21: IO Virtualization: Shared Virtual Memory, PCIe PASID and Intel VT-d (Part 2: VA -> [gPA ->] PA)30 minutes
Module 22: IO Virtualization: x86 Interrupt Delivery Intro31 minutes
Module 23a: IO Virtualization: Intel VT-d - Interrupt Remapping15 minutes
Module 23b: IO Virtualization: Intel VT-d - Interrupt Remapping28 minutes
Module 24: IO Virtualization: VM Migration and PCIe Multi-Root IOV (MRIOV)34 minutes
Module 25: Miscellaneous: Intel GVT Graphics and Virtualization and Time25 minutes
Module 26: Miscellaneous: Other Software and Virtualization Questions28 minutes
Module 27: Miscellaneous: Intro to PC Virtualization Software Products19 minutes