course outline daycontents day 1 introduction motivation, definitions, properties of embedded...
TRANSCRIPT
Course Outline
Day Contents
Day 1
IntroductionMotivation, definitions, properties of embedded systems,outline of the current course
How to specify embedded systems?
The problem with threads, requirements for specifications, models of computation, communication paradigms, finite state machine based model for local systems
How to specify embedded systems?
Finite state machine based model for distributed systems, data flow based models, Kahn process networks, synchronous dataflow, computational graphs, Petri nets
LabSpecification languages: simulation of Kahn process networks
Day 2
How to specify embedded systems?
Task graphs, computational graphs in UML (sequence charts, activity charts), ADA, imperative models of computation and message passing libraries (MPI), discrete event models (VHDL, SystemC), UML for real-time
Lab:Specification languages:Ptolemy heterogeneous system modeling
Mapping of applications to
platforms
Scheduling algorithms for aperiodic processes; rate monotonic scheduling (RMS)
Mapping of applications to
platforms
Earliest deadline first (EDF) scheduling, priority inversion, resource access protocols, impact on middleware, scheduling for dependent tasks.
Course Outline
Day Contents
Day 3
Mapping of applications to
platforms
Hardware/Software partitioning in COOL, Daedalus design-flow, ETH Zürich approach for mapping to platforms
Lab:Real-time scheduling: Simulation of aperiodic and periodic scheduling, priority inversion, resource access protocols
How to make designs
efficient?*
Prepass optimizations, loop nest splitting, polytope model, genetic algorithm, search space exploration, results
How to make designs
efficient?*
High-level intermediate representation, ICD-C, low-level intermediate representation, parallelization for multi-DSPs, program recovery, data partitioning, parallelization, results
Day 4
How to deal with slow memories?
The problem with memories, design objectives, energy models, scratch-pad memories, non-overlaying allocation for code and global variables
Lab Modeling of scratch-pad optimization as an integer
linear program, computation of energy savings
How to deal with slow memories?
Scratch-pad partitioning, allocation of stack and heap, impact on predictability, overlaying allocation for single threads, array allocation, multiple hierarchy levels
How to deal with slow memories?
Allocation for multiple threads, dynamic sets of applications, scratch-pads with memory management unit, multiple processors, cache way prediction; improving the locality of references for caches: data layout transformations, loop tiling
Course Outline
Day Contents
Day 5
How to deal with slow memories?
Exploiting caches: simple loop transformations, prefetching; Optimizations for the main memory: array folding, code layout transformations, array folding; flash memory: flash transaction layer; secondary memory algorithms
LabModeling of scratch-pad optimization as an integer
linear program, computation of energy savings
Is my software fast enough,
always?*
Definition of worst case execution, workflow for WCET analyzer aiT, coupling worst case analysis and compilation, switching of worst case execution paths, function specialization, results
Wrap upLanguages for describing memory hierarchies;curricula for embedded system education;overall discussion regarding the course.
* Lecture by Dr. Heiko Falk.