Abgeschlossene Arbeiten (Auswahl)

Masterarbeiten

Autor: Severin Brunner

Betreuer: Alexander Stegmeier, Christian Piatka

Wintersemester 2022/23

 

Kurzzusammenfassung:

 

Viele eingebettete Echtzeitsysteme besitzen Sicherheitsanforderungen, welche eine Verschlüsselung oder Authentifizierung der zu verarbeitenden Daten erfordern. Um die entsprechenden Algorithmen schneller ausführen zu können und um den Haupt- prozessor zu entlasten, kann ein Hardwarebeschleuniger verwendet werden. Jedoch müssen die maximalen Antwortzeiten des Hardwarebeschleunigers bestimmbar sein, um die zur Verifizierung von Echtzeitsystemen erforderliche Worst Case Execution Time (WCET) von Programmen, die den Hardwarebeschleuniger verwenden, be- rechnen zu können. In dieser Arbeit wird ein für den Einsatz in Echtzeitsystemen konzipierter Hardware- beschleuniger entwickelt, welcher den Verschlüsselungsalgorithmus AES in Kombina- tion mit verschiedenen Betriebsmodi zur Verschlüsselung und Authentifizierung aus- führen kann. Der Hardwarebeschleuniger wird dabei ähnlich wie ein Direct Memory Access (DMA) mit der Quell- und Zieladresse sowie der Länge der zu verschlüsseln- den Daten programmiert und führt die entsprechenden Speicherzugriffe zum Lesen und Schreiben der Daten eigenständig durch. Zudem verfügt der Hardwarebeschleu- niger über ein Kanalsystem, das die Verwaltung mehrerer Verschlüsselungsaufgaben ermöglicht. Die Aufgaben werden entsprechend einer gegebenen Priorisierung der Kanäle sequenziell abgearbeitet. Um für eine große Breite an Anwendungsfällen eine gute Lösung bereitzustellen, wird der Hardwarebeschleuniger in zwei Varianten implementiert. Bei der ersten Variante wird der Fokus auf eine hohe Ausführungsgeschwindigkeit gelegt, die zweite Vari- ante optimiert den Hardwarebeschleuniger bezüglich seiner Hardwareeffizienz. Das Design wird mittels der Xilinx Zynq-7000-Plattform getestet. Die Varianten werden abschließend im Rahmen einer Evaluation bezüglich ihrer Hardwareeffizienz und Geschwindigkeit miteinander verglichen. Zudem wird das zeitliche Verhalten analysiert und anhand der Analyseergebnisse ein Algorithmus zur Berechnung der maximalen Antwortzeiten aufgestellt.

Autor: Tilmann Unte

Betreuer: Alexander Stegmeier

Sommersemester 2020

 

Kurzzusammenfassung:

Der RC/MC Prozessor hat die Zielsetzung den hohen Ansprüchen an eingebettete Systeme durch nachrichtenbasierte Parallelität und Echtzeitfähigkeit zu begegnen. Dazu werden sehr viele einfache Prozessorkerne mit dem Paternoster NoC verbunden. Jedem Kern werden anhand von periodischen TDM Schedules Sendeslots für die Kommunikation zur Verfügung gestellt. Dadurch wird es ermöglicht für parallele Programme die WCET zu analysieren.

Doch die Anbindung an das Netzwerk über Sende-- und Empfangspuffer hat bisher hohe Hardwarekosten erzeugt. Weiterhin werden die Kerne mit der Verwaltung der Puffer ausgelastet und die TDM Sendeslots können teilweise nicht optimal genutzt werden. Zur Lösung dieser Probleme wird in dieser Arbeit eine echtzeitfähige DMA Schnittstelle entworfen, die den Router direkt an den lokalen Speicher anschließt und das Senden und Empfangen von Nachrichten automatisiert. Dadurch können die Puffer komplett ersetzt werden und der Prozessorkern wird entlastet. Die DMA Schnittstelle wird auf zwei verschiedene Arten für den Alternate Schedule implementiert. Die beiden Implementierungen werden anhand ihrer Hardwarekosten und den Ergebnissen von Microbenchmarks ausgewertet und miteinander verglichen.

 

