course outline daycontents day 1 introduction motivation, definitions, properties of embedded...

3
Course Outline Day Contents Day 1 Introductio n Motivation, 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 Lab Specification 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 application s to platforms Scheduling algorithms for aperiodic processes; rate monotonic scheduling (RMS) Mapping of application s to platforms Earliest deadline first (EDF) scheduling, priority inversion, resource access protocols, impact on middleware, scheduling for dependent tasks.

Upload: colleen-berry

Post on 26-Dec-2015

213 views

Category:

Documents


1 download

TRANSCRIPT

Page 1: Course Outline DayContents Day 1 Introduction Motivation, definitions, properties of embedded systems, outline of the current course How to specify embedded

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.

Page 2: Course Outline DayContents Day 1 Introduction Motivation, definitions, properties of embedded systems, outline of the current course How to specify embedded

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

Page 3: Course Outline DayContents Day 1 Introduction Motivation, definitions, properties of embedded systems, outline of the current course How to specify embedded

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.