View the site in Français View the site in English (USA) Site displayed in English (GB)
You are here: ac6 > ac6-formation > ARM cores > Cortex-A9 implementation
Download Catalog
Download Catalog
Download as PDF
Download as PDF
Write us
Write us
Printable version
Printable version
 

RA2 Cortex-A9 implementation

This course covers both Cortex-A9 single and multiple core high-end ARM CPUs


formateur
Objectives
bullet_jaune_1 This course is split into 3 important parts:
bullet_jaune_2 Cortex-A9 architecture
bullet_jaune_2 Cortex-A9 software implementation and debug
bullet_jaune_2 Cortex-A9 hardware implementation
bullet_jaune_1 MMU operation under Linux is described.
bullet_jaune_1 Spin-lock implementation in a multicore system is also detailed
bullet_jaune_1 Interaction between level 1 caches, level 2 cache and main memory is studied through sequences.
bullet_jaune_1 The exception mechanism is explained, indicating how virtualization enables the support of several operating systems.
bullet_jaune_1 The course also details the hardware implementation and provides some guidelines to design a SoC based on Cortex-A9.
bullet_jaune_1 An overview of the Coresight specification is provided prior to describing the debug related units.
bullet_jaune_1 The operation of the Snoop Control Unit when supporting SMP is fully explained, particularly the utilization of cache tag mirrors, the advantage of connecting DMA channels to ACP and the sequences that have to be used to modify a page descriptor.

Labs are run under RVDS.

A more detailed course description is available on request at info@ac6-training.com
Prerequisites and related courses
bullet_jaune_2 Knowledge of ARM7/9 or having attended our course ARM fundamentals.
bullet_jaune_2 This course does not include chapters on low level programming.
bullet_jaune_3 ACSYS offers a large set of tutorials to become familiar with RVDS, assembly level programming, compiler hints and tips.
bullet_jaune_2 More than 12 correct answers to our Cortex-A prerequisites questionnaire.

bullet_jaune_2 Related courses:
bullet_jaune_3 Programming with RVDS IDE,reference RV0
bullet_jaune_3 VFP programming, reference RC0
bullet_jaune_3 NEON programming, reference RC1
.

