Zahlendarstellung und Rechnerarithmetik

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

bei Unterlauf wird stattdessen Hälfte des Divisors addiert Ersparnisse einer Addition bzw. Subtraktion

Teil 2: Rechnerorganisation

Teil 2: Rechnerorganisation

Schaltnetz zur Addition n-bit langer Summanden. a 2 b 2. s 2

G , Franz J. Hauck, Verteilte Systeme, Univ. Ulm, [2005s-TI1-G-Arith.fm, ]

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

E Zahlendarstellungen und Rechnerarithmetik

6. Zahlendarstellungen und Rechnerarithmetik

G Zahlendarstellung und Rechnerarithmetik

Zahlen im Computer (Klasse 7 Aufbaukurs Informatik)

Rechnerstrukturen, Teil 1

1. Grundlegende Konzepte der Informatik

Vorlesung Programmieren

Inhalt. Zahlendarstellungen

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

Das Verfahren in Hardware

Zahlendarstellungen und Rechnerarithmetik*

Computerarithmetik (6a)

Multiplikation. Grundlagen der Rechnerarchitektur Logik und Arithmetik 79

N Bit Darstellung von Gleitkommazahlen

Zahlen in Binärdarstellung

Grundlagen der Rechnerarchitektur

Kapitel 5: Darstellung von Daten im Rechner

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

Übung Programmieren - Zahlendarstellung, SSH, SCP, Shellskripte -

Lösungsvorschlag 4. Übung Technische Grundlagen der Informatik II Sommersemester 2009

Wertebereiche, Overflow und Underflow

Rechnerstrukturen, Teil 1. Vorlesung 4 SWS WS 14/15

5 Zahlenformate und deren Grenzen

Zahlensysteme und Kodes. Prof. Metzler

Rechnerstrukturen, Teil 1. Vorlesung 4 SWS WS 14/15

Der Zahlenformatstandard IEEE 754

Wandeln Sie die folgenden Zahlen in Binärzahlen und Hexadezimalzahlen. Teilen durch die Basis des Zahlensystems. Der jeweilige Rest ergibt die Ziffer.

Grundlagen der Technischen Informatik. 4. Übung

Grundlagen der Technischen Informatik. 4. Übung

B: Basis des Zahlensystems 0 a i < B a i є N 0 B є (N > 1) Z = a 0 B 0 + a 1 B 1 + a 2 B a n-1 B n-1

Rückblick. Zahlendarstellung zu einer beliebigen Basis b. Umwandlung zwischen Zahlendarstellung (214) 5 = (278) 10 =(?) 8

Informatik I Modul 5: Rechnerarithmetik (2)

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

Übungen zur Vorlesung Technische Informatik I, SS 2001 Strey / Guenkova-Luy / Prager Übungsblatt 4 Zahlendarstellung/Rechenarithmetik/Rechenwerke

Grundlagen der Programmierung

Rechnergrundlagen SS Vorlesung

Kapitel 2. Zahlensysteme

Binäre Division. Binäre Division (Forts.)

Grundlagen der Technischen Informatik. 3. Übung

Inhaltsangabe 3.1 Zahlensysteme und Darstellung natürlicher Zahlen Darstellung ganzer Zahlen

Grundlagen der Technischen Informatik. 3. Übung

2 Repräsentation von elementaren Daten

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

Rechnerstrukturen. Michael Engel und Peter Marwedel SS TU Dortmund, Fakultät für Informatik

Rechnerstrukturen. Michael Engel und Peter Marwedel WS 2013/14. TU Dortmund, Fakultät für Informatik

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

Motivation 31. Mai 2005

Die Zahl ist: (z 2, z 1, z 0 ) (z ) : 7 = 0 Rest z 2

Einführung in die Informatik I

2.1.2 Gleitkommazahlen

Rechnerstrukturen WS 2012/13

Rechnergrundlagen SS Vorlesung

, 2014W Übungstermin: Fr.,

Grundlagen der Betriebssysteme

Rechnergrundlagen SS Vorlesung

Grundlagen der Technischen Informatik. 3. Übung

2 Darstellung von Zahlen und Zeichen

Grundlagen der Technischen Informatik. 3. Übung. Christian Knell Keine Garantie für Korrekt-/Vollständigkeit

, 2017S Übungstermin: Di.,

Basisinformationstechnologie I

Grundlagen der Technischen Informatik. 4. Übung

