2023-06-252023-06-25https://tore.tuhh.de/handle/11420/15828Eingebettete harte Echtzeitsysteme unterliegen neben Vorgaben zu deren Zeitverhalten oftmals noch weiteren Ressourcenbeschränkungen. Batteriebetriebene Systeme verfügen nur über ein beschränktes Energiebudget und müssen daher möglichst energiesparend arbeiten. Des weiteren sind Programm-, Daten- und Arbeitsspeicher realer Architekturen oftmals aufgrund technischer Einschränkungen oder vorgegebener finanzieller Budgets ebenfalls sehr knapp bemessen. Beim Entwurf des Systems müssen daher neben den Echtzeitbedingungen weitere Kriterien berücksichtigt werden.Um ein korrekt entworfenes System zu erhalten, muss dieses alle Ressourcenbeschränkungen einhalten. Erfüllt ein System eine oder mehrere Entwurfsvorgaben nicht, so muss entweder die Hardware-Plattform angepasst oder der Ressourcenbedarf der Software reduziert werden. Anpassungen der Hardware sind oft nur durch stark erhöhte Kosten und mit schwer vorhersagbaren Nebeneffekten zu erreichen. So führt beispielsweise der Austausch eines Mikrocontrollers durch ein anderes Modell mit niedrigerem Energiebedarf zu einem veränderten Zeitverhalten des Systems. Eine Reduktion des Ressourcenbedarfs durch reines Entfernen von Teilen der Software ist in der Regel auch nicht möglich, ohne den ordnungsgemäßen Betrieb des Systems zu beeinträchtigen.Ziel dieses Projekts ist es daher, Softwaresysteme auf Compiler-Ebene unter Berücksichtigung der verschiedenen Entwurfsvorgaben multikriteriell zu optimieren. Beim Übersetzungsvorgang kann so versucht werden, Programmcode zu erzeugen, der alle von außen vorgegebenen Anforderungen erfüllt. Aktuelle Compiler sind hierzu jedoch nicht in der Lage. Der multikriterielle Systementwurf, bei dem zumindest einige Optimierungskriterien harten Schranken unterliegen, ist ein hochgradig volatiler Optimierungsvorgang, da die einzelnen Optimierungsziele sich gegenseitig beeinflussen oder sogar widersprechen können. Hierfür sollen im vorliegenden Antrag Methoden erforscht und für reale eingebettete Hardware-Architekturen implementiert und evaluiert werden. Dabei wird der Fokus auf die drei im Bereich der eingebetteten Systeme weit verbreiteten kritischen Entwurfsparameter "schlimmstmögliche Programmlaufzeit" (Worst-Case Execution Time, WCET), Codegröße sowie Energieverbrauch gelegt.Embedded hard real-time systems often have to meet additional design constraints beyond their worst-case timing constraints. Systems operated on battery power have a limited amount energy available and should thus be as energy-efficient as possible. In addition, instruction, data and main memories of typical embedded processor architectures are also frequently severly limited due to technical limitations or given financial budgets. While designing embedded systems, these additional criteria also have to be considered, besides the system's real-time constraints.In order to achieve a correctly designed system, it has to meet all of the imposed resource constraints. If a system violates one or several design constraints, either the hardware platform must be modified or the resource demand of the software must be lowered. Modifying the hardware usually comes with an increase in costs and hardly predictable side effects. For example, exchanging the system's micro-controller in order to reduce power consumption will lead to changes in temporal behavior. Reducing the resource demand of the software by simply removing parts of the code is also not easily possible without compromising the correct functional behavior of the system.As a result, this project aims at optimizing embedded software systems at the compiler level with respect to multiple different design requirements. While translating source code to executable code, the compiler will aim to generate optimized code that finally fulfills all constraints with respect to multiple design criteria. However, current compilers are not able to achieve this, because multi-criterial system design is a highly volatile process. The optimization goals interfere with or may even directly contradict each other. Therefore, as part of this proposal, new optimization methods will be researched, implemented end evaluated for existing embedded hardware architectures. We focus on three of the most important criteria that embedded system designers are facing: Worst-Case Execution Time (WCET), code size and energy consumption.Multikriterielle Code-Optimierung für Eingebettete Harte EchtzeitsystemeMulti-criterial Code Optimization for Embedded Hard Real-Time Systems