Szybkie mno enie Szybkie mno enie

Transkrypt

Szybkie mno enie Szybkie mno enie
Szybkie mno enie
Schematy przy pieszonego mno enia
x0 A
x0 A
x1 A
x1 A
CSA
x2 A
x2 A
x3 A
CSA
CSA
x3 A
CSA
CPA
CPA
akumulacja równoległa
akumulacja sekwencyjna
• akumulacja równoległa – drzewiasta struktura CSA,
• akumulacja sekwencyjna – liniowa struktura CSA, matryca mno ca
FAM–1
© Janusz Biernat, Szybkie mnozenie'04
Szybkie mno enie
Akumulacja iloczynów cz ciowych
• sumatory wielooperandowe CSA
ró ne wagi iloczynów cz
A 9 8 7 6 5 4 3
o o o
o o o o
o o o o o
o o o o o o
o o o o o o
o o o o o o
ciowych
2 1 0
o o o
o o
o
matryca mno ca
ró na liczba operandów jednej wagi
A 9 8 7 6 5 4 3 2 1 0
o o o o o o o o o o o
o o o o o o o o o
o o o o o o o
o o o o o
o o o
o
drzewo CSA
drzewo CSA
• szybka redukcja operandów w najdłu szej kolumnie
• redukcja do 1 operandów najni szych wag (krótsze ko cowe dodawanie)
© Janusz Biernat, Szybkie mnozenie'04
FAM–2
Szybkie mno enie
Optymalizacja struktury CSA (1)
redukcja maksymalna
drzewo Wallace’a
A 9 8 7 6 5 4 3 2 1 0
A 9 8 7 6 5 4 3 2 1 0
o o o o
o o o
o o
o
o
o
o
o
o
o o o o o o
o o o o o o o o o o o
o o o o o
o o o o o o o o o
o o o o
o o o o o o o
o o o
o o o o o
o o
o o o
o
o
CSA, poziom 3 – wej cia układów (3,2) lub (2,2)
A 9 8 7 6 5 4 3 2 1 0
A 9 8 7 6 5 4 3 2 1 0
o o
o o o o o o o o
o o o o o o o o o o o
o o o o o o o o
o o o o o o o o
o o o o o o o
o o o o o o o
o o o
o o o o o o o
CSA, poziom 3 – wynik redukcji: wyj cia układów (3,2) lub (2,2)
FAM–3
© Janusz Biernat, Szybkie mnozenie'04
Szybkie mno enie
Optymalizacja struktury CSA (1)
A 9 8 7 6 5 4 3 2 1 0
A 9 8 7 6 5 4 3 2 1 0
o o o o o
o o o o
o
o o
o o
o o o o
o o o
o o
o o
o o o o o o
o o o o
o o o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o o o
o
o
o
o o o o o o o o o o o
o o o o o o o o o o o
o
o o o o o o
o o o o o o o o
o o o o
o o o o o o o
CSA, poziom 2
o o o o o o o o o o o
o
o o o o o o
o o o o
o o o o o o o o o o o
o o o o o o o o
o o o o o o o
o o o o o o o o o o o
o o o o o o o
o o o o o o o o o o o
o o o o o o o o
© Janusz Biernat, Szybkie mnozenie'04
FAM–4
Szybkie mno enie
Redukcja liczby iloczynów cz ciowych – przekodowanie kanoniczne
Minimaln dla danego mno nika liczb dodawa lub odejmowa okre la waga
(| yn −1 | + | yn − 2 | +...+ | y0 |) jego minimalnej reprezentacji w kodzie SD.
X = {x n−1 ,..., x1 , x 0 } U2 → Ymin = { y n−1 ,..., y1 , y 0 }SD – przekodowanie kanoniczne
Przekodowanie kanoniczne –algorytm (p0=0)
xi–1
0
0
1
1
0
0
1
1
xi
0
1
0
1
0
1
0
1
pi
0
0
0
0
1
1
1
1
pi+1
0
0
0
1
0
1
1
1
yi
0
1
0
1
1
0
1
0
Komentarz
ci g zer
izolowana jedynka
ci g zer
Pocz tek ci gu jedynek
koniec ci gu jedynek
ci g jedynek
izolowane zero
ci g jedynek
Skomplikowana i czasochłonna procedura przekodowania → rzadko stosowane
FAM–5
© Janusz Biernat, Szybkie mnozenie'04
Szybkie mno enie
Przekodowanie Bootha
• zast pienie serii dodawa jednym odejmowaniem i jednym dodawaniem
2 s −1 + 2 s − 2 + ... + 2l +1 + 2l = 2 s − 2l
|{...0[11...11]0... }U2| = |{...1[00...00]0... }U2| – |{...0[00...01]0...}U2,
|{...0[11...11]0... }SD| = |{ ...1[00...0 1 ]0... }SD|
→ reguła Bootha ≡ przekodowanie mno nika na kod SD
Ŝ
• reprezentacja w systemie NB lub U2 jest reprezentacj w systemie SD, ale
przekodowanie według reguły Bootha:
• U2 → SD – wykonalne, bo [x1...11]0... = [(1−x)0...00]0... − [00...01]0...
• NB → SD – niewykonalne bez rozszerzenia gdy {1,1,… ,1,0, x ,…}, bo
x ≥ 0 ∧ z ≠ 1 ⇒ |{1, x,..., x, x}SD| > |{z, y, y,..., y}SD|
⇒ konieczne rozszerzenie {1,… ,1,0, x ,…}NB= {0,1, … ,1,0, x ,…}U2
© Janusz Biernat, Szybkie mnozenie'04
FAM–6
Szybkie mno enie
Algorytm Bootha
Uzasadnienie teoretyczne – równowa no X = 2X − X
n−2
n−2

 
 n −1