There are only 10 types of people in the world: those who understand binary, and those who don't

Computerarithmetik (1)

1. Tutorium Digitaltechnik und Entwurfsverfahren

mit 0 z 0 b 1 und 0 ẑ b n 1 1. Nach Induktionsannahme besitzt ẑ eine Darstellung der Länge n 1 zur Basis b. Damit ist

Computergrundlagen Zahlensysteme

Zahlendarstellungen und Rechnerarithmetik*

GTI ÜBUNG 12. Komparator und Addierer FRIEDRICH-ALEXANDER UNIVERSITÄT ERLANGEN-NÜRNBERG JAN SPIECK 1

Rechnerstrukturen, Teil 1. Vorlesung 4 SWS WS 15/16

Einführung in die Informatik

Einführung in die Informatik

Zwischenklausur Informatik, WS 2016/17. Lösungen zu den Aufgaben

6.2 Kodierung von Zahlen

Rechnergrundlagen SS Vorlesung

Multiplizierer. Beispiel komplexer arithmetischer Schaltung. Langsamer als Addition, braucht mehr Platz. Sequentielle Multiplikation

3.1 Schaltungselemente 129. b) Tragen Sie in nachfolgende Abbildung die Realisierung eines 1 Bit 4-auf-1 Multiplexers aus Logikgattern ein.

IEEE 754 Encoding. Wie stellt man im IEEE 754 Format eigentlich die 0 dar!? Double Precision (Bias=1023)

Computerarithmetik (1)

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

01 - Zahlendarstellung

Grundlagen der Technischen Informatik. 4. Übung

Grundlagen der Technischen Informatik. 4. Übung

Übung Praktische Informatik II

Informatik I Modul 2: Rechnerarithmetik (1)

Modul 2: Rechnerarithmetik (1) Informatik I. Modul 2: Rechnerarithmetik (1) Rechnerarithmetik. Formale Grundlagen. Zahlensysteme (1) Zahlensysteme (2)

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

Binäre Darstellung ganzer Zahlen

Transkript:

G G.1.1 Inhaltlich Zahlendarstellung: lesbare ASCII Zeichenkette, ganzzahliger Integer, Gleitkommazahl, Festkommazahl. Arithmetik: Vorzeichenregeln, Exponenten, Vorzeichen, Überlauf. Zahlendarstellung und Rechnerarithmetik Digitaltechnik G.1 Einordnung Höhere Informatik Systemprogrammierung Architektur Rechnerarithmetik: - Zahlendarstellung, Operatoren,.. Digitale Schaltungen: - mit/ohne Zustand, Zähler, ALU, logische Arrays, Optimierung Digitale Logik: - Gatter, digitale Signale, Signalausbreitung... I J K H G F C D Elektronik: - Strom & Spannung, Transistoren, Schaltkreisintegration E 1 Technische Informatik I, Sommer 2006, P. Schulthess, F. Hauck, VS Informatik, Uni Ulm

G.2.1 Positive ganze Zahlen G.2 Zahlendarstellung Positionale Zahlendarstellung: Der Stellenwert ergibt sich aus der Position einer Ziffer und der Basis der Darstellung, Jede Ziffer wird mit ihrem Stellenwert multipliziert, Ziffernvorrat z.b. von 0 bis 9. Dezimalsystem: Basis des Zahlensystemes ist 10, n-stellige Dezimalzahl: 4753 = (4, 7, 5, 3) 10 = 4 10 3 + 7 10 2 + 5 10 1 + 3 10 0 Allgemeiner: häufig Binär-, Oktal- und Hexadezimalzahlen, Basis B aus { 2, 8, 10, 16}, Ziffernalphabet: { 0, 1... 9, A, B,... F}, einzelne Ziffern Z 0.. Z n-1, n-stellige Zahl: ( Z n-1,... Z 1, Z 0 ) B = Z n-1 B n-1... + Z 2 B 2 + Z 1 B 1 0 + Z 0 B 2 Technische Informatik I, Sommer 2006, P. Schulthess, F. Hauck, VS Informatik, Uni Ulm

