Author |
Message |
rgerhards
|
|
Post subject: J-Befehlsformat der DLX-Architektur
Posted: Dec 02, 2008 - 09:13 AM
|
|
Joined: Sep 25, 2006
Posts: 688
Status: Offline
|
|
In Vorbereitung zu meiner Entscheidung, ein Studium aufzunehmen hatte ich in diesem Frühjahr das sogenannte "Schnupperstudium" der Universität Würzburg genutzt. Dort kann man einen Monat lang eine Teilmenge der regulären Lehrveranstaltungen besuchen. Eigentlich für Abiturienten mit Interesse am Studium in Wü gedacht, aber eben nicht darauf beschränkt.
Ich hatte das Vergnügen, dort einige Veranstaltungen von Hr. Prof. Kolla zum Thema Rechnerarchitektur zu hören. Zufälligerweise war er in diesem Monat gerade bei der Befehlssatz-Architektur.
In seiner Vorlesung wurde nicht DLX unmittelbar behandelt, sondern ein Derivat, WüRC genannt (offensichtlich DLX-Basisarchitektur mit Lehrstuhl-spezifischen Erweiterungen).
Ich kann mich noch gut daran erinnern, wie er die Befehlsformate erklärte und dann zu den Sprung-Befehlen kam. Er erläuterte, dass dafür das I-Format das angenommen werden könne und dies sei ohne zusätzlichen Hardwareaufwand zu realisieren. Der Nachteil läge allerdings in dem dann relativ kleinen Offset, der Sprünge nur im Bereich von +/- ~32K ermögliche. Für den normalen Ablauf eines monolitshichen Programmes sei das natürlich ausreichend.
In der Praxis werden allerdings Programmbibliotheken geladen, und dies naturgemäss an relativ weit entfernte Stellen des Speichers. Im Regelfall könnten diese dann mit einem JAL (analog J für Unterprogramm-Aufrufe) nicht mehr angesprungen werden und es werde eine aufwändigere JALR Sequenz erforderlich. Um dem zu begegnen, werde das Befehlsformat modifiziert, ein wenig mehr Hardwareaufwand getrieben und das J-Format eingeführt, bei dem alle 26 Operandenbits zur Adressberechnung zur Verfügung stehen. Damit werden Sprünge im Bereich +/- ~2^25 möglich, was in den weitaus meisten Fällen zur Adressierung auch entfernt geladener Unterroutinen ausreichend sein sollte. Er verwies jedoch darauf, dass bei noch längeren Sprüngen dann eben eine JALR Sequenz erforderlich sei, und zwar in dieser Weise:
ADD Ri,R0,Sprungziel
JALR Ri
hierdurch sei prinzipiell der gesamte Adressraum erreichbar. |
|
|
|
|
|
|
|
|