Formal Verification of a WCET Estimation Tool
Sandrine Blazy1, André Maroneze1, David Pichardie2, Isabelle Puaut1
1 University of Rennes 1 – France 2 ENS Rennes, France
08/07/2014
1/30
Formal Verification of a WCET Estimation Tool Sandrine Blazy 1 , Andr - - PowerPoint PPT Presentation
Formal Verification of a WCET Estimation Tool Sandrine Blazy 1 , Andr Maroneze 1 , David Pichardie 2 , Isabelle Puaut 1 1 University of Rennes 1 France 2 ENS Rennes, France 08/07/2014 1/30 Motivation Formal methods in industry Formal
1/30
Motivation
2/30
Motivation
3/30
Motivation
4/30
Motivation
5/30
1 Architecture of our formalized tool 2 Formalization approach 3 Experimental evaluation 4 Conclusion and future work 6/30
Overview
7/30
Overview
8/30
Overview
8/30
Overview
8/30
Overview
9/30
Overview
9/30
Overview
10/30
Overview
10/30
Overview
10/30
Overview
11/30
Overview
12/30
1 Architecture of our formalized tool 2 Formalization approach 3 Experimental evaluation 4 Conclusion and future work 13/30
Formalization
14/30
Formalization
15/30
Formalization
16/30
Formalization
17/30
Formalization
17/30
Formalization
17/30
Formalization
17/30
Formalization
17/30
Formalization
int i = 0; while (i < 5) { _annot("loop"); i++; }
1: x1 = 0 2: if (x1 >=s 5) goto 6 3: x2 = builtin annot "loop" 4: x1 = x1 + 1 5: goto 2 6:
stw 0, 8(1) .L100: cmpwi 0, 4, 5 bf 0, .L101 # annotation: loop addi 4, 4, 1 b .L100 .L101:
18/30
Formalization
19/30
Formalization Program slicing
20/30
Formalization Program slicing
21/30
Formalization
22/30
Formalization
22/30
Formalization IPET
23/30
Formalization IPET
1 LP generation → direct proof 2 External (non-verified) LP solver 3 LP validation → based on Farkas certificates 24/30
1 Architecture of our formalized tool 2 Formalization approach 3 Experimental evaluation 4 Conclusion and future work 25/30
Experimental evaluation
26/30
Experimental evaluation WCET estimation
27/30
Experimental evaluation WCET estimation
Program cnt 18.3% ✓ cover 10.9% ✓ crc 100.2% edn 141.5% expint 2601.6% fdct 0.0% ✔ fibcall 0.9% ✔ jfdctint 0.0% ✔ lcdnum 50.9% matmult 11.5% ✓ ndes 12.2% ✓ ns 88.3% nsichneu 106.1% qurt 168.2% ud 225.1% Standard Overestimation
27/30
Experimental evaluation WCET estimation
Program cnt 18.3% ✓ cover 10.9% ✓ crc 100.2% edn 141.5% expint 2601.6% fdct 0.0% ✔ fibcall 0.9% ✔ jfdctint 0.0% ✔ lcdnum 50.9% matmult 11.5% ✓ ndes 12.2% ✓ ns 88.3% nsichneu 106.1% qurt 168.2% ud 225.1% Standard Overestimation
27/30
Experimental evaluation WCET estimation
Program cnt 18.3% ✓ 2.8% ✔ cover 10.9% ✓ 11.5% ✓ crc 100.2% 99.5% edn 141.5% 110.4% expint 2601.6% 2419.7% fdct 0.0% ✔ 0.0% ✔ fibcall 0.9% ✔ 1.1% ✔ jfdctint 0.0% ✔ 0.0% ✔ lcdnum 50.9% 55.2% matmult 11.5% ✓ 0.0% ✔ ndes 12.2% ✓ 3.6% ✔ ns 88.3% 0.2% ✔ nsichneu 106.1% 106.1% qurt 168.2% 165.7% ud 225.1% 217.3% Standard Overestimation Loop Inversion Overestimation
27/30
Experimental evaluation WCET estimation
Program cnt 18.3% ✓ 2.8% ✔ 3.3% ✔ cover 10.9% ✓ 11.5% ✓ 0.0% ✔ crc 100.2% 99.5% 99.2% edn 141.5% 110.4% 110.4% expint 2601.6% 2419.7% 0.0% ✔ fdct 0.0% ✔ 0.0% ✔ 0.0% ✔ fibcall 0.9% ✔ 1.1% ✔ 1.1% ✔ jfdctint 0.0% ✔ 0.0% ✔ 0.0% ✔ lcdnum 50.9% 55.2% 11.9% ✓ matmult 11.5% ✓ 0.0% ✔ 0.0% ✔ ndes 12.2% ✓ 3.6% ✔ 3.6% ✔ ns 88.3% 0.2% ✔ 0.2% ✔ nsichneu 106.1% 106.1% 106.3% qurt 168.2% 165.7% 215.2% ud 225.1% 217.3% 265.2% Overestimation Overestimation Inversion+Unrolling Loop Inversion Standard Overestimation
27/30
Experimental evaluation WCET estimation
Program cnt 18.3% ✓ 2.8% ✔ 3.3% ✔ cover 10.9% ✓ 11.5% ✓ 0.0% ✔ crc 100.2% 99.5% 99.2% edn 141.5% 110.4% 110.4% expint 2601.6% 2419.7% 0.0% ✔ fdct 0.0% ✔ 0.0% ✔ 0.0% ✔ fibcall 0.9% ✔ 1.1% ✔ 1.1% ✔ jfdctint 0.0% ✔ 0.0% ✔ 0.0% ✔ lcdnum 50.9% 55.2% 11.9% ✓ matmult 11.5% ✓ 0.0% ✔ 0.0% ✔ ndes 12.2% ✓ 3.6% ✔ 3.6% ✔ ns 88.3% 0.2% ✔ 0.2% ✔ nsichneu 106.1% 106.1% 106.3% qurt 168.2% 165.7% 215.2% ud 225.1% 217.3% 265.2% Overestimation Overestimation Inversion+Unrolling Loop Inversion Standard Overestimation
27/30
1 Architecture of our formalized tool 2 Formalization approach 3 Experimental evaluation 4 Conclusion and future work 28/30
Conclusion
29/30
Conclusion
29/30
Conclusion
29/30
Conclusion
30/30