X = − xn −1 2n + ∑ xi 2i +1  − − xn −1 2n −1 + ∑ xi 2i  = ∑ ( xi −1 − xi )2i − x−1

 
 i =0
i =0
i =0
x i ∈ {0,1} ⇒ yi = xi −1 − xi ∈ {−1,0,1} (x–1= 0)
|{xn–1, xn–2, xn–1, …, x1, x0}U2| = |{(xn–2 – xn–1), (xn–3 – xn–2), …, (x0 – x1), (x– 1 – x0)}SD|
Przekodowanie Bootha ( y i = x i −1 − x i )
xi
0
0
1
1
xi–1
0
1
0
1
yi
0
1
1
0
operacja
—
+A
−A
—
komentarz
ci g zer
koniec ci gu jedynek
pocz tek ci gu jedynek
ci g jedynek
Wady:
– zmienna liczba działa arytmetycznych, zale na od kodu liczby,
– nieefektywne kodowanie izolowanych jedynek –...010101(0) → ...1 1 1 1 1 1 .
FAM–7
© Janusz Biernat, Szybkie mnozenie'04
Szybkie mno enie
Alternatywne przekodowanie Bootha
n −1
n−2
i =0
i =0
X = ∑ ( xi −1 − xi ) 2i − x−1 = 2 ∑ ( xi − xi +1 )2i − x0 .
⇒ alternatywne przekodowanie mno nika Y = { y n−1 ,..., y1 , y 0 }
y i = x i − x i +1 , 0 ≤ i ≤ n − 1,
Poniewa X = 2Y − x 0 , wi c
• warto ci pocz tkow akumulowanej sumy iloczynów jest − x0 A ,
• zamiast mno nej A nale y w algorytmie u y jej podwojenia 2A,
• yi (przekodowanie alternatywne) = yi+1(przekodowanie proste)
Przekodowanie alternatywne NB/U2 → SD zawsze wykonalne:
• U2 → SD – rozszerzenie x n = x n −1 , ⇒ y n −1 = 0
• NB → SD – rozszerzenie x n = 0 ⇒ y n −1 = x n −1
© Janusz Biernat, Szybkie mnozenie'04
FAM–8
Szybkie mno enie
Przekodowanie rozszerzone (w bazie 22) – algorytm Bootha-McSorleya
n −1
Na podstawie X = ∑ ( xi −1 − xi )2i − x−1 mamy ( k = n / 2 )
i =0
k −1
k −1
j =0
j =0
X = ∑ ( x2 j −1 − x2 j )22 j + ∑ ( x2 j − x2 j +1 )22 j +1 − x−1 =
k −1
k −1
j =0
j =0
= ∑ ( x2 j −1 − x2 j + 2 x2 j − 2 x2 j +1 )22 j − x−1 = ∑ ( −2 x2 j +1 + x2 j + x2 j −1 ) 22 j − x−1
x i ∈ {0,1} ⇒ yi = −2 x2 j +1 + x2 j + x2 j −1 ∈{−2,−1, 0,+1,+2} (x−1= 0)
⇒ wynik przekształce : Y = { yn−1 ,..., y1 , y0 }SD ( y# ∈ {1 ,0,1}) takie, e
ń
− 2 x 2i +1 + x 2i + x 2i −1 = 2 y 2i +1 + y 2i
• rozwi zanie jednoznaczne gdy y 2 j +1 y 2 j = 0 (≥ połowa cyfr Y to zera)
• mo liwe zmniejszenie liczby zer mno nika (00101010 → 0 1 0 1 0 1 0 1 ).
FAM–9
© Janusz Biernat, Szybkie mnozenie'04
Szybkie mno enie
Algorytm Bootha-McSorleya – praktyczna realizacja
Ka da z kolejnych par bitów mno nika zawiera co najmniej jedno 0
⇒ liczba iloczynów cz ciowych ≤ 12 n .
• dla pary pozycji x 2i +1 , x 2i wykonuje si dodawanie ( x 2i + x 2i −1 − 2 x 2i +1 ) A
Przekodowanie rozszerzone (Bootha-McSorleya)
x2i+1
0
0
1
1
0
0
1
1
x2i
0
1
0
1
0
1
0
1
x2i–1
0
0
0
0
1
1
1
1
y2i+1
0
0
1
0
0
1
0
0
y2i
0
1
0
1
1
0
1
0
działanie
—
+A
−2A
−A
+A
+2A
−A
—
komentarz
ci g zer
izolowana jedynka
pocz tek ci gu jedynek
pocz tek ci gu jedynek
koniec ci gu jedynek
koniec ci gu jedynek
izolowane zero
ci g jedynek
analizowane s pary bitów ⇒ rozszerzenie mno nika do parzystej liczby bitów
© Janusz Biernat, Szybkie mnozenie'04
FAM–10
Szybkie mno enie
Alternatywne przekodowanie Bootha-McSorleya
n−2
X = 2 ∑ ( x j − x j +1 )2 − x0 = 2
j
j =0
n / 2  −1
∑ (−2x2i + 2 + x2i +1 + x2i )22i − x0 .
i =0
(−2 x 2i + 2 + x 2i +1 + x 2i ) ∈ {−2,−1,0,1,2} → wynik przekodowania: YSD taka, e
− 2 x 2i + 2 + x 2i +1 + x 2i = 2 y 2i +1 + y 2i oraz y 2i +1 y 2i = 0
Alternatywne przekodowanie Bootha-McSorleya
x2i+2
0
0
0
0
1
1
1
1
x2i+1
0
0
1
1
0
0
1
1
x2i
0
1
0
1
0
1
0
1
y2i+1
0
0
0
1
1
0
0
0
y2i
0
1
1
0
0
1
1
0
działanie
—
+2A
+2A
+4A
−4A
−2A
−2A
—
komentarz
ci g zer
pocz tek ci gu jedynek
izolowana jedynka
pocz tek ci gu jedynek
koniec ci gu jedynek
izolowane zero
koniec ci gu jedynek
ci g jedynek
FAM–11
© Janusz Biernat, Szybkie mnozenie'04
Szybkie mno enie
Realizacja przekodowania Bootha-McSorleya
sr+v av+1
av
xr–1
xr
xr+1
FA
sr+v+2
r = 2i + p, v = j + p
( p = 0 – prosty))
( p = 1 – alternatywny))
• „brak podwojenia” = xr ⊕ xr–1,
• „odejmowanie” = xr+1,
• „brak zerowania” = (xr ⊕ xr+1) + (xr ⊕ xr–1),
© Janusz Biernat, Szybkie mnozenie'04
FAM–12
Szybkie mno enie
Algorytm Bootha/Bootha-McSorleya – przykłady
– w bazie 2 – Y = {0,1 ,1,1 ,1 1},
– alternatywne w bazie 4 – Y = {00,0 1 ,0 1} , P0=–x0A
X= {1,1,0,1,0,1}U2
Y(2)
A = −3
X = −11
P0 =
0
–A
+A
–A
+A
–A
XA = 33
Y(4R)
0
0
1
0
1
0
0
0
0
1
0
1
0
0
0
0
1
0
1
0
0
0
0
1
0
1
0
0
0
0
1
0
1
0
1
1
0
0
0
1
0
1
0
0
1
1
0
0
1
0
0
1
0
1
1
0
0
1
1
1
1
1
0
0
0
1
0
1
0
1
1
1
1
0
1
–x0A
–2A
–2A
0
0
0
0
0
0
0
0
0
0
0
0
1
0
0
0
0
1
1
0
0
0
1
0
1
0
0
0
1
0
1
1
0
1
0 1
0 1
1 1
1
0 0 1
0 0 0 1
Uwaga: W polach zacienionych wpisano cyfry rozszerzenia znakowego.
FAM–13
© Janusz Biernat, Szybkie mnozenie'04
Szybkie mno enie
Przekodowanie mno nika w systemie uzupełnie do 1
W systemie U1, na podstawie równowa no ci X = 2X − X mamy
n−2
n−2

 

