Title: Analysis of the WorstCase Execution Time WCET A survey
1Analysisof theWorst-Case Execution Time
(WCET)-A survey
2Introduction
- correctness P Q R
- logical correctness
- temporal requirements
- deadlines
- temporal correctness
- RTS .. real time system
- timeliness
- scheduling service time
- WCET .. worst case execution time
- design-aids for RTS
3Why is WCET-analysis (WCETA) complicated ?
- abstraction
- mapping
- optimizations
- speculation
- unpredictable
- not aiming at worst-case
- instruction execution times
- ? problem-avoidance by simplification
4WCET-analysis (WCETA)
- the real WCET
- by measurement
- measurement-based search-methods
- WCET-estimate
- approximation
- pessimism, optimism
- WCET-analysis
- statical analysis
- tightness
5Classification ofWCETA-techniques
- Three orthogonal aspects
- Criteria for finding tools
6WCETA-classification, classical
- high-level analysis
- low-level analysis
- Global-level analysis
- WCET calculation
7High-level WCET-analysisSummation of basic
blocks
- Shaw
- pseudo-language
- execution time bounds
- timing formulae
8Summation of basic blocks
- Puschner Koza
- practical example for WCET-orientation
- MAXT .. maximum execution time
- limitations in language constructs
- annotations markers scopes
- formulae
9Graphs
- graphs widely used
- replaced/extended sum of block method
- advantages
- portability, abstraction
- graph-algorithms (i.e. path-problems)
- example timing tree (Puschner Schedl)
- cost function
- maximum cycle
- flow
10(No Transcript)
11WCETA and OOP-languages
- additional dynamic features
- encapsulation
- inheritance
- polymorphism
- features complicate static analysis
- improved pessimism
- example dynamic dispatching
- new annotations needed
12class Triangle public double giveArea()
// herons formula
class RightTriangle extends
Triangle public double giveArea() // a
b / 2
class Program public static void
main( ) Triangle t new Triangle()
RightTriangle s new RightTriangle() t
s result t.giveArea() // right
class/method known only at run-time // ?
dispatching also at run-time dynamically
13Automationavoidance of manual annotations
- manual annotations error-prone
- branch constraints by analysis
- iteration-based constraints
- effect-based constraints
- timing analysis WCET, BCET
- great effort needed, one example
- correlation between conditional branches
- ? O(C2) C .. of branches
14Optimizing compilers
- data-dependencies
- transformations
- Enblom et al. co-transformation
- ODL
- HLA and LLA
- co-transformer transforms execution info
- notion of portability (ODL)
15Optimizing compilers
- Puschner and Kirner
- flow facts from source code
- Whalley et al. optimize WCET
- ? optimizations for WC path
- approach reduce consuming instructions
- feedback to compiler
- possible drawback code explosion
16- example superblock-formation
17Low- global-level WCETACaching
- locality
- caches unconsidered in WCETA
- ? pessimism
- Whalley et al. extending summation of blocks
method for considering instruction caching - static cache simulator
- instruction-categorization always/first hit/miss
- timing tree
18Caching
- Li et al. with different approach
- program path analysis used here
- to construct an ILP
- means path analysis gives constraints
- 2 types of constraints
- automatically derived constraints (structural)
- user-provided constraints (functional)
- cost-function total execution time
- where N of basic blocks
- xi execution count of the basic block i
- ci execution time of the basic block i
19example
20Caching
- Extension cache-hit and cache-miss times
- for instruction caching
- l-block (line-block)
- ? grouping of instructions
- total execution time
- where N basic blocks
- ni l-blocks of basic block i
- cache hit and cache miss counts of l-block
Bi,j - execution time of l-block Bi,j in case of
hit/miss - data-caching
21Pipelining
- Whalley et al. significant reduction of
pessimism considering pipelining - pipeline-analysis, pipeline-simulation
- ? overlapping
- virtual pipeline
- many simulations
- ? hardware-dependent offset
- (can be positive !)
22overlapping-example
23Tools for practical use Tuning the WCET by
feedback
- many possible optimizations
- branch chaining, remove useless blocks,
- goal integrated development tool
- roll-back
- feedback
- Kirner et al. extensions for Matlab
24tuning the WCET by feedback
25JAVA and WCETA
- WCETA partitioned into two parts
- machine-independent flow analysis
- machine-dependent timing analysis
- abstract analysis WCEF
- annotations needed
- compiler-independent solution dummy-class
- portability
26(No Transcript)
27(No Transcript)
28WCETA-friendly software design
- Puschner Burns
- temporally predictable code
- only one path
- avoids multiple paths and execution times
- new language-construct needed
- constant-time conditional
- evaluates both possible results of a conditional
execution - transformation rules for normal code
- main drawback efficiency
29Conclusion