Leistungsbewertung von eingebetteten und Echtzeitsystemen

Die Seite wird erstellt Jil Lauer
 
WEITER LESEN
Leistungsbewertung von eingebetteten und
                        Echtzeitsystemen
                Domenic Cassisi                               Jan Pfeiffer                               Thomas Hass
              Fakultät Informatik                        Fakultät Informatik                        Fakultät Informatik
            Hochschule Furtwangen                       Hochschule Furtwangen                       Hochschule Furtwangen
           Furtwangen, Deutschland                     Furtwangen, Deutschland                     Furtwangen, Deutschland
        domenic.cassisi@hs-furtwangen.de             jan.pfeiffer@hs-furtwangen.de               thomas.hass@hs-furtwangen.de

   Abstract—Diese Arbeit behandelt mehrere Konzepte zur Leis-             aber vor allem wie schlecht sich ein System zur Laufzeit ver-
tungsbewertung von eingebetteten und Echtzeitsystemen. Das                halten wird. Nur so kann die Einhaltung von Zeitbedingungen
Ermitteln von oberen Zeitschranken, insbesondere der schlecht-            überprüft und sichergestellt werden [1].
esten Ausführungszeit, lässt sich durch Verwendung von Zeitanal-
ysen realisieren, wobei zwischen statischen und messbasierten                Diese Arbeit behandelt wichtige Konzepte, die bei der
Zeitanalysemethoden unterschieden wird. Für die Gesamtbew-               Leistungsbewertung von eingebetteten und Echtzeitsystemen
ertung des Systems ist Benchmarking eine geeignete Methode,               herangezogen werden können und erläutert deren Heraus-
um wichtige Zeitparameter zu messen und diese ggf. in den                 forderungen. Der Fokus liegt dabei auf der Validierung
Vergleich mit anderen Systemen zu setzen. Der Einsatz von                 von Zeit- und Funktionalitätcharakteristiken für das zugrun-
Simulationen zur Leistungsbewertung erweist sich als besonders
sinnvoll, wenn die Kosten eines Fehlers unakzeptabel hoch sind            deliegende System.
oder die Validierung mit der Realkomponente unpraktikabel ist                Die Arbeit ist wie folgt aufgebaut: In Kapitel II wird
und somit Qualitätsmaßnahmen durch frühzeitige Validierung              auf das fundamentale Konzept und Methoden von Zeitanal-
benötigt werden.                                                         ysen zur Bestimmung von oberen Zeitschranken eingegangen.
   Index Terms—Leistungsbewertung, Eingebettete Systeme,                  Kapitel III behandelt die Bewertung von Systemen durch
Echtzeitsysteme, Validierung, WCET, Benchmarks, Simulation
                                                                          unterschiedliche Benchmarking-Methoden. Dabei werden der
                                                                          Rhealstone- und Hartstone-Benchmark näher erläutert. Kapitel
                                                                          IV beschreibt das Konzept der Simulation einzelner Kom-
                       I. E INF ÜHRUNG
                                                                          ponenten oder des gesamten Systems, das zur Leistungs-
   Mit der zunehmenden Abhängigkeit von eingebetteten Sys-               bewertung genutzt werden kann. Hierbei werden generelle
temen wächst der Anspruch an die Leistung und Sicherheit                 Problemstellungen und die Entscheidung über eine Simulation
dieser Systeme. Der Echtzeitanspruch an eingebettete Systeme              fokussiert.
ist häufig zwingend notwendig, um kritische Situationen im
Realbetrieb zu vermeiden. Das Einhalten von Zeitbedingun-                     II. W ORST-C ASE E XCECUTION T IME -S CH ÄTZUNG
gen, Zuverlässigkeit und Effizienz sind typische Charakteris-               Eingebettete Systeme und insbesondere Echtzeitsysteme
tiken solcher Systeme [1]. Je mehr die Zuverlässigkeit einer             müssen strenge Zeitbedingungen einhalten, welche aus den
Technologie durch Leistungsbewertungen validiert ist, desto               Anforderungen des zu steuernden Systems abgeleitet werden.
akzeptabler und vertrauenswürdiger wird diese Technologie.               In der Regel werden hierfür obere Zeitschranken festgelegt,
Der Vorteil liegt neben einer schnelleren Markteintrittszeit              die die Einhaltung des geforderten Zeitverhaltens sicherstellen
auch in der Steigerung der allgemeinen Systemqualität [2].               [4]. Im Allgemeinen ist es nicht möglich zu bestimmen, ob ein
   Ein Steuerungssystem für den Airbag eines Autos kann als              Programm terminiert oder nicht (vgl. Halteproblem). Als Folge
Beispiel für die Wichtigkeit von Echtzeitverhalten in einigen            kann es keinen Algorithmus geben, welcher die schlechteste
eingebetteten Systemen betrachtet werden. Wenn der Airbag                 Ausführungszeit für ein Programm exakt berechnet. Jedoch
in einer Crash-Situation zu spät aufbläst, ist das Leben des            ist das Programmieren von eingebetteten Systemen oft mit
Insassen gefährdet. Es muss also sichergestellt werden, dass             Einschränkungen verbunden: Beispielsweise ist Rekursion ver-
ein Airbag immer innerhalb einer bestimmten Frist, z. B. 30               boten oder stark eingeschränkt und auch die Anzahl von
Millisekunden, aufgeblasen wird. Dies ist ein Beispiel für eine          Schleifendurchläufen limitiert. Wären alle Parameter für die
harte Echtzeitbedingung, bei dem ein Verfehlen der Deadline               schlechteste Ausführungszeit eines Programms bekannt, ließe
als Totalausfall des Systems angesehen wird [3].                          sich eben diese bestimmen. Allerdings ist es in der Praxis
   Das Ziel einer Leistungsbewertung ist es, Vorhersagen über            fast unmöglich die schlechteste Ausführungszeit exakt zu
das Leistungsverhalten (engl. Performance) eines technischen              bestimmen. Die tatsächliche Ausführungszeit hängt neben der
Systems zu treffen. Aussagen über das durchschnittliche Ver-             Eingaben und vom Zustand des Systems auch von der darun-
halten eines Systems reichen oftmals nicht aus. Insbesondere              terliegenden Hardware ab [1]. Moderne Prozessorarchitek-
bei Echtzeitsystemen muss genau untersucht werden, wie gut,               turen, Cache-Technologien usw. erschweren die Schätzung

                                                                     39
zusätzlich. Stattdessen wird versucht, eine sichere obere (und                          1) Datenabhängiger Kontrollfluss: Wären Eingaben und
gegebenenfalls untere) Grenze für die Ausführungszeit eines                        Ausgangszustand für den schlechtesten Ausführungspfad
Programmteils zu ermitteln. Die Worst-Case Execution Time                            bekannt, ließe sich daraus problemlos die WCET bestimmen,
(WCET) ist die längste Zeit, die ein Programm oder Pro-                             z.B. durch Messung der Ausführungszeit unter genau diesen
grammteil zur Ausführung benötigt. Analog wird die kürzeste                       Bedingungen. Im Allgemeinen ist es aber nicht oder nur sehr
Ausführungszeit als Best-Case Execution Time (BCET) beze-                           schwer möglich, die Eingaben bzw. den Zustand des Systems
ichnet [5].                                                                          zu bestimmen, die den schlechtesten Ausführungspfad wider-
    In Fig. 1 sind einige wichtige Begriffe anschaulich                              spiegeln.
