Algorithmen zur Integer-Multiplikation



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

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

Übungsaufgaben. - Vorgehensweise entsprechend dem Algorithmus der schriftlichen Multiplikation

Zahlendarstellungen und Rechnerarithmetik*

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

2 Darstellung von Zahlen und Zeichen

Lineargleichungssysteme: Additions-/ Subtraktionsverfahren

Protokoll zum Praktikum des Moduls Technische Informatik an der JLU Gießen

Outline Schieberegister Multiplexer Barrel-Shifter Zähler Addierer. Rechenschaltungen 1. Marc Reichenbach

Die Gleichung A x = a hat für A 0 die eindeutig bestimmte Lösung. Für A=0 und a 0 existiert keine Lösung.

Vertiefungsstoff zum Thema Darstellung von Zahlen

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

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

Einführung in die Informatik I

Zahlensysteme Seite -1- Zahlensysteme

Technische Informatik - Eine Einführung

N Bit binäre Zahlen (signed)

2. Negative Dualzahlen darstellen

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

Teil 2: Rechnerorganisation

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

Zeichen bei Zahlen entschlüsseln

Grundlagen der Rechnerarchitektur

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

Algorithmen zur Division

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

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?

7 Rechnen mit Polynomen

Teil 1: Digitale Logik

Algorithmen zur Division

Binäre Gleitkommazahlen

5 Verarbeitungsschaltungen

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

Mikro-Controller-Pass 1

Eine Logikschaltung zur Addition zweier Zahlen

Binär Codierte Dezimalzahlen (BCD-Code)

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

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

Skript und Aufgabensammlung Terme und Gleichungen Mathefritz Verlag Jörg Christmann Nur zum Privaten Gebrauch! Alle Rechte vorbehalten!

6.2 Scan-Konvertierung (Scan Conversion)

Plotten von Linien ( nach Jack Bresenham, 1962 )

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

Elemente der Analysis I Kapitel 2: Einführung II, Gleichungen

OECD Programme for International Student Assessment PISA Lösungen der Beispielaufgaben aus dem Mathematiktest. Deutschland

Lineare Gleichungssysteme

LU-Zerlegung. Zusätze zum Gelben Rechenbuch. Peter Furlan. Verlag Martina Furlan. Inhaltsverzeichnis. 1 Definitionen.

Würfelt man dabei je genau 10 - mal eine 1, 2, 3, 4, 5 und 6, so beträgt die Anzahl. der verschiedenen Reihenfolgen, in denen man dies tun kann, 60!.

Versuch 3. Frequenzgang eines Verstärkers

Elektrische Logigsystem mit Rückführung

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

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

Grundlagen der Informatik

Theoretische Informatik SS 04 Übung 1

Rationale Zahlen. Weniger als Nichts? Ist Null nichts?

Objektorientierte Programmierung

Inhalt. Zahlendarstellungen

Daten, Informationen, Kodierung. Binärkodierung

Grundlagen der Informatik I Informationsdarstellung

15.3 Bedingte Wahrscheinlichkeit und Unabhängigkeit

Mathematik: Mag. Schmid Wolfgang Arbeitsblatt 3 1. Semester ARBEITSBLATT 3 RECHNEN MIT GANZEN ZAHLEN

4 Vorlesung: Matrix und Determinante

3 Rechnen und Schaltnetze

XONTRO Newsletter. Kreditinstitute. Nr. 18

Repetitionsaufgaben: Lineare Gleichungen

Grundlagen der höheren Mathematik Einige Hinweise zum Lösen von Gleichungen

Wie lässt sich die Multiplikation von Bruchzahlen im Operatorenmodell und wie im Größenmodell einführen?

Zahlensysteme. von Christian Bartl

Lineare Gleichungssysteme

Einführung in die Programmierung

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

Bevor lineare Gleichungen gelöst werden, ein paar wichtige Begriffe, die im Zusammenhang von linearen Gleichungen oft auftauchen.

Algorithmen II Vorlesung am

Quadratische Gleichungen

RTA-BW Version 6.16 Anderungsbeschreibung

Synchronisierung. Kommunikationstechnik, SS 08, Prof. Dr. Stefan Brunthaler 73

Kapitalerhöhung - Verbuchung

Lineare Gleichungssysteme

3 Arithmetische Schaltungen