X = − x n −1 (2 n − 2ulp ) + ∑ x i 2 i +1  − − x n −1 ( 2 n −1 − ulp ) + ∑ x i 2 i  ,

 

i =0
i =0
sk d wynika
n −1
X = ∑ ( x i −1 − x i )2 i − x −1 + x n −1 ulp .
i =0
Poniewa ulp = 1, a rozszerzeniem liczby w kodzie U1 jest x −1 = x n −1 , zatem
n −1
X = ∑ ( x i −1 − x i )2 i .
i =0
Podobnie
n−2
X = 2 ∑ ( x i − x i +1 )2 i + ( x n −1 − x 0 ) .
i =0
• algorytm analogiczny jak w U2, lecz inna warto pocz tkowa akumulacji
• sumowanie z uwzgl dnieniem rozszerze prawo- i lewostronnych
© Janusz Biernat, Szybkie mnozenie'04
FAM–14
Szybkie mno enie
Matrycowe układy mno ce – schemat mno enia
a4
x4
a3
x3
a 4x0
a 3x1
s41
c31
a 2x2
s42
c32
a 1x3
s43
c32
a 0x3
s44
a 3x0
a 2x1
s31
c21
a 1x2
s32
c22
a 0x3
s33
s4
s3
×
+
+
a 4x3
c74
a 4x3
c63
a 3x3
s74
c64
a 4x2
c52
a 3x3
s63
c52
a 2x3
s64
c54
a 4x1
c41
a 3x2
s52
c42
a 2x3
s53
c42
a 1x3
s54
c44
s9
s8
s7
s6
s5
+
+
+
a2
x2
a1
x1
a0
x0
a 2x0 a 1x0 a 0x0
a 1x1 a 0x1
s21 s11
c11
a 0x2
s22
s2
s1
s0
sji oraz cji – sumy i przeniesienia na pozycji j w i-tym kroku akumulacji
FAM–15
© Janusz Biernat, Szybkie mnozenie'04
Szybkie mno enie
Matryca mno ca kodu naturalnego (Brauna)
a4x0
a3x0
a2x0
a1x0
a0x0
CSA
HA
a3x1
HA
a2x1
HA
a1x1
FA
a0x2
HA
a0x1
a4x1
CSA
FA
a3x2
FA
a2x2
FA
a1x2
FA
a0x3
a4x2
FA
a3x3
FA
a2x3
FA
a1x3
FA
a2x4
FA
a1x4
FA
a0x4
a4x3
CSA
FA
a3x4
a4x4
FA
FA
p8
p7
FA
HA
p6
p5
CPA
p9
© Janusz Biernat, Szybkie mnozenie'04
p4
p3
p2
p1
p0
FAM–16
Szybkie mno enie
Multiplikator Brauna (Braun multiplier)
a4
a3
a2
a1
a0
x0
s0
x1
HA
HA
HA
HA
s1
x2
FA
FA
FA
FA
s2
x3
FA
FA
FA
FA
s3
x4
FA
FA
FA
FA
s4
FA
s9
FA
s8
s7
FA
s6
HA
s5
FAM–17
© Janusz Biernat, Szybkie mnozenie'04
Szybkie mno enie
Matrycowe układy mno ce kodu U2
iloczyny cz ciowe lub iloczyny elementarne mog by liczbami ujemnymi
 − a 2 k −1 + k −2 a 2i  ⋅  − x 2 m−1 + m−2 x 2 j  =
 k −1
