Teil 2: Rechnerorganisation

Ähnliche Dokumente
Binäre Division. Binäre Division (Forts.)

Arithmetik. Zahlendarstellung, Addition und Subtraktion Multiplikation, Division, Fest- und Gleitkommazahlen

in vielen technischen und wissenschaftlichen Anwendungen erforderlich: hohe Präzision große Dynamik möglich durch Verwendung von Gleitkommazahlen

in vielen technischen und wissenschaftlichen Anwendungen erforderlich: hohe Präzision große Dynamik möglich durch Verwendung von Gleitkommazahlen

Arithmetik. Einführung in die Technische Informatik Falko Dressler, Stefan Podlipnig Universität Innsbruck

Algorithmen zur Division

Algorithmen zur Integer-Multiplikation

Grundlagen der Technischen Informatik Wintersemester 12/13 J. Kaiser, IVS-EOS

Zahlendarstellungen und Rechnerarithmetik*

Grundlagen der Rechnerarchitektur

Informationsmenge. Maßeinheit: 1 Bit. 1 Byte. Umrechnungen: Informationsmenge zur Beantwortung einer Binärfrage kleinstmögliche Informationseinheit

Arithmetik: Vorzeichenregeln und Überlauf, Exponenten & Normalisierung, Umrechnungen. Architektur: - Rechnerarchitektur, Instruktionssatz, Assembler

Computerarithmetik (1)

2.1.2 Gleitkommazahlen

Binäre Gleitkommazahlen

Zahlen in Binärdarstellung

3 Rechnen und Schaltnetze

Grundlagen der Betriebssysteme

bereits in A,3 und A.4: Betrachtung von Addierschaltungen als Beispiele für Schaltnetze und Schaltwerke

Zahlendarstellung und Rechnerarithmetik

Kapitel 2 Grundlegende Konzepte. Xiaoyi Jiang Informatik I Grundlagen der Programmierung

Musterlösung 2. Mikroprozessor & Eingebettete Systeme 1

Integrierte Schaltungen

Rechnergrundlagen SS Vorlesung

a) Da die Zahlen im IEEE-32Bit-Format dargestellt werden sollen, ist der Bias = 127.

Binärdarstellung von Fliesskommazahlen

Musterlösung 2. Mikroprozessor & Eingebettete Systeme 1

Das Maschinenmodell Datenrepräsentation

2 Darstellung von Zahlen und Zeichen

Das Rechnermodell - Funktion

Einführung in die Programmiertechnik

2 Repräsentation von elementaren Daten

Technische Informatik - Eine Einführung

Lösungen: zu 1. a.) b.) c.)

Kapitel 2. Zahlensysteme, Darstellung von Informationen

Multiplikation. Grundlagen der Rechnerarchitektur Logik und Arithmetik 79

Teil II. Schaltfunktionen

Leseprobe. Taschenbuch Mikroprozessortechnik. Herausgegeben von Thomas Beierlein, Olaf Hagenbruch ISBN:

Übungen zu Informatik 1

Technische Grundlagen der Informatik Kapitel 8. Prof. Dr. Sorin A. Huss Fachbereich Informatik TU Darmstadt

Zahlensysteme. Digitale Rechner speichern Daten im Dualsystem 435 dez = binär

Vorlesung Programmieren. Agenda. Dezimalsystem. Zahlendarstellung. Zahlendarstellung. Oder: wie rechnen Computer?

Kapitel 1. Zahlendarstellung. Prof. Dr. Dirk W. Hoffmann. Hochschule Karlsruhe w University of Applied Sciences w Fakultät für Informatik

Einführung in die Informatik I

1. Vorzeichen und Betrag (engl. Sign-/Magnitude) 2. Stellenkomplement 3. Basiskomplement

Lösung 1. Übungsblatt

Grundzüge der Informatik Zahlendarstellungen (7)

Grundlagen der Informatik 2 Grundlagen der Digitaltechnik. 1. Zahlensysteme

