Architektura komputerów

1 Architektura komputerówWykład nr 3: Układy logiczne, ar...
Author: Bronisława Sałata
0 downloads 2 Views

1 Architektura komputerówWykład nr 3: Układy logiczne, arytmetyka komputera Piotr Bilski

2 Jednostka arytmetyczno-logiczna (ALU)znaczniki stanu CU ALU rejestry rejestry Realizuje operacje arytmetyczno-logiczne Obliczenia wykonywane są na liczbach w kodzie dwójkowym (algebra Boole’a)

3 Reprezentacja liczb całkowitychLiczby całkowite: Liczby rzeczywiste: MSB LSB 27 26 25 24 23 22 21 20 6110 = 1, = 1,

4 Liczby całkowite (reprezentacja stałopozycyjna)Reprezentacja dla liczby A pozbawionej znaku Reprezentacja znak-moduł Reprezentacja uzupełnienia do dwóch (U2)

5 Przykłady (znak-moduł)2110 = -2110 = 010 = 010 = Zero ma podwójną reprezentację Dodawanie i odejmowanie wymaga osobnej analizy znaków i modułów

6 Właściwości reprezentacji U2Dodawanie liczby przeciwnej Osobny algorytm Odejmowanie Gdy znaki operan-dów są równe, a wyniku - przeciwny Analiza znaków i modułów Przepełnienie Dodatkowe bity wypełniane znakiem Dodatkowe bity = 0 MSB  znak Zwiększenie liczby bitów Uzupełnienie do 2 Zmiana MSB Negacja Jedna Dwie Reprezentacje zera -2n-1 do 2n-1-1 -2n-1-1 do 2n-1-1 Zakres U2 Znak-moduł Cecha

7 Operacje arytmetyczne na liczbach całkowitych (1)Negacja: Znak-moduł (21) (-21) U2 (21) NEG(21) (-21)

8 Operacje arytmetyczne na liczbach całkowitych (2)Rozszerzenie bitowe: Znak-moduł (21) 8b (21) 16b (-21) (-21) 16b U2 (-21) 8b (-21) 16b

9 Operacje arytmetyczne na liczbach całkowitych (3)Dodawanie: Znak-moduł (25) (13) (38) (-25) (-13) (-38) (-25) x (13) x NEG(13) (-12) (-12) (-13) x (25) x NEG(25) (12) R NEG(R)

10 Operacje arytmetyczne na liczbach całkowitych (4)Dodawanie: U2 (25) (13) (38) (-25) (-13) (-38) (-25) (13) (-12) (-13) (25)

11 Operacje arytmetyczne na liczbach całkowitych (5)Mnożenie Liczby całkowite bez znaku: 7x5 0111 (7) 4b  mnożna 0101 (5) 4b  mnożnik (35) 8b !!

12 Usprawnienia metody mnożeniaKażdy wynik cząstkowy od razu sumowany (mniej rejestrów!) Mnożenie przez zero to tylko przesunięcie!

13 Realizacja sprzętowa mnożenia liczb bez znakuMnożna (M) przesuwanie sumator Przeniesienie (C) Akumulator (A) Mnożnik (Q)

14 Przykład działania realizacji sprzętowejC A Q M wartości początkowe dodaj przesuń przesuń dodaj przesuń przesuń wynik

15 Mnożenie w reprezentacji U2Liczby całkowite ze znakiem: -7x3 1001 (-7)  mnożna 0011 (3)  mnożnik (-21) Inna interpretacja przesuwania binarnego Liczba ujemna musi być reprezentowana w kodzie U2

16 Realizacja mnożenia w kodzie U2 – algorytm BoothaA  0, Q-1  0, LOAD(M, Q) Licznik bitów = n START =10 =01 Q0, Q-1 A  A - M =11 =00 A  A + M NIE Przesunięcie w prawo A, Q, Q-1 Licznik bitów = licznik bitów - 1 Licznik bitów=0 TAK STOP

17 Przykład mnożenia w kodzie U2 (operacja 7 x 3)A Q Q M wartości początkowe odejmij przesuń arytmetycznie przesuń arytmetycznie dodaj przesuń arytmetycznie przesuń arytmetycznie wynik

18 Dzielenie liczb całkowitych bez znakuA  0, LOAD(M, Q) Licznik bitów = n Przesuń A,Q w lewo START A  A - M NIE TAK A < 0? Q0  1 Q0  0 A  A + M NIE Licznik bitów=0 Licznik bitów = licznik bitów - 1 TAK STOP

19 Dzielenie liczb w kodzie U2LOAD(A, M, Q) Licznik bitów = n Przesuń A,Q w lewo START przywróć A NIE TAK znaki A i M identyczne? A  A - M A  A + M operacja udana? NIE NIE TAK Q0  0 Q0  1 Licznik bitów=0 Licznik bitów = licznik bitów - 1 TAK STOP