G.2.2 Umwandlung zwischen Zahlendarstellungen Wir rechnen am liebsten im 10er-System. Computer bevorzugen das Binärsystem. Rechnen im Ursprungssystem: Basis des Zielsystems als Divisor, Divisionsreste sind die Ziffern, Fortgesetzte Division, zum Beispiel 19 10 =>??? 2 19 : 2 = 9 Rest 1 "least significant digit" 9 : 2 = 4 Rest 1 4 : 2 = 2 Rest 0 2 : 2 = 1 Rest 0 1 : 2 = 0 Rest 1 "most significant digit" => ( 1,0,0, 1, 1) 2 = 10011 2 3 Technische Informatik I, Sommer 2006, P. Schulthess, F. Hauck, VS Informatik, Uni Ulm

Rechnen im Zielsystem: Berechnen der Stellenwerte in aufsteigender Folge, höchsten Stellenwert subtrahieren, wenn möglich, evtl. niedrigere Stellenwerte subtrahieren zum Beispiel AFFE17 16 =>?????? 10 Position Stellenwert10 Ziffer16 "Ziffer"10 Summand10 0 1 7 7 7 1 16 1 1 16 2 256 E 14 3 584 3 4096 F 15 61 440 4 65536 F 15 983 040 5 1048576 A 10 10 485 760 Summe = 11 533 84710 4 Technische Informatik I, Sommer 2006, P. Schulthess, F. Hauck, VS Informatik, Uni Ulm

G.2.3 Positive ganze Zahlen im Rechner - "Unsigned Integer" Zifferndarst. als Binärzahl: FlipFlop speichert eine Binärstelle, Register speichert eine Binäerzahl, hier vorläufig ohne Vorzeichen, Unterschiedliche Wortbreite, Je nach Rechner & Sprache, Bit(), byte(8), short(16), int(32), long(64)....... 101 01100101 01100101 01100101 01100101 Zifferndarstellung als BCD-Zahl: englisch = Binary Coded Decimal, nur Ziffern zwischen 0 und 9, 4 Bit pro Ziffer. Zifferndarstellung als ASCII-Zeichen: 8 Bit bzw. 1 Byte pro Ziffer, bis zu 256 verschiedene Buchstabencodes, textuelle Darstellung, unpraktisch zum Rechnen. 1 6 7 '1' '6' '7' 5 Technische Informatik I, Sommer 2006, P. Schulthess, F. Hauck, VS Informatik, Uni Ulm

G.3 Binäre Addition G.3.1 Begrenzte Registerbreite und Übertrag Schriftliche Addition wie beim Dezimalsystem: binär: 10011+1001 = 11100 => dezimal: 19+9 = 28 Vorzeichenlose Addition mit 4-Bit Registern: Die Operanden passen in die Register, nicht jedoch das Ergebnis nicht immer, Ergebniswert wird abgeschnitten und damit verfälscht, binär: 1011+1001 = (1) 0100 => dezimal: 11 + 9 = 20 = 4 + 16 10011 +1001 11 Übertrag/Carry 11100 1011 +1001 1 11 Overflow 0100 NB: Dies gilt so nur für Zahlen ohne Vorzeichenbit! (siehe später) 6 Technische Informatik I, Sommer 2006, P. Schulthess, F. Hauck, VS Informatik, Uni Ulm

G.3.2 Halbaddierer Zwei Eingänge: Von jedem Operanden je eine Binärstelle, Zwei Ausgänge: c, carry: Übertrag auf nächste Stelle, s, sum: aktuelle Binärstelle des Ergebnisses. a b HA c s Schaltung mit XOR-Gatter: c = a b s =!a b + a!b = a b a c Wahrheitstabelle dazu: a b s c b s 0 0 0 0 0 1 1 0 1 0 1 0 1 1 0 1 7 Technische Informatik I, Sommer 2006, P. Schulthess, F. Hauck, VS Informatik, Uni Ulm

G.3.3 Volladdierer - Blockschaltbild Drei Eingänge: a, b: Von jedem Operanden je eine Binärstelle, cin: Übertrag von den niedrigerwertigen Binärstellen. Zwei Ausgänge: cout, carry: Übertrag auf nächste Stelle. s, summe: aktuelle Binärstelle vom Ergebnis. Blockschaltbild - summarisch: a b c in VA bzw. FA c out s 8 Technische Informatik I, Sommer 2006, P. Schulthess, F. Hauck, VS Informatik, Uni Ulm

