Information Technology Reference
In-Depth Information
codierte Dezimalzahlen haben historische Bedeutung und lassen sich von vielen
modernen Prozessoren nicht mehr direkt verarbeiten. Aus Kompatibilitätsgründen
sind sie jedoch oft in älteren Architekturen verfügbar, wobei meist ausschließlich
die gepackte Darstellung in einem Byte erlaubt ist.
1.1.7 Bedingungscode (condition code)
Neben den bisher beschriebenen Zahlentypen können Prozessoren meist mit boole-
schen Bedingungsgrößen arbeiten, die anzeigen, ob ein Wertepaar oder allgemein
ein 2-Tupel in einer Relation enthalten oder nicht enthalten ist. Eine bestimmte
Relation beschreibt mathematisch eine Menge von 2-Tupeln, deren Komponenten
jeweils einer Bedingung genügen [93]. Eine zu einer Relation gehörende boolesche
Bedingungsgröße ist gesetzt, wenn ein bestimmtes 2-Tupel als Element der Relation
die zugehörige Bedingung erfüllt. Sie ist gelöscht, wenn das 2-Tupel die Bedingung
nicht erfüllt. So zeigt z.B. die Bedingungsgröße „Gleichheit“ an, ob zwei Operanden
denselben Wert besitzen. Für ganze Zahlen ist dies gleichbedeutend mit der Aus-
sage, ob das mit den Werten der Operanden gebildete 2-Tupel in der Relation
„Gleichheit“ enthalten ist. Die Relation „Gleichheit“ besteht aus den 2-Tupeln (0,
0), (1, 1), (2, 2) usw.
Einzeln codierte Bedingungsgrößen
Der Begriff der booleschen Bedingungsgröße abstrahiert von einer technischen
Umsetzung. Im einfachsten Fall wird sie als einzelnes Bedingungsbit codiert, dessen
Wert z.B. durch Vergleich zweier Operanden entsprechend einer bestimmten Rela-
tion erzeugt und gespeichert wird. Ein Prozessor, der Bedingungen in dieser Form
verarbeiten kann, ist der Itanium von Intel, der über 64 sog. Prädikatsregister ( pre-
dicate register ) verfügt, in denen beliebige Bedingungsbits gespeichert werden kön-
nen [73, 74, 75, 76]. Vorteilhaft daran ist, dass unterschiedliche Bedingungen
logisch miteinander verknüpft werden können, ohne zwischenzeitlich Kontrollfluss-
operationen ausführen zu müssen (siehe Abschnitt 1.3.1 bzw. Abschnitt 2.2.4).
Eine Variante, bei der keine Spezialregister benötigt werden, ist z.B. im Alpha
21364 von Compaq [25, 28] oder im DLX von Hennessy und Patterson [58] reali-
siert. Dabei wird die boolesche Bedingungsgröße nicht als Bedingungsbit, sondern
als ganze Zahl codiert. Eine nicht erfüllte Bedingung wird durch die Zahl Null, eine
erfüllte Bedingung durch eine Zahl ungleich Null repräsentiert. Neben der Möglich-
keit Bedingungsgrößen ohne Kontrollflussoperationen logisch miteinander ver-
knüpfen zu können, bietet dieses Verfahren den Vorteil, dass sich rückwärts zäh-
lende Schleifenzähler direkt als Bedingung zur Schleifenkontrolle verwenden las-
sen. Dabei wird eine Schleife solange wiederholt ausgeführt, bis der Schleifenzähler
den Wert Null erreicht oder negativ wird.
Nichtorthogonale Bedingungscodes
Zwei Operanden zu vergleichen, um ein einzelnes Bedingungsbit oder eine ganze
Zahl als Ergebnis zu erzeugen, das erst später genutzt wird, hat den Nachteil, dass
Search WWH ::




Custom Search