Architektura systemów komputerowych Grzegorz Mazur Zak lad Metod Obliczeniowych Chemii Uniwersytet Jagielloński 12 kwietnia 2011 Grzegorz Mazur (ZMOCh UJ) Architektura systemów komputerowych 12 kwietnia 2011 1 / 35
Wyk lad 1 Informacja. Kodowanie. Maszyna Turinga Grzegorz Mazur (ZMOCh UJ) Architektura systemów komputerowych 12 kwietnia 2011 2 / 35
Plan Wst ep 1 Wst ep 2 Systemy liczbowe 3 Informacja 4 Reprezentacja i typy danych 5 Kodowanie danych 6 Obliczalność Grzegorz Mazur (ZMOCh UJ) Architektura systemów komputerowych 12 kwietnia 2011 3 / 35
Organizacja Wst ep Kontakt Grzegorz Mazur <mazur@chemia.uj.edu.pl> Marcin Makowski <makowskm@chemia.uj.edu.pl> Zaj ecia 15 godzin wyk ladu (5 x 3h) 15 godzin ćwiczeń (5 x 3h) Zaliczenie przedmiotu zaliczenie ćwiczeń (obecność + test zaliczniowy) egzamin pisemny Grzegorz Mazur (ZMOCh UJ) Architektura systemów komputerowych 12 kwietnia 2011 4 / 35
Systemy liczbowe Systemy liczbowe Definicja System liczbowy to zbiór regu l umożliwiajacych przedstawienie liczb za pomoc umownych znaków Definicja Cyfry to znaki za pomoca których zapisuje sie liczby Systemy liczbowe niepozycyjne: jedynkowy, rzymski,... pozycyjne: dwójkowy, ósemkowy, dziesi etny, szesnastkowy,... Grzegorz Mazur (ZMOCh UJ) Architektura systemów komputerowych 12 kwietnia 2011 5 / 35
Systemy liczbowe Typowe systemy pozycyjne Podstawa: k Cyfry: a i {0, 1, 2,..., k 1} Zapis: a n 1 a n 2... a 1 a 0. a 1 a 2... a m Liczba: d = n 1 i= m ki a i Q [0, k n 1] Grzegorz Mazur (ZMOCh UJ) Architektura systemów komputerowych 12 kwietnia 2011 6 / 35
Systemy liczbowe Typowe systemy pozycyjne (c.d.) Przyk lad dziesi etny dwójkowy ósemkowy szesnastkowy 1 1 1 1 1.625 1.101 1.5 1.A 7 111 7 7 14 1110 16 E Grzegorz Mazur (ZMOCh UJ) Architektura systemów komputerowych 12 kwietnia 2011 7 / 35
Informacja Twierdzenie Shannona Twierdzenie Wiadomość (znak, zdarzenie) zawiera tym wiecej informacji, im mniejsze jest prawdopodobieństwo jej wystapienia Grzegorz Mazur (ZMOCh UJ) Architektura systemów komputerowych 12 kwietnia 2011 8 / 35
Miara informacji Informacja informacja jest ciag l a, nieujemna, monotonicznie rosnac a funkcja odwrotności prawdopodobieństwa informacja o niezależnym wystapieniu dwóch wiadomości o prawdopodobieństwach p i i p k powinna być suma poszczególnych informacji o wystapieniu każdej z wiadomości informacja wynikajaca ze zdarzenia pewnego jest zerowa I (p) = log a p Wybór a = 2 prowadzi do pomiaru ilości informacji w bitach. Grzegorz Mazur (ZMOCh UJ) Architektura systemów komputerowych 12 kwietnia 2011 9 / 35
Entropia Informacja Definicja Niech zdarzenie Y może przynieść k różnych wyników {Y i }. Niech prawdopodobieństwo wyniku Y i wynosi P(Y i ). Wielkość H(Y ) zdefiniowana jako H(Y ) = k P(Y i )log(p(y i )) i=1 nazywamy entropia zdarzenia Y. Entropia zdarzenia stanowi miare oczekiwanej nieokreśloności zdarzenia im bardziej równomierny rozk lad prawdopodobieństw wyników tym wi eksza entropia im wi ecej możliwych wyników tym wi eksza entropia Grzegorz Mazur (ZMOCh UJ) Architektura systemów komputerowych 12 kwietnia 2011 10 / 35
Reprezentacja danych Reprezentacja i typy danych dane reprezentowane sa przez sekwencje bitów sekwencje bitów interpretowane sa w kategoriach wewnetrznych typów danych wewnetrzne typy danych określone poprzez: dziedzine możliwe do wykonania operacje Grzegorz Mazur (ZMOCh UJ) Architektura systemów komputerowych 12 kwietnia 2011 11 / 35
Reprezentacja i typy danych Wybrane wewn etrzne typy danych liczby ca lkowite znaki u lamki Grzegorz Mazur (ZMOCh UJ) Architektura systemów komputerowych 12 kwietnia 2011 12 / 35
Reprezentacja i typy danych Liczby ca lkowite, znaki liczby ca lkowite skończony podzbiór Z operacje daja dok ladne wyniki możliwy nadmiar reprezentacje: NB, znak - modu l, U2, U1 znaki: bijekcja ze skończonym podzbiorem N Grzegorz Mazur (ZMOCh UJ) Architektura systemów komputerowych 12 kwietnia 2011 13 / 35
Reprezentacja i typy danych U lamki skończony podzbiór Q nie wszystkie liczby wymierne z zadanego zakresu moga być reprezentowane operacje nie zawsze daja dok ladne wyniki reprezentacje: sta lopozycyjna, zmiennopozycyjna możliwy nadmiar i niedomiar Grzegorz Mazur (ZMOCh UJ) Architektura systemów komputerowych 12 kwietnia 2011 14 / 35
Reprezentacja binarna Kodowanie danych Definicja Znak binarny to zmienna przyjmujaca jedna z dwóch wartości umownie oznaczonych jako 0 i 1 Wektory znakowe 1-elementowy: bit 8-elementowy: bajt 16-elementowy: s lowo 16-bitowe 32-elementowy: s lowo 32-bitowe Grzegorz Mazur (ZMOCh UJ) Architektura systemów komputerowych 12 kwietnia 2011 15 / 35
Kodowanie danych Kody znakowe Definicja Tablica wartości znaków to odwzorowanie znaków pisarskich na liczby ca lkowite. Definicja Binarny kod wartości znaku to reprezentacja (w postaci 1 bajtu lub sekwencji bajtów) liczby ca lkowitej odpowiadajacej znakowi. Grzegorz Mazur (ZMOCh UJ) Architektura systemów komputerowych 12 kwietnia 2011 16 / 35
Kodowanie danych Kod ASCII 8-bitowy s lowo informacyjne obejmuje 7 bitów jeden bit jest bitem kontrolnym binarna postać kodu znaku - reprezentacja 128 liczb (kody od 0 do 127) w postaci 1 bajtu Grzegorz Mazur (ZMOCh UJ) Architektura systemów komputerowych 12 kwietnia 2011 17 / 35
Kodowanie danych Tabela wartości znaków kodu ASCII Grzegorz Mazur (ZMOCh UJ) Architektura systemów komputerowych 12 kwietnia 2011 18 / 35
Unicode Kodowanie danych standard Unicode określa tablice wartości znaków majac a w zamierzeniu obejmować wszystkie pisma używane na świecie najpopularniejsze kodowania to UTF-8, UTF-32 Grzegorz Mazur (ZMOCh UJ) Architektura systemów komputerowych 12 kwietnia 2011 19 / 35
Kodowanie danych Kodowanie liczb ca lkowitych kodowanie liczb nieujemnych - kod natural binary (NB) kodowanie liczb ze znakiem kod znak - modu l kod uzupe lnień do dwóch (U2) kod uzupe lnień do jeden (U1) Grzegorz Mazur (ZMOCh UJ) Architektura systemów komputerowych 12 kwietnia 2011 20 / 35
Kodowanie danych Kod NB dwójkowy kod pozycyjny pozycja i: waga 2 i 1001 NB = 1 2 0 + 0 2 1 + 0 2 2 + 1 2 3 = 9 Grzegorz Mazur (ZMOCh UJ) Architektura systemów komputerowych 12 kwietnia 2011 21 / 35
Kodowanie danych Kod znak - modu l Przyk lad znak liczby określany przez najbardziej znaczacy bit (a n 1 ) a n 1 = 0: Liczba ZM = n 2 i=0 a i 2 i a n 1 = 1: Liczba ZM = n 2 i=0 a i 2 i niewygodny przy wykonywaniu operacjach arytmetycznych dwa różne kody dla zera: 00000000, 10000000 45 = 000101101 ZM 45 = 100101101 ZM Grzegorz Mazur (ZMOCh UJ) Architektura systemów komputerowych 12 kwietnia 2011 22 / 35
Kod U2 Kodowanie danych najpowszechniej stosowane kodowanie najbardziej znaczacy bit jest bitem znaku, ma (ujemna) wage równa 2 n 1 n 2 Liczba U2 = a n 1 2 n 1 + a i 2 i [ 2 n 1, 2 n 1 1 ] Przyk lad 10001011 U2 = 1 2 7 + 1 2 3 + 1 2 1 + 1 2 0 = 117 i=0 Grzegorz Mazur (ZMOCh UJ) Architektura systemów komputerowych 12 kwietnia 2011 23 / 35
Kodowanie danych U2 - liczba przeciwna Aby zamienić liczbe w U2 na przeciwna należy wykonać dwa kroki: dokonać inwersji bitów, czyli zamienić 0 na 1 i odwrotnie Przyk lad dodać do wyniku 1 57 = 00111001 U2 Dokonujemy inwersji 11000110 U2 Dodajemy 1: 11000111 U2 = 1 2 7 + 1 2 6 + 1 2 2 + 1 2 1 + 1 2 0 = 57 Grzegorz Mazur (ZMOCh UJ) Architektura systemów komputerowych 12 kwietnia 2011 24 / 35
Kodowanie danych U2 - dodawanie liczb traktujemy liczby jako zwyk le liczby binarne (dodatnie), dodajemy je, a wynik otrzymamy w kodzie U2 dodawanie odbywa sie l acznie z bitem znaku Przyk lad 11010001 +11100010 110110011 = 10110011 Grzegorz Mazur (ZMOCh UJ) Architektura systemów komputerowych 12 kwietnia 2011 25 / 35
Problem nadmiaru Kodowanie danych wystepuje, gdy wynik operacji przekracza zakres reprezentacji liczb dodajac w U2 możemy go wykryć przez sprawdzenie bitu znaku wyniku dodawanie dwóch liczb dodatnich daje liczbe ujemna dodawanie dwóch liczb ujemnych daje liczbe dodatnia Grzegorz Mazur (ZMOCh UJ) Architektura systemów komputerowych 12 kwietnia 2011 26 / 35
Kodowanie danych Kod U1 Najbardziej znaczacy bit jest bitem znaku, ma (ujemna) wage równa ( 2 n 1 1 ) Liczba U1 = a n 1 ( 2 n 1 1 ) n 2 + a i 2 i [ ( 2 n 1 1 ), 2 n 1 1 ] i=0 10001011 U1 = 1 (2 7 1) + 1 2 3 + 1 2 1 + 1 2 0 = 116 Liczbe przeciwna otrzymujemy przez inwersje bitów Przyk lad Dokonujemy inwersji 57 = 00111001 U1 11000110 U1 = 1 (2 7 1) + 1 2 6 + 1 2 2 + 1 2 1 = 57 Grzegorz Mazur (ZMOCh UJ) Architektura systemów komputerowych 12 kwietnia 2011 27 / 35
Kodowanie danych Metody kodowania u lamków 275.34 czy 2.7534 10 2? reprezentacja sta lopozycyjna zwykle dość ograniczony zakres przy ustalonej ca lkowitej liczbie bitów wiekszy zakres oznacza arytmetyka może być realizowana za pomoca dzia lań ca lkowitoliczbowych reprezentacja wyk ladnicza (zmiennopozycyjna) Grzegorz Mazur (ZMOCh UJ) Architektura systemów komputerowych 12 kwietnia 2011 28 / 35
Kodowanie danych Reprezentacja sta loprzecinkowa pozycyjny system liczbowy o dodatniej podstawie p liczba kodowana w postaci (L) p (a n 1,..., a 1, a 0, a 1,..., a m ) (C L U L ) p L = n 1 i= m a i p i Grzegorz Mazur (ZMOCh UJ) Architektura systemów komputerowych 12 kwietnia 2011 29 / 35
Kodowanie danych Reprezentacja zmiennoprzecinkowa liczby kodowane w jednym s lowie maszyny podzielonym na trzy cześci: znak liczby (zwykle 1 bit) cześć (zwykle najd luższa) zawierajaca kod mantysy liczby i jej znak cześć (zwykle kilkubitowa) zawierajaca kod cechy liczby i jej znak mantysa jest znormalizowana Liczba = [znak]mantysa 2 cecha 0.5 mantysa 1 Grzegorz Mazur (ZMOCh UJ) Architektura systemów komputerowych 12 kwietnia 2011 30 / 35
Kodowanie danych W lasności arytmetyki zmiennoprzecinkowej nie jest l aczna nie jest rozdzielna (x + y) + z x + (y + z) (x y) z x (y z) x (y + z) (x y) + (x z) Grzegorz Mazur (ZMOCh UJ) Architektura systemów komputerowych 12 kwietnia 2011 31 / 35
Kodowanie danych B l edy zaokragleń i ich konsekwencje Przedstawmy liczby zmiennopozycyjne ā, b jako wartości dok ladne zaburzone b l edem reprezentacji ā = a (1 + ɛ a ) b = b (1 + ɛ b ) Wtedy b l edy wzgledne operacji dokonywanych na liczbach ā i b możemy oszacować nastepuj aco ɛ a±b = aɛ a ± bɛ b + ɛ ± a ± b ɛ a b = ɛ a + ɛ b + ɛ ɛ a/b = ɛ a ɛ b + ɛ / gdzie ɛ ±, ɛ, ɛ / to b l edy wprowadzane przez poszczególne operacje arytmetyczne Grzegorz Mazur (ZMOCh UJ) Architektura systemów komputerowych 12 kwietnia 2011 32 / 35
Obliczalność Maszyna Turinga konstrukcja Konstrukcja alfabet taśma g lowica zbiór stanów rejestr stanu tablica przejść Dzia lanie (q i, a µ ) (q j, a ν, s) Grzegorz Mazur (ZMOCh UJ) Architektura systemów komputerowych 12 kwietnia 2011 33 / 35
Obliczalność Hipoteza Churcha-Turinga Twierdzenie Wszystko co jest obliczalne jest obliczalne przez maszyn e Turinga. Grzegorz Mazur (ZMOCh UJ) Architektura systemów komputerowych 12 kwietnia 2011 34 / 35
Obliczalność Algorytm Definicja Algorytm to skończony, uporzadkowany zbiór jasno zdefiniowanych czynności koniecznych do wykonania pewnego zadania. Grzegorz Mazur (ZMOCh UJ) Architektura systemów komputerowych 12 kwietnia 2011 35 / 35