Systemdesign / Echtzeitbenchmarks

Zeitanalyse komplexer eingebetteter Systeme

29. August 2018, 13:48 Uhr | Prof. Dr. Reinhard Wilhelm, Compiler Design Lab, Universität des Saarlandes
Diesen Artikel anhören

Fortsetzung des Artikels von Teil 2

Laufzeitanalyse

Eine solche statische Methode wird vorgestellt. Statisch heißt, sie beruht nicht auf dem Messen von Ausführungszeiten, sondern auf der Analyse des Programm(text)s. Da sie keine spezielle Eingabe und auch keinen speziellen Anfangszustand annimmt, gelten ihre Ergebnisse für alle Ausführungen. Die Methode ist effizient genug für die industrielle Praxis.

Eine mögliche Werkzeugarchitektur ist in Bild 1 dargestellt. Die Aufgabe der einzelnen Phasen und die verwendeten Methoden werden im Folgenden beschrieben. Die Kontrollflussrekonstruktion (control-flow reconstruction) analysiert ein ausführbares Binärprogramm und berechnet den Kontrollfluss. Sie identifiziert insbesondere die Schleifen und die Funktionen im Programm. Schwierigkeiten machen eventuell die Befehlssequenzen für switch-Anweisungen und indirekte Funktionsaufrufe durch Funktionszeiger. Das Ergebnis dieser Phase ist ein Kontrollflussgraph und ein Aufrufgraph mit Assemblerbefehlsfolgen in Basisblöcken.

Bild 1: Eine Werkzeugarchitektur zur Zeitanalyse
Bild 1: Eine Werkzeugarchitektur zur Zeitanalyse
© AbsInt Angewandte Informatik

Die Wertanalyse (value analysis) versucht, an allen Programmpunkten herauszufinden, welche Inhalte die verwendeten Prozessorregister und wichtige Programmvariablen haben. Da ein Register im Laufe einer oder mehrerer Programmausführungen mehrere verschiedene Werte enthalten kann, berechnet die Wertanalyse ein alle möglichen Werte umfassendes Intervall. Die Ergebnisse werden für verschiedene Zwecke benutzt, insbesondere für die Schleifengrenzenanalyse, die Kontrollflussanalyse und die Datencacheanalyse. Bei der Datencacheanalyse liefert sie die notwendige Adressinformation bei Zugriffen auf den Speicher.

Die Schleifengrenzenanalyse (loop-bound analysis) versucht, basierend auf den Ergebnissen der Wertanalyse, die Unter- und Obergrenzen für die Schleifeniterationen zu bestimmen. Wenn das nicht für alle Schleifen gelingt, wird die Angabe der fehlenden Grenzen vom Entwickler verlangt.

Die Kontrollflussanalyse versucht, nicht ausführbare Pfade zu identifizieren. Solche könnten die Präzision der Laufzeitbestimmung verschlechtern.

Die Mikroarchitekturanalyse (microrarchitecture analysis) ist der Kern der Zeitanalyse. Wie oben gesagt, hängen die Ausführungszeiten eines Maschinenbefehls vom Ausführungszustand vor der Ausführung des Befehls ab. Die Ausführungszustände sind Ergebnis der bisherigen Ausführung. An einem Programmpunkt sind i.A. verschiedene Ausführungszustände möglich. Denn man kann i.A. auf verschiedenen Pfaden zu dem Programmpunkt gelangen und/oder die Programmausführung in verschiedenen Anfangszuständen beginnen. Die Mikroarchitekturanalyse berechnet Informationen über die verschiedenen möglichen Ausführungszustände der Ausführungsplattform.

Aus mehreren Gründen berechnet sie eine Obermenge der Menge aller möglichen Zustände. Einmal kann sie diese Menge nicht genau berechnen. Außerdem wäre eine explizite Darstellung dieser Menge viel zu groß. Statt dessen berechnet man abstrakte Zustände, welche Mengen von konkreten Zuständen darstellen.


  1. Zeitanalyse komplexer eingebetteter Systeme
  2. Die Ursache des Problems
  3. Laufzeitanalyse
  4. Vorteile der Mikroarchitekturanalyse
  5. Normen und industrieller Einsatz
  6. Literatur

Lesen Sie mehr zum Thema


Das könnte Sie auch interessieren

Jetzt kostenfreie Newsletter bestellen!

Weitere Artikel zu AbsInt Angewandte Informatik GmbH

Weitere Artikel zu Entwicklungsdienstleistungen