Organizacja i architektura komputerw Wykad nr 3 Ukady
- Slides: 39
Organizacja i architektura komputerów Wykład nr 3: Układy logiczne, arytmetyka komputera Piotr Bilski
Jednostka arytmetycznologiczna (ALU) znaczniki stanu CU rejestry ALU rejestry • Realizuje operacje arytmetyczno-logiczne • Obliczenia wykonywane są na liczbach w kodzie dwójkowym (algebra Boole’a)
Reprezentacja liczb całkowitych • Liczby całkowite: MSB 27 26 25 24 23 22 21 20 LSB 6110 = 0 0 1 1 0 12 • Liczby rzeczywiste: 1, 632812510 = 1, 1 0 0 0 1 02
Liczby całkowite (reprezentacja stałopozycyjna) • Reprezentacja dla liczby A pozbawionej znaku • Reprezentacja znak-moduł • Reprezentacja uzupełnienia do dwóch (U 2)
Przykłady (znak-moduł) 2110 = 000101012 -2110 = 100101012 010 = 00002 010 = 100000002 • Zero ma podwójną reprezentację • Dodawanie i odejmowanie wymaga osobnej analizy znaków i modułów
Właściwości reprezentacji U 2 Cecha Znak-moduł U 2 Zakres -2 n-1 -1 do 2 n-1 -1 -2 n-1 do 2 n-1 -1 Dwie Jedna Reprezentacje zera Negacja Zmiana MSB Zwiększenie liczby Dodatkowe bity = 0 bitów MSB znak Przepełnienie Analiza znaków i modułów Odejmowanie Osobny algorytm Uzupełnienie do 2 Dodatkowe bity wypełniane znakiem Gdy znaki operandów są równe, a wyniku - przeciwny Dodawanie liczby przeciwnej
Operacje arytmetyczne na liczbach całkowitych (1) Negacja: Znak-moduł 00010101 (21) +10000000 10010101 (-21) U 2 00010101 (21) 11101010 NEG(21) +00000001 11101011 (-21)
Operacje arytmetyczne na liczbach całkowitych (2) Rozszerzenie bitowe: Znak-moduł 00010101 (21) 8 b 0000 00010101 (21) 16 b 10010101 (-21) 10000000 00010101 (-21) 16 b U 2 00010101 (21) 8 b 0000 00010101 (21) 16 b 11101011 (-21) 8 b 1111 11101011 (-21) 16 b
Operacje arytmetyczne na liczbach całkowitych (3) Dodawanie: Znak-moduł 00011001 (25) +00001101 (13) 00100110 (38) 1001 (-25) +00001101 (13) 10001100 (-12) x 0011001 x 1110010 NEG(13) 0001011 +0000001 10001100 (-12) 1001 (-25) 10001101 (-13) x 0001101 +10001101 (-13) +00011001 (25) x 1100110 NEG(25) 10100110 (-38) 00001100 (12) 1110011 R 00001100 NEG(R)
Operacje arytmetyczne na liczbach całkowitych (4) Dodawanie: U 2 00011001 (25) +00001101 (13) 00100110 (38) 11100111 (-25) +00001101 (13) 11110100 (-12) 11100111 (-25) 11110011 (-13) +00011001 (25) 11011010 (-38) 00001100
Operacje arytmetyczne na liczbach całkowitych (5) • Mnożenie Liczby całkowite bez znaku: 7 x 5 0111 (7) 4 b mnożna 0101 (5) 4 b mnożnik 00000111 0000 00011100 0000 00100011 (35) 8 b !!
Usprawnienia metody mnożenia • Każdy wynik cząstkowy od razu sumowany (mniej rejestrów!) • Mnożenie przez zero to tylko przesunięcie!
Realizacja sprzętowa mnożenia liczb bez znaku Mnożna (M) przesuwanie sumator Przeniesienie (C) Akumulator (A) Mnożnik (Q)
Przykład działania realizacji sprzętowej C 0 0 0 A 0000 0111 0011 Q 0101 1010 M 0111 wartości początkowe 0111 dodaj 0111 przesuń 0 0001 1101 0111 przesuń 0 0 1000 0100 1101 0110 0111 dodaj 0111 przesuń 0 0010 0011 0111 wynik
Mnożenie w reprezentacji U 2 • Liczby całkowite ze znakiem: -7 x 3 1001 (-7) mnożna 0011 (3) mnożnik 111110010 11101011 (-21) Inna interpretacja przesuwania binarnego Liczba ujemna musi być reprezentowana w kodzie U 2
Realizacja mnożenia w kodzie U 2 – algorytm Bootha A 0, Q-1 0, LOAD(M, Q) START Licznik bitów = n =10 A A-M NIE Q 0, Q-1 =01 =11 =00 A A+M Przesunięcie w prawo A, Q, Q-1 Licznik bitów=0 Licznik bitów = licznik bitów - 1 TAK STOP
Przykład mnożenia w kodzie U 2 (operacja 7 x 3) A 0000 1001 1100 Q Q-1 0011 0 1001 1 M 0111 wartości początkowe 0111 odejmij 0111 przesuń arytmetycznie 1110 0100 1 0111 przesuń arytmetycznie 0101 0010 0100 1010 1 0 0111 dodaj 0111 przesuń arytmetycznie 0001 0011 0 0111 przesuń arytmetycznie 0001 0101 0 0111 wynik
Dzielenie liczb całkowitych bez znaku A 0, LOAD(M, Q) START Przesuń A, Q w lewo Licznik bitów = n A A-M NIE A < 0? TAK Q 0 0 Q 0 1 A A+M Licznik bitów=0 Licznik bitów = licznik bitów - 1 TAK STOP
Dzielenie liczb w kodzie U 2 LOAD(A, M, Q) START Licznik bitów = n przywróć A NIE znaki A i M identyczne? A A+M NIE Przesuń A, Q w lewo Q 0 0 Licznik bitów=0 NIE Znak A niezmieniony ? TAK A A-M TAK Q 0 1 Licznik bitów = licznik bitów - 1 TAK STOP
Przykład dzielenia w kodzie U 2 (operacja – 7/3) A 1111 0010 1111 1110 0001 1110 1100 1111 0010 1111 Q 1001 0010 0100 1000 1001 0010 M 0011 wartości początkowe 0011 przesuń dodaj 0011 przywróć 0011 przesuń dodaj 0011 ustaw Q 0 = 1 0011 przesuń dodaj 0011 przywróć 0011 wynik
Reprezentacja zmiennopozycyjna • Sł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
Przykłady 1. 24 x 107 (1. 24 e 7) 5. 82 x 10 -21 0. 010110 x 2110101 0. 001001 x 16101 Format 32 -bitowej liczby zmiennopozycyjnej: znak wykładnik mantysa 8 bitów 23 bity
Zapis liczby binarnej w formacie zmiennopozycyjnym 1, 6328125 x 220 = 1. 1010001 x 210100 0, 6328125 x 2 1, 265625 1 0, 265625 x 2 0, 53125 x 2 1, 0625 1 0, 0625 x 2 0, 125 x 2 0, 25 x 2 0, 5 x 2 1, 0 1 0
Zapis liczby binarnej w formacie zmiennopozycyjnym 1, 6328125 x 220 = 1. 1010001 x 210100 0 10010011 101000000000 • Wykładnik jest liczbą przesuniętą o 127, więc 20 = 127 + 20 = 147 (j. w. )
Normalizacja liczby w formacie zmiennopozycyjnym • Wykładnik jest tak zmieniany, aby pierwsza cyfra mantysy przed przecinkiem była niezerowa • Ponieważ niezerowa cyfra to 1, nie trzeba jej przechowywać
Zakres i dokładność liczb zmiennopozycyjnych Dla liczby 32 -bitowej: • Wykładnik jest 8 -bitowy, zatem zakres liczb to +-2256 • 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
Gęstość i zakres liczb w formacie zmiennopozycyjnym niedomiar dodatni ujemny przepełnienie ujemne przepełnienie dodatnie zero -n 0 n 2 n 4 n
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
Wartości specjalne w IEEE 754 • c = 0, m = 0 – dodatnie lub ujemne zero • c = 1111, m = 0 – dodatnia lub ujemna nieskończoność • c = 0, m 0 - liczba zdenormalizowana (bit na lewo od przecinka jest zerem!) • c = 1111, m 0 - Na. N
Arytmetyka zmiennopozycyjna Podstawowe operacje:
Dodawanie i odejmowanie 1. 2. 3. 4. Sprawdzenie 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
Mnożenie i dzielenie 1. Sprawdzenie zer 2. Dodanie wykładników i odjęcie wartości przesunięcia od sumy 3. Sprawdzenie przepełnienia lub niedomiaru wykładnika 4. Mnożenie mantys z uwzględnieniem znaków (postać znak-moduł!) 5. Zaokrąglanie i normalizacja wyniku iloczynu
Jednostka zmiennoprzecinkowa • Odpowiada za wykonywanie operacji na liczbach rzeczywistych • Obecnie zintegrowany w procesorach ogólnego przeznaczenia (niekoniecznie w systemach wbudowanych!) • W systemach bez koprocesora konieczna emulacja za pomocą biblioteki na liczbach stałopozycyjnych (fixed-point), realizowana przez ALU
Koprocesor x 87 (np. 80287) • Osiem rejestrów roboczych st 0 -st 7 zorganizowanych w stos • Osobne rejestry znaczników i flagowe • Przykładowe operacje: fld 1 fadd st 1 fxch st 3
Układy logiczne (1) Podstawowe bramki: A Y B Y = A AND B A Y B Y = A OR B A Y A = NOT Y A B Y 0 0 1 1 1 A B Y 0 0 1 1 1 0 1 1 A Y 1 0 0 1
Układy logiczne (2) Dodatkowe bramki: A Y B Y = A NAND B A Y B Y = A NOR B A Y B Y = A XOR B A B Y 0 0 1 0 1 0 0 1 1 0 A B Y 0 0 1 1 1 0 A B Y 0 0 1 1 1 0
Układy logiczne (3) Półsumator A S B C A B S C 0 0 0 1 1 0 - - 1 1 - -
Układy logiczne (4) Sumator Ci A B S S C Co A B S C A B Ci S Co 0 0 0 1 0 1 0 0 1 1 0 0 1 1 1 1
Układy logiczne (5) Sumator 4 -bitowy S 0 S 1 C 1 0 A 0 B 0 S 2 C 2 A 1 B 1 S 3 C 4 C 3 A 2 B 2 A 3 B 3
- Schemat budowy logicznej klawiatury
- Lubelska organizacja turystyczna
- Koncepcja d ulricha
- Organizacja mechanistyczna
- Organizacja fraktalna
- Xxigo
- Planowanie pracy zespołu prezentacja
- Organizacja fraktalna
- Struktury nato
- Czsto
- Wei pollub
- Internet jako ocean informacji
- Architektura starożytnego egiptu prezentacja
- Architektura oświecenia
- Barok architektura
- Dekoracyjny pionowy pas muru
- Donato bramante
- Architettura von neumann
- Architektura systemu windows 10
- Architektura romantismus
- Architektura it co to jest
- Co to jest zikkurat
- Harvardska architektura
- Toajen
- Barok tomaszewska
- Budowa zestawu komputerowego prezentacja
- Barok prezentacja
- Architektura systemów operacyjnych
- Klasicismus architektura
- Barokové stavby na slovensku
- Architektura helleńska
- Architektura aplikacji webowych
- Znaky románské architektury
- Co to architektura
- Architektura klient server
- Byzantská architektura
- Architektura plat
- Architektura trójwarstwowa
- Architektura heksagonalna
- Klasicismus architektura