dargestellt.      Eine    Untermenge        aller    möglichen                          Der sog. Kontrollflussgraph stellt eine Obermenge aller
Ausführungszeiten bestimmen die kleinste und größte                                möglichen Ausführungspfade eines Tasks dar. Abhängig von
beobachtete Ausführungszeit. Im Allgemeinen wird dabei                              den Eingangsdaten werden unterschiedliche Wege durch
der WCET überschätzt und der BCET unterschätzt, was                               den Kontrollflussgraphen durchlaufen. Diese Datenstruk-
diese Methode, die sog. Dynamic Timing Analysis ungeeignet                           tur muss in einem ersten Schritt von einer Quellcode-
für harte Echtzeitsysteme macht [4]. In jedem Fall sollten                          oder Maschinencode-Version des zu analysierenden Tasks
Schätzungen über obere Schranken sicher und dicht sein,                            abgeleitet werden, dem Frontend. Probleme können dabei
das heißt die Eigenschaften W CETEST              W CET und                          bei dynamischen Sprüngen auftreten, etwa durch Verwendung
W CETEST W CET ⌧ W CET sollten erfüllt sein [5].                                    von switch/case-Strukturen, Zeiger auf Funktionen oder den
                                                                                     Aufruf virtueller Funktionen [4]. Ein Kontrollflussgraph kann
         Verteilung der                                                              als gerichteter Graph G = (V, E, i) dargestellt werden, wobei
        Ausführungszeiten
                                                                                     die Knoten v 2 V sog. Basis-Blöcke repräsentieren, die ein
                                                                                     konstantes Zeitverhalten aufweisen und keine Verzweigungen
                                                                                     enthalten. Eine Kante e 2 E ✓ V ⇥ V liegt zwischen zwei
                  BCET                                    WCET                       Knoten vi und vj , wobei vj unmittelbar nach vi ausgeführt
                                                                                     wird. Es gibt genau einen Startknoten i 2 V , wobei dieser
                                                                                     keine zu ihm führende Kante hat, formal beschrieben durch
   0
        BCETEST                                                  WCETEST
                                                                            t        @v 2 V : (v, i) 2 E, siehe [6].
                                                                                         Eine Kontrollflussanalyse leitet Informationen über
              Fig. 1. Veranschaulichung grundlegender Begriffe                       mögliche Kontrollflüsse heraus, um die Genauigkeit
                                                                                     für nachfolgende Analysen zu erhöhen, beispielsweise
                                                                                     durch den Ausschluss undurchführbare Pfade. Ziel einer
A. Probleme und Anforderungen von Zeitanalysen                                       Kontrollflussanalyse ist es auch, Grenzen für Schleifen und
   Zeitanalysen     zielen    darauf    ab,    Grenzen     für                      rekursive Funktionen zu bestimmen, da für die Ausführung
Ausführungszeiten eines Tasks bei Ausführung auf einer                             solcher Konstrukte häufig am meisten Zeit benötigt wird [4].
bestimmten Hardware-Plattform zu bestimmen. Die Zeit,                                    2) Kontextabhängigkeit von Ausführungszeiten: Erste
die für eine bestimmte Ausführung benötigt wird, hängt ab                        Lösungsansätze zur Analyse von Ausführungszeiten nahmen
vom Kontrollflusspfad, sowie der Zeit, die in Statements                             eine Unabhängigkeit von einzelnen Anweisungen an. Obere
und Anweisungen auf einer gegebenen Hardware verbracht                               Grenzen für die Ausführungszeit ließen sich durch Addition
wird. Für die Bestimmung von Ausführungszeitgrenzen                                einzelner Anweisungen berechnen. Beispiel: Ein Task führt
müssen sowohl mögliche Kontrollflusspfade als auch die                             erst Codeschnipsel A und anschließend Codeschnipsel B aus,
Ausführungszeiten für eben diese Pfade herangezogen werden                         wobei für A die obere Grenze OGA und für B entsprechend
[4].                                                                                 OGB definiert ist. Für die obere Grenze beider Schnipsel
   Fig. 2 stellt die fundamentalen Analyseschritte einer                             ergibt sich die obere Grenze aus OGA;B = OGA + OGB ,
Zeitanalyse dar. Im Folgenden wird unter Betrachtung                                 siehe [7].
wesentlicher Herausforderungen einer Zeitanalyse genauer auf                             Jedoch trifft diese Kontextunabhängigkeit nicht mehr
einige dieser Phasen eingegangen.                                                    auf moderne Prozessoren aufgrund komplexer Cache- und
                                                                                     Pipeline-Technologien zu. Die Ausführungszeit von B
                                                                                     (aus obigen Beispiel) kann stark vom Ausführungszustand
       Ausführ-
       bares                    Visualisierung
                                                              Schranken-             abhängen, der zuvor von A produziert wurde. Bei der Bestim-
                                                    Globale   berechnung
       Programm
                                                   Schranke
                                                                                     mung oberer Ausführungsgrenzen sollten diese Informationen
                                                                   Lokale            berücksichtigt werden, um präzisere Ergebnisse zu erhalten
                           Kontroll-
                                                                  Schranken          [5]. Obiger Ansatz mit Addition der Ausführungszeiten wird
                                                              Prozessor-             häufig für einfachere Prozessoren verwendet, liefert für mod-
                         flussgraph    Kontrollfluss-
       Frontend                                               verhaltens-
                                         analyse
                                                               analyse               ernere Prozessoren jedoch oft ungenaue Ergebnisse, weil diese
                                                                                     sich als zu pessimistisch heraustellen [4].
               Fig. 2. Fundamentale Phasen einer Zeitanalyse                             Letztendlich werden aus den Ergebnissen der Prozessorver-
                                                                                     haltensanalyse durch ein ausgewähltes Berechnungsverfahren

                                                                                40
Schranken für die Ausführungszeit des Programms bestimmt,                                                                             s
                                                                                                                                             start

welche dann in einer für Menschen lesbaren Form präsentiert                 int foo(int x, int y) {
                                                                                                                maxiter = 100
werden [4]. Konkrete Berechnungsverfahren werden im fol-                                                                        3       A
                                                                                  int i = 0, ret = 29;
genden Abschnitt vorgestellt.
B. Statische Methoden                                                             while (i < 100) {        /* A */
                                                                                                                                5       B
    Der Einsatz statischer Methoden erfordert nicht die                               if (x == 42) {      /* B */
Ausführung von Code auf echter Hardware oder einem                                       ret = ret + 12; /* C */
                                                                                      } else {
Simulator. Bei statischen Methoden wird der Code selbst                                   ret = 24;       /* D */       7   C                  4     D
betrachtet, die Menge der möglichen Kontrollflusspfade                               }

analysiert und die Kontrollflüsse mit einem Modell der Ziel-
                                                                                      if (y % 2 == 0) {    /* E */              6       E
Hardwarearchitektur kombiniert, woraus sich obere Grenzen                                 ret *= 23;       /* F */
für die Ausführungszeit ermitteln lassen.                                           } else {
                                                                                          ret += 95;       /* G */
    Statische     Methoden        erzeugen      Schranken      für                   }
                                                                                                                        8   F                  5     G
Ausführungszeiten, wobei garantiert wird, dass die
Ausführungszeit       diese    Grenze      nicht   überschreitet.               }
                                                                                      i++;                 /* H */

Dadurch werden sicherere Scheduling-Analysen von harten                           return ret;                                   2       H
                                                                              }
Echtzeitsystemen ermöglicht [4].
    Grundsätzlich lässt sich die statische Analyse in folgende                                                                    s
                                                                                                                                            exit

drei Phasen unterteilen (vgl. [6]):
    1) Analyse des Kontrollflusses                                                    Fig. 3. Kontrollflussgraph mit Zeitbewertung [6]
          • Ermittlung von möglichen Kontrollflusspfaden aus
            Quellcode oder Maschinencode.
                                                                             3) IPET-basierte Ermittlung: Die Idee der Implicit Path
    2) Verhaltensanalyse des Prozessors                                    Enumeration Technique (IPET) ist es, den Programmfluss und
          • Betrachtung und Berücksichtigung von Kontextin-               die Ausführungszeitschranken mit einer Menge von arith-
            formationen, Caches, Speicher, etc.                            metischen Bedingungen (Constraints) zu kombinieren. Jedem
    3) Berechnung einer Einschätzung für die WCET                        Block wird dabei eine Worst-Case-Ausführungszeit ti eines
          • Kombination der Ergebnisse aus den ersten beiden               Durchlaufs und ein Zähler xi zugeordnet, der die Anzahl der
            Phasen.                                                        Aufrufe des Blocks angibt. Die obere Schranke lässt sich aus
    Im Folgenden werden die Ideen von drei wesentlichen                    der Maximierung der Summe von Produkten der Zähler und
Methoden zur Ermittlung der WCET vorgestellt. Zur Veran-                   Zeiten bestimmen [4], [8], formal:
                                                                                                                         !
schaulichung sei in Anlehnung an [6] der in Fig. 3 dargestellte                                             X
Kontrollflussgraph für ein Beispielprogramm gegeben. Jedem                              W CET = max            x i ⇤ ti
Knoten ist eine entsprechende Zeiteinheit zugeordnet, die                                                          8i

zuvor aus einer Prozessorverhaltensanalyse ermittelt wurde.                   Fig. 4b zeigt die Bedingungen (Constraints) für eine IPET-
    1) Strukturbasierte Ermittlung: Bei der strukturbasierten              basierte WCET-Bestimmung. Start und Exit-Knoten müssen