G.3.4 Volladdierer - Schaltungsaufbau, Wahrheitstabelle Aufbau aus 2 Halbaddierern: Alternativ als nur zweistufiges Schaltnetz, damit geringere Gatterlaufzeiten, Entwurf mit Mintermen... a b c in ha1 C S ha2 C S c out s Wahrheitstabelle: a b c in s ha1 c ha1 c ha2 s c out 0 0 0 0 0 0 0 0 0 1 0 1 0 0 1 0 1 0 0 1 0 0 1 0 1 1 0 0 1 0 0 1 0 0 1 0 0 0 1 0 0 1 1 1 0 1 0 1 1 0 1 1 0 1 0 1 1 1 1 0 1 0 1 1 9 Technische Informatik I, Sommer 2006, P. Schulthess, F. Hauck, VS Informatik, Uni Ulm

G.3.5 Paralleles Addierwerk Schaltnetz zur Addition n-bit langer Summanden: Übertrag als Ripple-Carry: lange Laufzeiten für den Carry, da alle Stufen durchlaufen werden, Verzögerung für Carry: T = 2n t 10 Technische Informatik I, Sommer 2006, P. Schulthess, F. Hauck, VS Informatik, Uni Ulm

G.3.6 Serielles Addierwerk Synchrones Schaltwerk zur Addition n-bit langer Summanden: Je ein Schieberegister für Summanden und Ergebnis. Pro Takt wird jeweils eine Binärstelle addiert. Carry Flip-Flop initialiseren. 11 Technische Informatik I, Sommer 2006, P. Schulthess, F. Hauck, VS Informatik, Uni Ulm

G.3.7 Carry-Look-Ahead Addierwerk Beschleunigte Addition: Seriellen Durchlauf der Überträge vermeiden. Grundidee: Übernächste Überträge aus niedrigeren Eingängen berechnen. Carry i+1 = ai bi + (ai + bi) ci = Gi + Pi ci wobei : Gi = ai bi angibt ob die Stelle i einen Carry generiert (Generate) wobei : Pi = ai + bi angibt ob die Stelle i einen Carry weitergeben müsste, falls die vorherige Stufe einen Carry liefert (Propagate) Schaltfunktionen für die Überträge: Carries substituieren! c 1 = G0 + P0 c0 c 2 = G1 + P1 c1 = G1 + P1 G0 + P1 P0 c0 c 3 = G2 + P2 G1 + P2 P1 c1 = G2 + P2 G1 + P2 P1 G0 + P2 P1 P0 c0 =... 12 Technische Informatik I, Sommer 2006, P. Schulthess, F. Hauck, VS Informatik, Uni Ulm

G.3.8 Carry-Look-Ahead Schaltung Schaltungsaufwand: max. Anzahl der Gattereingänge hängt von der Breite des Addierers ab, Berechnung der Überträge mit maximal 2 Gatterlaufzeiten möglich. Kaskadierung möglich: reduz. Schaltungsaufwand. pro CLA-Addierer nur 4 t Verzögerung. 13 Technische Informatik I, Sommer 2006, P. Schulthess, F. Hauck, VS Informatik, Uni Ulm

G.3.9 Carry-Select Addierer Grundidee zur Beschleunigung der Addition: nicht auf das Carry des niederwertigen Blocks warten, beide Ergebnisse berechnen und später selektieren. Nachgeschalteter Multiplexer selektiert Endergebnis. 14 Technische Informatik I, Sommer 2006, P. Schulthess, F. Hauck, VS Informatik, Uni Ulm

G.3.10 Carry-Save Addierer Mehr als zwei Summanden: Überträge aus ersten Addition in der folgenden Addition berücksichtigt. keine Weitergabe der Überträge in der laufenden Addition, zum Beispiel für Vektoradditionswerk. Beispiel: 4-Bit CSA für vier Summanden 15 Technische Informatik I, Sommer 2006, P. Schulthess, F. Hauck, VS Informatik, Uni Ulm

G.4 Binäre Subtraktion Subtrahierer kann ähnlich wie Addierer entwickelt werden. Verwendung von Addierern zur Subtraktion: a b = a + (-b) G.4.1 Darstellung negativer Zahlen Vorzeichen und Betrag: ein Bit repräsentiert Vorzeichen, andere Bits repräsentieren Betrag der Zahl. Beispiel: 010012 = +9 110012 = 9 Nachteil: Vorzeichen muss für Berechnungen ausgewertet werden. 16 Technische Informatik I, Sommer 2006, P. Schulthess, F. Hauck, VS Informatik, Uni Ulm

