View the site in Français View the site in English (USA) Site displayed in English (GB)
You are here: ac6 > ac6-formation > Processors (generic) > ColdFire System Design
Download Catalog
Download Catalog
Download as PDF
Download as PDF
Write us
Write us
Printable version
Printable version
 

PG3 ColdFire System Design

This course has been designed for developers involved in a ColdFire 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 ColdFires: 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, ColdFire 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 ColdFires (hardware breakpoints, real-time trace, watchpoints) are studied through the use of Metrowerks debugger.
A lot of programming examples have been developed by ACSYS to explain the ColdFire assembly language.

  •They have been developed with Metrowerks compiler and are executed under CodeWarrior debugger.
A more detailed course description is available on request at info@ac6-formation.com
Prerequisites
bullet_jaune_2 A basic understanding of processor / DSP is recommended.

Outline
ColdFire PROGRAMMING
bullet_jaune_2 ColdFire core versions : V2, V2E, V3, V4, V4E
bullet_jaune_2 Register set, data, address and control registers
bullet_jaune_2 Data type instantiation for ColdFire
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 Explaining the difference between V2, V3 and V4 pipelines
bullet_jaune_2 Mechanisms used to boost performance : branch prediction, branch target address cache
bullet_jaune_2 Guidelines to optimize execution time
bullet_jaune_2 Serializations, nop instruction, determining when this instruction is really required
DATA PATH
bullet_jaune_2 Highlighting the frequency domains present in ColdFires : core and bus interface
bullet_jaune_2 Decoupling the core from cache and bus through load and store buffers
bullet_jaune_2 Enforcing the completion of commited store transactions through nop instruction
bullet_jaune_2 Consequence for high level development of IO drivers
bullet_jaune_2 How to make bus errors recoverable
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 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, LRU, PLRU, FIFO
bullet_jaune_2 Data flow between external main memory, L1 and load / store unit
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
EXCEPTION MECHANISM
bullet_jaune_2 Software exceptions vs interrupts
bullet_jaune_2 Format of the exception stack frame
bullet_jaune_2 Vector table operation
bullet_jaune_2 Development of basic functions that get or set a vector
bullet_jaune_2 Requirements for interrupt nesting
MULTITASK
bullet_jaune_2 Management of boolean semaphores
bullet_jaune_2 Stack switch
bullet_jaune_2 Definition of the set of registers that determine the stack state
bullet_jaune_2 Management of task lists
ColdFire DEBUG SOLUTIONS
bullet_jaune_2 On-chip debug logic
bullet_jaune_2 How it communicates with the debug station : BDM connection
bullet_jaune_2 Hardware breakpoints
bullet_jaune_2 Real-time trace
bullet_jaune_2 Debugging software when caches are active