Mischkulnig, N. (2025). Cycle Accurate Simulation of VLIW Architectures in VADL [Diploma Thesis, Technische Universität Wien]. reposiTUm. https://doi.org/10.34726/hss.2025.110828
Von Hand ist das Entwickeln und Testen von neuartigen Prozessorarchitekturen ein zeitaufwendiger Prozess, da viele Instruktionen in vielen einzelnen Programmen implementiert werden müssen. Prozessorbeschreibungssprachen machen diese Arbeit sowohl weniger fehleranfällig als auch effektiver, sodass es möglich wird, sich einer guten Prozessorarchitektur schnell anzunähern. Die Vienna Architecture Description Language (VADL) ist eine solche Prozessorbeschreibungssprache. Very Large Instruction Words (VLIW) ist ein vor allem bei spezialisierten digitalen Signalprozessoren verwendetes Designmuster, bei dem mehrere Instruktionen in ein parallel ausgeführtes Paket zusammengefasst werden. Bisher unterstützte VADL keine VLIW Architekturen, da es nicht möglich war, gültige Instruktionspakete zu beschreiben. Abgesehen davon war es außerdem nicht möglich zusätzliche (willkürliche) Bedingungen aufzulisten (beispielsweise um das gleichzeitige Schreiben auf ein einzelnes Register zu verhindern). Schließlich war VADL auch nicht in der Lage, einen funktionalen Simulator für VLIW Architekturen zu erzeugen. In dieser Arbeit erweiterten wir die VADL Sprache, um gültige VLIW Pakete spezifizieren zu können: einerseits mit regulären Ausdrücken (mit zusätzlich Permutationen und Wiederholungen) und andererseits mit Bedingungen auf bestimmte Formatfelder von Instruktionen. Diese Information wurde dann verwendet, um in VADLs bestehendem funktionalen Simulator auch VLIW Instruktionen zu unterstützen. Zur Laufzeit wird das Programm gegen den regulären Ausdruck mithilfe eines deterministischen Zähler-Automaten ausgewertet, wodurch bei der Verwendung von Permutationen und Wiederholungen ein exponentiell großer Automat vermieden wird. Alle diese Funktionen wurden anhand von zwei VLIW Architekturen evaluiert (TI C6x und Qualcomm Hexagon), die (teilweise) in VADL spezifiziert und als Simulator getestet wurden.
de
Developing and prototyping novel processor architectures is a laborious task when done completely by hand, as there are many instructions to implement across many tools. Processor description languages make this work both less error prone and faster to iterate on, enabling rapid design space exploration. The Vienna Architecture Description Language (VADL) is such a language. Very Large Instruction Words (VLIW) is a design paradigm predominantly used by specialized digital signal processors, which groups instructions together into bundles which execute atomically in parallel. Thus far, VADL hasn't supported VLIW architectures, as it was not possible to specify valid groupings of instruction types. Orthogonally to that, it also wasn't possible to have additional (arbitrary) constraints for these groups (for example to disallow concurrent writes to the same register). Furthermore, VADL's existing instruction set simulator generator also wasn't able to emit VLIW simulators. In this work, we extended the VADL language to be able to specify valid VLIW bundles with a regular expression syntax (which additionally allows permutations and repetitions) and also arbitrary constraints to constrain specific fields of the instructions. This information was then leveraged to extend VADL's existing simulator capabilities to support VLIW architecture simulation. At runtime, the specified regular expression is matched against the instruction stream using a deterministic automaton with counters which prevents an exponential blowup when using permutations and repetitions. All added features were then evaluated by first specifying (parts of) the TI C6x and Qualcomm Hexagon architectures in VADL, and finally generating a simulator from the VADL Hexagon specification.
en
Additional information:
Arbeit an der Bibliothek noch nicht eingelangt - Daten nicht geprüft Abweichender Titel nach Übersetzung der Verfasserin/des Verfassers