ARM 64-bit Architecture (ARM v8-A) 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 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

ARM 64-bit Architecture (ARM v8-A) eLearning Course

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

Course Price

ARM 64-bit Architecture (ARM v8-A) eLearning Course Info

What's Included?

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

Benefits of eLearning:

  • 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
  • Access to the Instructor - Ask questions to the MindShare Instructor that taught the course

You Will Learn:

  • ARM architecture (ARMv8-A)
  • Support for execution of 32-bit ARMv7-A code
  • 64-bit ISA (registers, instruction set, system instructions, etc)
  • Floating point and Neon
  • Calling conventions
  • Memory and paging
  • Exception and Interrupt handling, and the exception levels
  • Virtualization (Exception Level 2)
  • TrustZone overview (Exception Level 3)
  • Power management
  • Debug

Who Should View?

This course is aimed at software developers and system architects developing for systems powered by ARMv8-A processors such as Cortex-A53 and Cortex-A57 Processors. It is relevant for operating system development, device drivers, low-level coding and for application software.

Course Outline:

  • Module 1: ARM Introduction
    - ARM company history, ARM business models, ARM naming conventions, ARM architecture profiles, defining terms like Core, MP-Core, Processing Element (PE), etc.
  • Module 2: ARMv8-A 64-bit Overview
    - Introduces topics like: 64-bit virtual addressing, AArch64 vs AArch32, A64 ISA, LP64 and LLP64, instruction encodings, processor registers, exception levels
  • Module 3: Integer (General Purpose) Registers
    - 64-bit usage, Stack Pointer (SP), Program Counter (PC), Link Register (LR) and Exception Link Register (ELR), 32-bit arithmetic examples, 64-bit and 32-bit register relationship
  • Module 4: Processing Element State (PState)
    - PState Register, Flag/Status bits, Extension/Control bits, DAIF and interrupt control, stack select, MRS, MSR and System Registers, PState and SPSRs
  • Module 5a: A64 Instructions
    - v7-A instruction functionality changes, AArch32, v8-A Jazelle and Java Bytecodes, listing instruction categories with examples of each (arithmetic, logic, etc.), instruction encoding
  • Module 5b: A64 Instructions
    - PC relative addressing, bit manipulation, branch and subroutine call, branch prediction, conditional branches and condition codes
  • Module 6: System Instructions and Calling Conventions
    - System calls (SVC, HVC, SMC), debug instructions, system register access instructions, architectural "hint" instructions, ELF ABI usage, ELF Frame Pointer
  • Module 7a: Memory Accesses
    - Load/Store architecture, addressing modes, load/store indexing and auto incrementing, multi-register loads/stores, little endian vs big endian, data alignment, instruction alignment, unaligned (misaligned) accesses
  • Module 7b: Memory Accesses
    - Accessing devices with memory instructions, memory types and rules, domains (NSH: non-shareable, ISH: inner shareable, OSH: outer-shareable, SY: full system), memory coherency, weakly ordered, memory barrier instructions (DMB: data memory barrier, DSB: data synchronization barrier, ISB: instruction synchronization barrier), JIT / self-modifying code
  • Module 7c: Memory Accesses
    - Device memory attributes (gathering, reordering, early write acknowledgement hint), memory access restrictions, semaphore flow, semaphore instructions, load-acquire and store-release, non-temporal load/store
  • Module 8: Floating Point, SIMD and Crypto Extensions
    - SIMD and Advanced SIMD, floating-point types (half-precision, single-precision, double-precision), floating point registers, SIMD registers, SIMD enhancements over v7-A, status and control registers, conversions to/from floating point, crypto functionality, cryptographic AES, cryptographic SHA, cryptographic CRC32
  • Module 9: Exception Levels
    - EL0 (application), EL1 (OS), EL2 (hypervisor), EL3 (secure monitor), secure vs non-secure state, PSTATE fields, taking an exception, transitions between 32-bit and 64-bit, reset state, ELRs and SPs by exception level
  • Module 10a: Exceptions and Interrupts
    - Interrupt controller for single core and MP-core systems, GIC versions, exception and interrupt definitions, synchronous vs asynchronous, precise vs imprecise
  • Module 10b: Exceptions and Interrupts
    - Taking an exception/interrupt (target exception level?), masking of lower EL interrupts, exception return (ERET instruction), vector table for each EL
  • Module 11: Other System Registers
  • Module 12a: Paging (Memory Model)
    - Paging concepts, translation look-aside buffer (TLB), AArch64 vs AArch32 memory models, stages of translation, page faults
  • Module 12b: Paging (Memory Model)
    - TTBR1 and TTBR0, virtual (VA) to physical (PA), virtual to intermediate physical (IPA) to physical, secure EL3 protection, OS page tables, hypervisor page tables, page sizes with 4KB granule (4KB, 2MB, 1GB), page sizes with 16KB granule (16KB, 32MB), page sizes with 64KB granule (64KB, 512MB), 64-bit descriptor format, address translation instructions, TLB maintenance, address space identifier (ASID), virtual machine identifier (VMID)
  • Module 13: Caches and Cache Management
    - Multi-level cache architecture, cache protocols (MESI and MOESI), coherency, point of unification (PoU), level of unification (LoU), point of coherency (PoC), level of coherency (LoC), instruction cache maintenance, data cache maintenance, cache prefetch, non-temporal accesses
  • Module 14: Virtualization
    - What virtualization is, hardware partitioning with virtualization, hypervisor configuration register (HCR), virtual interrupt support, virtualization hardware paging
  • Module 15: Secure and Non-Secure State
    - Non-secure state (normal world) vs secure state (secure world), TrustZone processor and IO devices
  • Module 16: Power Management
    - Platform power management, individual core power modes (WFI: wait for interrupt, WFE: wait for event, dormant mode, shutdown mode), per core power domains
  • Module 17: Debug and Performance Monitors Extension
    - Monitor mode (self-hosted), halting debug mode, debug port, trace, external debug entry and exit, performance monitor registers

A La Carte Options

We’re pleased to announce that we also offer the option to customize your own course by purchasing only the modules you need. Expand this section to view the specific topics available. Each topic can be purchased separately, or you can purchase the entire comprehensive course.


Course Modules
Module 1: ARM Introduction36 minutes
Module 2: ARMv8-A 64-bit Overview49 minutes
Module 3: Integer (General Purpose) Registers44 minutes
Module 4: Processing Element State (PState)28 minutes
Module 5a: A64 Instructions44 minutes
Module 5b: A64 Instructions29 minutes
Module 6: System Instructions and Calling Conventions28 minutes
Module 7a: Memory Accesses43 minutes
Module 7b: Memory Accesses38 minutes
Module 7c: Memory Accesses41 minutes
Module 8: Floating Point, SIMD and Crypto Extensions33 minutes
Module 9: Exception Levels38 minutes
Module 10a: Exceptions and Interrupts35 minutes
Module 10b: Exceptions and Interrupts38 minutes
Module 11: Other System Registers30 minutes
Module 12a: Paging (Memory Model)41 minutes
Module 12b: Paging (Memory Model)56 minutes
Module 13: Caches and Cache Management49 minutes
Module 14: Virtualization37 minutes
Module 15: Secure and Non-Secure State26 minutes
Module 16: Power Management14 minutes
Module 17: Debug and Performance Monitors Extension17 minutes