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.