archtektura komputerów w. 3 Arytmetyka komputerów Systemy pozycyjne - dodawane w systeme dwójkowym 100101011001110010101 100111101000001000 0110110011101 1 archtektura komputerów w 3 1
Arytmetyka bnarna. Półsumator A B S C 0 0 0 0 0 1 1 0 1 0 1 0 1 1 0 1 A B S C A B s c y a b c ab A B s c Arytmetyka bnarna. A B S a b c -1 c y 0 0 0 0 0 0 0 1 0 1 0 1 0 0 1 0 1 1 1 0 1 0 0 0 1 1 0 1 1 0 1 1 0 1 0 1 1 1 1 1 C -1 s c C a b c1 a b c ( a b ) 1 archtektura komputerów w 3 2
Arytmetyka bnarna. Sumator C A S S B C A B S C C +1 A B C -1 S C sumator s c a b c1 a b c ( a b ) 1 AB C-1 s A B C-1 s c c archtektura komputerów w 3 3
Arytmetyka stałoprzecnkowa Sumowane lczb naturalnych Oblczona wartość jest poprawna, jeżel przenesene z pozycj k-1 jest równe 0. Jeżel tak ne jest to wystąpł nadmar stałoprzecnkowy. (wynk przekracza zakres reprezentacj) Sumowane lczb w kodze uzupełnenowym U2 Oblczona wartość jest poprawna, jeżel przenesene z pozycj k-1 k-2 są dentyczne. Jeżel tak ne jest to wystąpł nadmar. (wynk przekracza zakres reprezentacj) Odejmowane lczb Odejmowane jest realzowane jako dodawane lczby ujemnej. Zamana lczby dodatnej na ujemną w kodze U2 jest realzowana na sumatorze poprzez zanegowane wszystkch pozycj wymuszene przenesena C 0 = 1. Arytmetyka stałoprzecnkowa Dodawane lczb naturalnych Wykorzystywane są 3 rejestry - rejestr składnka 1 (A), składnka 2 (B) sumy (S) A B OV C S archtektura komputerów w 3 4
Arytmetyka stałoprzecnkowa Odejmowane lczb naturalnych Wykorzystywane są 3 rejestry - rejestr odjemnej (A), odjemnka (B) różncy (S) A B OV C not 1 S Sumator/substraktor Dodawane/ odejmowane Overflow V = c n 1 c n archtektura komputerów w 3 5
Dodawane Overflow V = c n 1 c n Dodawane zwelokrotnonej precyzj Arytmetyka bnarna. Sumator 4 pozycyjny A 3 B 3 A 2 B 2 A 1 B 1 A 0 B 0 C -1 C 4 S 3 S 2 S 1 S 0 archtektura komputerów w 3 6
Arytmetyka stałoprzecnkowa A 3 B 3 A 2 B 2 A 1 B 1 A 0 B 0 C -1 C 4 S 3 S 2 S 1 S 0 czas dodawana zależy od szybkośc propagacj przeneseń Przyspeszene propagacj przeneseń elmnacja propagacj przeneseń Teoretyczna max szybkość dodawana rzędu log n. Sumator z przenesenem równoległym (carry look-ahead adder) a b n-1 n-1 a b a b 0 0 c n c c n-1 c +1 c 1 c 0 y n-1 y y 0 A B c 0 Blok generacj przeneseń Blok sumujący Y archtektura komputerów w 3 7
c n a b n-1 n-1 y n-1 c c n-1 Sumator z przenesenem równoległym c +1 a b y a b 0 0 c 1 c 0 y 0 A B c 0 c c a b c ( a b ) 1 g ab h a b 1 g h g 1 h h 1g 2 h h 1... c 1 g c h... h c 0 0 Blok generacj przeneseń Blok sumujący c 1 j1 y a b c g h k k j1 Y Sumator z przenesenem równoległym c 1 j1 y a b c g h k k j1 Opóźnene układu generacj przenesena c wynos log 2 2 archtektura komputerów w 3 8
Sumator z przenesenem równoległym 74283 Sumator z przenesenem równoległym archtektura komputerów w 3 9
Sumator z przenesenem równoległym Arytmetyka stałoprzecnkowa Mnożene lczb naturalnych metodą akumulacyjną Mnożene maszynowe wykonywane jest w oparcu o algorytm naturalny (dodaj przesuń). Wykorzystywane są 3 rejestry - rejestr mnożnej (A), mnożnka (K) loczynu (M) 10101 A x 10011 M 10101 A 10011 SHL A 111111 ADD 10101 SHL A, SHL A, SHL A 110001111 ADD archtektura komputerów w 3 10
Arytmetyka stałoprzecnkowa Mnożene lczb naturalnych metodą akumulacyjną Mnożene maszynowe wykonywane jest w oparcu o algorytm naturalny (dodaj przesuń). Wykorzystywane są 3 rejestry - rejestr mnożnej (A), mnożnka (K) loczynu (M) Arytmetyka stałoprzecnkowa Mnożene lczb naturalnych N - długość rejestrów A, M, K w btach K(0) - najmłodszy bt rejestru K M:=M+A N :=0 M:=0 K(0)= 0 T :=+1 M.K:=shr (M,K) =N T zaokraglene wynku archtektura komputerów w 3 11
Arytmetyka stałoprzecnkowa Mnożene lczb naturalnych 0101 0000 1101 Arytmetyka stałoprzecnkowa Mnożene lczb naturalnych START 0101 0000 1101 0101 N=0 archtektura komputerów w 3 12
Arytmetyka stałoprzecnkowa Mnożene lczb naturalnych START 0101 0101 1101 0101 N=0 Arytmetyka stałoprzecnkowa Mnożene lczb naturalnych START 0101 0101 1101 0101 N=1 archtektura komputerów w 3 13
Arytmetyka stałoprzecnkowa Mnożene lczb naturalnych START 0101 0010 1110 0111 N=1 Arytmetyka stałoprzecnkowa Mnożene lczb naturalnych START 0101 0010 1110 0111 N=2 archtektura komputerów w 3 14
Arytmetyka stałoprzecnkowa Mnożene lczb naturalnych START 0101 0001 0111 0110 N=2 Arytmetyka stałoprzecnkowa Mnożene lczb naturalnych START 0101 0110 0111 0110 N=2 archtektura komputerów w 3 15
Arytmetyka stałoprzecnkowa Mnożene lczb naturalnych START 0101 0110 0111 1011 N=3 Arytmetyka stałoprzecnkowa Mnożene lczb naturalnych START 0101 0011 0011 1000 N=3 archtektura komputerów w 3 16
Arytmetyka stałoprzecnkowa Mnożene lczb naturalnych START 0101 1000 0011 1000 N=3 Arytmetyka stałoprzecnkowa Mnożene lczb naturalnych START 0101 1000 0011 1101 N=4 archtektura komputerów w 3 17
Arytmetyka stałoprzecnkowa Mnożene lczb naturalnych START 0101 0100 0001 1001 N=4 Arytmetyka stałoprzecnkowa Mnożene lczb naturalnych STOP 0101 0100 0001 1001 N=4 archtektura komputerów w 3 18
Arytmetyka stałoprzecnkowa Mnożene lczb w kodze U2 Mnożene w kodze uzupełnenowym wykonywane jest w ten sposób, że w kolejnych krokach dodawana jest lczba będąca rozszerzenem neskończonym dodawanego loczynu częścowego. Dodatkowo w ostatnm kroku algorytmu (pozycja znaku), o le mnożnk jest ujemny należy wykonać zamast dodawana odejmowane. Przykład. +9*(+13) -7*(-3) A 1001 1001 M 1101 1101 1001 1111001 0000 000000 1001 11001 1001 0111 1110101 0010101 Arytmetyka stałoprzecnkowa Dzelene lczb Dzelene wykonuje sę na 3 rejestrach - dzelnej (A), dzelnka (K) lorazu (Q). Ilość kroków algorytmu jest zależna od wymaganej dokładnośc wynku. W kolejnych krokach w rejestrze A znajdują sę kolejne reszty częścowe R. :=0 N Q :=1; A:=shl(A-K) A<K T Q :=0; A:=shl(A) :=+1 I=N T Konec archtektura komputerów w 3 19
Układy mnożące Układy sekwencyjne z redukcją lczby loczynów częścowych Układy równoległe Układy matrycowe Układy mnożące Układy sekwencyjne z redukcją lczby loczynów częścowych Układy równoległe Układy matrycowe archtektura komputerów w 3 20
Algorytm Bootha k1 k Jeżel mnożymy lczbę przez (2... 2 ) zamast k dodawać s loczynów częścowych o wagach 2 1,2,..., s 1 od loczynu o wadze ks odejmujemy loczyn o wadze k 2 2 s pozycj 00011.11000 można zastąpć zapsem 00100.01000 gdze 1 oznacza (-1) Prowadz to do algorytmu polegającego na badanu par btów mnożnka począwszy od najmłodszego, przy czym zakłada sę że bt na prawo od btu najmnej znaczącego =0. W zależnośc od sekwencj btów wykonuje sę: 01 - dodane 10 - odjęce mnożnej 00,11 - żadna operacja Sekwencję kończy zawsze przesunęce o jedną pozycje w prawo Algorytm Bootha ks 2 (2... 2 ) k1 k archtektura komputerów w 3 21
Algorytm Bootha Przykład. M=23, Q=-19 A Q Q -1 op M 000000 101101 0 -M 010111 101001 101101 0 SHRA 010111 110100 110110 1 +M 010111 001011 110110 1 SHRA 010111 000101 111011 0 -M 010111 101110 111011 0 SHRA 010111 110111 011101 1 SHRA 010111 111011 101110 1 +M 010111 010010 101110 1 SHRA 010111 001001 010111 0 -M 010111 110010 010111 0 SHRA 010111 111001 001011 1 wynk -437 Algorytm Bootha Oba elementy mogą być zarówno dodatne jak ujemne Jeżel w mnożnku występują dłuższe cąg zerojedynkowe algorytm przyspesza mnożene. W przecwnym wypadku wręcz przecwne. archtektura komputerów w 3 22
Układy mnożące Układy sekwencyjne z redukcją lczby loczynów częścowych Układy równoległe Układy matrycowe Układ mnożena równoległego A x 0 A x 1 A x 2 A x 3 archtektura komputerów w 3 23
Układ mnożena matrycowego Matryca mnożącą operandy 5-co btowe w kodze U2. FA sumator, HA półsumator Arytmetyka zmennoprzecnkowa X= (-1) z m* c Mnożene dzelene pomnożene (podzelene) mantys dodane (odjęce) cech normalzacja wynku problemy nadmar lub nedomar zmennoprzecnkowy Problem zaokrąglena Utrata dokładnośc archtektura komputerów w 3 24
Arytmetyka zmennoprzecnkowa Schemat ogólny układu sumatora z przenesenam jednoczesnym Arytmetyka zmennoprzecnkowa X= (-1) z m* c Dodawane odejmowane zrównane cech (do wększej) obu argumentów. Dodane (odjęce) mantys znormalzowane wynku błędy - utrata dokładnośc wynku archtektura komputerów w 3 25
Arytmetyka zmennoprzecnkowa Schemat ogólny układu sumatora z przenesenam jednoczesnym Arytmetyka zmennoprzecnkowa archtektura komputerów w 3 26
Arytmetyka zmennoprzecnkowa Utrata dokładnośc Przykład 3.: Oblczymy (dokładność- 4 cyfry) z=x2-y2, gdze x=4,005 a y=4,004 z x 2 y 2 16,04002516,032016 0,01 Prawdzwa wartość z = 0,008009. Błąd względny wynos Jeżel jednak skorzystamy ze wzoru To 0,008009 0,01 24,859% 0,008009 x 2 y A błąd względny wynese 2 ( x y)( x y) z ( 4,004 4,005)(4,004 4,005) 0,0018,009 0,008 0,008009 0,008 0,112% 0,008009 Arytmetyka zmennoprzecnkowa Utrata dokładnośc Przykład 1.: 1,000000000001x2 3 1,111111110001x2 2 = 0,0000000010001x2 3 =1,0001?????? 2 6 Przykład 2.: 1,00000101x2 7 1,11111101x2 6 GRX 1,00000101 00000 0,11111110 10000 0,00000110 10000 1,1010000? 1,00000101 000 0,11111110 100 0,00000110 100 1,10100???? archtektura komputerów w 3 27