Ermittlung wird ein Syntaxbaum für ein Programm aufgestellt,              einmal durchlaufen werden. Die strukturellen Constraints
wobei das Programm prinzipiell in drei verschiedene Struk-                 beschreiben den möglichen Programmfluss.
turen unterteilt werden kann: sequenzielle Blöcke (seq),
Verzweigungen (if) und Schleifen (loop). Bei Schleifen wird                C. Messbasierte Methoden
die maximale Anzahl an Iterationen (maxiter) angegeben.                       Angelehnt an [4] werden im Folgenden einige Beobach-
Unter Verwendung definierter Transformationsregeln werden                  tungen und Ansätze messbasierter Methoden vorgestellt. Bei
die Blöcke des Syntaxbaums nach und nach durch einfachere                 der Zeitanalyse mithilfe messbasierter Methoden wird der
Blöcke ersetzt [4]. Fig. 4c veranschaulicht das Konzept anhand            zu analysierende Task auf der Zielhardware oder einem
des Beispiel-Kontrollflussgraphen aus Fig. 3.                              Simulator für ausgewählte Eingaben ausgeführt, wobei die
    2) Pfadbasierte Ermittlung: In einer pfadbasierten WCET-               Ausführungszeit des Tasks gemessen wird. Für eine Un-
Ermittlung wird die obere Schranke dadurch bestimmt,                       termenge aller möglichen Ausführungen lassen sich somit
dass Schranken für verschiedene Pfade eines Tasks berech-                 Schätzungen und Verteilungen aufstellen, jedoch keine
net werden, wobei nach dem Pfad mit der längsten                          Schranken für Ausführungszeiten, es sei denn, die Untermenge
Ausführungszeit gesucht wird. Mögliche Pfade werden also                 beinhaltet den worst-case. Ist die Eingabe für die schlechteste
explizit behandelt, wobei die Komplexität exponentiell mit                Ausführungszeit bekannt, so reicht eine einzige Ausführung
der Verschachtelungstiefe ansteigt, etwa durch verschachtelte              zur Bestimmung der WCET aus.
Schleifen [4], [6]. Fig. 4a veranschaulicht die pfadbasierte                  Ein weiterer Ansatz besteht darin, die Ausführungszeiten
Bestimmung am Beispiel des Kontrollflussgraphen aus Fig.                   einzelner Codesegmente zu messen, wobei diese nach der
3.                                                                         Messung kombiniert und analysiert werden. Daraus lassen

                                                                      41
