View the site in Français Site displayed in English (USA) View the site in English (GB)
You are here: ac6 > ac6-formation > IBM processors > PPC476 core implementation
Download Catalog
Download Catalog
Download as PDF
Download as PDF
Write us
Write us
Printable version
Printable version
 

P5 PPC476 core implementation

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


formateur
Objectives
bullet_jaune_1 A boot firmware that initializes the MMU has been developped.
bullet_jaune_1 Internal debug facilities are described.
bullet_jaune_1 The course focuses on PPC476 low level programming, especially the PowerPC EABI.
bullet_jaune_1 Examples of exception handlers are provided.
bullet_jaune_1 The course also covers the debug architecture.
bullet_jaune_1 A FFT has been developed to explain how to use MAC instructions.
bullet_jaune_1 The Floating Point Unit operation is described.
bullet_jaune_1 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 info@ac6-formation.com
Prerequisites
bullet_jaune_2 Experience of a 32 bit processor or DSP is mandatory

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