Algorithmen zur Division

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

Algorithmen zur Integer-Multiplikation

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

Zahlendarstellungen und Rechnerarithmetik*

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

Grundlagen der Rechnerarchitektur

3 Rechnen und Schaltnetze

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

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

2 Darstellung von Zahlen und Zeichen

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

Musterlösung 2. Mikroprozessor & Eingebettete Systeme 1

Einführung in die Informatik I

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

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

Binäre Gleitkommazahlen

Lösung 1. Übungsblatt

Mathematische Grundlagen der Kryptographie. 1. Ganze Zahlen 2. Kongruenzen und Restklassenringe. Stefan Brandstädter Jennifer Karstens

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

Das negative Zweierkomplementzahlensystem

Das Rechnermodell - Funktion

2.0 Zahlendarstellung, Konvertierungsalgorithmen und arithmetische Algorithmen

Das Maschinenmodell Datenrepräsentation

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

Repräsentation von Daten Binärcodierung ganzer Zahlen

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

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

Grundlagen der Betriebssysteme

Grundwissenskatalog der 6. Jahrgangsstufe G8 - Mathematik Friedrich-Koenig-Gymnasium Würzburg

Computerarithmetik ( )

Grundlagen der Informatik

Kapitel 2. Zahlensysteme, Darstellung von Informationen

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

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

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

Grundstrukturen: Speicherorganisation und Zahlenmengen

1 Dualsystem Dualzahlen mit Vorzeichen 4. 2 Hexadezimalsystem Hexadezimalzahlen mit Vorzeichen Oktalsystem 13 4 Zahlenring 14

Binärdarstellung von Fliesskommazahlen

Zahlen und Zeichen (1)

Grundlagen der Informatik

Grundrechnungsarten mit Dezimalzahlen

Grundlagen der Informatik 2 Grundlagen der Digitaltechnik. 1. Zahlensysteme

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

2. Zahlendarstellung und Rechenregeln in Digitalrechnern

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

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

Fehler in numerischen Rechnungen

TOTAL DIGITAL - Wie Computer Daten darstellen

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

Arithmetik in der Grundschule Di Uhr HS 1. Arithmetik in der Grundschule Anfänge und Ziele Die Entwicklung des Zahlbegriffs beim Kind

Inhalt: Binärsystem 7.Klasse - 1 -

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

Technische Informatik I

Musterlösung 2. Mikroprozessor & Eingebettete Systeme 1

2 Rechnen auf einem Computer

Aufbau und Funktionsweise eines Computers

Einführung in Informatik 1

Zahlensysteme Seite -1- Zahlensysteme

Englische Division. ... und allgemeine Hinweise

DEUTSCHE BUNDESBANK Seite 1 Z Prüfzifferberechnungsmethoden zur Prüfung von Kontonummern auf ihre Richtigkeit (Stand: September 2015)

Ein polyadisches Zahlensystem mit der Basis B ist ein Zahlensystem, in dem eine Zahl x nach Potenzen von B zerlegt wird.

Computerarithmetik (1)

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

5. bis 10. Klasse. Textaufgaben. Alle Themen Typische Aufgaben

Java Einführung VARIABLEN und DATENTYPEN Kapitel 2

12. Tutorium Digitaltechnik und Entwurfsverfahren

Tipps und Tricks zum sicheren Rechnen. Wie rechnet man geschickt? Klammerregeln üben. Rechengesetze. Datei Nr Stand 10.

Midterm-Klausur Technische Grundlagen der Informatik

2. Negative Dualzahlen darstellen

Information in einem Computer ist ein

Grundwissen 5. Klasse

D A T E N... 1 Daten Micheuz Peter

Erste praktische Übung zur Vorlesung Grundlagen der Technischen Informatik

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

1 Zahlentheorie. 1.1 Kongruenzen

5. bis 10. Klasse. Schnell-Merk-System. Mathematik. Kompaktwissen Testfragen SMS. Mit Lernquiz fürs Handy

Rechnerarithmetik Ganzzahlen und Gleitkommazahlen Ac 2013

2.2 Rechnerorganisation: Aufbau und Funktionsweise

Alexander Halles. Zahlensysteme

Rationale Zahlen. Vergleichen und Ordnen rationaler Zahlen

Teil II. Schaltfunktionen

