Results 1  10
of
41
Modeling Complex Flows for WorstCase Execution Time Analysis
, 2000
"... Knowing the WorstCase Execution Time (WCET) of a program is necessary when designing and verifying realtime systems. The WCET depends both on the program ow (like loop iterations and function calls), and on hardware factors like caches and pipelines. ..."
Abstract

Cited by 65 (8 self)
 Add to MetaCart
(Show Context)
Knowing the WorstCase Execution Time (WCET) of a program is necessary when designing and verifying realtime systems. The WCET depends both on the program ow (like loop iterations and function calls), and on hardware factors like caches and pipelines.
The WorstCase Execution Time Problem – Overview of Methods and Survey of Tools
 ACM Transactions on Embedded Computing Systems
, 2008
"... ATRs (AVACS Technical Reports) are freely downloadable from www.avacs.org Copyright c © April 2007 by the author(s) ..."
Abstract

Cited by 54 (15 self)
 Add to MetaCart
ATRs (AVACS Technical Reports) are freely downloadable from www.avacs.org Copyright c © April 2007 by the author(s)
Speed: Precise and efficient static estimation of program computational complexity
 In POPL’09
, 2009
"... This paper describes an interprocedural technique for computing symbolic bounds on the number of statements a procedure executes in terms of its scalar inputs and userdefined quantitative functions of input datastructures. Such computational complexity bounds for even simple programs are usually ..."
Abstract

Cited by 47 (5 self)
 Add to MetaCart
(Show Context)
This paper describes an interprocedural technique for computing symbolic bounds on the number of statements a procedure executes in terms of its scalar inputs and userdefined quantitative functions of input datastructures. Such computational complexity bounds for even simple programs are usually disjunctive, nonlinear, and involve numerical properties of heaps. We address the challenges of generating these bounds using two novel ideas. We introduce a proof methodology based on multiple counter instrumentation (each counter can be initialized and incremented at potentially multiple program locations) that allows a given linear invariant generation tool to compute linear bounds individually on these counter variables. The bounds on these counters are then composed together to generate total bounds that are nonlinear and disjunctive. We also give an algorithm for automating this proof
Parametric timing analysis
 Workshop on Language, Compilers, and Tools for Embedded Systems
, 2001
"... Embedded systems often have realtime constraints. Traditional timing analysis statically determines the maximum execution time of a task or a program in a realtime system. These systems typically depend on the worstcase execution time of tasks in order to make static scheduling decisions so that ..."
Abstract

Cited by 43 (9 self)
 Add to MetaCart
(Show Context)
Embedded systems often have realtime constraints. Traditional timing analysis statically determines the maximum execution time of a task or a program in a realtime system. These systems typically depend on the worstcase execution time of tasks in order to make static scheduling decisions so that tasks can meet their deadlines. Static determination of worstcase execution times imposes numerous restrictions on realtime programs, which include that the maximum number of iterations of each loop must be known statically. These restrictions can significantly limit the class of programs that would be suitable for a realtime embedded system. This paper describes workinprogress that uses static timing analysis to aid in making dynamic scheduling decisions. For instance, different algorithms with varying levels of accuracy may be selected based on the algorithm’s predicted worstcase execution time and the time allotted for the task. We represent the worstcase execution time of a function or a loop as a formula, where the unknown values affecting the execution time are parameterized. This parametric timing analysis produces formulas that can then be quickly evaluated at runtime so dynamic scheduling decisions can be made with little overhead. Benefits of this work include expanding the class of applications that can be used in a realtime system, improving the accuracy of dynamic scheduling decisions, and more effective utilization of system resources. 1.
Automatic Derivation of Loop Bounds and Infeasible Paths for WCET Analysis Using Abstract Execution
 In RTSS
, 2006
"... Static WorstCase Execution Time (WCET) analysis is a technique to derive upper bounds for the execution times of programs. Such bounds are crucial when designing and verifying realtime systems. A key component for statically deriving safe and tight WCET bounds is information on the possible prog ..."
Abstract

Cited by 34 (4 self)
 Add to MetaCart
