Architektura komputerów

Slides:



Advertisements
Podobne prezentacje
Sławomir Nowak Podstawy informatyki
Advertisements

A.Skorupski „Podstawy budowy i działania komputerów” (Warszawa 2000)
UKŁADY ARYTMETYCZNE.
Operacje zmiennoprzecinkowe
Mikroprocesory i procesory sygnałowe
Metody numeryczne Wykład no 1.
Liczby w Komputerze Zajęcia 3.
Wykład 2: Liczby rzeczywiste (stało i zmiennoprzecinkowe) Koprocesor
Przetwarzanie informacji
Podstawowe składniki funkcjonalne procesora i ich rola.
B. znaki alfabetu D. obrazy
Systemy liczbowe w architekturze komputerów materiał do wykładu 1/3
Budowa komputera Wstęp do informatyki Wykład 15
Budowa komputera Wstęp do informatyki Wykład 6 IBM PC XT (1983)
Od algebry Boole’a do komputera
SYSTEMY LICZBOWE.
ARCHITEKTURA WEWNĘTRZNA KOMPUTERA
Minimalizacja funkcji boolowskich
Mikroprocesory i procesory sygnałowe
Architektura komputerów
dr Anna Kwiatkowska Instytut Informatyki
Zapis informacji Dr Anna Kwiatkowska.
Reprezentacje - zmiennoprzecinkowa
SYSTEMY LICZBOWE Rodzaje informacji (analogowe i cyfrowe)
Elektronika cyfrowa i mikroprocesory
Systemy liczbowe.
Aleksandra Duchnowicz kl. 6.d
Technika Mikroprocesorowa 1
Technika Mikroprocesorowa 1
opracowanie: Agata Idczak
Informatyka I Język ANSI C
Cyfrowe układy logiczne
Podstawy informatyki (2)
Metodyka nauczania Informatyki
Reprezentacja stało i zmiennopozycjna
System dwójkowy - binarny
Podsieci ZS3 Jasło Klasa 4e.
Architektura systemów komputerowych (zima 2013)
ZASADY PODZIAŁU SIECI NA PODSIECI, OBLICZANIA ADRESÓW PODSIECI,
Układy cyfrowe.
Minimalizacja funkcji boolowskich
Przykład syntezy strukturalnej
Minimalizacja funkcji boolowskich
Synteza logiczna w projektowaniu…
Architektura systemów komputerowych
Liczby całkowite dodatnie BCN
Posługiwanie się systemami liczenia
Stało- i zmiennopozycyjna reprezentacja liczb binarnych
URZĄDZENIA TECHNIKI KOMPUTEROWEJ
Matematyka i system dwójkowy
Reprezentacja liczb w systemie binarnym ułamki i liczby ujemne
Stało- i zmiennopozycyjna reprezentacja liczb binarnych
Złożone układy kombinacyjne
Podstawy arytmetyki komputerowej Paweł Perekietka
Bramki logiczne i układy kombinatoryczne
WYKŁAD 3 Temat: Arytmetyka binarna 1. Arytmetyka binarna 1.1. Nadmiar
Dwójkowy system liczbowy
T. 3. Arytmetyka komputera. Sygnał cyfrowy, analogowy
Działania w systemie binarnym
Własności bramek logicznych RÓZGA DARIUSZ 20061
Podstawy Techniki Cyfrowej
Budowa komputera Wstęp do informatyki Wykład 6 IBM PC XT (1983)
Wybrane aspekty programowania w C++ (i nie tylko)
Zasady arytmetyki dwójkowej
METODY REPREZENTOWANIA IFORMACJI
INFORMATYKA Zajęcia organizacyjne Arytmetyka komputerowa
Sumator i półsumator.
Technika Mikroprocesorowa 1
Wstęp do Informatyki - Wykład 6
Zapis prezentacji:

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

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)

Reprezentacja liczb całkowitych Liczby całkowite: Liczby rzeczywiste: MSB LSB 27 26 25 24 23 22 21 20 6110 = 0 0 1 1 1 1 0 12 1,632812510 = 1, 1 0 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 (U2)

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

Właściwości reprezentacji U2 Dodawanie 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

Operacje arytmetyczne na liczbach całkowitych (1) Negacja: Znak-moduł 00010101 (21) +10000000 10010101 (-21) U2 00010101 (21) 11101010 NEG(21) +00000001 11101011 (-21)