BITte ein BIT. Vom Bit zum Binärsystem. A Bit Of Magic. 1. Welche Werte kann ein Bit annehmen? 2. Wie viele Zustände können Sie mit 2 Bit darstellen?

Digital Design 4 Schaltwerke

Technische Informatik - Eine Einführung

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

Zahlensysteme: Oktal- und Hexadezimalsystem

Unterrichtsmaterialien in digitaler und in gedruckter Form. Auszug aus: Das kleine 1:1 - Umfangreiches Material zur Division für die Förderschule

Lösung zur Klausur zu Krypographie Sommersemester 2005

Negative Zahlen. Lösung: Ordne in einen Zahlenstrahl ein! 7;5; 3; 6. Das Dezimalsystem

1. Definition von Dezimalzahlen

M 6.1. Brüche. Brüche beschreiben Bruchteile. Stückchen, d.h. ein Stückchen entspricht dem Anteil. Carina Mittermayer (2010)

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

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

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

Daten, Informationen, Kodierung. Binärkodierung

2 Einfache Rechnungen

Binäre Multiplikations- und Divisionswerke

Lerninhalte ALFONS Lernwelt Mathematik 4. Klasse

Transkript:

Algorithmen zur Division Umkehrung der Multiplikation: Berechnung von q = a / b durch wiederholte bedingte Subtraktionen und Schiebeoperationen in jedem Schritt wird Divisor b testweise vom aktuellen Rest r subtrahiert: q i = 1, falls r = r b > 0 q i = 0 und Korrektur durch r = r + b, falls r < 0 Beispiel: 103 10 / 9 10 = 11 10 mit Rest 4 10 49 Algorithmen zur Division (Forts.) allgemein gilt: a = q b + r mit Rest r < b im folgenden sei angenommen, daß b eine positive n-bit Zahl und a eine positive 2n-Bit Zahl darstellen es muß gelten: 1) a < 2 n 1 b bzw. q < 2 n 1 2) b 0 ( Ausnahmebehandlung!) alle Divisionsalgorithmen führen in Schritt i folgende Operation aus: r(i) = 2 r(i 1) q n i 2 n b mit i = 1,...,n und r(0) = a Es wird korrektes Ergebnis berechnet, da für Rest r = r(n) gilt: r(n) = 2 r(n 1) q 0 2 n b = 2 (2 r(n 2) q 1 2 n b) q 0 2 n b =... = 2 n r(0) (2 n 1 q n 1 +... + 2q 1 + q 0 ) 2 n b Somit folgt: a = r(0) = q b r(n)/2 n 50

Algorithmen zur Division (Forts.) Algorithmus mit Wiederherstellung des Rests durch Addition ( Restoring Division ) statt einer 2n-Bit Addition r = r + 2 n b genügt hier auch eine n-bit Addition r = r + b, wenn r die aktuellen höherwertigen n Bit von r darstellt 51 Algorithmen zur Division (Forts.) Algorithmus mit Bildung eines neuen Rests nur in dem Fall, daß die Differenz nicht negativ ist ( Non-Performing Division ) 52

Algorithmen zur Division (Forts.) Algorithmus mit Beibehaltung eines negativen Restes ( Non-Restoring Division ) korrigierende Addition anstatt Subtraktion in den Folgeschritten, bis Partialrest r wieder positiv ist ggf. Korrektur bei negativem Rest erforderlich 53 Algorithmen zur Division (Forts.) zur Äquivalenz von Restoring und Non-Restoring Division: Restoring : r(i) = 2 r(i 1) 2 n b < 0 r(i+1) = 2 r(i) 2 n b = 4 r(i 1) 2 n b Non-Restoring : r(i) = 2 r(i 1) 2 n b < 0 r(i+1) = 2 r(i) + 2 n b = 4 r(i 1) 2 n b Aufwand: im Worst-Case Fall sind genau n 1 Nullen im Quotient q enthalten Restoring Division: n + n 1 Additionen/Subtraktionen Non-Performing Division: n Subtraktionen und n 1 Kopieroperationen Non-Restoring Division: n Additionen/Subtraktionen (ggf. +1 Korrekturaddition) Non-Restoring Division ist das schnellste Verfahren! 54