∑ i   m−1
∑ j 

j =0
i =0


m−2
= xm−1ak −1 2 m+k −2 + ∑
j =0
m−2

 − x 2 m−1 k −2 a 2i .
k −1
j
i+ j
2
2
2
+
+
−
x
a
a
x


 m−1
∑ j i
∑ j
∑ i 
k −1
i =0
j =0
i =0
 

k −2
• wagi operandów (1-bitowych iloczynów) mog by ujemne
→ wystarczy zmieni znaki wag wej i wyj niektórych sumatorów
• zast pienie sumatorów FA realizuj cych dodawanie x + y + z = 2c + s
układami odejmuj cymi FS (x − y − z = − 2c + s) lub FSD (x + y − z = 2c − s)
• struktura logiczna FS i FSD identyczna
• przeciwne wagi wej i wyj , bo
x − y − z = − (z + y − x) oraz − (2c − s) = −2c + s
© Janusz Biernat, Szybkie mnozenie'04
FAM–18
Szybkie mno enie
Matryca mno ca kodu uzupełnieniowego
a4
a3
a2
a1
a0
x0
s0
x1
HS
HA
HA
HA
s1
x2
FS
FS
FA
FA
s2
x3
FS
FS
FS
FA
s3
x4
FS
FS
FS
FS
s4
FS
s9
FS
s8
FS
s7
HS
s6
s5
(• – wej cia o ujemnej wadze)
FAM–19
© Janusz Biernat, Szybkie mnozenie'04
Szybkie mno enie
Algorytm Baugha-Wooley’a
zamiana ujemnych iloczynów cz ciowych na dodatnie:
k −2
k −2