start                                                            xstart             start
                    s                                                                                  s                xHA
                                                                                     xstartA                                           // Start- und Endbedingung
                                                                                                                                       xstart = 1, xexit = 1
                                       Längster Pfad
          3 A                          hervorgehoben
                                                                                           3           A          xA
                                                                          xAexit                                                       // Strukturelle Bedingungen
                                                                                                           xAB
                                                                                                                                       xstart = xstartA
          5 B                                                                              5           B          xB                   xA = xstartA +xHA = xAexit + xAB
                                                                                   xBC                            xBD                  xB = xAB = xBC + xBD
                                       // Zeitbestimmung                                                                               xC = xBC = xCE
                                       tpath = 31                                                                                      xD = xBD = xDE
    7 C                   4 D          theader = 3
                                                                          7        C       xC                 4        D    xD
                                                                                                                                       xE = xCE + xDE = xEF + xEG
                                                                                   xCE                              xDE                xF = xEF = xFH
                                       // WCET-Berechnung
                                                                                                                                       xG = xEG = xGH
          6 E                          WCET =                                              6           E          xE
                                        theader + tpath *                                                                              xH = xFH + xGH = xHA
                                                                                    xEF                           xEG
                                       (maxiter-1)
                                       = 3 + 31 * 99 = 3072                                                                            // Schleifenschranke:
    8 F                   5 G                                             8        F       xF                 5        G xG            xA ≤ 100
                                                                                   xFH                              xGH
                                                                                                                                       // WCET-Ausdruck
          2 H                                                                              2           H      xH                       WCET = max(xA*3 + xB*5 + xC*7 + xD*4 + xE*6 + xF*8 + xG*5 + xH*2)
                                                                                                                                       WCET = 3072
                    exit                                                                                   exit
                s                                                                                  s

                    (a) Pfadbasierte Berechnung                                                                                                     (b) IPET-basierte Berechnung

                                                                                   start
                        Syntaxbaum                                            s
                                                                                                                                               s
                                                                                                                                                    start
                                                                                                                                                                                       s
                                                                                                                                                                                            start

          loop                                                                                                                                                                                                  s
                                                                                                                                                                                                                    start

                                                                      3       A
                                                                                                                                      3        A                            3          A
      A                 seq

           if                    seq                                  5       B
                                                                                                                                    12 B, C, D

                                                                                                                                                                                                                           Ermittelter
      B    C             D        if         H                                                                                                                                                                             WCET des
                                                              7   C                  4         D                                                                                                                           Programms
                             E   F      G
                                                                                                                           if                                    seq                                loop   A, B, C, D,
                                                                                                                                                                                                                               3072
                                                                      6       E                                                                                                                            E, F, G, H
          Transformationsregeln                                                                                                     14 E, F, G

    T(seq(S1, S2) = T(S1) + T(S2)
                                                              8   F                  5         G
    T(if(Exp) S1 else S2) =
       T(Exp) + max(T(S1), T(S2))                                                                                                                                            B, C, D,
                                                                                                                                                                                       28
                                                                      2       H                                                                                             E, F, G, H
                                                                                                                                       2       H
    T(loop(Exp, Body)) =                                                                                                                                                                                            exit
                                                                                                                                                                                                                s
       T(Exp) +                                                           s
                                                                                  exit
                                                                                                                                                   exit                                    exit
       (T(Exp) + T(Body)) *                                                                                                                s                                       s

       (maxiter-1)
                                                                                               (c) Strukturbasierte Berechnung

                                            Fig. 4. Statische Methoden zur Ermittlung der Worst-case Execution Time im Überblick

sich durch Schrankenberechnungen Schätzungen der WCET                                                                          Für Prozessoren mit einfachem Zeitverhalten können Zeitmes-
bzw. BCET ermitteln. Solche Messungen ersetzen die Prozes-                                                                      sungswerkzeuge ausreichend gute Ausführungszeitschranken
sorverhaltensanalyse, die in statischen Methoden verwen-                                                                        bestimmen, jedoch für komplexere Prozessoren häufig nur
det wird. Die Kontrollflussanalyse kann, wie sie auch in                                                                        Schätzungen der Zeitschranken vornehmen.
statischen Methoden Anwendung findet, zur Bestimmung                                                                               Es stehen mehrere Möglichkeiten zur Zeitmessung zur
möglicher Pfade herangezogen werden. Durch anschließende                                                                       Verfügung. Im einfachsten Fall wird zusätzlicher Instru-
Berechnungen lassen sich die einzelnen Messergebnisse zu                                                                        mentierungscode dazu verwendet, Zeitstempel oder Zyk-
übergreifenden Zeitschranken kombinieren. Dieser Ansatz                                                                        lenzähler der CPU zu erfassen und aufzuzeichnen. Messun-
berücksichtigt zwar alle möglichen Pfade, kann aber unsichere                                                                 gen mithilfer gemischter HW/SW-Instrumentierungstechniken
Ergebnisse liefern, sofern die Messungen einzelner Blöcke                                                                      benötigen externe Hardware zur Erfassung von Zeiten [4].
unsicher sind. Zudem wird nur eine Teilmenge der möglichen                                                                     Vollständig transparente Messungen sind möglich mit sog.
Prozessorzustände für die zu analysierenden Blöcke betrachtet                                                                Logikanalysatoren [9]. Die Ausgaben und Ergebnisse von
(vgl. Kontextunabhängigkeit aus Abschnitt II-A2). Zum einen                                                                    Prozessorsimulationen oder VHDL-Simulatoren bieten sich
ist das Testen aller möglichen Zustände häufig nicht möglich                                                                zusätzlich als Messinstrument an [4]. Auf Leistungsbewertung
und zum anderen ist der schlechteste Startzustand (initial                                                                      durch Simulation wird gesondert in Abschnitt IV eingegangen.
state) oft nicht bekannt oder nur sehr schwer zu bestimmen.                                                                        Rheinhard Wilhem kommt in [4] zu dem Entschluss, dass

                                                                                                                           42
sich die Ergebnisse messbasierter Methoden besonders eignen,            kann ähnlich sein. So kommt beispielsweise die ITEP-
um einen Eindruck der Variabilität von Ausführungszeiten              Berechnung sowohl in einigen statischen als auch in mess-
eines Programms zu erhalten. Zudem können sie als Va-                  basierten Methoden zum Einsatz.
lidierungsmethode für statische Analysen verwendet wer-                   Das Hauptproblem von statischen Methoden stellt die
den. Dabei sollten die gemessenen Ausführungszeiten nicht              Modellierung des Prozessorverhaltens dar, die sehr kom-
zu weit von den durch statische Methoden ermittelten                    plex und aufwändig sein kann. Bei messbasierten Metho-
Ausführungszeiten auseinander liegen, denn dies würde darauf          den liegt die Herausforderung in der präzisen Messung von
hindeuten, dass letztere ungenau sind.                                  Ausführungszeiten, d.h. die Messung selbst darf bei der
                                                                        Messung der Ausführungszeit des auszuführenden Programms
D. Vergleich statischer und messbasierter Methoden zur Bes-             keine Verfälschung verursachen. Die Lösungen der Messprob-
timmung der WCET                                                        lematik sind sehr prozessorspezifisch, lassen sich jedoch für
   Im Folgenden werden im Zuge des Vergleichs statischer und            neue Prozessoren oft leichter realisieren, als die Implemen-
messbasierter Methoden wesentliche Eigenschaften, Unter-                tierung eines abstrakten Prozessorverhaltensmodells [4].
schiede und Gemeinsamkeiten beider Methoden in Anlehnung
                                                                          III. L EISTUNGSBEWERTUNG DURCH B ENCHMARKING
an [4], [5] erläutert.
   Statische      Methoden     berechnen      Schranken     für           Benchmarks werden als Werkzeug für den Vergleich von
Ausführungszeiten.     Durch     Kontrollflussanalysen    und          mehreren Systemen anhand von spezifischen Parametern in-
Schrankenberechnungen          werden       alle    möglichen          nerhalb eines einheitlichen Maßstabs eingesetzt und sind zur
Ausführungspfade identifiziert. Abstraktionen in Form                  Leistungsbewertung von eingebetteten- und Echtzeitsystemen
von Prozessormodellen werden in statischen Methoden                     ein beliebtes Instrument. Benchmarks in diesem Bereich lassen
dazu verwendet, alle möglichen Kontextabhängigkeiten,                 sich zunächst in zwei Kategorien unterteilen.
die durch das spezifische Verhalten des Prozessors bedingt              A. Harte und Weiche Zeitgrenzen
sind, abzudecken. Diese Sicherheit hat ihren Preis in der
                                                                           Die Auswahl des Benchmarks zur Leistungsbewertung
Notwendigkeit eben solcher prozessorspezifischen Modelle
                                                                        hängt vom System, sowie dessen Umgebung und Anforderun-
und möglicherweise ungenaue Ergebnisse, etwa durch
                                                                        gen ab. Dies bezieht sich insbesondere auf die Lauffähigkeit
überschätzte WCET-Schranken. Für statische Methoden
                                                                        innerhalb vorgegebener und vorhersehbarer Zeitgrenzen. Die
spricht, dass die Analyse durchgeführt werden kann, ohne
                                                                        Zeitgrenzen können in zwei Ausartungen vorkommen, einer
das zu analysierende Programm auszuführen, wofür oft
                                                                        harten und einer weichen Zeitgrenze. Die harte Zeitgrenze
aufwändige Technik zur Simulation der Hardware und
                                                                        beschreibt die Anforderung, dass ein System zu einem bes-
Peripherie des Zielsystems notwendig ist.
                                                                        timmten Zeitpunkt mit seiner Aufgabe fertig sein muss, weil
   Messbasierte Methoden ersetzen den Schritt der Prozes-
                                                                        die Bereitstellung des Ergebnisses nach der Frist nutzlos
sorverhaltensanalyse durch konkrete Messungen. Oft erzeu-
                                                                        oder schädlich sein kann. Eine weiche Zeitgrenze wiederum
gen messbasierte Ansätze unsicherere Ergebnisse, es sei
                                                                        mildert die Konsequenzen der Rechtzeitigkeitsanforderung
denn, es werden alle möglichen Ausführungspfade gemessen
                                                                        hinsichtlich der Stärke der Folgen bei Nichteinhaltung. Sie
oder jede Messung wird mit dem schlechtesten Startzus-
                                                                        sorgt dafür, dass erst nach einer bestimmten Zeit beim Ver-
tand (worst-case initial input) gestartet, wobei letzteres eine
                                                                        fehlen der Frist mit hohen Konsequenzen zu rechnen ist und
große Herausforderung, besonders für modernere Prozessoren
                                                                        gibt somit dem System einen gewissen Spielraum [10]. In
darstellt. Ein wesentlicher Vorteil dieser Methoden liegt in
                                                                        Fig. 5 ist der Unterschied der beiden Arten von Zeitgrenzen
der einfachen Anwendbarkeit, da sie keine Verhaltensmodel-
                                                                        verdeutlicht.
lierung des Prozessors erfordert. Zudem lassen sich präzisere
Schätzungen, besonders für komplexere Prozessoren, auf-
stellen, die näher an der tatsächlichen WCET und BCET                    Strafe                                         Harte Echtzeit

liegen, als die Schranken, die durch statische Methoden er-
mittelt wurden.
                                                                                                                          Weiche Echtzeit

   Sowohl statische als auch messbasierte Methoden können
durch den Anwender präzisiert werden. Bei statischen Metho-
den können beispielsweise nichtdurchlaufbare Pfade in Form
von Annotationen durch den Anwender ausgeschlossen wer-                                                  Deadline
                                                                                                                             Zeit bis zur Fertigstellung

den. Bei messbasierten Methoden lassen sich durch eine
Erweiterung der Testfälle weitere Ausführungen in die Mes-                  Fig. 5. Veranschaulichung harter und weicher Zeitgrenzen [10]
sungen mit aufnehmen.
   Beide Ansätze haben ähnliche technische Probleme und                  Die Definition der Zeitgrenze hat einen starken Einfluss auf
nutzen dafür entsprechend ähnliche Lösungen. In der Regel            das eingebettete Echtzeitsystem. Es ist deshalb erforderlich,
verwenden beide Methoden ausführbaren (Maschinen-)Code                 eine genauere Betrachtung der Spezifikationen der einge-
als Eingabe. Außerdem greifen beide Ansätze auf eine Kon-              setzten Benchmarks zur Sicherstellung der Robustheit und
trollflussanalyse zurück; auch die Berechnung der Schranke             Fehlertoleranz des Systems vorzunehmen [10].

                                                                   43
B. Klassifikation von Benchmarks                                         C. Rhealstone
   Die Benchmarks zur Untersuchung der Leistungsfähigkeit                  Der Rhealstone ist ein feinkörniger Benchmark, welcher
der Systeme lassen sich in drei Herangehensweisen einordnen:             erstmals im Februar 1989 im Dr. Dobb’s Journal vorgestellt
feinkörnige Benchmarks, applikationsorientierte Benchmarks              worden ist. Der Benchmark misst die Ausführungszeiten bzw.
und simulationsbasierende Benchmarks. Die wesentlichen Un-               Verzögerungen an 6 Messpunkten des Systems [12]. Diese
terscheidungsmerkmale sind dabei der Geltungsbereich und                 dienen als Indikatoren, anhand denen die Leistung des Echtzeit
die Art der Durchführung.                                               oder eingebetteten Systems unter multitasking-Anforderungen
   1) Feinkörnige Benchmarks: Bei der Leistungsbewertung                zu bewerten ist. An jedem Messpunkt tn werden die Werte
auf Basis von feinkörnigen Benchmarks werden die absoluten              separat gemessen und anschließend, unter Berücksichtigung
Zeiten eines Systems ermittelt. Dabei werden bestimmte Werte             einer eventuellen Gewichtung wn , summiert, gemittelt und in-
von Low-Level-Operationen isoliert betrachtet und gemessen.              vertiert, woraus sich der Rhealstone ergibt [13]. Diese Summe
Typische Zeiten, die bei dem Benchmark gemessen werden,                  ist für den Vergleich mit anderen Systemen vorgesehen, jedoch
sind zum Beispiel die Zeit die das System benötigt, um einen            sind für aussagekräftige Aussagen über das System die Werte
Deadlock aufzulösen oder der Wechsel zwischen verschiede-               einzeln zu betrachten. Die Berechnung des Rhealstones nach
nen Aufgaben. Feinkörnige Benchmarks sind aufwändig, da                [14] ist formal:
es schwierig sein kann, gleichbleibende reproduzierbare Werte                                                    6
zu ermitteln [11]. Dies ist darauf zurückzuführen, dass die                              Rhealstone = P6
Isolation eines bestimmten Werts aufwändig ist. Viele Zeiten                                                n=1 tn ⇤ wn

