determination of worst-case execution times reinhard wilhelm
TRANSCRIPT
![Page 1: Determination of Worst-Case Execution Times Reinhard Wilhelm](https://reader035.vdocument.in/reader035/viewer/2022062519/5697bfed1a28abf838cb8e8e/html5/thumbnails/1.jpg)
Determination of Worst-Case Execution Times
Reinhard Wilhelm
![Page 2: Determination of Worst-Case Execution Times Reinhard Wilhelm](https://reader035.vdocument.in/reader035/viewer/2022062519/5697bfed1a28abf838cb8e8e/html5/thumbnails/2.jpg)
Structure of the two Lectures1. WCET determination, introduction, architecture2. Caches
– must, may analysis– Real-life caches: Motorola ColdFire
3. Contexts 4. Pipelines
– Abstract pipeline models
5. Integrated analyses6. Path analysis
![Page 3: Determination of Worst-Case Execution Times Reinhard Wilhelm](https://reader035.vdocument.in/reader035/viewer/2022062519/5697bfed1a28abf838cb8e8e/html5/thumbnails/3.jpg)
Hard Real-Time Systems
• Controllers in planes, cars, plants, … are expected to finish their tasks reliably within time bounds.
• Task scheduling must be performed
• Hence, it is essential that an upper bound on the execution times of all tasks is known
• Commonly called the Worst-Case Execution Time (WCET)
• Analogously, Best-Case Execution Time (BCET)
![Page 4: Determination of Worst-Case Execution Times Reinhard Wilhelm](https://reader035.vdocument.in/reader035/viewer/2022062519/5697bfed1a28abf838cb8e8e/html5/thumbnails/4.jpg)
The Traditional Approaches
• Measurements: determine execution times directly by
observing the execution.
Does not guarantee an upper bound to all executions
Tree-based: determine the maximum execution times
according to the structure of the program.
Very difficult on modern hardware with caches/pipelines!
![Page 5: Determination of Worst-Case Execution Times Reinhard Wilhelm](https://reader035.vdocument.in/reader035/viewer/2022062519/5697bfed1a28abf838cb8e8e/html5/thumbnails/5.jpg)
Modern Hardware Features
• Modern processors increase performance by using: Caches, Pipelines, Branch Prediction
• These features make WCET computation difficult:Execution times of instructions vary widely– Best case - everything goes smoothely: no cache miss, operands
ready, needed resources free, branch correctly predicted
– Worst case - everything goes wrong: all loads miss the cache, resources needed are occupied, operands are not ready
– Span may be several hundred cycles
![Page 6: Determination of Worst-Case Execution Times Reinhard Wilhelm](https://reader035.vdocument.in/reader035/viewer/2022062519/5697bfed1a28abf838cb8e8e/html5/thumbnails/6.jpg)
(Concrete) Instruction Execution
mul
FetchI-Cache miss?
IssueUnit occupied?
ExecuteMulticycle?
RetirePending instructions?
30
1
1
3
3
4
6
413
s1
s2
![Page 7: Determination of Worst-Case Execution Times Reinhard Wilhelm](https://reader035.vdocument.in/reader035/viewer/2022062519/5697bfed1a28abf838cb8e8e/html5/thumbnails/7.jpg)
Timing Accidents and PenaltiesTiming Accident – cause for an increase of the
execution time of an instructionTiming Penalty – the associated increase• Types of timing accidents
– Cache misses– Pipeline stalls– Branch mispredictions– Bus collisions– Memory refresh of DRAM– TLB miss
![Page 8: Determination of Worst-Case Execution Times Reinhard Wilhelm](https://reader035.vdocument.in/reader035/viewer/2022062519/5697bfed1a28abf838cb8e8e/html5/thumbnails/8.jpg)
Non-Locality of Local Contributions
• Interference between processor components produces Timing Anomalies: Assuming local best case leads to higher overall execution time.Ex.: Cache miss in the context of branch prediction
• Treating components in isolation maybe unsafe
• Implicit assumptions are not always correct:– Cache miss is not always the worst case!– The empty cache is not always the worst-case start!
![Page 9: Determination of Worst-Case Execution Times Reinhard Wilhelm](https://reader035.vdocument.in/reader035/viewer/2022062519/5697bfed1a28abf838cb8e8e/html5/thumbnails/9.jpg)
Execution Time is History-Sensitive
Contribution of the execution of an instruction to a program‘s execution time
• depends on the execution state
• i.e., is history-sensitive
• i.e., cannot be determined in isolation
![Page 10: Determination of Worst-Case Execution Times Reinhard Wilhelm](https://reader035.vdocument.in/reader035/viewer/2022062519/5697bfed1a28abf838cb8e8e/html5/thumbnails/10.jpg)
Murphy’s Law in WCET• Naïve, but safe guarantee accepts Murphy’s Law:
Any accident that may happen will happen• Static Program Analysis allows the derivation of Invariants
about all execution states at a program point• From these invariants Safety Properties follow:
Certain timing accidents will not happen.Example: At program point p, instruction fetch will never cause a cache miss
• The more accidents excluded, the lower the WCET
![Page 11: Determination of Worst-Case Execution Times Reinhard Wilhelm](https://reader035.vdocument.in/reader035/viewer/2022062519/5697bfed1a28abf838cb8e8e/html5/thumbnails/11.jpg)
Many Safety Properties at Once
• A strong static analysis verifies invariants at each program point implying many safety properties– Individual safety properties need not be specified
individually! – They are encoded in the static analysis
![Page 12: Determination of Worst-Case Execution Times Reinhard Wilhelm](https://reader035.vdocument.in/reader035/viewer/2022062519/5697bfed1a28abf838cb8e8e/html5/thumbnails/12.jpg)
Natural Modularization
1. Processor-Behavior Prediction: • Uses Abstract Interpretation• Excludes as many Timing Accidents as possible• Determines WCET for basic blocks (in contexts)
2. Worst-case Path Determination• Codes Control Flow Graph as an Integer Linear
Program• Determines upper bound and associated path
![Page 13: Determination of Worst-Case Execution Times Reinhard Wilhelm](https://reader035.vdocument.in/reader035/viewer/2022062519/5697bfed1a28abf838cb8e8e/html5/thumbnails/13.jpg)
Overall Structure
CFG Builder
Value Analyzer
Cache/Pipeline Analyzer
Executableprogram
Static Analyses
ILP-Generator
LP-Solver
Evaluation
Path Analysis
CRLFile
PERFile
Loop Trafo
WCETVisualization
Loopbounds
AIPFile
Processor-BehaviorPrediction
Worst-case PathDetermination
![Page 14: Determination of Worst-Case Execution Times Reinhard Wilhelm](https://reader035.vdocument.in/reader035/viewer/2022062519/5697bfed1a28abf838cb8e8e/html5/thumbnails/14.jpg)
Safety and Liveness Properties
• Safety: „something bad will not happen“Examples: Division by 0, Array index not out of bounds
• Liveness: „something good will happen“Examples: Program will react to input, Request will be served
![Page 15: Determination of Worst-Case Execution Times Reinhard Wilhelm](https://reader035.vdocument.in/reader035/viewer/2022062519/5697bfed1a28abf838cb8e8e/html5/thumbnails/15.jpg)
Analogies• Rules-of-Sign Analysis : VAR +,-,0, ,}
Derivable safety properties from invariant (x) = + :– sqrt(x) No exception: sqrt of negative
number– a/x No exception: Division by 0
• Must-Cache Analysis mc: ADDR CS x CLDerivable safety properties:Memory access will always hit the cache
![Page 16: Determination of Worst-Case Execution Times Reinhard Wilhelm](https://reader035.vdocument.in/reader035/viewer/2022062519/5697bfed1a28abf838cb8e8e/html5/thumbnails/16.jpg)
Static Program Analysis Applied to WCET Determination
• WCET must be safe, i.e. not underestimated
• WCET should be tight, i.e. not far away from real execution times
• Analogous for BCET
• Effort must be tolerable
![Page 17: Determination of Worst-Case Execution Times Reinhard Wilhelm](https://reader035.vdocument.in/reader035/viewer/2022062519/5697bfed1a28abf838cb8e8e/html5/thumbnails/17.jpg)
Analysis Results (Airbus Benchmark)
![Page 18: Determination of Worst-Case Execution Times Reinhard Wilhelm](https://reader035.vdocument.in/reader035/viewer/2022062519/5697bfed1a28abf838cb8e8e/html5/thumbnails/18.jpg)
Interpretation
• Airbus’ results obtained with legacy method:measurement for blocks, tree-based composition, added safety margin
• ~30% overestimation
• aiT’s results were between real worst-case execution times and Airbus’ results
![Page 19: Determination of Worst-Case Execution Times Reinhard Wilhelm](https://reader035.vdocument.in/reader035/viewer/2022062519/5697bfed1a28abf838cb8e8e/html5/thumbnails/19.jpg)
Value Analysis• Motivation:
– Provide exact access information to cache/pipeline analysis
– Detection of infeasible paths
• Goal: calculate intervals, i.e. lower and upper bounds for the values occurring in the program (addresses, register contents, local and global variables)
• Method: Interval analysis automatically generated with PAG
![Page 20: Determination of Worst-Case Execution Times Reinhard Wilhelm](https://reader035.vdocument.in/reader035/viewer/2022062519/5697bfed1a28abf838cb8e8e/html5/thumbnails/20.jpg)
Value Analysis II
• Intervals are computed along the CFG edges
• At joins, intervals are „unioned“
D1: [-2,+2] D1: [-4,0]
D1: [-4,+2]
![Page 21: Determination of Worst-Case Execution Times Reinhard Wilhelm](https://reader035.vdocument.in/reader035/viewer/2022062519/5697bfed1a28abf838cb8e8e/html5/thumbnails/21.jpg)
Value Analysis (Airbus Benchmark)Task Unreached Exact Good Unknown Time [s]
1 8% 86% 4% 2% 472 8% 86% 4% 2% 173 7% 86% 4% 3% 224 13% 79% 5% 3% 165 6% 88% 4% 2% 366 9% 84% 5% 2% 167 9% 84% 5% 2% 268 10% 83% 4% 3% 149 6% 89% 3% 2% 34
10 10% 84% 4% 2% 1711 7% 85% 5% 3% 2212 10% 82% 5% 3% 14
1Ghz Athlon, Memory usage <= 20MB
Good means less than 16 cache lines
![Page 22: Determination of Worst-Case Execution Times Reinhard Wilhelm](https://reader035.vdocument.in/reader035/viewer/2022062519/5697bfed1a28abf838cb8e8e/html5/thumbnails/22.jpg)
Caches: Fast Memory on Chip
• Caches are used, because– Fast main memory is too expensive– The speed gap between CPU and memory is too
large and increasing• Caches work well in the average case:
– Programs access data locally (many hits)– Programs reuse items (instructions, data)– Access patterns are distributed evenly across the cache
![Page 23: Determination of Worst-Case Execution Times Reinhard Wilhelm](https://reader035.vdocument.in/reader035/viewer/2022062519/5697bfed1a28abf838cb8e8e/html5/thumbnails/23.jpg)
Caches: How the workMemory partitioned into memory blocks of b bytes. CPU wants to read/write at address a,
sends a request for a to the busCases:• Block m containing a in the cache (hit):
request for a is served in the next cycle• Block m not in the cache (miss):
m is transferred from main memory to the cache, m may replace some block in the cache,request for a is served asap. while transfer still continues
• Several replacement strategies: LRU, PLRU, FIFO,...determine which line to replace
![Page 24: Determination of Worst-Case Execution Times Reinhard Wilhelm](https://reader035.vdocument.in/reader035/viewer/2022062519/5697bfed1a28abf838cb8e8e/html5/thumbnails/24.jpg)
A-Way Set Associative Cache
Addressprefix
Byte inline
Setnumber
Address:
CPU
1 2 … A
Adr. prefix Tag Rep Data block Adr. prefix Tag Rep Data block … …
… …… …… …
Set: Fully associative subcache of A elements with LRU, FIFO, rand. replacement strategy
… …… …… …
Main MemoryCompare address prefixIf not equal, fetch block from memory
Data Out
Byte select & align
![Page 25: Determination of Worst-Case Execution Times Reinhard Wilhelm](https://reader035.vdocument.in/reader035/viewer/2022062519/5697bfed1a28abf838cb8e8e/html5/thumbnails/25.jpg)
Cache Parameters• A-way set-associative cache• s cache sets consisting of A cache lines• A line consists of
– a valid bit telling whether the line is in use– a tag identifying the memory block occupying it– space for one memory block
• Each memory block can only reside in a fixed set• Addresses are split into
– byte number in the block– set number – tag
Tag Byte in blockSet number
![Page 26: Determination of Worst-Case Execution Times Reinhard Wilhelm](https://reader035.vdocument.in/reader035/viewer/2022062519/5697bfed1a28abf838cb8e8e/html5/thumbnails/26.jpg)
LRU Strategy• Each cache set has its own replacement logic => Cache sets
are independent: Everything explained in terms of one set
• LRU-Replacement Strategy: – Replace the block that has been Least Recently Used
– Modeled by Ages
• Example: 4-way set associative cache
age 0 1 2 3
m0 m1Access m4 (miss) m4 m2
m1Access m1 (hit) m0m4 m2
m1m5Access m5 (miss) m4 m0
m0 m1 m2 m3
![Page 27: Determination of Worst-Case Execution Times Reinhard Wilhelm](https://reader035.vdocument.in/reader035/viewer/2022062519/5697bfed1a28abf838cb8e8e/html5/thumbnails/27.jpg)
Cache AnalysisHow to statically precompute cache contents:
• Must Analysis:
For each program point (and calling context), find out
which blocks are in the cache
• May Analysis:
For each program point (and calling context), find out
which blocks may be in the cache
Complement says what is not in the cache
![Page 28: Determination of Worst-Case Execution Times Reinhard Wilhelm](https://reader035.vdocument.in/reader035/viewer/2022062519/5697bfed1a28abf838cb8e8e/html5/thumbnails/28.jpg)
Must-Cache and May-Cache- Information
• Must Analysis determines safe information about cache hitsEach predicted cache hit reduces WCET
• May Analysis determines safe information about cache misses Each predicted cache miss increases BCET
![Page 29: Determination of Worst-Case Execution Times Reinhard Wilhelm](https://reader035.vdocument.in/reader035/viewer/2022062519/5697bfed1a28abf838cb8e8e/html5/thumbnails/29.jpg)
Cache with LRU Replacement: Transfer for must
zyxt
szyx
szxt
zsxt
concrete
abstract
“young”
“old”
Age
[ s ]
{ x }{ }
{ s, t }{ y }
{ s }{ x }{ t }{ y }
[ s ]
![Page 30: Determination of Worst-Case Execution Times Reinhard Wilhelm](https://reader035.vdocument.in/reader035/viewer/2022062519/5697bfed1a28abf838cb8e8e/html5/thumbnails/30.jpg)
Cache Analysis: Join (must){ a }{ }
{ c, f }{ d }
{ c }{ e }{ a }{ d }
{ }{ }
{ a, c }{ d }
“intersection + maximal age”
Join (must)
Interpretation: memory block a is definitively in the (concrete) cache=> always hit
![Page 31: Determination of Worst-Case Execution Times Reinhard Wilhelm](https://reader035.vdocument.in/reader035/viewer/2022062519/5697bfed1a28abf838cb8e8e/html5/thumbnails/31.jpg)
Cache Analysis: Join (must){ …. }{ … }{ … }{ d }
{ d }{ .. }{ .. }{ .. }
{ … }{ … }{ … }{ d }
“intersection + maximal age”
Why maximal age?
Join (must)
{ … }{ … }{ … }{ …}
[s] replacing d
![Page 32: Determination of Worst-Case Execution Times Reinhard Wilhelm](https://reader035.vdocument.in/reader035/viewer/2022062519/5697bfed1a28abf838cb8e8e/html5/thumbnails/32.jpg)
Cache with LRU Replacement: Transfer for may
zyxt
szyx
szxt
zsxt
concrete
abstract
“young”
“old”
Age
[ s ]
{ x }{ }
{ s, t }{ y }
{ s }{ x }{ }
{ y, t }
[ s ]
![Page 33: Determination of Worst-Case Execution Times Reinhard Wilhelm](https://reader035.vdocument.in/reader035/viewer/2022062519/5697bfed1a28abf838cb8e8e/html5/thumbnails/33.jpg)
Cache Analysis: Join (may)
Interpretation: memory block s not in the abstract cache => s will definitively not be in the (concrete) cache
=> always miss
![Page 34: Determination of Worst-Case Execution Times Reinhard Wilhelm](https://reader035.vdocument.in/reader035/viewer/2022062519/5697bfed1a28abf838cb8e8e/html5/thumbnails/34.jpg)
Cache AnalysisApproximation of the Collecting Semantics
the semantics set of all cache statesfor each program point
determines
“cache” semantics set of all cache statesfor each program point
determines
abstract semantics abstract cache statesfor each program point
determines
PAG
conc
![Page 35: Determination of Worst-Case Execution Times Reinhard Wilhelm](https://reader035.vdocument.in/reader035/viewer/2022062519/5697bfed1a28abf838cb8e8e/html5/thumbnails/35.jpg)
Reduction and Abstraction
• Reducing the semantics (as it concerns caches)– From values to locations– “Auxiliary/instrumented” semantics
• Abstraction– Changing the domain: sets of memory blocks in single
cache lines
• Design in these two steps is matter of engineering
![Page 36: Determination of Worst-Case Execution Times Reinhard Wilhelm](https://reader035.vdocument.in/reader035/viewer/2022062519/5697bfed1a28abf838cb8e8e/html5/thumbnails/36.jpg)
Result of the Cache Analyses
Category Abb. Meaning
always hit ah The memory reference will
always result in a cache hit.
always miss am The memory reference will
always result in a cache miss.
not classified nc The memory reference could
neither be classified as ah
nor am.
Categorization of memory references
WCET: amBCET: ah
![Page 37: Determination of Worst-Case Execution Times Reinhard Wilhelm](https://reader035.vdocument.in/reader035/viewer/2022062519/5697bfed1a28abf838cb8e8e/html5/thumbnails/37.jpg)
Contribution to WCETInformation about cache contents sharpens timings.
while . . . do [max n] .
. .
ref to s
. . .
od
time
tmiss
thit
loop time
n tmiss
n thit
tmiss (n 1) thit
thit (n 1) tmiss
![Page 38: Determination of Worst-Case Execution Times Reinhard Wilhelm](https://reader035.vdocument.in/reader035/viewer/2022062519/5697bfed1a28abf838cb8e8e/html5/thumbnails/38.jpg)
Contexts
Cache contents depends on the Context, i.e. calls and loops
while cond do join (must)
First Iteration loads the cache =>Intersection looses most of the information!
![Page 39: Determination of Worst-Case Execution Times Reinhard Wilhelm](https://reader035.vdocument.in/reader035/viewer/2022062519/5697bfed1a28abf838cb8e8e/html5/thumbnails/39.jpg)
Distinguish basic blocks by contexts
• Transform loops into tail recursive procedures• Treat loops and procedures in the same way• Use interprocedural analysis techniques,VIVU
– virtual inlining of procedures– virtual unrolling of loops
• Distinguish as many contexts as useful– 1 unrolling for caches– 1 unrolling for branch prediction (pipeline)
![Page 40: Determination of Worst-Case Execution Times Reinhard Wilhelm](https://reader035.vdocument.in/reader035/viewer/2022062519/5697bfed1a28abf838cb8e8e/html5/thumbnails/40.jpg)
Real-Life CachesProcessor MCF 5307 MPC 750/755
Line size 16 32
Associativity 4 8
Replacement Pseudo-round robin
Pseudo-LRU
Miss penalty 6 - 9 32 - 45
![Page 41: Determination of Worst-Case Execution Times Reinhard Wilhelm](https://reader035.vdocument.in/reader035/viewer/2022062519/5697bfed1a28abf838cb8e8e/html5/thumbnails/41.jpg)
Real-World Caches I, the MCF 5307
• 128 sets of 4 lines each (4-way set-associative)• Line size 16 bytes• Pseudo Round Robin replacement strategy• One! 2-bit replacement counter• Hit or Allocate: Counter is neither used nor modified• Replace:
Replacement in the line as indicated by counter;Counter increased by 1 (modulo 4)
![Page 42: Determination of Worst-Case Execution Times Reinhard Wilhelm](https://reader035.vdocument.in/reader035/viewer/2022062519/5697bfed1a28abf838cb8e8e/html5/thumbnails/42.jpg)
Example
Assume program accesses blocks 0, 1, 2, 3, …starting with an empty cacheand block i is placed in cache set i mod 128
Accessing blocks 0 to 127: counter = 0
Line 0
Line 1
Line 2
Line 3
0 1 2 3 4 1275 …
![Page 43: Determination of Worst-Case Execution Times Reinhard Wilhelm](https://reader035.vdocument.in/reader035/viewer/2022062519/5697bfed1a28abf838cb8e8e/html5/thumbnails/43.jpg)
After accessing block 511: Counter still 0
0 1 2 3 4 5 … 127
128 129 130 131 132 133 … 255
256 257 258 259 260 261 … 383
384 385 386 387 388 389 … 511
Line 0
Line 1
Line 2
Line 3
512 1 2 3 516 5 … 127
128 513 130 131 132 517 … 255
256 257 514 259 260 261 … 383
384 385 386 515 388 389 … 639
Line 0
Line 1
Line 2
Line 3
After accessing block 639: Counter again 0
![Page 44: Determination of Worst-Case Execution Times Reinhard Wilhelm](https://reader035.vdocument.in/reader035/viewer/2022062519/5697bfed1a28abf838cb8e8e/html5/thumbnails/44.jpg)
Lesson learned
• Memory blocks, even useless ones, may remain in the cache
• The worst case is not the empty cache, but a cache full of junk!
• Assuming the cache to be empty at program start is unsafe!
![Page 45: Determination of Worst-Case Execution Times Reinhard Wilhelm](https://reader035.vdocument.in/reader035/viewer/2022062519/5697bfed1a28abf838cb8e8e/html5/thumbnails/45.jpg)
Cache Analysis for the MCF 5307• Modeling the counter: Impossible!
– Counter stays the same or is increased by 1– Sometimes this is unknown– After 3 unknown actions: all information lost!
• May analysis: never anything removed! => useless!
• Must analysis: replacement removes all elements from set and inserts accessed block => set contains at most one memory block
![Page 46: Determination of Worst-Case Execution Times Reinhard Wilhelm](https://reader035.vdocument.in/reader035/viewer/2022062519/5697bfed1a28abf838cb8e8e/html5/thumbnails/46.jpg)
Cache Analysis for the MCF 5307
• Abstract cache contains at most one block per line
• Corresponds to direct mapped cache
• Only ¼ of capacity
• As for predictability, ¾ of capacity are lost!
• In addition: Uniform cache =>instructions and data evict each other
![Page 47: Determination of Worst-Case Execution Times Reinhard Wilhelm](https://reader035.vdocument.in/reader035/viewer/2022062519/5697bfed1a28abf838cb8e8e/html5/thumbnails/47.jpg)
(Concrete) Instruction Execution
mul
FetchI-Cache miss?
IssueUnit occupied?
ExecuteMulticycle?
RetirePending instructions?
30
1
1
3
3
4
s1
![Page 48: Determination of Worst-Case Execution Times Reinhard Wilhelm](https://reader035.vdocument.in/reader035/viewer/2022062519/5697bfed1a28abf838cb8e8e/html5/thumbnails/48.jpg)
Abstract Instruction-Execution
mul
FetchI-Cache miss?
IssueUnit occupied?
ExecuteMulticycle?
RetirePending instructions?
30
1
1
310
6
41
s#
unknown
43
3
![Page 49: Determination of Worst-Case Execution Times Reinhard Wilhelm](https://reader035.vdocument.in/reader035/viewer/2022062519/5697bfed1a28abf838cb8e8e/html5/thumbnails/49.jpg)
Overall Structure
CFG Builder
Value Analyzer
Cache/Pipeline Analyzer
Executableprogram
Static Analyses
ILP-Generator
LP-Solver
Evaluation
Path Analysis
CRLFile
PERFile
Loop Trafo
WCETVisualization
Loopbounds
AIPFile
Processor-BehaviorPrediction
Worst-case PathDetermination
![Page 50: Determination of Worst-Case Execution Times Reinhard Wilhelm](https://reader035.vdocument.in/reader035/viewer/2022062519/5697bfed1a28abf838cb8e8e/html5/thumbnails/50.jpg)
• Execution time of a program =
Execution_Time(b) x Execution_Count(b)
• ILP solver maximizes this function to determine the WCET
• Program structure described by linear constraints– automatically created from CFG structure– user provided loop/recursion bounds– arbitrary additional linear constraints to exclude
infeasible paths
Basic_Block b
Path Analysis by Integer Linear Programming (ILP)
![Page 51: Determination of Worst-Case Execution Times Reinhard Wilhelm](https://reader035.vdocument.in/reader035/viewer/2022062519/5697bfed1a28abf838cb8e8e/html5/thumbnails/51.jpg)
if a then
b
elseif c then
d
else
e
endif
f
a
b
c
d
f
e
10t
4t
3t
2t
5t
6t
max: 4 xa + 10 xb + 3 xc +
2 xd + 6 xe + 5 xf
where xa = xb + xc
xc = xd + xe
xf = xb + xd + xe
xa = 1Value of objective function: 19
xa 1
xb 1xc 0xd 0xe 0xf 1
Example (simplified constraints)
![Page 52: Determination of Worst-Case Execution Times Reinhard Wilhelm](https://reader035.vdocument.in/reader035/viewer/2022062519/5697bfed1a28abf838cb8e8e/html5/thumbnails/52.jpg)
Analysis Results (Airbus Benchmark)
![Page 53: Determination of Worst-Case Execution Times Reinhard Wilhelm](https://reader035.vdocument.in/reader035/viewer/2022062519/5697bfed1a28abf838cb8e8e/html5/thumbnails/53.jpg)
Interpretation
• Airbus’ results obtained with legacy method:measurement for blocks, tree-based composition, added safety margin
• ~30% overestimation
• aiT’s results were between real worst-case execution times and Airbus’ results
![Page 54: Determination of Worst-Case Execution Times Reinhard Wilhelm](https://reader035.vdocument.in/reader035/viewer/2022062519/5697bfed1a28abf838cb8e8e/html5/thumbnails/54.jpg)
![Page 55: Determination of Worst-Case Execution Times Reinhard Wilhelm](https://reader035.vdocument.in/reader035/viewer/2022062519/5697bfed1a28abf838cb8e8e/html5/thumbnails/55.jpg)
![Page 56: Determination of Worst-Case Execution Times Reinhard Wilhelm](https://reader035.vdocument.in/reader035/viewer/2022062519/5697bfed1a28abf838cb8e8e/html5/thumbnails/56.jpg)
![Page 57: Determination of Worst-Case Execution Times Reinhard Wilhelm](https://reader035.vdocument.in/reader035/viewer/2022062519/5697bfed1a28abf838cb8e8e/html5/thumbnails/57.jpg)
![Page 58: Determination of Worst-Case Execution Times Reinhard Wilhelm](https://reader035.vdocument.in/reader035/viewer/2022062519/5697bfed1a28abf838cb8e8e/html5/thumbnails/58.jpg)
![Page 59: Determination of Worst-Case Execution Times Reinhard Wilhelm](https://reader035.vdocument.in/reader035/viewer/2022062519/5697bfed1a28abf838cb8e8e/html5/thumbnails/59.jpg)
![Page 60: Determination of Worst-Case Execution Times Reinhard Wilhelm](https://reader035.vdocument.in/reader035/viewer/2022062519/5697bfed1a28abf838cb8e8e/html5/thumbnails/60.jpg)
![Page 61: Determination of Worst-Case Execution Times Reinhard Wilhelm](https://reader035.vdocument.in/reader035/viewer/2022062519/5697bfed1a28abf838cb8e8e/html5/thumbnails/61.jpg)
![Page 62: Determination of Worst-Case Execution Times Reinhard Wilhelm](https://reader035.vdocument.in/reader035/viewer/2022062519/5697bfed1a28abf838cb8e8e/html5/thumbnails/62.jpg)
Current State and Future Work
• WCET tools available for the ColdFire 5307, the PowerPC 755, and the ARM7
• Learned, how time-predictable architectures look like
• Adaptation effort still too big => automation• Modeling effort error prone => formal methods• Middleware, RTOS not treated => challenging!
![Page 63: Determination of Worst-Case Execution Times Reinhard Wilhelm](https://reader035.vdocument.in/reader035/viewer/2022062519/5697bfed1a28abf838cb8e8e/html5/thumbnails/63.jpg)
Who needs aiT?• TTA
• Synchronous languages
• Stream-oriented people
• UML real-time profile
• Hand coders
![Page 64: Determination of Worst-Case Execution Times Reinhard Wilhelm](https://reader035.vdocument.in/reader035/viewer/2022062519/5697bfed1a28abf838cb8e8e/html5/thumbnails/64.jpg)
Acknowledgements• Christian Ferdinand, whose thesis started all this
• Reinhold Heckmann, Mister Cache
• Florian Martin, Mister PAG
• Stephan Thesing, Mister Pipeline
• Michael Schmidt, Value Analysis
• Henrik Teiling, Mister Frontend + Path Analysis
• Jörn Schneider, OSEK
• Marc Langenbach, trying to automatize
![Page 65: Determination of Worst-Case Execution Times Reinhard Wilhelm](https://reader035.vdocument.in/reader035/viewer/2022062519/5697bfed1a28abf838cb8e8e/html5/thumbnails/65.jpg)
Recent Publications• R. Heckmann et al.: The Influence of Processor Architecture on the Design
and the Results of WCET Tools, IEEE Proc. on Real-Time Systems, July 2003
• C. Ferdinand et al.: Reliable and Precise WCET Determination of a Real-Life Processor, EMSOFT 2001
• H. Theiling: Extracting Safe and Precise Control Flow from Binaries, RTCSA 2000
• M. Langenbach et al.: Pipeline Analysis for the PowerPC 755, SAS 2002
• St. Thesing et al.: An Abstract Interpretation-based Timing Validation of Hard Real-Time Avionics Software, IPDS 2003
• R. Wilhelm, J. Engblom, S. Thesing, D. Whalley: Industrial Requirements for WCET Determination, Euromicro WCET 2003
• R. Wilhelm: AI + ILP is good for WCET, MC is not, nor ILP alone, submitted