G.5 Einerkomplement-Darstellung Berechnung des Einerkomplements eines Wertes W bei n Ziffern Komplement C = (2 n 1) W = 111...1 2 W 2 (bei n Ziffern/Bits) Komplement C entspreche dem Wert W. Darstellung positiver ganzer Zahlen: höherwertigste Ziffer z n-1 = 0, andere Ziffern beliebig, Wert: ( z n-1,... z 1, z 0 ) 2 = i Σ z i 2 i Darstellung negativer ganzer Zahlen: höherwertigste Ziffer c n-1 = 1, andere Ziffern c als Komplement der Ziffern der positiven Zahl, Wert: ( c n-1,... c 2, c 1, c 0 ) 2 = (-2 n-1 +1) + i Σ c i 2 i ( 1, 0, 0, 1 ) 2 = (-2 n-1 +1) + ( 0 2 2 + 0 2 1 + 1 2 0 ) = -6 17 Technische Informatik I, Sommer 2006, P. Schulthess, F. Hauck, VS Informatik, Uni Ulm

G.5.1 Einerkomplement - Zahlenbereich Beispiel: Darstellungslänge n=4 kleinste negative Zahl: 10002 = -2 3 +1 = -7 größte negative Zahl: 11112 = -2 3 +1+7 = 0 Nachteil: Null hat zwei unterschiedliche Darstellungen, Schwierigkeit beim Testen auf Null, "positive Null": 0000 (Länge 4) "negative Null": 1111 (Länge 4) Vorteil der Einerkomplement-Darstellung: einfache Umwandlung zwischen positiven und negativen Zahlen, jede Ziffer wird für sich allein invertiert (kein Carry, c i = 1-z i ), Beispiel: aus 10002 wird 01112 (aus 7 wird 7) Zahlengerade: 1000 2 = -2 n-1+ 1 = -7-0 +0 +7 = 0111 2 = 2 n-1-1 18 Technische Informatik I, Sommer 2006, P. Schulthess, F. Hauck, VS Informatik, Uni Ulm

G.5.2 Sonderfälle beim Übergang zwischen Bereichsgrenzen Einfache binäre Addition innerhalb eines Vorzeichenbereiches: -2 n-1+ 1-0 +0 2 n-1-1 + = = - Überlauf/Bereichsüberschreitung falls Vorzeichen wechselt trotzdem Operanden ursprünglich mit gleichem Vorzeichen (Overflow): 0100+0100!= 1000 (Bereichsüberschreitung am oberen Ende), 1011+1001!= 0100 + Carry-Out (Überschreitung im Negativen) Bei ungleichen Vorzeichen ist ein Überlauf unmöglich: ev. Carry-Out bei der Einerstelle des Resultates draufaddieren, 0001+1101=1110 (kein Carry-Out), 0011+1101=0001 (mit CarryOut). Subtraktion erfolgt durch Addieren des Komplementes. 1101 0011 1 0000 1 0001 19 Technische Informatik I, Sommer 2006, P. Schulthess, F. Hauck, VS Informatik, Uni Ulm

G.5.3 Schema eines Addierers im Einerkomplement Einerkomplement heute kaum mehr gebräuchlich. Einsatz von leicht modifizierten Standardaddierern für Zahlen in Einerkomplement-Darstellung: Rückführen und Aufaddieren des Carry-Out Signales, Festellen der Überlauffehler-Kondition (fehlt hier): 20 Technische Informatik I, Sommer 2006, P. Schulthess, F. Hauck, VS Informatik, Uni Ulm

G.6.1 Komplementierung G.6 Zweierkomplement-Darstellung Berechnung des Zweierkomplements eines Wertes W bei n Ziffern Einerkomplement bilden und dann eins addieren, Komplement C = 2 n W = 1+ 111...1 2 W (bei n Ziffern/Bits) Komplement C entspreche dem Wert W. Darstellung positiver ganzer Zahlen: höherwertigste Ziffer z n-1 = 0, andere Ziffern beliebig, Wert: ( z n-1,... z 1, z 0 ) 2 = i Σ z i 2 i Darstellung negativer ganzer Zahlen höherwertigste Ziffer c n-1 = 1, andere Ziffern c als Komplement der Ziffern der positiven Zahl, Wert: ( c n-1,... c 2, c 1, c 0 ) 2 = -2 n + i Σ c i 2 i ( 1, 0, 0, 1 ) 2 = -2 n + ( 0 2 2 + 0 2 1 + 1 2 0 ) = -6 21 Technische Informatik I, Sommer 2006, P. Schulthess, F. Hauck, VS Informatik, Uni Ulm

