Technische Grundlagen der Informatik – Kapitel 5
Prof. Dr. Jan Peters
Fachgebiet Intelligente Autonome Systeme (IAS)
Fachbereich Informatik WS 14/15
Meisenantworten … vielen Dank für die Hinweise!
§ Sniggerstatistik? Evtl. bald auf
http://lehre.ias.informatik.tu-darmstadt.de/TGDI/SniggerStatistik?
§ Kapitel 4 hochladen. Done! Sorry!
§ Kapitel im Vorraus hochladen (+viele gute Punkte). Würden wir gerne, aber meine Skript-Hiwis fallen gegenüber der Vorlesung zurück bzw. Ich hole sie immer wieder ein … sorry!
§ Rechtschreibfehler darfs Du behalten. Danke – besser aber mitteilen!
§ Scherzkekse. Bitte bei Chris zur Prüfung der physischen Belastbarkeit melden.
§ [kovd] … danke für den Hinweis!
§ Tafelwischroboter? Bitte zu mir kommen – tolles Thema für eine Bacherlorarbeit.
§ Folien gleich nach der Vorlesung. Ich bemühe mich. Aber Profs haben nunmal
alle Alzheimer…auch ich!
| Technische Grundlagen der Informatik - Kapitel 5 - Prof. Jan Peters
Kapitel 5 : Themenübersicht
§ Einleitung
§ Arithmetische Schaltungen
§ Zahlendarstellungen
§ Sequentielle Grundelemente
§ Speicherblöcke
§ Programmierbare Logikfelder und -schaltungen
Einleitung
§ Grundelemente digitaler Schaltungen:
§ Gatter, Multiplexer, Decoder, Register, Arithmetische Schaltungen, Zähler, Speicher, programmierbare Logikfelder
§ Grundelemente veranschaulichen
§ Hierarchie: Zusammensetzen aus einfacheren Elementen
§ Modularität: Wohldefinierte Schnittstellen und Funktionen
§ Regularität: Strukturen leicht auf verschiedene Größen anpassbar
§ Grundelemente werden verwendet zum Aufbau eines eigenen Mikroprozessors
§ Kapitel 7
| Technische Grundlagen der Informatik - Kapitel 5 - Prof. Jan Peters
1-Bit Addierer
A B
0 0 0 1 1 0 1 1
S Cout
S = Cout =
Halb- addierer
A B
S Cout
+
A B
0 0 0 1 1 0 1 1
S Cout
S = Cout =
Voll- addierer
Cin
0 0 0 1 1 0 1 1 00
00 1 1 11
A B
S
Cout Cin
+
1-Bit Addierer
A B
0 0 0 1 1 0 1 1
0 11 0 S Cout
0 00 1 S = Cout =
Halb- addierer
A B
S Cout
+
A B
0 0 0 1 1 0 1 1
01 10 S Cout
00 01
Voll- addierer
Cin
0 0 0 1 1 0 1 1 00
00 1 1 11
1 0 01 0
1 11
A B
S
Cout Cin
+
| Technische Grundlagen der Informatik - Kapitel 5 - Prof. Jan Peters
1-Bit Addierer
A B
0 0 0 1 1 0 1 1
0 11 0 S Cout
0 00 1 S = A ⨁ B Cout = AB
Halb- addierer
A B
S Cout
+
A B
0 0 0 1 1 0 1 1
0 1 10 S Cout
0 0 01
S = A ⨁ B ⨁Cin Cout = AB + ACin + BCin
Voll- addierer
Cin
0 0 0 1 1 0 1 1 0
0 00 1 1 11
1 0 01 0
1 11
A B
S
Cout Cin
+
Mehrbit-Addierer mit Weitergabe von Überträgen
A B
C
out+ C
inN N
§ Carry-propagate adder (CPA)
§ Verschiedene Typen
§ Ripple-carry-Addierer (langsam)
§ Carry-Lookahead Addierer (schnell)
§ Prefix-Addierer (noch schneller)
§ Carry-Lookahead und Prefix-Addierer sind schneller bei breiteren Datenworten
§ Benötigen aber auch mehr Fläche
Schaltsymbol
| Technische Grundlagen der Informatik - Kapitel 5 - Prof. Jan Peters
§ Kette von 1-bit Addierern
§ Überträge werden von niedrigen zu hohen Bits weitergegeben
§ Rippeln sich durch die Schaltung
§ Nachteil: Langsam
Ripple-Carry-Addierer
S
31A
30B
30S
30A
1B
1S
1A
0B
0S
0C
30C
29C
1C
0C
out+ + + +
A
31B
31C
in§ Verzögerung durch einen N-bit Ripple-Carry-Addierer ist
t
ripple= N t
FA
t
FAist die Verzögerung durch einen Volladdierer
Verzögerung durch Ripple-Carry-Addierer
| Technische Grundlagen der Informatik - Kapitel 5 - Prof. Jan Peters
§ Überträge nicht mehr von Bit-zu-Bit
§ Stattdessen: Berechne Übertrag C
outaus Block von k Bits
§ Nun zwei Signale
§ Generate (erzeuge neuen Übertrag)
§ Propagate (leite eventuellen Übertrag weiter)
§ Bits werden in Spalten organisiert
§ Haben wir eben beim Ripple-Carry-Addierer auch schon gemacht
§ War aber nicht spannend: Es gab nur eine Zeile
§ … ändert sich jetzt
Carry-Lookahead-Addierer (CLA)
§ Eine Spalte (Bit i) produziert einen Übertrag an ihrem Ausgang C
i§ Wenn sie den Übertrag selbst erzeugt (Generate, Gi)
§ Wenn sie einen von Ci-1 eingehenden Übertrag weiterleitet (Propagate, Pi)
§ Eine Spalte i erzeugt einen Übertrag falls A
iund B
ibeide 1 sind.
G
i= A
iB
i§ Eine Spalte leitet einen eingehenden Übertrag weiter falls A
ioder B
i1 ist
P
i= A
i+ B
i§ Damit ist der Übertrag C
iaus der Spalte i heraus
C
i= A
iB
i+ (A
i+ B
i)C
i-1= G
i+ P
iC
i-1Carry-Lookahead-Addierer: Definitionen
| Technische Grundlagen der Informatik - Kapitel 5 - Prof. Jan Peters
§ Schritt 1: Berechne G und P-Signale für einzelne Spalten (Einzelbits)
§ Schritt 2: Berechne G und P Signale für Gruppen von k Spalten (k Bits)
§ Schritt 3: Leite C
innun nicht einzelbitweise, sondern in k-Bit Sprüngen weiter
§ Jeweils durch einen k-bit Propagate/Generate-Block
Addition im Carry-Lookahead-Verfahren
§ Bestimme P
3:0und G
3:0Signale für einen 4b Block
§ Überlegung: 4b Block erzeugt Übertrag wenn
§ … Spalte 3 einen Übertrag erzeugt (G3=1) oder
§ … Spalte 3 einen Übertrag weiterleitet (P3=1), der vorher erzeugt wurde
G
3:0= G
3+ P
3(G
2+ P
2(G
1+ P
1G
0))
§ Überlegung: Der 4b Block leitet einen Übertrag direkt weiter
§ … wenn alle Spalten den Übertrag weiterleiten
P
3:0= P
3P
2P
1P
0§ Damit ist der Übertrag durch einen i:j Bit breiten Block C
iC
i= G
i:j+ P
i:jC
j-1Beispiel: Carry-Lookahead Addierer
| Technische Grundlagen der Informatik - Kapitel 5 - Prof. Jan Peters
32-bit CLA mit 4b Blöcken
B0 + +
+ +
P3:0
G3 P3 G2 P2 G1 P1 G0
P3 P2 P1 P0 G3:0
Cin Cout
A0
S0 C0 B1 A1
S1 C1 B2 A2
S2 C2 B3 A3
S3
Cin A3:0 B3:0
S3:0 4-bit CLA
Block Cin A7:4
B7:4
S7:4 4-bit CLA
Block C3 C7
A27:24 B27:24
S27:24 4-bit CLA
Block C23 A31:28
B31:28
S31:28 4-bit CLA
Block C27 Cout
Gi = Ai Bi
Pi = Ai + Bi
32-bit CLA mit 4b Blöcken
A3:0 B3:0
S3:0 4-bit CLA
Block Cin A7:4
B7:4
S7:4 4-bit CLA
Block C3 C7
A27:24 B27:24
S27:24 4-bit CLA
Block C23 A31:28
B31:28
S31:28 4-bit CLA
Block C27 Cout
B 0 + + + +
P 3:0 G 3 P 3 G 2 P 2 G 1 P 1 G 0 P 3 G 3:0
A 0 S 0 B 1 A 1 C 0
S 1 B 2 A 2 C 1
S 2 B 3 A 3 C 2
S 3
C in B 0
+ + + +
P 3:0 G 3 P 3 G 2 P 2 G 1 P 1 G 0 P 3 P 2 P 1 P 0 G 3:0
C in C out
A 0 S 0 B 1 A 1 C 0
S 1 B 2 A 2 C 1
S 2 B 3 A 3 C 2
S 3
C in B 0
+ + + +
P 3:0 G 3 P 3 G 2 P 2 G 1 P 1 G 0 P 3 P 2 P 1 P 0 G 3:0
C in C out
A 0 S 0 B 1 A 1 C 0
S 1 B 2 A 2 C 1
S 2 B 3 A 3 C 2
S 3
C in
B 0 + + + +
G 3 P 3 G 2 P 2 G 3:0
A 0 S 0 B 1 A 1 C 0
S 1 B 2 A 2 C 1
S 2 B 3 A 3 C 2
S 3
C in
| Technische Grundlagen der Informatik - Kapitel 5 - Prof. Jan Peters
§ Verzögerung durch N-bit carry-lookahead Addierer mit k-Bit Blöcken t
CLA= t
pg+ t
pg_block+ (N / k – 1) t
AND_OR+ k t
FA
wobei
§ tpg : Verzögerung P, G Berechnung für eine Spalte (ganz rechts)
§ tpg_block: Verzögerung P, G Berechnung für einen Block (rechts)
§ tAND_OR: Verzögerung durch AND/OR je k-Bit CLA Block (“Weiche”)
§ k tFA : Verzögerung zur Berechnung der k höchstwertigen Summenbits
§ Für N > 16 ist ein CLA oftmals schneller als ein Ripple-Carry-Addierer
§ Aber: Verzögerung hängt immer noch von N ab
§ Im wesentlichen linear
Carry-Lookahead Addierer
Präfix-Addierer
§ Führt Ideen des CLA weiter
§ Berechnet den Übertrag C
i-1in jede Spalte i so schnell wie möglich
§ Bestimmt damit die Summe jeder Spalte S
i= (A
i⨁ B
i) ⨁ C
i-1§ Vorgehen zur schnellen Berechnung aller C
i§ Berechne P und G für größer werdende Blöcke
§ 1b, 2b, 4b, 8b, …
§ Bis die Eingangsüberträge für alle Spalten bereitstehen
§ Nun nicht mehr N / k Stufen
§ Sondern log
2N Stufen
§ Breite der Operanden geht also nur noch logarithmisch in Verzögerung ein
| Technische Grundlagen der Informatik - Kapitel 5 - Prof. Jan Peters
Präfix-Addierer
§ Ein Übertrag wird entweder
§ … in einer Spalte i generiert
§ … oder aus einer Vorgängerspalte i-1 propagiert
§ Definition: Eingangsübertrag C
inin den ganzen Addierer kommt aus Spalte -1
G
-1= C
in, P
-1= 0
§ Eingangsübertrag in eine Spalte i ist Ausgangsübertrag C
i-1der Spalte i-1
C
i-1= G
i-1:-1G
i-1:-1ist das Generate-Signal von Spalte -1 bis Spalte i-1
§ Interpretation: Ein Ausgangsübertrag aus Spalte i-1 entsteht
§ … wenn der Block i-1:-1 selbst Übertrag in i-1 generiert oder aus i-2,3, … weiterleitet
19
Präfix-Addierer
§ Damit Summenformel für Spalte i umschreibbar zu
S
i= (A
i⊕ B
i) ⊕ G
i-1:-1§ Deshalb nun Ziel der Hardware-Realisierung:
§ Bestimme so schnell wie möglich G0:-1, G1:-1, G2:-1, G3:-1, G4:-1, G5:-1, …
§ Sogenannte Präfixe
| Technische Grundlagen der Informatik - Kapitel 5 - Prof. Jan Peters
Präfix-Addierer
§ Berechnung von P und G für variabel großen Block
§ Höchstwertiges Bit: i
§ Niederwertiges Bit: j
§ Unterteilt in zwei Teilblöcke (i:k) und (k-1:j)
§ Für einen Block i:j
G
i:j= G
i:k+ P
i:kG
k-1:jP
i:j= P
i:kP
k-1:j§ Bedeutung
§ Ein Block erzeugt einen Ausgabeübertrag, falls
§ … in seinem oberen Teil (i:k) ein Übertrag erzeugt wird oder
§ … der obere Teil einen Übertrag weiterleitet, der im unteren Teil (k-1:j) erzeugt wurde
§ Ein Block leitet einen Eingabeübertrag als Ausgabeübertrag weiter, falls
§ Sowohl der untere als auch der obere Teil den Übertrag weiterleiten
Aufbau eines Präfix-Addierers
0:-1 -1
2:1
1:-1 2:-1
0 1 2
4:3 3
6:5
5:3 6:3
4 5 6
5:-1
6:-1 4:-1 3:-1
8:7 7
10:9
9:7 10:7
8 9 10
12:11 11
14:13
13:11 14:11
12 13 14
13:7
14:7 12:7 11:7
9:-1
10:-1 8:-1 7:-1
13:-1
14:-1 12:-1 11:-1 15
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
Gk-1:j Pk-1:jGi:k
Pi:k
Gi:j Pi:j
Bi Ai
Gi:i Pi:i i
i:j
Bi Ai Gi-1:-1
i Legende
G
i:j= G
i:k+ P
i:kG
k-1:jP
i:j= P
i:kP
k-1:j| Technische Grundlagen der Informatik - Kapitel 5 - Prof. Jan Peters
§ Verzögerung durch einen N-bit Präfix-Addierer
t
PA= t
pg+ (log
2N) t
pg_prefix+ t
XORwobei
§ tpg: Verzögerung durch P, G-Berechnung für Spalte i (ein AND bzw. OR-Gatter)
§ tpg_prefix: Verzögerung durch eine Präfix-Stufe (AND-OR Gatter)
§ tXOR : Verzögerung durch letztes XOR der Summenberechnung
Verzögerung durch Präfix-Addierer
23
LEHRE WIKI TEST IN
DREI
FOLIEN
§ Szenario: 32b Addition mit Ripple-Carry, Carry-Lookahead (4-bit Blöcke), Präfix-Addierer
§ Verzögerungen von Komponenten
§ Volladdierer tFA = 300ps
§ Zwei-Eingangs Gatter tAND = tOR = tXOR = 100ps
t
ripple= N t
FA=
t
CLA= t
pg+ t
pg_block+ (N / k – 1) t
AND_OR+ k t
FA=
=
t
PA= t
pg+ (log
2N) t
pg_prefix+ t
XOR=
Vergleich von Addiererverzögerungen
| Technische Grundlagen der Informatik - Kapitel 5 - Prof. Jan Peters
§ Szenario: 32b Addition mit, Ripple-Carry, Carry-Lookahead (4-bit Blöcke), Präfix-Addierer
§ Verzögerungen von Komponenten
§ Volladdierer tFA = 300ps
§ Zwei-Eingangs Gatter tAND = tOR = tXOR = 100ps
t
ripple= N t
FA= 32 (300 ps) = 9,6 ns
t
CLA= t
pg+ t
pg_block+ (N / k – 1) t
AND_OR+ k t
FA= [100 + 600 + (7) 200 + 4 (300)] ps
= 3,3 ns
t
PA= t
pg+ (log
2N) t
pg_prefix+ t
XOR= [100 + (log
232) 200 + 100] ps = 1,2 ns
Vergleich von Addiererverzögerungen
LEHRE WIKI FRAGE
§ Bitte jetzt auf LEHRE WIKI eine
Frage beantworten!
| Technische Grundlagen der Informatik - Kapitel 5 - Prof. Jan Peters
Subtrahierer
Symbol Implementierung
+
A B
-
Y Y
A B
N N
N
N N
N
N
Vergleicher: Gleichheit
Symbol Implementierung
A
3B
3A
2B
2A
1B
1A
0B
Gleich
=
A B
Gleich
4 4
| Technische Grundlagen der Informatik - Kapitel 5 - Prof. Jan Peters
Vergleicher: Kleiner-Als
A < B -
B A
[N-1]