Keywords

These keywords were added by machine and not by the authors. This process is experimental and the keywords may be updated as the learning algorithm improves.

Systems will have to change and evolve. Different trends can be observed in the embedded systems industry, for its products are presently being required to run several different applications with distinct behaviors, becoming even more heterogeneous, with extra pressure on power and energy consumption. Furthermore, while transistor size shrinks, processors are becoming more sensitive to manufacturing defects, aging and soft faults, increasing the costs associated with their production. To make this situation even worse, designers are stuck with the need to sustain binary compatibility, in order to support the huge amount of software already deployed.

Therefore, 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 at run time, or to increase yield to allow cost reductions even with aggressive scaling or the use of unreliable technologies.

In this changing scenario, adaptability is the key. Adaptive systems will have to work at the processing and communication levels to achieve performance optimization, energy savings and fault tolerance at the same time. The techniques discussed throughout this book show clear steps towards this main objective. However, there is still a lot of work to be done and several strategies must be continuously developed together to achieve such different and interrelated goals.