Himmelbauer, S. (2024). Atomic Instruction and Cache-Support for VADL [Diploma Thesis, Technische Universität Wien]. reposiTUm. https://doi.org/10.34726/hss.2024.113945
Die Entwicklung von neuen Prozessoren für domän-spezifische Anwendungen stellen eine herausfordernde Aufgabe dar, die mit vielen Komplexitäten und Kosten verbunden ist. Prozessorbeschreibungssprachen wie die Vienna Architecture Description Language (VADL) ermöglichen schnelle "design space exploration", da AnwenderInnen die Struktur und das Verhalten ihrer Architektur beschreiben und die VADL Generatoren automatisch Compiler, Linker, Assembler, Simulatoren und sogar synthetisierbare Hardware in einer Hardwarebeschreibungssprache erzeugen können. Allerdings ist VADL noch weit entfernt, um alle Funktionen moderner Prozessoren ab zu bilden. Erstens unterstützt es keine Übersetzung von virtuellen zu physischen Adressen, was zum Starten aktueller Betriebssysteme benötigt wird. Zweitens kann VADL atomare Instruktionen nicht modellieren. Allerdings sind diese fundamental für Mehrkernprozessoren, insbesondere für die Implementierung von parallelen Algorithmen für den Befehlssatz einer bestimmten Architektur. Letztlich besitzen fast alle gängigen CPUs in PCs, Handys und Einplatinencomputer mehrere Cacheebenen, um Speicher-Latenzzeiten zu verkürzen und dadurch die Ausführung zu beschleunigen. VADL bietet jedoch keine Möglichkeit zur Modellierung von Caches und Cache-Hierarchien. In dieser Arbeit erweitern wir VADL und die generierten Simulatoren, um all die vorhin genannten Aspekte zu integrieren.Um die genannten Funktionalitäten zu demonstrieren, implementierten wir atomare Instruktionen für unsere RISC-V RV32 und AArch64 VADL Spezifikationen. Außerdem erweiterten wir VADL, sodass Caches und beliebige Cache-Hierarchien definiert werden können. Für diesen Zweck präsentieren wir einen neuen Cachesimulator, welchen wir von Grund auf an die Anwendungsfälle von VADL angepasst haben. Um den Einfluss von Caches besser verstehen zu können, kann der Simulator sowohl funktionale als auch hardwarespezifische Aspekte, wie zum Beispiel Kohärenzzustände und Nachrichten, welche über den Interconnect gesendet werden, simulieren. Wir validierten die Genauigkeit des Cachesimulators durch einen Vergleich mit gem5, ein im Forschungsumfeld etablierter Allzwecksimulator. Zu guter Letzt implementierten wir den Sv32 Adressübersetzungsalgorithmus der RISC-V Architektur in VADL.
de
Designing new processors for domain-specific applications can be a cumbersome task due to the high complexity and costs involved. Hence, processor description languages, such as the Vienna Architecture Description Language (VADL), enable rapid design space exploration because users may describe the structure and behavior of their architecture and the VADL generators automatically produce compilers, linkers, assemblers, simulators and even synthesizable hardware in a hardware description language.However, VADL is still away from allowing to design all features modern processors provide. Firstly, it does not support translation from virtual to physical addresses necessary for properly booting modern operating systems. Secondly, VADL cannot model atomic instructions. However, they are fundamental for multi-core processors, particularly when implementing parallel algorithms on the given instruction set architecture. Finally, almost all CPUs, found in PCs, phones and even single-board computers, employ multiple levels of caches in order to reduce memory latencies and hence, speed up execution. However, VADL does not oer a way to model caches and cache hierarchies. In this work, we extend VADL and its generated simulators to integrate all these aforementioned aspects.To showcase our proposed features, we implemented atomic instructions for our RISC-V RV32 and AArch64 VADL specifications. Furthermore, we extended VADL to allow defining caches and arbitrary cache hierarchies. For this purpose, we present a new cache simulator designed from scratch tailored towards the use cases of VADL. In order to understand the impact of caching, the simulator is capable of simulating high-level functionality and low-level aspects such as coherence states and messages sent via the interconnect. We validated parts of its accuracy by comparing it to gem5, which is a general purpose simulator well-established in academia. Finally, we implemented the Sv32 address translation scheme of the RISC-V ISA in VADL.
en
Additional information:
Arbeit an der Bibliothek noch nicht eingelangt - Daten nicht geprüft Abweichender Titel nach Übersetzung der Verfasserin/des Verfassers