Computergrundlagen Zahlensysteme

Kapitel 2. Zahlensysteme

5 Verarbeitungsschaltungen

2 Rechnen auf einem Computer

Gleitkommaarithmetik. Erhöhen der Genauigkeit. Grundlagen der Rechnerarchitektur Logik und Arithmetik 124

Informationssysteme Gleitkommazahlen nach dem IEEE-Standard 754. Berechnung von Gleitkommazahlen aus Dezimalzahlen. HSLU T&A Informatik HS10

, 2015S Übungstermin: Mi.,

Musterlösung 1. Mikroprozessortechnik und Eingebettete Systeme 1 WS2015/2016

Grundstrukturen: Speicherorganisation und Zahlenmengen

Vertiefungsstoff zum Thema Darstellung von Zahlen

1. 4-Bit Binärzahlen ohne Vorzeichen 2. 4-Bit Binärzahlen mit Vorzeichen 3. 4-Bit Binärzahlen im 2er Komplement 4. Rechnen im 2er Komplement

Grundlagen der Technischen Informatik. 4. Übung

Einführung in die Systemprogrammierung

1. Das dekadische Ziffernsystem (Dezimalsystem) Eine ganze Zahl z kann man als Summe von Potenzen zur Basis 10 darstellen:

Rechnergrundlagen SS Vorlesung

Inhalt: Binärsystem 7.Klasse - 1 -

Grundlagen der Datenverarbeitung - Zahlensysteme

Dipl.-Ing. Halit Ünver Datenbanken/Künstliche Intelligenz FAW/n. Zahlensysteme

Programmieren. Kapitel 3: Wie funktioniert ein moderner Computer? Wintersemester 2008/2009. Prof. Dr. Christian Werner

2. Zahlendarstellung und Rechenregeln in Digitalrechnern

FH Jena Prüfungsaufgaben Prof. Giesecke FB ET/IT Binäre Rechenoperationen WS 09/10

12. Tutorium Digitaltechnik und Entwurfsverfahren

FH Jena Prüfungsaufgaben Prof. Giesecke FB ET/IT Binäre Rechenoperationen WS 11/12

Zahlen und Zeichen (1)

Rechnerarithmetik Ganzzahlen und Gleitkommazahlen Ac 2013

5. Übung: Binäres Rechnen und Fließkommazahlen Abteilung Verteilte Systeme, Universität Ulm

Rechnerstrukturen Winter WICHTIGE SCHALTNETZE. (c) Peter Sturm, University of Trier 1

Einführung in die Computerorientierte Mathematik

II. Grundlagen der Programmierung

2.5. Gleitkommaarithmetik

3. Datentypen, Ausdrücke und Operatoren

3 Arithmetische Schaltungen

Rechnerstrukturen WS 2012/13

Einstieg in die Informatik mit Java

Repräsentation von Daten: Binär-, Oktal- u. Hexadezimalcodierung von ganzen und rationalen Zahlen

Computergrundlagen Boolesche Logik, Zahlensysteme und Arithmetik

Grundlagen der Informatik I. Übung

Lektion 1: Von Nullen und Einsen _ Die binäre Welt der Informatik

7. Übung zur Vorlesung Grundlagen der Informatik

Repräsentation von Daten Binärcodierung ganzer Zahlen

Dezimalkomma (decimal point) rechts von Stelle mit Wertigkeit 100 nachfolgende Stellen haben Wertigkeit 10-1, 10-2, etc.

Grundlagen der Informatik I. Übung

Mikroprozessor als universeller digitaler Baustein

1 : Die Rechnungsarten

Informatik Übungsaufgaben

Computerarithmetik ( )

Lösungsvorschlag zu 1. Übung

Das negative Zweierkomplementzahlensystem

2.0 Zahlendarstellung, Konvertierungsalgorithmen und arithmetische Algorithmen

TOTAL DIGITAL - Wie Computer Daten darstellen

Tutorium Rechnerorganisation

Transkript:

