Finished Theses 2019

  • Routingverfahren für den Datentransport zwischen PEs mit Berücksichtigung belegter Ressourcen
    Kategorie: Bachelor-Arbeit
    Bearbeiter: Ivan Rubinskii
    Betreuer: Tajas Ruschke

    Am Fachgebiet Rechnersysteme wird momentan an einer CGRA-Architektur geforscht, die zur Beschleunigung des Programmablaufs verwendet werden soll.

    Damit ein Programmteil auf das CGRA abgebildet werden kann, muss ein Scheduler die Problemgraphen auf die Zielhardware abbilden. Dabei müssen verschiedene Abhängigkeiten berücksichtigt werden, um den korrekten Programmablauf zu gewährleisten. Eine besondere Herausforderung besteht in der Berücksichtigung der Datenlokalität und der Verbindungseinschränkungen. Wenn keine direkte Verbindung zwischen Quelle und Senke eines Datums besteht, ist eine Weiterleitung nötig. Dabei muss auch beachtet werden, dass eine Ressource bereits mit einer anderen Operation beschäftigt sein kann und deshalb ein vermeintlich längerer Pfad dennoch schneller zum Ziel führt.

    Ziel dieser Arbeit ist das Design und die Implementierung eines Routingverfahrens, das einen geeigneten Pfad für die Weiterleitung der Werte produziert.

  • Automatische Detektion des längsten Pfades beliebiger CGRAs
    Kategorie: Master-Arbeit
    Bearbeiter: Christoph Spang
    Betreuer: Dennis Wolf

    Ein Coarse Grained Reconfigurable Array (CGRA) ist ein Hardwarebeschleuniger, in dem einzelne Rechenzellen entsprechend eines im voraus definierten Operationsplans (Scheduling) Daten massiv parallel verarbeiten. Die individuelle Auslegung eines CGRAs (u.a. die Selektion der Operationen der einzelnen Rechenzellen, deren Anzahl und Verbindung untereinander) ist generisch und im Einzelfall entscheidend für die Laufzeit einzelner Applikationen.

    Entsprechend mehrerer Beispielapplikationen kann die Komposition eines CGRAs für eine Anwendungsdomäne optimiert werden. Die Erzeugung einer nachweislich optimalen Komposition ist dabei aufgrund der Komplexität nicht mehr möglich. In solchen Fällen werden heuristische Optimierungsverfahren genutzt. Für diese Verfahren liegen zwei der drei relevanten Qualitätsmaße in der möglichen Taktfrequenz und den benötigten Ressourcen einer CGRA Instanz. Da ein Syntheselauf zu deren Bestimmung im Stundenbereich liegen kann, muss eine Schätzung genutzt werden.

    Im Rahmen dieser Arbeit soll ein Verfahren implementiert werden, das automatisch den längsten Pfad beliebiger CGRAs schätzt. Wird der längste Pfad richtig bestimmt, kann mit diesen Informationen die Genauigkeit bereits bestehender Schätzfunktionen des längsten Pfades verbessert werden.

  • Optimierung der CGRA Operatorbilbliothek
    Kategorie: Master-Arbeit
    Bearbeiter: Aljoscha Mazur
    Betreuer: Dennis Wolf

    Ein Coarse Grained Reconfigurable Array (CGRA) ist ein Hardwarebeschleuniger, in dem einzelne Rechenzellen entsprechend eines im voraus definierten Operationsplans (Scheduling) Daten massiv parallel verarbeiten. Auf Hardwareebene ist für die Performance des CGRAs neben der strukturellen Auslegung der Rechenzellen, vor allem die genutzte Operatorbibliothek entscheidend. Diese ist das Herzstück zur Generierung der ALUs aller Rechenzellen in Verilog.

    Der Generator sieht vor, dass jede Operation als eigenständiges Modul instantiiert wird. Dies hat Vorteile bei der Parallelisierung von Anwendungen, benötigt aber unverhältnismäßig viel Ressourcen. Operationen wie Addition und Subtraktion oder Division und Modulo können zusammengeführt werden und reduzieren folglich die benötigten Hardware-Ressourcen auf fast die Hälfte. Außerdem soll die Operation MAC implementiert werden.

    Ziel dieser Arbeit ist Optimierung der Bibliothek durch das Zusammenführen von Operationen. Dabei gilt es, sinnvolle Zusammenführung zu finden, diese umzusetzen und in das Backend ein zu pflegen. Abschließend soll eine ausführliche Evaluation durchgeführt werden.

  • Erweiterung des AMIDAR-Simulators um Multithreading
    Kategorie: Bachelor-Arbeit
    Bearbeiter: Yannik Böttcher
    Betreuer: Alexander Schwarz

    Derzeit wird am Fachgebiet Rechnersysteme an AMIDAR-Prozessoren geforscht, die aus mehreren unabhängigen Funktionseinheiten aufgebaut sind und verschiedene Möglichkeiten der Rekonfiguration bereitstellen. Bisher lag der Fokus auf Ausführung von Java Bytecode, jedoch eignet sich das Grundprinzip für verschiedenste Instruktionssätze.

    Nun wird die Idee verfolgt, einen speziell auf das AMIDAR-Konzept zugeschnittenen Instruktionssatz zu entwickeln, der einige Gedanken von Datenflussarchitekturen aufgreift. Für diesen Instruktionssatz wurde bereits ein Simulator implementiert, der jedoch nur einen Thread ausführen kann.

    In dieser Arbeit soll zunächst ein Mechanismus für Kontextwechsel entwickelt und in den Simulator integriert werden. Anschließend ist ein Simulationsmodell für einen Thread Scheduler zu entwerfen. Hierfür kann sich am Verhalten der bereits existierenden Hardware-Implementierung orientiert werden. Abschließend soll die Funktionalität mit einem einfachen Programm, das mehrere Threads nutzt, getestet werden.

  • Implementierung eines Graphgenerators für die AMIDAR Instruction Set Architecture
    Kategorie: Master-Arbeit
    Bearbeiter: Hendrik Schöffmann
    Betreuer: Alexander Schwarz

    Derzeit wird am Fachgebiet Rechnersysteme ein Java-Prozessor auf Basis des AMIDAR-Modells implementiert, der aus mehreren unabhängigen Funktionseinheiten (FUs) besteht und verschiedene Möglichkeiten der dynamischen Anpassung an die Software bereitstellt. Zu diesen Möglichkeiten zählt insbesondere das integrierte Coarse Grained Reconfigurable Array (CGRA) als automatisch genutzter Hardwarebeschleuniger. Der Prozessor führt bisher Java Bytecode in fast unveränderter Form in Hardware aus. Allerdings ist Java Bytecode nicht für die Ausführung in Hardware konzipiert, weshalb das Potenzial des AMIDAR-Modells damit nur schwer voll auszuschöpfen ist.

    Ein vielversprechender Ansatz für eine neue Instruction Set Architecture (ISA), die speziell auf das AMIDAR-Konzept zugschnitten ist, greift Ideen von Datenflussmaschinen auf. Der Ansatz erlaubt es, Datenübertragungen zwischen Operationen direkt in den Instruktionen zu definieren. Um das CGRA weiter nutzen zu können, ist daher eine Anpassung des Syntheseverfahrens an die neue ISA notwendig.

    Im Rahmen dieser Arbeit soll ein Graphgenerator entwickelt werden, der als Eingabe Code der neuen ISA nutzt. Die erzeugten Graphen dienen als Eingabe für den vorhandenen CGRA Scheduler. Dadurch kann die Hardware-Synthese auch mit der neuen ISA genutzt werden.

  • Untersuchung alternativer FU-Synchronisationsmechanismen
    Kategorie: Bachelor-Arbeit
    Bearbeiter: Philipp Müller
    Betreuer: Alexander Schwarz

    Derzeit wird am Fachgebiet Rechnersysteme an AMIDAR-Prozessoren geforscht, die aus mehreren unabhängigen Funktionseinheiten aufgebaut sind und verschiedene Möglichkeiten der Rekonfiguration bereitstellen. Bisher lag der Fokus auf Ausführung von Java Bytecode, jedoch eignet sich das Grundprinzip für verschiedenste Instruktionssätze. Zudem werden bisher Tags für die Zuordnung der Daten zu den Operationen der Funktionseinheiten benutzt. Über diese Zuordnung erfolgt die Synchronisation zwischen den Funktionseinheiten.

    Zurzeit wird die Idee verfolgt, einen speziell auf das AMIDAR-Konzept zugeschnittenen Instruktionssatz zu entwickeln, der einige Gedanken von Datenflussarchitekturen aufgreift. Ein neuer Instruktionssatz eröffnet die Möglichkeit, andere Mechanismen zu verwenden, um die Daten den Operationen der Funktionseinheiten zuzuordnen. Hierzu gibt es bereits zwei Ideen.

    In dieser Arbeit soll die Anwendbarkeit der Mechanismen untersucht werden. Hierzu sollen aus Java-Methoden generierte Graphen hinsichtlich bestimmter Muster analysiert werden, die eine solche Synchronisation überhaupt nötig machen. Darüber hinaus sollen offene Fragen zu den Mechanismen durch weitergehende Analyse der Graphen geklärt werden.

  • Verbessertes Scheduling für neue AMIDAR ISA
    Kategorie: Master-Arbeit
    Bearbeiter: Adrian Weber
    Betreuer: Alexander Schwarz

    Derzeit wird am Fachgebiet Rechnersysteme an AMIDAR-Prozessoren geforscht, die aus mehreren unabhängigen Funktionseinheiten aufgebaut sind und verschiedene Möglichkeiten der Rekonfiguration bereitstellen. Bisher lag der Fokus auf Ausführung von Java Bytecode, jedoch eignet sich das Grundprinzip für verschiedenste Instruktionssätze.

    Nun wird die Idee verfolgt, eine speziell auf das AMIDAR-Konzept zugeschnittene Instruction Set Architecture (ISA) zu entwickeln, die einige Gedanken von Datenflussarchitekturen aufgreift. Für diesen Instruktionssatz wurde bereits ein Code Converter entwickelt, der Code ausgehend von Java Class Files erzeugt. Dieser kann anschließend in einer Simulation ausgeführt werden.

    Eine besondere Herausforderung bei der neuen ISA ist das Scheduling der Instruktionen, da die Reihenfolge der Instruktionen einigen Einschränkungen unterliegt, damit sie ausführbar ist. Hierbei gilt es unter anderem, Deadlocks zu beseitigen. Derzeit funktioniert der Scheduling-Algorithmus unter bestimmten Voraussetzungen gut. Bei komplexem Code und unter engen Einschränkungen liefert er jedoch schlechte Ergebnisse oder scheitert ganz. Daher soll im Rahmen dieser Arbeit ein verbesserter Algorithmus implementiert werden.

  • Optimierte Aufteilung in mehrere Blockrams für SpartanMC
    Kategorie: Bachelor-Arbeit
    Bearbeiter: Uzay Yavuz
    Betreuer: Ramon Wirsch

    Am Fachgebiet Rechnersysteme wird ein SoC-Kit rund um den SpartanMC Soft-Core entwickelt. Dieser ist ein speziell für die Verwendung in FPGAs entwickelter CPU-Core. Aufgrund dieser Zielplattform nutzt der SpartanMC eine Befehls- und Datenbreite von 18 Bit, welche die Strukturen aktueller FPGAs optimal ausnutzt.

    Die Firmware / Daten der Prozessoren liegen meist in BlockRAMs des FPGAs. Da es sich bei BlockRAMs nur um kleine Speicherblöcke mit festen Größen handelt, müssen diese kombiniert und die Daten aufgeteilt werden, um ausreichende Mengen an Speicher zu erhalten. Momentan werden nur 2 im voraus festgelegte Varianten zur Aufteilung der Daten unterstützt.

    Eine geschicktere Aufteilung der Daten könnte insbesondere bei hohem Speicherbedarf die möglichen Taktfrequenzen und damit die Geschwindigkeit des Prozessors steigern.

    Weiterhin kann das am Fachgebiet entwickelte grafische Konfigurationstool angepasst werden, um die Optimierung der Aufteilung zu automatisieren oder den Benutzer auf mögliche bessere Alternativen hinzuweisen.

  • Optimierung des Datencaches im MicroBlaze für Hardware-Beschleuniger
    Kategorie: Master-Arbeit
    Bearbeiter: Benedikt Heumüller
    Betreuer: Johanna Rohde

    Ein Forschungsprojekt am Fachgebiet Rechnersysteme der TU Darmstadt befasst sich mit der automatischen Erzeugung von Hardware-Beschleunigern. Dabei kann der Zugriff der Beschleuniger auf den Datenspeicher wahlweise direkt oder über ein Cachesystem erfolgen.

    Der verfolgte Ansatz ist unabhängig vom Prozessor, an welchen die Beschleuniger als Peripheriekomponente angeschlossen werden. Gegenwärtig steht dafür der SpartanMC des gleichnamigen SoC-Kits und der MicroBlaze von Xilinx zur Verfügung.

    Der MicroBlaze ist ein 32-Bit RISC Softcore Prozessor. Er bietet zahlreiche Konfigurationsmöglichkeiten wie z.B. die Anzahl der Pipelinestufen, zusätzliche arithmetische Einheiten und optionale Caches für Daten und Instruktionen.

    Derzeit ist das Cachesystem der Beschleuniger nur unzureichend mit dem MicroBlaze kompatibel. Grund dafür ist, dass das Cachesystem über die AXI Coherence Extension (ACE) an den Kohärenzbus des MicroBlaze eigenen Cache angeschlossen ist. Dies hat jedoch den Nachteil, dass nicht alle Funktionen des Cachesystems unterstützt werden und es zu zusätzlichen Verzögerungen beim Lesen und Schreiben kommt.

    Ziel dieser Arbeit ist es, die Performanz des vorhandenen Cachesystems zu optimieren und dieses als Datenspeicher an den Local Memory Bus (LMB) des MicroBlaze anzuschließen.

  • Anpassung eines CGRAs an machine-learning Anwendungen
    Kategorie: Master-Arbeit
    Bearbeiter: Marek Völker
    Betreuer: Changgong Li

    Coarse Grained Reconfigurable Arrays (CGRA) sind Schaltungen, die zumeist als Hardwarebeschleuniger eingesetzt werden. Einzelne Rechenzellen verarbeiten entsprechend eines im voraus definierten Operationsplans (Scheduling) Daten massiv parallel.

    Ziel der Arbeit ist die Anpassung der bestehenden CGRA-Architektur an machine-learning Anwendungen. Bei diesen Anwendungen genügen häufig Festkommadarstellungen mit 32 oder 16 Bit Genauigkeit für die Berechnung. Daher ist es erforderlich entsprechende Rechenwerke bereitzustellen und gegebenenfalls zwei 16-bit Operationen zu einer kombinierten Operation zusammenzufassen. Je nach Ausgangsproblem kann es nötig werden swap-Operationen bereitzustellen.

  • Optimierung von Schaltungs-Bibliotheken für das Technology Mapping in der Synthetischen Biologie
    Kategorie: Bachelor-Arbeit
    Bearbeiter: Katja Münch
    Betreuer: Tobias Schladt

    Das Ziel der Synthetischen Biologie ist es, biochemische Systeme von Grund auf neu zu entwickeln. Dabei spielen neben biologischen und chemischen Verfahren Methoden aus den Ingenieurswissenschaften und der Informationstechnik eine entscheidende Rolle. So wird unter anderem daran geforscht, digitale Schaltungen auf Basis genetischer Mechanismen in biologischen Zellen zu implementieren.

    Für die Logiksynthese kommen dabei bisher vor allem Verfahren zum Einsatz, die nicht an die Rahmenbedingungen genetischer Schaltkreise angepasst sind. So ist die Bibliothek zur Verfügung stehender Logikgatter stark eingeschränkt und es kommt zu biochemischen Wechselwirkungen zwischen einzelnen Bausteinen. Ein Ansatz zur Lösung dieses Problems ist es, alle Implementierungen einer kombinatorischen Funktion aufzuzählen und die gefundenen Gatterschaltungen später zu bewerten.

    Für die Erzeugung von Implementierungsvarianten wird aktuell ein boolesches Matching-Verfahren in Verbindung mit einer Bibliothek aus "Supergates" verwendet. Diese stellen (Teil-)Schaltungen dar, die aus Kombinationen der zur Verfügung stehenden primitiven Gatter generiert werden. Dabei verfügen die erzeugten Supergates nicht über internes Fanout, Logik wird also innerhalb eines Supergates nicht wiederverwendet. Das Ziel dieser Arbeit ist die Implementierung eines Verfahrens zur Optimierung der Supergate-Bibliothek, sodass Teile der Schaltungen wenn möglich wiederverwendet werden.

Contact

Technische Universität Darmstadt

Department of Electrical Engineering and Information Technology

Computer Systems Group

Prof. Dr.-Ing. Christian Hochberger

Merckstr. 25

64283 Darmstadt

+49 6151 16-21150

+49 6151 16-21150

Print | Legal note | Privacy Policy | Sitemap | Search | Contact
to topto top