| |
| Training - PowerPC system design (reference
003830A) |
|
| |
| |
|
 |
|
Partners
- Do not hesitate to request the detailed course
description by contacting training@mvd-fpga.com
- The environment used to build and debug software
labs are based on the GNU
compiler / linker and the debugger from Lauterbach
|
|
|
 |
|
|
|
|
|
|
| |
|
 |
|
Related Trainings
- MVD has designed a large set of PowerPC courses
that detail the operation of particular PowerPCs
from Freescale, IBM Microelectronics and AMCC
- MVD offers a training entitled C language for
Embedded Applications (reference 002603A)
|
|
|
 |
|
|
|
|
|
|
| |
|
 |
|
Prerequisites
- A basic understanding of
microprocessors and microcontrollers
- A basic understanding of
assembler or C programming would be useful but
not essential
|
|
|
| |
|
|
|
|
|
|
 |
|
 |
|
Course Objectives
- This course has
been designed for developers that are going to be
involved in a PowerPC development, and intend to
understand generic mechanisms specific to PowerPC
- It 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. This gives to the
attendees a wider overview of the state of the
art in these domains
- The course details
the instructions required to write program in
supervisor mode to adapt the behaviour of the
core to specific needs. It presents the assembly
language to write more efficient programs in C.
It clarifies the use of sections required for
good management of caches and memory
- Task switch
requirements are highlighted
- Debug facilities
implemented in PowerPCs (hardware breakpoints,
real-time trace, watchpoints) are studied through
the use of Lauterbach TRACE32 debugger
|
|
|
 |
|
|
|
|
|
|
| |
|
 |
|
Duration
|
|
|
 |
|
|
|
|
|
|
| |
|
 |
|
Topics (The full description of this course can be
provided on request)
PowerPC PROGRAMMING
- PowerPC programming environment : 32-bit PowerPC
architecture, Book E, 64-bit architecture
- Register set, GPR vs SPR, HID registers
- Data type instantiation for PowerPC
- Pointers management (Addressing modes)
- User and supervisor functions call and return
(EABI, C-to-assembly interface)
- Sections, benefits of small data sections
- Locating code and data in memory , linker command
file
- Reset, what is to be done before calling the
main() : Cstart program
PIPELINE
- Superscalar operation
- Mechanisms used to boost performance : branch
prediction, branch target address cache, link
stack
- Guidelines to optimize execution time
- Serializations, isync instruction, determining
when this instruction is really required
DATA PATH AND DECOUPLING
- Highlighting the frequency domains present in
PowerPC : core and bus interface
- Decoupling the core from cache and bus through
load and store buffers
- Default ordering of load and store transactions
- Enforcing the ordering through eieio (called mbar
in Book E) and sync (called msync in Book E)
instructions
- Purpose of the Guarded attribute
- Consequence for high level development of IO
drivers
MEMORY MANAGEMENT UNIT
- Requirements for kernels enabling dynamic memory
mapping
- Single process multi-thread versus multiprocess
multi-thread kernels
- Objectives of the MMU : page protection,
definition of page attribute, address translation
- Segment and page translation
- Table search mechanisms : benefits of a software
table search
- Operation of TLB caches
- TLB programming, static initialization
CACHE AND DATA COHERENCY
- Introduction to cache memory
- Cache organization
- Write policies
- Replacement algorithms
- Data flow between external main memory
- 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)
- Software enforced coherency
- Hardware enforced coherency
EXCEPTION MECHANISM
- Software exceptions vs interrupts
- Save / restore registers
- Organization of an exception handler : prolog,
body and epilog
- How to find the cause of the exception, syndrome
registers
- Design of a generic exception handler based on a
vector table
- Interrupt management, addition of a critical
interrupt in Book E
- Integrated interrupt controller
- Requirements for interrupt nesting
MULTITASK
- Management of boolean semaphores, lwarx / stwcx.
instruction pair
- Stack switch, use of SPRG registers
- Definition of the set of registers that determine
the stack state
- Management of task lists in single and multi
processor systems
PowerPC DEBUG SOLUTIONS
- On-chip debug logic
- How it communicates with the debug station : BDM
or JTAG connection
- Hardware breakpoints
- Real-time trace
- Debugging software when caches are active
- The performance monitor
|
|
|
 |
|
|
|
|
|
|
| |
|
 |
|
Documentation
Training manuals will be given to participants during
training. Precise and easy of use, those notes can be
used as a reference afterwards. |
|
|
 |
|
|
|
|
|
|
| |
|
 |
|
Other trainings :
If you want to know our other training courses and their
contents, you can consult or download our complete
training courses list on this page : Training courses - General
presentation |
|
|
 |
|
|
|
|
|
|
|