Teil 2: Rechnerorganisation Inhalt: Zahlendarstellungen Rechnerarithmetik Mikroprogrammierung schrittweiser Entwurf eines hypothetischen Prozessors mit Daten-, Adreß- und Kontrollpfad Speicherorganisation 1 Zahlendarstellungen Zahlendarstellungen in positionaler Notation : n-stellige ganze Dezimalzahl x: x = (x n-1 x n-2... x 2 x 1 x 0 ) 10 = 10 n-1 x n-1 + 10 n-2 x n-2 +... + 10 1 x 1 + 10 0 x 0 mit x i {0,1,2,3,4,5,6,7,8,9} n-stellige ganze Binär- oder Dualzahl y: y = (y n-1 y n-2... y 2 y 1 y 0 ) 2 = 2 n-1 y n-1 + 2 n-2 y n-2 +... + 2 2 y 2 + 2 1 y 1 + 2 0 y 0 mit y i {0,1} 2 1

Zahlendarstellungen (Forts.) Allgemein: b-adisches Zahlensystem Jede natürliche Zahl z mit 0 z 2 n 1 ist eindeutig als n-stellige Zahl zur Basis b darstellbar: z = (z n-1 z n-2... z 2 z 1 z 0 ) b = b n-1 z n-1 + b n-2 z n-2 +... + b 2 z 2 + b 1 z 1 + b 0 z 0 mit Ziffer z i {0,1,2,...,b 1} Typische Werte für Basis b: b=2: Dualzahl b=8: Oktalzahl b=10: Dezimalzahl b=16: Hexadezimalzahl mit z i {0,1,2,...,9,A,B,C,D,E,F} 3 Zahlendarstellungen (Forts.) Verallgemeinerung für Festkommazahlen : Zahl zur Basis b mit k Vor- und m Nachkommastellen : z = (z k-1 z k-2... z 1 z 0, z -1 z -2... z -m ) b = b k-1 z k-1 + b k-2 z k-2 +... + b 2 z 2 + b 1 z 1 + b 0 z 0 + b -1 z -1 + b -2 z -2 +... + b -m z -m Ziffern z k-1 z k-2... z 1 z 0 stellen ganzzahligen Teil, Ziffern z -1 z -2... z -m stellen gebrochenen Teil von z dar gesamte Stellenzahl: n = k + m Ziffern 4 2

Zahlendarstellungen (Forts.) Darstellung positiver und negativer Zahlen in n Stellen: höchstwertige Ziffer z n-1 stellt das Vorzeichen dar (Zahl ist positiv bei z n-1 = 0, negativ bei z n-1 = b 1) für positive Zahl gilt stets: z = (0 z n-2 z n-3... z 1 z 0 ) b drei Möglichkeiten für negative Zahlen (mit z i = b 1 z i ): A) Vorzeichen und Betrag : z = (b 1 z n-2 z n-3... z 1 z 0 ) b B) (b 1)-Komplement : z = (b 1 z n-2 z n-3... z 1 z 0 ) b = b n 1 z C) b-komplement : z = (b 1 z n-2 z n-3... z 1 z 0 ) b +1 = b n z bei A und B hat die Zahl 0 zwei Darstellungen für Binärzahlen (d.h. für b=2) heißt B das Einerkomplement und C das Zweierkomplement 5 Zahlendarstellungen im Digitalrechner ausschließliche Verwendung von Binärzahlen Darstellung negativer Zahlen i.a. im Zweierkomplement Abbildung aller Zahlen auf Worte der Länge w, ggf. durch Ergänzung führender Vorzeichenbits typische Wortlängen: w = 8 (byte, in Mikroprozessoren der ersten Generation, wie z.b. Intel 8080 oder Z80) w = 16 (word / half word, in Minicomputern und Mikroprozessoren der zweiten Generation, wie z.b. PDP-11, Intel 8086, Motorola 68000) w = 32 (double word / word, in Mikroprozessoren der dritten Generation, wie z.b. Intel Pentium, Motorola 68040) w = 64 (quad word / double word, in aktuellen Hochleistungsprozessoren, wie z.b. PowerPC, Alpha 21264, UltraSPARC) 6 3