(Show Context)
Static WorstCase Execution Time (WCET) analysis is a technique to derive upper bounds for the execution times of programs. Such bounds are crucial when designing and verifying realtime systems. A key component for statically deriving safe and tight WCET bounds is information on the possible program flow through the program. Such flow information can be provided manually by user annotations, or automatically by a flow analysis. To make WCET analysis as simple and safe as possible, it should preferably be automatically derived, with no or very limited user interaction. In this paper we present a method for deriving such flow information called abstract execution. This method can automatically calculate loop bounds, bounds for including nested loops, as well as many types of infeasible paths. Our evaluations show that it can calculate WCET estimates automatically, without any user annotations, for a range of benchmark programs, and that our techniques for nested loops and infeasible paths sometimes can give substantially better WCET estimates than using loop bounds analysis only. 1
Static checking of interruptdriven software
 In Proc. of the 23rd Intl. Conf. on Software Engineering (ICSE
, 2001
"... AbstractResourceconstrained devices are becoming ubiquitous. Examples include cell phones, palm pilots, and digital thermostats. It can be difficult to fit required functionality into such a device without sacrificing the simplicity and clarityof the software. Increasingly complex embedded systems ..."
Abstract

Cited by 30 (9 self)
 Add to MetaCart
(Show Context)
AbstractResourceconstrained devices are becoming ubiquitous. Examples include cell phones, palm pilots, and digital thermostats. It can be difficult to fit required functionality into such a device without sacrificing the simplicity and clarityof the software. Increasingly complex embedded systems require extensive bruteforce testing, making development andmaintenance costly. This is particularly true for system components that are written in assembly language. Static checking has the potential of alleviating these problems, but until now there has been little tool support for programming at theassembly level.
Controlflow refinement and progress invariants for bound analysis
 In PLDI
, 2009
"... Symbolic complexity bounds help programmers understand the performance characteristics of their implementations. Existing work provides techniques for statically determining bounds of procedures with simple controlflow. However, procedures with nested loops or multiple paths through a single loop a ..."
Abstract

Cited by 28 (6 self)
 Add to MetaCart
(Show Context)
Symbolic complexity bounds help programmers understand the performance characteristics of their implementations. Existing work provides techniques for statically determining bounds of procedures with simple controlflow. However, procedures with nested loops or multiple paths through a single loop are challenging. In this paper we describe two techniques, controlflow refinement and progress invariants, that together enable estimation of precise bounds for procedures with nested and multipath loops. Controlflow refinement transforms a multipath loop into a semantically equivalent code fragment with simpler loops by making the structure of path interleaving explicit. We show that this enables nondisjunctive invariant generation tools to find a bound on many procedures for which previous techniques were unable to prove termination. Progress invariants characterize relationships between
Bounding worstcase data cache behavior by analytically deriving cache reference patterns
 In IEEE RealTime Embedded Technology and Applications Symposium
, 2005
"... While caches have become invaluable for higherend architectures due to their ability to hide, in part, the gap between processor speed and memory access times, caches (and particularly data caches) limit the timing predictability for data accesses that may reside in memory or in cache. This is a si ..."
Abstract

Cited by 26 (8 self)
 Add to MetaCart
(Show Context)
While caches have become invaluable for higherend architectures due to their ability to hide, in part, the gap between processor speed and memory access times, caches (and particularly data caches) limit the timing predictability for data accesses that may reside in memory or in cache. This is a significant problem for realtime systems. The objective our work is to provide accurate predictions of data cache behavior of scalar and nonscalar references whose reference patterns are known at compile time. Such knowledge about cache behavior provides the basis for significant improvements in bounding the worstcase execution time (WCET) of realtime programs, particularly for hardtoanalyze data caches. We exploit the power of the Cache Miss Equations (CME) framework but lift a number of limitations of traditional CME to generalize the analysis to more arbitrary programs. We further devised a transformation, coined “forced ” loop fusion, which facilitates the analysis across sequential loops. Our contributions result in exact data cache reference patterns — in contrast to approximate cache miss behavior of prior work. Experimental results indicate improvements on the accuracy of worstcase data cache behavior up to two orders of magnitude over the original approach. In fact, our results closely bound and sometimes even exactly match those obtained by tracedriven simulation for worstcase inputs. The resulting WCET bounds of timing analysis confirm these findings in terms of providing tight bounds. Overall, our contributions lift analytical approaches to predict data cache behavior to a level suitable for efficient static timing analysis and, subsequently, realtime schedulability of tasks with predictable WCET. 1.
Chronos: A timing analyzer for embedded software
 Science of Computer Programming
, 2007
"... Estimating the Worstcase Execution Time (WCET) of realtime embedded software is an important problem. WCET is defined as the upper bound b on the execution time of a program P on a processor X such that for any input the execution time of P on X is guaranteed to not exceed b. Such WCET estimates a ..."
Abstract

Cited by 23 (8 self)
 Add to MetaCart
(Show Context)
Estimating the Worstcase Execution Time (WCET) of realtime embedded software is an important problem. WCET is defined as the upper bound b on the execution time of a program P on a processor X such that for any input the execution time of P on X is guaranteed to not exceed b. Such WCET estimates are crucial for schedulability analysis of realtime systems. In this paper, we present Chronos, a static analysis tool for generating WCET estimates of C programs. It performs detailed microarchitectural modeling to capture the timing effects of the underlying processor platform. Consequently, we can provide safe but tight WCET estimate of a given C program running on a complex modern processor. Chronos is an opensource distribution specifically suited to the needs of the research community. We support processor models captured by the popular SimpleScalar architectural simulator rather than targeting specific commercial processors. This makes Chronos flexible, extensible and easily accessible to the researcher.
A numerical abstract domain based on expression abstraction and max operator with application in timing analysis
 In CAV
, 2008
"... Abstract. This paper describes a precise numerical abstract domain for use in timing analysis. The numerical abstract domain is parameterized by a linear abstract domain and is constructed by means of two domain lifting operations. One domain lifting operation is based on the principle of expression ..."
Abstract

Cited by 15 (4 self)
 Add to MetaCart
(Show Context)
Abstract. This paper describes a precise numerical abstract domain for use in timing analysis. The numerical abstract domain is parameterized by a linear abstract domain and is constructed by means of two domain lifting operations. One domain lifting operation is based on the principle of expression abstraction (which involves defining a set of expressions and specifying their semantics using a collection of directed inference rules) and has a more general applicability. It lifts any given abstract domain to include reasoning about a given set of expressions whose semantics is abstracted using a set of axioms. The other domain lifting operation domain via introduction of max expressions. We present experimental results demonstrating the potential of the new numerical abstract domain to discover a wide variety of timing bounds (including polynomial, disjunctive, logarithmic, exponential, etc.) for small C programs. 1