− xm−1 2 m−1 ∑ ai 2 i = xm−1  − 2 k + m−2 + ∑ (1 − ai )2 i + m−1 + 2 m−1  ,


i =0
i =0
m−2
m−2


− ak −1 2 k −1 ∑ x j 2 j = ak −1  − 2 k + m−2 + ∑ (1 − x j )2 j + k −1 + 2 k −1  .
j =0
j =0


korekcyjne dodawanie argumentów:
(1–ak–1) 2k+m–2 + ak–1 2k–1
2k+m–1 + (1–xm–1) 2k+m–2 + xm–1 2m–1
1
s8
a4(1–x 0 )
a4(1–x 1 ) a3x 1
a 2x 2
a4(1–x 2 ) a3x 2
a4(1–x 3 ) a3x 3
a2x 3
a 1x 3
(1–a4)
a4
(1–x 3 )
s7
s6
s5
s4
© Janusz Biernat, Szybkie mnozenie'04
a 3x 0
a 2x 1
a 1x 2
a 0x 3
x3
s3
a 2x 0
a 1x 1
a 0x 2
a 1x 0
a 0x 1
a 0x 0
s2
s1
s0
FAM–20
Szybkie mno enie
Akumulacja iloczynów cz ciowych w kodzie U2
i = p−2
i = p −2
Poniewa − z p −1 2 p −1 + ∑i =0 zi 2i = −2 p −1 + (1 − z p −1 )2 p −1 + ∑i =0 zi 2i ,
wi c ka dy iloczyn cz ciowy 2i xi A mo na zast pi przez:
j =m−2
2i xi A = [(1 − ( xi am −1 ))2 m−1 + ∑ j =0 ( xi a j )2 j ] = −2i + m−1 + 2i A+(i )
Iloczyn mo na wi c obliczy jako ( a (ji ) = a j xi = a j gdy xi = 1; 0 gdy xi = 0 ):
k −2
k −2

 m−2 

