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 > PPC405 core implementation

P1 PPC405 core implementation

This course covers the IBM Power 405 core

Objectives
bullet_jaune_1 A boot firmware that initializes the MMU has been developped to explain the boot sequence.
bullet_jaune_1 Internal debug facilities are described.
bullet_jaune_1 OCM memory benefits compared to cache are highlighted.
bullet_jaune_1 The course focusses on 405 low level programming, especially the PowerPC EABI.
bullet_jaune_1 Examples of exception handlers are provided.
bullet_jaune_1 A DFT has been developed to explain how to use mac instructions.
bullet_jaune_1 The PLB and OCM ports as well as debug related signals are described to facilitate the hardware implementation.

bullet_jaune_1 This course has been delivered several times to engineers developing ASICs based on PPC405 and to engineers implementing Xilinx FPGAs containing PPC405 core(s).
Labs are compiled with Diab Data 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 405
bullet_jaune_2 Architecture of a 405-based System-on-Chip
bullet_jaune_2 Programming model, the 4 register groups GPRs, SPRs, DCRs and memory mapped
THE CORE ARCHITECTURE
bullet_jaune_2 5-stage pipeline operation
bullet_jaune_2 Instructions flows through the pipeline
bullet_jaune_2 Speculative execution, guarded memory, SGR register
bullet_jaune_2 Serialization : prefetch barrier implementation by means of unconditional branch instructions, isync instruction
bullet_jaune_2 Cache basics : organization, replacement algorithm, write policies
bullet_jaune_2 Data flow between external memory and caches
bullet_jaune_2 Cache programming interface
bullet_jaune_2 Memory Management Unit : memory attributes definition (cache enabled / cache inhibited, copyback / writethrough)
bullet_jaune_2 Translation Lookaside Buffer initialisation
bullet_jaune_2 Parity control for caches and UTLB
bullet_jaune_2 Cache control and debugging features
bullet_jaune_2 Load / store buffer, sync instruction
PowerPC ARCHITECTURE FOR EMBEDDED APPLICATIONS
bullet_jaune_2 Branch instructions
bullet_jaune_2 System call instruction
bullet_jaune_2 Load / store instructions
bullet_jaune_2 Semaphore management with lwarx / stwcx. Instructions
bullet_jaune_2 Arithmetical and logical instructions
bullet_jaune_2 The PowerPC EABI
bullet_jaune_2 Cache related instructions
bullet_jaune_2 16-bit mac instructions
bullet_jaune_2 Exception processing
bullet_jaune_2 Critical versus non critical interrupts
bullet_jaune_2 Syndrome registers updating when an exception is taken
bullet_jaune_2 Core timers : PIT, FIT and WDT
bullet_jaune_2 Reset
INTEGRATED DEBUG FACILITIES
bullet_jaune_2 JTAG debug
bullet_jaune_2 Logic analyser connection through Mictor connectors
bullet_jaune_2 The 405 instruction trace port
bullet_jaune_2 Hardware vs software breakpoints
HARDWARE IMPLEMENTATION OF THE PPC405 CORE
bullet_jaune_2 External connections
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 The OCM busses
bullet_jaune_2 Instruction-side local bus interface
bullet_jaune_2 Data-side local bus interface
bullet_jaune_2 DCR interface
APU CONTROLLER
bullet_jaune_2 Connection to the native instruction pipeline
bullet_jaune_2 External coprocessor module
bullet_jaune_2 Software interface
bullet_jaune_2 Class of instructions
bullet_jaune_2 Developing a custom instruction set relying on an external coprocessor