bin Korekcja 2006

Transkrypt

bin Korekcja 2006
Szybkie sumatory
Szybko
dodawania (odejmowania)
xk−1
ck
FA/FS
yk−1
ck−1
xk−2
FA/FS
sk−1
yk−2
ck−2
x1–m
c2–m
sk−2
y1–m
c1–m
x–m
y–m
FA/FS
FA/FS
s1–m
s–m
c–m
Schemat dodawania / odejmowania wielopozycyjnego
Propagacja przeniesienia
• wykonanie działania na pozycji i wymaga przeniesienia z pozycji i−1
• czas wytworzenia sumy (ró nicy) – stały od chwili ustalenia przeniesienia
• gwarantowany czas wykonania dodawania lub odejmowania zale y od
najdłu szego czasu przesłania zmiany przeniesienia z pozycji najni szej
Czas dodawania n-pozycyjnego (czas dodawania jednopozycyjnego T = 2)
ź
2 log 2 n ≤ TΣ ≤ 2 n
© Janusz Biernat, 10-06-Szybkie sumatory.doc, 2 pa dziernika 2006
FAST–1
Szybkie sumatory
Przyspieszanie dodawania dwuargumentowego
Skracanie czasu propagacji przeniesie
• antycypacja przeniesie (carry look-ahead adder, CLA)
• wytwarzanie przeniesie równoległych (parallel prefix adder, PPA)
• skracanie cie ki propagacji przeniesienia (carry skip adder, CSKA)
Składanie sum blokowych
• składanie sum warunkowych (conditional sum adder, COSA)
o tworzenie wariantowych sum dla bloków 2i kolejnych pozycji
• sumator z przeł czaniem sum cz ciowych (carry-select adder, CSLA)
o równoległe wytwarzanie alternatywnych sum cz ciowych
• składanie sum korygowanych (carry-increment adder, CIA)
o korekcja sum blokowych przeniesieniami
ź
Składanie sum redundantnych
• nadmiarowa reprezentacja argumentów (SD) → dodawanie dwuetapowe
© Janusz Biernat, 10-06-Szybkie sumatory.doc, 2 pa dziernika 2006
FAST–2
Szybkie sumatory
Sumator z antycypacj przeniesie (carry look-ahead adder, CLA)
Funkcja przeniesienia
ci +1 = xi yi + ( xi ⊕ yi ) ci = xi yi + ( xi + yi ) ci
• w obliczaniu przeniesienia funkcje OR (xi + yi) i XOR (xi ⊕ yi) s zamienne
• funkcja wytwarzania (generowania) przeniesienia
x i = y i = 1 ⇒ przeniesienie wyj ciowe ci +1 = 1
g i = xi yi ,
• funkcja półsumy
hi = xi ⊕ yi
precyzyjnie okre la warunek przekazywania (propagacji) przeniesienia:
xi ≠ yi ⇒ c i +1 = c i , ale funkcja OR jest prostsza, wi c przyjmuje si
• funkcja przekazywania (propagacji) przeniesienia ( pi – f. wygaszania)
pi = xi + yi
ź
• w wyra eniach na przeniesienie funkcje p# mo na zast pi funkcjami h#
© Janusz Biernat, 10-06-Szybkie sumatory.doc, 2 pa dziernika 2006
FAST–3
Szybkie sumatory
Funkcje przeniesie w sumatorach CLA
Funkcje c# mo na rozwija wzgl dem kilku kolejnych pozycji
ci +1 = gi + pi ci
ci + 2 = gi +1 + pi +1 g i + pi +1 pi ci
ci +3 = g i + 2 + pi + 2 gi +1 + pi + 2 pi +1 gi + pi + 2 pi +1 pi ci
ci + 4 = gi +3 + pi +3 g i + 2 + pi +3 pi + 2 gi +1 + pi +3 pi + 2 pi +1 gi + pi +3 pi + 2 pi +1 pi ci
• zło ono funkcji c# ro nie z kwadratem zasi gu s
• bariera technologiczna – ograniczona liczba wej bramki
ci + s +1 = g i + s + pi + s ci + s = g i + s + pi + s ( g i + s −1 + pi + s −1ci + s −1 ) = ...
= g i + s + pi + s g i + s −1 + pi + s pi + s −1 g i + s −2 + ... + pi + s pi + s −1... pi +1 ( g i + pi ci )
ci + s +1 = G ( gi + s , pi + s ,..., g i , pi ) + ci P( g i + s , pi + s ,..., g i , pi ) =
ź
= G ( gi + s , hi + s ,..., gi , hi ) + ci P( gi + s , hi + s ,..., gi , hi )
© Janusz Biernat, 10-06-Szybkie sumatory.doc, 2 pa dziernika 2006
FAST–4
Szybkie sumatory
Moduł sumatora z antycypacj przeniesie (CLA)
xi+3
pi+3
yi+3
xi+2
gi+3
pi+2
yi+2
xi+1
gi+2 pi+1
yi+1
xi
gi+1
pi
yi
gi
ci
ci+4
ci+4
ci+3
ci+2
ci+1
CLA
si+3
si+2
si+1
si
ź
Czterobitowy sumator CLA
© Janusz Biernat, 10-06-Szybkie sumatory.doc, 2 pa dziernika 2006
FAST–5
Szybkie sumatory
Ła cuch sumatorów z antycypacj przeniesie (CLA)
x15:12
c16
y15:12
c12
CLA
x11:8
c8
CLA
s15:12
x7:4
y11:8
y7:4
c4
CLA
s11:8
x3:0
y3:0
CLA
s7:4
0
s3:0
Sumator zbudowany z kaskady bloków CLA
x15:12
CLA
y15:12
c12
G,P
x11:8
y11:8
c8
CLA
CLA
y7:4
c4
G,P
G,P
c16
x7:4
x3:0
y3:0
0
CLA
G,P
CLG
s15:12
s11:8
s7:4
s3:0
ź
Sumator CLA z blokiem wytwarzania przeniesie CLG
© Janusz Biernat, 10-06-Szybkie sumatory.doc, 2 pa dziernika 2006
FAST–6
Szybkie sumatory
Propagacja i generowanie przeniesie – intuicje (1)
n
o
t
c
u
c
i
AB
cout=1 je li:
• cin=1 jest przesyłane przez blok AB do wyj cia cout
• wewn trz bloku AB jest wytwarzane cout=1, za cin jest dowolne
i
c
n
o
t
c
u
c
B
m
A
ź
cout=1 je li:
• cin=1 jest przesyłane przez blok B do cm a nast pnie przez blok A do cout
• wewn trz bloku A jest wytwarzane cout=1, za cm jest dowolne
• wewn trz bloku B jest wytwarzane cm=1,
a nast pnie przez blok A jest przekazywane do cout
© Janusz Biernat, 10-06-Szybkie sumatory.doc, 2 pa dziernika 2006
FAST–7
Szybkie sumatory
Propagacja i generowanie przeniesie – intuicje (2)
1
GA
G BA
1
PA
1
GB
P BA
1
PA
1
1
PB
GC
G DC
PC
P BA
1
PA
1
1
GD
P DC
1
PB
PC
1
PD
1
cout = G A + PAGB + PA PB cin / B = GBA + PBA cin / B
ź
cout = GBA + PBAGDC + PBA PDC cin / D = GDCBA + PDCBA cin / D
© Janusz Biernat, 10-06-Szybkie sumatory.doc, 2 pa dziernika 2006
FAST–8
Szybkie sumatory
Funkcje grupowej antycypacji przeniesie
Wyznaczanie funkcji przekazywania (propagacji) przeniesienia P
przez bloki sumatora (iloczyn) jest działaniem ł cznym (asocjacyjnym)
PCBA = ( PA PB ) PC = PA ( PB PC )
Wyznaczanie funkcji wytwarzania (generowania) przeniesienia G
w bloku sumatora jest tak e działaniem ł cznym (asocjacyjnym)
GCBA = G A + PAGCB = G A + PA (GB + PB GC ) =
= GBA + PBAGC = (G A + PAGB ) + PA PB GC
Funkcje rekursywnie skojarzone – takie, które opisuje operator asocjacyjny •
yi = xi •yi–1 ,
y0 = x0
Wyznaczanie funkcji rekursywnie skojarzonej – problem prefiksowania
Funkcje G,P s rekursywnie skojarzone przez wektorowy operator asocjacyjny
(GBA , PBA ) = (G A , PA ) • (GB , PB ) = (G A + PAGB , PA PB )
ź
(GCBA , PCBA ) = (G A , PA ) • (GB , PB ) • (GC , PC )
© Janusz Biernat, 10-06-Szybkie sumatory.doc, 2 pa dziernika 2006
FAST–9
Szybkie sumatory
Funkcje wytwarzania przeniesie i sum
Dla dowolnego bloku sumatora pomi dzy pozycjami i oraz k (k ≥ s ≥ i ):
ck +1 = Gi ,k + Pi ,k ci
przy tym
Gi ,k = Gs +1,k + Ps +1,k Gi ,s ,
Pi ,k = Pi ,s Ps +1,k .
Poniewa Gk ,k = g k = xk yk i Pk ,k = pk = xk + yk (lub Pk ,k = hk = xk ⊕ yk ), wi c
Gi , k = g k + pk g k −1 +...+
k
∏ p j gi ,
j = i +1
k
Pi ,k = ∏ p j ,
j =i
Je li c0 = 0, to warto
sumy si zale y tylko od warto ci funkcji G0,i−1 oraz hi
si = hi ⊕ ci = hi ⊕ G0,i −1
– schemat wyznaczania funkcji G0,i i P0,i mo na optymalizowa
ź
– wszystkie funkcje G0,i i P0,i mo na wyznaczy w sekwencji log2n działa
© Janusz Biernat, 10-06-Szybkie sumatory.doc, 2 pa dziernika 2006
FAST–10
Szybkie sumatory
Sumatory prefiksowe (PPA)
sumator prefiksowy – parallel prefix adder, PPA
s i = hi ⊕ G 0 ,i −1
xk–1
yk–1
xi
yi
xi–1
yi–1
x0
y0
GP
si
sk–1
ź
Blok GP – wytwarzanie warto ci przeniesie
© Janusz Biernat, 10-06-Szybkie sumatory.doc, 2 pa dziernika 2006
si–1
s0
ci = G0,i–1
FAST–11
Szybkie sumatory
Sumator uniwersalny (1)
Je li c0 nie jest ustalone to
si = hi ⊕ ci = hi ⊕ (G0,i −1 + P0,i −1c0 )
0
c
cwe=
0
y
0
x
0
y
1
x
1
y
2
x
2
y
3
3
x
3
yk
–
3
xk
–
2
yk
–
2
xk
–
1
yk
–
–
xk
1
Aby unikn wielokrotnego rozgał zienia sygnału c0 w strukturze prefiksowej
mo na uzupełni sumator o blok wej ciowy CSA, redukuj c w ten sposób jeden
sygnał na pozycji najmniej znacz cej.
sumator PPA
cwy
Wnoszone opó nienie w kategoriach AT jest takie samo jak w realizacji funkcji
G0,i–1+P0,i–1 c0, ale nie wyst puje problem rozgał zienia sygnału c0 (faktycznie
TXOR < TAND-OR).
ź
Podobne rozwi zanie mo na zastosowa w uniwersalnym sumatorze U2.
© Janusz Biernat, 10-06-Szybkie sumatory.doc, 2 pa dziernika 2006
FAST–12
Szybkie sumatory
Sumator uniwersalny (2)
Je li c0 nie jest ustalone to
si = hi ⊕ ci = hi ⊕ (G0,i −1 + P0,i −1c0 )
Aby unikn konieczno ci korekcji ci w sytuacji gdy c0 nie jest znane z góry,
mo na potraktowa c0 jako funkcj generowania przeniesienia z pozycji „–1”,
g–1= c0, gdy jednocze nie p–1= 0, i wtedy wszystkie funkcje P–1,i = 0 oraz:
si = hi ⊕ [G0,i −1 + P0,i −1 ( g −1 + p−1c−1 ) ]
wi c sumy trzeba oblicza jako:
si = hi ⊕ ci = hi ⊕ (G−1,i −1 + P−1,i −1c−1 ) = hi ⊕ G−1,i −1
To oznacza, e graf prefiksowy musi obejmowa n+1 pozycji. W szczególno ci:
G−1,0 = g 0 + p0 g −1 , P−1,0 = p0 p −1
G−1,1 = g1 + p1G−1,0 , P−1,1 = p1 P−1,0
To rozwi zanie jest szybsze ni poprzednie, a problemem jest szybka realizacja
(3 poziomy logiczne) funkcji:
ź
G−1,1 = g1 + p1 g 0 + p1 p0 c0 .
© Janusz Biernat, 10-06-Szybkie sumatory.doc, 2 pa dziernika 2006
FAST–13
Szybkie sumatory
Tworzenie funkcji G,P
• regularne struktury dla n = 2k,
• w innych przypadkach przyj k = int log 2 2n i usun
zb dne gał zie grafu
• Ladner-Fischer (Sklansky)
– tworzenie funkcji G i P dla par, czwórek, ósemek, ... s siednich bitów
• Kogge-Stone
– optymalizacja ze wzgl du na liczb rozgał zie
• Brent-Kung
– optymalizacja dla struktur CMOS
ź
• Han-Carlson
– tworzenie funkcji G i P dla par, czwórek, ósemek, ... s siednich bitów
poczynaj c od bitu parzystego, potem doł czenie nieparzystych
© Janusz Biernat, 10-06-Szybkie sumatory.doc, 2 pa dziernika 2006
FAST–14
Szybkie sumatory
Przekształcenie prefiksowe Ladnera-Fischera (Sklansky) dla funkcji G,P
Poziom 0 (i = 0, 1, … , n−1)
Pi,i = xi ⊕ yi , Gi,i = xi yi
G0,0
Poziom 1 (i = 0, 1, … , 2 − 1 n−1)
(G2i,2i+1 , P2i,2i+1 ) = ( G2i+1,2i+1 , P2i+1,2i+1 )l (G2i,2i, P2i,2i)
Poziom 2 (i = 0, 1, … , 2 − 2 n−1; s = 2, 3)
(G4i,4i+s , P4i,4i+s ) = ( G4i+2,4i+s , P4i+2,4i+s ) l ( G4i,4i+1, P4i,4i+1)
Poziom 3 (i = 0, 1, … , 2 − 3 n−1; s = 4, 5, 6, 7)
(G8i,8i+s , P8i,8i+s ) = ( G8i+4,8i+s , P8i+4,8i+s ) l ( G8i,8i+3, P8i,8i+3)
G0,1
G0,3 , G0,2
G0,7 , …, G0,4
Poziom 4 (i = 0, 1, … , 2 − 4 n−1; s = 8, 9, …, 15)
G0,15 , …, G0,8
(G16i,16i+s , P16i,16i+s ) = ( G16i+8,16i+s , P16i+8,16i+s ) l ( G16i,16i+7,P16i,16i+7)
ź
…
© Janusz Biernat, 10-06-Szybkie sumatory.doc, 2 pa dziernika 2006
FAST–15
Szybkie sumatory
Przekształcenie prefiksowe Kogge-Stone’a dla funkcji G,P
Poziom 0 (i = 0, 1, … , n−1)
Pi,i = xi ⊕ yi , Gi,i = xi yi
G0,0
Poziom 1 (i = 0, 1, … , 2 − 1 n−1)
(Gi,i+1 , Pi,i+1 ) = ( Gi+1,i+1 , Pi+1,i+1 )l (Gi,i, Pi,i)
Poziom 2 (s = 0, 1; i = 0, 1, … , n−22)
G0,s+2 = Gs+1,s+2 + Ps+1,s+2 G0,s
(Gi,i+3 , Pi,i+3 ) = ( Gi+2,i+3 , Pi+2,i+3 )l (Gi,i+1 , Pi,i+1 )
Poziom 3 (s = 0, 1, …, 22−1; i = 0, 1, … , n−23)
G0,s+4 = Gs+1,s+4+ Ps+1,s+4G0,s
(Gi,i+7 , Pi,i+7 ) = ( Gi+4,i+7 , Pi+4,i+7 )l (Gi,i+3 , Pi,i+3 )
G0,1
( G0,3 ) , G0,2
G0,3
(G0,7 ) , G0,6 , G0,5 , G0,4
G0,7
ź
Poziom 4 (s = 0, 1, …, 23−1; i = 0, 1, … , n−24)
G0,s+8 = Gs+1,s+8+ Ps+1,s+8G0,s
(G0,15 ) , … …, G0,8
(Gi,i+15 , Pi,i+15 ) = ( Gi+8,i+15 , Pi+8,i+15 )l (Gi,i+7 , Pi,i+7 )
G0,15
…
© Janusz Biernat, 10-06-Szybkie sumatory.doc, 2 pa dziernika 2006
FAST–16
Szybkie sumatory
Przekształcenie prefiksowe Brenta-Kunga dla funkcji G,P
Poziom 0 (i = 0, 1, … , n−1)
Pi,i = xi ⊕ yi , Gi,i = xi yi
G0,0
Poziom 1 (i = 0, 1, … , 2 − 1 n−1)
(G2i,2i+1 , P2i,2i+1 ) = ( G2i+1,2i+1 , P2i+1,2i+1 )l (G2i,2i, P2i,2i)
Poziom 2 (i = 0, 1, … , 2 − 2 n−1)
(G4i,4i+3 , P4i,4i+3 ) = ( G4i+2,4i+3 , P4i+2,4i+3 )l (G4i,4i+1, P4i,4i+1)
Poziom 3 (i = 0, 1, … , 2 − 3 n−1)
(G8i,8i+7 , P8i,8i+7 ) = ( G8i+4,8i+7 , P8i+4,8i+7 )l (G8i,8i+3, P8i,8i+3)
G0,1
G0,3
G0,7
…
ź
Poziom m = log 2 n (T = 2m−2)
(G0,3T−1, P0,3T−1) = ( G2T,3T−1, P2T,3T−1)l (G0,2T −1, P0,2T −1)
(G0,n−1, P0,n−1) = ( G2T,n−1, P2T,n−1)l (G0,2T −1, P0,2T −1)
…
Poziom m+r (i = (0), 1, … , 22−1, R = 2m−2−s), r = 1, … , m−2
(G0,iR−1, P0,iR−1) = ( G2R,iR−1, P2R,iR−1)l (G0,2R −1, P0,2R −1)
© Janusz Biernat, 10-06-Szybkie sumatory.doc, 2 pa dziernika 2006
G0,3T
G0,n −1
FAST–17
Szybkie sumatory
Przekształcenie prefiksowe Han’a-Carlson’a dla funkcji G,P
Poziom 0 (i = 0, 1, … , n−1)
Pi,i = xi ⊕ yi , Gi,i = xi yi
G0,0
Poziom 1 (i = 0, 1, … , 2 − 1 n−1)
(G2i,2i+1 , P2i,2i+1 ) = ( G2i+1,2i+1 , P2i+1,2i+1 )l (G2i,2i, P2i,2i)
Poziom 2 (i = 0, 1, … , 2 − 2 n−1)
(G2i,2i+3 , P2i,2i+3 ) = ( G2i+2,2i+3 , P2i+2,2i+3 )l (G2i,2i+1 , P2i,2i+1 )
Poziom 3 (s = 0, 1; i = 0, 1, … , 2 − 3 n−1)
(G2i,2i+7 , P2i,2i+7 ) = ( G2i+4,2i+7 , P2i+4,2i+7 )l (G2i,2i+3, P2i,2i+3)
G0,2s+5 = G2s+1,2s+5 + P2s+1,2s+5 G0,2s
G0,1
G0,3
G0,7 , G0,5
Poziom 4 (s = 0, 1, …, 22−1; i = 0, 1, … , 2 − 3 n−1)
(G2i,2i+15 , P2i,2i+15 ) = ( G2i+8,2i+15 , P2i+8,2i+15 )l (G2i,2i+7, P2i,2i+7)
G0,2s+9 = G2s+1,2s+9 + P2s+1,2s+8 G0,2s
G0,15 , G0,13 , G0,11 , G0,9
ź
...
Poziom log2n+1 (i = 0, 1, … , 2 − 1 n−1)
G0,2i= G2i,2i+ P2i,2iG0,2i−1
© Janusz Biernat, 10-06-Szybkie sumatory.doc, 2 pa dziernika 2006
G0,2i, … , G0,4 , G0,2
FAST–18
Szybkie sumatory
Prefiksowe schematy generowania i propagacji przeniesienia (PPA)
15 14 13 12 11 10
9
8
7
6
5
4
3
2
1
0
2
1
0
0
15 14 13 12 11 10
9
8
7
6
5
4
3
2
1
0
0
1
2
1
2
3
3
4
4
Graf prefixowy (Kogge & Stone)
Graf prefixowy (Sklansky / Ladner-Fischer)
15 14 13 12 11 10
9
8
7
6
5
4
3
2
1
0
15 14 13 12 11 10
0
0
1
1
2
2
9
8
7
6
5
4
3
3
3
4
5
4
6
5
Graf prefixowy (Brent–Kung)
Graf prefixowy – (Han & Carlson)
¡ – przekazywanie G oraz P
l – operator prefiksowy (GBA,PBA) = (GB,PB)l (GA,PA)
ź
¤ – wytwarzanie funkcji Gi,i = gi oraz Pi,i = pi
© Janusz Biernat, 10-06-Szybkie sumatory.doc, 2 pa dziernika 2006
FAST–19
Szybkie sumatory
Charakterystyki grafów prefiksowych
Ladner-Fischer – log 2 n poziomów logicznych, minimum elementów GP
nierównomierne obci enia (Sklansky)
Kogge & Stone – log 2 n poziomów logicznych, wi cej elementów GP,
rozło ona obci alno wyj
Brent-Kung
– >log 2 n poziomów logicznych, mniej elementów GP,
stała obci alno wyj
Han & Carlson – >log 2 n poziomów logicznych, najmniej elementów GP,
najmniejsza obci alno wyj
Parametry sieci GP jako elementy PPA
Typ struktury
2
/3 n
½ n log 2 n
2n – n log 2 n –2
n log 2 n – n + 1
½ n log2n
ź
RCA
Ladner-Fischer
Brent-Kung
Kogge & Stone
Han & Carlson
liczba ogniw GP liczba poziomów obci enie
© Janusz Biernat, 10-06-Szybkie sumatory.doc, 2 pa dziernika 2006
n–1
log 2 n
2 log 2 n – 2
log 2 n
log 2 n + 1
przeł czenia
2
n /2
n /2
¼ n log 2 n
log 2 n + 1 ~ 3/8 n log 2 n
2
½ n log 2 n
2
¼ n log 2 n
FAST–20
Szybkie sumatory
Sumy warunkowe – koncepcja
L xi + y i
0 ci0+1
si0:i
ci1+1
si1:i
1 c20i + 2
s20i +1:2i
c12i + 2
s12i +1:2i
2 c40i + 4
s40i +3:4i
c14i + 4
s14i +3:4i
1
0
1
0
0
1
1
0
1
1
0
0
0
1
1
1
0
0+1
0
1
—
—
0
1
1
1
— —
— —
1
0
1
1
0
1
1
1
1
0
1
1
1
0
0
ź
s 37:0
1+0 0+0 1+1 1+0 0+1 1+1 1+0
0
0
1
0
0
1
0
1
0
0
1
1
0
1
1
0
1
1
1
1
1
0
1
1
0
0
1
0
© Janusz Biernat, 10-06-Szybkie sumatory.doc, 2 pa dziernika 2006
0
0
1
1
— — — —
— — — —
0
0
1
1
FAST–21
Szybkie sumatory
Sumator sum warunkowych (conditional sum adder, COSA)
Tworzenie alternatywnych sum jedno-, dwu-, cztero-, o mio-, ...-bitowych
Poziom 0 – sumy i przeniesienia warunkowe dla osobnych bitów (i = 0,1,...)
xi + yi + 0 = 2ci0:i + si0:i oraz xi + yi + 1 = 2ci1:i + si1:i
s i:i = {si0:i , si1:i } = {xi ⊕ yi , xi ≡ yi }
c i +1 = {ci0+1 , ci1+1} = {xi yi , xi + yi }
Poziom p (|| – zło enie wektorów)
– warunkowe sumy sα2 ri + 2 r −1, 2 ri i przeniesienia cα2 r (i +1) grup r = 2p bitów,
– dla i = 0,1,..., n·2–p − 1
sα2 ri + 2 r −1, 2 ri = [cα2 ri + r s12 ri + 2 r −1, 2 ri + r + (1 − cα2 ri + r ) s12 ri + 2 r −1, 2 ri + r ] || sα2 ri + r −1, 2 ri ,
cα2 r (i +1) = c α2 ri + r c12 ri + 2 r + (1 − c α2 ri + r ) c20ri + 2 r
ź
Ko cowy wynik sumowania powstaje na poziomie k = log 2 n (r = 2k).
© Janusz Biernat, 10-06-Szybkie sumatory.doc, 2 pa dziernika 2006
FAST–22
Szybkie sumatory
Schemat sumatora sum warunkowych
y7 x7
y6 x6
Σ0/1
Σ0/1
1 0
1 0
1 0
1 0
1 0
1 0
1 0
1 0
s6
x
c1
y4 x4
Σ0/1
1 0
s7
c7
y5 x5
y3 x3
Σ0/1
1 0
1 0
Σ0/1
1 0
1 0
1 0
1 0
y2 x2
y1 x1
y0 x0
Σ0/1
Σ0/1
Σ0/1
1 0
1 0
s5
s4
s3
s2
s1
s0
y
0
0
1
Σ0/1
s1
L2
L3
1
c
L1
1 0
1
0
1 0
L0
0
s0
ź
O miobitowy sumator sum warunkowych
T = 2 log 2 2 n , A = ½ (n log 2 n + 2n log2n)= 3n log 2 n
© Janusz Biernat, 10-06-Szybkie sumatory.doc, 2 pa dziernika 2006
FAST–23
Szybkie sumatory
Sumator sterowany przeniesieniem (CSLA)
Sumator multipleksowany sterowany przeniesieniem (carry-select adder)
wybór k i -pozycyjnych sum warunkowych zale nie od przeniesienia
x m,l ym,l
x k,i
x l,k yl,k
yk,i
0
CPA
CPA
s0m,l
x m,l ym,l
CPA
0
sl,k
x l,k yl,k
x k,i
s0k,i
yk,i
x i, 0 yi, 0
1
CPA
s1m,l
cm +1
CPA
CPA
1
sl,k
s1k,i
0
CPA
MPX
MPX
MPX
sm,l
sl,k
s k,i
si, 0
Schemat logiczny sumatora multipleksowanego sterowanego przeniesieniem
ź
Sumy blokowe obliczane jednocze nie ⇒ wy sze bity→wi ksze bloki
Opó nienie – > 2 2n (optymalna liczba bloków – około 2n )
© Janusz Biernat, 10-06-Szybkie sumatory.doc, 2 pa dziernika 2006
FAST–24
Szybkie sumatory
Sumator z przeskokiem przeniesie (CSKA)
Suma w bloku s-bitowym zale y od przeniesienia wej ciowego (carry-in).
propagacja przeniesienia przez cały blok → „przeskok” przeniesienia
cn +1
xn,m yn,m
xm,l ym,l
CPA
CPA
Pn,m
sn,m
cm +1
Pm,l
x j,i
x l,k yl,k ck+1
CPA
cl +1
s m,l
Pl,k
yj,i
x i,0 yi,0 c0
CPA
CPA
cj +1
sl,k
Pj,i
s j,i
ci +1
Pi,0
s i,0
...
Schemat sumatora z przeskokiem przeniesie CSKA (carry-skip adder)
Opó nienie wnoszone przez sumator CSKA zale y od
– czasu wytworzenia przeniesienia w bloku, w którym zaczyna si propagacja,
– czasu wytworzenia sumy w bloku ,w którym ko czy si propagacja,
– czasu przeskoku przeniesienia przez bloki wewn trzne.
l jednakowych bloków k-bitowych (n = kl) opó nienie wyniesie
ź
∆ 0 = [(k − 1) + l − 2 + (k − 1)]δ = [2k + nk −1 − 4]δ ≥ 2[ 2n − 2]δ
© Janusz Biernat, 10-06-Szybkie sumatory.doc, 2 pa dziernika 2006
FAST–25
Szybkie sumatory
Analiza szybko ci sumatora z przeskokiem przeniesie
Czas dodawania:
• czas wytworzenia przeniesienia na wyj ciu u–go bloku wej ciowego
• czas przeskoku przeniesienia przez [v − (u+1)] bloków
• czas wytworzenia sumy od ustalenia przeniesienia na wej ciu bloku v
∆ (u , v) = [( g u − 1) + (u − v − 1) + ( g v − 1)]δ
6 bloków
8 bloków
5-5
5-6-5-4
6-5-4
3-6-6-3
6-6
4-5-5-4
4-5-4
2-3-4-4-4-3-2
3-4-4-4-3
3-4-4-4
1-2-3-6-6-3-2-1
1-2-4-5-5-4-2-1
1-2-3-4-5-4-3-2
1-2-3-4-4-4-3-2-1
ź
9 bloków
cie ka
struktura
4-4-4-4-4-4
3-4-5-5-4-3
2-5-6-5-4-2
© Janusz Biernat, 10-06-Szybkie sumatory.doc, 2 pa dziernika 2006
opó nienie
(4−1)+4+(4−1) = 10
(5−1)+0+(5−1) = 8
(5−1)+2+(4−1) = 9
(6−1)+1+(4−1) = 9
(3−1)+2+(3−1) = 6
(6−1)+0+(6−1) = 10
(4−1)+2+(4−1) = 8
(4−1)+1+(4−1) = 7
(2−1)+5+(2−1) = 7
(3−1)+3+(3−1) = 7
(3−1)+2+(4−1) = 7
max
10
8
9
9
10
8
7
7
7
7
FAST–26
Szybkie sumatory
Optymalizacja sumatora z przeskokiem przeniesie
Zało enie: standardowe opó nienia prostych funkcji
Heureza
• ła cuchy optymalne:
je li rozmiar k bloków wytwarzaj cych mniej znacz ce pozycje sumy
jest typu g u + i = g u + i −1 + 1, i=1,2 ,...,k , to maksymalne opó nienie
gu+kδ = (gu+ i − 1)δ +(k − i)δ = (gu+ k − 1)δ ;
je li rozmiar s bloków wytwarzaj cych bardziej znacz ce pozycje sumy
jest typu g v + i = g v + i −1 − 1, i=0,1,2 ,...,s-1, to maksymalne opó nienie
gv+sδ = (gv+ i − 1)δ +(s − i)δ = (gv+ s − 1)δ ;
• ła cuchy nieoptymalne:
je li skrajne bloki ła cucha nie s skrajnymi blokami ła cuchów
optymalnych, to tworz cie k krytyczn propagacji przeniesienia.
ź
Wnioski
• optymalna struktura sumatora powinna by typu 1-2-3-...-3-2-1.
• optymaln struktur sumatora jest tak e „1-2-3-...-3-2-1”\”1-2-…-s”.
© Janusz Biernat, 10-06-Szybkie sumatory.doc, 2 pa dziernika 2006
FAST–27
Szybkie sumatory
Optymalizacja sumatora z przeskokiem przeniesie - przykład
• n-bitowy ła cuch optymalny 1-2-3-...-3-2-1 zawiera 2 n − 1 bloków
• sumator n-bitowy powinien mie najwy ej  2 n − 1  bloków
• (p–1)2 ≤ n ≤ p2–s2 ⇒ sumator n-bitowy powinien mie ≤ 2(p–s) bloków
Przykład. Sumator 32-bitowy powinien mie ≤ 8 bloków (32=62–22)
liczba grup
9
8
8
8
struktura sumatora
2-3-4-5-4-5-4-3-2
3-4-5-4-4-5-4-3
2-3-4-6-6-5-4-2
2-3-4-5-6-5-4-3
maksymalne opó nienie
(5−1)+1+(5−1) = 9
(5−1)+2+(5−1) = 10
(6−1)+2+(4−1) = 10
(6−1)+0+(5−1) = 9
Przykład. Sumator 24-bitowy powinien mie ≤ 8 bloków (24=52–12)
struktura sumatora
2-3-4-5-4-3-2-1
1-2-3-4-5-4-3-2
2-3-4-6-4-3-2
ź
liczba grup
8
8
7
© Janusz Biernat, 10-06-Szybkie sumatory.doc, 2 pa dziernika 2006
maksymalne opó
(5−1)+0+(4−1) =
(5−1)+0+(4−1) =
(6−1)+0+(4−1) =
nienie
7
7
8
FAST–28
Szybkie sumatory
Inkrementer i dekrementer
wykonuje działanie X ± 1
→ wystarczy ła cuch półsumatorów (HA) lub półsubtraktorów (HS)
półsumator (half adder, HA) – realizuje funkcje si = xi ⊕ ci , ci +1 = xi ci
półsubtraktor (half subtracter, HS) – realizuje funkcje si = xi ⊕ ci , ci +1 = xi ci
xk−1
ck
HA/HS
sk−1
x1
xk−2
ck−1
HA/HS
ck−2
sk−2
c2
x0
c1
HA/HS
s1
HA/HS
1
s0
sumator z inkrementacj wskutek przeniesienia (carry-increment adder, CIA
ź
układ zliczaj cy – inkrementer/dekrementer ze sprz eniem xi(t +1) = si(t )
i zapami tywaniem stanu S (t ) = {sk(t−)1 , sk(t−) 2 ,..., s1(t ) , s0(t )
© Janusz Biernat, 10-06-Szybkie sumatory.doc, 2 pa dziernika 2006
FAST–29
Szybkie sumatory
Szybko działania i zło ono sumatorów
Charakterystyki AT
• sumator pełny FA – A = 7, T = 2 + 2 → A T = 28
– 2×XOR, 1×OR, 2×AND → opó nienie przeniesienia 2 , sumy 2 + 2
ź
• sumator RCA – A = 7n, T = 2n → A T = 14n2
– n×FA → opó nienie przeniesienia n ⋅ 2
• sumator CLA – A ≈ 7n, T ≈ 4 log n → A T ≈ 56 n log n
– n×FA → log n bloków, opó nienie przeniesienia 2 ⋅ 2 log n
• sumator CSKA – A ≈ 8n, T ≈ 2 ⋅ 2 n → A T ≈ 32 n n
– n×FA+2 n ×MPX, 2 n bloków → opó nienie przeniesienia 2 ⋅ 2 n
• sumator CSLA – A ≈ 2 ⋅ 7n, T ≈ 2 2n → A T ≈ 39 n n
– 2×RCA, 2n bloków, opó nienie przeniesienia 2 ⋅ 2n
• sumator COSA – A = 3n log n, T = 2 log n → A T = 6 n log 2 n
– 2×RCA, log n poziomów MPX, opó nienie przeniesienia 2 ⋅ log n
© Janusz Biernat, 10-06-Szybkie sumatory.doc, 2 pa dziernika 2006
FAST–30
Szybkie sumatory
Przekształcenie prefiksowe Ladnera-Fischera (Sklansky) dla funkcji G,P
Pi,i = xi ⊕ yi ,
Gi,i = xi yi
(i = 0, 1, … , n−1)
G0,0
Poziom 1 (i = 0, 1, … , 2 − 1 n−1)
P2i,2i+1 = P2i+1,2i+1 P2i,2i
G2i,2i+1 = G2i+1,2i+1 + P2i+1,2i+1 G2i,2i
Poziom 2 (i = 0, 1, … , 2 − 2 n−1; s = 2, 3)
P4i,4i+s = P4i+2,4i+s P4i,4i+1
G4i,4i+s = G4i+2,4i+s + P4i+2,4i+s G4i,4i+1
Poziom 3 (i = 0, 1, … , 2 − 3 n−1; s = 4, 5, 6, 7)
P8i,8i+s = P8i+4,8i+s P8i,8i+3
G8i,8i+s = G8i+4,8i+s + P8i+4,8i+s G8i,8i+3
ź
Poziom 4 (i = 0, 1, … , 2 − 4 n−1; s = 8, 9, …, 15)
P16i,16i+s = P16i+8,16i+s P16i,16i+7
G16i,16i+s = G16i+8,16i+s + P16i+8,16i+s G16i,16i+7
…
© Janusz Biernat, 10-06-Szybkie sumatory.doc ,2 pa dziernika 2006
G0,1
G0,3 , G0,2
G0,7 , …, G0,4
G0,15 , …, G0,8
FAST–13a
Szybkie sumatory
Przekształcenie prefiksowe Kogge-Stone’a dla funkcji G,P
Pi,i = xi ⊕ yi ,
Gi,i = xi yi
(i = 0, 1, … , n−1)
G0,0
Poziom 1 (i = 0, 1, … , n−2)
Pi,i+1 = Pi+1,i+1 Pi,i, Gi,i+1 = Gi+1,i+1 + Pi+1,i+1 Gi,i
Poziom 2 (s = 0, 1; i = 0, 1, … , n−22)
Pi,i+3 = Pi+2,i+3 Pi,i+1
G0,s+2 = Gs+1,s+2 + Ps+1,s+2 G0,s
Gi,i+3 = Gi+2,i+3 + Pi+2,i+3 Gi,i+1
Poziom 3 (s = 0, 1, …, 22−1; i = 0, 1, … , n−23)
Pi,i+7 = Pi+4,i+7 Pi,i+3
G0,s+4 = Gs+1,s+4+ Ps+1,s+4G0,s
Gi,i+7 = Gi+4,i+7 + Pi+4,i+7 Gi,i+3
G0,1
G0,3 , G0,2
(G0,3 )
G0,7 , G0,6 , G0,5 , G0,4
(G0,7 )
Poziom 4 (s = 0, 1, …, 23−1; i = 0, 1, … , n−24)
G0,s+8 = Gs+1,s+8+ Ps+1,s+8G0,s
G0,15 , … …, G0,8
ź
…
© Janusz Biernat, 10-06-Szybkie sumatory.doc ,2 pa dziernika 2006
FAST–14a
Szybkie sumatory
Przekształcenie prefiksowe Brenta-Kunga dla funkcji G,P
Pi,i = xi ⊕ yi ,
Gi,i = xi yi
(i = 0, 1, … , n−1)
G0,0
Poziom 1 (i = 0, 1, … , 2 − 1 n−1)
G2i,2i+1 = G2i+1,2i+1 + P2i+1,2i+1 G2i,2i, P2i,2i+1 = P2i+1,2i+1 P2i,2i
G0,1
Poziom 2 (i = 0, 1, … , 2 − 2 n−1)
P4i,4i+3 = P4i+2,4i+3 P4i,4i+1,
G4i,4i+3 = G4i+2,4i+3 + P4i+2,4i+3 G4i,4i+1
G0,3
Poziom 3 (i = 0, 1, … , 2 − 3 n−1)
P8i,8i+7 = P8i+4,8i+7 P8i,8i+3,
G8i,8i+7 = G8i+4,8i+7 + P8i+4,8i+7 G8i,8i+3
G0,7
…
Poziom m = log 2 n (T = 2m−2)
G0,3T−1= G2T,3T−1+ P2T,3T−1G0,2T −1, P0,3T−1= P2T,3T−1P0,2T−1,
G0,n−1= G2T,n−1+ P2T,n−1G0,2T −1,
P0,n−1= P2T,n−1P0,2T −1,
ź
Poziom m+1 (i = (0), 1, … , 22−1, R = 2m−3)
G0,iR−1= G2R,iR−1+ P2R,iR−1G0,2R−1
P0,iR−1= P2R,iR−1P0,2R−1
© Janusz Biernat, 10-06-Szybkie sumatory.doc ,2 pa dziernika 2006
G0,3T
G0,n
G0,13,G0,9,G0,5
FAST–15a
Szybkie sumatory
Przekształcenie prefiksowe Han’a-Carlson’a dla funkcji G,P
Pi,i = xi ⊕ yi ,
Gi,i = xi yi
(i = 0, 1, … , n−1)
G0,0
Poziom 1 (i = 0, 1, … , 2 − 1 n−1)
P2i,2i+1 = P2i+1,2i+1 P2i,2i
G2i,2i+1 = G2i+1,2i+1 + P2i+1,2i+1 G2i,2i
G0,1
Poziom 2 (i = 0, 1, … , 2 − 2 n−1)
P2i,2i+3 = P2i+2,2i+3 P2i,2i+1
G2i,2i+3 = G2i+2,2i+3 + P2i+2,2i+3 G2i,2i+1
Poziom 3 (s = 0, 1; i = 0, 1, … , 2 − 3 n−1)
P2i,2i+7 = P2i+4,2i+7 P2i,2i+3
G0,2s+5 = G2s+1,2s+5 + P2s+1,2s+5 G0,2s
G2i,2i+7 = G2i+4,2i+7 + P2i+4,2i+7 G2i,2i+3
Poziom 4 (i = 0, 1, … , 2 − 3 n−1)
P2i,2i+15 = P2i+8,2i+15 P2i,2i+7
G2i,2i+15 = G2i+8,2i+15 + P2i+8,2i+15 G2i,2i+7
G0,3
G0,7 , G0,5
G0,15 , G0,13 , G0,11 , G0,9
...
ź
Poziom log2n+1 (i = 0, 1, … , 2 − 1 n−1)
G0,2i= G2i,2i+ P2i,2iG0,2i−1
© Janusz Biernat, 10-06-Szybkie sumatory.doc ,2 pa dziernika 2006
G0,2i, … , G0,4 , G0,2
FAST–16a

Podobne dokumenty