die gemessen werden, dauern oftmals nur wenige Mikrosekun-               Die genaueren Beschreibungen der Messpunkte (Rhealstone
den und sind deshalb schwierig auseinander zu halten. Auf-               Komponenten) erfolgt in den kommenden Abschnitten.
grund dieser Tatsache sind die Messungen in der Regel                       Der Benchmark ist in C umgesetzt und darauf ausgelegt,
mehrmals durchzuführen, damit ein Durchschnitt für einen               dass die Implementierung unabhängig von einem bestimmten
Wert errechnet werden kann. Erschwerend hinzukommend                     Betriebssystem erfolgen kann. Das Ziel des Benchmarks ist
sind zudem die Ungenauigkeiten in der Messung durch Cache-               es, in der Entwicklung bei der Entscheidung über ein System
Technologien, Platzierung des Codes im Speicher und weitere.             zu unterstützen. Es ist nicht vorgesehen, dass der Benchmark
Der Rhealstone-Benchmark ist ein von Kar und Porter 1989                 von Endnutzern für eine Gesamtbewertung eines Systems
entwickelter Benchmark, der in diesem Bereich angewendet                 eingesetzt wird [14].
wird [12].                                                                  1) Rhealstone Komponenten: Die task switching time t1
   2) Applikationsorientierte Benchmarks: Bei dieser Art von             ist die durchschnittliche Zeit, die das System benötigt, um
Benchmark handelt es sich um einen synthetischen Bench-                  zwischen zwei Aktivitäten gleicher Priorität zu wechseln.
mark, der aus einer Reihe simultaner Aktivitäten besteht.               Dabei sollten die beiden Aktivitäten unabhängig voneinander
Der Hauptvorteil des anwendungsorientierten Benchmarkings                sein und der Wechsel sollte synchron erfolgen, siehe Fig. 6.
besteht darin, dass es Ergebnisse im Kontext von eingebetteten
oder Echtzeitsystemen liefert, indem es sich als Systeman-                     Aktivitäten

wendung präsentiert. Es liefert auch Ergebnisse, die nützlicher
und repräsentativer sind, als feinkörnige Benchmarks zu viel              Aktivität 3

geringeren Kosten als eine vollständige Simulation (da das ver-            Aktivität 2
wendete System ein reales System ist und keine Simulation er-
fordert). Es bietet einen Bewertungsstandard, der mit anderen               Aktivität 1

Gesamtsystemen verglichen werden kann. Ein synthetischer
Benchmark ist ein Programm, das keine nützlichen Funktionen                                                                                      Zeit
ausführt, sondern ein mit einer typischen Befehlshäufigkeit                                         ∆1            ∆2             ∆3
erstelltes Programm, das als repräsentatives Programm für den                              Priorität: Aktivität 1 = Aktivität 2 = Aktivität 3
entsprechenden Anwendungsbereich gilt [11].
   3) Simulationsbasierende Benchmarks: Im Gegensatz zu                                      Fig. 6. Task switchting time [14]
applikationsorientierten Benchmarks werden simulations-
basierende Benchmarks nicht auf dem realen System aus-                      Die preemption time t2 ist die durchschnittliche Zeit, die
geführt, sondern in einem entsprechend für diesen Einsatz              eine Aktivität mit hoher Priorität benötigt, um die Rechen-
entwickelten Modell. Dabei werden Leistungen bewertet, die               leistung einer laufenden Aktivität mit niedriger Priorität zu
auf Annahmen über Design, Aufbau, Anforderungen usw. des                übernehmen, vgl. Fig 7. So eine Übernahme tritt üblicherweise
realen Systems basieren. Es gehört deshalb auch zu einer der            dann auf, wenn eine Aktivität mit hoher Priorität aus einem
großen Herausforderungen beim Einsatz solcher Benchmarks,                ruhenden Zustand in einen aktiven Zustand wechselt [14].
dass das simulierte Modell eventuell fehlerhaft sein könnte,               Die Interrupt latency t3 ist die Zeit , zwischen dem
wenn es nicht dem realen System in entsprechender Form                   Moment, wenn die CPU eine Unterbrechung registriert bis
und Tiefe entspricht. Abschnitt IV behandelt diese und weitere           zu dem Moment, in dem der Unterbrechungshandler applika-
Herausforderungen bei Simulationen.                                      tionsseitig beginnt, darauf zu reagieren, vgl. Fig. 8. In dieser

                                                                    44
Aktivitäten                                                                                         zu lösen, der durch die Blockade einer benötigten Ressource
                                                                                                           durch einen niedrig priorisierten Prozess hervorgerufen wird.
   Aktivität 3
     hoch                                                                                                  Es wird von dem Zeitpunkt an gemessen, an dem die höhere
   Aktivität 2                                                                                             Aktivität eine Anfrage für die Ressource stellt, bis zu dem
     mittel
                                                                                                           Zeitpunkt, an dem die Aktivität auch wirklich Zugriff auf
   Aktivität 1
    niedrig                                                                                                die Ressource erhält. Davon wird die Zeit abgezogen, die der
                                                                                                           niedrigere Prozess benötigt, um die entsprechende Ressource
                                                                                               Zeit
                                                                                                           freizugeben [12]. Die intertask message latency t6 misst die
                                                                                                           Zeit, die eine Nachricht benötigt, um von einer Aktivität zur
                                   ∆1            ∆2
                                                                                                           anderen geschickt zu werden. Um diese Latenz bestimmen zu
                              Fig. 7. Preemption time [14]                                                 können, muss der Absender direkt nach dem Versand gestoppt
                                                                                                           werden, wobei der Empfänger so lange unbeschäftigt ist, bis er
                                                                                                           die Nachricht erhalten hat. Zudem muss der Nachrichtenaus-
Zeit werden unter anderem die Daten aus dem Umfeld des                                                     tausch zwei Bedingungen erfüllen: Der Nachrichtenverkehr
Prozessors vor Verlust gesichert. Verzögerungen, die durch                                                muss bei Laufzeit aufgebaut werden, ein Austausch beispiel-
Hardware ausgelöst werden, sind nicht in der interrupt latency                                            sweise über eine globale Variable ist nicht zulässig. Zweitens
mit eingeschlossen [14].                                                                                   dürfen keine Nachrichten beim Empfänger verloren gehen
                                                                                                           bzw. solange alte Nachrichten nicht überschrieben werden, bis
          Aktivitäten                                                                                      der Empfänger die Möglichkeit hatte, sie zu verarbeiten.
                                                                                                              Der Rhealstone Benchmark testet eine Menge an Parametern
 Unterbrechungs
    Handler
                                                                                                           und liefert Werte, mit denen sich nicht nur Aussagen bezüglich
    Aktivität
                                                                                                           der Leistung validieren lassen, sondern eignet sich auch dazu,
                                                                                                           einen Vergleich mit anderen Systemen anzustellen. Zudem
                          CPU wird
                        unterbrochen                                                                       können für bestimmte Betrachtungsweisen auf ein System
                                                                                                           bestimmte Parameter mit Gewichtungen versehen werden, um
                                                                                               Zeit
                                                                                                           einen bestimmten Anwendungsbereich abzubilden. [14].
                                        ∆                                                                  D. Hartstone
                                                                                                               Dieser Benchmark gehört zu der Kategorie der applikation-
                              Fig. 8. Interrupt latency [14]
                                                                                                           sorientierten Benchmarks und ist für Systeme vorgesehen, die
                                                                                                           mit harten Zeitgrenzen (vgl. III-A) arbeiten. Er stellt ein breites
   Die Zeit, bis eine Aktivität Zugriff zum Semaphore
                                                                                                           Spektrum an Anforderungen und entsprechenden Testserien
bekommt, während dieser gerade besetzt ist, heißt Semaphore
                                                                                                           zur Verfügung, die die Eigenschaften und Leistung eines
shuffling time t5 . Die Zeit ist ein wichtiger Indikator, da in
                                                                                                           Systems testen [13]. Der Benchmark ist zwar vorzugsweise
eingebetteten und Echtzeitsystemen oftmals mehrere Prozesse
                                                                                                           für die Bewertung von Echtzeitsystemen ausgelegt, sieht aber
auf dieselbe Ressource zugreifen. Dafür dürfen die Zeiten
                                                                                                           durchaus auch eine Anwendung in eingebetteten Systemen vor.
beim Wechseln des Eigentümers des Semaphores nicht zu groß
                                                                                                               Das Benchmark-Modell behandelt ein System als eine Reihe
