Wykład 3 Arytmetyka komputerów


12/3/2008
architektura komputerów
w. 3
Arytmetyka komputerów
Systemy pozycyjne - dodawanie
w systemie dwójkowym
100101011001110010101
100111101000001000
0110110011101
1
architektura komputerów w 3 1
12/3/2008
Arytmetyka binarna.
Półsumator
A B S C
A
A
s
S
B
0 0 0 0
0 1 1 0
C
B
1 0 1 0 c
1 1 0 1
A
y =ð a Åð b
B s
ci =ð ab
c
Arytmetyka binarna.
A
S
Sumator
B
Ci
Ci-1
a b ci-1 ci y
si =ð ai Åð bi Åð ci-ð1
0 0 0
0 0
ci =ð aibi +ð ci-ð1(ai +ð bi )
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
architektura komputerów w 3 2
12/3/2008
Arytmetyka binarna.
Sumator
A
S S
Ci
C
B
Ci+1
A S
C
B
sumator
si =ð ai Åð bi Åð ci-ð1
ci =ð aibi +ð ci-ð1(ai +ð bi )
A
S
B
AB Ci-1
Ci
Ci-1
s
A
B s
Ci-1
ci
ci
architektura komputerów w 3 3
12/3/2008
Arytmetyka stałoprzecinkowa
Sumowanie liczb naturalnych
Obliczona wartość jest poprawna, jeżeli przeniesienie z pozycji k-1 jest równe 0.
Jeżeli tak nie jest to wystąpił nadmiar stałoprzecinkowy. (wynik przekracza zakres
reprezentacji)
Sumowanie liczb w kodzie uzupełnieniowym U2
Obliczona wartość jest poprawna, jeżeli przeniesienie z pozycji k-1 i k-2 są
identyczne.
Jeżeli tak nie jest to wystąpił nadmiar. (wynik przekracza zakres reprezentacji)
Odejmowanie liczb
Odejmowanie jest realizowane jako dodawanie liczby ujemnej. Zamiana liczby
dodatniej na ujemnÄ… w kodzie U2 jest realizowana na sumatorze poprzez
zanegowanie wszystkich pozycji i wymuszenie przeniesienia C0 = 1.
Arytmetyka stałoprzecinkowa
Dodawanie liczb naturalnych
Wykorzystywane są 3 rejestry - rejestr składnika 1 (A), składnika 2 (B) i sumy (S)
B
A
OV

C
S
architektura komputerów w 3 4
12/3/2008
Arytmetyka stałoprzecinkowa
Odejmowanie liczb naturalnych
Wykorzystywane są 3 rejestry - rejestr odjemnej (A), odjemnika (B) i różnicy (S)
B
A
not
1
OV

C
S
Sumator/substraktor
Dodawanie/
odejmowanie
Overflow
V = cn 1Åðcn
architektura komputerów w 3 5
12/3/2008
Dodawanie
Overflow
V = cn 1Åðcn
Dodawanie zwielokrotnionej precyzji
Sumator z przeniesieniem równoległym
a n-1 a bi a b0
b
n-1
0
i
cn
ci+1 c1

cc Sð Sð c0
n-1
yn-1
y0
yi
A B c0
Blok
generacji
przeniesień
Blok sumujÄ…cy
Y
architektura komputerów w 3 6
12/3/2008
Sumator z przeniesieniem równoległym
a n-1 a bi a b0
b
n-1
0
i
ci+ð1 =ð aibi +ð ci (ai +ð bi)
cn
ci+1 c1

cc Sð Sð c0
n-1
gi =ð aibi
ci+ð1 =ð gi +ð cihi
hi =ð ai +ð bi
yn-1
y0
yi
ci+ð1 =ð gi +ð higi-ð1 +ð hihi-ð1gi-ð2 +ð ...+ð hihi-ð1...h0c0
A B c0
i i
Blok
ci+ð1 =ð gi
generacji Uð Õðhk
j=ð-ð1 k =ð j+ð1
przeniesień
yi =ð ai Åð bi Åð ci
Blok sumujÄ…cy
Y
Sumator z przeniesieniem równoległym
i i
ci+ð1 =ð
Uðgi Õðhk
j=ð-ð1 k =ð j+ð1
yi =ð ai Åð bi Åð ci
Opóznienie układu generacji przeniesienia ci
wynosi log22i
architektura komputerów w 3 7
12/3/2008
Sumator z przeniesieniem równoległym
Opóznienie układu generacji przeniesienia ci
wynosi log22i
Sumator z przeniesieniem równoległym
architektura komputerów w 3 8
12/3/2008
Sumator z przeniesieniem równoległym
Arytmetyka binarna.
Sumator 4 pozycyjny
A3 B3 A2 B2 A1 B1 A0 B0
Sð Sð C-1
Sð Sð
C4 S3 S2 S1
S0
architektura komputerów w 3 9
12/3/2008
Arytmetyka stałoprzecinkowa
Mnożenie liczb naturalnych
Mnożenie maszynowe wykonywane jest w oparciu o algorytm naturalny (dodaj i
przesuń). Wykorzystywane są 3 rejestry - rejestr mnożnej (A), mnożnika (K) i
iloczynu (M)
M K
A

