Multiplizierer 1 Beispiel komplexer arithmetischer Schaltung Langsamer als Addition, braucht mehr Platz Sequentielle Multiplikation Kompakte kombinatorische Variante mit Carry-Save-Adders (CSA) Vorzeichenbehaftete Multiplikation mit Booth-Algorithmus Digitaltechnik #252-14- Sommersemester 24 Armin Biere ETH Zürich
Schulalgorithmus zur Multiplikation 2 B A Partielle Summe + 1 1 1 * 1 1 1 + 1 1 1 + 1 1 1 1 1 1 + 1 1 1 1 1 1 1 Resultat 1 1 1 1 1 Digitaltechnik #252-14- Sommersemester 24 Armin Biere ETH Zürich
Einfacher Multiplizierer 3 5 B A 5 5 Bit Addierer 5 5 Bit Addierer 5 5 Bit Addierer 5 5 Bit Addierer 5 Resultat Digitaltechnik #252-14- Sommersemester 24 Armin Biere ETH Zürich
Ad: Einfacher Multiplizierer 4 n n Multiplikation: Eingabe: zwei n Bit Vektoren Ausgabe: 2 n Bit-Vektor benützt n 1 seriell geschaltete Addierer Annahme CLA Adder Zeit: O(n logn) Platz: O(n 2 ) Gatter, Fläche O(n 2 logn) Digitaltechnik #252-14- Sommersemester 24 Armin Biere ETH Zürich
Sequentielle Version 5 Shiften C P A n n 1 n n n n Bit Addierer n B Digitaltechnik #252-14- Sommersemester 24 Armin Biere ETH Zürich
Sequentieller Algorithmus 6 1. Obere Hälfte P der partiellen Summe mit initialisieren 2. Erster Operand ins B Register 3. Zweiter Operand ins A Register (untere Hälfte der partiellen Summe) 4. Für jeden der n Multiplikationsschritte: (a) LSB von A gleich 1, dann Addiere B zu P (ansonsten ) (b) Shiebe (C,P,A) nach rechts (C ist Carry des Addierers) 5. Result findet sich in (P,A) Digitaltechnik #252-14- Sommersemester 24 Armin Biere ETH Zürich
Sequentielle Multiplikation von 7 und 5 7 C P A 11 Schreibe 7 = 111 2 nach B und 5 = 11 2 nach A + 111 A = 1 also Addiere B = 111 2 111 11 11 11 Shiften (A gebraucht, fällt also raus) + A 1 = also Addiere 11 11 1 111 Shiften (A 1 gebraucht, fällt also raus) + 111 A 2 = 1 also Addiere B = 111 2 1 11 1 11 Shiften, Resultat ist 111 2 = 35 Digitaltechnik #252-14- Sommersemester 24 Armin Biere ETH Zürich
Probleme mit Vorzeichen 8 Multiplikation von 3 und 7 gibt natürlich 21 4-Bit Zweierkomplement: 3 111 2, 7 11 2 als unsigned 4-Bit Zahlen sind das 13 bzw. 9 Multiplikation von 13 und 9 ergibt 117 8-Bit Zweierkomplement: 21 111 2, 117 11111 2 Multiplikation gibt es mit oder ohne Vorzeichen (signed oder unsigned)! Digitaltechnik #252-14- Sommersemester 24 Armin Biere ETH Zürich
Einfache Multiplikation mit Vorzeichen 9 1. Konvertierung der beiden Operanden in positive Zahlen 2. Speichern der urspünglichen Vorzeichen 3. Unsigned Multiplikation der Konvertierten Zahlen 4. Berechnung des Resultats-Vorzeichen aus gespeicherten Vorzeichen (negativ gdw. ursprüngliche Operanden hatten komplementäres Vorzeichen) 5. eventuell Negation des Ergebnisses bei negativem Resultats-Vorzeichen Digitaltechnik #252-14- Sommersemester 24 Armin Biere ETH Zürich
Booth Recoding 1 Erste Beobachtung: PA ist auch signed! Verwende Arithmetisches Shift statt Logischem (schiebe beim Shift Vorzeichen-Bit nach, statt dem Carry) Verwende folgende Addition/Subtraktion Regeln (A 1 = ): 1. addiere zu P wenn A i = und A i 1 = 2. addiere B zu P wenn A i = und A i 1 = 1 3. subtrahiere B von P wenn A i = 1 und A i 1 = 4. addiere zu P wenn A i = 1 und A i 1 = 1 Digitaltechnik #252-14- Sommersemester 24 Armin Biere ETH Zürich
Booth Multiplikation von 6 und 5 11 P A 11 Schreibe 6 = 11 2 nach A und 5 = 111 nach B 11 A = A 1 = ergibt mit Regel 1 Addition von 11 Shiften 111 A 1 = 1, A = ergibt mit Regel 3 Subtraktion von B +11 Zweierkomplement von 111 2 ist 11 2 11 11 1 11 Shiften +111 A 2 =, A 1 = 1 ergibt mit Regel 2 Addition von B 111 11 111 111 Shiften (arithmetisch!) 111 A 3 = 1, A 2 = ergibt mit Regel 3 Subtraktion von B +11 Zweierkomplement von 111 2 ist 11 2 11 111 Shiften (arithmetisch!) 1 111 Shiften, Resultat is 1111 2 = 3 Digitaltechnik #252-14- Sommersemester 24 Armin Biere ETH Zürich
Hintergrund Booth Multiplikation 12 Da jedesmal B (A i 1 A i ) zum partiellen Produkt addiert wird, erhält man die Teleskopsumme B n 1 B (A i 1 A i ) 2 i i= ) ( A n 1 2 n 1 + A n 2 2 n 2 + + A 1 2 + A + B A 1 Integer-Konvertierung einer n-bit Zahl A im Zweierkomplement: A n 1 2 n 1 + A n 2 2 n 2 + + A 1 2 + A (z.b. 3 = 11 2 = 111 2 = 2 3 + 5) Digitaltechnik #252-14- Sommersemester 24 Armin Biere ETH Zürich
Carry-Save-Adder (CSA) 13 Idee: keine Carry Propagierung bei der Multiplikation Unabhängige Volladdierer (Full Adder = FA) Carry-In wird von vorheriger Berechnung genommen Carry-Out wird gespeichert für nachfolgende Berechnung Man spart Propagation durch min. Ω(log n) Logik-Level beim CLA Wesentlich kürzere Multiplikationschritte Digitaltechnik #252-14- Sommersemester 24 Armin Biere ETH Zürich
Sequentieller Multiplizierer mit CSA 14 P A Summe Carries FA FA FA FA Volladdierer C i C i +1 A i FA S i B i B Nach n Schritten muss noch die Summe und die Carries addiert werden. Digitaltechnik #252-14- Sommersemester 24 Armin Biere ETH Zürich
Kombinatorischer Multiplizierer mit CSA 15 B 4 A B 3 A B 2 A B 1 A B A CSA CSA CSA Ausrollen des sequentiellen CSA und direktes Verbinden der Carries Propagate Adder Digitaltechnik #252-14- Sommersemester 24 Armin Biere ETH Zürich
Zusammenfassung Multiplizierer 16 Multiplikation braucht Platz oder Zeit Carry-Save-Adder braucht kein Rippeln (sequentiell und kombinatorisch) Vorzeichen mit Booth-Recoding behandeln! Weitere Operationen wie Division haben ähnliche Trade-Offs Digitaltechnik #252-14- Sommersemester 24 Armin Biere ETH Zürich