werden. In Fig. 9 ist zu erkennen, welche Zeitabschnitte für die
                                                                                                           von periodischen, aperiodischen und synchronisierenden Ak-
Messung herangezogen werden. Der Wert dieses Messpunkts
                                                                                                           tivitäten welche grundsätzlich zwei Eigenschaften aufweisen:
berechnet sich anhand der Grafik aus der Summe aller n
                                                                                                           Die Zeit, die sie zur Ausführung benötigen und der Zeit-
[14].
                                                                                                           punkt, zu dem sie abgeschlossen sein müssen (Deadline).
         Aktivitäten
                                                                                                           Diese Eigenschaften werden in den folgenden fünf Arten von
                                                                                                           Testserien geprüft [11]:
   Semaphore
    Eigentum
                                   Aktivität 1
                                                           Aktivität 2
                                                                                                               1) Periodic Tasks, Harmonic Frequencies PH
   Aktivität 2                                                                                                 2) Periodic Tasks, Nonharmonic Frequencies PN
                                                                                                               3) Periodic Tasks with Aperiodic Processing AH
   Aktivität 1
                                                                                                               4) Periodic Tasks with Sychronization SH
                                                                                                               5) Periodic Tasks, Aperiodic Processing and Synchroniza-
                                          ∆1          ∆2                        Zeit
                                                                                                                   tion SA
                                                                    = Aktivität fragt Semaphore an

                                                                    = Aktivität gibt Semaphore ab
                                                                                                               Die aufgeführten Testserien werden in der angegebenen
                                                                                                           Reihenfolge und mit dem Ziel durchgeführt, stets die Worst-
                        Fig. 9. Semaphore shuffling time [14]                                              Case Szenarien abzubilden. Dabei wird jedes Experiment
                                                                                                           so oft wiederholt und immer einer der folgenden Parameter
  Die fünfte Komponente des Rhealstone ist die deadlock                                                   verändert, bis die Deadlines nicht mehr eingehalten werden
breaking time t4 . Sie beschreibt die Zeitspanne, die benötigt                                            können: Anzahl der Aktivitäten, Ausführungszeiten, Sper-
wird, um einen Deadlock einer höher priorisierten Aktivität                                              rzeiten und Deadlines [15].

                                                                                                      45
Die periodischen Aktivitäten sind definiert durch ihre Peri-        das System und geben entsprechende Outputs an das System
ode und Ausführungszeit. Die Deadline für eine periodische            zurück.
Aktivität ist zugleich auch das Ende der Periode. Es ist                  Der HIL-Ansatz kommt häufig bei eingebetteten Systemen
anzunehmen, dass alle periodischen Aktivitäten keine Phase             zum Einsatz, welche in ihrer realen Umgebung nicht effizient
haben, damit dies das schlimmste anzunehmende Szenario                  getestet werden können. Hierfür wird eine Echtzeitsimulation
darstellt. Die aperiodischen Aktivitäten ähneln den periodis-         einzelner Komponenten des Systems erstellt, indem sowohl die
chen Aktivitäten, wobei für die Zeitgrenzen zwischen weichen          benötigten Hardwarefunktionalitäten als auch die Interaktionen
und harten Deadlines unterschieden wird. Zudem beinhalten               mit der Umgebung durch Inputs und Outputs simuliert werden.
die aperiodischen Aktivitäten eine Menge an Zeitpunkten, zu            Inputs können manuell oder automatisiert in die modellierte
denen ebenfalls ein Aufruf gestartet werden könnte. Die Zeit-          Simulation eingegeben werden [18]. In den meisten Anwen-
punkte können wieder für den Benchmark so gesetzt werden,             dungsfällen werden nur einzelne Komponenten und nicht das
dass das Worst-case-Szenario eintritt. Während die periodis-           gesamte eingebettete System simuliert. In diesen Fällen muss
chen und aperiodischen Aktivitäten dem Überbegriff Client-            eine Verbindung der realen und simulierten Komponenten
Aktivitäten zugeordnet werden, gehören Synchronisierungsak-           hergestellt werden, indem die Schnittstellen entsprechend kon-
tivitäten zu den Server-Aktivitäten. Diese haben in dem Hart-         figuriert werden, sodass das Gesamtsystem validiert werden
stone Modell die Funktion, gleichzeitige Aktivitäten zu syn-           kann [2].
chronisieren und haben keine Deadline. [16].
   Dieser Benchmark eignet sich dafür, die Leistung eines                            nput                                utput
                                                                                  eingebettete                        eingebettete
voll ausgelasteten eingebetteten oder Echtzeitsystems zu                              y tem                               y tem
                                                                                                     ingebettete
messen. Dabei werden harte Zeitgrenzen nicht überschritten                                            y tem e
und Aktivitäten mit weichen Zeitgrenzen möglichst schnell
durchgeführt. Zudem bringt der Benchmark durch seine Test-
serien mit aufsteigender Komplexität ein Werkzeug mit, um
schon zu einem frühen Zeitpunkt, während der ersten Testse-
                                                                                                      imulation
rien, eventuelle Defizite im System zu identifizieren.                                                  odell e
                                                                                       utput                             nput
                                                                                     imulation                          imulation
     IV. L EISTUNGSBEWERTUNG DURCH S IMULATION
                                                                                         Fig. 10. HIL Simulationsprinzip [18]
   Ein eingebettetes System möglichst früh zu validieren, kann
problematisch sein, wenn die benötigte Hardware in einem
                                                                           Bevor eine Simulation zur Validierung eines eingebetteten
frühen Entwicklungsschritt noch nicht verfügbar ist oder das
                                                                        Systems genutzt werden kann, muss die Simulation selbst
Testen der Funktionalität und Performance in der konkreten
                                                                        validiert werden, um ein realistisches Verhalten der Simulation
Zielumgebung nicht möglich oder ineffizient ist. Daher kann in
                                                                        zu gewährleisten. Ein Standardansatz hierbei ist, die vorge-
bestimmten Anwendungsfällen eine Simulation der Hardware
                                                                        sehenen Ergebnisse der spezifizierten Funktionsweise für das
in einer Testumgebung sinnvoll sein, um somit die Leistung
                                                                        reale System mit den Ergebnissen der simulierten Umgebung
des Systems in bereits frühen Entwicklungsschritten zu vali-
                                                                        zu vergleichen. In einige Fällen liegen bereits Ergebnisse des
dieren [2]. Weitere Vorteile und Echzeitaspekte, die bei der
                                                                        Realsystems vor, welche für einen Vergleich genutzt werden
Umsetzung einer Simulationsinstanz zu berücksichtigen sind,
                                                                        können. Die Validierungstests müssen bei Änderungen der
werden im Folgenden erläutert. Zudem wird aufgeführt, wann
                                                                        Simulation oder der beteiligten Umgebung erneut ausgeführt
es sinnvoll ist, eine Simulation der Hardware in Erwägung zu
                                                                        werden, um die fortbestehende Richtigkeit der Simulation zu
ziehen.
                                                                        validieren (Regressionstest). Einzelne Komponenten können
                                                                        sehr komplexe und umfangreiche Funktionalitäten besitzen.
A. Hardware-In-The-Loop
                                                                        Bei der Simulation solcher Komponenten können einzelne
   Hardware-In-the-Loop (HIL) Simulation ist ein bewährter             Funktionalitäten, die nicht für die Testfälle von Relevanz sind,
Ansatz, mit dem durch Simulation eine realistische Nachbil-             unmodelliert bleiben, wodurch eine Kostenersparnis erreicht
dung der Umgebung erstellt werden kann. HIL-Simulation                  werden kann. Nachdem alle spezifizierten Funktionen der
wurde bereits erfolgreich für die Entwicklung und Validierung          simulierten Komponente überprüft und dokumentiert wur-
in zahlreichen komplexen und kostenintensiven Projekten, wie            den, gilt die Simulationskomponente als valide und kann für
der Entwicklung von Militärflugkörpern, Flugsteuerungssys-            Validierungszwecke des Gesamtsystems verwendet werden.
teme und Steuerungssysteme für Nuklearreaktoren genutzt                Hierbei müssen immer die enthaltenen Funktionalitäten und
[17]. Das grundlegende Prinzip von HIL-Simulationen ist in              eventuelle Unterschiede zur Realkomponente berücksichtigt
Fig. 10 dargestellt. Die Grafik veranschaulicht den Input- und          werden [2].
Output-Datenfluss zwischen dem eingebetteten System und
dem Simulationsmodell. Es können in einer großen Gesamt-               B. Anforderung an die Simulationsumgebung
simulation mehrere eingebettete Systeme und mehrere Simula-               Um eine HIL-Simulationsumgebung aufzubauen, wird
tionsmodelle vorliegen. Die Simulationen erhalten Input durch           sowohl eine entsprechende Rechenhardware, als auch

                                                                   46