Autor: Johannes Kühbacher

Betreuer: Tilmann Unte

Wintersemester 2023/24

 

Kurzzusammenfassung:

Ein in den letzten Jahren zunehmend an Interesse gewinnendes Ziel ist die autonome Fortbewegung von Fahrzeugen und Robotern. In diesem Kontext werden Algorithmen benötigt, die eine Lokalisierung und eine anschließende Wegfindung ermöglichen. Einer dieser Lokalisierungsalgorithmen ist die Monte-Carlo-Lokalisierung, die die Position und Ausrichtung eines Roboters mittels stochastischer Verfahren bestimmt. Im Rahmen der Arbeit wurde diese erprobt, indem ein Roboter sich selbständig innerhalb eines Gebäudes lokalisiert, wodurch anschließend eine Wegfindung von der aktuellen Roboterposition zu einem Zielpunkt möglich ist. Die Monte-Carlo-Lokalisierung setzt dabei voraus, dass der Roboter in der Lage ist seine Umgebung wahrzunehmen, weshalb dieser mit verschiedenen Abstandssensoren in Form von Ultraschall- und Lasersensoren ausgestattet wurde. Die Messwerte der Sensoren werden durch einen Sensorfusionsansatz kombiniert, damit das Verfahren weniger fehleranfällig ist. Dies ist dahingehend wichtig, um die Schwächen der beiden Sensortypen auszugleichen, wie zum Beispiel möglichen Crosstalk der Ultraschallsensoren. Auch hat es sich in praktischen Versuchen gezeigt, dass der Lasersensor für Glaswände, welche in dem Testflur des Gebäudes zu finden sind, keine zuverlässigen Messwerte liefert. Diese Schwäche wird durch die Ultraschallsensoren ausgeglichen. Anhand weiterer simulierter und praktischer Versuche wurde zudem die Lokalisierung in verschiedenen Anwendungsgebieten innerhalb des Testflurs überprüft. Diese haben gezeigt, dass sich das Verfahren für eine lokale Lokalisierung, bei der Vorwissen über die Position des Roboters vorhanden ist, eignet, jedoch eine globale Lokalisierung, bei der kein Vorwissen gegeben ist, nur teilweise möglich ist.

 

Bachelorarbeiten

Autor: Sebastian Stecher

Betreuer: Tilmann Unte

Sommersemester 2022

 

Kurzzusammenfassung:

Es wird die Leistung herkömmlicher, günstiger Ultraschallsensoren in Verwendung zur Hindernisserkennung an einem fahrerlosen Transportsystem (FTS) untersucht. Dazu werden die Ultraschallsensoren, in einer ihren Eigenschaften entsprechenden Formation, am FTS montiert. Um der Fehleranfälligkeit roher Messungen entgegenzuwirken und robustere Messergebnisse zu erhalten, wird eine angepasste Variante des eindimensionalen Kalman-Filter entwickelt und eingesetzt. Die Leistung des Systems wird zuletzt anhand einiger praktischer Versuche überprüft und optimiert. Dabei zeigt sich die Eignung des Kalman-Filter zur Filterung von Ultraschalldistanzmesswerten im untersuchten Teilbereich der Robotik. Das implementierte System eignet sich zur Hindernisserkennung von Wänden und Hindernissen ab einer Mindestgröße im Innenraum oder zur additiven Verwendung in einem bereits bestehenden Hindernisserkennungssystem.

 

Autor: Steffen Beschta

Betreuer: Alexander Steegmeier

Sommersemester 2022

 

Kurzzusammenfassung:

 