Operacje arytmetyczne na liczbach całkowitych (2) Rozszerzenie bitowe: Znak-moduł 00010101 (21) 8b 00000000 00010101 (21) 16b 10010101 (-21) 10000000 00010101 (-21) 16b U2 11101011 (-21) 8b 11111111 11101011 (-21) 16b

Operacje arytmetyczne na liczbach całkowitych (3) Dodawanie: Znak-moduł 00011001 (25) +00001101 (13) 00100110 (38) 10011001 (-25) +10001101 (-13) 10100110 (-38) 10011001 (-25) x0011001 +00001101 (13) x1110010 NEG(13) 10001100 (-12) 0001011 +0000001 10001100 (-12) 10001101 (-13) x0001101 +00011001 (25) x1100110 NEG(25) 00001100 (12) 1110011 R 00001100 NEG(R)

Operacje arytmetyczne na liczbach całkowitych (4) Dodawanie: U2 00011001 (25) +00001101 (13) 00100110 (38) 11100111 (-25) +11110011 (-13) 11011010 (-38) 11100111 (-25) +00001101 (13) 11110100 (-12) 11110011 (-13) +00011001 (25) 00001100

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 00000111 00000000 00011100 00100011 (35) 8b !!

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 A Q M 0 0000 0101 0111 wartości początkowe 0 0111 0101 0111 dodaj 0 0011 1010 0111 przesuń 0 0001 1101 0111 przesuń 0 1000 1101 0111 dodaj 0 0100 0110 0111 przesuń 0 0010 0011 0111 przesuń 0 0010 0011 0111 wynik

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

Realizacja mnożenia w kodzie U2 – algorytm Bootha A  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

Przykład mnożenia w kodzie U2 (operacja 7 x 3) A Q Q-1 M 0000 0011 0 0111 wartości początkowe 1001 0011 0 0111 odejmij 1100 1001 1 0111 przesuń arytmetycznie 1110 0100 1 0111 przesuń arytmetycznie 0101 0100 1 0111 dodaj 0010 1010 0 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) 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

Dzielenie liczb w kodzie U2 LOAD(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

Przykład dzielenia w kodzie U2 (operacja –7/3) A Q M 1111 1001 0011 wartości początkowe 0010 0011 przesuń 0010 dodaj 1111 0010 0011 przywróć 1110 0100 0011 przesuń 0001 dodaj 1110 0100 0011 przywróć 1000 0011 przesuń 1111 dodaj 1111 1001 0011 ustaw Q0 = 1 1111 0010 0011 przesuń 0010 dodaj 1111 0010 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.24e7) 5.82 x 10-21 0.010110 x 2110101 0.001001 x 16101 Format 32-bitowej liczby zmiennopozycyjnej: wykładnik mantysa znak 8 bitów 23 bity

Zapis liczby binarnej w formacie zmiennopozycyjnym 1,6328125 x 220 = 1.1010001 x 210100 1 0,6328125 x 2 1,265625 0,265625 0,265625 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

Zapis liczby binarnej w formacie zmiennopozycyjnym 1,6328125 x 220 = 1.1010001 x 210100 10010011 10100010000000000000000 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 przepełnienie ujemne niedomiar ujemny niedomiar dodatni przepełnienie dodatnie zero -n 0 n 2n 4n

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 = 11111111, m = 0 – dodatnia lub ujemna nieskończoność c = 0, m  0 - liczba zdenormalizowana (bit na lewo od przecinka jest zerem!) c = 11111111, m  0 - NaN

Arytmetyka zmiennopozycyjna Podstawowe operacje:

Dodawanie i odejmowanie 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 Sprawdzenie zer Dodanie 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

Układy logiczne (1) Podstawowe bramki: A B Y 0 0 0 0 1 0 A 1 0 0 B Y 0 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

Układy logiczne (2) Dodatkowe bramki: A B Y 0 0 1 0 1 1 1 0 1 1 1 0 A 0 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

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

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 0 0 0 0 0 0 1 0 1 0 1 0 0 1 0 1 1 0 0 1 0 0 1 1 0 0 1 1 0 1 1 0 1 0 1 1 1 1 1 1 Ci A B A S B C S Co A S B C

Układy logiczne (5) Sumator 4-bitowy S0 S1 S2 S3 C1 C2 C4 C3 A0 B0 A1 B1 A2 B2 A3 B3