entsprechende Software benötigt, um die Ein- und Ausgaben              abgeschlossen ist, beginnt die Simulation mit dem Einlesen aus
in Echtzeit zu simulieren. Die Anforderungen an die Umge-               den Input-Geräten. Nachdem die Simulationsberechnungen
bung, die für die Simulation genutzt wird, sind von den                ausgeführt wurden, findet bei Bedarf die beschriebene Frame-
Anforderungen an das zu entwickelnde eingebettete System                Time-Verzögerung statt, bevor der Output der Berechnungen
bzw. an die zu simulierende Komponente, abhängig. Dabei                weitergegeben wird.
müssen die folgenden Aspekte berücksichtigt werden: I/O-
Updaterate, I/O-Datentransfergeschwindigkeit und die Band-                                  nitiali ierung
breite. Für komplexe zu simulierende Komponenten mit ho-                                imulation umgebung
her I/O-Rate, muss beachtet werden, dass möglicherweise
ein Hochleistungsrechner benötigt wird, um die Simulation
                                                                                           inle en au nput
möglichst realitätsnah in Echtzeit abzubilden [2]. Der Rechner                                 er ten
für die Simulation benötigt spezielle System-Level-Software,
die Echtzeitberechnungen unterstützt, indem die Ausführung
                                                                                               imulation
anderer Systeme zur Simulationszeit blockiert wird, sodass                                   berechungen
keine Störungen der Simulationsberechnungen auftreten. Die                                   au hren
meisten Betriebssysteme bieten nicht genügend Unterstützung
für die Ausführung von Echtzeitanwendungen, daher muss die
                                                                                              rame ime
Verwendung eines Real-Time Operating Systems in Betracht                                      er gerung                 ein
gezogen werden [19].

C. Frame-Time                                                                              utput weitergeben
   Die Simulationssoftware enthält Programmcode, der die
Funktionsweisen der simulierten Hardware in Echtzeit
ausführt. Zur Laufzeit der Simulation wird eine dynamische                                     imulation
Schleife ausgeführt, in der die Funktionalität der einzel-                                   beendet
nen Simulationskomponente ausgeführt wird [2]. In dieser
dynamischen Simulationsschleife ist zu beachten, dass die                                              a
Rechenleistung auf dem Simulationssystem zu einer anderen                                      imulation
Ausführungszeit als auf der Realkomponente führen kann.                               herunter ahren aten
                                                                                             au werten
Dies stellt ein Problem dar, wenn die Ausführungszeit von
Echtzeitkomponenten validiert werden soll. Um eine möglichst
                                                                                     Fig. 11. Ablauf Echtzeitsimulation Vgl. [2]
realitätsnahe Simulation zu gewährleisten, muss also die
Ausführungszeit angepasst werden, sodass diese möglichst der
Ausführungszeit der Realkomponente entspricht. Dafür wird             D. Entwicklung des Simulationsmodells
eine sogenannte Frame-Zeit eingeführt. Diese ist ein kritis-              Die Entwicklung eines Simulationsmodells ist sehr anwen-
cher Parameter bei einer HIL-Simulation, weil eine möglichst           dungsabhängig und kann durch die jeweilige Komplexität der
genaue Abschätzung dieser Zeit komplex sein kann [20].                 zu simulierenden Komponente sehr unterschiedlich sein.
Die Frame-Zeit muss lang genug sein, um die WCET für                      1) Ansatz: Einige Komponenten können aus einfachen for-
den Abschluss aller Berechnungen und I/O-Operationen zu                 malen Beschreibungen der Physik durch Gleichungen mod-
tolerieren. Die Herausforderungen und Methodiken bei der                elliert werden. Für komplexere Systeme kann das Simula-
Schätzung der WCET wurden in Kap. II erläutert. Können               tionsmodell aus einer großen Anzahl komplexer mathematis-
die Berechnungen nicht in der vorgesehenen WCET aus-                    cher Algorithmen und umfangreichen Tabellen bestehen. Ein
geführt werden, muss auf eine performantere Hardware für              Echtzeit-Simulationsmodell eines eingebetteten Systems wird
die Berechnungen zurückgegriffen werden. Alternativ kann               in der Regel als ein Satz nichtlinearer Differentialgleichungen
eine Vereinfachung des Simulationsmodells vorgenommen                   erster Ordnung implementiert. Ergänzend werden algebrais-
werden, indem Funktionalitäten der Realkomponente nicht                che Gleichungen verwendet, um Zwischenwerte während der
implementiert werden, wodurch die Simulationsgenauigkeit                Simulation zu berechnen. Die definierten Gleichungen werden
abnimmt. Die Frame-Time einzelner Subsysteme einer Kom-                 dann zur Simulationslaufzeit verwendet, um die Zustände der
ponente können unterschiedlich sein und die Relevanz der               Komponente abzuleiten und Outputs an verknüpfte Systeme
Genauigkeit für die einzelnen Subsysteme muss in der Mod-              zu übertragen. Die formale Entwicklung der Funktionalitäten
ellierung der Simulationsumgebung berücksichtigt werden.               einer Komponente kann für komplexe Systeme sehr aufwändig
Durch die Berücksichtigung der Frame-Time für möglichst              sein [2].
kleine Subsysteme einer Komponente steigt die Genauigkeit                  2) Programmiersprachen: Es wurden vielen Programmier-
der Modellierung, jedoch zugleich der Aufwand und somit die             sprachen entwickelt, die speziell für die Entwicklung von
Kosten einer Implementierung [2]. Fig 11 veranschaulicht den            Simulationen für eingebettete Systeme geeignet sind. Für ein-
Ablauf der Echtzeitsimulation. Nachdem die Initialisierung              fache Simulationen können grafische Tools verwendet werden.

                                                                   47
Durch textuelle DSLs können Ablaufzeiten durch Frame-                  über mögliche Ausführungszeiten benötigt, insbesondere der
Times besser modelliert werden, wodurch auch komplexe Sys-              schlechtesten Ausführungszeit. Die Ermittlung der Worst-case
teme realitätsnah simuliert werden können. Auch eine Kom-             Execution Time (WCET) ist dabei ein häufiges Instrument zur
bination aus grafischen Umgebungen und textuellen Beschrei-             Leistungsbewertung. Zur Bestimmung der WCET werden Zei-
bungen wird in der Praxis oft genutzt. Zusätzlich zur speziell         tanalysemethoden eingesetzt. Hierbei wird zwischen statischen
für die Simulation geeigneten Sprachen wie SystemC werden              und messbasierten Methoden unterschieden. Statische Metho-
hardwarenahe General Purpose Languages wie Fortan oder C                den werden gerne eingesetzt, wenn ein abstraktes Verhaltens-
genutzt, um einzelne Aspekte der Simulation zu modellieren.             modell des Prozessors vorliegt. Dynamische Methoden finden
Ergänzend werden MATLAB und SIMULINK für den Aufbau                   Ihren Einsatz bevorzugt in Zusammenhang mit komplexeren
der Simulationsumgebung verwendet [21].                                 Prozessoren, da sich hier die Modellierung eines Verhaltens-
                                                                        modells als sehr aufwändig erweist. Beide Analysemethoden
E. Schwierigkeiten bei der Simulationsentwicklung                       operieren auf Grundlage eines Kontrollflussgraphen, welcher
   Aus den beschriebenen Aktivitäten gehen bereits einige              aus dem Maschinencode eines Programms abgeleitet wird, und
Schwierigkeiten bei der Simulationsentwicklung hervor. Diese            berechnen eine obere Zeitschranke entweder auf Basis von
und weitere Probleme werden im Folgenden erläutert.                    Messungen oder ermittelten Zeiten des Prozessorverhaltens-
   Einen großen Aspekt bei der Entscheidung über eine Sim-             modells.
