Only available in German
GenArC
P | 03-IBPJ-GeAC
Logische Schaltungen sind in einer Vielzahl rechenintensiver Anwendungen wie Kryptographie, Signalverarbeitung, IoT-Geräten, anpassbaren Prozessoren sowie in kommenden KI-Architekturen involviert.
Viele dieser Anwendungen bringen jedoch hohe Anforderungen an die Hardware mit sich: So darf beispielsweise ein Chip, der sich auf einer kleinen ID-Karte befindet nicht zu groß sein, und ein Schaltkreis in einem mobilen Gerät sollte nicht zu viel Strom verbrauchen. Gleichzeitig möchte man jedoch, dass Eingaben auch schnell verarbeitet werden.
Um diesen Anforderungen gerecht zu werden, werden anwendungsspezifische Hardware-Beschleuniger entwickelt. Die meisten Handys heutzutage haben beispielsweise einen Chip zur Berechnung von Neuronalen Netzen, welche unteranderem zur Gesichtserkennung verwendet werden. Einen sehr großen und wichtigen Anteil an solchen Beschleunigern haben arithmetische Schaltkreise – hierzu zählen zum Beispiel Addierer und Multiplizierer. Diese Schaltungen bestehen aus einer großen Anzahl Logikgatter, und ihre Komplexität ist aufgrund der Vielzahl von Multiplikations-, Additions- und Subtraktionseinheiten sehr hoch. Zudem müssen arithmetische Schaltkreise, je nach Anwendung, unterschiedlich große Eingaben verarbeiten können und auch eine unterschiedliche Architektur aufweisen. Sie müssen also an die gegebene Anwendung anpassbar sein. Gleichzeitig muss aber auch verifiziert werden, dass diese angepassten Schaltkreise auch weiterhin korrekt sind. Gerade für kritische Anwendungen, wie autonome oder medizinische Systeme ist dies von entscheidender Bedeutung.
Es ergeben sich also verschiedene spannende Fragen:
- Welche arithmetischen Schaltungen gibt es?
- Wie kann man „anpassbare Schaltungen“ umsetzen?
- Wie können diese Schaltungen in einen Prozessor integriert werden?
- Wie baut man ein entsprechendes Werkzeug auf, um diese Schaltungen automatisch zu generieren?
- Wie können diese Schaltungen überprüft bzw. verifiziert werden?
- Welche Verifikationslösungen bieten sich an?
- …
Projektziele:
Im Projekt GenArC untersuchen wir gemeinsam den Entwurf und die Implementierung verschiedener arithmetischer Schaltungen. Wir erstellen ein Werkzeug, das automatisch eine gewünschte arithmetische Schaltung mit optionalem Typ (Architektur) und Größe generiert. Als „Real-World“-Anwendung soll eine anpassbare RISC-V-CPU (RV32IM) mit angepasster ALU und HW-Beschleuniger entwickelt werden. Neben der Entwicklung spielt auch die Verifikation eine sehr wichtige Rolle. Im Projekt GenArC betrachten wir auch den Verifikationsablauf für die zu erzeugenden Schaltungen.
Voraussetzungen:
Wenn Du an der Entwicklung eines RISC-V-Prozessors arbeiten möchtest, der auf der Grundlage verschiedener arithmetischer Schaltungen angepasst werden kann, oder an der Entwicklung eines Werkzeugs interessiert bist, das vollautomatisch korrekte Schaltungen generiert, bist Du in GenArC richtig aufgehoben. Grundsätzlich bewegt sich das Projekt in ähnlichen Bereichen wie Praktische Informatik 1/2 und Technische Informatik 1. Wer Spaß an Algorithmen und Lösungstechniken hat, wird sich auch in GenArC wiederfinden. Das Projekt ist für Studierende aus den Bachelorstudiengängen Informatik, Systems Engineering und Digitale Medien geeignet, aber auch für weitere Studierende offen. Eine Weiterführung des Projektes im Masterstudiengang ist geplant. Das Bachelorprojekt bereitet auf die Masterprofile SQ und KIKR und teilweise auch DMI vor.