RS-Flip Flop, D-Flip Flop, J-K-Flip Flop, Zählschaltungen

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

Einführung in. Logische Schaltungen

Kapitel 15. Lösung linearer Gleichungssysteme

Computerarithmetik ( )

Installation OMNIKEY 3121 USB

7.3 Einrichtung 13. Monatslohn. Auszahlung Ende Jahr / Ende der Beschäftigung

Das Maschinenmodell Datenrepräsentation

Entscheidungsbäume. Definition Entscheidungsbaum. Frage: Gibt es einen Sortieralgorithmus mit o(n log n) Vergleichen?

Sowohl die Malstreifen als auch die Neperschen Streifen können auch in anderen Stellenwertsystemen verwendet werden.

Einführung in die Programmierung

50. Mathematik-Olympiade 2. Stufe (Regionalrunde) Klasse Lösung 10 Punkte

Elementare logische Operationen

Information in einem Computer ist ein

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

Erweiterung der Aufgabe. Die Notenberechnung soll nicht nur für einen Schüler, sondern für bis zu 35 Schüler gehen:

Grundstrukturen: Speicherorganisation und Zahlenmengen

Skalierung des Ausgangssignals

Gesetz zur besseren Vereinbarkeit von Familie, Pflege und Beruf. 14. Oktober 2014

Versuch Nr. 8c Digitale Elektronik I

Transkript:

Algorithmen zur Integer-Multiplikation Multiplikation zweier n-bit Zahlen ist zurückführbar auf wiederholte bedingte Additionen und Schiebeoperationen (in einfachen Prozessoren wird daher oft auf Multiplizierwerke verzichtet!) das Produkt p zweier vorzeichenloser n-bit Zahlen a und b erfordert 2n Bit, Zahlenbereich von p: 0... 2 2n 2 n+1 + 1 einfacher Algorithmus: Beispiel (für n = 5): 31 Algorithmen zur Multiplikation (Forts.) modifizierter Algorithmus: Beispiel (für n = 5): in der 2n-Bit Variablen p werden n partielle Produkte akkumuliert; Rechtsschieben von p ersetzt die Multiplikation von a mit 2 i 32

Algorithmen zur Multiplikation (Forts.) Erweiterung für vorzeichenbehaftete n-bit Zahlen a und b: 1) bei Kodierung durch Vorzeichen und Betrag: für das Produkt p werden 2n 1 Bit benötigt! vorzeichenlose Multiplikation der (n 1)-Bit Beträge a und b ergibt (2n 2)-Bit Produkt p mit p aus 0... 2 2n 2 2 n + 1 separate Generierung des korrekten Vorzeichenbits p 2n 2 = a n 1 b n 1 2) bei Kodierung im Einerkomplement: für das Produkt p werden 2n 1 Bit benötigt! symmetrischer Zahlenbereich für p: 2 2n 2 + 2 n 1... 2 2n 2 2 n + 1 Addition von Korrekturtermen erforderlich, da Algorithmus für a < 0 oder b < 0 falsche Ergebnisse: liefert a b = a (2 n 1 b) = a 2 n a a b (statt 2 2n 1 a b) a b = (2 n 1 a) b = b 2 n b a b (statt 2 2n 1 a b) a b = (2 n 1 a) (2 n 1 b) = 2 2n 2 n (a + b + 2) + a b + a + b + 1 (statt a b) 33 Algorithmen zur Multiplikation (Forts.) 3) bei Kodierung im Zweierkomplement: asymmetrischer Zahlenbereich für p: 2 2n 2 + 2 n 1... 2 2n 2 für das Produkt p werden 2n Bit benötigt, wobei das Bit p 2n-2 nur für einen einzelnen Produktwert relevant ist! Addition von Korrekturtermen erforderlich, da Algorithmus für a < 0 oder b < 0 falsche Ergebnisse liefert: a b = a (2 n b) = a 2 n a b (statt 2 2n a b) a b = (2 n a) b = b 2 n a b (statt 2 2n a b) a b = (2 n a) (2 n b) = 2 2n a 2 n b 2 n + a b (statt a b) Fallunterscheidung: für a b wird 2 2n a 2 n = 2 n (2 n a) zu p addiert für a b wird 2 2n b 2 n = 2 n (2 n b) zu p addiert für a b wird 2 2n (a + b) 2 n = 2 n (2 n a b) zu p addiert Realisierung: p wird mit Korrekturterm anstatt mit 0 initialisiert! 34

