Leaders in Measurement-based Worst Case Execution Time (WCET) tools

Hybrid (measurement and static analysis)

Hybrid approaches to worst-case execution time estimation aim to combine the best features of measurement and static analysis whilst avoiding their pitfalls.

Hybrid approaches use a combination of three techniques:

  1. Recognising that the best possible model of an advanced microprocessor is the microprocessor itself, hybrid approaches use online testing to measure the execution time of short sub-paths between decision points in the code.
  2. By contrast, hybrid approaches view static analysis as the best way to determine the overall structure of the code and the paths through it. With a hybrid approach, this offline analysis is supplemented by information obtained during testing, such as numbers of loop iterations, and execution frequencies (modal operation) to build up a model of the overall code structure and determine which combinations of sub-paths form complete and feasible paths through the code.
  3. Finally measurement and path analysis information is combined to compute worst-case execution times in a way that captures execution time variation on individual paths due to hardware effects.

Advantages:

  • Execution times are determined from real measurements, avoiding modelling errors.
  • Program behaviour is determined from both the code, and the control flows observed during testing, hence meaningful results can be obtained without the need for extensive annotation.
  • In addition to the worst-case execution time, and details of the worst-case path, a wealth of timing information can be provided. This includes high and low water marks, execution frequencies, and execution time distributions.
  • Hybrid approaches are quick and easy to port to a new microprocessors or system variant.

Disadvantages:

  • Measurements need to be taken during testing.
  • To ensure accurate results, the tests need to provide a high level of code coverage.

RapiTime is the only commercially available worst-case execution time analysis tool that uses the hybrid approach.