Binäre Addition Addition zweier positiver n-stelliger Binärzahlen a und b kann einfach spaltenweise durchgeführt werden: für Addition in letzter Spalte wird ein Halbaddierer benötigt, der aus a 0 und b 0 Summe s 0 und Übertrag (Carry) c 0 ermittelt: 7 Binäre Addition (Forts.) für Addition in Spalten 1 bis n wird ein Volladdierer benötigt, der Summe s i und Übertrag (Carry) c i aus den Eingangssignalen a i, b i und c i 1 ermittelt: 8 4

Binäre Addition (Forts.) paralleles binäres Addierwerk für zwei n-bit Worte: serielles binäres Addierwerk für zwei n-bit Worte: 9 Binäre Subtraktion Statt der Entwicklung eines eigenen Subtrahierwerkes ist es sinnvoller, für die binäre Subtraktion die gleiche Hardware wie für die Addition einzusetzen Idee: a b = a+( b) einfach bei Verwendung des Zweierkomplements für b: korrektes Ergebnis bei Unterdrückung des Überlaufs 10 5

Binäre Subtraktion (Forts.) Realisierung eines parallelen binären Addier-/Subtrahierwerkes (C=0 : Addition a+b, C=1: Subtraktion a b) (wirklicher) Überlauf nur bei c out c in im FA der Stelle n 1 11 Weitere Addierwerke Problem des parallelen binären n-bit Addierwerkes, das auch als Ripple Carry Adder (RCA) bezeichnet wird: Propagation des Carry Signals bis zur Stelle n 1 ist sehr langsam; max. Verzögerung: 2n t (mit t Gatterlaufzeit) alternative Addierwerke: Carry Look Ahead Addierer (CLA) Carry Select Addierer Carry Save Addierer (CSA) für m Summanden gemeinsam ist die Vermeidung der Propagation des Carry-Signals 12 6

Carry Look Ahead Addierer (CLA) Idee: a priori Berechnung der Carry-Signale c i für alle n Stellen für i-ten Volladdierer gilt: c i+1 = a i b i + (a i +b i )c i := G i + P i c i G i = a i b i gibt an, ob in Stelle i Carry-Signal erzeugt wird ( Generate ) P i = a i +b i gibt an, ob Stelle i das Carry-Signal propagiert (=1) oder nicht (=0) für die c i der ersten Stellen ergibt sich: c 1 = a 0 b 0 + (a 0 + b 0 )c 0 := G 0 + P 0 c 0 c 2 = G 1 + P 1 G 0 + P 1 P 0 c 0 c 3 = G 2 + P 2 G 1 + P 2 P 1 G 0 + P 2 P 1 P 0 c 0 c 4 = G 3 + P 3 G 2 + P 3 P 2 G 1 + P 3 P 2 P 1 G 0 + P 3 P 2 P 1 P 0 c 0 alle Signale c i lassen sich prinzipiell mit Gatterlaufzeit 2 t bestimmen, jedoch sind UND-Gatter mit max. i+1 Eingängen und ODER-Gatter mit max. i Eingängen nötig 13 Carry Look Ahead Addierer (Forts.) Beispiel: 4-Bit CLA Addierer Kaskadierung möglich durch Ausgangssignale G ( Block Generate ) und P ( Block Propagate ): G = G 3 + P 3 G 2 + P 3 P 2 G 1 + P 3 P 2 P 1 G 0, P = P 3 P 2 P 1 P 0 14 7