Beschleunigung der Multiplikation n n Bit Multiplikation benötigt n Schritte, jeweils aus: einer n-bit Addition, z.b. Carry Ripple Addierer mit Zeit (2n 1) einer Schiebeoperation auf 2n-Bit Wort Möglichkeiten der Beschleunigung: 1) Beschleunigung der Addition durch Einsatz schnellerer Addierer 2) vorzeitige Terminierung in Schritt i, wenn b n 1 = b n 2 =... = b i = 0 3) Schieben über Ketten aus Nullen oder Einsen im Multiplikator 4) Analyse mehrerer Bits des Multiplikators und Addition von entsprechenden Vielfachen des Multiplikanden in jedem Schritt 5) Berücksichtigung des Übertrags aus Addition in Schritt i erst bei Addition in Schritt i 1 ( Carry Save Addition) 6) parallele Addition mehrerer partieller Produkte in jedem Schritt auch Kombinationen von 1) bis 6) üblich! 35 Schieben über Ketten aus Nullen oder Einsen wenn die k Multiplikator-Bitstellen b i+k 1 =... = b i+1 = b i = 0 sind, kann in Schritt i das bisher akkumulierte Produkt p direkt um k Stellen nach rechts geschoben werden wenn die k Multiplikator-Bitstellen b i+k 1 =... = b i+1 = b i = 1 sind, entspricht dies einer Multiplikation von a mit dem Term 2 i+k 1 + 2 i+k 2 +... + 2 i+1 + 2 i = 2 i+k 2 i somit können die k Additionen können ersetzt werden durch in Schritt i: Subtraktion von a und Rechtsschieben von p um k in Schritt i+k: Addition von a und Rechtsschieben von p um 1 Nachteile: Multiplikationszeit ist nicht mehr vorhersagbar, d.h. hängt vom Wert des Multiplikators b ab! hoher Aufwand für Barrel-Shifter und für Analyse des Multiplikators! 36

Analyse mehrerer Bits des Multiplikators Idee: Analyse von k benachbarten Bitstellen b i+k 1... b i des Multiplikators b Addition des (b i+k 1... b i )-fachen von a zu p Rechtsschieben von p um k Positionen Vorgehensweise ( multiplier scanning ) für k = 2: b i+1 b i 00 01 10 11 durchzuführende Operationen schiebe p um 2 Stellen nach rechts Addiere a zu p und schiebe p um 2 Stellen nach rechts Addiere 2a zu p und schiebe p um 2 Stellen nach rechts Addiere 3a zu p und schiebe p um 2 Stellen nach rechts Bereitstellung aller Vielfachen von a durch Linksschieben und Addieren (z.b. 3a = 2a + a, d.h. schiebe a um 1 nach links und addiere a) wird nur für k 3 eingesetzt! (da für k > 3 der Aufwand für die Bereitstellung aller Vielfachen zu hoch ist) 37 Multiplikation nach Booth Idee: Kombination der Analyse von zwei Multiplikatorbits und des Schiebens über Ketten aus Nullen oder Einsen Verzicht auf Addition des Vielfachen von a innerhalb einer Kette aus Einsen im Multiplikator b, statt dessen Subtraktion von a bei Beginn einer Kette aus Einsen (10) und Addition von a am Kettenende (01) realisierbar durch überlappende Analyse von zwei Bitstellen b i b i 1 und Umkodierung von b i ( 1 bei Addition, 1 bzw. 1 bei Subtraktion) Vorgehensweise ( multiplier recoding ): b i b i 1 00 01 10 11 durchzuführende Operationen schiebe p um 1 Stelle nach rechts Addiere a zu p und schiebe p um 1 Stelle nach rechts Subtrahiere a von p und schiebe p um 1 Stelle nach rechts schiebe p um 1 Stelle nach rechts recoding 0 1 1 0 38

Multiplikation nach Booth (Forts.) Ergänzung von b 1 = 0 erforderlich funktioniert auch bei im Zweierkomplement kodierten negativen Zahlen (ursprüngliches Ziel von Booth)! Beispiele: 39 Multiplikation nach Booth (Forts.) Verallgemeinerung für k > 2 Bits möglich: Addition und Subtraktion des 1-fachen, 2-fachen,..., (k 1)-fachen von a je Schritt, abhängig von Multiplikatorbits b i+k 2..., b i, b i 1 Rechtsschieben von p um k 1 Positionen je Schritt Umkodieren des Multiplikators mit b i {k 1,...,1,0,1,..., k 1} typische Wahl: k = 3 40