A ⋅ X = −2 m −1  − ak −1 xm −1 2 k −1 + ∑ a j xm −1 2 j  + ∑ 2 i  − ak −1 xi 2 k −1 + ∑ a j xi 2 j  =
j =0
j =0

 i =0 

k −2
k −2
k −2

 m− 2 

= 2 m−1  ak( m−1−1) 2k −1 + ∑ (1 − a (jm−1) )2 j − ∑ 2 j  + ∑ 2i  (1 − ak(i−)1 ) 2k −1 + ∑ a (ji ) 2 j − 2 k −1  ,
j =0
j =0
j =0

 i =0 

Ostatecznie otrzymujemy:
k −2
k −2


 m−2 
A X = 2 m −1 ak( m−1−1) 2 k −1 + ∑ (1 − a (jm −1) ) 2 j + 1 + ∑ 2 i (1 − ak( i−)1 ) 2 k −1 + ∑ a (ji ) 2 j  + 2 k −1 − 2 m + k −1
j =0
j =0


 i =0 
czyli:
m−2
~
AX = −2 m+ k −1 + 2 m −1 (− A+( m −1) ) + ∑i =0 2i A+( i ) + 2 k −1
FAM–21
© Janusz Biernat, Szybkie mnozenie'04
Szybkie mno enie
Konstrukcja matrycy mno cej
• negowanie bitów najwy szego iloczynu cz ciowego (dopełnianie),
• dodanie stałych koryguj cych 2k −1 i – 2 k +m −1 oraz 2m−1 (uzupełnianie)
(1) 0 0 0 1
♦
♦ o
♦ o o
♦ o o o
o
o
o
o
o
o
o
o
o
o
o
o
1
o o o o
o o o
o o
o
(♦– negacja najbardziej znacz cego bita operandu, o – negacja bita)
• koryguj ca „1” na pozycji k–1 (2k–1) ⇒ s + 1 = 2c+ + s* ⇒ s* = 1 ⊕ s, c+ = s
• dodanie 2m–1 – modyfikacja półsumatora pozycji m–1 w pierwszej linii
x + y + 1 = 2c+ + s ⇒ s = x ⊕ y , c+ = x + y lub s = x ⊕ y , c+ = x ⋅ y
• dodanie –2n+l–1 – korekcja przeniesienia z najwy szej pozycji iloczynu ,
zgodnie z zale no ci c– + 1 = 2c+ + s, czyli c+ = c– oraz s = 1 ⊕ c–
• matryca kwadratowa (k = m) – (2k–1+2k–1=2k) ⇒ korekcja na pozycji k
© Janusz Biernat, Szybkie mnozenie'04
FAM–22
Szybkie mno enie
Matryca mno ca kodu uzupełnieniowego
a4
a3
a2
a1
a0
x0
s0
x1
HA
HA
HA
HA
s1
x2
FA
FA
FA
FA
s2
x3
FA
FA
FA
FA
s3
x4
FA
FA
FA
FA
s4
FA
c9
s9
s8
FA
s7
FA
s6
© Janusz Biernat, Szybkie mnozenie'04
FA
s5
FAM–23
Szybkie mno enie
Charakterystyki matryc mno cych
zło ono (mno nik m-bitowy, mno na k-bitowa)
Ŝ
ś
ć
• A = 8(m–1)k (dodatkowa bramka AND na ka dy akumulowany bit)
• T = 4(m – 1) + TCPA(k) ≥ 2(2m + log k–2)
podatno na przetwarzanie potokowe (pipelining)
• dla danej pary operandów w danej chwili jest wykonywane dodawanie
tylko na jednym poziomie układu matrycowego,
• na innych poziomach mo na w tym samym czasie wykona wcze niejsze
lub pó niejsze fazy mno enia innych par operandów
• niezb dne rozbudowanie o dodatkowe układy transmituj ce wyniki
dodawania na mniej znacz cych pozycjach oraz układ synchronizacji.
ś
ć
• przepustowo układu zale y od szybko ci ko cowego dodawania
w seryjnym mno eniu ko cowy CPA jako kaskada CSA
szybko bliska szybko ci dodawania 1-bitowego!
• mo liwe zastosowanie algorytmu Bootha/McSorleya
© Janusz Biernat, Szybkie mnozenie'04
FAM–24
Szybkie mno enie
Strukturalizacja układów mno cych
• układ mno cy kn × kn – zło enie układów mno cych n × n:
j
2k −2
k −1
 k −1
 k −1
 k −1
