Site affiché en Français Voir le site en English (USA) Voir le site en English (GB)
Vous êtes ici: ac6 > ac6-formation > IBM processors > PPC476 core implementation

P5 PPC476 core implementation

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

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

Plan
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