x86 Architecture eLearning Course HOW eLEARNING WORKS eLEARNING FAQ View all eLearning Courses PCI Express Courses Comprehensive PCIe 5.0 eLearning Course Advanced PCIe eLearning Course Core PCIe eLearning Course Fundamentals of PCI Express eLearning Course Intro to PCI Express IO Virtualization eLearning Course PIPE 6.0 - PHY Interface for PCI Express and more 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 Modern DRAM (DDR4 / DDR3 / LPDDR3 / LPDDR2) eLearning Course DRAM Class PRE-WORK DRAM Class Supplementary Material Storage Courses SAS 3.0 Storage Technology eLearning Course Advanced Host Controller Interface (AHCI) eLearning Course NVM Express 1.4 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 x86 Architecture eLearning Course Instructor(s): Joe Winkles Number of Modules: 21 Subscription Length: 90 days Course Price $595.00 x86 Architecture eLearning Course Note: this course is a subset of our Intel Processor and Platform eLearning Course What's Included? Course eLearning modules (unlimited access for 90 days) PDF of Course Slides (yours to keep, does not expire) x86 ISA eBook (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? This course will be useful for anyone dealing with designing, verifying, validating, debugging, or developing for x86-based platforms. The x86 instruction set architecture has evolved over a period of almost 40 years. This course describes numerous aspects of the current architecture but also explains how we got to the current architecture based on the history and decisions made. It doesn't matter whether you're a hardware engineer or a software developer, this course has an enormous amount of relevant info for you. Course Outline: Module 1: Course Introduction - Scope of course Module 2: x86 Instruction Set Overview - x86 instruction basics, instruction variants, integer operations, floating-point operations, MMX, SSE, AVX, program flow-related instructions, hardware-related instructions, x86 instruction format Module 3: x86 Register Set Introduction - Registers per thread (logical processor), general-purpose registers, flags register, x87 registers, MMX registers, XMM registers, YMM registers, ZMM registers, segment registers, control registers, debug registers, model-specific registers (MSRs) Module 4: x86 CPU Operating Modes - Real Mode, (legacy) Protected Mode, Virtual-8086 Mode, System Management Mode, Compatibility Mode, 64-bit Mode, Long Mode (IA-32e Mode) vs Legacy Mode Module 5: Platform Addressing - Memory space (system memory vs. memory-mapped IO: MMIO), IO space, PCI config space Module 6a: CPU Memory Segmentation Part A - Memory accesses, address generation (effective address, logical address, linear/virtual address, physical address), Real Mode segmentation Module 6b: CPU Memory Segmentation Part A - Code and Data segment descriptors, Global Descriptor Table (GDT), Local Descriptor Tables (LDTs), descriptor cache, flat memory model, Intel64 segmentation, long bit (CS.L) Module 7a: Paging and TLBs - Paging concepts and basic paging implementation in x86 architecture, on-demand paging example Module 7b: Paging and TLBs - x86 paging facts and page sizes: 4KB, 2MB, 4MB, 1GB, details of PTE, PDE, PDPE, PML4E, Page Size Extensions (PSE), Physical Address Extensions (PAE), Long Mode paging (Page Map Level 4 - PML4), intro to Processor Context ID (PCID), paging access rights determination, protection keys, execute disable (aka no execute) Module 7c: Paging and TLBs - Purpose of Translation Lookaside Buffers (TLBs), TLB behavior, global pages, contents of TLB entry, managing TLBs (INVLPG, INVPCID, INVVPID, MOV CR0, CR3, CR4), TLB shootdowns Module 8: Interrupts - Intro and Controller History - Intro to interrupt handling, hardware interrupts vs software interrupts vs exceptions, interrupt vectors, locating handler via Interrupt Descriptor Table, 8259A interrupt controller basics, intro to APIC / IO APIC and xAPIC Module 9: Interrupts - Local APIC Basics - Local APIC registers, x2APIC, priority among hardware interrupts, masking interrupts based on priority threshold (TPR), behavior of local APIC Module 10: Interrupts - Delivery Options - APIC IDs (physical APID ID and logical APIC ID), physical destination mode, logical flat destination mode, logical cluster destination mode, redirectable interrupts, power aware interrupt remapping (PAIR) Module 11: Interrupts - MSI, Interrupt Remapping and IPIs - Message Signaled Interrupts (MSI), address and data encodings for x86 platforms, setting up MSI info at devices (PCI config space), MSI-X, purpose of interrupt remapping and overview of concept, Inter-Processor Interrupts (IPIs) Module 12a: Overview of Intel Virtualization Support - What is virtualization, different approaches (application level vs machine level), software solutions (ring deprivileging, binary translation, paravirtualization), Intel VT-x, virtual machine control structure (VMCS), Intel VT example usage Module 12b: Overview of Intel Virtualization Support - Memory and virtualization (shadow page tables vs extended page tables - EPTs), intro to VT-d features (IO virtualization) Module 13: CPU Performance Monitoring - Core performance monitoring, performance monitoring counters, fixed function vs general purpose monitoring, precise event based sampling (PEBS), uncore performance monitoring Module 14: Machine Check Architecture (MCA) - MCA error detection and reporting, MCA error classes (corrected and uncorrected), MCA-related interrupts, MCA registers, MCA banks Module 15a: System Management Mode (SMM) - Purpose of SMM, System Management Interrupt (SMI), sources of SMI Module 15b: System Management Mode (SMM) - SMRAM, Multi-core / multi-CPU behavior, protecting SMRAM, SMM operation considerations, latency, security, cache management, setting up PCH for SMI, SMM example Module 16: Intel Microcode Update - Need for microcode updating, update procedure Course Modules Module Length Module 1: Introduction 19 minutes Module 2: x86 Instruction Set Overview 54 minutes Module 3: x86 Register Set Introduction 52 minutes Module 4: x86 CPU Operating Modes 49 minutes Module 5: Platform Addressing 39 minutes Module 6a: CPU Memory Segmentation Part A 25 minutes Module 6b: CPU Memory Segmentation Part B 56 minutes Module 7a: x86 Paging and TLBs 45 minutes Module 7b: x86 Paging and TLBs 52 minutes Module 7c: x86 Paging and TLBs 53 minutes Module 8: Interrupts: Intro and Controller History 48 minutes Module 9: Interrupts: Local APIC Basics 38 minutes Module 10: Interrupts: Delivery Options 34 minutes Module 11: Interrupts: MSIs, Interrupt Remapping and IPIs 54 minutes Module 12a: Overview of Virtualization Support 47 minutes Module 12b: Overview of Virtualization Support 32 minutes Module 13: CPU Performance Monitoring 43 minutes Module 14: Machine Check Architecture (MCA) 44 minutes Module 33a: System Management Mode (SMM) Details 57 minutes Module 33b: System Management Mode (SMM) Details 63 minutes Module 16: Microcode Update 13 minutes © MindShare, Inc. All rights reserved. Full Course List | About MindShare | Careers with MindShare Contact Us | Privacy Policy | Terms of Use