G.6.2 Zweierkomplement - Zahlenbereich Beispiel: Darstellungslänge n=4: aus 10012 wird 01102 und dann 01112 (aus 7 wird 7) kleinste negative Zahl: 10002 = -2 4 +8 = -8 größte (negative) Zahl: 11112 = -2 4 +15 = -1 Vorteil der Zweierkomplement-Darstellung: Die Null hat eine eindeutige Darstellung, "Null": 0000 (Länge 4) "Minus 1": 1111 (Länge 4). Nachteil: Kein Komplement für die negativeste Zahl möglich, Komplementbildung etwas teurer, wegen Carry-Fortpflanzung. Zahlengerade: 1000 2 = -2 n-1 = -8 0 +7 = 0111 2 = 2 n-1-1 22 Technische Informatik I, Sommer 2006, P. Schulthess, F. Hauck, VS Informatik, Uni Ulm

G.6.3 Addition & Subtraktion Standardaddierer zur Addition. Subtraktion zusätzlich: Komplementierung eines Summanden, das heisst, zuerst binäre Ziffern invertieren, dann 1 addieren, z.b. durch gesetzten Carry-Eingang. Vorzeichenwechsel bei ursprünglich gleichen Vorzeichen = Überlauf. 23 Technische Informatik I, Sommer 2006, P. Schulthess, F. Hauck, VS Informatik, Uni Ulm

G.6.4 Zahlenraum der Zweierkomplementdarstellung Hier für eine Register mit 4 Binärstellen: (unsigned) 24 Technische Informatik I, Sommer 2006, P. Schulthess, F. Hauck, VS Informatik, Uni Ulm

G.7 Binäre Multiplikation G.7.1 Schriftliche Multiplikation auf Binärzahlen nur positive Zahlen, ohne Komplement oder Vorzeichen. 0011 1010 Kontrolle: 3 x 10 = 30 0011 1 11110 2 = 30 0000 0 0011 1 + 0000 0 00011110 Übertragung auf den Rechner: Realisierung in Hardware: Addierer und Schieberegister, Realisierung in Software: Addition und Bittest/Schieberegister. Einige Prozessoren besitzen keine Multiplikationshardware. 25 Technische Informatik I, Sommer 2006, P. Schulthess, F. Hauck, VS Informatik, Uni Ulm

G.7.2 Vorzeichenlose Multiplikation - seriell Serielles Schaltwerk mit reduziertem Hardwareaufwand: a n-1... a 1 a 0 b n-1... b 1 b 0 n-bit Addierer Steuerwerk carry out p 2n-1... p n+1 p n p n-1... p 1 p 0 Ablauf: Lösche Produktregister P (Länge 2n), n-fache Schleife: b rxz ermitteln, b nach rechts schieben, falls b rxz =1, dann Operand a auf (p 2n-1... p n+1, p n ) addieren, p ein Bit nach rechts verschieben, inklusive alten carry out nächster Schleifendurchlauf aus n. 26 Technische Informatik I, Sommer 2006, P. Schulthess, F. Hauck, VS Informatik, Uni Ulm

G.7.3 Array-Multiplizierer Schaltwerk entspricht dem schriftlichen Multiplikationsschema. Carry-Save Addierer für die einzelnen Zeilen. Beispiel für n = 4: es werden drei Additionen benötigt. AND 27 Technische Informatik I, Sommer 2006, P. Schulthess, F. Hauck, VS Informatik, Uni Ulm

G.7.4 Schaltwerk für Array-Multiplizierer Beispiel für 4 Bit Wortbreite. 28 Technische Informatik I, Sommer 2006, P. Schulthess, F. Hauck, VS Informatik, Uni Ulm

G.7.5 Multiplikation im 2er-Komplementsystem Gegeben 2 Operanden à n Bits: negative oder positive Vorzeichen, p = a * b; Fall 1: Resultatregister umfasst n Bits: Produkt ist korrekt falls a * b < 2 n anderenfalls Überlauf. Fall 2: Resultatregister umfasst 2n Bits: Produkt ist korrekt für a, b 0, Produkt ist inkorrekt ohne Vorzeichenerweiterung, Produkt ist korrekt mit Vorzeichenerweiterung, engl. "sign extension". Beispiele: 1110 2 * 0011 2 = 00101010 2-2 * 3 = -6 11111110 2 * 0011 2 = 11111010 2 = -2 * 3 = -6 29 Technische Informatik I, Sommer 2006, P. Schulthess, F. Hauck, VS Informatik, Uni Ulm