Implementierung: allgemeiner Aufbau eines Dividierers: Behandlung negativer Dividenden und Divisoren sehr umständlich: es gibt kein Äquivalent zum Booth- Algorithmus! i.a. Umwandlung in Vorzeichen und Betrag es gibt verschiedene Möglichkeiten, zur Beschleunigung der Division: Verwendung von schnellen Addierern bzw. Carry-Save Addierern Überspringen von k führenden Nullen im Rest r: schiebe Rest r um k Positionen nach links und setze die ersten k Bits von q auf 0 simultane Generierung mehrerer Quotientenbits durch Subtraktion des Vielfachen von b parallele Subtraktionen sind jedoch nicht möglich! 55 sequentieller Dividierer sequentielle Division ist direkt in Hardware implementierbar mit n-bit Register b, 2n-Bit Register r, n-bit Addierer/Subtrahierer nach n Schritten steht Quotient in r n 1... r 0, Rest in r 2n 1... r n das Steuerwerk implementiert Algorithmus, z.b. gilt für Non- Restoring Division: add/sub r 2n 1 und r 0 r 2n 1 Zeit: n ( Add + 3 ) 56

paralleler Dividierer wiederholte Subtraktion auch durch Felddividierer ( array divider ) mit CSA-Addierern implementierbar: Zeit: Add + (n 1)8 + 5 Aufbau einer Zelle: 57 SRT-Dividierer benannt nach den Entwicklern Sweeny, Robertson und Tocher, die diesen Algorithmus fast gleichzeitig vorstellten (1958) Algorithmus mit dreiwertiger Kodierung der Quotientenbits q i {1, 0, 1} bzw. q i { 1, 0, 1} : Quotient q wird somit redundant kodiert weniger Additionen und Subtraktionen als bei der Non-Restoring Division 58

SRT-Dividierer (Forts.) Problem: SRT-Dividierer benötigt je Schritt Vergleich von r sowohl mit 2 n b als auch mit 2 n b Lösung: der Divisor b wird zuvor durch Schiebeoperationen derart normalisiert, daß hinter dem Vorzeichenbit das erste Nachkommabit 0 ist, d.h. es gilt: ½ b < 1 der Vergleich wird dann wie folgt angenähert: Dividend a und Rest r sind hierbei auch Zahlen aus [0,1) aufgrund der redundanten Darstellung von q ist Ergebnis korrekt! Rückwandlung von q in binär kodierte Zahl erforderlich! 59 SRT-Dividierer (Forts.) Zahl der erforderlichen Operationen ist datenabhängig! für einen n-bit Dividenden benötigt SRT Algorithmus im Mittel nur n/2.67 Additionen weitere Beschleunigung durch simultane Generierung mehrerer Quotientenbits, d.h. je Schritt Bestimmung einer Quotientenziffer q i {, +1,..., 1, 0, 1,..., 1, } (dies wird auch als Radix-2 SRT Verfahren bezeichnet) Abschätzung von q i erfolgt i.a. über in PLAs gespeicherten Tabellen in Abhängigkeit von den höherwertigen Bits des aktuellen Rests r und den höherwertigen Bits des Divisors b bei dem 1994 im Intel Pentium Prozessor entdeckten Bug waren 5 Einträge in einer solchen Tabelle falsch! 60

Rechnen bei eingeschränkter Präzision Integer-Rechenwerke sind optimiert für die Verwendung ganzer Zahlen, nicht für das Rechnen mit Festkommazahlen! prinzipiell werden reelle Zahlen x aus einer Anwendung mittels Skalierung auf ganze n-bit Zahlen x abgebildet, die als Festkommazahlen interpretiert werden: x = 2 q x drei Fälle: 1) fester beschränkter Wertebereich von x : x [a, b] mit a < 0 Zahl der Vorkommabitstellen: s = log 2 (max{ a, b }) + 1 2) fester beschränkter Wertebereich von x : x [a, b] mit a 0 Zahl der Vorkommabitstellen: s = log 2 b 3) Wertebereich von x unbeschränkt, lediglich ein typischer Wert (z.b. Startwert) x 0 0 ist bekannt Zahl der Vorkommabitstellen: s = log 2 x 0 + mit abgeschätzt Zahl der Nachkommabitstellen in allen drei Fällen: q = n s 61 Rechnen bei eingeschränkter Präzision (Forts.) Probleme beim Rechnen mit Festkommazahlen: Wahl eines guten Skalierungsfaktors 2 q, mit dem eine reelle Zahl x in eine Festkommazahl x = x 2 q umgerechnet werden kann Festkommazahl x ist mit Quantisierungsfehler x behaftet: x = x + x ist Zahl der Vorkommastellen s zu klein, so ist die Dynamik zu niedrig: Wahrscheinlichkeit für Überlauf ist groß! ist Zahl der Nachkommastellen q zu klein, so ist die Präzision zu gering: Genauigkeit kann insbesondere für iterative Verfahren unzureichend sein! der aus dem Zweierkomplement resultierende asymmetrische Zahlenbereich ist insbesondere bei kleinen Wortbreiten n oft ungünstig betragsmäßig sehr kleine Festkommazahlen können mit einer negativen Vorkommastellenzahl s kodiert werden: Beispiel: n = 8, s = 4 Kodierung von x [2 12, 2 4 2 12 ] möglich! 62

