Bound-T

Execution Time Analyzer
from
Tidorum Ltd

A bounty for the developers of real-time, embedded software

Analyze your code with Bound-T to get

Confidence in real-time performance

A real-time program must meet its deadlines every time and all the time. Bound-T is a software tool that helps you create reliable real-time software. By static analysis of the code, Bound-T computes an upper bound on the execution time. Thus it is easy to verify that deadlines are met even in the worst-case execution path.

Diagram: Bound-T Context

Bound-T lets you deliver hard real-time software with confidence in its performance. For soft real-time programs, Bound-T can find the execution time of different execution scenarios to help you compute average response times and CPU loads. In both cases, Bound-T reduces the cost of performance verification.

Summary of Bound-T features

Advantages of static analysis

Traditionally, real-time performance is verified by measuring the execution time of a set of test cases. It is often hard to define the worst-case execution scenario, and cumbersome to set up a realistic test harness in which the scenario can be run and measured. Static analysis, as in Bound-T, needs neither test cases nor test harness.

Automatic loop analysis

Using sophisticated methods of data-flow analysis and arithmetic modelling, Bound-T finds the loop-counter variables and bounds their initial and final values, thus bounding the number of loop repetitions.

Independent of programming language

Since Bound-T analyses the executable code, it is independent of the source language of the target program. It even handles mixed-language programs, for example programs that use assembly language libraries.

In some cases, Bound-T may be sensitive to the target compiler. Some compilers use library routines with non-standard calling sequences, or special code idioms for things like switch/case statements. Tidorum strives to make Bound-T compatible with the major compilers for each target.

Source-code is optional

Bound-T can analyse code for which the source is not at hand, for example mathematical libraries. (Note that target software licenses may limit such analysis.)

Assertions give you control

Rare events, such as hardware failures, can be excluded from the "worst case" software scenario by user-written assertions on variable values, loop bounds, and the number of times specific calls are executed. Such assertions also support the analysis of complex programs that cannot be analysed fully automatically. Good coding style reduces the need for assertions. Assertions are written as text files. By modifying the assertions, various execution scenarios can be analysed, for example to find the program's response times under various input loads.

Useful in all life-cycle phases

In analysis and architectural design, you can use Bound-T to verify real-time design issues such as execution time budgets for each operation. A skeleton program can be built with the real loop and call structure but with all computations replaced by dummy loops that use the budgeted time. Bound-T can compute the overall execution time to verify that the overall deadlines are meet with these budgets.

During coding and testing, you can use Bound-T to verify that each operation meets its time budgets. The program does not have to be complete or executable, only linkable.

Finally, you can verify that the full program meets its deadlines by analysing its schedulability based on the worst-case execution times given by Bound-T.


Supported targets and platforms

Precision and capacity

Bound-T is aimed chiefly at small and mid-sized embedded processors. It is able to model pipeline timing but does not currently model the real behaviour of caches. This leads to overestimated (conservative) times for such features.

Static execution-time analysis is unsolvable in general. For Bound-T, the target program mustbe recursion-free and have a reducible loop structure. With automatic loop analysis, the analysis time depends strongly on the flow-complexity of target subprograms, otherwise the analysis time is proportional to the size of the target program.

Available targets

Since Bound-T analyses machine code, a specific version is provided for each type of target. The currently supported target processors are shown in the table below.

Type Series Models Compatible tool-chains Available
8-bit controller Intel-8051 Several Keil C51, IAR Systems, and others Now
32-bit DSP Analog Devices ADSP-21020< ADI g21k (gcc) Now
32-bit general SPARC V7 ERC32 single-chip gcc, Gnat, ORK Now

Work is in progress on support for the target processors ARM7TDMI, Atmel AVR and Renesas H8/300.

Tidorum tracks the market for embedded processors to select new targets and welcomes your suggestions. Thanks to modular design, Tidorum can adapt Bound-T to customer-specified targets; please ask for an offer.

Available platforms

Bound-T can be executed on host platforms as follows. All targets are generally supported on all platforms.

CPU O/S Available
SPARC Solaris Now
Intel Linux Now
Intel Win NT (with CygWin) Now

Bound-T is implemented using standard programming languages and portable coding styles. If you would like to use Bound-T on a platform that is not listed above, please us known and we will evaluate if a port is feasible.


Provenance

The company

Tidorum Ltd  was founded in 2003 to further develop, sell and support Bound-T, taking over these functions from Space Systems Finland Ltd (SSF) where Bound-T was first developed.

The tool

SSF developed Bound-T at first for the European Space Agency and successfully used it in space projects (for example, in the DEBIE instrument. Tidorum is now making Bound-T commercially available in various ways as detailed below.

Products and services

Analysis service

Tidorum offers a service where Tidorum uses Bound-T to analyse the real-time performance of a customer program. This can take place at Tidorum premises, or at the customer site.

Bound-T licenses

Bound-T will be delivered for use at customer premises under various forms of licensing. Please contact Tidorum for further information.

Support and training

Tidorum will provide support and training for Bound-T. Please contact Tidorum and let us know your needs.

Documentation

The following documents are supplied with Bound-T and are also freely available on the web:


For more information

Web http://www.tidorum.fi
E-mail info@tidorum.fi
Phone +358 (0) 40 563 9186
Fax Not available
Mail Tidorum Ltd
Tiirasaarentie 32, FI-00200 Helsinki, Finland

Please note that our office hours are 9 to 16 Finnish time (GMT + 2 hours, or +3 hours in the summer).


Acknowledgements. Bound-T was first developed at Space Systems Finland Ltd (SSF) with support from the European Space Agency (ESA/ESTEC). Free software has played an important role: we are grateful to Ada Core Technology for the Gnat compiler, to William Pugh and others for the Omega system, to Michel Berkelaar for the lp-solve program, and to Mats Weber, Ted Dennison and EPFL-DI-LGL for Ada programming component libraries. Call-graphs and flow-graphs from Bound-T are displayed with the dot tool from AT&T Bell Laboratories.



Valid HTML 4.01 Transitional