Compiler-based Extraction of Event Arrival Functions for Real-Time Systems Analysis Dominic Oehlert Selma Saidi Heiko Falk Institute of Embedded Systems Hamburg University of Technology firstname.surname@tuhh.de 30th Euromicro Conference on Real-Time Systems (ECRTS), 2018
Motivation Background Evaluation Conclusion 1 / 20
Motivation Background Evaluation Conclusion 1 / 20
Motivation Background Evaluation Conclusion 2 / 20
Motivation Background Evaluation Conclusion 2 / 20
Motivation Background Evaluation Conclusion η + (∆ t ) η − (∆ t ) 40 30 Number of Events 20 10 0 0 200 400 600 800 1 , 000 1 , 200 1 , 400 1 , 600 1 , 800 2 , 000 2 , 200 2 , 400 2 , 600 2 , 800 3 , 000 ∆ t in Cycles 3 / 20
Motivation Background Evaluation Conclusion 4 / 20
Motivation Background Evaluation Conclusion 40 Number of Events 20 0 0 1 , 000 2 , 000 3 , 000 ∆ t in Cycles 4 / 20
Motivation Background Evaluation Conclusion 40 Number of Events 20 0 0 1 , 000 2 , 000 3 , 000 ∆ t in Cycles 4 / 20
Motivation Background Evaluation Conclusion 40 Number of Events 20 0 0 1 , 000 2 , 000 3 , 000 ∆ t in Cycles 4 / 20
Motivation Background Evaluation Conclusion 3 2 1 0 0 5 10 15 20 0 5 10 15 20 25 t ∆ t 5 / 20
Motivation Background Evaluation Conclusion 3 2 1 0 0 5 10 15 20 0 5 10 15 20 25 t ∆ t 5 / 20
Motivation Background Evaluation Conclusion 40 int globalData[ 2 ] = -1, 1; volatile int comm; ? i n t main ( ) { Number of Events f o r ( i n t i = 0 ; i < 2 0 ; ++i ) { i f ( comm == 0 ) { globalData[ i % 2 ] = -1; 20 } } r e t u r n 0 ; } 0 0 500 1 , 000 1 , 500 2 , 000 2 , 500 3 , 000 ∆ t in Cycles 6 / 20
Motivation Background Evaluation Conclusion 40 int globalData[ 2 ] = -1, 1; volatile int comm; ? i n t main ( ) { Number of Events f o r ( i n t i = 0 ; i < 2 0 ; ++i ) { i f ( comm == 0 ) { globalData[ i % 2 ] = -1; 20 } } r e t u r n 0 ; } 0 0 500 1 , 000 1 , 500 2 , 000 2 , 500 3 , 000 ∆ t in Cycles 6 / 20
Motivation Background Evaluation Conclusion 40 int globalData[ 2 ] = -1, 1; volatile int comm; ? i n t main ( ) { Number of Events f o r ( i n t i = 0 ; i < 2 0 ; ++i ) { i f ( comm == 0 ) { globalData[ i % 2 ] = -1; 20 } } r e t u r n 0 ; } 0 0 500 1 , 000 1 , 500 2 , 000 2 , 500 3 , 000 ∆ t in Cycles 6 / 20
Motivation Background Evaluation Conclusion Extracting Curves? • Capture traces ⇒ Potentially unsafe • Rely on specifications ⇒ Potentially overly pessimistic • Extraction based on the low-level representation 7 / 20
Motivation Background Evaluation Conclusion Extracting Curves? • Capture traces ⇒ Potentially unsafe • Rely on specifications ⇒ Potentially overly pessimistic • Extraction based on the low-level representation 7 / 20
Motivation Background Evaluation Conclusion Extracting Curves? • Capture traces ⇒ Potentially unsafe • Rely on specifications ⇒ Potentially overly pessimistic • Extraction based on the low-level representation 7 / 20
Motivation Background Evaluation Conclusion Extracting Curves? • Capture traces ⇒ Potentially unsafe • Rely on specifications ⇒ Potentially overly pessimistic • Extraction based on the low-level representation 7 / 20
Motivation Background Evaluation Conclusion Extracting Curves? • Capture traces ⇒ Potentially unsafe • Rely on specifications ⇒ Potentially overly pessimistic • Extraction based on the low-level representation 7 / 20
Motivation Background Evaluation Conclusion 8 / 20
Motivation Background Evaluation Conclusion 8 / 20
Motivation Background Evaluation Conclusion 0 5 10 15 20 25 t 9 / 20
Motivation Background Evaluation Conclusion A B E 0 10 20 30 40 50 60 70 t A C F G ... 0 20 40 60 80 t A C F H ... 0 20 40 60 80 t A C F G ... 0 20 40 60 80 t . . . 10 / 20
Motivation Background Evaluation Conclusion A B E 0 10 20 30 40 50 60 70 t A C F G ... 0 20 40 60 80 t A C F H ... 0 20 40 60 80 t A C F G ... 0 20 40 60 80 t . . . 10 / 20
Motivation Background Evaluation Conclusion A B E 0 10 20 30 40 50 60 70 t A C F G ... 0 20 40 60 80 t A C F H ... 0 20 40 60 80 t A C F G ... 0 20 40 60 80 t . . . 10 / 20
Motivation Background Evaluation Conclusion A B E 0 10 20 30 40 50 60 70 t A C F G ... 0 20 40 60 80 t A C F H ... 0 20 40 60 80 t A C F G ... 0 20 40 60 80 t . . . 10 / 20
Motivation Background Evaluation Conclusion A B E 0 10 20 30 40 50 60 70 t A C F G ... 0 20 40 60 80 t A C F H ... 0 20 40 60 80 t A C F G ... 0 20 40 60 80 t . . . 10 / 20
Motivation Background Evaluation Conclusion A B E 0 10 20 30 40 50 60 70 t A C F G ... 0 20 40 60 80 t A C F H ... 0 20 40 60 80 t A C F G ... 0 20 40 60 80 t . . . 10 / 20
Motivation Background Evaluation Conclusion A B E 0 10 20 30 40 50 60 70 t A C F G ... 0 20 40 60 80 t A C F H ... 0 20 40 60 80 t A C F G ... 0 20 40 60 80 t . . . 10 / 20
Motivation Background Evaluation Conclusion A B E 0 10 20 30 40 50 60 70 t A C F G ... 0 20 40 60 80 t A C F H ... 0 20 40 60 80 t A C F G ... 0 20 40 60 80 t . . . 10 / 20
Motivation Background Evaluation Conclusion A B E 0 10 20 30 40 50 60 70 t A C F G ... 0 20 40 60 80 t A C F H ... 0 20 40 60 80 t A C F G ... 0 20 40 60 80 t . . . 10 / 20
Motivation Background Evaluation Conclusion Path Analysis for Arrival Functions • Explicit path analysis quickly becomes practically infeasible ⇒ Sliding window for all traces ⇒ Adapt path analysis techniques ⇒ Introduce granularity • Trade-off between precision and runtime 11 / 20
Motivation Background Evaluation Conclusion Path Analysis for Arrival Functions • Explicit path analysis quickly becomes practically infeasible ⇒ Sliding window for all traces ⇒ Adapt path analysis techniques ⇒ Introduce granularity • Trade-off between precision and runtime 11 / 20
Motivation Background Evaluation Conclusion Path Analysis for Arrival Functions • Explicit path analysis quickly becomes practically infeasible ⇒ Sliding window for all traces ⇒ Adapt path analysis techniques ⇒ Introduce granularity • Trade-off between precision and runtime 11 / 20
Motivation Background Evaluation Conclusion Path Analysis for Arrival Functions • Explicit path analysis quickly becomes practically infeasible ⇒ Sliding window for all traces ⇒ Adapt path analysis techniques ⇒ Introduce granularity • Trade-off between precision and runtime 11 / 20
Motivation Background Evaluation Conclusion Path Analysis for Arrival Functions • Explicit path analysis quickly becomes practically infeasible ⇒ Sliding window for all traces ⇒ Adapt path analysis techniques ⇒ Introduce granularity • Trade-off between precision and runtime 11 / 20
Motivation Background Evaluation Conclusion Overview Motivation Background Evaluation Conclusion 11 / 20
Motivation Background Evaluation Conclusion Overview Motivation Background Evaluation Conclusion 11 / 20
Motivation Background Evaluation Conclusion Event Arrival Functions • Abstract notion of interfering events (e.g., task activations, shared memory accesses, ...) Definition Let η + i (∆ t ) and η − i (∆ t ) denote for each task i the maximum and minimum number of events issued within a time window of size ∆ t . Their pseudo-inverse counterparts δ + ( n ) and δ − ( n ) , return the maximum/minimum time interval between the first and the last event in any sequence of n event arrivals. 12 / 20
Motivation Background Evaluation Conclusion Event Arrival Functions • Abstract notion of interfering events (e.g., task activations, shared memory accesses, ...) Definition Let η + i (∆ t ) and η − i (∆ t ) denote for each task i the maximum and minimum number of events issued within a time window of size ∆ t . Their pseudo-inverse counterparts δ + ( n ) and δ − ( n ) , return the maximum/minimum time interval between the first and the last event in any sequence of n event arrivals. 12 / 20
Motivation Background Evaluation Conclusion Event Arrival Functions • Abstract notion of interfering events (e.g., task activations, shared memory accesses, ...) Definition Let η + i (∆ t ) and η − i (∆ t ) denote for each task i the maximum and minimum number of events issued within a time window of size ∆ t . Their pseudo-inverse counterparts δ + ( n ) and δ − ( n ) , return the maximum/minimum time interval between the first and the last event in any sequence of n event arrivals. 12 / 20
Motivation Background Evaluation Conclusion Implicit Path Enumeration Technique • Describe all feasible paths by formulating an Integer Linear Program (ILP) [DAC95] • Enforcing complete path through a program using junction rules 13 / 20
Recommend
More recommend