Carry Select Addierer In einem n-bit Carry Select Addierblock werden die Summenbits s n-1, s n-2,...,s 0 sowohl für c 0 = 0 als auch für c 0 =1 bestimmt und das Ergebnis über Multiplexer ausgewählt Beispiel: 4-Bit Carry Select Addierer 15 Carry Save Addierer (CSA) Baustein zur Realisierung eines mehrstufigen Addiernetzes für die Addition von m Binärzahlen Idee: Carry-Signale werden nicht propagiert, sondern erst bei Addition des nächsten Summanden berücksichtigt zur Addition von m Zahlen werden m 2 CSA-Bausteine benötigt ein RCA oder CLA-Addierer dient der Addition der noch verbleibenden Überträge 16 8

Binäre Multiplikation Multiplikation zweier 1-Bit Werte entspricht einer logischen UND-Verknüpfung 0 0=0, 0 1=0, 1 0=0, 1 1=1 Multiplikation zweier mehrstelliger Zahlen ist zurückführbar auf wiederholte bedingte Additionen und Schiebeoperationen (in einfachen Prozessoren wird daher oft auf Multiplizierwerke verzichtet) Multiplikation zweier positiver n-stelliger Zahlen a und b ergibt 2n-stelliges Produkt p 17 Multiplizierwerke Implementierungsvariante A serielle Multiplikation durch Addition und Rechtsschieben Register p = (ph, pl) doppelter Wortbreite zur Addition partieller Produkte durch Schieben von b wird nur Multiplikatorbit b 0 benötigt mit zwei n-bit Registern, einem 2n-Bit Register, einem n-bit Addierer und Steuerwerk direkt in Hardware implementierbar Multiplikation zweier n-bit Zahlen benötigt n Takte 18 9

Multiplizierwerke (Forts.) Implementierungsvariante B Idee: Implementierung des Multiplikationsschemas in Hardware ( multiplier array zur parallelen Multiplikation) max. Zeitverzögerung bei der Multiplikation zweier 4-Bit Zahlen: 15 t (mit Gatterlaufzeit t) max. Zeitverzögerung bei der Multiplikation zweier n-bit Zahlen: 2(2n 1)+1 t 19 Multiplizierwerke (Forts.) Implementierungsvariante C Idee: Addition der n Zeilen z i aus n n Bit Multiplikationsschema mit CSA-Bausteinen entweder als CSA-Kette oder CSA-Baum realisierbar max. Zeitverzögerung bei der Multiplikation zweier n-bit Zahlen (mit RCA am Ende): (2(n-2) + 4n) t [Kette] ~ (2 log 2 n + 4n) t [Baum] 20 10

Multiplizierwerke (Forts.) Implementierungsvariante D Idee: Herleitung eines Schaltnetzes aus Wahrheitstabelle eines n n Bit Multiplizieres Realisierung als ROM max. Zeitverzögerung bei der Multiplikation zweier n-bit Zahlen: 2 t Aufwand jedoch extrem hoch: ROM mit 2 2n 2n Bit nötig Alternative: Verwendung von k k Bit Multiplizierern im ROM und Addition der geschobenen partiellen Produkte 21 Binäre Multiplikation negativer Zahlen bislang Betrachtung ausschließlich positiver Multiplikatoren und Multiplikanden Was passiert bei negativen im Zweierkomplement kodierten n-bit Multiplikatoren und n-bit Multiplikanden? a b = a (2 n b) = a 2 n a b (statt 2 n a b) a b = (2 n a) b = b 2 n a b (statt 2 n a b) a b = (2 n a) (2 n b) = 2 2n a 2 n b 2 n + a b (statt [2 2n ]+ a b) ohne besondere Maßnahme (Addition von Korrekturtermen) liefert binärer Multiplizierer falsche Ergebnisse! Alternative: Trennung von Vorzeichen und Betrag und separate Generierung des korrekten Vorzeichens ( hoher Aufwand) 22 11