Ein Gerät durch Manipulation dazu zu bringen, einen Befehl falsch auszuführen, ist eine häufig verwendete Strategie, um ein vom Hersteller nicht geplantes Verhalten auszulösen. Einer dieser Ansätze, das Voltage Glitching, wird in dieser Arbeit näher untersucht. Das Ziel ist es hierbei, die Debug-Funktionalität des Versuchsobjektes entgegen der eigentlichen Konfiguration zu aktivieren, indem während des Starts des Mikrocontrollers die Versorgungsspannung für einen kurzen Zeitraum kurzgeschlossen wird. Hierfür werden zunächst die notwendigen Parameter bestimmt und ein Versuchsaufbau erläutert, der auf der kommerziell verfügbaren ChipWhisperer Plattform basiert. Anschließend wird ein weiterer Versuchsaufbau dargestellt, bei dem ein Galliumnitrid Transistor verwendet wird. Beide Versuchsaufbauten werden auf ihre Erfolgswahrscheinlichkeiten und ihren Spannungsverlauf hin verglichen. Trotz Optimierungen am Versuchsaufbau konnte jedoch durch Einsatz eines anderen Transistors kein besseres Ergebnis als mit dem ChipWhisperer erzielt werden. Die Verwendung von dickeren Drahtbrücken zur Verbindung der Komponenten führte zwar zu einem stark optimierten Spannungsverlauf, die Erfolgswahrscheinlichkeit wurde hierdurch jedoch reduziert. Die beste Erfolgsrate resultierte aus dem Kurzschließen der Kernspannung mit einer Spannung, die leicht über dem Nullpotential liegt.

Autor: Anton Lydike

Betreuer: Tilmann Unte

Sommersemester 2021

 

Abstract:

Creating a new operating system might seem like a daunting task to some. Gaining a deeper understanding of the inner workings of operating systems is a critical step in reducing the anxiety often associated with such an undertaking. This thesis attempts to show, how an operating system might not be as complex as it seems from the outside. To accomplish this, we break down the abstract concepts of an operating system and define a minimal operating system. EMBARK, the kernel created for this thesis, is a minimal implementation of such a definition which aims to give a platform to students to build upon. As RISC-V is the architecture used by the University Augsburg, it is the target architecture for the kernel. This thesis will explain how EMBARK works internally, and explore the three parts which make up this kernel. Then the kernel is tested and validated using a RISC-V emulator, which was also written as part of this thesis.

 

Autor: Paul Burchard

Betreuer: Christian Piatka

Sommersemester 2020

 

Kurzzusammenfassung:

Zunächst werden verschiedene Verfahren zur Ausführbarkeitsanalyse von periodischen Taskmengen vorgestellt, erklärt und in Form von Algorithmen dargestellt. Weiterhin wird ein Verfahren entwickelt, dass in der Lage ist Taskmengen zu generieren, wobei spezifische Parameter variiert werden können. Neben der Festlegung von unter anderem der gewünschten Prozessorauslastung oder der Anzahl der Tasks, kann insbesondere auch gewählt werden, durch welche Scheduling Policies eine Taskmenge aus- und unausführbar sein soll. Die dafür entwickelten Algorithmen werden veranschaulicht und erklärt.
Im späteren Verlauf der Arbeit wird die durchschnittliche Dauer der Generierung einer Taskmenge unter Verwendung verschiedener Parameter evaluiert. Als längste verzeichnete Durchschnittslaufzeit ergaben sich dabei 225 Millisekunden. Allerdings dauert die Generierung für die meisten evaluierten Parameter weniger als eine Millisekunde im Durchschnitt. Daraus folgt, dass sich für den Anwender im Regelfall kaum eine Verzögerung bemerkbar macht.

 

Autor: Axel Böll

Betreuer: Christian Mellwig

Sommersemester 2020

 

Kurzzusammenfassung:

