Optimization in Embedded Systems


In contrast to classical computers like, e.g., laptops, PCs or servers, embedded systems have only a very limited amount of resources at their disposal. Clock frequencies of embedded micro-controllers often reach only few MHz, word-lengths of 8 or 16 bits are commonly found, memories frequently store only few mega- or kilobytes. At the same time, such systems have to fulfill enormously high requirements like, e.g., to finish computations within given and fixed time, to be energy-efficient, not to violate constraints in terms of size and weight, etc. Thus, the aspect of optimization plays a central role during the design of embedded systems: Code that is to be executed on an embedded system has to be optimized such that it gets by with the available and scarce resources and such that it simultaneously fulfills all requirements.

This seminar covers all areas related to the optimization of embedded systems at all levels encountered during system design and featuring both software- and hardware-related approaches. Covered areas include, e.g.:

  • Compiler-based code optimizations
  • Embedded (real-time) operating systems
  • Optimizations of real-time properties, energy-efficiency, safety, etc.
  • Analysis techniques for the validation of resource consumption


Topics covered by this seminar include amonst others:

  • Shared-cache analysis
  • CPRD analysis
  • Cache locking
  • Prefetching
  • Code positioning
  • Scratchpad allocation approaches
  • Influence of TDMA-based bus arbitration on timing predictability
  • WCET-optimized bus arbitration in multi-cores
  • Task assignment for MPSoC systems
  • Dynamic Voltage Scaling
  • Dynamic code decompression