MI-AAK(Aritmetika a kódy) Násobení c doc. Ing. Alois Pluháček, CSc., 2011 Katedra číslicového návrhu Fakulta informačních technologií České vysoké učení technické v Praze Evropský sociální fond Praha& EU: Investujeme do vaší budoucnosti
A3. násobení posuvy a rozšiřování řádové mřížky posuvy rozšiřování řádové mřížky násobení(dvojkové) sériové násobičky násobení čísel bez znaménka soustavy s relativními číslicemi a jejich použití násobení čísel se znaménkem násobení v doplňkovém kódu násobení v přímém kódu násobení v inverzním kódu princip přeskakování nul a jedniček paralelní násobičky princip paralelních násobiček paralelní násobička s uschovávanými přenosy Wallace,DaddaaLuk Vuillemin paralelní čítače MI-AAK c A. Pluháček 2011
posuvy: logické cyklické aritmetické X X X i X z i X i X z i posuvy [shift] [logic shift] [rotation] [arithmetic shift] + detekcepřeplnění +?detekceztrátypřesnosti? přímý kód: znaménkový bit se nemění; posouvá se část obsahující absolutní hodnotu; vypadne-li nenulový bit při posuvu doleva, dochází k přeplnění; vypadne-li nenulový bit při posuvu doprava, dochází ke ztrátě přesnosti MI-AAK A3 1 c A. Pluháček 2011
posuvy ii jiné kódy obvody pro posuv: [shifter] z=2 principnávrhu: posuv vlevo A 1=2A=A+A detekcepřeplnění A+A=2A=A 1 zapojení posuv vpravo nedojde-li k přeplnění ani ke ztrátě přesnosti: (A 1) 1=A=(A 1) 1 = zapojení + detekce ztráty přesnosti MI-AAK A3 2 c A. Pluháček 2011
obvody pro posuv iii příklad doplňkový kód: MI-AAK A3 3 c A. Pluháček 2011
obvody pro posuv iv příklad aditivníkódtypu1: MI-AAK A3 4 c A. Pluháček 2011
obvody pro posuv v obvodangl.nazývaný barrelshifter MI-AAK A3 5 c A. Pluháček 2011
rozšiřování řádové mřížky rozšiřování řádové mřížky: modul Z= z n+1 } { jednotka ε=z m modul Z = z n+2 jednotka ε = z m 1 přímý kód triviální: Nulami se rozšíří absolutní hodnota; znaménko zůstane zachováno. jiné kódy: rozšíření nulami + korekce korekce: Z Z=(z 1) z n+1... novýmsb 1 2 Z 1 2 Z=(z 1) zn... starýmsb ε ε =(z 1) z m 1... novýlsb (Je-li z=2,pak(z 1)=1) MI-AAK A3 6 c A. Pluháček 2011
příklad inverzní kód: I(X)= rozšiřování řádové mřížky ii X X = = Z ε+x pro X 0 (včetněkladnénuly) pro X 0 (včetnězápornénuly) X 0 = I (X) I(X)=0 = žádnákorekce X 0 = I (X) I(X)=Z Z+ ε ε = I (X) I(X)=z { n+1 + z m 1 novýmsb = starý MSB nový LSB D I A 0 A 1 MI-AAK A3 7 c A. Pluháček 2011
násobení čísel bez znaménka A B C1 C0 1 1 0 1 1 0 1 1 = 1 0 0 0 1 1 1 1 0 0 0 0 1 1 0 1 1 0 1 1 0 1 1 1 0 1 1 1 0 0 1 1 0 0 0 0 0 0 1 0 0 1 1 1 0 1 1 1 0 0 0 1 1 0 0 0 1 1 1 1 }{{}}{{} C1 C0 registrybac0lzeztotožnit MI-AAK A3 8 c A. Pluháček 2011
B= n i=0 B= n+1 i=0 soustavy s relativními číslicemi Budeme uvažovat pouze celá čísla! (Fakticky je to bez újmy na obecnosti.) b i z i b n b n 1... b 0 z, kde 0 b i < z β i z i β n+1 β n... β 0 z±, kde 1 2 z β i 1 2 z konvence: x = x Př.: z=10 672 10 =1 3 32 10± převod: b i < 1 2 z β i b i b i > 1 2 z β i b i z; b i+1 b i +1 b i = 1 2 z β i? MI-AAK A3 9 c A. Pluháček 2011
převod(pokračování úvahy): soustavy s relativními číslicemi ii b i < 1 2 z b i= 1 2 z b i > 1 2 z Q 0 b i? b i z Q 1 b i +1 b i +1 z b i +1 z Q 0 Q 0? Q 1 Q 1 Q 0 Q 1 Q 1 b i < 1 2 z b i 1 2 z Q 0 b i b i z Q 1 b i +1 b i +1 z Q 0 Q 0 Q 1 Q 1 Q 0 Q 1 MI-AAK A3 10 c A. Pluháček 2011
soustavy s relativními číslicemi iii převod(b i β i ): b i < 1 2 z b i 1 2 z b i 1 < 1 2 z b i b i z b i 1 1 2 z b i+1 b i +1 z b 1 def = 0 z=4 b i 1 b i 00 01 10 11 0x 0 1 2 1 1x 1 2 1 0 z=2 b i 1 b i 0 1 0 0 1 1 1 0 MI-AAK A3 11 c A. Pluháček 2011
modifikovaná Boothova metoda(čísla bez znaménka) převod násobitele do čtyřkové soustavy s relativními číslicemi př.: A = 198 10 = 11000110 2 B = 231 10 = 11100111 2 = 3213,0 4 = = 10 22 1 4± 11 11 11 11 00 11 10 01 1 1 00 00 01 10 00 11 0 2 11 10 01 11 00 1 2 1 00 00 00 00 00 0 11 00 01 10 1 10 11 00 10 10 10 10 10 A B=1011001010101010 2 =45738 10 pozn.: sčítání a rozšiřování řádové mřížky se u sériové násobičky provádí postupně MI-AAK A3 12 c A. Pluháček 2011
modifikovaná Boothova metodou(čísla bez znaménka) ii mínus dva nenula 2 0 1 1 1 0 0 1 0 x x 0 1 1 0 1 2 1 1 1 MI-AAK A3 13 c A. Pluháček 2011
násobení v doplňkovém kódu řádovámřížka: Z= z n+1, ε=1 b n... b }{{ 0 β n... β }}{{ 0 } X Y X= D(B) b i b i 1 β i 0 0 0 0 1 1 1 0 1 1 1 0 1. b n=0 B 0 Y = B 2. b n=1 B <0 X= Z+ B β n+1 =1... mimořádovoumřížku ignorujese Y = X Z Y = B Př.: X= D(B)=1011 2 B = 5 10 1011 110 1 Y = 5 10 MI-AAK A3 14 c A. Pluháček 2011
Boothova metoda: násobení v doplňkovém kódu ii Příklad: A = 11 2 B= 010 2 A B=110 2 D(A)=101 D(B)=110 D (A B)=000110 B = 010 = 0 10 111101 0 10 000000 000000 0 000000 00010 1 negace 1 horká 1 00011 0000 0 0001 použití 4bitové sčítačky: 1101 0 10 0000 0000 0 00000 0010 1 negace 1 horká 1 00011 0000 0 0001 MI-AAK A3 15 c A. Pluháček 2011
násobení v doplňkovém kódu iii MI-AAK A3 16 c A. Pluháček 2011
jiný způsob: násobení v doplňkovém kódu iv D(B)= n b D i 2i = B + B, i=0 n 1 kde B = b D n 2n a B = { i=0 převedesepouze B 10 0 10 0 = 00 0 00 0 b D i 2i Tedy: První bit D(B) zleva (tzn. b D n ) má opačnou váhu, tzn.váhu 2 n (nikolivváhu+2 n ). Závěr: jako nezáporná čísla, ale v posledním kroku odčítání (0 nebo 1násobku) místo přičítání. Př.: X= D(B)=1011 2 B= 5 10 1011 1011 = 5 10 MI-AAK A3 17 c A. Pluháček 2011
násobení v doplňkovém kódu v modifikovaná Boothova metoda převod násobitele do čtyřkové soustavy s relativními číslicemi př.: A = 58 10 D(A) =11000110 2 B = 25 10 D(B) =11100111 2 =3213,0 4 B = 0 22 1 4± 00 00 00 00 00 11 10 01-1 1 11 11 11 10 00 11 0 2 00 00 01 11 00 1-2 1 00 00 00 00 00 0 00 00 01 01 10 10 10 10 A B =1450 10 =0000010110101010 2 = D(A B) MI-AAK A3 18 c A. Pluháček 2011
násobení v přímém kódu znaménko: +++ + + + 0 0 0 0 1 1 1 0 1 1 1 0 XOR absolutní hodnota nezáporné číslo neboli číslo bez znaménka násobení čísel bez znaménka (atoumíme) MI-AAK A3 19 c A. Pluháček 2011
násobení v inverzním kódu α... původnímsb prvního operandu β... původnímsb druhého operandu γ= α β MI-AAK A3 20 c A. Pluháček 2011
přeskakování nul př.: 10111101 10000101 10111101 10111101 1011 1101 3takty(místo8 standardních ) 110001000110001 možnost přeskočit l nul: šířka sčítačky a příslušných datových cest větší o l nutnýobvodproposuvo0až l 1míst MI-AAK A3 21 c A. Pluháček 2011
přeskakování jedniček Princip: j po sobě jdoucích jedniček se převede do soustavy s relativními číslicemi, např.1111=1000 1. Pakjemožnépřeskočit j 1nul (cožmáovšemsmyslpouzepro j >2). př.: 10111101 0111 0111 0111 0111=100 1100 1=1000 100 1 10111101 101 1110 1000 +101111010000000 101011111011011 MI-AAK A3 22 c A. Pluháček 2011
princip paralelní násobičky Příklad(10 13=130): 1 0 1 0 1 1 0 1 = 1 0 0 0 0 0 1 0 1 0 1 0 1 0 0 0 0 0 1 0 1 0 1 1 0 1 0 1 1 0 0 0 0 0 1 0 MI-AAK A3 23 c A. Pluháček 2011
princip paralelní násobičky MI-AAK A3 24 c A. Pluháček 2011
paralelní násobička s uschovávanými přenosy MI-AAK A3 25 c A. Pluháček 2011
Wallaceova násobička pseudosčítačka: 3vstupy A, Ba C 2výstupy Xa Y X+ Y = A+B+ C Zpoždění je stejné jako u jedné úplné sčítačky. MI-AAK A3 26 c A. Pluháček 2011
Wallaceova násobička ii opakovaná redukce trojic sčítanců na dvojice jiných sčítanců př.: 32 22 15 10 7 5 4 3 2 př.: MI-AAK A3 27 c A. Pluháček 2011
Daddova násobička Daddova násobička je modifikací Wallaceovy násobičky. Lišíseodnítím,ževprvnímkrokuse počet sčítanců redukuje tak, aby byl prvkem množiny X={2,3,4,6,9,13,19,28,42,63,94,141,...}, jejímižprvkyjsoučísla x 1 =2a x i+1 = x i /2 3 pro i=1,2,... Daddova násobička je jednodušší nebo stejně složitá jako Wallaceova násobička. př.: 32 28 19 13 9 6 4 3 2 srovnej Wallace: 32 22 15 10 7 5 4 3 2 MI-AAK A3 28 c A. Pluháček 2011
násobička Luka a Vuillemina redukce4sčítancůna2 X+ Y = A+B+ C+ D Zpoždění je stejné jako u dvou úplných sčítaček. MI-AAK A3 29 c A. Pluháček 2011
paralelní čítač paralelníčítač(p r, p r 1,..., p 0 ; q) kombinační obvod qvýstupů p r+ p r 1 +... + p 0 vstupů p i vstupůmáváhu2 i př.: úplná sčítačka = paralelní čítač(3; 2) př.: poloviční sčítačka = paralelní čítač(2; 2) př.: paralelníčítač(2,3;3) MI-AAK A3 30 c A. Pluháček 2011