Die ARoMA Laufzeitumgebung implementiert ein an Apache Spark angelehntes MapReduce Programmiermodell (RAPID) auf C++ Basis. Im Zentrum stehen dabei Datenpartitionen auf denen parallele MapReduce-Operationen angewendet werden. Durch die datenparallele Programmierung kann gezielt Datenlokalität vom Programmierer genutzt werden, um die Ausführung paralleler high-performance Anwendungen auf eingebetteten Systemen zu realisieren. Dynamic Programming und Structured Grid sind dabei zwei Berkeley Dwarfs, also zwei Klassen von parallelen Programmen, welche durch die Algorithmen Pathfinder und ParticleFilter der Rodinia Benchmark Suite repräsentiert werden.

Ziel dieser Bachelorarbeit ist es, die Applikationen Pathfinder und ParticleFilter der Rodinia Benchmark Suite von OpenMP auf das RAPID Programmiermodell zu portieren und deren Laufzeit mit der ARoMA Laufzeitumgebung zu evaluieren. Ein Augenmerk soll dabei auf dem Vorgang der Portierung selbst liegen um allgemeine Portierungsprobleme von Dynamic Programming und Structured Grid Algorithmen aufzudecken und zu untersuchen. Da die Speicherzugriffsmuster der OpenMP Implementierung auf shared-memory Architekturen zugeschnitten ist, müssen Datenabhängingkeiten analysiert werden und die Algorithmen so abgeändert werden, dass eine Aufteilung der Daten auf nicht geteilte Speicherbereiche möglich ist.

 

Autor: Darko Jankovic

Betreuer: Christoph Kühbacher

Sommersemester 2020

 

Kurzzusammenfassung:

CUDA bietet eine weit verbreitete Möglichkeit zur massiv parallelen Ausführung von Programmen an. Verwendet wird dafür die GPU-Architektur, und das Feature-Set einer Grafikkarte wurde für nicht mehr nur Video- und 3D-spezifische, sondern nunmehr allgemeine Berechnungen erweitert. Für Programmiermodelle, die zumindest theoretisch von dieser Parallelität Gebrauch machen können, eröffnet sich eine Möglichkeit zur Beschleunigung von Programmen, die bisher nur auf einem konventionellen x86-Multicore-Prozessor liefen.

Das Modell, mit dem sich diese Arbeit beschäftigt, heißt RAPID: Es fasst Programme als Graphen auf und stellt damit Datenflüsse und Operationen auf Daten einheitlich dar. Das ARoMA-RTE, das eine Laufzeitumgebung in C++ für dieses Modell bereitstellt, lief bislang nur auf der CPU. In dieser Arbeit wird untersucht, ob die Portierung einiger Funktionen des RTEs auf CUDA-ausführung praktikabel ist und sich in Performancegewinnen äußert. Dabei wird nicht nur eine rudimentäre erste Version erstellt, sondern diese auch mit verschiedenen Mitteln optimiert, die die Graphical Processing Unit (GPU) zur Verfügung stellt.

Testreihen bestätigen bereits bei der unoptimierten Fassung „CUDA-naive“ einen enormen Performance-Zuwachs im Gegensatz zur reinen Central Processing Unit (CPU)-Ausführung. Synthetische Tests der einzelnen Operationen wie auch der Monte-Carlo-Algorithmus zur probabilistischen Bestimmung von Pi messen deutlich kürzere Ausführungszeiten. Allerdings wird dabei noch nicht das volle Potential der Grafikkarte ausgeschöpft: Mit der Nutzung von Unified Memory, Shared Memory und asynchroner Ausführung soll weiter versucht werden, die Grafikkartenausführung zu optimieren. Zum Schluss wird eine Wertung über die Maßnahmen sowie weitere Möglichkeiten gegeben.

 

Projektmodule

Durchführung: Tobias Drexl

Betreuer: Tilmann Unte

Wintersemester 2021-2022

 

Kurzzusammenfassung:

