View the site in Français Site displayed in English (USA) View the site in English (GB)
You are here: ac6 > ac6-formation > Freescale Power CPUs > e500mc implementation

FCC1 e500mc implementation

This course covers the e500mc core present in 32-bit QorIQ SoCs

Objectives
bullet_jaune_1 This course provides a detailed description of the e500mc internal architecture as well as the associated low level routines.
bullet_jaune_1 Coherency mechanisms required in multiple e500mc platforms are explained through sequences.
bullet_jaune_1 All mechanisms required in a multiple core system are described: atomic sequence through lwarx/stwxc. instruction pair, doorbell interrupts.
bullet_jaune_1 The course focuses on the benefits of the hypervisor: running several operating systems, partitioning, load balancing and virtualization.
bullet_jaune_1 The operation of the MMU is studied, particularly the TLB software reload routines.
bullet_jaune_1 The course details the interrupt proxy unit and provides guidelines to implement nesting.
bullet_jaune_1 Note that for on-site course, the contents can be tailored to specific customer needs.

bullet_jaune_1 This course has been designed in collaboration with Freescale
A more detailed course description is available on request at info@ac6-training.com
Prerequisites
bullet_jaune_2 Experience of a 32-bit processor or DSP is mandatory.
Exercice : The environment used to build and debug software labs are based on the GNU compiler / linker and the debugger from Lauterbach.

Outline
CORE ARCHITECTURE
bullet_jaune_2 Block diagram
bullet_jaune_2 CoreNet interface
bullet_jaune_2 Highlighting differences between e500 and e500mc
HYPERVISOR
bullet_jaune_2 Privilege levels: user, guest supervisor, hypervisor
bullet_jaune_2 Logical partition
bullet_jaune_2 Hypervisor call instruction
bullet_jaune_2 Bare-metal operation
PIPELINE
bullet_jaune_2 e500mc pipeline implementation
bullet_jaune_2 Issue queue resource requirements
bullet_jaune_2 Execution model
bullet_jaune_2 Branch management: dynamic prediction
bullet_jaune_2 Guarded memory
INTERNAL DATA / INSTRUCTION PATHS
bullet_jaune_2 L1 and L2 cache loading, hit under miss, miss under miss
bullet_jaune_2 The load miss queue
bullet_jaune_2 The store miss merging mechanism
bullet_jaune_2 Clarifying the difference between msync and lwsync
e500mc USER LEVEL PROGRAMMING
bullet_jaune_2 Implementing atomic sequences in multiple core systems, mdors instruction
bullet_jaune_2 Decorated load and store instructions
bullet_jaune_2 Integer arithmetic and logic instructions
bullet_jaune_2 FPU operation : FPSCR register, IEEE vs non-IEEE mode
bullet_jaune_2 Float load / store instructions
bullet_jaune_2 Float arithmetic instructions
bullet_jaune_2 Convert instructions
bullet_jaune_2 The EABI
SUPERVISOR / HYPERVISOR LEVEL PROGRAMMING
bullet_jaune_2 Accessing special registers, understanding the required synchronizations
bullet_jaune_2 Implementing low power modes, wait instruction
bullet_jaune_2 Core timers
THE EXCEPTION MECHANISM
bullet_jaune_2 Exception management: building the handler table through IVPR,IVOR registers
bullet_jaune_2 Finding the exact exception cause through syndrome registers
bullet_jaune_2 New machine check features
bullet_jaune_2 Interrupt proxy
bullet_jaune_2 Doorbell interrupts
THE MEMORY MANAGEMENT UNIT
bullet_jaune_2 4 GB effective address space, 64 GB real address space
bullet_jaune_2 Address translation, understanding the interim 48-bit virtual address
bullet_jaune_2 WIMGE attributes
bullet_jaune_2 Two-level MMU architecture
bullet_jaune_2 Software TLB reload
bullet_jaune_2 Managing a page descriptor table in a SMP system
bullet_jaune_2 Virtualization fault
bullet_jaune_2 External PID load and store instructions
L1 AND L2 CACHES, SNOOPING
bullet_jaune_2 Cache basics
bullet_jaune_2 L1 data cache flush
bullet_jaune_2 L2 cache organization
bullet_jaune_2 Cache coherency basics
bullet_jaune_2 The MESI L1 data line states
bullet_jaune_2 MESI snooping sequences involving two e500mc and a PCI Express master
bullet_jaune_2 Cache-to-cache transactions
bullet_jaune_2 Cache related instructions
bullet_jaune_2 Cache entry locking
bullet_jaune_2 Stashing capability
bullet_jaune_2 L1 and L2 error checking and correction, L2 cache error injection
bullet_jaune_2 Write shadow mode
DEBUG
bullet_jaune_2 Performance monitor
bullet_jaune_2 Nexus debug unit
bullet_jaune_2 Instruction and data breakpoints
bullet_jaune_2 Debug data acquisition message