AX =  ∑ As 2 sn  ∑ X s 2 sn  = ∑ 2 jn ∑ Ai X j − i + ∑ 2 jn ∑ Ai X j − i ,
 s =0
 s = 0
 j =0
i =0
j =k
i = j − k +1
albo w postaci skróconej
AX =
2k −2
min( j , k −1)
j =0
i
i = max( 0 , j − k +1)
∑ 2 jn
n −1
n −1
j =0
j =0
∑
A X j −i
gdzie Ai = ∑ ani + j 2 j , X i = ∑ xni + j 2 j .
wyrównywanie (alignment)
• ka dy 2n-pozycyjny iloczyn Ai X s − i ma wag 2 n s
( AX) s = [ As X 0 , As −1 X 1 ,..., A1 X s −1 , A0 X s ]
• efekt – akumulacja 2k− 1 wielooperandów ró nego rozmiaru
zamiast k2 operandów o identycznej wielko ci
FAM–25
© Janusz Biernat, Szybkie mnozenie'04
Szybkie mno enie
Wyrównanie operandów
27n 26n 25n 24n 23n 22n 2n 20
A3 X 0
A3 X 1 A2 X 0
A3 X 2 A2 X 1 A1 X 0
A3 X 3 A2 X 2 A1 X 1 A0 X 0
A2 X 3 A1 X 2 A0 X 1
A1 X 3 A0 X 2
A0 X 3
Wyrównanie operandów w układzie mno cym 4n× 4n
• w kodzie U2 i U1 – niezb dne uwzgl dnienie rozszerzenia znakowego
efekt – liczba operandów w j-ej grupie wynosi 2j+ 1 osi gaj c maksimum 4k− 3,
→ niweczy to zysk wynikaj cy ze strukturalizacji.
→ przekonstruowanie sumatora wielooperandowego CSA.
© Janusz Biernat, Szybkie mnozenie'04
FAM–26
Szybkie mno enie
Mno enie wielokrotnej precyzji
Mno enie liczb dodatnich
• bezpo rednie zastosowanie schematu wyrównania
Mno enie długich liczb znakowanych (U2)
• najwy sze iloczyny (... A3X# oraz A#X3)
– mno enie liczby dodatniej przez znakowan !
– dodawanie dodatniej i znakowanej !
Rozwi zanie 1:
• przekodowanie na dodatnie (podobnie jak w mno eniu bez rozszerze )
• korekcja (podobnie jak w mno eniu bez rozszerze )
Rozwi zanie 2:
• przekodowanie na warto ci bezwzgl dne
• mno enie dodatnich i wytworzenie znaku
• przekodowanie iloczynu na kod uzupełnieniowy
FAM–27
© Janusz Biernat, Szybkie mnozenie'04
Szybkie mno enie
Mno enie U2 – jeszcze inne przekodowanie
k −2
m− 2


Zast pienie ujemnych iloczynów w  − ak −1 2 k −1 + ∑ ai 2i  ⋅  − xm−1 2 m−1 + ∑ x j 2 j 

 
i =0
j =0

k −2
k −2
k −2
i =0
i =0
i =0
m−2
m−2
m−2
j =0
j =0
j =0
− xm−1 2 m−1 ∑ ai 2 i = −∑ ai xm −1 2 i + m−1 = −2 k + m−2 + ∑ (1 − ai xm−1 ) 2 i + m−1 + 2 m−1 ,
− ak −1 2 k −1 ∑ x j 2 j = − ∑ ak −1 x j 2 j + k −1 = −2 k + m−2 + ∑ (1 − ak −1 x j ) 2 j + k −1 + 2 k −1 ,
© Janusz Biernat, Szybkie mnozenie'04
FAM–28

Podobne dokumenty