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