IEEE 754 Encoding
Wie stellt man im IEEE 754 Format eigentlich die „0“ dar!?
(‐1)
S* (1 + Fraction) * 2
(Exponent—Bias)Single‐Precision (Bias=127)
Double‐Precision
(Bias=1023) Dargestelltes Objekt
Exponent Fraction Exponent Fraction
0 0 0 0 0
0 Nicht‐Null 0 Nicht‐Null (+/‐ Denormalised Number) 1 bis 254 Beliebig 1 bis 2046 Beliebig +/‐ Gleitkommazahl
255 0 2047 0 +/‐ Unendlich
Quiz
Grundlagen der Rechnerarchitektur ‐Logik und Arithmetik 107
Betrachte IEEE 754 Single‐Precision, also Bias = 127. Was ist der Dezimalwert der folgenden Binärzahl?
010000000110000000000000000000000
(‐1)
S* (1 + Fraction) * 2
(Exponent—Bias)Quiiiiz
Bestimme S, Fraction und Exponent der IEEE 754 Single‐Precision Repräsentation (also Bias = 127) der Dezimalzahl ‐0.75.
Gleitkommaarithmetik
Grundlagen der Rechnerarchitektur ‐Logik und Arithmetik 109
Gleitkommaarithmetik
Addition von binären n‐Bit Gleitkommazahlen
Vorüberlegung
Grundlagen der Rechnerarchitektur ‐Logik und Arithmetik 111
Addition mit gleichem Exponent (Nachkomma mit 4 Bits kodiert):
Addition mit unterschiedlichen Exponenten (Nachkomma 4 Bits):
Vorüberlegung
Ergebnis muss unter Umständen wieder normalisiert werden:
Bei Einschränkung auf n Bit (z.B. Nachkomma auf 4 Bit einge‐
schränkt) kann dies anschließendes Auf‐ bzw. Abrunden erfordern.
Beispiel: Runden nach der „Schulmethode“
Vorüberlegung
Grundlagen der Rechnerarchitektur ‐Logik und Arithmetik 113
Das Runden kann ggf. neues Normalisieren erforderlich machen:
Normalisierungen können Overflows und Underflows hervorrufen.
Beispiel: IEEE 754 Single‐Precision erlaubt Exponenten von ‐126 bis 127. Somit ist zum Beispiel:
Additionsalgorithmus
2 Beispiele: 4 Bit für die Mantisse
und 8 Bit für den Exponenten. Start
(1) Vergleiche Exponenten der beiden Zahlen. Shifte die
kleinere Zahl nach rechts, so dass der Exponent mit dem Exponent der größeren Zahl übereinstimmt. (Mantissen‐
Alignment)
(2) Addiere die Mantissen.
Beispiel 1 Beispiel 2 1,000 * 2‐1
‐ 1,110 * 2‐2
1,001 * 210 + 1,101 * 211 (1)
(2)
Additionsalgorithmus
Grundlagen der Rechnerarchitektur ‐Logik und Arithmetik 115
2 Beispiele: 4 Bit für die Mantisse
und 8 Bit für den Exponenten. (3) Normalisiere die Summe, entweder durch Rechts‐Shift
und hoch setzen oder durch Links‐Shift und runter setzen
des Exponenten.
„Exception“
Overflow oder
Underflow? ja nein
Im Beispiel 8‐Bit für den Exponenten.
Beispiel 1 Beispiel 2
(2) 0,001 * 2‐1 10,001 * 211 (3)
Additionsalgorithmus
2 Beispiele: 4 Bit für die Mantisse und 8 Bit für den Exponenten.
Immer noch normalisiert?
(4) Runde die Mantisse auf die verfügbare Anzahl Bits.
ja
nein zurück nach (3)
Beispiel 1 Beispiel 2
(3) 1,000 * 2‐4 1,0001 * 212 (4)
Noch eine Bemerkung
Grundlagen der Rechnerarchitektur ‐Logik und Arithmetik 117
Betrachte die folgenden binären Floats mit 8‐Bit Mantisse:
x = −1,100 000 * 2100, y = 1,100 000 * 2100 , z = 1,000 0000 Was ist x + (y + z)?
Was ist (x + y) + z?
Somit ist x + (y + z) ≠ (x + y) + z, d.h. die Gleitkommaaddition ist nicht assoziativ!
Quiz: Was ist die Konsequenz, wenn man x1 + x2 + ... + xn parallel berechnen möchte?
Gleitkommaarithmetik
Multiplikation von binären n‐Bit Gleitkommazahlen
Vorüberlegung
Grundlagen der Rechnerarchitektur ‐Logik und Arithmetik 119
Multiplikation von zwei beliebigen binären Floats in normalisierter Darstellung. Was ist der Exponent des Ergebnisses?
Multiplikation der Mantissen. Wo kommt das Komma hin?
Was ist das Vorzeichen v von x * y?
Algorithmus
Beispiel: 4 Bit für die Mantisse und 8 Bit für den Exponenten.
Start
(1) Addiere die Exponenten.
(Subtrahiere Bias im Falle von Biased‐Notation ) 1,101 * 2‐1 * ‐1,100 * 2‐2
(1)
Algorithmus
Grundlagen der Rechnerarchitektur ‐Logik und Arithmetik 121
Beispiel: 4 Bit für die Mantisse und 8 Bit für den Exponenten.
(2) Multipliziere die Mantissen.
(1) Der Exponent ist ‐3 Die Mantissen sind:
1,101 und 1,100 (2)
Algorithmus
Beispiel: 4 Bit für die Mantisse
und 8 Bit für den Exponenten. (3) Normalisiere das Produkt Falls notwendig.
Normalisierung erfolgt durch Rechts‐Shift und erhöhen
des Exponenten.
Overflow oder
Underflow? ja nein
Im Beispiel 8‐Bit für den Exponenten.
(2) 10,011100 * 2‐3 (3)
Algorithmus
Grundlagen der Rechnerarchitektur ‐Logik und Arithmetik 123
Beispiel: 4 Bit für die Mantisse und 8 Bit für den Exponenten.
(Eingabe: 1,101 * 2‐1 * ‐1,100 * 2‐2)
Fertig
Immer noch normalisiert?
(4) Runde die Mantisse auf die verfügbare Anzahl Bits.
ja
nein zurück nach (3)
(3) 1,0011100 * 2‐2 (4)
(5)
(5) Setze Vorzeichen auf „+“
wenn die Vorzeichen der Eingaben gleich waren. Sonst
setze Vorzeichen auf „‐“.
Gleitkommaarithmetik
Erhöhen der Genauigkeit
Guard‐Bit, Round‐Bit und Sticky‐Bit
Grundlagen der Rechnerarchitektur ‐Logik und Arithmetik 125
Bei der Darstellung der Addition und Multiplikation haben wir vereinfacht die beim Mantissen‐Alignment rechst heraus
geschobenen Bits einfach abgeschnitten. Zum Beispiel:
In Wirklichkeit (z.B. IEEE 754 Spezifikation) wird zur Steigerung der Genauigkeit etwas geschickter vorgegangen. Obiges Beispiel:
Rechenoperationen finden auf dieser erweiterten Mantisse statt.
Mantisse
10111001000111011010110 Mantisse
Mantissen‐Alignment um 5 Stellen
Wir betrachten 8‐Bit Mantissen. Es seien die folgenden beiden binären Zahlen zu addieren.
1 , 100 0110 * 2
6+ 1 , 011 1010 * 2
2Wie sehen Mantisse, Guard‐Bit, Round‐Bit und Sticky‐Bit nach dem Mantissen‐Alignment aus?
Quiz
8‐Bit‐Mantisse 8‐Bit‐Mantisse
1 , 100 0110 * 2
61 , 011 1010 * 2
2+ / −
IEEE 754 Rounding‐Modes
Grundlagen der Rechnerarchitektur ‐Logik und Arithmetik 127
Synonym Ergebnis Beispiel 21,7 Beispiel ‐21,7 Round
toward +∞
Ceil Kleinster Wert nicht kleiner als M Round
toward
−∞
Floor Größter Wert nicht größer als M
Round toward 0
Truncate Genau M
Round to
nearest
Wert, der am nächsten zu M liegt
Mantisse M G R S
IEEE Rounding‐Modes: Round to Nearest
Eingabe Form bei Tie Rundung Ergebnis M Mantisse|000 Same M = Mantisse
Mantisse|001 Down M = Mantisse
Mantisse|010 Down M = Mantisse
Mantisse|011 Down M = Mantisse
Mantisse|100 (Tie)
...0|100 Down M = Mantisse
...1|100 Up M = Mantisse + 1
Mantisse|101 Up M = Mantisse + 1
Mantisse|110 Up M = Mantisse + 1
Mantisse G R S
Quiz
Grundlagen der Rechnerarchitektur ‐Logik und Arithmetik 129
Was ist das Rundungsergebnis bei Round‐to‐Nearest für folgende Instanzen von „8‐Bit‐Mantisse | Guard‐Round‐Sticky“?
A.) 0000 1101 | 110
B.) 0011 0011 | 100
C.) 0101 0101 | 010
GRS Mantisse Richtung
001 Down
010 Down
011 Down
100 ...0 Down
...1 Up
101 Up
110 Up
111 Up
Übersicht zu Round‐to‐Nearest
Beispiel für die Genauigkeitssteigerung
Wir betrachten 8‐Bit Mantissen. Zu addieren sei:
1,100 0110 * 26 (dezimal = 99,0000) + 1,011 1010 * 22 (dezimal = 5,8125) (Summe dezimal = 104,8125) Das Mantissen‐Alignment und GRS‐Bits kennen wir schon, also:
Rechnung: Mantisse|GRS Mantisse 11000110|000 11000110 + 00001011|101 + 00001011 --- --- 11010001|101 11010001 Rundung: 11010010 ohne 11010001
Ergebnis: 1,1010010 * 26 1,1010001 * 26 Dezimal : 105,0 104,5
Also hat man mit GRS‐Bits und Rundung einen Abstand von 105,0 –