ulation einzelner Komponenten stellt das Budget dar. Eine                  Um die Leistungen eines eingebetteten oder Echtzeitsystem
komplexe HIL-Simulation impliziert hohen Initialaufwand, um             in einem Kontext bewerten zu können, sind Benchmarks ein
die Simulation aufzubauen, kann dann aber dazu genutzt                  geeignetes Werkzeug. Sie vereinen signifikante Zeitparameter
werden, das System frühzeitig und kontinuierlich zu vali-              im zeitlichen Kontext eines Systems und stellen so einen Wert
dieren, wodurch die Qualität des Systems steigt und die Zeit           zur Verfügung, der nicht nur zur Einschätzung der Leistung,
zum Markteintritt verringert werden kann. Um den Einsatz                sondern auch für den direkten Vergleich mit anderen Syste-
einer Simulation zu entscheiden, muss von Experten geschätzt           men genutzt werden kann. Dabei werden durch feinkörnige,
werden, ob die Kosten für die Simulation geringer sind als             applikationsorientierte und simulationsbasierende Benchmarks
die Kosten für eine mögliche Überarbeitung des Systems ohne          die Ermittlung unterschiedlicher Messwerte ermöglicht, die für
eine Simulationsumgebung [2].                                           unterschiedliche Anwendungsfälle nützlich sind.
   Des Weiteren entstehen Probleme, wenn die Simulation sich               Sollten einzelne Komponenten eines eingebetteten und
nicht wie erwartet verhält. Auch wenn die Simulation validiert         Echtzeitsystems in einem frühen Entwicklungsschritt noch
wurde, besteht das Risiko, dass die Simulation fehlerhaft ist           nicht verfügbar oder die Validierung in der Realumgebung
und nicht das Realsystem. Daher muss die Validierung der                ungeeignet sein, kann die Entwicklung von Simulationen in
Simulation sehr umfangreich sein und alle benötigten Funk-             Betracht gezogen werden. Die Modellierung der Simulation
tionalitäten der Simulation validieren. Dabei sollten die Tests        kann sehr komplex sein, daher muss eingeschätzt werden,
so konzipiert werden, als wäre die Simulation eine Realkom-            ob die Simulation einen so großen Mehrwert bietet, dass
ponente. Hierbei können Schwierigkeiten entstehen, wenn                die Kosten für die Modellierung gerechtfertigt sind. Die
nicht genau bekannt ist, wie die Realkomponente die Eingaben            Simulation von Echtzeitsystemen stellt den Entwickler vor
verarbeiten soll. In diesem Fall muss die Realkomponente in             große Schwierigkeiten, da die Berechnungszeit möglichst re-
einem ersten Schritt intensiv untersucht werden, wodurch weit-          alitätsnah abgebildet werden muss. Dafür wird entsprechende
erer Aufwand entsteht [2]. Wenn das ungewöhnliche Ereignis             Hardware benötigt oder die Funktionalität muss eingeschränkt
auf eine Fehlkonstruktion des Gesamtsystems zurückzuführen            werden, wodurch die Simulationsgenauigkeit abnimmt.
ist, hat die Simulation ihren Zweck erfüllt und eine Sys-
temlücke aufgedeckt.                                                                                R EFERENCES
   Hinzu kommt, dass eine Simulation niemals eine perfekte               [1] P. Marwedel, Eingebettete Systeme. Springer-Verlag Berlin Heidelberg,
Repräsentation der Realkomponente darstellen wird. Eine                     2008.
Simulation kann bereits in einem frühen Entwicklungszeit-               [2] J. A. Ledin, “Hardware-in-the-loop simulation,” Embedded Systems
                                                                             Programming, vol. 12, pp. 42–62, 1999.
punkt dabei helfen das System kontinuierlich zu validieren,
                                                                         [3] P. Herber and S. Glesner, Verification of Embedded Real-time Systems,
jedoch kann nicht auf eine Validierung des Systems mit den                   pp. 1–25. Wiesbaden: Springer Fachmedien Wiesbaden, 2015.
Realkomponenten verzichtet werden [22]. Besonders kritis-                [4] R. Wilhelm, J. Engblom, A. Ermedahl, N. Holsti, S. Thesing, D. Whal-
che Echtzeit-Komponenten, bei denen die Ausführungszeit                     ley, G. Bernat, C. Ferdinand, R. Heckmann, T. Mitra, et al., “The
                                                                             worst-case execution-time problem—overview of methods and survey
möglichst genau simuliert werden muss, können nur sehr                     of tools,” ACM Transactions on Embedded Computing Systems (TECS),
schwer genau simuliert werden, wodurch Abweichungen zum                      vol. 7, no. 3, pp. 1–53, 2008.
Realsystem und somit zur Leistung des Realsystems entste-                [5] P. Marwedel, Embedded system design: embedded systems foundations
                                                                             of cyber-physical systems, and the internet of things. Springer Nature,
hen.                                                                         2021.
                                                                         [6] R. Baumgartl, “Worst-case ececution timing (wcet),” tech. rep.,
                          V. FAZIT                                           Hochschule für Technik und Wirtschaft Dresden, 2021.
                                                                         [7] A. Shaw, “Reasoning about time in higher-level language software,”
  Für die Bewertung des Leistungsverhaltens eines einge-                    IEEE Transactions on Software Engineering, vol. 15, no. 7, pp. 875–
betteten und eines Echtzeitsystems wird häufig Auskunft                     889, 1989.

                                                                   48
[8] R. Bourgade, C. Ballabriga, H. Cassé, C. Rochange, and P. Sainrat,
     “Accurate analysis of memory latencies for wcet estimation,” in 16th
     international conference on real-time and network systems (RTNS 2008),
     CNRS – University of Toulouse, 2008.
 [9] A. Technologies, Feeling Comfortable with Logic Analyzers. Agilent
     Technologies, Inc. 2006, Santa Clara, CA 95051 United States, 12 2006.
[10] W. Halang, R. Gumzej, M. Colnaric, and M. Druzovec, “Measuring the
     performance of real-time systems,” Real-Time Systems, vol. 18, pp. 59–
     68, 01 2000.
[11] K. Weiderman, N.H., “Hartstone uniprocessor benchmark: Definitions
     and experiments for real-time systems.,” The Journal of Real-Time
     Systems, vol. 4, pp. 353–382, 1992.
[12] R. P. Kar and K. Porter, “Rhealstone, a real-time benchmarking pro-
     posal,” j-DDJ, vol. 14, pp. 14–16, 18, 22, 24, feb 1989.
[13] D. T. Frank Golatowski, Steffen Dolling, “Leistungsbewertung von
     echtzeitbetriebssystemen und leistungsschätzung von echtzeitsystemen,”
     in Jahrestagung des Siemens Automatisierungskreises, may 1997.
[14] R. P. Kar, “Implementing the rhealstone real-time benchmark,” Dr.
     Dobb’s J., vol. 15, p. 46–55, feb 1990.
[15] Software Engineering Institute, “Hartstone benchmark results and anal-
     ysis,” Tech. Rep. CMU/SEI-90-TR-007, Software Engineering Institute,
     Carnegie Mellon University, Pittsburgh, PA, 1990.
[16] A. P. Frank Golatowski, H. Bösel, “Implementierung eines applikation-
     sorientierten benchmarks für echtzeit- unix-betriebssysteme,” in Echtzeit
     ’95, iNet ’95, pp. 63–70, jun 1995.
[17] A. Stratis and A. Čaušević, “A practical approach towards validating
     hil simulation of a safety-critical system,” in 2017 IEEE International
     Symposium on Software Reliability Engineering Workshops (ISSREW),
     pp. 40–43, 2017.
[18] M. Short and M. Pont, “Hardware in the loop simulation of embedded
     automotive control system,” in 2005 IEEE Conference on Intelligent
     Transportation Systems, pp. 426 – 431, 10 2005.
[19] P. Hastono, S. Klaus, and S. Huss, “Real-time operating system services
     for realistic systemc simulation models of embedded systems.,” in 2004
     Conference on specification and Design Languages, pp. 380–392, 01
     2004.
[20] V. H. Nguyen, Y. Besanger, T. Tran-Quoc, T. L. Nguyen, C. Boudinet,
     R. Brandl, F. Marten, A. Markou, P. Kotsampopoulos, A. Meer,
     E. Guillo-Sansano, G. Lauss, T. Strasser, and K. Heussen, “Real-
     time simulation and hardware-in-the-loop approaches for integrating
     renewable energy sources into smart grids: Challenges & actions,” in
     2017 IEEE PES Conference on Innovative Smart Grid Technologies, 10
     2017.
[21] A. Shaout and D. Breton, “Validation and verification for embedded
     system design – an integrated testing process approach,” International
     Journal of Computer & Orgnanization Trends, vol. 10, pp. 19–36, 07
     2014.
[22] P. M. Menghal and A. J. Laxmi, “Real time simulation: Recent progress
     challenges,” in 2012 International Conference on Power, Signals, Con-
     trols and Computation, pp. 1–6, 2012.

                                                                                  49
Sie können auch lesen