TU Darmstadt / ULB / TUprints

Automatic Compiler Support for Application-Specific Instruction Set Architecture Extensions

Halkenhäuser, Michael (2022):
Automatic Compiler Support for Application-Specific Instruction Set Architecture Extensions. (Publisher's Version)
Darmstadt, Technische Universität, DOI: 10.26083/tuprints-00020631,
[Master Thesis]

[img] Text
thesis_final_pub.pdf
Available under: CC BY 4.0 International - Creative Commons, Attribution.

Download (397kB)
Item Type: Master Thesis
Status: Publisher's Version
Title: Automatic Compiler Support for Application-Specific Instruction Set Architecture Extensions
Language: English
Abstract:

High demand for computational power over the last decades has led to the widespread presence of processors in our everyday lives. Simultaneous growth in the number of application areas requires specialized hardware, tailored for specific tasks. These application-specific processors are of key importance, since their limitation to a few possible operations offers distinct advantages. Such hardware-accelerators are generally able to outperform any common processor with regard to some metrics. The most frequent ones being computational speed or power consumption. With availability of the RISC-V open-standard processor architecture, development of customized processors becomes even more interesting. It allows the creation and implementation of instructions tailored to one's own prerequisites, generally without requiring licensing fees. Once these instructions are defined and an actual processor implementation is available, developers are faced with the lack of proper support by compilers. This in turn complicates the instructions' utilization considerably, requiring distinct knowledge of their actual binary representation or manual implementation of support. Both options are time consuming and demanding with regard to the assumed proficiency. Therefore, we want to suggest an automated approach to the implementation of compiler support for these Instruction Set Architecture (ISA) eXtensions (ISAXs). Our presented infrastructure will be utilizing and operating on LLVM, an open-source compiler framework and automatically add support for certain instruction types. In this work, we will provide an introduction to automated source code customization with regard to the LLVM sub-project LibTooling and present the performed modifications in detail. Furthermore, we will introduce an input format based on LLVM's Intermediate Representation (IR) and show how certain instruction properties may be automatically determined. The last step of our approach will present the application of this information in order to ultimately enable compiler support. Afterwards, we will evaluate our approach with regard to reduced development effort and requirements. Lastly, we will summarize our work and conclude with the presentation of possible next steps with regard to the extension of our presented infrastructure.

Alternative Abstract:
Alternative AbstractLanguage

Der hohe Bedarf an Rechenleistung hat in den letzten Jahrzehnten dazu geführt, dass Prozessoren in unserem Alltag sehr weit verbreitet sind. Die gleichzeitig wachsende Zahl von Anwendungsbereichen erfordert spezialisierte Hardware. Diese anwendungsspezifischen Prozessoren sind von zentraler Bedeutung, da ihre Beschränkung auf wenige, spezielle Operationen deutliche Vorteile mit sich bringt. Solche Hardware-Beschleuniger sind generell in der Lage, gewöhnliche Prozessoren in Bezug auf bestimmte Metriken zu übertreffen. Am häufigsten sind dies die Rechengeschwindigkeit oder der Stromverbrauch. Mit der Verfügbarkeit des offenen Prozessorarchitektur-Standards RISC-V wird die Entwicklung derartiger Prozessoren noch interessanter. RISC-V ermöglicht die Erstellung und Implementierung von Anweisungen, die auf die eigenen Voraussetzungen zugeschnitten sind, ohne an Lizenzgebühren gebunden zu sein. Sobald die gewünschten Anweisungen definiert sind und ein tatsächlicher Prozessor zur Verfügung steht, sehen sich Entwickler jedoch mit einem Mangel an geeigneter Compilerunterstützung konfrontiert. Dies wiederum erschwert die Nutzung der Befehle erheblich und erfordert Kenntnis ihrer Binärdarstellungen oder eine manuelle Implementierung der Unterstützung. Beide Optionen sind zeitaufwendig und anspruchsvoll in Bezug auf die vorausgesetzten Kenntnisse. Daher möchten wir einen automatisierten Ansatz für die Implementierung der Compilerunterstützung für diese Erweiterungen (ISAX) vorschlagen. Die von uns vorgestellte Infrastruktur nutzt und arbeitet mit LLVM, einem Open-Source-Compiler-Framework, und fügt automatisch Unterstützung für bestimmte Befehlstypen hinzu. In dieser Arbeit werden wir eine Einführung in die automatisierte Quellcode-Anpassung im Hinblick auf das LLVM-Teilprojekt LibTooling geben und durchgeführte Änderungen im Detail vorstellen. Zudem stellen wir ein Eingabeformat vor, das auf LLVM's Zwischendarstellung (IR) basiert und zeigen, wie bestimmte Anweisungseigenschaften automatisch bestimmt werden können. Der letzte Schritt unseres Ansatzes wird die Anwendung dieser Informationen präsentieren, um letztendlich neue Befehle zu unterstützen. Anschließend werden wir unseren Ansatz im Hinblick auf reduzierten Entwicklungsaufwand und verringerte Anforderungen bewerten. Letztlich fassen wir unsere Arbeit zusammen und schließen mit der Vorstellung möglicher Schritte im Hinblick auf die Erweiterung der von uns vorgestellten Infrastruktur ab.

German
Place of Publication: Darmstadt
Collation: vii, 45, X Seiten
Classification DDC: 000 Allgemeines, Informatik, Informationswissenschaft > 004 Informatik
Divisions: 20 Department of Computer Science > Embedded Systems and Applications
Date Deposited: 21 Feb 2022 13:12
Last Modified: 29 Jul 2022 10:00
DOI: 10.26083/tuprints-00020631
URN: urn:nbn:de:tuda-tuprints-206315
Additional Information:

The only differences between the originally submitted and this published version are the changed dates and added license information.

Referees: Koch, Prof. Dr. Andreas ; Oppermann, Dr.-Ing. Julian
Date of oral examination: 14 January 2022
URI: https://tuprints.ulb.tu-darmstadt.de/id/eprint/20631
PPN: 491492723
Export:
Actions (login required)
View Item View Item