Teil 2: Rechnerorganisation

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

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

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

Algorithmen zur Integer-Multiplikation

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

Zahlendarstellungen und Rechnerarithmetik*

Grundlagen der Rechnerarchitektur

Computerarithmetik (1)

Grundlagen der Betriebssysteme

3 Rechnen und Schaltnetze

Binäre Gleitkommazahlen

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

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

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

Musterlösung 2. Mikroprozessor & Eingebettete Systeme 1

Binärdarstellung von Fliesskommazahlen

Das Maschinenmodell Datenrepräsentation

2 Darstellung von Zahlen und Zeichen

Das Rechnermodell - Funktion

Kapitel 2. Zahlensysteme, Darstellung von Informationen

Musterlösung 2. Mikroprozessor & Eingebettete Systeme 1

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

Teil II. Schaltfunktionen

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

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

Einführung in die Informatik I

Übungen zu Informatik 1

Technische Informatik - Eine Einführung

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

Lösung 1. Übungsblatt

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

Grundlagen der Technischen Informatik. 4. Übung

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

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

2 Rechnen auf einem Computer

Grundlagen der Informatik 2 Grundlagen der Digitaltechnik. 1. Zahlensysteme

Rechnerarithmetik Ganzzahlen und Gleitkommazahlen Ac 2013

Inhalt: Binärsystem 7.Klasse - 1 -

2. Zahlendarstellung und Rechenregeln in Digitalrechnern

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

Zahlen und Zeichen (1)

Grundstrukturen: Speicherorganisation und Zahlenmengen

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

Einstieg in die Informatik mit Java

Vertiefungsstoff zum Thema Darstellung von Zahlen

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

Rechnerstrukturen WS 2012/13

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

Computergrundlagen Boolesche Logik, Zahlensysteme und Arithmetik

3 Arithmetische Schaltungen

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

Repräsentation von Daten Binärcodierung ganzer Zahlen

1 : Die Rechnungsarten

2.0 Zahlendarstellung, Konvertierungsalgorithmen und arithmetische Algorithmen

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

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

TOTAL DIGITAL - Wie Computer Daten darstellen

Mikroprozessor als universeller digitaler Baustein

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

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

Fehler in numerischen Rechnungen

Computerarithmetik ( )

1. Grundlagen der Informatik Zahlensysteme und interne Informationsdarstellung

Zahlensysteme. Formale Methoden der Informatik WiSe 2010/2011 Folie 1 (von 71)

Alexander Halles. Zahlensysteme

Thema 2. Digtale Logik und wie der Computer rechnet

Grundlagen der Informatik

Daten, Informationen, Kodierung. Binärkodierung

BSZ für Elektrotechnik Dresden. Zahlenformate. Dr.-Ing. Uwe Heiner Leichsenring

Repräsentation von Daten Binärcodierung von rationalen Zahlen und Zeichen

Information in einem Computer ist ein

Einführung in Informatik 1

Die Umwandlung einer Dualzahl in eine Dezimalzahl ist ein sehr einfacher Vorgang.

Rechnerarithmetik. Vorlesung im Sommersemester Eberhard Zehendner. FSU Jena. Thema: Ripple-Carry- und Carry-Skip-Addierer

Technische Informatik I

Grundlagen der Informatik

Zahlensysteme Seite -1- Zahlensysteme

Aufbau und Funktionsweise eines Computers

Rechnenund. Systemtechnik

Hochschule Fakultät Technologie und Management Informationsverarbeitung Ravensburg-Weingarten Vorlesung zur Datenverarbeitung 1 Zahlensysteme Inhalt

Zur Universalität der Informatik. Gott ist ein Informatiker. Die Grundordnung der Welt läßt sich mathematisch formulieren:

Mikrocomputertechnik. Einadressmaschine

Black Box erklärt Zahlensysteme.

2. Negative Dualzahlen darstellen

N Bit binäre Zahlen (signed)

Eine Logikschaltung zur Addition zweier Zahlen

Technische Informatik I

Informatik II. Kodierung. Kodierung. Kodierung Kodierung. Rainer Schrader. 24. Oktober Ein Alphabet Σ ist eine endliche Menge.

Prinzip 8 der von-neumann Architektur: (8) Alle Daten werden binär kodiert

11/2/05. Darstellung von Text. ASCII-Code. American Standard Code for Information Interchange. Parity-Bit. 7 Bit pro Zeichen genügen (2 7 = 128)

11/2/05. Darstellung von Text. ASCII-Code. American Standard Code for Information Interchange. ASCII-Tabelle. Parity-Bit. Länderspezifische Zeichen

Praktikum Grundlagen der Elektronik

Übungsaufgaben. - Vorgehensweise entsprechend dem Algorithmus der schriftlichen Multiplikation

Mikro-Controller-Pass 1

Zahlensysteme: Oktal- und Hexadezimalsystem

Leitung 1 Leitung

EIN NEUES KAPITEL: SPEICHERUNG UND INTERPRETATION VON INFORMATION

Informationsdarstellung im Rechner

2 Einfache Rechnungen

Gleitkomma-Arithmetik führt zu ungenauen Ergebnissen in Excel

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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