Information Technology Reference
In-Depth Information
Codierung. Eine herausragende Besonderheit der Nemesis-Architektur ist, dass die
Programme mit einer sehr hohen Codedichte codierbar sind, wobei eine zu anderen
Architekturen vergleichbare oder sogar höhere Semantikdichte erreicht wird. Die
insgesamt 108 Basisbefehle besitzen eine einheitliche Breite von 16 Bit und lassen
sich teils optional, teils obligatorisch durch ebenfalls 16 Bit breite Präfixbefehle
erweitern.
Direkt ohne Präfixbefehl sind die Befehle add , sub , mul , and , ldw , stw , cmp , tst , die
bedingten und unbedingten Sprungbefehle und einige andere monadische sowie
operandenlose Befehle codierbar (insgesamt 39 Befehle). Diese sog. Befehlsgruppe
1 dürfte somit die am häufigsten in Programmen codierten Befehle enthalten, wie
sich mit Hilfe statischer Analysen von MIPS-Programmen auch nachweisen lässt
[160]. Neben den 39 präfixfreien stehen weitere 69 mit Präfix zu verwendende
Basisbefehle zur Verfügung. Der Präfixbefehl legt dabei durch den implizit oder
explizit codierten sog. Gruppencode u.a. die Befehlsgruppe fest, die dem nachfol-
genden Befehl zugeordnet ist. Im Prinzip entspricht dies einer Erweiterung des Ope-
rationscodes.
Neben dem Gruppencode lassen sich in Präfixbefehlen natürlich noch andere Infor-
mationen codieren. Soll z.B. eine unmittelbare Zahlen ungleich 0 oder 1 verarbeitet
werden, ist dies mit einem cpfix (constant prefix) zu erreichen, der die Interpretation
des zweiten Quelloperanden beeinflusst. Die zu verarbeitende unmittelbare Zahl ist
dabei statt der Registeradresse im Befehl codiert (4 Bit) und wird linksbündig um 14
Bits erweitert. Durch Mehrfachausführung des entsprechenden Präfixbefehls kön-
nen so beliebige 32-Bit-Zahlen codiert bzw. direkt verarbeitet werden.
Neben unmittelbaren Operanden lassen sich in einem Präfixbefehl noch die Adresse
eines auszuwertenden oder zu definierenden Bedingungsregisters ( cr n ) und im
Zusammenhang mit Lade- und Speicherebefehle die zu verwendende Adressie-
rungsart bzw. das zu benutzende Adressraumregister ( asi n ) codieren. Außerdem ste-
hen spezielle Coprozessorpräfixbefehle zur Verfügung, in denen insbesondere eine
Coprozessorkennung codiert ist. Sie sind vor allem für zukünftige Erweiterungen
von Bedeutung.
Die Verwendung von Präfixbefehlen ist deshalb von Vorteil, weil es möglich ist,
Präfixbefehle als eigenständig zu decodieren und zu verarbeiten. Dabei ist jedoch in
Kauf zu nehmen, dass die Ausführung von Präfixbefehlen Zeit erfordert, d.h. die
Verarbeitungsgeschwindigkeit eines entsprechend realisierten Prozessors negativ
beeinflusst wird. Falls dies nicht tolerierbar ist, müssen die Präfixbefehle und die
folgenden eigentlichen Befehle als Einheit decodiert bzw. ausgeführt werden.
Selbstverständlich ist dies aufwendiger zu realisieren, als die Folge aus Präfixbefeh-
len und Befehlen sequentiell zu bearbeiten. Dafür ist ein entsprechend arbeitender
Decoder jedoch in der Weise erweiterbar, dass er beliebige Befehlsfolgen, in denen
auch mehrere „echte“ Befehle enthalten sein können, als Einheit bearbeiten kann.
Zum Beispiel ist es möglich die bereits erwähnte akkumulierende Multiplikation als
32-Bit-Einheit zu codieren und in einem Takt zu bearbeiten, obwohl es sich tatsäch-
lich um zwei Befehle, nämlich eine Multiplikation und eine Addition, handelt.
Search WWH ::




Custom Search