FCC1 e500mc implementation

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

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

  • This course has been designed in collaboration with NXP
A more detailed course description is available on request at training@ac6-training.com
  • Experience of a 32-bit processor or DSP is mandatory.
Exercise :  The environment used to build and debug software labs are based on the GNU compiler / linker and the debugger from Lauterbach.
  • Cours théorique
    • Support de cours imprimé et au format PDF (en anglais).
    • Le formateur répond aux questions des stagiaires en direct pendant la formation et fournit une assistance technique et pédagogique.
  • Au début de chaque demi-journée une période est réservée à une interaction avec les stagiaires pour s'assurer que le cours répond à leurs attentes et l'adapter si nécessaire
  • Tout ingénieur ou technicien en systèmes embarqués possédant les prérequis ci-dessus.
  • Les prérequis indiqués ci-dessus sont évalués avant la formation par l'encadrement technique du stagiaire dans son entreprise, ou par le stagiaire lui-même dans le cas exceptionnel d'un stagiaire individuel.
  • Les progrès des stagiaires sont évalués par des quizz proposés en fin des sections pour vérifier que les stagiaires ont assimilé les points présentés
  • En fin de formation, une attestation et un certificat attestant que le stagiaire a suivi le cours avec succès.
    • En cas de problème dû à un manque de prérequis de la part du stagiaire, constaté lors de la formation, une formation différente ou complémentaire lui est proposée, en général pour conforter ses prérequis, en accord avec son responsable en entreprise le cas échéant.

Plan du cours

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