Fehlerfortpflanzung Seien a und b die Fehler, mit denen zwei Festkommavariablen a und b behaftet sind: a = a + a, b = b + b für die Addition a + b folgt: a + b = a + a + b + b a + b = a + b für die Multiplikation a b folgt: a b = a b + a b + b a + a b + mult a b a b + b a + mult (wobei mult ein bei Multiplikation entstehender Fehler ist, z.b. durch Bildung eines n-bit Wertes aus einem 2n-Bit Produkt) bei Anwendung einer Funktion y = (x) gilt: y = (x + x ) + (x) + x (x) + (x) x (x)+ k y bei einer Operation y = (x 1,..., x k ) gilt: ( x 1,..., x ) x k j x j 1 j 63 Truncating vs. Rounding beim Rechnen mit Festkommazahlen müssen oft von einer m-bit Zahl x mit q Nachkommabitstellen die niedrigstwertigen r Bits abgeschnitten werden, um eine n-bit Zahl mit n < m zu erhalten im folgenden wird Gleichverteilung für x angenommen zwei Techniken: 1) Abschneiden ( Truncating ): Abschneiden der Bitpositionen x q+r 1,..., x q+1, x q x [ 2 q+r +2 q, 0], mittlerer Fehler: E[ x ] = ½ (2 q+r 2 q ) 2) Runden ( Rounding ): Abschneiden der Bitpositionen x q+r 1,..., x q+1, x q und Addition von 2 q+r, falls (x q+r 1... x q+1 x q ) 2 2 q 2 q+r 1, d.h. falls gilt: x q+r 1 = 1 x [ 2 q+r 1 + 2 q, 2 q+r 1 ], mittlerer Fehler: E[ x ] = ½ 2 q Runden ist stets vorzuziehen, wird bei Festkomma-Arithmetik i.a. aber nicht durch Hardware unterstützt! 64

Sättigung Eine andere Möglichkeit, aus einer m-bit Festkommazahl eine n-bit Zahl (mit n < m) zu erhalten, besteht im Abschneiden von r führenden Vorkommabitstellen Abschneiden der Bitpositionen x s 1, x s 2,..., x s r ist fehlerfrei möglich, wenn gilt: x s 1 = x s 2 =... = x s r = x s r 1 x [ 2 s 1, 2 s 1 ], d.h. der resultierende Fehler liegt in der gleichen Größenordnung wie die Zahl x! alternativ ist eine Sättigung ( Saturation ) denkbar, wird von heutiger Integer Arithmetik-Hardware i.a. aber nicht unterstützt: Wenn eine der abgeschnittenen Bitpositionen x s 2,..., x s r ungleich dem Vorzeichen x s 1 ist, so wird in x s r 1... x 0 der größtmögliche darstellbare positive oder negative Wert generiert x [ 2 s 1 + 2 s r 1, 2 s 1 2 s r 1 ] typische Anwendung: Addition zweier n-bit Zahlen 65 Beispiel 1: Berechnung von x j q i 1 v m i ij mit 16-Bit Festkommazahlen: 66

Beispiel 2: Berechnung von m ij = m ij + v i x j mit 16-Bit Festkommazahlen : 67 Beispiel 3: Berechnung von m ij = m ij + (v i m ij ) x j : 68