ALaRI Hang Glider

Search form

Education and Innovation in Embedded Systems Design

USI Università della Svizzera italiana, USI Faculty of Informatics, Advanced Learning and Research Institute USI Università della Svizzera italiana USI Faculty of Informatics USI Advanced Learning and Research Institute

HW/SW Co-design

Professor Thiele Lothar
Platzner Marco
Course program MAS
Year 1
Semester Spring
Category Elective
ECTS 3
Academic year 2013/2014

Course type: Lecture

Value in ECTS: 3

Academic year 2013/2014 - Spring semester

Overview of the Course
The heterogeneity of today´s embedded systems faces developers and engineers with new problems when it comes to specifying, simulating, designing, and optimizing such complex systems. Implementations are typically comprised of software programmable components, programmable or dedicated hardware components, communication, and memory subsystems. In addition, different models of computation and different system objectives must be combined. The design of embedded systems is particularly driven by cost vs. benefit trade-offs. As in many other areas in engineering, the optimisation involves the simultaneous consideration of several incomparable and often competing objectives, such as cost, power dissipation, reliability, etc. As a consequence, automated design tools are necessary in order to handle the complexity of today´s systems, and to support the designer in finding the trade -off which best fits the market requirements. After introducing some necessary fundamental concepts, this course discusses major aspects of hardware/ software co design: partitioning, design space exploration, interface synthesis, and estimation.

Contents

  • Models for describing hardware and software components (specification methods, state-charts, process networks, determinacy)
  • Performance analysis and estimation techniques (simulation techniques, analytic methods)
  • Worst case execution time analysis (abstract interpretation, microarchitecture, pipelining, cache analysis)
  • Multi-objective optimisation and design space exploration techniques (binding, scheduling, allocation, high-level compilation strategies)
  • Partitioning techniques (integer linear program, hierarchical clustering, simulated annealing, greedy approaches)
  • Formal performance analysis of distributed (embedded) systems.