Early Timing Exploration of Embedded Software for Heterogeneous Platforms

DSpace Repository


Dateien:

URI: http://hdl.handle.net/10900/157794
http://nbn-resolving.de/urn:nbn:de:bsz:21-dspace-1577943
http://dx.doi.org/10.15496/publikation-99126
Dokumentart: PhDThesis
Date: 2024-10-04
Language: English
Faculty: 7 Mathematisch-Naturwissenschaftliche Fakultät
Department: Informatik
Advisor: Bringmann, Oliver (Prof. Dr.)
Day of Oral Examination: 2024-07-16
DDC Classifikation: 004 - Data processing and computer science
Keywords: Eingebettetes System , Simulation
Other Keywords:
Embedded Software Systems
Performance Analysis
Simulation
Timing Analysis
Heterogeneous Systems
Simulink
LLVM
Control Flow Graph Matching
Architectural Exploration
License: http://tobias-lib.uni-tuebingen.de/doku/lic_ohne_pod.php?la=de http://tobias-lib.uni-tuebingen.de/doku/lic_ohne_pod.php?la=en
Show full item record

Inhaltszusammenfassung:

Unter wachsender Aufgabenkomplexität und Time-to-Market-Druck sind moderne eingebettete Systeme üblicherweise durch große Softwareanwendungen gekennzeichnet, die kollaborativ auf komplexen Multiprozessor- und heterogenen Rechenplattformen ausgeführt werden. Darüber hinaus treiben funktionale und nicht-funktionale Anforderungen das Design und die Entwicklung solcher leistungskritischen eingebetteten Systeme voran. Einerseits bieten diese leistungsfähigen Plattformen hohe Rechenleistungen, andererseits schränkt die Komplexität ihrer Architekturen die Analysierbarkeit der Performance des Gesamtsystems ein. Nicht-funktionale Eigenschaften, wie zum Beispiel die Ausführungszeit, müssen bereits in den frühen Entwurfsphasen eines Systems bewertet werden. Aus diesem Grund sind die Designer und Ingenieure während der Entwurfsraumuntersuchung in der Regel daran interessiert, verschiedene Hardware- und Softwarekonfigurationen zu evaluieren, um die am besten geeignete Konfiguration zu ermitteln, die sicherstellt, dass die endgültige Implementierung die strengen Leistungsanforderungen erfüllen kann. Diese Evaluierung wird normalerweise über virtuelle Prototypen durchgeführt, die auf einem Timing-Simulator basieren. Die Effektivität der Evaluierung hängt von der Geschwindigkeit und Genauigkeit des zugrunde liegenden Simulators ab. Daher ist eine Simulationsmethodik unerlässlich, um die frühzeitige Evaluierung mehrerer Hardware- und Softwarekonfigurationen eines Systems zu unterstützen. In dieser Dissertation wird eine neuartige Simulationsmethodik vorgeschlagen, die es ermöglicht, die Leistung mehrerer Konfigurationen eines eingebetteten Systems schnell und genau zu bewerten. Die Definition der Simulationsmethodik erfordert die Bewältigung mehrerer schwieriger Herausforderungen, die für Leistungssimulatoren üblich sind. Die vorgeschlagene Methodik basiert auf der Zwischenrepräsentation des Programms, die intern im Compiler ist und ein vorteilhaftes Abstraktionsniveau sowohl für die Analyse- als auch für die Simulationsphase gewährleistet. Die Zwischendarstellung ist architekturunabhängig und erlaubt es, mehrere Konfigurationen in nur einer Simulation zu evaluieren. Diese Wahl erfordert ein geeignetes Mapping- Verfahren, um die Strukturen eines Programms in der Zwischendarstellung und der Binärdarstellung abzugleichen. Deren Strukturen können sich aufgrund der Auswirkungen von aggressiven Compiler-Optimierungen, die einen direkten Abgleich unmöglich machen, erheblich unterscheiden. Aus diesem Grund wird in dieser Dissertation ein innovativer Zwei-Phasen-Algorithmus vorgeschlagen, um dieses schwierige Problem zu bewältigen. Basierend auf diesen Mappings und einer geeigneten Technik zur Modellierung des Timing-Verhaltens von Programmen können durch schnelle Simulationen genaue Leistungsabschätzungen erstellt werden. Darüber hinaus zeigen die durchgeführten experimentellen Evaluierungsergebnisse, dass die Simulationsmethodik zur frühzeitigen Evaluierung des Designs komplexer heterogener Systeme eingesetzt werden kann. Schließlich ermöglichen die erhöhten Simulationsgeschwindigkeiten die Definition einer neuen Co-Simulationstechnik für die Bewertung der Leistungsfähigkeit eingebetteter Systeme, die direkt auf einer modellgetriebenen Umgebung wie der von Simulink entwickelt werden.

Abstract:

Under growing tasks complexity and time-to-market pressures, modern embedded systems are commonly characterized by large software applications that are collaboratively executed on complex multiprocessing and heterogeneous computation platforms. Furthermore, functional and non-functional requirements drive the design and development of such performance-critical embedded systems. On the one hand, these powerful platforms offer high-computation capabilities, but on the other hand, the complexity of their architectures limits the performance analyzability of the complete system. Non-functional properties, such as the execution time, have to be assessed since the early design stages of a system. For this reason, during the design space exploration activities, the designers and the engineers are commonly interested in evaluating different hardware and software configurations for determining the most suitable one for ensuring that the final implementation can satisfy the strict performance requirements. This evaluation is usually conducted via virtual prototypes that rely on a timing simulator. The effectiveness of the evaluation depends on the speed and accuracy of the underlying simulator. Therefore, a simulation methodology is essential for supporting the early evaluation of multiple hardware and software configurations of a system. This thesis proposes a novel simulation methodology that allows to rapidly and accurately evaluate the performance of multiple configurations of an embedded system. The definition of the simulation methodology requires facing multiple hard challenges that are common to performance simulators. The proposed methodology is based on the program’s intermediate representation that is internal to the compiler and it ensures a beneficial level of abstraction for both the analysis and simulation stages. The intermediate representation is architecture-independent and it allows evaluating multiple configurations in only one simulation. This choice requires an appropriate mapping technique for matching the structures of a program at the intermediate and the binary representations. Their structures may substantially differ due to the effects of aggressive compiler optimizations that make a direct matching impossible. For this reason, this thesis proposes an innovative two-phases algorithm for tackling this hard problem. Relying on these mappings and on an appropriate technique for modelling the timing behavior of programs, accurate performance estimations can be produced via fast simulations. Furthermore, the conducted experimental evaluation results show that the simulation methodology can be applied for early evaluating the design of complex heterogeneous systems. Finally, the elevated simulation speed capabilities enable the definition of a new co-simulation technique for evaluating the performance of embedded systems that are developed directly on a model-driven environment such as the one provided by Simulink.

This item appears in the following Collection(s)