Sumatory CSA
Transkrypt
Sumatory CSA
Sumatory CSA Prawa ł czno ci i przemienno ci dodawania a + b+ c + d+ e + f + g + h+ i + … = { [ ( a+ b ) + ( c + d) ]+ [ ( e + f ) + ( g + h) ]} + {[ ( i + … a+b+c+d+e+f+g+h+i+…=[(a+b+c)+(d+e+f)+(g+h+i)]+[(… prawo ł czno ci dodawania w systemie pozycyjnym A + B + C + ... = k −1 ∑ ai β + i i=−m k −1 ∑ bi β i + i =− m k −1 ∑ ci β i k −1 ∑ (ai + bi + ci + ...) β i + ... = i =− m i =− m dodawanie wieloargumentowe jednopozycyjne – suma w systemie pozycyjnym (ai + bi + ci + ...) β i = (ui( 0 ) + β 1ui(1) + β 2ui( 2 ) + ... + + β mui( m ) ) β i • suma jest wielocyfrowa (co najmniej dwucyfrowa) ł czno X i przemienno (1) +X ( 2) + ... + X dodawania w systemie pozycyjnym k (k ) =∑ n −1 ∑x ź p =1 i = − q ( p) i © Janusz Biernat, 09-06-Sumatory CSA.doc, 2 pa dziernika 2006 β = i n −1 k ∑β ∑x i =− q i p =1 ( p) i = n −1 m ∑ β (∑ ui(−rr) β r ) i =− q i r =0 CSA–1 Sumatory CSA Dodawanie wieloargumentowe jednopozycyjne w systemach naturalnych ( xi(1) + xi( 2 ) + xi(3) + ...)β i = (ui( 0 ) + β 1ui(1) + β 2ui( 2 ) + ... + β mui( m ) ) β i przy tym xi( j ) , ui( j ) ∈ {0,1,..., β − 1} suma k składników mo e by m-cyfrowa 0≤ x ( j) i k ≤ β −1 ⇒ ∑ x j =1 ( j) i k ≤ ∑ ( β − 1) = k ( β − 1) ≤ β m − 1 j =1 m = log β [k ( β − 1) + 1] k ≤ ( β m − 1) /( β − 1) = β m −1 + β m−2 + ...β + 1 = 11...11β → je li liczba składników jest ≤ β +1, suma jest dwucyfrowa i wynosi ź {vi +1 , ui } = {r , xi(1) + xi( 2 ) + ... + xi( β +1) − rβ } gdy 0 ≤ xi(1) + xi( 2 ) + ... + xi( β +1) − rβ < β © Janusz Biernat, 09-06-Sumatory CSA.doc, 2 pa dziernika 2006 CSA–2 Sumatory CSA Dodawanie wieloargumentowe w systemach naturalnych (1) dodawanie mo na wykona dwuetapowo: • obliczy wielopozycyjne sumy przej ciowe na ka dej pozycji (w dowolnej kolejno ci – s niezale ne) • doda liczby wielocyfrowe skomponowane z sum przej ciowych → je li liczba argumentów k ≤β +1 (11β ) sumy przej ciowe s dwucyfrowe + (0) (0) … (0) (0) vk sk xk–1 yk–1 … zk–1 uk–1 vk–1 sk–1 xk–2 yk–2 … zk–2 uk–2 vk–2 sk–2 … … … … x–m+3 y–m+3 … z–m+3 u–m+3 v–m+3 s–m+3 x–m+2 y–m+2 … z–m+2 u–m+2 v–m+2 s–m+2 x–m+1 y–m+1 … z–m+1 u–m+1 v–m+1 s–m+1 x–m y–m … z–m u–m s–m ź → je li liczba argumentów k >β +1 (11β ) dodawanie mo na wykona rekurencyjnie © Janusz Biernat, 09-06-Sumatory CSA.doc, 2 pa dziernika 2006 CSA–3 Sumatory CSA Dodawanie wieloargumentowe w systemach naturalnych (2) + + … … … (0) (0) (0) (0) … (0) … … (0) (0) (2) xk–1 … (0) uk+1 (1) uk sk ak–2 … (0) ak–1 (0) bk–1 bk–2 … (0) ck–1 ck–2 … (0) dk–1 dk–2 … … … … … (0) pk–1 pk–2 … … … … … … … … … (0) (0) xk–2 … (0) xk–1 (1) (1) (1) xk–2 … xk–1 x–m+3 (2) (2) (2) x–m+3 x–m+2 xk–2 … … … … … (0) (0) uk uk–1 (0)uk–2 … (1) (1) u–m+3 uk–1 (1)uk–2 … sk sk–1 sk–2 ź 2 arg ≤β +1 arg. >β +1 argumentów → je li liczba argumentów k >β +1, to dodawanie mo na wykona etapami © Janusz Biernat, 09-06-Sumatory CSA.doc, 2 pa dziernika 2006 a–m+3 b–m+3 c–m+3 d–m+3 … p–m+3 … … (0) x–m+3 (1) x–m+2 (2) x–m+1 … (0) u–m+3 (1) u–m+2 s–m+3 a–m+2 b–m+2 c–m+2 d–m+2 … p–m+2 … … (0) x–m+2 (1) x–m+1 (2) x–m … (0) u–m+2 (1) u–m+1 s–m+2 a–m+1 b–m+1 c–m+1 d–m+1 … p–m+1 … … (0) x–m+1 (1) x–m (0) … (0) u–m+1 a–m b–m c–m d–m … p–m … … (0) x–m (0) (0) … (0) x–m (0) (0) u–m+1 x–m CSA–4 Sumatory CSA Sumatory przechowuj ce przeniesienie (CSA) sumator (k,m) – układ obliczaj cy m-pozycyjn sum k liczb jednocyfrowych m = log β [k ( β − 1) + 1] xi(1) xi( 2 ) ... xi( k ) xi( k +1) .. xi( 2 k − m ) xi(−11) xi(−21) xi(−k1) xi(−k1+1) .. xi(−21k − m ) xi(−1)2 xi(−22) ... (k,m) (k,m) u i( m −1) .. u i(1) u i( 0 ) u i(−m1−1) .. u i(−11) u i(−01) ui(−mm−+1)2 ui(−m2−1) ui(−mm−+11) (k,m) ui(−mm−1) (k,m) Struktura sumatora CSA zbudowanego z sumatorów (k,m) X (1) +X ( 2) + ... + X k (k ) =∑ n −1 ∑x ź p =1 i = − q ( p) i © Janusz Biernat, 09-06-Sumatory CSA.doc, 2 pa dziernika 2006 β = i n −1 k ∑β ∑x i =− q i p =1 ( p) i = n −1 m ∑ β (∑ ui(−rr) β r ) i =− q i r =0 CSA–5 Sumatory CSA Struktura dwójkowych sumatorów CSA xi(1) xi( 2 ) xi(3) xi( 4 ) xi(5) xi( 6) xi(+11) xi(+21) xi(+31) xi(+41) xi(+51) xi(+61) (3,2) (3,2) (3,2) (3,2) (3,2) (3,2) (3,2) (3,2) xi(−11) xi(−21) xi(−31) xi(−41) xi(−51) xi(−61) (3,2) (3,2) (3,2) (3,2) ź Skala redukcji operandów w wielopoziomowym drzewie CSA © Janusz Biernat, 09-06-Sumatory CSA.doc, 2 pa dziernika 2006 CSA–6 Sumatory CSA Sumatory (k, m) w systemach dwójkowych β = 2 ⇒ k ≤ 2 m − 1, m = log 2 (k + 1) • elementarny sumator (3,2) – sumator 1-bitowy • licznik (k,m) – binarny sumator (k,m) o – koduje liczb jedynek z k wej na m wyj ciach o – drzewo (3,2) lub projekt indywidualny, np. licznik (4,3) u ( 0) = ( x ⊕ y ) ⊕ ( z ⊕ v) u (1) = ( x ⊕ y )( z + v ) + ( y ⊕ z )( x + v ) + ( z ⊕ v)( x + y ) u ( 2) = xyzv • reduktor (k,2) – koduje liczb jedynek z k wej na 2 wyj ciach sumy i pewnej liczbie wyj przeniesie (kumulacja przeniesie ) ź k > 3 operandów wej ciowych ⇒ redukcja w układzie wielopoziomowym • kolumny reduktorów (k,2) o wagach 2i– kumulacja przeniesie • drzewo – gał zie liczników (3,2) o wagach 2i i redukcja przeniesie © Janusz Biernat, 09-06-Sumatory CSA.doc, 2 pa dziernika 2006 CSA–7 Sumatory CSA Liczniki jedynek (k, m) i reduktory (k, 2) xi(1) xi( 2 ) xi( 3) xi( 4 ) xi( 5) xi( 6) xi( 7 ) (3,2) xi(1) xi( 2 ) xi( 3) xi( 4 ) xi( 5) xi( 6) xi( 7 ) (3,2) (3,2) (3,2) (3,2) (4,3) ci+2,i ci+1,i (3,2) ci,i–2 ci,i–1 (3,2) (3,2) ci+2,i ci+1,i si+2 si+1 si (3,2) ci,i–2 ci,i–1 (3,2) si+1 si si+1 si Reduktor (7,2) ź Licznik (7,3) xi(1) xi( 2 ) xi( 3) xi( 4) © Janusz Biernat, 09-06-Sumatory CSA.doc, 2 pa dziernika 2006 Reduktor (4,2) CSA–8 Sumatory CSA Sumowanie k operandów n-pozycyjnych (CSA) Pojedynczy układ (3,2) redukuje dokładnie jeden operand 1-bitowy → do redukcji k operandów n-bitowych potrzeba n(k–2) układów (3,2) → kL operandów na poziomie L ⇒ k L+1 ≤ k L + k L / 2 na poziomie L+1 • jeden poziom CSA redukuje 3 operandy do 2 – skala redukcji 3/2 • dwa poziomy CSA redukuj 4 operandy do 2 – skala redukcji 2 • trzy poziomy CSA redukuj 6 operandów do 2 – skala redukcji 3 3 2( 2 ) L ≤ k L ≤ 2( 32 ) L 2(3 3) L ≤ k L ≤ 2( 32 ) L (lepsza ocena) (L ≥ 3) ź Redukcja liczby operandów w wielopoziomowej strukturze CSA liczba poziomów L 1 2 3 4 5 6 7 8 9 2 (3 / 2 ) L 3 4 6 10 15 22 34 51 76 maksymalna liczba operandów 3 4 6 9 13 19 28 42 63 2 ⋅ (3 3 ) L ≅ 2 ⋅1,44224957 L 3 5 6 9 13 18 26 38 54 2 ⋅ ( 2 ) L ≅ 2 ⋅1,41421356 L 3 4 6 8 12 16 23 32 46 © Janusz Biernat, 09-06-Sumatory CSA.doc, 2 pa dziernika 2006 10 115 94 78 65 CSA–9 Sumatory CSA Konstrukcja wielopoziomowego sumatora CSA (1) Wytworzenie poprawnej sumy k argumentów n-bitowych (wyrównaj krótsze!) wymaga k-krotnego rozszerzenia zakresu (log k dodatkowych bitów): 0 ≤ X 1 , X 2 ,..., X k ≤ 2 n − 1 ⇒ 0 ≤ X 1 + X 2 + ... + X k ≤ k (2 n − 1) < 2 n+log k − 1 • oszacowanie szeroko ci – w = n + log k • liczba elementów sumatora CSA – n ( k–2) log k − 1 3(log k − 1) • oszacowanie gł boko ci – ≤L≤ log 3 − 1 log 3 • czas dodawania – T ≥ 4 L + 2 log n ź Konstrukcja sumatora jest rekurencyjna: 1. przył cz po 3 sygnały wej ciowe o tej samej wadze do wej modułu (3,2) 2. sygnały nieprzył czone przeka na ni szy poziom CSA 3. wytwórz wyj cia wszystkich modułów (3,2) (lub (2,2)) – maj ró ne wagi! 4. zbierz sygnały o tych samych wagach 5. powtarzaj 1–4 dopóki liczba sygnałów o jakiej wadze przekracza 2. 6. doł cz szybki sumator ko cowy (CLA, PPA, COSA,...) © Janusz Biernat, 09-06-Sumatory CSA.doc, 2 pa dziernika 2006 CSA–10 ź a y w c j i ś – y r a m u m z o s o o p t 3 i – a w m z c e o o p i ś j 3 i a y w c j i ś – y r a m u m z o s o o p t 4 i – a w m z c e o o p i ś j 4 i – a w m z c e o o p i ś j 3 i a y w c j i ś – y r a m u m z o s o o p t 4 i – a w m z c e o o p i ś j 4 i a y w c j i ś – y r a m u m z o s o o p t 4 i – a w m z c e o o p i ś j 4 i © Janusz Biernat, 09-06-Sumatory CSA.doc, 2 pa dziernika 2006 2 2 2 1 2 2 3 0 2 4 Sumatory CSA Konstrukcja wielopoziomowego sumatora CSA (2) przykład – 7 argumentów 4-bitowych (w=3+3, L=4) CSA–11 ź a y w c i ś j – y r a m u m z o s o o p t 1 i – a w m z c e o o p i ś j 1 i a y w c j i ś – y r a m u m z o s o o p t 2 i – a w m z c e o o p i ś j 2 i a y w c j i ś – y r a m u m z o s o o p t 3 i – a w m z c e o o p i ś j 3 i a y w c j i ś – y r a m u m z o s o o p t 4 i – a w m z c e o o p i ś j 4 i – y r a m u m z o s o o p t 2 i – a w m z c e o o p i ś j 2 i a y w c j i ś – y r a m u m z o s o o p t 3 i – a w m z c e o o p i ś j 3 i a y w c j i ś – y r a m u m z o s o o p t 4 i – a w m z c e o o p i ś j 4 i Sumatory CSA Konstrukcja wielopoziomowego sumatora CSA (3) © Janusz Biernat, 09-06-Sumatory CSA.doc, 2 pa dziernika 2006 CSA–12 Sumatory CSA Konstrukcja wielopoziomowego sumatora CSA od góry (top-down) liczba operandów od dołu (bottom-up) – drzewo Wallace’a N = N0 (N0/3)∗(3,2) (N0/3)∗2+|N0|3=N1 (N1/3)∗(3,2) … … … … (6/3)∗2+0=4 1+1∗(3,2) (4/3)∗2+1=3 1∗(3,2) redukcja od poziomu L, łatwiejsza konstrukcja drzewa operandy 21 7∗2=14 4∗2+2=10 3∗2+1=7 2∗2+1=5 1∗2+2=4 1∗2+1=3 struktura 7∗(3,2) 2+4∗(3,2) 1+3∗(3,2) 1+2∗(3,2) 2+1∗(3,2) 1+1∗(3,2) 1∗(3,2) L L−1 … 2 1 © Janusz Biernat, 09-06-Sumatory CSA.doc, 2 pa dziernika 2006 struktura kL−1 < N < kL (N−kL−1)∗(3,2)+ kL−2 + kL−2 /2 = kL−1 kL−1/3 ∗(3,2)+|kL−1|3 … … … … 3 + 3/2 = 4 = k2 3/2 ∗(3,2)+1 2 + 3/2 = 3 = k1 2/2 ∗(3,2) kumulacja operandów od poziomu 1 k L +1 = k L + k L / 2 , k0= 2 operandy struktura 27 9∗(3,2) 9∗2=18 6∗(3,2) 6∗2=12 4∗(3,2) 4∗2=8 2+2∗(3,2) 2∗2+2=6 2∗(3,2) 2∗2=4 1+1∗(3,2) 1∗2+1=3 1∗(3,2) ź L 7 6 5 4 3 2 1 liczba operandów struktura operandy struktura 20…27 1…8∗(3,2)+… 8∗2+3=19 6∗(3,2)+1 6∗2+1=13 4∗(3,2)+1 4∗2+1=9 3∗(3,2) 2∗3=6 2∗(3,2) 2∗2=4 1∗(3,2)+1 1∗2+1=3 1∗(3,2) CSA–13 Sumatory CSA Dwójkowe sumatory wieloargumentowe (CSA) s5 FA FA s4 s3 (3,2) (3,2) (3,2) (3,2) v0 x0 y0 z0 (3,2) (3,2) (3,2) FA v1 x1 y1 z1 v2 x2 y2 z2 v3 x3 y3 z3 (2,2) FA s2 s1 s0 ź Czteropozycyjny sumator czterooperandowy CSA © Janusz Biernat, 09-06-Sumatory CSA.doc, 2 pa dziernika 2006 CSA–14 Sumatory CSA Dwójkowe sumatory wieloargumentowe (CSA) (2,2) (2,2) (2,2) (2,2) (2,2) (3,2) (3,2) (3,2) (3,2) v0 x0 y0 z0 (3,2) (3,2) (3,2) (2,2) v1 x1 y1 z1 v2 x2 y2 z2 v3 x3 y3 z3 (2,2) (2,2) (2,2) (2,2) (2,2) ń sumator ko cowy s5 s4 s3 s2 s1 s0 ź Czteropozycyjny sumator czterooperandowy CSA © Janusz Biernat, 09-06-Sumatory CSA.doc, 2 pa dziernika 2006 CSA–15 Sumatory CSA Dwójkowe sumatory wieloargumentowe U2 (CSA) Wytworzenie poprawnej sumy k argumentów n-bitowych (wyrównaj krótsze!) wymaga k-krotnego rozszerzenia zakresu (log k dodatkowych bitów): − 2 n −1 ≤ X 1 , X 2 ,..., X k ≤ 2 n −1 − 1 ⇒ −2 n + log k −1 ≤ X 1 + X 2 + ... + X k < 2 n +log k −1 Rozszerzenie zakresu o m = log2k pozycji • doł czenie m bitów rozszerzenia lewostronnego o wada: wiele argumentów stałych (bity rozszerzenia) o drzewo CSA (k+m)-bitowe • zamiana argumentów na dodatnie z korekcj , zgodnie z zale no ci − xk −1 2 k −1 k −2 + ∑ xi 2 = −2 i i =0 k −1 + (1 − xk −1 )2 k −1 k −2 + ∑ xi 2i i =0 ź → zakodowanie stałej − n 2k−1 (na m+k bitach {rk+m−1, … , rk−1, 0, 0,…, 0}) √ znaczna redukcja liczby stałych bitów √ prostsze drzewo CSA © Janusz Biernat, 09-06-Sumatory CSA.doc, 2 pa dziernika 2006 CSA–16 Sumatory CSA Zliczanie jedynek w słowie n-bitowym (prawie) trzykrotna redukcja na I poziomie sumatora • je li n=3k, to na II poziomie jest k operandów 2-bitowych • je li n≠3k, to na II poziomie jest n/3 operandów 2-bitowych ź Parametry układu (bez 2-bitowego sumatora wyj ciowego) • liczba modułów CSA – n–2 • liczba poziomów CSA – 1+ liczba poziomów redukcji n/3 operandów, log n / 3 − 1 3(log n / 3 − 1) czyli +1 ≤ L ≤ +1 log 3 − 1 log 3 • liczba bitów wyniku – log2n © Janusz Biernat, 09-06-Sumatory CSA.doc, 2 pa dziernika 2006 CSA–17 Sumatory CSA Liczniki wielokolumnowe (k s −1 ,..., k1 , k 0 , m) Dodawanie operandów o rosn cych wagach (ki o wadze β i, i = 0,1,…,s) suma na m pozycjach – wektor o l składowych: – jednooperandowa s-pozycyjna suma o wadze 2 0 , – wielooperandowe przeniesienie wektorowe o wagach operandów (2s)i Warunek zakodowania wyniku na m pozycjach s −1 β − 1 ≥ ∑ ki ( β − 1) β i m i =0 s −1 w systemie dwójkowym 2 − 1 ≥ ∑ k i 2 i m i =0 warunek realizowalno ci licznika (k, k, ..., k, m) 2 m − 1 ≥ k (2 s − 1) m ≤ 2s ⇒ suma k operandów s-pozycyjnych jest najwy ej 2-operandowa ź 2 2 s − 1 ≥ 2 m − 1 ≥ k (2 s − 1) ⇒ k ≤ 2 s + 1 © Janusz Biernat, 09-06-Sumatory CSA.doc, 2 pa dziernika 2006 CSA–18 Sumatory CSA Parametry optymalnych liczników s-kolumnowych s m=2s k c2 i +4 2 2 i +4 c2 i +3 2 2 i +3 c2i +2 2 i +2 2 2 4 5 2 i +1 3 6 9 4 5 6 7 8 10 12 14 17 33 65 129 2i t 2i +1 2 t 2i u 2i +1 u 2i v 2i +1 v 2i w2i +1 2 a) 1 2 3 2 b) 3 i +2 2 3 i +1 3i 2 t 3i u 3i v3 i t 3 i +2 u3 i +2 v3 i +2 t 3 i +1 u 3 i +1 v3 i +1 w3 i +2 w3 i +1 x 2i +1 w2 i x 2i x 3 i +2 x 3 i +1 w3 i x 3i y 2i +1 y 2i y3 i +2 y3 i +1 y3 i z 2i +1 z 2i z 3 i +2 z 3 i +1 z 3i s2i +1 s 2i 2 i +1 2 2 2i c3i +4 2 3 i +4 c3 i +3 2 3 i +3 s3 i +2 2 s3i +1 3 i +2 2 s3 i 3 i +1 2 3i ź Schemat dodawania w układach: a) (7,7,5), b) (7,7,7,5) © Janusz Biernat, 09-06-Sumatory CSA.doc, 2 pa dziernika 2006 CSA–19