Computerarithmetik () Fragen: Wie werden Zahlen repräsentiert und konvertiert? Wie werden negative Zahlen und Brüche repräsentiert? Wie werden die Grundrechenarten ausgeführt? Was ist, wenn das Ergebnis einer Operation größer ist als die größte darzustellende Zahl? Hauptunterschied zwischen Computer- und menschlicher Arithmetik: Computer arbeiten mit einer anderen Zahlendarstellung Genauigkeit der sowie Platzbedarf für die Darstellung von Zahlen sind beim Computer endlich und begrenzt. Rechner speichern die Information (Zahlen) in Einheiten festgesetzter Bitlänge, genannt Worte. So dargestellte Zahlen heißen Zahlen mit begrenzter Genauigkeit. Vorlesung Techn. Grundlagen der Informatik WS 8/9 E. Nett
Computerarithmetik (a) Prozessortyp Wortlänge (in Bits) 885, Z8, 689 8 886, 68 6 8386, 682 32 Pentium, PowerPC 32 (Sun SPARC, IBM AIX) typischer Mikrocontroller 4 Cray- Supercomputer 64 Vorlesung Techn. Grundlagen der Informatik WS 8/9 E. Nett 2
Computerarithmetik (2) Beispiel für Zahlendarstellung mit unterschiedlichen Basen: binär 2 + 2 9 + 2 8 + 2 7 + 2 6 + 2 5 + 2 4 + 2 3 + 2 2 + 2 + 2 24 + 52 + 256 + 28 + 64 + + 6 + + + + oktal 3 7 2 3 8 3 + 7 8 2 + 2 8 + 8 536 + 448 + 6 + dezimal 2 2 3 + 2 + + 2 + + + hexadezimal 7 D 7 6 2 + 3 6 + 6 792 + 28 + Vorlesung Techn. Grundlagen der Informatik WS 8/9 E. Nett 3
Computerarithmetik (3) Kollektion von Zahlendarstellungen mit den 4 verschiedenen Basen: dezimal binär oktal hexadezimal 2 3 7 8 2 5 6 2 5 6 8 2989 2 3 7 2 3 4 7 2 24 62 74 2 44 75 5655 2 3 7 8 A B C F 4 32 3C 5 64 3E8 BAD Vorlesung Techn. Grundlagen der Informatik WS 8/9 E. Nett 4
Computerarithmetik (4) Tabelle für Umwandlung binär - hexadezimal: Beispiel für Konversion einer Dezimalzahl in eine Binärzahl: Hexadezimal 2 3 4 5 6 7 binär Hexadezimal 8 9 A B C D E F binär Quotient 492 746 373 86 93 46 23 5 2 Rest Vorlesung Techn. Grundlagen der Informatik WS 8/9 E. Nett 5
Computerarithmetik (5) BCD (Binary Coded Decimal): weitere Möglichkeit der Zahlendarstellung mit Hilfe von nur 2 Ziffern, aber im Dezimalsystem verbleibend. Prinzip: Jede Dezimalziffer wird für sich in die entsprechende Binärzahl konvertiert. (Analogie zum Binärblock mit den Basen 2, 8, 6) Vorteil: sehr einfache Konvertierung von dezimaler zu binärer Darstellung Nachteile: komplexere Arithmetik verschwenderische (ineffiziente) Ausnutzung der zur Verfügung stehenden Wortbreite und damit des gesamten Speichers Konsequenz: Einsatz nur in Applikationen mit sehr geringem Speicherbedarf Beispiele: Taschenrechner, Digitaluhr Vorlesung Techn. Grundlagen der Informatik WS 8/9 E. Nett 6
Computerarithmetik (6) Darstellung ganzer Zahlen (signed numbers). Die Vorzeichen/Betrags - Darstellung (sign and magnitude): Das höchstgewichtete Bit wird exklusiv für die Angabe des Vorzeichens genutzt. (Exklusiv heißt: Das Vorzeichenbit ist nicht Teil der Zahl) Sei S (=d n ) das Vorzeichenbit und N der Betrag (Größe) einer ganzen Zahl Z, dann ist ihr Wert gegeben durch: Z =: (-) d n N Beispiel für n=3: Der Wertebereich bei einem gegebenen n-bit-wort liegt im Intervall [-(2 n- -), 2 n- -] ---> Der Zahlenbereich ist symmetrisch bzgl. des Nullpunkts ---> keine eindeutige Darstellung der Null (-, +) Vorlesung Techn. Grundlagen der Informatik WS 8/9 E. Nett 7
Computerarithmetik (6a) Weitere Nachteile: erfordert separates Subtrahierwerk erfordert zusätzliche Logik, um zu entscheiden, welches Vorzeichen das Ergebnis der Operation hat 2. Die Komplement - Darstellung Das höchstgewichtete Bit wird weiterhin (aber nicht exklusiv) für die Angabe des Vorzeichens genutzt, d.h. das Vorzeichenbit ist Teil des Summanden und wird in eine arithmetische Operation mit eingeschlossen Subtraktion wird auf die Addition zurückgeführt Keine Notwendigkeit für ein zusätzliches Subtrahierwerk Keine zusätzliche Logik zur Bestimmung des Vorzeichens 2a. Einer - Komplement Sei N der Betrag (Größe) einer negativen ganzen Zahl Z (d.h. d n =). Dann gilt: -N = N - (2 n - ) Das Einer - Komplement - N einer positiven binären Zahl N aus [, 2 n- -] erreicht man durch bitweises Invertieren von N ---> -N aus [-, -2 n- -] Vorlesung Techn. Grundlagen der Informatik WS 8/9 E. Nett 8
Computerarithmetik (7) Beispiel für n=3: Subtraktion:= Addition + end-around-carry, d.h. zu der Summe wird das Übertragsbit aufaddiert. Vorteil: zusätzliches Subtrahierwerk überflüssig Nachteile: keine eindeutige Darstellung der Null kein echtes Komplement, da -x + x sondern = -, also... Vorlesung Techn. Grundlagen der Informatik WS 8/9 E. Nett 9
Computerarithmetik (7b) 2b. Zweier - Komplement Sei N der Betrag (Größe) einer negativen ganzen Zahl Z (d.h. d n =). Dann gilt: -N = N - 2 n -N = Einer - Komplement + -N = (bitweises Invertieren von N ) + Es gibt eine eindeutige Darstellung der Null (...) -N aus [-, -2 n- ] Der Wertebereich des Zweier - Komplements ist [-2 n-, 2 n- -] Das Zweier - Komplement ist ein echtes Komplement: N+(-N) = 2 n = (...) Beispiel für n=3: Vorlesung Techn. Grundlagen der Informatik WS 8/9 E. Nett
Computerarithmetik (8a) Einfache Additions (Subtraktions-) Regeln x+y: x-y = x+(-y): Addition der entsprechenden 2er - Komplemente ergibt korrekte Summe im 2er - Komplement, solange der Wertebereich nicht überschritten wird. Bilde das 2er - Komplement von y und führe Addition wie oben aus. Konsequenz: Die logische Einfachheit und die daraus resultierende Geschwindigkeit (arithmetische Operation erfolgt immer in einem Schritt) führt dazu, dass das Zweier - Komplement in den ALU s moderner Rechner eingesetzt wird. Vorlesung Techn. Grundlagen der Informatik WS 8/9 E. Nett
Computerarithmetik (8) Visualisierung des Zweier - Komplements sowie der Addition -2-3 - + +2 +3-4 +4-5 +5-6 +6-7 -8 +7 Vorlesung Techn. Grundlagen der Informatik WS 8/9 E. Nett 2
Computerarithmetik (9) Overflow (Summe liegt außerhalb des Wertebereiches): Wichtig: Erkennung des Overflows Bei Integer-Addition dient das carry-out-bit als Overflow-Indikator. Bei Addition ganzer Zahlen (signed numbers) gilt dies nicht Addition von Summanden mit unterschiedlichem Vorzeichen ergibt nie einen Overflow (Absoluter Wert ihrer Summe ist immer kleiner als der absolute Wert von einem der beiden Summanden) Folgerung: Overflow nur möglich, wenn beide Summanden das gleiche Vorzeichen haben Prüfung auf Overflow: O = a n bn sn + a n b n s n (Die Faktoren repräsentieren die Vorzeichenbits der Summanden a und b sowie der Summe s) Gilt O = Es existiert ein Overflow! Vorlesung Techn. Grundlagen der Informatik WS 8/9 E. Nett 3
Computerarithmetik (27) Kriterien für die Qualität der Zahlendarstellung: Größe des darstellbaren Zahlenbereichs (range) Genauigkeit (precision) der Zahlendarstellung Diese beiden Kriterien sind prinzipiell unabhängig voneinander. Wissenschaftliche Notation: d = a x r E a Mantisse (Argument), r Radix (Basis), E Exponent (Charakteristik) Parameter für mögliche Darstellungen von Floating point - Zahlen : Anzahl der insgesamt verfügbaren Bits (Wortlänge bzw. Worte) Anzahl der verfügbaren Bits jeweils für Mantisse bzw. Exponent (Trade-off!) Darstellung von Mantisse und Exponent Lokalisierung (Mantisse vor Exponent oder umgekehrt) Mantissendarstellung in normierter Form: d = (-) s x a x 2 E mit s als Vorzeichenbit und a < 2 Exponentendarstellung mit Bias: d = (-) s x a x 2 E mit E := E + 27 Vorlesung Techn. Grundlagen der Informatik WS 8/9 E. Nett 4
Computerarithmetik (27a) Darstellung im IEEE Standard 754: Einfache Genauigkeit: 32 Bits S E M Vorzeichen der Zahl = + = - 8 Bit vorzeichenbehafteter Exponent Excess-27 Darstellung 23 Bit Mantisse Darstellung entspricht: ±,M 2 E -27 Beispiel mit Einfacher Genauigkeit: Doppelte Genauigkeit: Darstellung entspricht:,... 2-87 64 Bits S E M Vorzeichen Bit Excess-23 Exponent 52 Bit Mantisse Darstellung entspricht: ±,M 2 E -23 Vorlesung Techn. Grundlagen der Informatik WS 8/9 E. Nett 5
Computerarithmetik (28) Verallgemeinerter Additions/Subtraktions - Algorithmus: Rechtsshift auf der Mantisse des kleineren Operanden zur Angleichung der Exponenten ----> Exponent der Summe/Differenz := Exponent des größten Operanden Addition/Subtraktion der Mantissen und Bestimmung des Vorzeichens Wenn nötig, Normalisierung des Ergebnisses Verallgemeinerter Multiplikations/Divisions- Algorithmus: Multipliziere/Dividiere die Mantissen und bestimme das Vorzeichen Wenn nötig, normalisiere das Ergebnis Addiere/Subtrahiere die Exponenten und subtrahiere/addiere 27 Rundung: Kappung überzähliger Bits durch Abspalten (chopping) von Neuman - runden runden Vorlesung Techn. Grundlagen der Informatik WS 8/9 E. Nett 6
Computerarithmetik (28a) (vorläufige) Zusammenfassung: Computerarithmetik ist endlich und kann folglich nicht übereinstimmen mit der natürlichen Arithmetik Selbst der IEEE 754 - Standard für die Fließkomma - Darstellung, wie jede andere auch, ist fast immer eine Approximation der realen Zahlen. Rechnersysteme müssen dafür sorgen, den daraus resultierenden Unterschied zwischen Computerarithmetik und Arithmetik in der realen Welt möglichst zu minimieren. Informatiker sollten sich dieser Zusammenhänge bewusst sein. Vorlesung Techn. Grundlagen der Informatik WS 8/9 E. Nett 7
Computerarithmetik (29) Beispiel für die HW - Implementierung einer Addition/Subtraktion: 32 Bit Operanden A: S { A, E A, M A B: S B, E B, M B } E A E B M A M B Addition / Subtraktion 8 Bit Subtrahierer Vorzeichen S A S B n = [E A - E B ] kombinatorisches Steuerungs- Netzwerk Addition Subtraktion Vorzeichen Vertauscher Schieberegister n Bit nach rechts Mantisse add. / sub. M von Zahlen mit kleinerem E M von Zahlen mit größerem E E A E B Multiplexer E X Vornullen- Erkennung Normalisieren und Runden Größe M 8 Bit Subtrahierer { R : S R E R E - X M R } 32 Bit Ergebnis: R = A + B Vorlesung Techn. Grundlagen der Informatik WS 8/9 E. Nett 8
Computerarithmetik () Wahrheitstabelle Halbaddierer: Symbol: A B S C Summe: A B S = AB + AB = (Exklusiv-Oder) Carry: A B HA C = AB S C out Implementierung: A B A A S B S S C B C C Vorlesung Techn. Grundlagen der Informatik WS 8/9 E. Nett 9
Computerarithmetik () Wahrheitstabelle Volladdierer: A B C in C in A B S C out C HA S HA 2 C 2 S 2 A B C in Symbol: C out S S FA C out Implementierung eines Volladdierers mittels zweier Halbaddierer Vorlesung Techn. Grundlagen der Informatik WS 8/9 E. Nett 2
Computerarithmetik (2) Schaltung für einen Volladdierer: A B C in C in A B C out S Vorlesung Techn. Grundlagen der Informatik WS 8/9 E. Nett 2
Computerarithmetik (3) Serieller Addierer: A Shift-Register Summen-Shift-Register B Shift-Register A S B FA C in C out Shift Takt Carry Flip Flop Q D C n Pulse pro Addition Paralleladdierer: A B C in A B C in A B A B C in C in Übertrag. Ebene FA FA FA FA Übertrag C out S m- C out S m-2 C out S C out S Vorlesung Techn. Grundlagen der Informatik WS 8/9 E. Nett 22
Computerarithmetik (4) Rohrleitungsanalogie für Carry-lookahead: Vorlesung Techn. Grundlagen der Informatik WS 8/9 E. Nett 23
Computerarithmetik (4a) Rechenzeit zur Addition zweier 32 Bit-Zahlen A) serieller Addierer 3 GLZ pro Additionsschritt (Mindestzeit, da Taktung entscheidend) 32 * 3 GLZ = 96 GLZ B) Carry Ripple Adder (CRA) 3 * 2 GLZ (Ripple Carry) * 3 GLZ (letzte Addition) = 62 GLZ = 3 GLZ 65 GLZ C) Carry-Lookahead Adder (CLA) Zusammenschaltung von m 4-Bit CLA (im Beispiel m=8) * GLZ (g i und p i ) 8 * 2 GLZ (c... c 4 ) * 3 GLZ (letzte Addition) = GLZ = 6 GLZ = 3 GLZ 2 GLZ Vorlesung Techn. Grundlagen der Informatik WS 8/9 E. Nett 24
Computerarithmetik (5) Multiplikation Multiplication is vexation, Division is as bad. Anonymus, Elizabethan manuscript, 57. Version einer Multiplikationshardware: 64 Bit Multiplikand Linksshift 64-Bit ALU Kontroll Test Write 64 Bit Produkt 32 Bit Multiplikator Rechtsshift Vorlesung Techn. Grundlagen der Informatik WS 8/9 E. Nett 25
Computerarithmetik (5a) Dazugehöriger Algorithmus: Start Nein. Test Multiplikator =? Ja a. Addiere den Multiplikand zum Produkt speichere das Ergebnis im Produktregister 2. Das Multiplikandenregister um Bit nach links shiften 3. Das Multiplikatorregister um Bit nach rechts shiften 32. Wiederholung? Nein Ja Vorlesung Techn. Grundlagen der Informatik WS 8/9 E. Nett Stop 26
Computerarithmetik (5b) Dazugehöriges Beispiel: Schleife Schritt Multiplikator Multiplikand Produkt Anfangswerte a: -> Prod. = Prod. + Mcand 2: Shifte Multiplikand nach links 3: Shifte Multiplikator nach rechts 2 a: -> Prod. = Prod. + Mcand 2: Shifte Multiplikand nach links 3: Shifte Multiplikator nach rechts 3 : -> Keine Operation nötig 2: Shifte Multiplikand nach links 3: Shifte Multiplikator nach rechts 4 : -> Keine Operation nötig 2: Shifte Multiplikand nach links 3: Shifte Multiplikator nach rechts Vorlesung Techn. Grundlagen der Informatik WS 8/9 E. Nett 27