Die Aufgabe des Projektmoduls bestand in der Implementierung einer Antriebssteuerung für ESTHER. Die Anforderungen an diese Steuerung waren in erster Linie Beschleunigung und Bremsen so zu dämpfen, dass der Roboter nicht ins Schleudern geraten kann. Weiterhin sollten sowohl Kurven, als auch auf der Stelle drehen unterstützt werden. Die Roboteranwendung wurde mit Hardware Watchdogs abgesichert.

 

Autor: Thomas Kügle

Betreuer: Christian Piatka & Florian Haas

Sommersemester 2020

 

Kurzzusammenfassung:

Die Aufgabe des Projektmoduls bestand in der Implementierung eines Skripts für den gem5-Simulator. Dieses Skript sollte es erlauben unkompliziert eine Simulation eines RISC-V Multicore-Systems im Baremetal-Modus durchzuführen. Des weiteren sollte die Multicore-Funktionalität der RISC-V Implementierung untersucht, sowie deren Korrektheit evaluiert werden. In einem letzten Schritt wurde die Möglichkeit betrachtet den gem5 Cache um einen Transaktionsspeicher zu erweitern.

 

Forschungsmodule

Durchführung: Vinzenz Malke

Betreuer: Tilmann Unte

Wintersemester 2022/2023

 

Kurzzusammenfassung:

Im Rahmen dieses Froschungsmoduls wurde ein Treiber für ein Slamtech RPLIDAR für das Zephyr Echtzeitbetriebssystem entwickelt. Zu den Herausforderungen gehörte eine anwenderfreundliche Abstraktion der Kommunikation mit dem Sensor, sowie der komplexen Konfigurationsmöglichkeiten.

Der Treiber wurde anhand mehrerer Testprogramme sorgfältig erprobt und kann in Zukunft beispielsweise im Rahmen des ESTHER-Projekts weiterverwendet werden.

Durchführung: Dominik Witoschek

Betreuer: Alexander Stegmeier

Wintersemester 2022/2023

 

Kurzzusammenfassung:

AES ist ein weitverbreiteter Verschlüsselungsalgorithmus und wird von eingebetteten Systemen im höheren Preissegment mittlerweile oft hardwareseitig unterstützt. Der Forschungsgegenstand dieser Arbeit ist der dedizierte AES-Beschleuniger eines solchen Mikrocontrollers. Das Ziel ist die möglichst präzise Erfassung des Zeitverhaltens für die verschiedenen angebotenen Features. Dazu zählen verschiedene Operationen, Schlüssellängen, Methoden zum Datentransfer und die Möglichkeit, Vorgänge zu unterbrechen sowie fortzusetzen.

Durchführung: Sophia Hofbauer

Betreuer: Christian Piatka

Sommersemester 2022

Kurzzusammenfassung:

Im Rahmen dieses Froschungsmoduls wurde ein Onlinetool entwickelt, das die May- und Must-Analyse (Verfahren um Cache Misses bzw. Cache Hits vorherzusagen) auf vorgegebenen Graphen durchführen kann. Ein potenzieller Benutzer hat hierbei die Möglichkeit, einen aus sechs verschiedenen Graphen auszuwählen. Der Benutzer hat weiter die Möglichkeit, die Knoteninhalte der Graphen zu ändern. Das Tool erlaubt es, die Lösungen samt Graphen als LaTeX-Code herunterzuladen.

Durchführung: Steffen Beschta

Betreuer: Alexander Stegmeier

Sommersemester 2021

 

Kurzzusammenfassung:

Im Rahmen dieses Forschungsmoduls wurde eine Umgebung zur Ermittlung des taktgenauen Zeitverhaltens von Instruktionen realisiert und Microbenchmarks zur Ermittlung der Dauer einzelner Instruktionen in verschiedenen Ausführungkontexten implementiert. Anschließend wurde die entsprechenden Zeiten gemessen und anhand der vorliegenden Dokumentation verifiziert.

Suche