The technology behind the award-winning aiT WCET Analyzers.
In real-time systems, tasks are subject to deadlines. It is
essential that the worst-case execution time (WCET) of each task is known in
order to ensure that the system works correctly. The consequences of a missed
deadline range from simply annoying to disastrous — just imagine a flight
control software that does not react in time. It is the duty of the developer
to guarantee that the tasks will always meet the deadlines
specified.
However, computing the worst-case execution time is a challenge:
- Simply measuring the execution time of a task for a given input
is typically not safe. It is mostly impossible to prove that
the conditions leading to maximum execution time are taken into account.
- Modern processor components like 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. For instance, the safe yet almost
never valid assumption of a cache hit never occurring results in a serious
overestimate of the WCET. Overestimates of the WCET in turn
result in an overscaled hardware design.
- Switching off instruction and data caches to simplify WCET prediction can
lead to severe performance degradation (a factor of up to 30
for PowerPC 604, according to a study by EADS).
This is where AbsInt comes in. Over the recent decades we have
built up an unparalleled expertise in the area of WCET predictions for real-time
systems. Our technology is based on statically analyzing a task’s intrinsic cache
and pipeline behavior. This allows us to compute correct and
tight upper bounds for the worst-case execution time of the
tasks in your application:
- The tight bounds reflect the real performance
of the system. Guaranteeing the deadlines to be met is not paid with
a waste of hardware resources. Safety-critical systems can be designed
smaller and more cost-effectively.
- The computed time bounds are valid for all inputs
and for each execution of the task. No extensive timing measurements by tests are
required any more.
- Our tools directly analyze executables. No change to
your tool-chain and no change to the program's operational behavior and
performance is required.
Further analysis features
- Selectable start points enable the
program sections of interest to be focused on.
- Interprocedural analysis enables
cache and pipeline behavior to be precisely predicted taking all procedures
of your task into account.
- Complex interactions between cache and
pipeline behavior are taken into account. For example, on some architectures
the empty cache does not represent the worst-case cache configuration.
- The analyses developed by AbsInt are generic,
i.e. they can be adapted to different processor architectures with moderate
effort.