TY - JOUR
T1 - Building timing predictable embedded systems
AU - Axer, Philip
AU - Ernst, Rolf
AU - Falk, Heiko
AU - Girault, Alain
AU - Grund, Daniel
AU - Guan, Nan
AU - Jonsson, Bengt
AU - Marwedel, Peter
AU - Reineke, Jan
AU - Rochange, Christine
AU - Sebastian, Maurice
AU - Von Hanxleden, Reinhard
AU - Wilhelm, Reinhard
AU - Yi, Wang
PY - 2014/1/1
Y1 - 2014/1/1
N2 - A large class of embedded systems is distinguished from general-purpose computing systems by the need to satisfy strict requirements on timing, often under constraints on available resources. Predictable system design is concerned with the challenge of building systems for which timing requirements can be guaranteed a priori. Perhaps paradoxically, this problem has become more difficult by the introduction of performanceenhancing architectural elements, such as caches, pipelines, and multithreading, which introduce a large degree of uncertainty and make guarantees harder to provide. The intention of this article is to summarize the current state of the art in research concerning how to build predictable yet performant systems. We suggest precise definitions for the concept of "predictability", and present predictability concerns at different abstraction levels in embedded system design. First, we consider timing predictability of processor instruction sets. Thereafter, we consider how programming languages can be equipped with predictable timing semantics, covering both a language-based approach using the synchronous programming paradigm, as well as an environment that provides timing semantics for a mainstream programming language (in this case C). We present techniques for achieving timing predictability on multicores. Finally, we discuss how to handle predictability at the level of networked embedded systems where randomly occurring errors must be considered.
AB - A large class of embedded systems is distinguished from general-purpose computing systems by the need to satisfy strict requirements on timing, often under constraints on available resources. Predictable system design is concerned with the challenge of building systems for which timing requirements can be guaranteed a priori. Perhaps paradoxically, this problem has become more difficult by the introduction of performanceenhancing architectural elements, such as caches, pipelines, and multithreading, which introduce a large degree of uncertainty and make guarantees harder to provide. The intention of this article is to summarize the current state of the art in research concerning how to build predictable yet performant systems. We suggest precise definitions for the concept of "predictability", and present predictability concerns at different abstraction levels in embedded system design. First, we consider timing predictability of processor instruction sets. Thereafter, we consider how programming languages can be equipped with predictable timing semantics, covering both a language-based approach using the synchronous programming paradigm, as well as an environment that provides timing semantics for a mainstream programming language (in this case C). We present techniques for achieving timing predictability on multicores. Finally, we discuss how to handle predictability at the level of networked embedded systems where randomly occurring errors must be considered.
KW - Embedded systems
KW - Predictability
KW - Resource sharing
KW - Safety-critical systems
KW - Timing analysis
UR - http://www.scopus.com/inward/record.url?scp=84961291367&partnerID=8YFLogxK
U2 - 10.1145/2560033
DO - 10.1145/2560033
M3 - Journal article
SN - 1539-9087
VL - 13
JO - ACM Transactions on Embedded Computing Systems
JF - ACM Transactions on Embedded Computing Systems
IS - 4
M1 - 82
ER -