Information Technology Reference
In-Depth Information
Befehls-Cache, einem Zwischenspeicher, auf den deutlich schneller zugegriffen
werden kann als auf den Hauptspeicher (siehe Abschnitt 2.3.1). Ein weiterer Nach-
teil einer solchen Befehlscodierung ist, dass die Anzahl der Befehle, die pro Zeitein-
heit über einen Bus begrenzter Bandbreite transportiert und anschließend ausgeführt
werden können, mit der Breite der Befehle sinkt. Ungünstig ist schließlich noch,
dass auf den Datenspeicher i.Allg. pro Zeiteinheit nur ein Zugriff möglich ist. Die
hier erforderlichen drei Zugriffe müssen also sequentiell bearbeitet werden, so dass
ein entsprechender Prozessor mit einer geringeren Geschwindigkeit arbeitet, als
einer, der parallel auf Operanden und Ergebnis zugreifen kann.
Auf Grund dieser Probleme sind in dyadischen Operationen für Zugriffe auf Ope-
randen und Ergebnisse i.Allg. nicht beliebige Adressierungsarten, sondern nur die
registerdirekte sowie für einen der beiden Operanden die unmittelbare Adressierung
erlaubt. Wegen der geringen Größe des Registerspeicherraums im Vergleich zum
Datenspeicherraum sind nämlich die Adressen für Zugriffe auf Register weniger
breit als die für Zugriffe auf Datenspeicherzellen. Zum Beispiel verfügt der
PowerPC von Motorola und IBM über 32 allgemein verwendbare Register zur Spei-
cherung ganzer Zahlen, auf die über fünf Bit breite Registeradressen zugegriffen
werden kann. Zur Codierung der Registeradressen einer dyadischen Operation wer-
den also insgesamt 15 Bits der 32 Bit breiten Befehle benötigt.
In Tabelle 1.3 ist zu einigen Prozessoren aufgelistet, wie viele allgemein verwend-
bare Register für ganze Zahlen darin verfügbar und wie viele davon direkt durch
eine im Befehl codierte Adresse zugreifbar sind (darin nicht enthalten sind Register,
die man nur in speziellen Betriebszuständen, z.B. innerhalb einer Unterbrechungs-
behandlung ansprechen kann). Außerdem enthält die Tabelle Angaben zu den
Registerbreiten, sowie den Bitbreiten der Registeradressen, der unmittelbaren Ope-
randen und der (einheitlich breiten) Befehle.
Bemerkenswert ist, dass die unmittelbaren Operanden eine i.Allg. geringere Breite
aufweisen, als von den jeweiligen Prozessoren direkt verarbeitbar ist, und zwar des-
halb, weil die Befehle zu schmal sind, um beliebige Werte darin codieren zu können.
Natürlich ist es möglich, Befehle zu verwenden, die breiter sind als in Tabelle 1.3
angegeben. Falls jedoch die Befehle eine für die Fließbandverarbeitung günstige
einheitliche Breite aufweisen sollen, wird der Speicherbedarf und die maximal
erreichbare Befehlsbandbreite, also die Anzahl der Befehle, die pro Zeiteinheit über
einen Befehlsbus begrenzter Bandbreite transportiert werden können, negativ beein-
flusst (Abschnitt 2.2). Würden z.B. die unmittelbaren Operanden des UltraSPARC
III Cu von SUN in direkt verarbeitbaren 64 Bit breiten Feldern codiert, dann würde
der Speicherbedarf pro Befehl auf 83 Bit etwa um den Faktor 2,6 steigen [172]. Statt
etwa 2,6 jeweils 32 Bit breite Befehle könnte nur noch ein 83 Bit breiter Befehl pro
Zeiteinheit über den Befehlsbus transportiert werden, obwohl in den meisten Fällen
unmittelbare Operanden verarbeitet würden, die in 13 Bit codierbar wären.
Durch ein Adressmodusbit wird unterschieden, ob ein Registerinhalt oder ein Zah-
lenwert bei Ausführung eines Befehls verarbeitet werden soll. Da die Verknüpfung
zweier unmittelbarer Operanden bereits zur Übersetzungszeit eines Programms
bearbeitet werden kann (die Berechnung 2+3 wird direkt durch das Ergebnis 5
Search WWH ::




Custom Search