Information Technology Reference
In-Depth Information
unterschieden wird, ob sich der Zugriff auf Daten- oder Adressregister bezieht [81,
2, 72, 124]. In Tabelle 1.4 ist zu einigen nach dem 2-Adressprinzip arbeitenden Pro-
zessoren aufgelistet, wie viele Register verfügbar, direkt adressierbar und wie breit
die in den Befehlen codierten Registeradressen sind. Außerdem ist die minimale
Breite sowohl der unmittelbaren Operanden als auch der Befehle angegeben.
Tabelle 1.4. Registerspeichergrößen von Prozessoren mit 2-Adressarchitektur
Anzahl frei ver-
wendbarer Register
Bitbreite
Direkt
zugreifbar
Register-
breite
Register-
adressen
unmittelbare
Operanden
kleinste
Befehle
Prozessor (Hersteller)
Gesamt
8 Bit a
Athlon64 (AMD) [2, 3, 4, 5, 6]
Xeon mit EM64T (Intel) [72]
16
16
64 Bit
4 Bit
8 - 32 Bit
3 Bit b
ColdFire MFC5206
(Motorola) [124]
8 + 8
8 + 8
32 Bit
8 - 32 Bit
16 Bit
3 Bit b
16 Bit c
MC680xx (Motorola) [120]
8 + 8
8 + 8
32 Bit
8 - 32 Bit
Pentium X (Intel) [80, 81, 82]
8
8
32 Bit
3 Bit
8 - 32 Bit
8 Bit
a. Bei diesen Prozessoren handelt es sich um VLIW-Prozessoren, die mit einem Befehl mehrere
darin codierte Operationen parallel verarbeiten können. Die Angaben beziehen sich auf eine
einzelne Operation inklusive der zugehörigen Adressen.
b. Dieser Prozessor verfügt über 8 Daten- und 8 Adressregister. Ob auf ein Daten- oder ein
Adressregister zugegriffen wird, ist vom Befehl abhängig, wird also implizit festgelegt.
c. Der ARM7TDMI verfügt über einen alternativen, eingeschränkten Befehlssatz mit 16 Bit
breiten Befehlen, die sog. thumb instructions. Sie sind hier nicht berücksichtigt.
Die Geschwindigkeit, mit der sich ein Algorithmus ausführen lässt, ist einerseits
davon abhängig, wie schnell Befehle verarbeitbar sind und andererseits, wie viele
Befehle insgesamt ausgeführt werden müssen. Ersteres ist technologieabhängig,
wobei gilt, dass Befehle, die eine einfache Funktionalität besitzen, sich i.Allg.
schneller ausführen lassen als solche mit komplexer Funktionalität. Andererseits ist
die Anzahl der Befehle umso geringer, je komplexer sie sind. Bezogen auf 3- und 2-
Adressbefehle stellt sich dieser Konflikt folgendermaßen dar: Mit einem 3-Adress-
befehl kann auf die Operanden und das Ergebnis unabhängig voneinander zugegrif-
fen werden, wobei nur die registerdirekte Adressierung bzw. die unmittelbare
Adressierung des zweiten Operanden erlaubt ist. Ein 2-Adressbefehl ist zwar weni-
ger flexibel, da für einen Operanden und das Ergebnis eine gemeinsame Adresse
benutzt wird, dafür lassen sich die Operanden und ggf. das Ergebnis jedoch auf
beliebige Weise adressieren. Separate Lade- und Speicherebefehle sind nicht unbe-
dingt erforderlich. Außerdem benötigen 2-Adressbefehle i.Allg. weniger Platz als 3-
Adressbefehle. So können z.B. bis zu vier Athlon64-Befehle, jedoch nur ein Alpha-
21364-Befehl in 32 Bit codiert werden [2, 25, 28].
Beispiel 1.9. Umsetzung von 3- und 2-Adressbefehlen . Natürlich ist es möglich, die Funktionali-
tät eines 3-Adressbefehls durch 2-Adressbefehle und die eines 2-Adressbefehls durch 3-Adressbe-
fehle nachzubilden. In Bild 1.16 sind hierzu Beispiele angegeben, die mal die eine, mal die andere
Architekturform vorteilhaft erscheinen lassen. In Bild 1.16 (oben) ist dargestellt, wie ein 2-Adress-
Search WWH ::




Custom Search