Mit dem ParaNut-Prozessor stellt die Hochschule Augsburg eine offene,
skalierbare und RISC-V-kompatible Prozessor-Architektur für FPGA-basierte
Systeme bereit. Das Projekt wurde 2010 von Prof. Dr. Gundolf Kiefer ins Leben gerufen
und wird seitdem kontinuierlich von Studierenden
weiterentwickelt und aktiv in Lehre und Forschung eingesetzt.
Den Kern des Projektes stellt ein in SystemC modellierter,
RISC-V-kompatibler Softcore-Prozessor dar. Das Hardwaremodell bietet Entwicklern Zugriff auf
eine Vielzahl an Konfigurationsoptionen, wie zum Beispiel der Anzahl und Art von Prozessor-
Kernen, der Cachegröße und -Optionen oder die Auswahl der unterstützten Privilegienmodi.
Dies erlaubt die Definition von individuell parametrisierten Hardwareimplementationen
und damit die genaue Anpassung von Hard- und Software an die
Anforderungen eines Einsatzzweckes.
Die Hardwareimplementation komplementierend bietet das Projekt unterschiedliche
Softwarekomponenten: Eine spezielle Bibliothek zur Nutzung ParaNut-spezifischer
Befehle und Konzepte. Aktuell in Arbeit sind ein adaptiertes FreeRTOS Betriebssystem,
sowie ein Konfigurationstool um einfach
und schnell eine lauffähige Hardwarekonfiguration zu erstellen. Software für den ParaNut
kann in der Programmiersprache C geschrieben werden, die Unterstützung von Rust wird zurzeit
umgesetzt.
Aktuelle Themen
Embedded Linux
Nur wenige Open Source RISC-V Prozessoren können aktuell ein Betriebssystem wie Linux booten.
Seit zwei Semestern arbeiten auch wir
daran das schlanke Betriebssystem zu unterstützen. Im Zuge dessen wurde bereits virtuelles Memory
Management implementiert, ein Bootloader auf
Basis von OpenSBI erstellt und der Linux-Kernel für die ParaNut-Hardware konfiguriert.
Anwendung: Blutzuckermessung bei Tieren
Ursprünglich war es eine Startup-Idee aus dem Seminar "Unternehmensgründung und -führung": Ein
semipermantentes Implantat für Tiere mit Diabetes, zur
Überwachung des Blutzuckerspiegels mittels Bluetooth. Jetzt arbeiten wir an der Umsetzung eines
Prototypen dieser Idee. Die Hardware wurde um eine
UART-Schnittstelle zur Kommunikation mit einem externen Bluetooth-Modul erweitert und eine Firmware
erstellt. Erste Sensordaten können bereits
vom ParaNut an ein Smartphone übertragen werden.
Rust
Die Architektur des ParaNut verzichtet auf spekulative Befehlsausführung und ist damit robust gegen
Sicherheitslücken wie Spectre und Meltdown. Zusätzliche Sicherheit
wird durch die Unterstützung der Programmiersprache Rust ermöglicht. Rust ist eine moderne,
wachsende Programmiersprache, die
mit Augenmerk auf Sicherheit entwickelt wurde. In Rust entwickelte Programme bieten besondere
Robustheit hinsichtlich Speicher- und Programmfehlern.
SystemC-Workflow
Die Hardware des ParaNut ist zum Großteil in SystemC geschrieben. Der Einsatz dieser
Hardwarebeschreibungssprache ermöglicht performante Simulation
der Hardware und erleichtert damit das Debugging. Wir bemühen uns, unseren gesamten
Entwicklungsprozess
auf Open-Source-Software umzustellen und den Prozessor herstellerunabhängig einsetzbar zu halten.
Philosophie
Von Studierenden für Studierende
Der ParaNut-Prozessor wurde und wird von Studierenden der Hochschule Augsburg entwickelt. Das
Produkt dieser Arbeit wird
aktiv in der Lehre an der Hochschule eingesetzt. So trägt das ParaNut- und EES-Team zur
kontinuierlichen Verbesserung der
Praktika im Bereich des Schaltungs- und Systementwurfs bei und ermöglicht interessierten Studenten
die Vertiefung dieser Themen
an einem realen, komplexen Projekt.
Open Source Hardware
Das ParaNut Projekt ist Teil der Open-Source-Kultur. Es profitiert stark von Entwicklern und
Projekten aus der ganzen Welt und
trägt selbst dazu bei, die Open-Source-Community mit einem offenen, skalierbaren RISC-V-Prozessor zu
bereichern. Die Hochschule Augsburg ist
offizielles Mitglied von RISC-V International und
kann so aktiv an der Verbesserung und Weiterentwicklung des offenen Befehlssatzes
mitarbeiten.
Das Team
Wer wir sind
Im Wintersemester 2022/23 bestand das Team aus elf Studierenden, die in kleineren Untergruppen an
diversen Projektthemen rund um das
ParaNut-Projekt arbeiten. Betreut wird das Team von Prof. Dr. Gundolf Kiefer, zusätzliche
Unterstützung bekommt es von Michael Schäferling.
Der ParaNut kann zunächst in der Simulation getestet werden. Das ist auf jedem
Linux-PC möglich, es wird keine zusätzliche Hardware benötigt.
Die ersten Schritte um eine Soimulationsumgebung aufzusetzten sind auf Github beschrieben.
Aus dem Hochschulnetz kann hierzu auch eine VM oder ein Docker-Image aus dem EES-Labor bezogen werden.