Multiplikation
Grundlagen der Rechnerarchitektur ‐Logik und Arithmetik 79
Multiplikation nach der Schulmethode
Gegeben seien die Binärzahlen A und B. Was ist a * b? Beispiel:
Multiplikand A: 1 1 0 1 0 Multiplikator B: * 1 1 0 1 ---
Produkt:
Maximale Länge des Ergebnisses
Grundlagen der Rechnerarchitektur ‐Logik und Arithmetik 81
Beobachtung: Multiplikand der Länge n Bits und Multiplikator der Länge m Bits ergibt Produkt einer Länge mit maximal n+m Bits.
Das Verfahren als Algorithmus
Beispiel 1001*0101:
1 0 0 1
* 0 1 0 1 --- 1 0 0 1 + 0 0 0 0 ---
1 0 0 1 + 1 0 0 1
--- 1 0 1 1 0 1 + 0 0 0 0
--- 0 1 0 1 1 0 1
Start Teste erstes Multiplikator
‐Bit
Shifte Multiplikand ein Bit nach Links
Shifte Multiplikator ein Bit nach Rechts Addiere Multiplikand
zum Produkt
5ter Durch‐
lauf?
Ende
0 1
ja
nein Beispiel für
4‐Bit‐Zahlen
Das Verfahren in Hardware
Grundlagen der Rechnerarchitektur ‐Logik und Arithmetik 83
8‐Bit Multiplikand
8‐Bit ALU
8‐Bit Produkt Control
Test
4‐Bit Multiplikator
Beispiel für 4‐Bit‐Zahlen Rechts‐Shift
Links‐Shift Demonstration mit
1001 * 0110 = 110110
1. Produkt = Produkt + Multiplikand, wenn Bit 0 des Multiplikators = 1
2.Links‐Shift
3.Rechts‐Shift
4. Anzahl Durch‐
läufe = 5Ende
Vorzeichenbehaftete Multiplikation
• Möglichkeit 2:
Tausche im Verfahren der vorigen Folie das Produkt‐
register mit einem vor‐
zeichenbehafteten Rechts‐
Shift‐Register aus.
‐ Betrachte Multiplikand x und Multiplikator y.
‐ Sei x‘ = x wenn x nicht‐negativ bzw. x‘ = ‐x sonst.
‐ Sei y‘ = y wenn y nicht‐negativ bzw. y‘ = ‐y sonst.
‐ Berechne z‘ = x‘ * y‘.
‐ Ergebnis z = z‘ wenn x und y nicht‐negativ oder x und y negativ, ansonsten ist z = ‐z‘.
Weitere Beschleunigungen
Grundlagen der Rechnerarchitektur ‐Logik und Arithmetik 85
Beobachtung:
1 0 1 1 (Y)
* 1 1 1 0 (X) ---
0 0 0 0 + 1 0 1 1 ---
= 1 0 1 1 + 1 0 1 1 ---
= 1 0 0 0 0 + 1 0 1 1
---
=1 0 0 1 1 0 1 0 (Z) 4‐Bit‐ALU
c s3 s2 s1 s0
Eine ALU für jede Summation
4‐Bit‐ALU
c s3 s2 s1 s0
4‐Bit‐ALU
c s3 s2 s1 s0
x0*y0 x0*y3y2y1
x1*y x2*y
x3*y
z7z6z5z4z3 z2 z1 z0 Beispiel für 4‐Bit‐Zahlen
Weitere Beschleunigungen
Jede ALU‐Operation verbrauche einen Taktzyklus. Wie viele Taktzyklen dauert die Multiplikation von 32‐Bit‐Zahlen?
Parallele Organisation der ALUs in einen Binärbaum (keine weiteren Details hier)
Division
Grundlagen der Rechnerarchitektur ‐Logik und Arithmetik 87
Division nach der Schulmethode
Gegeben seien die Binärzahlen A und B. Was ist a : b? Beispiel:
Dividend Divisor Quotient 1 0 0 1 0 1 0 : 1 0 0 0 =
Rest:
Das Verfahren als Algorithmus
Grundlagen der Rechnerarchitektur ‐Logik und Arithmetik 89
Beispiel 1001 : 10:
Dvdt :Dvsr= Qtnt 001001 : 10 = 00100 -000000 100000
--- 01001
-00000 10000 ---
1001
-1000 1000 ----
001
-000 100 ---
01
-00 10 --
1 Rest Start
Teste Rest
Shifte Divisor ein Bit nach Rechts Shifte Quotient nach
Links und setze dessen LSB=1.
6ter Durch‐
lauf?
Ende
<0
≥0
ja
nein Subtrahiere
Divisor vom Rest
Restauriere den alten Rest. Shifte Quotient
nach Links und setze dessen LSB=0.
Beispiel für 4‐Bit‐Zahlen
Das Verfahren in Hardware
8‐Bit Divisor
8‐Bit ALU
8‐Bit Rest Control
Test
4‐Bit Quotient
Beispiel für 4‐Bit‐Zahlen Links‐Shift
Rechts‐Shift Demonstration mit
1001 : 0010 = 100 Rest 1
1. Rest=Rest‐Divisor, wenn Divisor < Rest
2. Links‐Shift; LSB=Rest wurde verändert 3. Rechts‐Shift
4. Anzahl Durch‐
läufe = 6Ende
Vorzeichenbehaftete Division
Grundlagen der Rechnerarchitektur ‐Logik und Arithmetik 91
• Umgang mit dem Quotienten (analog wie für Multiplikation):
‐ Betrachte Divisor x und Dividend y (also: Quotient z von y:x).
‐ Sei x‘ = x wenn x nicht‐negativ bzw. x‘ = ‐x sonst.
‐ Sei y‘ = y wenn y nicht‐negativ bzw. y‘ = ‐y sonst.
‐ Berechne Quotient z‘ von y‘ : x‘.
‐ Ergebnis z = z‘ wenn x und y nicht‐negativ oder x und y negativ, ansonsten ist z = ‐z‘.
• Und was ist das Vorzeichen des Rests? Beispiel:
•Also: Vorzeichen des Rests ist Vorzeichen des Dividend.
Dividend : Divisor Quotient Rest Quotient * Divisor + Rest = Dividend
7 : 2 3 1 3 * 2 + 1 = 7
-7 : 2 -3 -1 -3 * 2 – 1 = -7
7 : -2 -3 1 -3 * -2 + 1 = 7
-7 : -2 3 -1 3 * -2 – 1 = -7
Gleitkommazahlen
Reelle Gleitkommazahlen
Grundlagen der Rechnerarchitektur ‐Logik und Arithmetik 93
Kleine Zahl Große Zahl Beispiel
Wissenschaftliche Darstellung
(eine Ziffer links des Kommas) Normalisierte Darstellung
(keine führende Null)
Binäre Gleitkommazahlen
Was ist der Dezimalwert der binären Gleitkommazahl 101,1001?
Was bedeutet 11,011 * 22?
Also: mit 2i multiplizieren verschiebt das Komma um i Stellen nach rechts.
Analog: mit 2‐i multiplizieren verschiebt das Komma um i Stellen nach links.
Binäre Gleitkommazahlen
Grundlagen der Rechnerarchitektur ‐Logik und Arithmetik 95
Was ist die wissenschaftliche, normalisierte Darstellung der binären Gleitkommazahl zur dezimalen Gleitkommazahl 0,625?