G.8 Binäre Division G.8.1 Papier- und Bleistiftversion Wenn möglich Divisor vom skalierten Dividenden subtrahieren. 01100111 1001 = 1011 Quotient -1001 00111-1001 Kontrolle: 1110 103 9 = 11 Rest 4 +1001 01111-1001 01101 1001 Rest 0100 30 Technische Informatik I, Sommer 2006, P. Schulthess, F. Hauck, VS Informatik, Uni Ulm

G.8.2 Restoring Division Das oben beschriebene Verfahren wird auch Restoring Division genannt, da hierbei der ursprüngliche Dividend wiederhergestellt wird ("wenn nicht ging" =>...0...). Mathematisch: entweder Dividend Divisor = Quotient + Rest Divisor oder auch Dividend = Divisor * Quotient + Rest oft wünscht man, dass Rest und Divisor gleiches Vorzeichen aufweisen, Elektronisch: addieren, subtrahieren, schieben, in jedem Schritt testweise den Divisor vom skalierten Dividenden subtrahieren, falls Subtraktion ohne Vorzeichenwechsel, dann Quotientenstelle q i = 1, sonst Quotientenstelle q i = 0, Divisor wieder draufaddieren, weitere Dividendenstellen ins Subtrahierwerk schieben. 31 Technische Informatik I, Sommer 2006, P. Schulthess, F. Hauck, VS Informatik, Uni Ulm

G.8.3 Serielles Schaltwerk für vorzeichenlose Division Ablauf: lade q low mit dem Dividenden a, q high auf Null setzen, n-mal schleifen: q nach links schieben, b von q high subtrahieren, falls q high 0,dann q 0 = 1, sonst Divisor zurückaddieren, q 0 = 0, Resultat: q low : Quotient q high : Rest b n-1... b 1 b 0 >0? n-bit Addierer/ Subtrahierer Steuerwerk q 2n-1... q n+1 q n q n-1... q 1 q 0 32 Technische Informatik I, Sommer 2006, P. Schulthess, F. Hauck, VS Informatik, Uni Ulm

G.9.1 BCD Zahlencodierung G.9 BCD Arithmetik 4-Bit Darstellung von Dezimalziffern. BCD steht für "Binary Coded Decimal", 1001 0001 0011 1001 bcd <=> 9139 10 1111 0001 0011 1001 bcd <=> 139 10 (evtl. mit Vorzeichen) Codierungstabelle: Wert 0 1 2 3 4 5 6 7 Code 0000 0001 0010 0011 0100 0101 0110 0111 Wert 8 9 inv. inv. inv. inv. inv. inv. Code 1000 1001 1010 1011 1100 1101 1110 1111 Exakte Umwandlung auch für Dezimalbrüche. BCD-Instruktionen auch in den CPUs vorhanden. 33 Technische Informatik I, Sommer 2006, P. Schulthess, F. Hauck, VS Informatik, Uni Ulm

G.10 Festkomma-Arithmetik G.10.1 Positionierung des Dezimalpunktes/-kommas Binäre Festkommazahl: Wert: ( z n-1-k,... z 1, z 0, z -1,..., z -k ) 2 = i Σ z i 2 i Die Kommaposition k wird impliziert, aber nicht dargestellt, '1010' 2 => 10,10 2 = 2,5 10 00110010,01000000 2 = 50,25 10 10000001,00100000 2 = -126,875 10 Bestimmung der Kommaposition zur Compilationszeit: COBOL: 05 E-Betrag PIC S99999V99 USAGE IS COMP-3. bedeutet 32 Bits bzw. 8 Nibbles, 2 Nachkommastellen, hier BCD-Darstellung impliziert. Rechenoperationen: Addition & Subtraktion unverändert, Multiplikation: die Anzahl der Nachkommastellen beider Operanden addiert sich, Division: Komma einfügen, sobald erste Nachkommastelle des Dividenden kommt. 34 Technische Informatik I, Sommer 2006, P. Schulthess, F. Hauck, VS Informatik, Uni Ulm

