Site affiché en Français Voir le site en English (USA) Voir le site en English (GB)
Vous êtes ici: ac6 > ac6-formation > Processors (generic) > PowerPC System Design
Télécharger le catalogue
Télécharger le catalogue
Télécharger la page
Télécharger la page
Ecrivez nous
Ecrivez nous
Version imprimable
Version imprimable
 

PG2 PowerPC System Design

This course has been designed for developers involved in a PowerPC development who want to understand generic mechanisms


formateur
Objectives
bullet_jaune_1 This course explains the objectives of mechanisms used to boost the performance and the way they are implemented in various PowerPCs : cache / cache coherency, pipeline, MMU, exceptions.
bullet_jaune_1 This gives to the attendees a wider overview of the state of the art in these domains.
bullet_jaune_1 The course details the instructions required to write program in supervisor mode to adapt the behaviour of the core to specific needs.
bullet_jaune_1 A tutorial designed by Mr Guillaume PERON, PowerPC expert since 1995, is used to quickly understand PowerPC low level programming.
bullet_jaune_1 It clarifies the use of sections required for good management of caches and memory.
bullet_jaune_1 Task switch requirements are highlighted.
bullet_jaune_1 Debug facilities implemented in PowerPCs (hardware breakpoints, real-time trace, watchpoints) are studied through the use of Lauterbach TRACE32 debugger.
A lot of programming examples have been developed by ACSYS to explain the PowerPC assembly language.

  •They have been developed with GNU compiler and are executed under Lauterbach debugger.
A more detailed course description is available on request at info@ac6-formation.com
Prerequisites
bullet_jaune_2 Basic knowledge of processor or DSP.

Plan
PowerPC PROGRAMMING
bullet_jaune_2 PowerPC programming environment : 32-bit PowerPC architecture, Book E, 64-bit architecture
bullet_jaune_2 Register set, GPR vs SPR, HID registers
bullet_jaune_2 Data type instantiation for PowerPC
bullet_jaune_2 Pointers management (Addressing modes)
bullet_jaune_2 User and supervisor functions call and return (EABI, C-to-assembly interface)
bullet_jaune_2 Sections, benefits of small data sections
bullet_jaune_2 Locating code and data in memory , linker command file
bullet_jaune_2 Reset, what is to be done before calling the main() : Cstart program
PIPELINE
bullet_jaune_2 Superscalar operation
bullet_jaune_2 Mechanisms used to boost performance : branch prediction, branch target address cache, link stack
bullet_jaune_2 Guidelines to optimize execution time
bullet_jaune_2 Serializations, isync instruction, determining when this instruction is really required
DATA PATH AND DECOUPLING
bullet_jaune_2 Highlighting the frequency domains present in PowerPC : core and bus interface
bullet_jaune_2 Decoupling the core from cache and bus through load and store buffers
bullet_jaune_2 Default ordering of load and store transactions
bullet_jaune_2 Enforcing the ordering through eieio (called mbar in Book E) and sync (called msync in Book E) instructions
bullet_jaune_2 Purpose of the Guarded attribute
bullet_jaune_2 Consequence for high level development of IO drivers
MEMORY MANAGEMENT UNIT
bullet_jaune_2 Requirements for kernels enabling dynamic memory mapping
bullet_jaune_2 Single process multi-thread versus multiprocess multi-thread kernels
bullet_jaune_2 Objectives of the MMU : page protection, definition of page attribute, address translation
bullet_jaune_2 Segment and page translation
bullet_jaune_2 Table search mechanisms : benefits of a software table search
bullet_jaune_2 Operation of TLB caches
bullet_jaune_2 TLB programming, static initialization
CACHE AND DATA COHERENCY
bullet_jaune_2 Introduction to cache memory
bullet_jaune_2 Cache organization
bullet_jaune_2 Write policies
bullet_jaune_2 Replacement algorithms
bullet_jaune_2 Data flow between external main memory
bullet_jaune_2 Distinguishing private memory that is accessed only by the core and shared memory that can be accessed by the core and other masters (DMA or CPU)
bullet_jaune_2 Software enforced coherency
bullet_jaune_2 Hardware enforced coherency
EXCEPTION MECHANISM
bullet_jaune_2 Software exceptions vs interrupts
bullet_jaune_2 Save / restore registers
bullet_jaune_2 Organization of an exception handler : prolog, body and epilog
bullet_jaune_2 How to find the cause of the exception, syndrome registers
bullet_jaune_2 Design of a generic exception handler based on a vector table
bullet_jaune_2 Interrupt management, addition of a critical interrupt in Book E
bullet_jaune_2 Integrated interrupt controller
bullet_jaune_2 Requirements for interrupt nesting
MULTITASK
bullet_jaune_2 Management of boolean semaphores, lwarx / stwcx. instruction pair
bullet_jaune_2 Stack switch, use of SPRG registers
bullet_jaune_2 Definition of the set of registers that determine the stack state
bullet_jaune_2 Management of task lists in single and multi processor systems
PowerPC DEBUG SOLUTIONS
bullet_jaune_2 On-chip debug logic
bullet_jaune_2 Restrictions of JTAG debug
bullet_jaune_2 Hardware breakpoints
bullet_jaune_2 Real-time trace
bullet_jaune_2 Debugging software when caches are active
bullet_jaune_2 The performance monitor