Information Technology Reference
In-Depth Information
lich. Abhilfe würde ein kombinierter Schiebe- und logischer Verknüpfungsbefehl schaffen, der
jedoch im MC88100 nicht vorgesehen ist.
Eine verfeinerte Variante des hier beschriebenen Verfahrens ist in den Prozessoren
mit PowerPC-Architektur von Motorola bzw. IBM realisiert [126, 67]. Statt mit
einem Vergleich die geordneten Bedingungen sowohl für vorzeichenbehaftete als
auch vorzeichenlose Zahlen parallel zu erzeugen, verfügt der Prozessor über sepa-
rate Vergleichsbefehle für diese Zahlentypen, wodurch im Bedingungscode vier Bits
eingespart werden. Da außerdem die Bedingungsbits „gleich“ und „ungleich“ bei
einem Vergleich immer invers zueinander sind - falls zwei Operanden gleich sind,
können sie nicht ungleich sein und umgekehrt - ist nur eines dieser Bedingungsbits
erforderlich. Gleiches gilt für die Bedingungsbits „größer“ und „kleiner gleich“
sowie „kleiner“ und „größer gleich“.
Insgesamt verfügt der PowerPC über acht Bedingungsregister die jeweils vier Bit
breit sind und in denen die Bedingungsbits „kleiner“ (lt; less than), „gleich“ (eq;
equal) und „größer“ (gt; greater than) für Operandenvergleiche sowie ein Überlauf-
bit (so; summary overflow) zur Erkennung von Zahlenbereichsüberschreitungen
codiert sind. Zur Verarbeitung der Bedingungsbits verfügt der Prozessor über
Befehle, die einen wahlfreien Zugriff auf jedes einzelne Bit eines beliebigen Bedin-
gungsregisters sowie deren logische Verknüpfung gestatten, wobei sich die Operan-
den bei Bedarf auch invertieren lassen.
Beispiel 1.4. Rechnen mit Bedingungen (PowerPC) . Die zusammengesetzte Bedingung a
=
b
UND c
d kann bei einem Prozessor mit PowerPC-Architektur z.B. berechnet werden, indem man
zunächst a und b sowie c und d entsprechend der Zahlentypen der Operanden miteinander ver-
gleicht. Die Ergebnisse lassen sich z.B. in die Bedingungsregister cr0 bzw. cr1 speichern. Für die
zusammengesetzte Bedingung wird nur das Bedingungsbit eq benötigt, das in cr0 gesetzt und in cr1
gelöscht sein muss (c und d müssen ungleich sein). Dies ist gleichbedeutend mit dem logischen
Ausdruck cr0.eq
cr1.eq, der vom PowerPC durch einen einzelnen Befehl, crandc (condition
register AND with complement), auswertbar ist.
∧ ¬
Orthogonale Bedingungscodes
Die zuvor beschrieben nichtorthogonalen Bedingungscodes haben die Eigenschaft,
dass einzelne oder alle Bedingungsbits Abhängigkeiten zueinander aufweisen kön-
nen. Zum Beispiel ist das Bedingungsbit „kleiner“ aus den Bedingungsbits „größer“
und „gleich“ ableitbar, weshalb es nicht vorgesehen sein muss. Werden alle drei Bits
dennoch erzeugt, hat das, wie zuvor erläutert wurde, den Vorteil, dass sich zusam-
mengesetzte Bedingungen durch logische Verknüpfung der Bedingungsbits berech-
nen lassen. Jedoch ist dies auch auf andere Weise erreichbar, z.B. mit Hilfe bedingt
ausgeführter Befehle (siehe Abschnitt 1.3.1 bzw. Abschnitt 2.2.4). Viele Prozesso-
ren erzeugen daher nur exakt die Bedingungsbits, die notwendig sind, um alle rele-
vanten Bedingungsgrößen unmittelbar oder mittelbar daraus ableiten zu können,
was impliziert, dass die Bedingungsbits keine Abhängigkeiten zueinander aufwei-
sen. Die Bedingungscodes werden deshalb als orthogonal bezeichnet.
Die in Bild 1.6 aufgeführten sechs Bedingungsgrößen für vorzeichenbehaftete Zah-
len lassen sich auf zwei Bedingungsbits „kleiner“ und „gleich“ reduzieren. Gleiches
gilt für die vorzeichenlosen Zahlen. Da die Gleichheit unabhängig vom jeweiligen
Search WWH ::




Custom Search