G.11.1 Zahlendarstellung G.11 Gleitkomma-Arithmetik Darstellung großer und kleiner Zahlen mit gleichem Verfahren: Mantisse M speichert den (evtl. normalisierten) Zahlenwert Z. Exponent E skaliert M, bzw. zeigt die (gleitende) Position des Dezimalpunktes, Zahl Z = ±M * 10 E, Vorzeichen. Beispiele: 0,12345, k = 3 : 123,45 => 0,12345 * 10 3 0,12345, k = 5 : 12345 => 0,12345 * 10 5 0,12345, k = 4 : 0,000012345 => 0,12345 * 10-4 Eine Zahl Z 0 heisst normalisiert, wenn gilt: 1 M < Basis: z.b. z.b. V Exponent 1234,5 mit Basis 10 => 1,2345*10 4 (normalisiert) 3,625 mit Basis 2 => 1,1101*2 1 (normalisiert) Mantisse Beispiel: wissenschaftliche Notation des Taschenrechners 1,2345 10 4 entspricht 1234.5, Exponent zur Basis 10 bestimmt die Skalierung. 35 Technische Informatik I, Sommer 2006, P. Schulthess, F. Hauck, VS Informatik, Uni Ulm

Freiheitsgrade bei der Darstellung Gesamtlänge der Darstellung Länge der Exponentendarstellung (Länge der Mantissendarstellung) Darstellung der Mantisse (Einer-, Zweierkomplement oder Vorzeichen und Betrag) Darstellung des Exponenten (1er-, 2er-K., Vorzeichen & Betrag oder Biased Exp.) Biased Exponent (= Charakteristik): Exponenten immer positiv und um eine Konstante(Bias) höher als tatsächlicher Wert, Vorteil: durchgängiger positiver Nummernraum für die Charakteristik, binärer Vergleich zweier Gleitkommazahlen. Beispiel: Bias B = 63, Exponent e = 8 Darstellung als Charakteristik = 53. 36 Technische Informatik I, Sommer 2006, P. Schulthess, F. Hauck, VS Informatik, Uni Ulm

G.9.2 Rechenoperationen Addition/Subtraktion denormalisiere Zahl mit kleinerem Exponent, d.h. Expon. auf gleichen Wert bringen addiere oder subtrahiere Mantissen renormalisiere Mantisse berechne Vorzeichen des Ergebnisses. Multiplikation/Division multipliziere/dividiere Mantissen addiere/subtrahiere Exponenten normalisiere Mantisse berechne Vorzeichen des Ergebnisses 37 Technische Informatik I, Sommer 2006, P. Schulthess, F. Hauck, VS Informatik, Uni Ulm

G.9.3 Gleitkomma-Zahlen nach IEEE754 Empfehlung Standard zur Vereinheitlichung der unterschiedlichen Darstellungen. Aufbau einer IEEE 754 Fließkommazahl: allgemeine Wertberechnung: x = (-1) s * 1,m*2 E-Bias erste Ziffer (immer 1) wird nicht in Mantisse gespeichert Bias B hängt von der Länge der Exponentendarstellung E ab: Bias = 2 E-1-1 gültige Charakteristiken: 0 < ch < 2 E -1 (Werte 0 und sind reserviert) 38 Technische Informatik I, Sommer 2006, P. Schulthess, F. Hauck, VS Informatik, Uni Ulm

G.11.3 Spezielle Werte nach IEEE754 Empfehlung Null / Zero: Vorzeichen s, e=0, m=0, (positive und negative Null). Unendlich / Infinity symbolische Darstellung für unendlich große Zahl Vorzeichen s, e=2 E -1, m=0, (positiv und negativ Unendlich) NaN / Not a number / Uninit Vorzeichen s, e=2 E -1, m 0 denormalisierte Zahlen (kleiner als kleinste normalisierte Zahl) Vorzeichen s, e=0, m 0, Wertberechnung: x = (-1) s * 0,m*2 1-Bias 39 Technische Informatik I, Sommer 2006, P. Schulthess, F. Hauck, VS Informatik, Uni Ulm

G.11.4 Formatdefinitionen nach IEEE754 Zusätzlich: herstellerabhängig definierbares Format, Extended Precision zwischen Double und Quad. 40 Technische Informatik I, Sommer 2006, P. Schulthess, F. Hauck, VS Informatik, Uni Ulm