164
3 Hardware eingebetteter Systeme
– Wortgrößen von Speichern, Befehlen und Adressen sind zu berücksichtigen.
– Sprungbefehle zu beliebigen Zieladressen müssen unterstützt werden.
– Eine schnelle Kodierung ist nur erforderlich, wenn veränderliche Informationen kodiert werden. Ansonsten reicht eine schnelle Dekodierung aus.
Es gibt dabei verschiedene Variationen dieses Schemas:
– Einige Prozessoren verfügen über einen zweiten Befehlssatz mit einem
„schmaleren” Befehlsformat. Beispielsweise verwendet der normale ARMBefehlssatz 32 Bit breite Befehle. Die meisten ARM-Prozessoren verfügen
daneben noch über einen zweiten Befehlssatz, die sogenannten THUMBBefehle. THUMB-Befehle sind kürzer, da sie bedingte Ausführung11 nicht
unterstützen, weniger und kürzere Registerfelder besitzen und auch nur kürzere Direktoperanden (engl. immediate values) aufnehmen können (siehe Abb.
3.19).
ELW7KXPE%HIHKO
$''5GFRQVWDQW
$50%HIHKO
LPPHU
PDMRURSFRGH
PLQRURSFRGH
Abb. 3.19 Umkodierung von THUMB- in ARM-Befehle
THUMB-Befehle werden dynamisch in ARM-Befehle umgewandelt, während
ein Programm dekodiert wird. Dabei können sie nur die Hälfte der verfügbaren
Register nutzen. Den Registerfeldern von THUMB-Befehlen wird bei der
Dekodierung ein '0'-Bit vorangestellt12. Im THUMB-Befehlssatz sind Quellund Zielregister identisch und die Länge von Konstanten, die direkt im Befehl
kodiert werden können, ist um 4 Bit reduziert. Während der Dekodierung wird
Fließbandverarbeitung (engl. Pipelining) verwendet, um den Mehraufwand
zur Laufzeit gering zu halten.
11 Bei der bedingten Ausführung (engl. predicated execution) haben Befehle nur dann eine Wirkung, wenn eine im Befehl kodierte Bedingung bezüglich der Inhalte der Condition-Code-Register
erfüllt ist. Beim ARM-Befehlssatz wird dabei die Bedingung in den höchstwertigen vier Bits des
Befehlsformats gespeichert und so wird beispielsweise ein Befehl nur wirksam, wenn eine vorher
geprüfte <=-Bedingung erfüllt war. Mit bedingter Ausführung können if-Anweisungen ohne bedingte Sprünge realisiert werden. Die bedingte Ausführung besitzt im neueren 64-Bit-Befehlssatz
eine geringere Bedeutung.
12 Unter Verwendung der VHDL-Syntax (siehe Seite 109) wird die Konkatenation durch ein &Zeichen gekennzeichnet und Konstanten werden in Hochkommata eingeschlossen.
Précédent

- 186/485

Suivant