Implementierung Möglichkeiten der Hardware- Implementierung einer n n Bit Multiplikation: allgemeiner Aufbau eines Multiplizierers: 1) Verwendung eines n-bit Addierers und eines 2n-Bit Schieberegisters 2) Verwendung eines n-bit Carry- Save Addierers und eines 2n-Bit Schieberegisters 3) parallele Addition mit mehreren Carry Save Addierern Bemerkungen: folgende Darstellung nur für einfachen Algorithmus, Verallgemeinerung für mehrere Multiplikatorbits bzw. Booth-Verfahren möglich einn-bit (Schiebe-)Register kostet 8n CUs, Verzögerung für Laden bzw. Schieben ist 41 Sequentieller Multiplizierer direkte Realisierung des modifizierten Algorithmus in Hardware: n UND-Gatter n-bit Addierer 2n-Bit Schieberegister p Kosten (ohne p): C Add + 2n CUs, Zeit: n ( Add + 3 ) Kosten und Zeit bei verschiedenen Addierern: für n = 32: Kosten (CUs) Zeit ( ) Ripple 512 2112 CLA 7456 224 RCLA 1184 416 Carry-Select 1056 288 42

Carry-Save Addierer (CSA) Idee: bei n aufeinander folgenden Additionen müssen die Carry-Signale nicht propagiert werden, sondern können erst bei der jeweils folgenden Addition berücksichtigt werden! in Schritt t wird s i (t) = s i (t 1) a i (t) c i (t 1) berechnet nach n Schritten ist eine Addition der verbleibenden Überträge erforderlich (z.b. mit RCA oder CLA) 43 sequentieller Multiplizierer mit CSA Architektur eines CSA-basierten Multiplizierers: Anmerkungen: nach jedem Schritt wird s um eine Stelle nach rechts geschoben daher muß im CSA an der Bitposition i c i+1 (t 1) anstatt c i (t 1) addiert werden! Kosten (ohne p): C Add + (14+16+2)n CUs für n = 32: Kosten (CUs) Ripple 1472 CLA 8416 RCLA 2144 Carry-Select 2016 Zeit: Add + 6n Zeit ( ) 255 196 202 198 44

Paralleler Multiplizierer Idee: parallele Addition von k Teilprodukten a b i+k 1,..., a b i je Takt durch Verwendung von k CSA-Addierern Beispiel für k = 4 (vereinfacht): Summenausgänge jedes CSA müssen um eine Stelle nach rechts geschoben werden Aufwand: C Add + 14kn + 16n + 2kn CUs Zeit: Add + n/k (3k + 3) Probleme: Carry Ripple zwischen CSAs, Rückkopplung für c und s 45 Paralleler Multiplizierer (Forts.) Idee: Auflösen der Rückkopplung und Aufbau einer Addiererkette Beispiel für n = 6 (vereinfacht): für jeden CSA ist eine geeignete Verschiebung der Eingangssignale erforderlich rein kombinatorische Logik! Aufwand: C Add + 14(n 2)(n 1) + 2n² CUs Zeit: Add + + 3(n 2) = Add + (3n 5) Pipelining prinzipiell möglich! 46

Paralleler Multiplizierer (Forts.) eine Addiererkette wird oft auch als Feldmultiplizierer ( array multiplier ) bezeichnet Darstellung für n = 5: Kosten und Zeit für n = 32: Ripple CLA RCLA für verschiedene Addierer Kosten (CUs) 15516 22524 16188 Zeit ( ) 154 95 101 97 Carry-Select 16060 47 Paralleler Multiplizierer (Forts.) Beschleunigung möglich durch Verwendung eines Addierbaums ( Wallace tree ) Beispiel für n = 8 (vereinfacht): Anzahl Stufen: log 1.5 n/2 Kosten: C Add + 16n² 14 CUs Zeit: Add + (3 log 1.5 n/2 + 1) häufig eingesetzter Multiplizierer (oft kombiniert mit Pipelining) für n = 32: Ripple CLA RCLA Carry-Select Kosten (CUs) 17238 23762 17490 17362 Zeit ( ) 85 26 32 28 48