• Keine Ergebnisse gefunden

Noch eine Bemerkung

N/A
N/A
Protected

Academic year: 2022

Aktie "Noch eine Bemerkung"

Copied!
21
0
0

Wird geladen.... (Jetzt Volltext ansehen)

Volltext

(1)

Noch eine Bemerkung

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?

(2)

Gleitkommaarithmetik

Multiplikation von binären n‐Bit Gleitkommazahlen

(3)

Vorüberlegung

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?

(4)

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)

(5)

Algorithmus

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)

(6)

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.

„Exception“

Overflow oder 

Underflow? ja nein

Im Beispiel 8‐Bit für den Exponenten.

(2) 10,011100 * 2‐3 (3)

(7)

Algorithmus

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 „‐“.

(8)

Gleitkommaarithmetik

Erhöhen der Genauigkeit

(9)

Guard‐Bit, Round‐Bit und Sticky‐Bit

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

(10)

Wir betrachten 8‐Bit Mantissen. Es seien die folgenden beiden  binären Zahlen zu addieren.

1 , 100 0110 * 2

6

+       1 , 011 1010 * 2

2

Wie 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

6

1 , 011 1010  * 2

2

(11)

+ / −

IEEE 754 Rounding‐Modes

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

(12)

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|111 Up M = Mantisse + 1

Mantisse G R S

(13)

Quiz

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

(14)

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 –

104,8125 = 0,1875. Ohne GRS‐Bits und Rundung ist der Abstand 104,8125  – 104,5 = 0,3125.

(15)

Denormalized‐Numbers

Kleinste mit IEEE754 Single‐Precision darstellbare normalized Zahl > 0:

1,000 0000 0000 0000 0000 0000 * 2−126

Der Exponent −127 ist für die 0 reserviert; die Fraction ist dabei 0:

.,000 0000 0000 0000 0000 0000 * 2−127

Warum die Fraction für Exponent −127 nicht sinnvoll nutzen?

Eine Denormalized‐Number der Form

.,000 1010 1110 1000 1111 0011 * 2−127 bedeutet:

0,000 1010 1110 1000 1111 0011 * 2−126

Somit, kleinste mit IEEE754 Single‐Precision darstellbare Zahl > 0:

0,000 0000 0000 0000 0000 0001 * 2−1261,0 * 2−149

(16)

Was ist mit denormalized Numbers bei IEEE 754 Double‐Precision  die kleinste darstellbare Zahl > 0?

Quiz

Erinnerung:

IEEE 754 Double‐Precision:

Fraction: 52 Bits

Exponent‐Bias: 1023

(17)

Webseiten‐Tipp zum Üben

users‐tima.imag.fr/cis/guyot/Cours/Oparithm/english/Flottan.htm

Floating point numbers format

Addition and subtraction

Rounding to the nearest

(18)

Zusammenfassung und Literatur

(19)

Zusammenfassung

• Rechnerarithmetik endlich und stimmt damit  nicht exakt mit Arithmetik über reellen Zahlen  überein

– Häufig Approximation realer Zahlen – Assoziativgesetz gilt z.B. nicht

– Hat z.B. Konsequenz auf paralleles Rechnen

• Beschränkter Zahlenbereich

– Overflow, Underflow

• Wichtigste Entwicklung über die Jahre

– Zweierkomplement und IEEE 754

– In jedem modernen Computer so

(20)

Quiz

Annahme es gäbe ein 16‐Bit IEEE 754  Floating‐Point‐Format mit 5 Bits für den 

Exponenten. Welcher Zahlenbereich  wird durch dieses Format abgedeckt?

A: 1.0000 0000 00 * 20 bis 1.1111 1111 11 * 231, 0

B: +/‐ 1.0000 0000 0 * 2‐14 bis +/‐ 1.1111 1111 1 * 215 +/‐ 0, +/‐ , NaN

C: +/‐ 1.0000 0000 00 * 2‐14 bis +/‐ 1.1111 1111 11 * 215, +/‐ 0, +/‐ , NaN

D: +/‐ 1.0000 0000 0 * 2‐15 bis +/‐ 1.1111 1111 1 * 214, +/‐ 0, +/‐ , NaN

(21)

Literatur

[PattersonHennessy2012] David A. Patterson und  John L. Hennessy, „Computer Organization and Design“, Fourth Edition, 2012

2.4 Signed and Unsigned Numbers 2.6 Logical Operations

3.1 Introduction

3.2 Addition and Subtraction 3.3 Multiplication

3.4 Division

3.5 Floating Point

3.6 Parallelism and Computer Arithmetic: Associativity

Referenzen

ÄHNLICHE DOKUMENTE

D15 ZENTRUM Deutsche Zentrumspartei - Älteste Partei Deutschlands gegründet 1870. D16 Deutschland Ab jetzt ꞏꞏꞏ Bündnis für Deutschland Liste: Gegen Zuwanderung ins

© Statistisches Landesamt Sachsen-Anhalt, Halle (Saale), Vervielfältigung und Verbreitung, auch auszugsweise, nur mit Quellenangabe gestattet. Bundestagswahlkreis

© Statistisches Landesamt Sachsen-Anhalt, Halle (Saale), Vervielfältigung und Verbreitung, auch auszugsweise, nur mit Quellenangabe

© Statistisches Landesamt Sachsen-Anhalt, Halle (Saale), Vervielfältigung und Verbreitung, auch auszugsweise, nur mit Quellenangabe gestattet. Datensatzbeschreibung

D07 ZENTRUM Deutsche Zentrumspartei - Älteste Partei Deutschlands gegründet 1870 D11 MLPD Marxistisch-Leninistische Partei Deutschlands. D14 OPdM OSTDEUTSCHE PARTEI

© Statistisches Landesamt Sachsen-Anhalt, Halle (Saale), Vervielfältigung und Verbreitung, auch auszugsweise, nur mit Quellenangabe gestattet. Datensatzbeschreibung

D08 ZENTRUM Deutsche Zentrumspartei - Älteste Partei Deutschlands gegründet 1870 7.

Die zusammen- gef¨ ugten Massen beschleunigen ¨ uber einen bestimmten Weg h, das Aufsetzgewicht wird auf einem Ring aufgefangen und die beiden gleich großen Massen bewegen sich