aiT WCET Analyzers statically compute tight bounds for the worst-case execution time (WCET) of tasks in real-time systems. They directly analyze binary executables and take the intrinsic cache and pipeline behavior into account.
In real-time systems, timely task completion is of the essence. Each real-time task has to be completed within a specified time frame in order to ensure that the system works correctly. In other words, it is essential that the WCET of each task is known.
However, computing the WCET is a challenge:
- Testing by repeatedly measuring the execution time of a task is not only tedious, but also typically not safe. It is often impossible to prove that the conditions determining maximum execution time have been taken into account.
- Modern processor components such as caches and pipelines complicate the task of determining the WCET considerably, since the execution time of a single instruction may depend on the execution history.
- Analysis methods that do not consider cache and pipeline behavior typically overestimate the WCET by several orders of magnitude, thus leading to a substantial waste of hardware resources.
aiT WCET Analyzers provide the solution to these problems: they statically analyze a task’s intrinsic cache and pipeline behavior based on formal cache and pipeline models. This enables correct and tight upper bounds to be computed for the worst-case execution time.
aiT was designed in the IST project DAEDALUS according to the requirements of Airbus France for validating the timing behavior of critical avionics software, including the flight control software of the A380, the world’s largest passenger aircraft.
The analyzers are based on the technique of abstract interpretation. A graphical user interface supports the visualization of the worst-case program path and the interactive inspection of all pipeline and cache states at arbitrary program points.
- aiT-computed bounds are extremely tight and thus reflect the actual performance of your system. Ensuring deadline adherence is not done at the expense of hardware resources.
- aiT-computed bounds are valid for all inputs and each execution of a task. Extensive timing testing is a thing of the past.
- aiT directly analyzes binary executables. It is widely independent of the compiler and source code language used. This means no modification of your toolchain or the system’s operational behavior and performance is required.
aiT supports tight integration with many state-of-the-art development tools.
aiT can also be combined with other analysis tools from AbsInt (e.g. StackAnalyzer for stack usage analysis) in a single intuitive user interface called a³.