Zur Seitenansicht
 

Titelaufnahme

Titel
Just-in-time processor customization on the feasibility and limitations of FPGA-based dynamically reconfigurable instruction set architectures
AutorGrad, Mariusz In der Gemeinsamen Normdatei der DNB nachschlagen
PrüferPlatzner, Marco In der Gemeinsamen Normdatei der DNB nachschlagen
Erschienen2011
UmfangX, 168 S. : graph. Darst.
HochschulschriftPaderborn, Univ., Diss., 2011
Anmerkung
Tag der Verteidigung: 08.11.2011
SpracheEnglisch
DokumenttypDissertation
URNurn:nbn:de:hbz:466:2-8139 Persistent Identifier (URN)
Dateien
Just-in-time processor customization on the feasibility and limitations of FPGA-based dynamically reconfigurable instruction set architectures [2.59 mb]
Links
Nachweis
Klassifikation
Zusammenfassung (Deutsch)

In dieser Arbeit haben wir ein einzigartiges System, bestehend aus Hardwarearchitektur und Software 'tool-flow' entworfen, dass eine komplett automatische Anpassung erlaubt. Die Hardwarearchitektur ist ein dynamisch rekonfigurierbarer Befehlssatzprozessor, der 'just-in-time' Prozessoranpassung während der Laufzeit erlaubt, wohingegen der Software 'tool-flow' auf einer virtuellen Maschine beruht und gestattet die Architektur gleichzeitig mit der Programmausführung, und ohne jeglichen manuellen Aufwand, anzupassen. Dieser 'tool-flow' enthält ein Set von Heuristiken, die die Laufzeit von Methoden zur Identifizierung und Auswahl von eigenen Anweisungen für die 'just-in-time' Prozessoranpassung reduzieren, sowie eine Schaltkreisbibliothek und einen Datenpfadgenerator für benötigte bitstreams für die Hardwareanpassung.Dieses dynamische System, im Gegensatz zum statischen, hat mehrere Vorteile. Erstens, ist es völlig automatisiert und benötigt keinen manuellen Aufwand. Es kann seinen Ablauf optimieren, indem die Befehlssatzarchitektur des Prozessors rekonfiguriert und der Code verändert wird, was fundamental leistungsstärker ist als die statische Herangehensweise. Dieses entwickelte System kann die Ausführungszeit, Profilierung und Maschinenlevelinformationen sammeln, um die Codeteile zu erkennen, die bei der Laufzeit tatsächlich leistungslimitierend sind und daher ideale Kandidaten zur Hardwarebeschleunigung sind. Darüberhinaus hat die virtuelle Maschine die Möglichkeit, verschiedene dynamische Optimierungen auszuführen, wie Hotspoterkennung, Aliasanalyse oder Branchvorhersage, um die Leistung weiter zu optimieren. Letztlich sind die Abhängigkeiten zwischen Variablen und der dazugehörigen Speicherbelegung zugänglich, was die Hardware-Software-Partitionierung zwischen dem Prozessor und dem Hardwarebeschleuniger vereinfacht.

Zusammenfassung (Englisch)

In this work, a unique system consisting of hardware architecture and a software tool flow was designed, and allows for a fully automatic and online processor customization.The designed hardware architecture is a dynamically reconfigurable instruction set processor that allows for the just-in-time processor customization during the runtime, whereas the software tool flow is based on a virtual machine and allows to customize this architecture concurrently to the application execution and without any manual efforts. This tool flow contains a set of heuristics that reduce the runtime of methods for identifying and selecting custom instructions for the just-in-time processor customization as well as a circuit library and a data path generator of required bitstreams for the hardware customization. This dynamic system, in contrast to the static one, has several advantages. First of all, it is fully automated and no manual efforts are required. It can optimize its operation by reconfiguring the instruction set architecture of the processor and by changing the code at runtime, which is fundamentally more powerful than a static approach.This developed system can collect the execution time, profiling, and machine level information in order to identify the code sections that are actually performance limiting at runtime and therefore, constitute the ideal candidates for hardware acceleration.Moreover, the virtual machine has the capability of executing various dynamic optimizations such as hotspot detection, alias analysis, or branch prediction to further optimize the performances.Finally, the dependencies between variables and the corresponding memory layout are available, which simplifies the task of the hardware-software partitioning between the processor and the hardware accelerator.