20 Przykład dzielenia w kodzie U2 (operacja –7/3)A Q M wartości początkowe przesuń dodaj przywróć przesuń dodaj przywróć przesuń dodaj ustaw Q0 = 1 przesuń dodaj wynik

21 Reprezentacja zmiennopozycyjnaSłuży do reprezentacji liczb bardzo małych oraz bardzo dużych Liczba taka ma postać: gdzie: m – mantysa c – cecha (wykładnik) b - podstawa

22 Przykłady 1.24 x 107 (1.24e7) 5.82 x 10-21 x x 16101 Format 32-bitowej liczby zmiennopozycyjnej: wykładnik mantysa znak 8 bitów 23 bity

23 Zapis liczby binarnej w formacie zmiennopozycyjnym1, x 220 = x 1 0, x 2 1,265625 0,265625 0, x 2 0,53125 1 0,53125 x 2 1,0625 0,0625 0,0625 x 2 0,125 0,125 x 2 0,25 0,25 x 2 0,5 1 0,5 x 2 1,0

24 Zapis liczby binarnej w formacie zmiennopozycyjnym1, x 220 = x Wykładnik jest liczbą przesuniętą o 127, więc 20 = = 147 (j.w.)

25 Normalizacja liczby w formacie zmiennopozycyjnymWykładnik jest tak zmieniany, aby pierwsza cyfra mantysy przed przecinkiem była niezerowa Ponieważ niezerowa cyfra to 1, nie trzeba jej przechowywać

26 Zakres i dokładność liczb zmiennopozycyjnychDla liczby 32-bitowej: Wykładnik jest 8-bitowy, zatem zakres liczb to Mantysa jest 23-bitowa, zatem dokładność wynosi 2-23 = 1.2 x 10-7 Konieczny jest kompromis pomiędzy dokładnością i zakresem

27 Gęstość i zakres liczb w formacie zmiennopozycyjnymprzepełnienie ujemne niedomiar ujemny niedomiar dodatni przepełnienie dodatnie zero -n n n n

28 Norma IEEE 754 Stosowany standard przechowywania liczb zmiennopozycyjnych Dotyczy liczb 32- i 64-bitowych Cecha o długości, odpowiednio, 8 i 11 bitów Domyślna podstawa wynosi 2 Przewidziane formaty rozszerzone dla obliczeń pośrednich

29 Wartości specjalne w IEEE 754c = 0, m = 0 – dodatnie lub ujemne zero c = , m = 0 – dodatnia lub ujemna nieskończoność c = 0, m  0 - liczba zdenormalizowana (bit na lewo od przecinka jest zerem!) c = , m  0 - NaN

30 Arytmetyka zmiennopozycyjnaPodstawowe operacje:

31 Dodawanie i odejmowanieSprawdzenie zer Wyrównanie mantys Dodanie lub odjęcie mantys Normalizacja wyniku Przykład: (123 x 100)+(456 x 10-2)=(123 x 100)+(4,56 x 100) = = 127,56 x 100

32 Mnożenie i dzielenie Sprawdzenie zerDodanie wykładników i odjęcie wartości przesunięcia od sumy Sprawdzenie przepełnienia lub niedomiaru wykładnika Mnożenie mantys z uwzględnieniem znaków (postać znak-moduł!) Zaokrąglanie i normalizacja wyniku iloczynu

33 Układy logiczne (1) Podstawowe bramki: A B Y 0 0 0 0 1 0 A 1 0 0 B Y0 0 0 0 1 0 1 0 0 1 1 1 A B Y Y = A AND B A B Y 0 0 0 0 1 1 1 0 1 1 1 1 A B Y Y = A OR B A Y 1 0 0 1 A Y A = NOT Y

34 Układy logiczne (2) Dodatkowe bramki: A B Y 0 0 1 0 1 1 1 0 1 1 1 0 A0 0 1 0 1 1 1 0 1 1 1 0 A B Y Y = A NAND B A B Y 0 0 1 0 1 0 1 0 0 1 1 0 A B Y Y = A NOR B A B Y 0 0 0 0 1 1 1 0 1 1 1 0 A B Y Y = A XOR B

35 Układy logiczne (3) Półsumator A B S C 0 0 0 0 0 1 1 0 1 0 - - 1 1 - - A B S C A S B C

36 Układy logiczne (4) Sumator A B Ci S Co 0 0 0 0 0 0 1 0 1 0 1 0 0 1 0 Ci A B A S B C S Co A S B C

37 Układy logiczne (5) Sumator 4-bitowy S0 S1 S2 S3 C1 C2 C4 C3A B A1 B A2 B A3 B3