TU Darmstadt / ULB / TUprints

An Optimized Instruction Set Architecture for AMIDAR Processors

Schwarz, Alexander (2022)
An Optimized Instruction Set Architecture for AMIDAR Processors.
Technische Universität Darmstadt
doi: 10.26083/tuprints-00021570
Ph.D. Thesis, Primary publication, Publisher's Version

[img] Text
2022-07-01_Schwarz_Alexander.pdf
Copyright Information: CC BY 4.0 International - Creative Commons, Attribution.

Download (2MB)
Item Type: Ph.D. Thesis
Type of entry: Primary publication
Title: An Optimized Instruction Set Architecture for AMIDAR Processors
Language: English
Referees: Hochberger, Prof. Dr. Christian ; Pionteck, Prof. Dr. Thilo
Date: 2022
Place of Publication: Darmstadt
Collation: xiii, 180 Seiten
Date of oral examination: 20 June 2022
DOI: 10.26083/tuprints-00021570
Abstract:

Java bytecode is widely used as binary program representation on many different hardware platforms. Inherent safety features like the strict memory model and runtime code checking make it interesting for embedded systems as well. Java processors, which execute Java bytecode directly on hardware without virtual machine and operating system layer, promise lower resource requirements and faster reaction to external events in this field of application. The bytecode-based AMIDAR processor is an example for such a Java processor. AMIDAR processors focus on runtime adaptivity. They map compute-intense code sections to reconfigurable hardware accelerators without user intervention. The high abstraction level of Java bytecode facilitates this mapping because the original intention of the programmer can be inferred more easily.

Java bytecode is a stack-based architecture. Data is transferred between instructions using a stack, which causes many unnecessary data transfers. The operand stack limits performance in many Java processors. This work solves the problem by developing a new ISA as replacement for Java bytecode on AMIDAR processors. This ISA eliminates the operand stack while keeping the high abstraction level. Its design is data flow oriented. The instruction which shall receive the result of an operation is specified explicitly. No central memory element like a stack or a register file is required for data transfers between instructions. Therefore, the new architecture is named DOJA.

As part of this work, basic principles as well as important details of DOJA are explained. Changes required to adapt the existing bytecode-based processor prototype to the new architecture are described. Furthermore, the software tool chain is presented with focus on special challenges which arise with the new ISA. Programs can be generated from assembly code and Java class files. Different ISA and hardware implementation variants are evaluated in order to select an optimal configuration. The resulting prototype is compared to the bytecode-based prototype using SPEC JVM98 benchmarks and micro benchmarks with very flat call graphs. Both prototypes contain identical ALUs and the same heap memory system. Remarkable average speedups of 1.87 for SPEC benchmarks and 2.89 for micro benchmarks are achieved with similar hardware resources. Micro benchmarks gain further speedup of 2.53 on average and 8.97 at best by acceleration with a CGRA of four PEs.

Alternative Abstract:
Alternative AbstractLanguage

Java Bytecode wird häufig als binäre Repräsentation eines Programms auf vielen verschiedenen Hardwareplattformen eingesetzt. Inhärente Sicherheitseigenschaften wie das strikte Speichermodell und Codeprüfung zur Laufzeit machen ihn auch für eingebettete Systeme interessant. Java Prozessoren, die Java Bytecode direkt in Hardware ohne virtuelle Maschine und Betriebssystemschicht ausführen, versprechen in diesem Anwendungsbereich geringeren Ressourcenbedarf und schnellere Reaktion auf externe Ereignisse. Der auf Bytecode basierende AMIDAR Prozessor ist ein Beispiel für solch einen Java Prozessor. Adaptive Microinstruction Driven Architecture (AMIDAR) Prozessoren sind auf Anpassungsfähigkeit zur Laufzeit ausgerichtet. Sie bilden ohne Eingriff des Benutzers rechenintensive Codeabschnitte auf rekonfigurierbare Hardwarebeschleuniger ab. Die hohe Abstraktionsebene von Java Bytecode vereinfacht diese Abbildung, weil die ursprüngliche Absicht des Programmierers einfacher abgeleitet werden kann.

Java Bytecode ist eine Architektur, die auf einem Operanden-Stack basiert. Daten werden zwischen Instruktionen mit Hilfe eines Stacks übergeben, was viele unnötige Datenübertragungen verursacht. Der Operanden-Stack begrenzt die Ausführungsgeschwindigkeit in vielen Java Prozessoren. Diese Arbeit löst das Problem durch Entwicklung einer neuen Instruction Set Architecture (ISA) als Ersatz für Java Bytecode auf AMIDAR Prozessoren. Diese ISA eliminiert den Operanden-Stack, während sie die hohe Abstraktionsebene beibehält. Ihre Gestaltung orientiert sich an Datenflussarchitekturen. Die Instruktion, welche das Ergebnis einer Operation erhalten soll, wird explizit angegeben. Keine zentralen Speicherelemente wie Stacks oder Registersätze sind für Datenübertragungen zwischen Instruktionen nötig. Daher erhält die neue Architektur den Namen Data Flow Oriented Java Architecture (DOJA).

Im Rahmen dieser Arbeit werden sowohl grundlegende Prinzipien als auch wichtige Details von DOJA erklärt. Änderungen, die nötig sind, um den existierenden, auf Java Bytecode basierenden Prozessor an die neue Architektur anzupassen, werden beschrieben. Zudem wird die Software Toolchain vorgestellt mit Fokus auf speziellen Herausforderungen, die mit der neuen ISA auftreten. Programme können ausgehend von Assembly Code und Java Klassendateien generiert werden. Verschiedene Varianten von ISA und Hardwareimplementierung werden evaluiert, um eine optimale Konfiguration zu ermitteln. Der resultierende Prototyp wird mit dem auf Bytecode basierenden Prototypen verglichen unter Zuhilfenahme der SPEC JVM98 Benchmarks sowie einiger Mikrobenchmarks mit sehr flachen Aufrufhierarchien. Beide Prototypen enthalten identische ALUs und das gleiche Heap-Speichersystem. Beachtliche mittlere Beschleunigungen von 1,87 für die SPEC Benchmarks und 2,89 für die Mikrobenchmarks werden mit ähnlichen Hardwareressourcen erreicht. Die Mikrobenchmarks erhalten durch ein Coarse Grained Reconfigurable Array (CGRA) mit vier Rechenelementen eine zusätzliche Beschleunigung von 2,53 im Durchschnitt und von 8,97 im besten Fall.

German
Status: Publisher's Version
URN: urn:nbn:de:tuda-tuprints-215701
Classification DDC: 000 Generalities, computers, information > 004 Computer science
Divisions: 18 Department of Electrical Engineering and Information Technology > Institute of Computer Engineering > Computer Systems Group
Date Deposited: 15 Jul 2022 09:07
Last Modified: 17 Aug 2022 06:15
URI: https://tuprints.ulb.tu-darmstadt.de/id/eprint/21570
PPN: 497909472
Export:
Actions (login required)
View Item View Item