Logo des Repositoriums
  • English
  • Deutsch
Anmelden
Keine TU-ID? Klicken Sie hier für mehr Informationen.
  1. Startseite
  2. Publikationen
  3. Publikationen der Technischen Universität Darmstadt
  4. Erstveröffentlichungen
  5. An Optimized Instruction Set Architecture for AMIDAR Processors
 
  • Details
2022
Erstveröffentlichung
Dissertation
Verlagsversion

An Optimized Instruction Set Architecture for AMIDAR Processors

File(s)
Download
Hauptpublikation
2022-07-01_Schwarz_Alexander.pdf
CC BY 4.0 International
Format: Adobe PDF
Size: 2.35 MB
TUDa URI
tuda/8896
URN
urn:nbn:de:tuda-tuprints-215701
DOI
10.26083/tuprints-00021570
Autor:innen
Schwarz, Alexander ORCID 0000-0001-6650-1025
Kurzbeschreibung (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.

Sprache
Englisch
Alternativtitel
Eine optimierte Instruction Set Architecture für AMIDAR Prozessoren
Alternatives Abstract

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.

Fachbereich/-gebiet
18 Fachbereich Elektrotechnik und Informationstechnik > Institut für Datentechnik > Rechnersysteme
DDC
000 Allgemeines, Informatik, Informationswissenschaft > 004 Informatik
Institution
Technische Universität Darmstadt
Ort
Darmstadt
Datum der mündlichen Prüfung
20.06.2022
Gutachter:innen
Hochberger, Christian
Pionteck, Thilo
Handelt es sich um eine kumulative Dissertation?
Nein
Name der Gradverleihenden Institution
Technische Universität Darmstadt
Ort der Gradverleihenden Institution
Darmstadt
PPN
497909472

  • TUprints Leitlinien
  • Cookie-Einstellungen
  • Impressum
  • Datenschutzbestimmungen
  • Webseitenanalyse
Diese Webseite wird von der Universitäts- und Landesbibliothek Darmstadt (ULB) betrieben.