TU Darmstadt / ULB / TUbiblio

Automatic Compiler Support for Application-Specific Instruction Set Architecture Extensions

Halkenhäuser, Michael (2022)
Automatic Compiler Support for Application-Specific Instruction Set Architecture Extensions.
Technische Universität Darmstadt
doi: 10.26083/tuprints-00020631
Masterarbeit, Erstveröffentlichung, Verlagsversion

Kurzbeschreibung (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.

Typ des Eintrags: Masterarbeit
Erschienen: 2022
Autor(en): Halkenhäuser, Michael
Art des Eintrags: Erstveröffentlichung
Titel: Automatic Compiler Support for Application-Specific Instruction Set Architecture Extensions
Sprache: Englisch
Referenten: Koch, Prof. Dr. Andreas ; Oppermann, Dr.-Ing. Julian
Publikationsjahr: 2022
Ort: Darmstadt
Kollation: vii, 45, X Seiten
Datum der mündlichen Prüfung: 14 Januar 2022
DOI: 10.26083/tuprints-00020631
URL / URN: https://tuprints.ulb.tu-darmstadt.de/20631
Kurzbeschreibung (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.

Alternatives oder übersetztes Abstract:
Alternatives AbstractSprache

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.

Deutsch
Status: Verlagsversion
URN: urn:nbn:de:tuda-tuprints-206315
Zusätzliche Informationen:

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

Sachgruppe der Dewey Dezimalklassifikatin (DDC): 000 Allgemeines, Informatik, Informationswissenschaft > 004 Informatik
Fachbereich(e)/-gebiet(e): 20 Fachbereich Informatik
20 Fachbereich Informatik > Eingebettete Systeme und ihre Anwendungen
Hinterlegungsdatum: 21 Feb 2022 13:12
Letzte Änderung: 22 Feb 2022 08:42
PPN:
Referenten: Koch, Prof. Dr. Andreas ; Oppermann, Dr.-Ing. Julian
Datum der mündlichen Prüfung / Verteidigung / mdl. Prüfung: 14 Januar 2022
Export:
Suche nach Titel in: TUfind oder in Google
Frage zum Eintrag Frage zum Eintrag

Optionen (nur für Redakteure)
Redaktionelle Details anzeigen Redaktionelle Details anzeigen