Wykład jest przygotowany dla IV semestru kierunku Elektronika i Telekomunikacja. Studia I stopnia Dr inż. Małgorzata Langer Architektura komputerów Prezentacja multimedialna współfinansowana przez Unię Europejską w ramach Europejskiego Funduszu Społecznego w projekcie Innowacyjna dydaktyka bez ograniczeń zintegrowany rozwój Politechniki Łódzkiej zarządzanie Uczelnią, nowoczesna oferta edukacyjna i wzmacniania zdolności do zatrudniania osób niepełnosprawnych Zadanie nr 30 Dostosowanie kierunku Elektronika i Telekomunikacja do potrzeb rynku pracy i gospodarki opartej na wiedzy 90-924 Łódź, ul. Żeromskiego 116, tel. 042 631 28 83 www.kapitalludzki.p.lodz.pl
Prezentacja multimedialna współfinansowana przez Unię Europejską w ramach Europejskiego Funduszu Społecznego Notacje systemy zapisu liczb Dane, które są przetwarzane w systemach komputerowych, zawierają cyfry, znaki alfabetu łacińskiego i znaki ze znakami diakrytycznymi ( narodowe np. polskie: ą, ś,ń, ) oraz znaki specjalne, jak @, #, +, *, Najpowszechniej używanym systemem liczbowym na zewnątrz komputera jest system dziesiętny Dowolną liczbę możemy przedstawić jako wielomian. Np. 1234,98 = 1 x 10 3 + 2 x 10 2 + 3 x 10 1 + 4 x 10 0 + 9 x 10-1 + 8 x 10-2 Systemy komputerowe przyjmują, przetwarzają i wystawiają na wyjściach ciągi zer i jedynek w kodzie dwójkowym, binarnym
Prezentacja multimedialna współfinansowana przez Unię Europejską w ramach Europejskiego Funduszu Społecznego Ogólna postać wielomianu dla dowolnej liczby i notacji N = n i= m a i r i Gdzie N liczba zapisana we właściwej notacji; n+1 liczba cyfr w części całkowitej, m liczba cyfr w części ułamkowej, r podstawa notacji W systemie dziesiętnym r=10 W systemie dwójkowym r=2, ósemkowym r=8, itd.
Prezentacja multimedialna współfinansowana przez Unię Europejską w ramach Europejskiego Funduszu Społecznego Notacja szesnastkowa (r=16) Ponieważ brakuje cyfr, stosuje się pierwsze, kolejne, litery alfabetu łacińskiego dla wyrażenia cyfr powyżej 9 Notacja dziesiętna Szesnastkowa 0, 1, 2, 3,, 8, 9 0, 1, 2, 3,, 8, 9 10 A 11 B 12 C 13 D 14 E 15 F
Przykłady Prezentacja multimedialna współfinansowana przez Unię Europejską w ramach Europejskiego Funduszu Społecznego Notacja Dziesiętna Dwójkowa Ósemkowa Szesnastkowa 0 0 0 0 1 1 1 1 2 10 2 2 9 1001 11 9 15 1111 17 F 18 10010 22 12 20 10100 24 14 100 1100100 144 64 100 = 1x10 2 + 0x10 1 +0x10 0 = 64+32+0+0+4+0+0 1x8 2 +4x8 1 +4x8 0 6x16 1 + 4x16 0
Konwersja liczb Prezentacja multimedialna współfinansowana przez Unię Europejską w ramach Europejskiego Funduszu Społecznego Jest to przekształcanie zapisów liczbowych z jednego systemu w inny, np. z systemu dwójkowego w dziesiętny lub odwrotnie Algorytm: dzielimy daną wartość całkowita przez wymaganą podstawę, w każdym kroku zapisując resztę; kończymy zapisaniem ilorazu mniejszego od dzielnika. Sprawdzamy, stosując podany wzór na wielomian Przykład: Przekształcić 245 (10) w zapis dwójkowy 245:2 = 122 + reszta 1 1 122:2 = 61 + reszta 0 01 61:2 = 30 + reszta 1 101 30:2 = 15 + reszta 0 0101 15:2 = 7 + reszta 1 10101 7:2 = 3 + reszta 1 110101 3:2= 1 + reszta 1 1110101 tylko 1 11110101
Inne przykłady Prezentacja multimedialna współfinansowana przez Unię Europejską w ramach Europejskiego Funduszu Społecznego (245) 10 = (?) 8 245:8 = 30 + 5 30:8 = 3 + 6 zostaje 3 (365) 8 (245) 10 = (?) 16 245:16 = 15 + 5 zostaje 15 (F5) 16 Dla części ułamkowej zamiast dzielenia mnożymy to, co po przecinku: (0,345) 10 = (?) 2 2 x 0,345 = 0,690 2 x 0,690 = 1,380 2 x 0,380 = 0,760 2 x 0,760 = 1,520 2 x 0,520 = 1,040 2 x 0,040 = 0,080 (0,010110) 2 Konwersja pomiędzy systemem dziesiętnym, stosowanym przez użytkownika a binarnym używanym w systemie odbywa się automatycznie przy pomocy podobnego algorytmu
Działania arytmetyczne Prezentacja multimedialna współfinansowana przez Unię Europejską w ramach Europejskiego Funduszu Społecznego Ogólne zasady wykonywania działań arytmetycznych są jednakowe we wszystkich notacjach poćwiczymy na zajęciach praktycznych Oprócz tradycyjnego dodawania, odejmowania, mnożenia i dzielenia, często wykonywaną operacją jest przesuwanie (SHIFT) o jedno miejsce w prawo (czyli dzielimy przez podstawę notacji) lub w lewo (mnożymy) W systemach cyfrowych zapisujemy liczby - w prezentacji stałoprzecinkowej (fixed-point) zawsze tyle samo cyfr przed i po przecinku - zmiennoprzecinkowej (floating-point) stała liczba cyfr ale przecinek w takiej pozycji, która jest optymalna dla danej liczby
Liczby ujemne Prezentacja multimedialna współfinansowana przez Unię Europejską w ramach Europejskiego Funduszu Społecznego Sposób pierwszy: znak i moduł Dla przedstawienia liczby potrzebujemy n+1 cyfr; cyfra najbardziej znacząca (pierwsza z lewej strony MSD) przyjmuje wartość 0 dla liczb dodatnich i r-1 dla liczb ujemnych (czyli F dla notacji szesnastkowej, 7 dla ósemkowej, 1 dla binarnej ) Przykłady: liczba reprezentacja (zakładamy razem 5 cyfr) (-2) 2 1 0010 (+2) 2 0 0010 (-56) 8 7 0056 (+11F) 16 0 011F znak moduł
Znak i moduł Prezentacja multimedialna współfinansowana przez Unię Europejską w ramach Europejskiego Funduszu Społecznego Przy stosowaniu zapisu znak i moduł przy działaniach arytmetycznych obie części reprezentacji są przetwarzane oddzielnie, tzn. obliczany jest moduł wyniku i potem dodawany do niego odpowiedni znak System stosowany w miernikach cyfrowych, czasem w sterownikach, zwłaszcza, gdy używany jest kod dziesiętny w obliczeniach wrócimy do tego później
Liczby ujemne Prezentacja multimedialna współfinansowana przez Unię Europejską w ramach Europejskiego Funduszu Społecznego Sposób drugi: liczba ujemna zapisywana w kodzie uzupełnień Jest to PRZEWAŻAJĄCY sposób zapisu liczb w systemach komputerowych Ogólnie stosowane są: dopełnienie (uzupełnienie) do podstawy notacji oraz dopełnienie do podstawy pomniejszonej o 1 Dla zapisu binarnego, który jest powszechnie stosowany w komputerach, mamy więc: - kod uzupełnieniowy do dwóch U2 - kod uzupełnieniowy do jedności U1
Kod uzupełnień Prezentacja multimedialna współfinansowana przez Unię Europejską w ramach Europejskiego Funduszu Społecznego Rozważmy odejmowanie liczby A od liczby B (B-A) Jest to równoważne z dodawaniem (-A) do B Przy stosowaniu uzupełnień możemy więc odejmowanie zastąpić dodawaniem Ponieważ mnożenie i dzielenie odpowiadają odpowiednio wielokrotnemu dodawaniu lub odejmowaniu możemy stwierdzić, że możliwe jest wykonanie czterech podstawowych działań arytmetycznych przy zastosowaniu WYŁĄCZNIE DODAWANIA
Prezentacja multimedialna współfinansowana przez Unię Europejską w ramach Europejskiego Funduszu Społecznego Algorytm mnożenia liczb binarnych bez znaku
Algorytm dzielenia liczb binarnych bez znaku Prezentacja multimedialna współfinansowana przez Unię Europejską w ramach Europejskiego Funduszu Społecznego
Prezentacja multimedialna współfinansowana przez Unię Europejską w ramach Europejskiego Funduszu Społecznego Uzupełnienie do podstawy notacji Uzupełnienie do podstawy notacji: [N] r gdzie r podstawa notacji; n liczba cyfr w części całkowitej liczby (N) r [ N ] r = = r 0 n ( N) r gdy gdy ( N) ( N) r r = 0 0 Przykład: U2 dla (01010) 2 n=5 ; r=2: 2 5 (01010) = 100000 01010 = 10110 dla (0,0010) 2 n=1 ; r=2 2 1 (0,0010) = 10,0000 0,0010 = 1,1110
Inne metody obliczania U2 Prezentacja multimedialna współfinansowana przez Unię Europejską w ramach Europejskiego Funduszu Społecznego Zmień wartość każdego bitu i dodaj 1: Przykład: [01010] 2 =? - zmieniamy o na 1 i odwrotnie: 10101 - dodajemy 1 + 1 WYNIK: 10110 Kopiuj bity zerowe od najmniej znaczącego aż (włącznie) do pierwszej 1 i zmień wartość pozostałych: Przykład: [01010] 2 =? - kopiujemy od prawej: 10 - zmieniamy pozostałe 010 na 1 0 1 WYNIK: 10110
Prezentacja multimedialna współfinansowana przez Unię Europejską w ramach Europejskiego Funduszu Społecznego Uzupełnienie do podstawy pomniejszonej o 1 [N] r-1 = r n r -m (N) r gdzie r podstawa notacji, n liczba cyfr w części całkowitej, m w części ułamkowej Zauważmy, że [N] r = [N] r-1 + r -m Praktyczna metoda liczenia: - odejmujemy każdą cyfrę od maksymalnej cyfry w danej notacji (tzn. od 9 w notacji dziesiętnej, od 7 w ósemkowej, itd.) U1 (czyli w notacji binarnej): po prostu zamieniamy wartość każdego bitu
Prezentacja multimedialna współfinansowana przez Unię Europejską w ramach Europejskiego Funduszu Społecznego Kody uzupełnień oraz zapis znak - moduł Uzupełnienie odpowiada reprezentacji liczby ujemnej Reprezentacja liczby dodatniej nie zmienia się Mamy więc trzy sposoby zapisu liczby ujemnej w systemie binarnym: - znak moduł - U1 - U2 Jeżeli do zapisania jednej liczby w systemie binarnym służy n bitów, zakres liczb w systemach jest następujący: znak-moduł -(2 n-1 1) do +(2 n-1 1) U1 -(2 n-1 1) do +(2 n-1 1) U2 -(2 n-1 ) do +(2 n-1 1)
Prezentacja multimedialna współfinansowana przez Unię Europejską w ramach Europejskiego Funduszu Społecznego Działania arytmetyczne w poszczególnych kodach Ćwiczenia przeniesiemy do części praktycznej W zapisie modułowym (Znak moduł) liczby występują w najprostszej postaci, ale niezbędna jest realizacja układowa zarówno dodawania, jak i odejmowania. Musi być dodatkowa logika do określenia znaku wyniku W zapisie U1 generowanie reprezentacji jest proste, ale należy przeprowadzać korekcję przy działaniach ( pożyczki i przeniesienia) W zapisie U2 wszystkie otrzymane wyniki mają postać U2. Nie ma potrzeby korekcji. Metoda jest najkorzystniejsza. Proces powstawania zapisu nie stanowi problemu technicznego.
Prezentacja multimedialna współfinansowana przez Unię Europejską w ramach Europejskiego Funduszu Społecznego Liczby zmiennoprzecinkowe Zapis stałoprzecinkowy jest dogodny przy zapisie liczb o ograniczonej wielkości modułu. W komputerze, który wykorzystuje 32 bity do reprezentacji liczby, zakres liczb całkowitych jest ograniczony do: + (2 31 1) czyli ~+10 12 Ogólna forma zapisu zmiennoprzecinkowego liczby N: N = F x r E gdzie F ułamek lub mantysa, r to podstawa, a E - wykładnik
Prezentacja multimedialna współfinansowana przez Unię Europejską w ramach Europejskiego Funduszu Społecznego Liczby zmiennoprzecinkowe Rozważmy liczbę N = 4580000 = 0,458 x 10 7 = 0,0458 x 10 8 = 4,58 x 10 6 Trzy ostatnie zapisy to liczby zapisane w poprawnej postaci zmiennoprzecinkowej. Dwa pierwsze zapisy (lewa strona = 0) są bardziej optymalne (nie ma potrzeby zapisu części całkowitej mantysy). Napis wyróżniony: postać znormalizowana (z mantysy zostały wyeliminowane wszystkie znaczące zera)
Prezentacja multimedialna współfinansowana przez Unię Europejską w ramach Europejskiego Funduszu Społecznego Zapis zmiennoprzecinkowy binarny Mantysa może być dodatnia lub ujemna Wykładnik może być dodatni lub ujemny MAMY WIĘC CZTERY SKŁADNIKI ZAPISU!!! Mantysa (F) i znak mantysy (SF) Wykładnik (E) i znak wykładnika (SE) F jest w formie znormalizowanej, najczęściej w kodzie rzeczywistym binarnym, znak 0 dla + i 1 dla - 0,5 < F < 1 (dlaczego? ) Dla wartości 0 jest wyjątek: wszystkie 4 składniki są równe 0
Prezentacja multimedialna współfinansowana przez Unię Europejską w ramach Europejskiego Funduszu Społecznego Standard IEEE (Institute of Electrical & Electronics Engineers) IEEE-754 określa, jak mają być reprezentowane liczby o pojedynczej precyzji (32 bity) i podwójnej precyzji (64) bity w zapisie zmiennoprzecinkowym Wykładnik przesunięty dodawana jest stała przesunięcia (moduł największej liczby ujemnej, jaka może być zapisana w polu wykładnika); umożliwia to porównanie i zrównanie wykładników przed dodawaniem e bitów wykładnika f bitów mantysy 1 bit znaku Razem e + f + 1 bitów bit nr 0
Prezentacja multimedialna współfinansowana przez Unię Europejską w ramach Europejskiego Funduszu Społecznego Pojedyncza precyzja (słowo 32 bitowe) Liczba -118,625 zostanie zapisana: bit 8 bitów 23 bity znaku Wykładnik Mantysa 1 10000101 11011010100000000000000 Ponieważ pole wykładnika jest 8-bitowe; stała przesunięcia 2 8-1 -1=127 Wykładnik równa się 6, przesunięcie 127, czyli 6+127=133
Prezentacja multimedialna współfinansowana przez Unię Europejską w ramach Europejskiego Funduszu Społecznego Zapisy znormalizowane Istnieją dwa poprawne zapisy dla 0 (+0 oraz -0) (analogicznie istnieje zapis dla + oraz - ) -126 to najmniejszy wykładnik dla liczby znormalizowanej; wszystkie 1 oznaczają nieskończoność Najmniejsze znormalizowane liczby w zapisie pojedynczej precyzji: +2-126 + 1,175494351 x 10-38 Największe (254 w polu wykładnika i 1 w mantysie): + 3,4028235 x 10 38
Podwójna precyzja (słowo 64 bitowe) Prezentacja multimedialna współfinansowana przez Unię Europejską w ramach Europejskiego Funduszu Społecznego bit 11 bitów 52 bity znaku Wykładnik Mantysa Dla liczb znormalizowanych przesunięcie wykładnika wynosi +1023 Wartości najmniejsze: +2,2250738585072020 x 10-308 Największe +1,7976931348623157 x 10 308
Prezentacja multimedialna współfinansowana przez Unię Europejską w ramach Europejskiego Funduszu Społecznego Dokładność Zaokrąglanie do najbliższej wartości, w kierunku większej wartości lub w kierunku mniejszej, obcinanie Zaokrąglanie odbywa się najczęściej po każdym działaniu, niedokładności mogą się więc akumulować 63,0/9,0 raczej da w wyniku 7, ale 0,63/0,09 może, z powodu obcinania dać wynik 6 Ograniczony zakres wykładnika w wynikach cząstkowych może się pokazać nieskończoność Identyczne matematycznie działania wykonywane w różnej kolejności mogą dać różne wyniki
Prezentacja multimedialna współfinansowana przez Unię Europejską w ramach Europejskiego Funduszu Społecznego Kody binarne (KODUJEMY KOLEJNE CYFRY, NIE LICZBY!) W łańcuchu zawierającym n bitów można zapisać 2 n różnych elementów Cyfry w układzie dziesiętnym (od 0 do 9) mieszczą się w 4-bitowym kodzie, ale mogą być zapisane w różny sposób 4 bity dają możliwości zapisu 16 wielkości Kody wagowe pozycja każdego bitu niesie swoją wagę Kod BCD (binary coded decimal) jest kodem podstawowym (8421) Każda cyfra liczby dziesiętnej zostaje przedstawiona przez 4 bity np. (536) 10 w kodzie BCD przybierze postać: 5 3 6 (0101 0011 0110) BCD i działania arytmetyczne są wykonywane cyfra po cyfrze.
Prezentacja multimedialna współfinansowana przez Unię Europejską w ramach Europejskiego Funduszu Społecznego Przykłady kodów wagowych do zapisu cyfr Wagi 8 4 2 1 2 4 2 1 6 4 2 3 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 0 1 0 1 2 0 0 1 0 0 0 1 0 0 0 1 0 3 0 0 1 1 0 0 1 1 1 0 0 1 4 0 1 0 0 0 1 0 0 0 1 0 0 5 0 1 0 1 1 0 1 1 1 0 1 1 6 0 1 1 0 1 1 0 0 0 1 1 0 7 0 1 1 1 1 1 0 1 1 1 0 1 8 1 0 0 0 1 1 1 0 1 0 1 0 9 1 0 0 1 1 1 1 1 1 1 1 1
Prezentacja multimedialna współfinansowana przez Unię Europejską w ramach Europejskiego Funduszu Społecznego Działania arytmetyczne - problem Rozważmy przykłady: liczby dziesiętne kod BCD 532 0101 0011 0010 + 126 0001 0010 0110 658 0110 0101 1000 532 0101 0011 0010 + 268 0010 0110 1000 800 0111 1001 1010 korekta (+6) +0110 0111 1110 0000 korekta (+6) +0110 1000 0000 0000 Nie ma takiego zapisu w kodzie Ani takiego!
Prezentacja multimedialna współfinansowana przez Unię Europejską w ramach Europejskiego Funduszu Społecznego Kody binarne niewagowe; Kod Graya (refleksyjny; cykliczny) Jest to 4-bitowy kod, w którym 16 zakodowanych słów zmienia się kolejno tylko o 1 bit, podczas, gdy przechodzimy od jednego słowa do drugiego: Zapis dziesiętny kod Graya Zapis dzies. kod Graya 0 0000 8 1100 1 0001 9 1101 2 0011 10 1111 3 0010 11 1110 4 0110 12 1010 5 0111 13 1011 6 0101 14 1001 7 0100 15 1000
Kody z wykrywaniem błędów Prezentacja multimedialna współfinansowana przez Unię Europejską w ramach Europejskiego Funduszu Społecznego Można dodać bit parzystości np. Even BCD; otrzymamy wtedy kod 5 bitowy, gdzie najmniej znaczący bit ma tylko znaczenie kontrolne. Będzie równy 1, gdy liczba jedynek w bitach znaczących jest nieparzysta oraz 0, gdy jest 0 lub parzysta Np. 1 będzie zapisane jako 00011; 2 jako 00101; 3 jako 00110 Kod 2-out-of-5 (Dwa z pięciu) koduje cyfry w pięciu bitach, tylko w kombinacjach, gdzie są dwie jedynki, tzn. 0 11000 1 00011 2 00101 3 00110 4 01001 5 01010 6 01100 7 10001 8 10010 9 10100
Kody alfanumeryczne Prezentacja multimedialna współfinansowana przez Unię Europejską w ramach Europejskiego Funduszu Społecznego Są to kody 8 bitowe (256 znaków). Zawierają wszystkie cyfry, litery alfabetu angielskiego (łacińskiego) - duże i małe, znaki interpunkcyjne i pewne dodatkowe Podstawowe znaczenie w systemach komputerowych ma kod ASCII (American Standard Code for Information Interchange) Odpowiednio są znormalizowane zestawy kodów (strony) zawierające znaki narodowe (litery ze znakami diakrytycznymi). Polski język posiada nawet 2 strony (zostały znormalizowane dwa układy klawiatur) Dla potrzeb edycji znormalizowano tablice z różnymi rodzajami, krojami znaków oraz takimi, które mogą być pomocne przy rysowaniu tabel, wzorów itd
Przechowywanie danych Prezentacja multimedialna współfinansowana przez Unię Europejską w ramach Europejskiego Funduszu Społecznego Zbiór pojedynczych komórek (każda zawiera bit) to rejestr, determinujący długość słowa W systemie 16 bitowym najczęściej można było manipulować liczbami 16 bitowymi i długość słowa wynosiła 16 bitów, itd. W systemach komputerowych wykorzystywane są odpowiednio słowa 4 bitowe (nibble); 8 bitowe (bajty); 16-, 32 i 64 bitowe. W danym systemie wykorzystywane są również połówki rejestrów (pół słowa) lub rejestry podwojone (128 bitów dla systemu 64 bitowego) Zapis danej liczbowej, znaku, litery, adresu, instrukcji jest ciągiem zer i jedynek i rozróżnienie znaczenia logicznego takiego ciągu jest dokonywane w przeważającym stopniu programowo.
Liczby różne sposoby zapisu Prezentacja multimedialna współfinansowana przez Unię Europejską w ramach Europejskiego Funduszu Społecznego Podsumujmy na przykładzie liczby 53 10 W słowie 16-bitowym zwykła dwójkowa reprezentacja: bajt 1 bajt 0 00000000 00110101 W kodzie BCD (w 16 bitach mieszczą się 4 cyfry) 00000000 01010011 Zapis zmiennoprzecinkowy przy zastosowaniu standardu IEEE: 1 bit znaku, 8 bitów wykładnika, 23 bity mantysy 01000010010101000000000000000000
Tablice (Arrays) Prezentacja multimedialna współfinansowana przez Unię Europejską w ramach Europejskiego Funduszu Społecznego Łańcuch (string) jest tablicą jednowymiarową Tablica zawiera kolejne wartości elementów macierzy, zapisywane w kolejności: wiersz za wierszem od góry do dołu albo kolumna za kolumną od lewej do prawej W rejestrach znajdą się kolejno: A = 4 8 1 9 4 4 1 Lub 8 8 1 9 9
Rekordy Prezentacja multimedialna współfinansowana przez Unię Europejską w ramach Europejskiego Funduszu Społecznego Rekord zazwyczaj zawiera jedno, lub więcej pól. Każde pole może zajmować inną liczbę bitów i rejestrów oraz reprezentować inny rodzaj danych i sposobu zapisu Rekordy są wykorzystywane szczególnie w bazach danych
KONIEC CZĘŚCI DRUGIEJ Dr inż. Małgorzata Langer Architektura komputerów Prezentacja multimedialna współfinansowana przez Unię Europejską w ramach Europejskiego Funduszu Społecznego w projekcie Innowacyjna dydaktyka bez ograniczeń zintegrowany rozwój Politechniki Łódzkiej zarządzanie Uczelnią, nowoczesna oferta edukacyjna i wzmacniania zdolności do zatrudniania osób niepełnosprawnych Zadanie nr 30 Dostosowanie kierunku Elektronika i Telekomunikacja do potrzeb rynku pracy i gospodarki opartej na wiedzy 90-924 Łódź, ul. Żeromskiego 116, tel. 042 631 28 83 www.kapitalludzki.p.lodz.pl