Multiplizierer nach Booth Idee: Vereinfachung der Multiplikation mit einer 1-Folge im Multiplikator, z.b.: a 001110 = a 010000 a 000010 Analyse zweier benachbarter Bits b i und b i-1 im Multiplikator: Addition von a 2 i bei (b i b i-1 ) = 01 Addition von a 2 i bei (b i b i-1 ) = 10 (im Zweierkomplement, ergänzt) keine Addition bei (b i b i-1 ) = 00 oder (b i b i-1 ) = 11 Ergänzung von b -1 = 0 erforderlich Beispiele: 23 Multiplizierer nach Booth (Forts.) Multiplikation nach Booth funktioniert für beliebige positive und negative Multiplikanden und Multiplikatoren Algorithmus für serielle Multiplikation nach Booth mit doppelt breitem Schieberegister p: parallele Multiplikation nach Booth und schnelle Addition der resultierenden Zeilen des Multiplikationsschemas mittels Wallace-Baum ist in den meisten modernen Prozessoren implementiert (jedoch häufig ergänzt mit Registern zwischen manchen Stufen zur des Durchsatzes, auch als pipelined multiplier bezeichnet) 24 12

Binäre Division Umkehrung der Multiplikation: Berechnung von q = a/b durch wiederholte bedingte Subtraktionen und Schiebeoperationen in jedem Schritt wird Divisor b testweise vom Dividenden a subtrahiert: q i = 1, falls a b > 0 q i = 0 und Korrektur durch a = a + b, falls a b < 0 Beispiel: 103 10 / 9 10 = 11 10 mit Rest 4 10 25 Binäre Division (Forts.) serieller Algorithmus zur Division zweier n-bit Zahlen a und b: mit einem n-bit Register b, einem 2n-Bit Register q, einem n-bit Addierer/Subtrahierer direkt in Hardware implementierbar nach n Schritten befindet sich der Quotient q in ql, der Rest in qh in aktuellen Prozessorarchitekturen eingesetzte Divisionsverfahren: iterative Approximation (durch Multiplikation und Addition) SRT Algorithmus (simultane tabellenbasierte Generierung mehrerer Quotientenbits) 26 13

Gleitkommazahlen in vielen technischen und wissenschaftlichen Anwendungen erforderlich: hohe Präzision und Genauigkeit große Dynamik möglich durch Verwendung von Gleitkommazahlen allgemeine Gleitkommazahl zur Basis r ( radix ) definiert durch x = a r e mit Argument oder Mantisse a Exponent oder Charakteristik e eine Gleitkommazahl x 0 zur Basis r heißt normalisiert, wenn für die Mantisse a gilt: 1/r a < 1 27 Binäre Gleitkommazahlen Verwendung der Basis 2, d.h. eine binäre Gleitkommazahl x ist definiert durch x = a 2 e mit m-stelliger Mantisse a und p-stelligem Exponent e eine binäre Gleitkommazahl x 0 heißt normalisiert, wenn das höchstwertige Mantissenbit den Wert 1 hat zwei Interpretationen: 1.XXXXXXX und [0].1XXXXXX häufig Darstellung des Exponenten mit Bias b: x = a 2 e b Wahl von b = 2 p 1 1 bewirkt Transformation des Bereiches für den Exponenten e von 0... 2 p 1 in (2 p 1 1)... 2 p 1 einfache Kodierung positiver und negativer Exponenten 28 14

Binäre Gleitkommazahlen (Forts.) Mantisse und Exponent können positiv und negativ sein viele Variationsmöglichkeiten bei der Definition eines Formates zur Kodierung binärer Gleitkommazahlen: 1) Wahl der Gesamtwortbreite n 2) Wahl vom m und p = n m 3) Wahl einer Reihenfolge von a und e 4) Darstellung der Mantisse im Einerkomplement, im Zweierkomplement oder mittels Vorzeichen und Betrag 5) Darstellung des Exponenten im Einer- oder Zweierkomplement, mittels Vorzeichen und Betrag oder durch Subtraktion eines Bias früher unterschiedliches Gleitkommaformat in jedem Prozessor, heute überwiegend Verwendung des IEEE 754 Standard 29 IEEE 754 Standard allgemeine Definition: x = ( 1) s 1.f 2 e b Mantisse aus Vorzeichen s und normalisiertem Betrag a = 1.f im Bereich 1.00..00 bis 1.11..11 (1 vor dem Komma wird nicht kodiert erhöhte Präzision) Aufbau einer n-bit IEEE Gleitkommazahl: p-stelliger Exponent mit Bias b = 2 p 1 1, gültiger Exponent e nur im Bereich e min = 0 < e < e max = 2 p 1 = 2b+1 darstellbarer Zahlenbereich: ± 2 1 b... (2 2 m ) 2 b 30 15

