Leistungsbewertung von eingebetteten und Echtzeitsystemen
←
→
Transkription von Seiteninhalten
Wenn Ihr Browser die Seite nicht korrekt rendert, bitte, lesen Sie den Inhalt der Seite unten
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