P5 PPC476 core implementation

This course covers the PowerPC 476FP core, including L2 cache and PLB6 interface

Objectives
  • A boot firmware that initializes the MMU has been developped.
  • Internal debug facilities are described.
  • The course focuses on PPC476 low level programming, especially the PowerPC EABI.
  • Examples of exception handlers are provided.
  • The course also covers the debug architecture.
  • A FFT has been developed to explain how to use MAC instructions.
  • The Floating Point Unit operation is described.
  • Note that this course also includes the PLB6 interconnect.
Labs are compiled with GNU compiler and run under Lauterbach Trace32 debugger.
A more detailed course description is available on request at formation@ac6-formation.com
  • Experience of a 32 bit processor or DSP is mandatory
  • Cours théorique
    • Support de cours au format PDF (en anglais) et une version imprimée lors des sessions en présentiel
    • Cours dispensé via le système de visioconférence Teams (si à distance)
    • 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

  • Internal architecture overview
  • Connection to peripheral IPs
  • Clocking
  • Programming model, the 4 register groups GPRs, SPRs, DCRs and memory mapped
  • 5-stage pipeline operation, 4-issue architecture
  • Branch Target Address Cache
  • Speculative execution, guarded memory
  • Register renaming
  • Serialization
  • Exception processing
  • Critical versus non critical interrupts
  • Syndrome registers updating according to the exception source
  • Building the vector table
  • Core timers: PIT, FIT and WDT
  • Reset configuration
  • Introduction to MMU, Process vs thread
  • Unified Translation Lookaside Buffer organization
  • Level 1 separate instruction and data TLBs, level 2 unified TLB
  • Address translation
  • Clarifying the purpose of the hash function
  • Describing the Tag array
  • Bolted entries
  • MMU related exceptions
  • UTLB coherency
  • Cache basics
  • 4-way set associative organization, LRU replacement algorithm
  • Cache programming interface
  • Cache related instructions
  • Double line fetch enable
  • Locking capability
  • Cache control and debugging features
  • Instruction cache synonyms
  • Four-way set-associative level 2 cache design
  • Modified/exclusive/shared/invalid, tagged, shared last, modified unsolicited (MESI+T+SL+MU) protocol coherencu
  • Cache operation instructions
  • Understanding how data / instructions are transferred from memory to L1 and L2 caches
  • Preloading the L2 cache
  • Reservation management
  • L2 cache performance monitor
  • CPU L1 Cache Interface Registers
  • Clarifying the steps required to load a data cache line, utilization of refill buffers
  • Use cases for lwsync, msync, mbar and eieio instructions
  • Self-modifying code sequence
  • Store gathering support
  • Branch instructions, restrictions regarding regions that can be accessed by direct branches
  • System call instruction: link between applications and RTOS
  • Addressing modes
  • Byte reverse instructions to access PCI/PCIe configuration space
  • Semaphore management with lwarx / stwcx. instructions
  • Arithmetical and logical instructions, shift and rotate instructions
  • The PowerPC EABI
  • Self-modifying code sequence
  • 16-bit mac instructions to develop fixed point DSP algorithms
  • IEEE754 basics
  • Six-stage super-pipelined floating-point arithmetic execution
  • Floating point exceptions
  • Data handling and precision
  • Invasive debug with JTAG
  • Non invasive debug with trace port
  • Hardware vs software breakpoints
  • Range Inclusive / Exclusive Comparison Mode
  • Data value comparison
  • Debug related interrupts
  • Clock and power management interface
  • CPU control interface
  • Reset interface
  • External interrupt controller interface
  • Instruction-side local bus interface
  • Data-side local bus interface
  • DCR interface
  • Separate interfaces for masters, slaves and snoopers
  • Supports SMP coherency, with 7 cache states
  • Coherency State Transition Tables
  • Coherent data intervention
  • Command definitions, clarifying what is a RWITM, a RWNITC
  • Transfer protocol, address phase
  • Master Retry Requirements
  • Hang Detect and Resolution Requirements
  • Snoop Partial Response Requirements
  • Ordering Requirements