Walter, M. (2011). The SPEAR2 Hardware/Software Interface [Diploma Thesis, Technische Universität Wien]. reposiTUm. http://hdl.handle.net/20.500.12708/159954
SPEAR2; Rechnerarchitektur; Instruction Set Architektur; ISA; Application Binary Interface; ABI; Toolchain; Software-Entwicklungs-Tools; GNU
de
SPEAR2; Computer Architecture; Instruction Set Architecture; ISA; Application Binary Interface; ABI; Toolchain; Software Development Tools; GNU
en
Abstract:
Das Hardware/Software Interface einer Rechnerarchitektur umfasst all jene Möglichkeiten mittels derer Informationen über die Grenze zwischen Hardware und Software hinweg übermittelt werden können. Die Bestandteile des Hardware/Software Interfaces finden sich daher in einer Vielzahl von Systemprogrammen, allen voran Compiler, Assembler und Linker wieder, in denen sie die Regeln für die Übersetzung von Quellcode einer Hochsprache in ein ausführbares Programm in der jeweiligen Maschinensprache vorgeben. Durch die kollektive Einhaltung dieser Regeln für eine bestimmte Architektur wird es ermöglicht, Anwendungen einmalig zu kompilieren und auf einem beliebigen Prozessor ausführen zu lassen, der eben diese Architektur implementiert. Im Rahmen dieser Diplomarbeit wird das Hardware/Software Interface des SPEAR2, einer am Institut für Technische Informatik der Technischen Universität Wien entwickelten soft-core Architektur, von Grund auf erarbeitet. Die Erkenntnisse werden dabei sowohl von einer bestehenden Sammlung mittlerweile nicht mehr zeitgemäßer Systemprogramme, als auch von den Quellcodes der Architektur selbst, gewonnen. Schlussendlich werden sich diese als unverzichtbar erweisen, wenn die Portierung und Integration einer Sammlung aktueller Entwicklungs-Tools, vorwiegend aus dem GNU Projekt, in eine funktionsfähige, wohl aufeinander abgestimmte, Toolchain vorgenommen werden soll.
The hardware/software interface of a computer architecture combines all means by which information can be exchanged across the hardware/software boundary, the place where the hardware and the software meet. As such, its components can be found implemented in a variety of systems software, such as compilers, assemblers and linkers, in which they lay out the rules by which high-level source code is translated into an executable machine language representation. At large, the collective adherence to the hardware/software interface of an architecture enables us to compile an application once and have it executed on virtually any processor which is compliant with this particular architecture. In this thesis we will elaborate on the hardware/software interface of the SPEAR2 architecture, a softcore processor architecture developed at the Department of Computer Engineering at the Vienna University of Technology, from the very ground up. The information will be derived partly from a collection of legacy software development tools, as well as from the plain sources of the architecture itself and be presented in a high degree of accuracy. Finally, our elaborations will prove essential when we turn to the porting and integration of a collection of state-of-the-art software development tools, primarily chosen from the GNU Project, into a functional, well-matched, toolchain.