Adaptability: the Key for Future Embedded Systems

Luigi Carro and Antonio Carlos Schneider Beck Filho
Universidade Federal do Rio Grande do Sul


Different trends can be observed in the hardware industry for embedded systems, which are presently being required to run several different applications with distinct behaviors, becoming more heterogeneous. At the same time, users also demand an extended operation, with extra pressure for energy efficiency. While transistor size shrinks, processors are getting more sensitive to fabrication defects, aging and soft faults, increasing the costs associated to their production. To make this situation even worse, designers are stuck with the need to keep binary compatibility, in order to support the huge amount of embedded software already deployed.


In this scenario, different hardware resources must be provided at different levels: to better execute a single thread, according to a given set of constraints at a certain time; to allocate resources and schedule different processes depending on availability, performance requirements and the energy budget; or to sustain working conditions when a fault occurs during run time, or even to increase yield to allow cost reductions even with aggressive scaling or the use of unreliable technologies.


In this tutorial, we present and discuss several strategies to achieve such different and interrelated goals by the use of adaptability. We review adaptive architectures that work at the processing and communication levels, to achieve performance optimization, energy savings and fault tolerance at the same time. Moreover, several dynamic techniques, such as binary translation and core allocation in a MPSOC are reviewed, so that one can sustain binary compatibility and trade performance by energy and/or fault tolerance. We also discuss how one can combine several techniques together, and how they could be applied to future embedded systems.


The following topics will be covered:

  • Introduction: Why does one need adaptability?
    This section explains the different trade-offs that must be made during the design phase of an embedded device, and show how only adaptability can cover several different corner cases while still allowing huge fabrication volumes.
  • Heterogeneous behavior of the applications and systems
    We will show, using examples, how the behavior of even a single thread execution is heterogeneous, and how difficult it is to distribute heterogeneous tasks processes among the components in a SOC environment, reinforcing the need for adaptability.
  • Adaptive and reconfigurable architectures
    An overview of adaptive and reconfigurable systems and their basic functioning. We will also discuss those which present some level of dynamic adaptability.
  • Communication architectures - NoCs
    We discuss how important they are for future embedded systems, which will have more heterogeneous applications being executed, and how the communication pattern might aggressively change, even with the same set of heterogeneous cores, from application to application.
  • Dynamic Techniques
    How dynamic techniques work, such as binary translation and trace reuse, to sustain adaptability and still maintain binary compatibility.
  • Putting it all together
    An analysis on the aforementioned techniques: how they can work together and what will be the impact of their use in future embedded systems. What is the price to pay for adaptability, and for which kind of applications it is well suited.
  • Conclusions
    A summary of the research discussed and the road ahead.