Arytmetyka stałoprzecinkowa
Mnożenie liczb naturalnych
i :=0
M:=0
N - długość rejestrów
A, M, K w bitach
T
N K(0)=
K(0) - najmłodszy bit 0
M:=M+A
rejestru K
i :=i+1
M.K:=shr
(M,K)
zaokraglenie
T wyniku
i=N
architektura komputerów w 3 10
12/3/2008
Arytmetyka stałoprzecinkowa
Mnożenie liczb naturalnych
M K
A
0101 0000 1101

Arytmetyka stałoprzecinkowa
Mnożenie liczb naturalnych
STOP
M K
A
0101 0100 0001

1001
N=4
architektura komputerów w 3 11
12/3/2008
Arytmetyka stałoprzecinkowa
Mnożenie liczb w kodzie U2
Mnożenie w kodzie uzupełnieniowym wykonywane jest w ten sposób, że w kolejnych
krokach dodawana jest liczba będąca rozszerzeniem nieskończonym
dodawanego iloczynu częściowego. Dodatkowo w ostatnim kroku algorytmu
(pozycja znaku), o ile mnożnik jest ujemny należy wykonać zamiast dodawania
odejmowanie.
Przykład. +9*(+13) -7*(-3)
A 1001 1001
M 1101 1101
1001 1111001
0000 000000
1001 11001
1001 0111
1110101 0010101
Arytmetyka stałoprzecinkowa
Dzielenie liczb
Dzielenie wykonuje się na 3 rejestrach - dzielnej (A), dzielnika (K) i ilorazu (Q). Ilość
kroków algorytmu jest zależna od wymaganej dokładności wyniku.
W kolejnych krokach w rejestrze A znajdują się kolejne reszty częściowe Ri.
i :=0
T
N
AQi:=1; Qi:=0;
A:=shl(A-K) A:=shl(A)
i :=i+1
T
I=N Koniec
architektura komputerów w 3 12
12/3/2008
Arytmetyka stałoprzecinkowa
A3 B3 A2 B2 A1 B1 A0 B0
Sð Sð
Sð Sð
C4 S3 S2 S1
S0
szybkość działań stałoprzecinkowych
skrócenie czasu propagacji przeniesienia
eliminacja propagacji przeniesień
mnożenie - redukcja liczby iloczynów częściowych (algorytmy Bootha i Bootha-
McSorleya)
Arytmetyka
zmiennoprzecinkowa
Dodawanie i odejmowanie
zrównanie cech (do większej) obu argumentów.
Dodanie (odjęcie) mantys
znormalizowanie wyniku
błędy - utrata dokładności wyniku
Mnożenie i dzielenie
pomnożenie (podzielenie) mantys
dodanie (odjęcie) cech
normalizacja wyniku
błędy  nadmiar lub niedomiar zmiennoprzecinkowy
Błędy operacji zmiennoprzecinkowych
overflow i underflow
kumulacja błędu operacji arytmetycznych (łagodna i katastroficzna utrata dokładności)
architektura komputerów w 3 13


Wyszukiwarka

Podobne podstrony:
Wykład I Arytmetyka systemów cyfrowych
Arytmetyka komputerów
wyklad 3 na3h komputerowa analiza i przetwarzanie obrazow
utk arytmetyka komputera
05 Arytmetyka komputerów Blędy numeryczne
Arytmetyka Komputerowa
Arytmetyka komputera
Sieci komputerowe wyklady dr Furtak
bezpieczenstwo komputerowe wyklad
Sieci komputerowe I Wykład 5
Sieci komputerowe I Wykład 8P
Sieci komputerowe I Wykład 6
Sieci komputerowe I Wykład 2P
Sieci komputerowe I Wykład 1P
Sieci komputerowe I Wykład 8

więcej podobnych podstron