IEEE 754 Standard (Forts.) 3 verschiedene Formate spezifiziert: single precision double precision quad precision n 32 64 128 m 23 52 112 s 1 1 1 p 8 11 15 e min 0 0 0 e max 255 2047 32767 b 127 1023 16383 x min 2 126 10 38 2 1022 10 308 2 16382 10 4932 x max (2 2 23 ) 2 127 10 38 (2 2 52 ) 2 1023 10 308 (2 2 112 ) 2 16383 10 4932 31 IEEE 754 Standard (Forts.) e = e min = (00..00) 2 und e = e max = (11..11) 2 werden zur Kodierung besonderer Zahlen verwendet: x = +0 ( positive Zero ): e = 0, f = 0, s = 0 x = 0 ( negative Zero ): e = 0, f = 0, s = 1 x = + ( positive Infinity ): e = e max, f = 0, s = 0 x = ( negative Infinity ): e = e max, f = 0, s = 1 x = NaN ( Not a Number ): e = e max, f 0, s beliebig x = ( 1) s 0.f 2 1 b ( Denormalized Number ): e = 0, f 0 Denormalisierte Gleitkommazahlen ermöglichen die Darstellung sehr kleiner Werte im Bereich 2 1 b m... 2 1 b 32 16

Multiplikation von Gleitkommazahlen Algorithmus zur Multiplikation zweier IEEE-Gleitkommazahlen x = ( 1) s a 2 α bias und y = ( 1) t b 2 β bias : 1) Multipliziere Mantissen: c = a b a=1.f a und b=1.f b haben m+1 Stellen c hat 2m+2 Stellen! 2) Addiere Exponenten: γ = α + β bias 3) Berechne Vorzeichen des Produktes: u = s t 4) Normalisiere Ergebnis z = ( 1) u c 2 γ-bias a) Falls c 2, schiebe c um 1 nach rechts und inkrementiere γ b) Schiebe c um 1 nach links c) Setze c = 1.f c = (c 2m+1 c 2m c 2m 1... c m+1 ), ggf. mit Rundung 5) Behandlung von Sonderfällen: a) Überlauf, falls γ 2 p 1 z := + oder z := (bei u = 0 bzw. 1) b) Unterlauf, falls γ < 1 Denormalisierung durchführen c) Zero, falls c = 0 z := 0 33 Addition/Subtraktion von Gleitkommazahlen Algorithmus zur Addition/Subtraktion zweier Gleitkommazahlen x = ( 1) s a 2 α bias und y = ( 1) t b 2 β bias im IEEE Format: 1) Sortiere x und y derart, daß x die Zahl mit kleinerem Exponenten ist 2) Anpassung der Exponenten: Transformiere x in die Gleitkommazahl x = ( 1) s a 2 β bias durch Rechtsschieben von a um β α Bitstellen 3) Addiere/Subtrahiere Mantissen: a) Falls nötig, bilde Zweierkomplement von a oder b b) Berechne c = a + b bzw. c = a + ( b) c) Falls c < 0, setze Vorzeichenbit u = 1 und bilde Zweierkomplement 4) Normalisiere Ergebnis z = ( 1) u c 2 β bias a) Falls c 2, schiebe c nach rechts (ggf. Rundung) und inkrementiere β b) Falls c < 1, schiebe c nach links und dekrementiere β c) Wiederhole a) bzw. b), bis 1 c < 2 oder c = 0 5) Behandlung von Sonderfällen (Überlauf?, Unterlauf?, c = 0? ) 34 17