Outline
First day
INTRODUCTION TO CORTEX-A9
bullet_jaune_2 Cortex-A9 variants
bullet_jaune_2 New memory-mapped registers in MPCore
bullet_jaune_2 The 3 instruction sets
bullet_jaune_2 Configurable options
ARM BASICS
bullet_jaune_2 States and modes
bullet_jaune_2 Benefit of register banking
bullet_jaune_2 Exception mechanism
bullet_jaune_2 Instruction sets
INSTRUCTION PIPELINE
bullet_jaune_2 Superscalar pipeline operation
bullet_jaune_2 Branch prediction mechanism
bullet_jaune_2 Return stack
bullet_jaune_2 Predicted and non-predicted instructions
TRUSTZONE
bullet_jaune_2 Secure to non secure permitted transitions
bullet_jaune_2 L1 and L2 secure state indicators, memory partitioning
bullet_jaune_2 Interrupt management when there is a mix of secure and non-secure interrupt sources
bullet_jaune_2 Boot sequence
INTRODUCTION TO MULTI-CORE SYSTEMS
bullet_jaune_2 AMP vs SMP
bullet_jaune_2 Boot sequence
bullet_jaune_2 Exclusive access monitor
bullet_jaune_2 Spin-lock implementation
bullet_jaune_2 Using events
bullet_jaune_2 Basic concepts of RTOS supporting A9 SMP architecture
Second day
THUMB-2 INSTRUCTION SET (V7-A)
bullet_jaune_2 General points on syntax
bullet_jaune_2 Branch and control flow instructions
bullet_jaune_2 Memory access instructions
bullet_jaune_2 Exception generating instructions
bullet_jaune_2 If…then conditional blocks
bullet_jaune_2 Interworking ARM and Thumb states
bullet_jaune_2 Demonstration of assembly sequences aimed to understand this new instruction set
MEMORY MANAGEMENT UNIT
bullet_jaune_2 Page access permission, domain and page protection
bullet_jaune_2 Page attributes, memory types
bullet_jaune_2 Utilization of memory barrier instructions
bullet_jaune_2 Format of the external page descriptor table
bullet_jaune_2 TLB lockdown
bullet_jaune_2 Abort exception, on-demand page mechanism
bullet_jaune_2 MMU maintenance operations
bullet_jaune_2 Using a common page descriptor table in an SMP platform, maintaining coherency of multiple TLBs
LEVEL 1 MEMORY SYSTEM
bullet_jaune_2 Virtual indexing, physical tagging for instruction cache
bullet_jaune_2 Supported maintenance operations
bullet_jaune_2 Write-back write allocate cache allocation
bullet_jaune_2 Memory hint instructions PLD, PLI, PLDW, data prefetching
bullet_jaune_2 Describing transient cache related transactions: line fills and line eviction
bullet_jaune_2 4-entry 64-bit merging store buffer
HARDWARE COHERENCY
bullet_jaune_2 Snooping basics: CLEAN, CLEAN & INVALIDATE and INVALIDATE snoop requests
bullet_jaune_2 Snoop Control Unit: cache-to-cache transfers
bullet_jaune_2 MOESI state machine
bullet_jaune_2 Understanding through sequences how data coherency is maintained between L2 memory and L1 caches
bullet_jaune_2 Accelerator Coherency Port
Third day
AMBA 3
bullet_jaune_2 AXI
bullet_jaune_3 Topology: direct connection, multi-master, multi-layer
bullet_jaune_3 PL301 AXI interconnect
bullet_jaune_3 Separate address/control and data phases
bullet_jaune_3 AXI channels, channel handshake
bullet_jaune_3 Transaction ordering
bullet_jaune_3 Read and write burst timing diagrams
bullet_jaune_3 Cortex-A9 external memory interface, ID encoding
bullet_jaune_2 APB 3
HARDWARE IMPLEMENTATION
bullet_jaune_2 Clock domains
bullet_jaune_2 Reset domains
bullet_jaune_2 Wait For Interrupt architecture
bullet_jaune_2 AXI master interface attributes
bullet_jaune_2 Exclusive L2 cache
bullet_jaune_2 AXI sideband information
PL310 LEVEL 2 CACHE
bullet_jaune_2 AXI interface characteristics
bullet_jaune_2 Exclusive mode operation
bullet_jaune_2 Understanding through sequences how cacheable information is copied from memory to level 1 and level 2 caches
bullet_jaune_2 TrustZone support
bullet_jaune_2 Power management
bullet_jaune_2 Cache event monitoring
bullet_jaune_2 Describing each maintenance operation
bullet_jaune_2 Cache lockdown
bullet_jaune_2 Interrupt management
PERFORMANCE MONITOR
bullet_jaune_2 Event counting
bullet_jaune_2 Selecting the event to be counted for the 6 counters
bullet_jaune_2 Debugging a multi-core system with the assistance of the PMU
Fourth day
INTERRUPT CONTROLLER
bullet_jaune_2 Cortex-A9 exception management
bullet_jaune_2 Interrupt virtualization
bullet_jaune_2 Integrated timer and watchdog unit in MPCore
bullet_jaune_2 Interrupt groups: STI, PPI, SPI, LSPI
bullet_jaune_2 Legacy mode
bullet_jaune_2 Prioritization of the interrupt sources
bullet_jaune_2 Distribution of the interrupts to the Cortex-A9 cores
bullet_jaune_2 Detailing the interrupt sequence
bullet_jaune_2 Spurious interrupt
LOW POWER MODES
bullet_jaune_2 Voltage domains
bullet_jaune_2 Cortex-A9 power control
bullet_jaune_2 Communication to the power management controller
bullet_jaune_2 SCU power status register
CORESIGHT DEBUG UNITS
bullet_jaune_2 Invasive debug, non-invasive debug
bullet_jaune_2 APBv3 debug interface
bullet_jaune_2 Connection to the Debug Access Port
bullet_jaune_2 Process related breakpoint and watchpoint
bullet_jaune_2 Program counter sampling
bullet_jaune_2 Event catching
bullet_jaune_2 Debug Communication Channel
bullet_jaune_2 PTM interface, connection to funnel
bullet_jaune_2 Debug registers description
bullet_jaune_2 Cross-Trigger Interface, debugging a multi-core SoC