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

View all eLearning Courses

PCI Express Courses
Fundamentals of PCI Express eLearning Course
Comprehensive PCI Express 3.1 eLearning Course
PCI Express Config Space and Transaction Routing eLearning Course
PCI Express Physical Layer and Link Initialization and Training eLearning Course
PCI Express Interrupt Handling eLearning Course
PCI Express Error Handling eLearning Course
PCI Express Power Management eLearning Course
PCI Express Hot Plug and Resets eLearning Course
PCI Express 2.x and 3.x ECNs eLearning Course
Intro to PCI Express IO Virtualization eLearning Course
Mobile PCI Express (M-PCIe) eLearning Course
USB Courses
xHCI eLearning Course
USB Type-C and Power Delivery eLearning Course
Comprehensive USB 3.0 eLearning Course
Comprehensive USB 2.0 Embedded System Architecture
x86 Architecture Courses
Intel x86 Processor and Platform Architecture eLearning Course
Intro to 32/64-bit x86 Architecture eLearning Course
Fundamentals of Intel QPI eLearning Course
ARM Courses
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-M0 and M0+ Hardware Design eLearning Course
ARM Cortex-M3 and M4 Hardware Design eLearning Course
ARM Cortex-M7 Processor eLearning Course
Fundamentals of ARM Architecture
Fundamentals of ARMv8-A eLearning Course
Introduction to ARM AMBA eLearning Course
Introduction to ARM TrustZone eLearning Course
Memory Courses
Modern DRAM (DDR4 / DDR3 / LPDDR3 / LPDDR2) eLearning Course
Storage Courses
SAS 3.0 Storage Technology eLearning Course
NVM Express 1.2a eLearning Course
SATA 3.2 Technology eLearning Course
Advanced Host Controller Interface (AHCI) eLearning Course
Universal Flash Storage (UFS) eLearning Course
Virtualization Courses
Comprehensive PC Virtualization eLearning Course
Intro to Virtualization Technology 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
$895.00



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

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
    - SCR_EL3, SCTLR_EL3, MDCR_EL3, MIDR_EL1, ID_AA64PFR0_EL1, CLIDR_EL1, CCSIDR_EL1, CSSELR_EL1, ACTRL, AIDR
  • 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
ModuleLength
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