01.Das negative Zweierkomplementzahlensystem.Junold

Werbung
Das negative Zweierkomplementzahlensystem
Ines Junold
07. Dezember 2009
1 / 21
Inhaltsverzeichnis
1
Einleitung
2
Das konventionelle Zweierkomplement
3
Das negative Zweierkomplementsystem
4
Zusammenfassung
5
Quellenangaben
2 / 21
Einleitung
Earl E. Swartzlander, jr.
seit 1990 Universität von Texas, Austin
leitete Entwicklung eines sehr schnellen Fließkomma- FFT- Prozessors
Forschungsgebiet: Computer Engineering
3 / 21
Einleitung
Motivation
in Bildverarbeitung wird Zahl 1 häufig benötigt
Problem: im konventionellen Zweierkomplement nicht möglich diese
darzustellen
Idee: neues Zahlensystem entwickeln, welches 1 darstellen kann
4 / 21
Das konventionelle Zweierkomplement
Allgemein
Möglichkeit, negative Zahlen im Dualsystem darzustellen
Wertebereich: −(2n−1 ), ..., 0, ..., 2n−1 − 1
Beispiel: bei 8 Bit: −128(10) bis + 127(10)
Darstellung und Umwandlung
positive Zahlen: Vorzeichenbit (0)
Bildungsvorschrift für negative Zahlen
Binärstellen invertieren
Wert der Quantisierungsstufe 2k addieren
5 / 21
Das konventionelle Zweierkomplement
Beispiel für n = −2.2510
umrechnen 2.2510 = 010.012
invertieren: ¬[010.01] = 101.10
Quantisierungsstufe: 2−2 = 0.2510 = 0.012
Quantisierungsstufe addieren: 101.10 + 000.01 = 101.11
6 / 21
Das konventionelle Zweierkomplement
Rechenoperationen: Addition und Subtraktion
keine Fallunterscheidung
Bildungsvorschrift
Operanden A = (an−1 , an−2 , ..., a0 ) und B= (bn−1 , bn−2 , ..., b0 )
Summe S = (sn−1 , sn−2 , ..., s0 )
si = ai ⊕ bi ⊕ ci
Übertrag ci , wobei c0 = 0
ci+1 = (ai ∧ bi ) ∨ (ai ∧ ci ) ∨ (bi ∧ ci )
Beispiel: −4 + 3 = −1
11111100
+ 00000011
= 11111111
7 / 21
Das konventionelle Zweierkomplement
Rechenoperationen: Addition und Subtraktion
Abbildung: Volladdierer
8 / 21
Das konventionelle Zweierkomplement
Vorzeichenerweiterung
Ergebnis nicht im Wertebereich der Summanden
oberste Stelle duplizieren und Stellenanzahl um 1 vergrößern
Rechenoperation: Multiplikation
Serienmultiplizierer oder Parallelmultiplizierer
bei n Bit: Ergebnis 2n Bit
Beispiel: -7 * -3 = 21
11111001
1
+ 0000000
0
+ 111001
1
= 11011101
− 11001
1
= 00010101
9 / 21
Das negative Zweierkomplementsystem
Definition
n−2
R = rn−1 − ∑ ri 2i−n+1
i=0
n-bit lange, gebrochene Zahl
R negatives Zweierkomplement
Vorzeichenbit rn−1
Beispiel für
5
8
R = 1 − (0 ∗ 20−(4+1) + 1 ∗ 21−(4+1) − 1 ∗ 22−(4+1) )
R = 1 − 1 ∗ 2−2 + 1 ∗ 2−3
R = 1 − 0, 25 + 0, 125
R = 1 − 0, 375
R=
5
8
10 / 21
Das negative Zweierkomplementsystem
Vergleich
11 / 21
Das negative Zweierkomplementsystem
Addition
wie bei konventionellem Zweierkomplement
Überlauf kann erkannt werden
Addition - Beispiel
1
2
+
3
8
1.100
+ 1.101
= 1.001
=
7
8
12 / 21
Das negative Zweierkomplementsystem
Subtraktion
auf Addition zurückführen
Bits invertieren, 1 an niederwertigsten Bitstelle addieren
Subtraktion - Umwandlung
1
4
1.110
Bits invertieren
0.001
1 am LSB addieren
0.001
= 0.010
13 / 21
Das negative Zweierkomplementsystem
Multiplikation - Booth- Verfahren
sequentielle Multiplikation
Multiplik. Bits neg. Zweierkompl.
00
P =P
01
P =P −B
10
P =P +B
11
P =P
Multiplik. Bits
00
01
10
11
Zweierkomplement
P =P
P =P +B
P =P −B
P =P
Bemerkung
laufende Folge von Nullen
Ende einer Folge von Einsen
Anfang einer Folge von Einsen
laufende Folge von Einsen
Bemerkung
laufende Folge von Nullen
Ende einer Folge von Einsen
Anfang einer Folge von Einsen
laufende Folge von Einsen
14 / 21
Das negative Zweierkomplementsystem
Multiplikation - Booth- Verfahren
Beispiel: A ∗ B =
1.0110 →
1.0110 →
1.0110 →
1.0119 →
3
4
∗
5
8
= 1.010 ∗ 1.0110
Addieren und Shift
No-OP und Shift
Subtrahieren und Shift
Addieren (und Shift)
Initialisierung P = 0
10: ADD A
Shift P
11: No-OP
Shift P
01: SUB A
Shift P
10: ADD A
No-Shift
0.000
1.010
1.010
1.1010
1.1010
1.11010
0.110
0.10010
0.010010
1.010
1.100010
15 / 21
Das negative Zweierkomplementsystem
Multiplikation - Baugh- Wooly- Verfahren
mithilfe von CSAs (Carry-Skip-Addierern) simultan Teilprodukte erzeugen
und akkumulieren
Zweierkomplement Baugh- Wooly- Multiplizierer
×
A5 B5
P10
−A5 B4
−A4 B5
P9
−A5 B3
A4 B4
−A3 B5
P8
−A5 B2
A4 B3
A3 B4
−A2 B5
P7
−A5 B1
A4 B2
A3 B3
A2 B4
−A1 B5
P6
−A5
−B5
−A5 B0
A4 B1
A3 B2
A2 B3
A1 B4
−A0 B5
P5
A4
B4
A4 B0
A3 B1
A2 B2
A1 B3
A0 B4
A3
B3
A3 B0
A2 B1
A1 B2
A0 B3
A2
B2
A2 B0
A1 B1
A0 B2
A1
B1
A1 B0
A0 B1
A0
B0
A0 B0
P4
P3
P2
P1
P0
A4
B4
−A4 B0
−A3 B1
−A2 B2
−A1 B3
−A0 B4
A3
B3
−A3 B0
−A2 B1
−A1 B2
−A0 B3
A2
B2
−A2 B0
−A1 B1
−A0 B2
A1
B1
−A1 B0
−A0 B1
A0
B0
−A0 B0
P4
P3
P2
P1
P0
Negatives Zweierkomplement Baugh- Wooly- Multiplizierer
×
−A5 B5
P10
A5 B4
A4 B5
P9
A5 B3
−A4 B4
A3 B5
P8
A5 B2
−A4 B3
−A3 B4
A2 B5
P7
A5 B1
−A4 B2
−A3 B3
−A2 B4
A1 B5
P6
−A5
−B5
A5 B0
−A4 B1
−A3 B2
−A2 B3
−A1 B4
A0 B5
P5
16 / 21
Das negative Zweierkomplementsystem
Multiplikation - Baugh- Wooly- Verfahren
17 / 21
Das negative Zweierkomplementsystem
Multiplikationen - Rundungen
häufig notwendig aus 2n Bit Zahl eine n Bit Zahl zu machen
n-1 niederwertigsten Bits abschneiden
allgemeiner Fall
n Bit Zahl (A) wird abgeschnitten → m Bit Zahl (B) entsteht
n−2
A = an−1 − ∑ ai 2i−n+1
i=0
n−2
B = bn−1 − ∑ bi 2i−n+1
i=n−m
wobei
bk = ak für n − 1 ≥ k ≥ n − m
Differenz zwischen A und B ist ∆:
n−m−1
∆ = − ∑ ai 2i−n+1
i=0
Der Wertebereich von ∆ liegt zwischen 0 und Ω, wobei:
n−m−1
Ω = − ∑ 2i−n+1
i=0
18 / 21
Das negative Zweierkomplementsystem
Multiplikationen - Rundungen
Somit ist
Ω = 2−n+1 − 2−m+1
wenn Werte von ∆ einheitlich verteilt sind → durchschnittliche
Veränderung durch Runden, ∆avg , halb so groß wie der Wert von Ω:
∆avg = 2−n − 2−m
Division
“digit recurrent dividers”
Vergleich gefolgt von einer Addition und einem Shift
Subtraktion gefolgt von einem Shift
oder nur eine Shift Operation
19 / 21
Zusammenfassung
Zusammenfassung
in Bildverarbeitung nun möglich Zahl 1 darzustellen
Nachteil: da konventionelle System nur gespiegelt ist, kann Zahl -1 nicht
mehr dargestellt werden
Lösungsmöglichkeit: Konvertierung der Zahlen wenn 1 oder -1 benötigt
werden
20 / 21
Quellenangaben
Quellen
Swartzlander, E.: The Negative Two’s Complement Number System. Austin
2007
Prof. Dr. Zehendner, E.: Rechnerarithmetik. Jena 2008
http://wapedia.mobi/de/Zweierkomplement
21 / 21
Herunterladen