Compilers and Timing Analysis

RapiTime
Worst-Case Execution Time Analysis Toolkit

“How long does your software take to run?”

Real-Time Systems

The fundamental problem in developing any embedded real-time system is ensuring that it can perform the required functionality within specific time constraints. For example an Engine Management System must process sensor data and determine the correct fuelling and ignition timing requirements for the engine within a few milliseconds. If this computation is not completed in time, then the engine will not run smoothly and may not meet stringent emission requirements.

Obtaining accurate information about the longest time a software component can take to run, termed the worst-case execution time, is key to ensuring that time constraints are met and that an embedded real-time system will operate correctly.
Worst-Case Execution Time (WCET) Analysis

RapiTime is an analysis toolset that provides a unique solution to the problem of determining worst-case execution times. This solution is applicable to complex software running on advanced embedded microprocessors.

Key Features

The RapiTime toolset can be used to:
  • Determine accurate worst-case execution times for each software component.
  • Identify code that is on the worst-case path.
  • Provide detailed analysis of worst-case hotspots and their contribution to the worst-case execution time.
  • Provide code-coverage metrics ensuring confidence in the analysis results.
  • Generate Execution Time Profiles illustrating the variability in execution times due to hardware effects.

Analysis Capability

RapiTime produces easy to navigate WCET reports, graphs of execution time variation and colour-coded source highlighting code on the worst-case path and any gaps in testing.

RapiTime can analyse large and complex embedded software systems comprising upwards of 100,000 lines of C or Ada code.

RapiTime supports 8, 16 and 32-bit CPUs including the latest microprocessors with advanced hardware features such as data and instruction caches, pipelines and branch prediction units.

Innovation

RapiTime uses an innovative combination of three techniques:
  1. Recognising that the best possible model of an advanced microprocessor is the microprocessor itself. RapiTime uses online testing to measure the execution time of short sub-paths through the code.
  2. By contrast, offline static analysis is the best way to determine the overall structure of the code and the paths through it. RapiTime therefore uses path analysis techniques to build a precise model of the code structure.
  3. RapiTime combines measurement and path analysis information using state-of-the-art statistical methods (the theory of Copulas) to compute worst-case execution times in a way that accurately captures the execution time variation on individual paths due to hardware effects.

This innovative approach means that RapiTime can provide accurate worst-case execution time information for complex software running on the latest generation of advanced microprocessors.

RapiTime enables engineers to use a systematic and scientific approach to ensuring that time constraints are met. In effect, allowing them to engineer timing correctness into their systems rather than spending a great deal of time and effort trying to get timing bugs out.

Further, RapiTime can be used as an efficient and effective worst-case performance optimisation tool, identifying sections of code that contribute the most to the overall worst-case execution time, and determining the potential improvements that can be obtained through their optimisation. In this way, RapiTime enables engineers to achieve more with less, to add significant additional functionality without the need for costly hardware upgrades.

Rapita Systems Ltd.

Rapita Systems Ltd. was founded in 2004 to commercialise worst-case execution time analysis and simulation technology developed in the Real-Time Systems Research Group at the University of York.
www.rapitasystems.com

Further information


Articles

Die Zeitlupe: Analyse der Worst Case Execution Time für Embedded-Systeme in Automobilanwendungen
G. BERNAT
Elektronic Praxis, September 2005

Research Papers

Identifying Opportunities for Worse-Case Execution Time Reduction in an Avionics System
G. BERNAT, R.I. DAVIS, N. MERRIAM, J. TUFFEN, A. GARDNER, M. BENNETT, D. ARMSTRONG
Ada User Journal (to appear 2007)

Probabilistic timing analysis: an approach using copulas
G BERNAT, M. J. NEWBY, A. BURNS
Journal of Embedded Computing, v1-2, pp 179–194, 2005

WCET a tool for probabilistic WCET analysis
G. BERNAT
Proceedings of the 3rd International Workshop on WCET analysis. Porto, June 2003

WCET Analysis of Probabilistic Hard Real-Time systems
G. BERNAT, A. COLIN, S. M. PETTERS
Real-Time Systems Symposium, December 2002, Austin, Texas, USA

pWCET a Toolset for automatic Worst-Case Execution Time Analysis of Real-Time Embedded Programs
G. BERNAT, A. COLIN, S. M. PETTERS
3rd International Workshop on WCET Analysis, Satellite Workshop of the Euromicro Conference on Real-Time Systems, Porto, Portugal, 1 July 2003

Wishing for Compiler Support
G. BERNAT, N. HOLSTI
3rd Int. Workshop on WCET Analysis, Satellite Workshop of the Euromicro conference on Real-Time Systems, Porto, Portugal, 1 July 2003

Experimental Evaluation of Code Properties for WCET Analysis
A. COLIN, S. M. PETTERS
Proceedings of the 24th IEEE Real-Time Systems Symposium, Cancun, Mexico, December 2003

Scope Tree: a Program Representation for Symbolic WCET Analysis
A. COLIN, G. BERNAT
In Proceedings of the 14th Euromicro International Conference on Real-Time Systems, June 2002, Vienna, Austria.

(c) Artist Consortium, All Rights Reserved - 2006, 2007, 2008, 2009

Réalisation Axome - Création de sites Internet