Die aiT-Analyseergebnisse sind sicher – d.h., sie liegen niemals unter der tatsächlichen WCET. Zugleich sind sie aber auch extrem präzise – d.h., die WCET-Überschätzung wird stets möglichst gering gehalten. Dies wird immer wieder bestätigt durch unsere eigenen Versuche, Erfahrungsberichte unserer Kunden und unabhängige Studien.
Studie | Prozessor | Durchschnittliche WCET-Überschätzung | |
---|---|---|---|
Andere Methoden | aiT | ||
Tests am Airbus-Code | MPC755 | „unbrauchbar“ | <25 % |
Tests am Volvo-Code | C16x | 212 % | 16 % |
Tests mit ASCET | ST10 | ? | 3 % |
aiT gegen ARMulator | ARM7 | ? | 5 % |
WCET-Tool-Challenge | C16x, ARM7, MPC565 | >81 % | 7–8 % |
FAU Erlangen–Nürnberg | ARM Cortex-M4 | 96 % | 23 % |
McGill University | XMC4500 (Cortex-M4) | >48 % | <10 % |
„Der Vergleich zeigt, daß die von aiT berechneten Worst-Case-Laufzeiten typischerweise rund 25 % höher sind als die gemessenen Zeiten, wobei die tatsächliche aber nicht berechenbare WCET irgendwo dazwischen liegt. Erwähnenswert ist auch ein weiterer Vergleich, nämlich der der aiT-Analyseergebnisse mit den Ergebnissen der traditionellen Airbus-Methoden. Wie bereits vorhergesagt wurde, als die Entscheidung für aiT fiel, sind die Ergebnisse der traditionellen Methoden weitaus ungenauer als die von aiT berechneten Zeiten. Eigentlich ist der Unterschied sogar so groß, daß die traditionellen Methoden unbrauchbar sind.“
Die Studie stammt aus dem Jahre 2003. aiT wurde seitdem ständig weiterentwickelt, so daß die aktuelle Version noch viel genauere Ergebnisse liefert.
In seiner Diplomarbeit „Statische WCET-Analyse von taskorientiertem Code für Baufahrzeuge“ berichtete Daniel Sehlberg, daß aiT die gemessene WCET im Schnitt um nur 16 % überschätzt. Volvos traditionelle Methoden überschätzten die WCET derselben Tasks im Schnitt um 212 %.
Die nachfolgende Tabelle vergleicht die aiT-Analyseergebnisse mit der gemessenen WCET für die Prozeduren eines Engine-Throttle-Kontrollmoduls. Das Modul wurde in ASCET spezifiziert und mit dem TASKING-C-Compiler v7.5 für ein ST10F269-Mikrocontroller-Board kompiliert. Die Laufzeiten wurden mit dem iSYSTEMS-ILA-128-Logic-Analyzer aus Bus-Traces extrahiert. Das Experiment zeigte eine durchschnittliche WCET-Überschätzung von nur 3 %.
Prozedur | Gemessene WCET | Von aiT berechnet | Überschätzung |
---|---|---|---|
1 | 291 | 291 | 0,0 % |
2 | 6 | 6 | 0,0 % |
3 | 26 | 26 | 0,0 % |
4 | 263 | 283 | 7,6 % |
5 | 263 | 283 | 7,6 % |
6 | 263 | 283 | 7,6 % |
7 | 2980 | 3138 | 5,3 % |
8 | 133 | 133 | 0,0 % |
9 | 109 | 110 | 0,9 % |
10 | 116 | 117 | 0,9 % |
ARMulator ist ein Prozessor-Simulator, der von ARM als Bestandteil des ARM-Development-Toolkits angeboten wird. Er ermöglicht es, das Verhalten eines Programms für einen bestimmten ARM-Prozessor einzuschätzen, ohne das Programm tatsächlich auf dem Prozessor auszuführen.
Eine von Daniel Sandell an der Mälardalen-Universität durchgeführte Studie zeigte, daß die von aiT berechneten Worst-Case-Laufzeiten im Schnitt nur 5 % höher lagen als die Ergebnisse der Simulation mit ARMulator.
Testprogramm | ARMulator | aiT | Quotient aiT/ARMulator |
---|---|---|---|
Array_complex_updates | 2399 | 2539 | 1,06 |
Array_real_updates | 1263 | 1307 | 1,03 |
Biquad_one_section | 150 | 167 | 1,11 |
Convolution_filter | 660 | 703 | 1,07 |
Complex_multiply | 172 | 190 | 1,10 |
Complex_update | 104 | 121 | 1,16 |
Digital_filter | 978 | 1022 | 1,04 |
Dot_product | 95 | 108 | 1,14 |
Fibonacci | 522 | 532 | 1,02 |
Impulse_response | 1520 | 1598 | 1,05 |
Matrix_convolution | 7096 | 7401 | 1,04 |
Matrix_product_1 | 37887 | 39900 | 1,05 |
Matrix_product_2 | 34787 | 36800 | 1,06 |
Matrix_product_3 | 317 | 345 | 1,09 |
Matrix_product_4 | 5185 | 5442 | 1,05 |
Real_update | 55 | 66 | 1,20 |
„aiTs Vorhersagen waren in sämtlichen Fällen höher als die Simulationsergebnisse. Wir bewerten das positiv, als ein Zeichen, daß die aiT-Analyseergebnisse sicher sind. Zuletzt sollte man anmerken, daß [in unserem Test] die aiT-Ergebnisse nicht mit dem Verhalten der tatsächlichen Hardware, sondern mit dem eines Hardware-Modells verglichen wurden.“
2006 nahm aiT an der ersten WCET-Tool-Challenge teil, einem von der Mälardalen-Universität organisierten und vom ARTIST2-Netzwerk geförderten Wettbewerb. Das erklärte Ziel des Wettbewerbs war es, verschiedene Methoden der WCET-Analyse zu untersuchen und miteinander zu vergleichen. Teilgenommen haben alle zu der Zeit erhältlichen Werkzeuge und Prototypen.
aiT trat als einziges Werkzeug gleich für drei verschiedene Prozessor-Architekturen an. Es war das einzige Werkzeug, das sämtliche Testprogramme zu analysieren imstande war. Die von aiT gelieferten Ergebnisse waren in den meisten Fällen außerordentlich genau. Das Urteil der Jury lautete, daß aiT sehr benutzerfreundlich ist, den Benutzer vor unrealistischen Code-Annotationen warnt und sehr präzise Analyseergebnisse liefert.
Werkzeug | Durchschnittliche WCET-Überschätzung | Durchlaufene Tests | Prozessorkomplexität |
---|---|---|---|
aiT | 7–8 % | 17/17 | einfach bis hochkomplex |
Bound-T | k. A. | 13/17 | einfach, mittel |
SWEET | k. A. | 15/17 | mittel |
Chronos | 81–89 % | 13/17 | simulierter Prozessor |
„aiT war imstande, alle Arten von Tests zu bewältigen und für sämtliche Testprogramme Ergebnisse zu liefern. aiT ermöglicht WCET-Analyse selbst für komplexe Prozessoren. […] aiT demonstriert seine führende Position durch all seine Merkmale und untermauert seine Führung als ein den Anforderungen der Industrie gewachsenes Werkzeug.“
Márton Búr, Kristóf Marussy, Brett Meyer und Dániel Varró testeten aiT im Jahre 2018 an vier Benchmark-Programmen, die auf einem Infineon-Relax-Lite-Board mit dem XMC4500-F100-K1024-Mikrocontroller liefen.
Die Forscher berichteten, daß aiT die gemessene WCET im Schnitt um 9,75 % überschätzte. Ein als Referenz benutztes Konkurrenzprodukt überschätzte die WCET derselben Tasks im Schnitt um 48,58 %.
Benchmark | Gemessene WCET | aiT | OTAWA | |
---|---|---|---|---|
Close trains | 2652 | 3038 | 4210 | |
End of siding | 1395 | 1477 | 1860 | |
Misaligned turnout | 939 | 987 | 1370 | |
Train locations | 489 | 507 | 695 |