Abgeschlossene Arbeiten 2016

  • ILP-Modellierung eines Schedulingverfahrens mit Berücksichtigung von Verbindungsbeschränkungen
    Kategorie: Master-Arbeit
    Bearbeiter: Hengxin Zhou
    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. Dabei ist eine zentrale Frage, ob und bis zu welcher Problemgröße auch exakte Lösungen verwendet werden können.

    Ziel dieser Arbeit ist der Entwurf eines Modells und eines Verfahrens, welches das Schedulingproblem in ein Problem der Ganzzahligen linearen Optimierung (engl. integer linear programming, ILP) überführt und mit fertigen ILP-Bibliotheken löst.
  • Entwurf und Implementierung eines Histogramm-basierten Statistikmoduls zur dynamischen Programmanalyse
    Kategorie: Master-Arbeit
    Bearbeiter: Thomas Ballenthin
    Betreuer: Boris Dreyer

    Für die Korrektheit von sicherheitskritischen eingebetteten Systemen ist es nicht nur wichtig, dass Programme korrekte Ergebnisse berechnen, sondern dass sie diese auch rechtzeitig liefern. Um dies sicherzustellen, muss die Worst Case Execution Time (WCET) des Programms bestimmt werden. Die WCET eines Programms setzt sich aus der WCET von einzelnen Basic Blocks (BB) zusammen. Ein BB ist eine nicht verzweigende Sequenz von Instruktionen. Ein Programm besteht daher aus hunderttausenden von BBs, die aus nur wenigen Instruktionen bestehen können.

    Mittels dynamischer Programmanalyse kann die WCET und weitere Zeiten eines Programms gemessen werden. Hierbei wird die Ausführungszeit eines jeden einzelnen BBs gemessen und eine Statistik geführt. Ein Modul, welches diese Messungen durchführt ist bereits vorhanden.

    Ziel dieser Arbeit ist der Entwurf und die Implementierung eines Statistik-Moduls, basierend auf einem Histogramm. Hierzu erhält das Modul die gemessenen Ausführungszeiten der BBs und aktualisiert daraufhin entsprechend das Histogramm.

  • Entwurf und Implementierung eines RLDRAM-Controllers zur dynamischen Programmanalyse
    Kategorie: Bachelor-Arbeit
    Bearbeiter: Florian Prott
    Betreuer: Boris Dreyer

    Für die Korrektheit von sicherheitskritischen eingebetteten Systemen ist es nicht nur wichtig, dass Programme korrekte Ergebnisse berechnen, sondern dass sie diese auch rechtzeitig liefern. Um dies sicherzustellen, muss die Worst Case Execution Time (WCET) des Programms bestimmt werden. Die WCET eines Programms setzt sich aus der WCET von einzelnen Basic Blocks (BB) zusammen. Ein BB ist eine nicht verzweigende Sequenz von Instruktionen. Ein Programm besteht daher aus hunderttausenden von BBs, die aus nur wenigen Instruktionen bestehen können.

    Für jeden BB wird eine Statistik über dessen Ausführungszeit erstellt. Aufgrund der großen Anzahl an BBs und den Timing-Anforderungen, sollen diese Statistiken in Reduced Latency DDR (RLDRAM) geführt werden.

    Ziel dieser Arbeit ist das Design und die Implementierung eines RLDRAM-Controllers zur dynamischen Programmanalyse. Diese Hardwarekomponente soll auf einem bestehenden RLDRAM-Controller aufsetzen und diesen um vier unabhängige Lese- und Schreibports erweitern. Anschließend soll einer dieser Ports an den SpartanMC angebunden werden, um auf den Speicher auch per Software Zugriff zu erlangen.

  • Entwurf und Implementierung eines Statistikmoduls zur dynamischen Programmanalyse
    Kategorie: Bachelor-Arbeit
    Bearbeiter: Hu Yue
    Betreuer: Boris Dreyer

    Für die Korrektheit von sicherheitskritischen eingebetteten Systemen ist es nicht nur wichtig, dass Programme korrekte Ergebnisse berechnen, sondern dass sie diese auch rechtzeitig liefern. Um dies sicherzustellen, muss die Worst Case Execution Time (WCET) des Programms bestimmt werden. Die WCET eines Programms setzt sich aus der WCET von einzelnen Basic Blocks (BB) zusammen. Ein BB ist eine nicht verzweigende Sequenz von Instruktionen. Ein Programm besteht daher aus hunderttausenden von BBs, die aus nur wenigen Instruktionen bestehen können.

    Mittels dynamischer Programmanalyse kann die WCET und weitere Zeiten eines Programms gemessen werden. Hierbei wird die Ausführungszeit eines jeden einzelnen BBs gemessen und eine Statistik geführt. Ein Modul, welches diese Messungen durchführt ist bereits vorhanden.

    Ziel dieser Arbeit ist der Entwurf und die Implementierung eines Statistik-Moduls, das die WCET, Average Case Execution Time (ACET) und die Best Case Execution Time (BCET) eines jeden BBs bestimmt. Wird dem Modul signalisiert, dass laufende Programmanalyse beendet ist, so soll die Statistik per USB auf auf einen Host-Computer übertragen werden. Die Übertragung soll auf Basis des SpartanMC geschehen, welcher USB-Kommunikation unterstützt.

  • Anpassung des AMIDAR Simulators an die aktuelle Hardware Implementierung
    Kategorie: Bachelor-Arbeit
    Bearbeiter: Karsten Müller
    Betreuer: Lukas Jung
    Am Fachgebiet Rechnersysteme wird an adaptiven Prozessorstruk- turen geforscht. Die Familie der AMIDAR Prozessoren basiert da- bei auf einem Modell, welches an der Professur Mikrorechner der TU Dresden entwickelt wurde. Dieses Modell erlaubt es dem Pro- zessor zur Laufzeit einer Applikation auf deren spezifische Anfor- derungen zu reagieren. Hierzu zählen sowohl die Anpassung von Busstrukturen, als auch die Anpassung von bestehenden und die Synthese von neuen Funktionseinheiten (FU). Zur Zeit wird an einer Hardwareimplementierung von AMIDAR gearbeitet, welche sich aber bei der Ausführung vom aktuellen Simulator unterscheidet. Um das Verhalten der Hardwareimple- mentierung von AMIDAR nachbilden zu können, sind Änderun- gen an den einzelnen Funktionseinheiten vonnöten. Diese sind im Zuge dieser Arbeit durchzuführen und das Zusammenspiel dieser neuen Funktionseinheiten ist ausführlich zu testen.
  • Cache Management für CGRAs mit DMA
    Kategorie: Bachelor-Arbeit
    Bearbeiter: Patrick Appenheimer
    Betreuer: Lukas Jung

    Coarse Grained Reconfigurable Arrays (CGRAs) werden in AMIDAR-Prozessoren als Hardware Beschleuniger verwendet. Eine hohe Beschleunigung wird dabei erreicht, wenn das CGRA über mehrere DMA-Schnittstellen verfügt, über welche auf den Speicher zugegriffen werden kann. Dabei verfügt jede Schnittstelle über einen eigenen Cache.

    Im Zuge dieser Arbeit soll ein Verfahren entwickelt werden, welches Cache-Kohärenz sicherstellt. Dies kann zum einen mit Hilfe von bekannten Kohärenz-Protokollen erreicht werden. Darüber hinaus muss untersucht werden, ob durch geeignete Programmierung des CGRAs sichergestellt werden kann, dass Inkonsistenzen in den Caches gar nicht oder nur selten auftreten.

  • Entwurf eines Verfahrens zur Parameter-Optimierung der Hardware Synthese in AMIDAR
    Kategorie: Bachelor-Arbeit
    Bearbeiter: Hendrik Schöffmann
    Betreuer: Lukas Jung

    Die Hardware Synthese ist ein wichtiges Werkzeug in AMIDAR zur automatischen Generierung von Hardware Beschleunigern zur Laufzeit. Der Synthese-Algorithmus kann dabei über Zahlreiche Parameter an die aktuelle Anwendung angepasst werden. Zur Zeit werden empirisch gefundene Werte verwendet, welche im Mittel zu guten Ergebnissen führen.

    Im Zuge dieser Arbeit soll ein Verfahren entwickelt werden, welches es erlaubt mit Hilfe von Mustererkennung die optimalen Parameterwerte für eine gegebene Anwendung zu finden.

    Da der Synthese-Algorithmus permanent weiterentwickelt wird, soll das Verfahren leicht anpassbar und wiederholbar sein.

  • Erweiterung des AMIDAR Peripheriemodells um DMA-Anschluss
    Kategorie: Master-Arbeit
    Bearbeiter: Marcel Jourdan
    Betreuer: Changgong Li

    Am Fachgebiet Rechnersysteme wird momentan ein Java-Prozessor auf Basis des AMIDAR-Modells (www.amidar.de) implementiert, welches es dem Prozessor erlaubt, zur Laufzeit einer Applikation auf deren spezifische Anforderungen zu reagieren. In diesem Modell werden Instruktionen in eine Komposition von so genannten Tokens zerlegt, die dann an einzelne Funktionseinheiten verteilt werden. Die Funktionseinheiten koordinieren ihre Arbeit über die Daten, die sie produzieren oder konsumieren.

    Der aktuelle Object-Heap des Prozessors erlaubt nur den Anschluss einfacher, kleiner Peripheriekomponente mit separaten Registern (z.B. UART). So eine Peripherie lässt sich dann in einer Java-Anwendung als normales Objekt deklarieren und verwalten, wobei deren Register auf primitive Datenfelder des Objektes abgebildet werden können. Aber ein kompliziertes Gerät wie der Ethernet-Controller besitzt typischerweise große Datenstrukturen (z.B. FIFO), die nicht mehr als primitives Feld umsetzbar sind. Idealerweise sollen solche Datenstrukturen als Java-Array definiert und genutzt werden, um die nahtlose Verbindung externer Geräte mit dem AMIDAR-Prozessor auf der Java-Ebene grundsätzlich zu ermöglichen.

    Ziel dieser Arbeit soll es sein, das bisherige Peripheriemodell von AMIDAR um den DMA-Anschluss zu erweitern. Über diesen Anschluss soll der Austausch großer Datenmengen zwischen einer Peripherie und dem Heap schnell und transparent stattfinden können. Auf Basis des erweiterten Modells soll exemplarisch ein DMA-fähiger Ethernet-Controller sowie ein praxisnaher Benchmark realisiert werden.

  • Erweiterung des Bus Protokolls für AMIDAR-Prozessoren
    Kategorie: Master-Arbeit
    Bearbeiter: Jan Andresen
    Betreuer: Changgong Li
    An der Professur Mikrorechner der TU Dresden wurde das Modell eines adaptiven Prozessors entwickelt, welches am Fachgebiet Rechnersysteme weiterentwickelt wird. Dieses Modell erlaubt es dem Prozessor zur Laufzeit einer Applikation auf deren spezifische Anforderungen zu reagieren. Hierzu zählen sowohl die Anpassung von Busstrukturen, als auch die Anpassung von bestehenden und die Synthese von neuen Funktionseinheiten.
    Bisherige Arbeiten (www.amidar.de) haben gezeigt, dass ein deutliches Beschleunigungspotential für Applikationen im Bereich der eingebetteten Systeme besteht.
    Das aktuelle Bus-Protokoll erlaubt nur M:1 Verbindung. Das heißt dass mehrere Busse am Eingang einer einzelnen Funktionseinheit angeschlossen werden dürfen, aber deren Ausgang nur an einem dieser Busse. Die Ausbauflexibilität und Performanz des ganzen Systems wird dadurch eingeschränkt. Im Rahmen dieser Arbeit soll das Bus-Protokoll erweitert werden, um M:N Verbindung zu unterstützen. Außerdem muss das erweiterte Bus-Protokoll zusätzliche Schnittstellen besitzen damit ein CGRA nahtlos mit AMIDAR-Prozessoren verbunden werden kann.
  • Erweiterung eines AMIDAR basierten Java-Prozessors um Remote Method Invocation
    Kategorie: Master-Arbeit
    Bearbeiter: Alexander Weisel
    Betreuer: Changgong Li

    Am Fachgebiet Rechnersysteme wird momentan ein Java-Prozessor auf Basis des AMIDAR-Modells implementiert, welches es dem Prozessor erlaubt, zur Laufzeit einer Applikation auf deren spezifische Anforderungen zu reagieren. Bisher besteht noch keine Möglichkeit, mehrere Instanzen des Prozessors auf verschiedenen FPGAs laufen und miteinander kommunizieren zu lassen. Außerdem wurde ein spezielles kompaktes Format (AXT) für Anwendungen des Prozessors entworfen, wobei das Konzept Class-Object bisher aber noch nicht implementiert ist.

    Ziel dieser Arbeit ist die Implementierung von Remote Method Invocation (RMI) für den oben genannten Java-Prozessor. Zunächst soll ein generischer Mechanismus zur dynamischen Erzeugung von Class-Object entwickelt werden. Dieser soll allgemein gehalten und auch für die Initialisierung von Peripherien eingesetzt werden. Dabei soll der aktuelle Bootloader sowie die Startup-Phase angepasst werden.

    Im nächsten Schritt soll das vollständige Reflection API auf den Java-Prozessor portiert werden, damit jede Methode des ursprünglichen Objekts über ein dazu gehörendes Class-Objekt aufgerufen werden kann. Anschließend soll der in Java eingebettete Mechanismus zur Serialisierung/Deserialisierung von Objekten realisiert werden.

    Auf Basis der obigen zwei Schritte soll RMI zunächst für ein einfaches Client-Server-System realisiert werden, welches aus einem AMIDAR-System (Client) und einem PC (Server) besteht. Dabei soll eine vollständige AXT-Datei auf der AMIDAR Seite vorher geladen werden. Mithilfe von RMI soll der Client in der Lage sein, Methoden auf dem Server auszuführen.

  • FPGA Implementierung eines Garbage Collectors für AMIDAR-Prozessoren
    Kategorie: Bachelor-Arbeit
    Bearbeiter: Marek Völker
    Betreuer: Changgong Li
    An der Professur Mikrorechner der TU Dresden wurde das Modell eines adaptiven Prozessors entwickelt. Dieses Modell erlaubt es dem Prozessor zur Laufzeit einer Applikation auf deren spezifische Anforderungen zu reagieren. Hierzu zählen sowohl die Anpassung von Busstrukturen, als auch die Anpassung von bestehenden und die Synthese von neuen Funktionseinheiten.
    Bisherige Arbeiten (www.amidar.de) haben gezeigt das ein deutliches Beschleunigungspotential für Applikationen im Bereich der eingebetteten Systeme besteht.
    Ziel dieser Arbeit soll es sein, den Heap eines AMIDAR basierten Java-Prozessor um einen Garbage Collector zu erweitern. Dieser soll auf einem FPGA in Verilog implementiert werden. Der dadurch entstehende Garbage Collector soll parallel mit dem Prozessor laufen können, ohne (oder möglichst selten) die fließende Ausführung einer Anwendung unterbrechen zu müssen.
    Teilaufgaben:
    • Garbage Collection Algorithmus auf Basis des vorhandenen Prozessormodells entwerfen
    • Schnittstellen zu den betroffenen Funktionseinheiten definieren
    • Algorithmus implementieren und testen
  • FPGA Implementierung eines Token Generators in AMIDAR-Prozessoren
    Kategorie: Master-Arbeit
    Bearbeiter: Christian Rose
    Betreuer: Changgong Li
    An der Professur Mikrorechner der TU Dresden wurde das Modell eines adaptiven Prozessors entwickelt. Dieses Modell erlaubt es dem Prozessor zur Laufzeit einer Applikation auf deren spezifische Anforderungen zu reagieren. Hierzu zählen sowohl die Anpassung von Busstrukturen, als auch die Anpassung von bestehenden und die Synthese von neuen Funktionseinheiten.
    Bisherige Arbeiten (www.amidar.de) haben gezeigt das ein deutliches Beschleunigungspotential für Applikationen im Bereich der eingebetteten Systeme besteht.
    Der Token Generator ist eine wesentliche Komponente im AMIDAR Modell. Er verteilt die Mikroinstruktionen an alle Funktionseinheiten des Prozessors und sorgt so für die korrekte Abarbeitung von Maschinenbefehlen (hier Java Bytecode). Für die Simulation solcher Prozessoren konnte in früheren Versionen des AMIDAR-Simulators der Token Generator aus der Beschreibungssprache ADLA erzeugt werden. Im Rahmen dieser Arbeit soll zunächst der vorhandene ADLA-Compiler an die aktuellen Strukturen des Simulators angepasst werden. Im zweiten Schritt soll dann aus der ADLA Beschreibung ein Token Generator für eine FPGA Implmentierung eines AMIDAR-Prozessors erzeugt werden. Dieser Token Generator soll dabei unmittelbar auf den externen Speicher zugreifen, um sich Bytecode Befehle zu holen. Gegebenenfalls bietet sich hier der Einsatz eines Instruktions-Caches an.
  • Implementierung der Thread-Verwaltung in einem auf AMIDAR basierten Java-Prozessor
    Kategorie: Master-Arbeit
    Bearbeiter: Christian Illy
    Betreuer: Changgong Li

    Am Fachgebiet Rechnersysteme wird momentan ein Java-Prozessor auf Basis des AMIDAR-Modells (www.amidar.de) implementiert, welches es dem Prozessor erlaubt, zur Laufzeit einer Applikation auf deren spezifische Anforderungen zu reagieren. In diesem Modell werden Instruktionen in eine Komposition von so genannten Tokens zerlegt, die dann an einzelne Funktionseinheiten verteilt werden. Die Funktionseinheiten koordinieren ihre Arbeit über die Daten, die sie produzieren oder konsumieren.

    Ziel dieser Arbeit ist die Implementierung der Thread-Verwaltung in diesem AMIDAR-Prozessor. Zunächst soll ein Mechanismus zur Ausführung nativer Methoden entwickelt werden. Dieser soll allgemein gehalten und nicht speziell auf die Anforderungen der Thread-Verwaltung zugeschnitten sein.

    In einem zweiten Schritt soll die Konzeption der zur Verwaltung von Threads notwendigen Strukturen erfolgen. Ein zentraler Bestandteil dieses Schrittes ist der Entwurf einer effektiven Verwaltung der Methodenstacks, Operandenstacks und der lokalen Variablen der einzelnen parallel ausgeführten Threads. Weiterhin wird ein Scheduler und damit verbunden eine Warteschlange benötigt.

    Ein weiteres essentielles Ziel dieser Arbeit ist der Entwurf eines effizienten Mechanismus zur Realisierung verschiedener Synchronisationskonzepte. Diese können sowohl auf Monitoren, Semaphoren oder Mutexen beruhen. Die verschiedenen Varianten sind in Bezug auf ihre Realiserbarkeit im AMIDAR-Prozessor zu untersuchen. Die Entscheidung für eine spezielle Variante ist zu begründen.

  • Implementierung eines Eclipse-PlugIns zum Online-Debuggen von SoCs
    Kategorie: Master-Arbeit
    Bearbeiter: Alexander Schwarz
    Betreuer: Changgong Li

    FPGAs sind in den letzten Jahren kontinuierlich günstiger geworden und haben mittlerweile ein Preisniveau erreicht, welches es erlaubt, diese Bausteine ganz regulär für die Implementierung von System-on-Chip (SoC) zu verwenden. Aber aufgrund ständig steigender Größe und Komplexität von SoCs sind diese immer schwieriger zu debuggen und zu testen. Damit das Debugging eines komplexen, FPGA basierten Systems leichter vorgenommen werden kann, stellen die meisten FPGA-Hersteller spezielle Interfaces bereit, welche das Auslesen eines kompletten Designs aus einem FPGA als Bitstream in Echtzeit erlauben.

    Am Fachgebiet Rechnersysteme wird momentan ein Java-Prozessor auf Basis des AMIDAR-Modells (www.amidar.de) implementiert, welches es dem Prozessor erlaubt, zur Laufzeit einer Applikation auf deren spezifische Anforderungen zu reagieren. Im Laufe des Projekts wird das Debugging des Prozessors durch Hinzufügen unterschiedlicher Funktionseinheiten immer komplizierter, wobei eine Post-Synthesis-Simulation schon nicht mehr ausreicht.

    Ziel dieser Arbeit ist die Entwicklung einer Debug Perspektive in Eclipse, welche ein Bitstream von einem Xilinx-FPGA analysieren und anschießend die aktuellen Zustände einzelner Funktionseinheiten textuell oder graphisch darstellen kann. Hierfür soll auch ein Break-Point Mechanismus entworfen werden, welcher ermöglicht, ein SoC an einer bestimmten Programmstelle anzuhalten und dann das ganze Design über einen JTAG-Port auszulesen.

    Wünschenswert ist außerdem, dass das entstehende Tool auch auf andere SoC Architekturen übertragen werden kann (z.B. SpartanMC).

  • Implementierung eines Graphgenerators mit Berücksichtigung schleifenübergreifender Abhängigkeiten
    Kategorie: Master-Arbeit
    Bearbeiter: Taimoor Naveed
    Betreuer: Tajas Ruschke

    Am Fachgebiet Rechnersysteme wird momentan ein Java-Prozessor auf Basis des AMIDAR-Modells implementiert, dem ein CGRA (coarse grained reconfigurable array) für die dynamische Beschleunigung des Programmablaufs zur Verfügung steht.

    Damit ein Programmteil auf das CGRA abgebildet werden kann, müssen Kontroll- und Datenflussabhängigkeiten aus dem Java Bytecode extrahiert und in ein Graphformat übersetzt werden. Dieses wird dann von einem Scheduler verwendet, um daraus die Konfiguration des CGRAs zu bestimmen.

    Ziel dieser Arbeit ist die Implementierung eines neuen Graphgenerators, der zusätzlich auch schleifenübergreifende Abhängigkeiten (loop carried dependencies) aus dem Bytecode extrahieren kann. Zusätzlich müssen innere Schleifen erkannt werden. Für die Repräsentation des Graphen müssen die bestehenden Klassen um die neuen Informationen erweitert werden.

  • Optimierung der Integer-ALU und Floating-Point-ALU in AMIDAR-Prozessoren
    Kategorie: Bachelor-Arbeit
    Bearbeiter: Jakob Karg
    Betreuer: Changgong Li
    An der Professur Mikrorechner der TU Dresden wurde das Modell eines adaptiven Prozessors entwickelt. Dieses Modell erlaubt es dem Prozessor zur Laufzeit einer Applikation auf deren spezifische Anforderungen zu reagieren. Hierzu zählen sowohl die Anpassung von Busstrukturen, als auch die Anpassung von bestehenden und die Synthese von neuen Funktionseinheiten.
    Bisherige Arbeiten (www.amidar.de) haben gezeigt das ein deutliches Beschleunigungspotential für Applikationen im Bereich der eingebetteten Systeme besteht.
    Im Rahmen dieser Arbeit sollen die beiden vorhandenen ALUs wie folgt optimiert werden:
    • Implementierung eines Newton-Raphson-Dividierers für die beiden ALUs
    • Beschleunigung der IALU durch neue Implementierung der vorhandenen Pipeline
    • Erweiterung der FALU um eine Pipeline
  • Einbindung eines Skript Interpreters für den SpartanMC Systembuilder
    Kategorie: Bachelor-Arbeit
    Bearbeiter: Melanie Braun
    Betreuer: Kris Heid
    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.
    Das bisherige SpartanMC-SoC-Kit ermöglicht bereits das komfortable Zusammenstellen eines SoC nach eigenen Wünschen über eine grafische Oberfläche. Jedoch muss der Nutzer Aus-/Eingänge der hinzugefügten Komponenten manuell verknüpfen und konfigurieren, was eine sehr zeitraubende und fehleranfällige Arbeit ist.
    Durch diese Arbeit soll der Schritt der manuellen Konfiguration nahezu hinfällig werden. Hierzu sollen alle Komponenten mit Intelligenz in Form von ausführbaren LUA-Skripten in deren Modulbeschreibung ausgestattet werden. Durch diesen Schritt könnten sich die Komponenten beim Hinzufügen selbst konfigurieren und beispielsweise bereits eindeutig zusammengehörige Ein-/Ausgänge miteinander verknüpfen. Hierdurch würde diese Arbeit die SoC Konfiguration innerhalb von einem Bruchteil der bisherigen Zeit ermöglichen und außerdem die Komplexitätshürde erheblich senken.
  • Entwicklung einer Testumgebung zum automatisierten Testen des SpartanMC
    Kategorie: Bachelor-Arbeit
    Bearbeiter: Joris Beringer
    Betreuer: Kris Heid
    Der SpartanMC ist ein CPU-Core der speziell auf die Anforderungen und Ressourcen von FPGAs zugeschnitten ist. Neben der Entwicklung neuer Peripheriekomponenten für den SpartanMC wird auch ständig an Erweiterungen und Verbesserungen des Prozessors selbst gearbeitet.
    Um die Funktionalität des Prozessors nach solchen Erweiterungen zu sichern, ist eine gute Testumgebung für Regressionstests unerlässlich. Deshalb soll im Rahmen der Arbeit eine Testumgebung implementiert werden, die es ermöglicht, sowohl den kompletten Befehlssatz als auch relevante Kombinationen von Befehlen zu testen. Dazu soll ein Testfallgenerator entwickelt werden, mit dem es möglich ist, entsprechenden Testcode zur Verhaltenssimulation, zum Test des Prozessor in realer Hardware und für den SpartanMC Simulator zu erstellen. Dabei muss es möglich sein ohne hohen Aufwand das Testszenario um zusäzliche Tests, zum Beispiel für neue Befehle, zu erweitern.
  • Entwicklung eines globalen Firmware Speichers für SpartanMC Multicore Systeme
    Kategorie: Master-Arbeit
    Bearbeiter: Gregor Koch
    Betreuer: Kris Heid

    Am Fachgebiet Rechnersysteme (und an der Professur Mikrorechner der TU Dresden) 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.

    Es besteht bereits die Möglichkeit mehrere SpartanMC Kerne auf einem FPGA unter zu bringen und diese über sogenannte Core Connectoren kommunizieren zu lassen. Dabei hat jeder Kern des Systems seine eigene Firmware. Bei Multicore Anwendungen kann es jedoch sein, dass mehrere Kerne prinzipiell die selbe Firmware benötigen. Da der Speicherplatz bei vielen Prozessorkernen durchaus zur kritischen Ressource werden kann, ist es naheliegend einen globalen Firmwarespeicher für alle Kerne zu verwenden.

    Ziel dieser Arbeit soll sein den SpartanMC Kern zu modifizieren, um Stalls zu unterstützen, welche hierfür benötigt werden. Ein zweiter Teil der Arbeit soll sich damit beschäftigen ein Memory Modul zu entwerfen und es mit einem Arbiter auszustatten, welcher den Zugriff auf den Speicher festlegt und jeden Kern mit einem Instruction Cache auszustatten.

  • Erstellung einer Manycore fähigen Firewall Application
    Kategorie: Master-Arbeit
    Bearbeiter: Steven Leduc
    Betreuer: Kris Heid

    Am Fachgebiet Rechnersysteme (und an der Professur Mikrorechner der TU Dresden) 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.

    Ein Hauptaugenmerk bei der Weiterentwicklung des SpartanMC Toolkits liegt aktuell auf der Erweiterung der Multi-Core Fähigkeit des SpartanMC. Ziel ist es, Anwendungen für den SpartanMC zu finden, welche sich gut parallelisieren lassen. Eine Firewall ist potenziell eine solche Anwendung, die eine parallele Abarbeitung Paketen erlaubt.

    Ziel dieser Arbeit soll es sein, eine eigene kleine Firewall App auf Basis des SpartanMC zu entwickeln oder eine Open Source Implementierung wie bspw. pfsense oder ipfire auf SpartanMC zu portieren. Der Fokus soll hierbei auf einer sinnvollen Aufteilung der Anwendung liegen, sodass zwischen den Prozessoren eine Art Pipeline entsteht. So wäre es denkbar, dass der erste Prozessor Pakete über die erste Ethernet Schnittstelle entgegen nimmt, diese an den ersten Kern weiterleitet, welcher einen Port Filter implementiert. Auf dem zweiten Kern findet eine IP-Adressen Filterung statt. Wurde das Paket bisher nicht verworfen, wird es an den letzten Kern weitergeleitet, der das Paket auf der Ausgangs Ethernet-Schnittstelle ausgibt.

  • Erweiterung des SpartanMC zur taktgenauen Ausführungszeitanalyse von Programmabschnitten
    Kategorie: Bachelor-Arbeit
    Bearbeiter: Laurenz Kamp
    Betreuer: Kris Heid
    Am Fachgebiet Rechnersysteme (und an der Professur Mikrorechner der TU Dresden) 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. Um die Performance bestehender Software des SpartanMC möglichst genau zu analysieren und zu verbessern ist es nötig die Ausführungszeit verschiedener Abschnitte der Firmware zu kennen. Ein denkbarer Ansatz wäre einen Peripherie-Counter zu nutzen und in der Firmware den Zählerstand an gewissen stellen abzufragen und zu Speichern. Dies würde allerdings die Ausführungszeit verfälschen, da bei diesem Schritt die Firmware abgeändert würde. Ein wesentlich genaueres Ergebnis würde man durch die Integration eines Counters direkt in den SpartanMC Core erhalten. Ziel dieser Arbeit ist daher einen solchen Counter in den SpartanMC zu integrieren. Der Counter soll eine Tabelle von Speicheradressen erhalten zwischen denen die Ausführungszeit gemessen werden soll. Um dies zu ermöglichen müsste der Counter das PC-Register des Prozessor snoopen und mit den Speichertabellen vergleichen. Am Ende der Arbeit sollte in jConfig eine Option Performance Analyse wählbar sein und der Nutzer sollte anschließend in der Firmware Annotationen einfügen an welchen Punkten gemessen werden soll.
  • Optimierung des On-Chip Nachrichten Routing Verfahrens
    Kategorie: Bachelor-Arbeit
    Bearbeiter: Felix Sterzelmaier
    Betreuer: Kris Heid

    Am Fachgebiet Rechnersysteme (und an der Professur Mikrorechner der TU Dresden) 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.

    Es besteht bereits die Möglichkeit mehrere SpartanMC Kerne auf einem FPGA unter zu bringen und diese über einfache send und receive Funktionen kommunizieren zu lassen. Eine solche Kommunikation ist momentan allerdings nur möglich, wenn zwischen beiden Kernen eine direkte Verbindung besteht. Ziel der Arbeit ist die Unterstützung von Nachrichtenrouting. Mit Hilfe von Routing sollen alle Kerne unabhängig von der zugrunde liegenden Vernetzung miteinander Kommunizieren können.

    In einer vorangegangenen Arbeit wurde bereits mit der Implementierung eines circuit switching Routers begonnen, welcher weiterentwickelt werden soll.

  • Portierung der Parsec Benchmark Suite auf SpartanMC
    Kategorie: Bachelor-Arbeit
    Bearbeiter: Mohammadmehdi Peiro
    Betreuer: Kris Heid

    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.

    Ein Hauptaugenmerk bei der Weiterentwicklung des SpartanMC Toolkits liegt aktuell auf der Erweiterung der Multi-Core Fähigkeit des SpartanMC. Um die erstellten Multi-Core Systeme zu testen, fehlt allerdings momentan noch eine gewisse Bandbreite an guten Anwedungen. Die Parsec Benchmark Suite beherbergt eine Reihe von Anwendungen, die speziell auf Multithreading ausgelegt sind.

    Ziel dieser Arbeit soll daher die Portierung von Parsec Benchmarks auf SpartanMC sein. Viele Anwendungen sind bereits als C-Sourcecode in Parsec enthalten und müssen nur auf die vergleichsweise eingeschränkte SpartanMC Plattform angepasst werden. So hat der SpartanMC beispielsweise kein Dateisystem aus dem Eingabedaten gelesen werden können. Die Eingabedaten müssen dann entweder komplett als Array in Datenspeicher abgelegt werden oder per USB zur Laufzeit übertragen werden.

    Idealerweise sollte während der Arbeit noch die Parallelisierbarkeit der Anwendungen, mit Hilfe des von uns entwickelten parallelisierenden Compilers, getestet und evaluiert werden

  • Rapid Prototyping von SpartanMC SoCs
    Kategorie: Master-Arbeit
    Bearbeiter: Jakob Wenzel
    Betreuer: Christian Hochberger

    Das SpartanMC SoC-Kit ist eine Werkzeugkette und ein Satz von Soft- und Hardware-Komponenten, die dem Anwender erlauben, ein anwendungsspezifisches SoC zu konstruieren, ohne selbst Spezialist für FPGAs zu sein.

    Bisher verwendet das SpartanMC SoC-Kit die Hersteller-Werkzeuge, um die FPGA-Konfiguration zu berechnen. Dies kann im Einzelfall leicht 15 Minuten und mehr benötigen.

    Im Rahmen dieser Arbeit soll nach Möglichkeiten gesucht werden, mit Hilfe der RapidSmith Tools ein SoC erheblich schneller fertig zu stellen, als dies bisher möglich ist.

  • Sourcecode-Annotation im SpartanMC Simulator
    Kategorie: Bachelor-Arbeit
    Bearbeiter: Nourhan El-Hamawy
    Betreuer: Kris Heid
    Am Fachgebiet Rechnersysteme (und an der Professur Mikrorechner der TU Dresden) 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.
    Zur Programmierung des SpartanMC wird die GNU Toolchain verwendet. Darin werden die Binutils für das Handling von Objekt-Dateien und Binärprogrammen verwendet. Leider unterstützt die aktuelle Portierung der Binutils nicht die Verarbeitung von Debug-Informationen.
    Durch eine frühere Arbeit wurden bereits weitestgehend DWARF konforme Debug Daten während der Kompilierung erzeugt. In dieser Arbeit sollen diese Daten nun ausgewertet und die Informationen als Sourcecode-Annotationen in den SpartanMC Simulator eingetragen werden. Dieser Schritt ermöglicht das Debugging von Programmen nicht nur auf Assembler- sondern auch wesentlich komfortabler auf C-Ebene.
Drucken | Impressum | Datenschutzerklärung | Sitemap | Suche | Kontakt
Zum SeitenanfangZum Seitenanfang