Institute of Microelectronic Systems Studies Final exams and theses Abgeschlossene Arbeiten
Implementierung und Evaluierung von eng gekoppelten SIMD- und Vektor-Koprozessoren mit einem MIPS Prozessor

Implementierung und Evaluierung von eng gekoppelten SIMD- und Vektor-Koprozessoren mit einem MIPS Prozessor

Led by:  Nolting, Stephan
Is Finished:  yes

In der Forschungsgruppe "Architekturen und Systeme" des Instituts für Mikroelektronische Systeme werden Prozessorarchitekturen für hochrechenintensive Aufgaben analysiert. Zum Beispiel sind komplexe Berechnungen unter harten Echtzeitbedingungen für den aufkommenden Bereich der Fahrerassistenzsysteme (Advanced Driver Assistance Systems, ADAS) erforderlich. Ein wichtiges Anwendungsfeld ist die intelligente Szenenanalyse. Convolutional Neuronal Networks (CNNs) sind eine vielversprechende Bild- und Videoerkennungstechnik. Um die enormen Rechenanforderungen zu erfüllen, stellen parallele Prozessorarchitekturen eine brauchbare Lösung dar. Verschiedene kommerzielle Plattformen, wie GPU-basierte Ansätze oder Mehrkern-CPUs mit parallelen Datenverarbeitungserweiterungen, können eine ausreichende Verarbeitungsleistung bereitstellen, um die Rechenanforderungen zu erfüllen. Diesen Architekturen fehlt es jedoch an Energieeffizienz, was gerade für die Bereiche der Embedded-Automotive-Anwendungen von entscheidender Bedeutung ist. Daher ist die Implementierung paralleler energieeffizienter ASPs (Application-Specific Processor) ein aktuelles Forschungsthema.


Die Aufgabe in dieser Arbeit ist es, einen vertikalen und einen horizontalen Vektor-Coprozessor für eine am Institut für Mikroelektronische Systeme entwickelte MIPS-basierte Architektur zu entwerfen und zu implementieren. Die Befehlssatzarchitekturen (Instruction Set Architectures, ISA) beider Coprozessoren sollen entworfen werden, um übliche Bildverarbeitungsoperationen wie Multiply-Accumulate-Operationen, Vektor-Skalar-Operationen und Datenelement-Permutationen zu unterstützen. Ein Clock-Domain-Crossing zu der MIPS-CPU soll implementiert werden, um den Vektorkoprozessoren zu ermöglichen, bei höheren Frequenzen zu arbeiten. Außerdem soll eine Unterstützung für die Programmierung in C-Sprache bereitgestellt werden. Daher soll der Open-Source-LLVM-Compiler erweitert werden, um ausführbaren Code für beide Architekturen auszugeben. Beide Coprozessoren sollen unter Verwendung einer beispielhaften Minimalanwendung aus dem Bereich der Bildverarbeitung (z. B. einer Faltung) bewertet werden.


Eine gute Dokumentation des Quellcodes ist zwingend erforderlich. Die eingereichten Kopien sowie die Ergebnisse der Arbeiten bleiben Eigentum des Instituts.