As embedded designs become more widespread and complex they tend to use more modern processors. Such processors will often include features (such as pipelines, caches, and branch predictors) which help to improve performance. While such performance improvements are welcome, they come at the price of predictability. More specifically, the use of advanced processor hardware makes it difficult to predict the worst-case execution time (WCET) of tasks. As part of an effort to address these problems, Puschner and Burns (Proc. 7th IEEE International Workshop on Object-Oriented Real-Time Dependable Systems, Jan. 2002) proposed the “single path programming paradigm”. As its name implies program code written according to this paradigm has only one execution path: this helps to ensure a constant execution time. Yet there are two problems with the techniques described by Puschner and Burns: (i) they are applicable only to hardware which supports “conditional move” or similar instructions; (ii) their balancing approach increases power consumption. In the present paper, we begin to address both of these problems with a set of novel code-balancing techniques. The effectiveness of these new techniques is explored by means of an empirical study.
The different versions of the original document can be found in:
Published on 01/01/2007
Volume 2007, 2007
DOI: 10.1115/detc2007-35375
Licence: CC BY-NC-SA license
Are you one of the authors of this document?