ReconOS64 - Hardware-Software Multithreading for Heterogeneous Platform FPGAs
Creators: name: Clausing, Lennart
Publisher: name: Universität Paderborn
Year: 2025

description: Heterogene Architekturen, welche aus mehreren Recheneinheiten im Verbund mit einer programmierbaren Logik bestehen, gewinnen zunehmend an Verbreitung. Die Entwicklungsprozesse sowie die Steuerung solcher heterogenen Umgebungen stellen jedoch nach wie vor eine Herausforderung dar. Die Programmiertechniken für Hardware- und Software-Anwendungen unterscheiden sich bereits grundlegend; zudem benötigt die Steuerung zusätzliche Aufmerksamkeit. Die Verwendung von Hochsprachen-Synthesewerkzeugen (High-Level Synthesis) für das Hardwaredesign stellen einen ersten Schritt hin zu einem einheitlichen Entwurfsprozess dar. Allerdings beschränkt sich deren Einsatz auf den Designprozess, während das Management zur Laufzeit keine Berücksichtigung findet.FPGA-Betriebssysteme versuchen diese Lücke durch die Bereitstellung von Management- und Entwurfswerkzeugen zu schließen. Ein Beispiel für ein solches System ist ReconOS, welches die Hardware-Software-Interaktion durch Anbindung von hardwareseitigen Recheneinheiten als Threads in einem Host-Betriebssystem ermöglicht. Dadurch werden die aus der Softwareentwicklung bekannten Methoden zur Kommunikation zwischen mehreren Threads auf FPGA-Systeme ausgeweitet.Diese Arbeit stellt ReconOS64 vor, welches als Ableger von ReconOS auf aktuellen 64-bit Systemen verwendet werden kann. Neben der Unterstützung aktueller Plattformen sowie der Einrichtung eines neuen Designprozesses werden durch ReconOS64 zusätzliche Möglichkeiten sowohl zur Entwicklung wie auch zum Laufzeitmanagement geschaffen. Durch flexible Gruppierungen von Hardware-basierten Threads wird die Verwendung partieller Rekonfiguration zum Austausch einzelner Threads zur Laufzeit vereinfacht. Zudem erhöht die Entwicklung einer Multi-Taktsignal-Architektur die Flexibilität zur Laufzeit, da hierdurch einzelne Gruppen von Threads mit unterschiedlichen Taktsignalen versorgt werden können, welche zudem zurLaufzeit mit geringer Unterbrechungszeit verändert werden können.Zusätzlich werden im Rahmen dieser Arbeit weitere Entwicklungsprojekte auf verschiedenen Systemen für ReconOS64 und ReconOS vorgestellt.
description: Heterogeneous computing devices comprising multiple processing systems combined with a programmable logic like an FPGA have become increasingly popular. Developing and runtime managing these heterogeneous platform devices, however, still poses multiple challenges. The programming paradigms for hardware and software applications fundamentally differ, while the runtime management requires additional attention. The first steps towards unifying design flows have been taken by creating high-level synthesis tools. However, these toolsfocus on the design process and lack runtime management features. FPGA operating systems aim to close this gap by providing runtime management features and build tools. ReconOS, as an example of an FPGA operating system, allows bridging the hardware-software gap by integrating hardware-located computation units as threads into a host operating system, allowing for familiar inter-thread programming paradigms to be extended to FPGAs. This thesis presents ReconOS64, a successor and fork of ReconOS, aiming at modern 64-bit platform systems-on-chip. Besides establishing support for this platform and incorporating new system generation processes, ReconOS64 provides additional features for both development and runtime management. By providing a flexible grouping mechanism for hardware-located threads, partial reconfiguration for exchanging individual threads at runtime is simplified. Further runtime flexibility was achieved by implementing a multi-clock architecture, allowing individual groups of threads to be executed at different frequencies, which can be adapted during runtime with a low reconfiguration overhead. In addition, this thesis provides an overview of further development approaches on various systems based on ReconOS64 and ReconOS.