ARCHITEKTURA SYSTEMÓW MIKROPROCESOROWYCH. dr inż. Małgorzata Langer B9, pok. 310 Instytut Elektroniki

Podobne dokumenty
Architektura komputerów

Architektura komputerów

12. Wprowadzenie Sygnały techniki cyfrowej Systemy liczbowe. Matematyka: Elektronika:

Systemy liczbowe. 1. Przedstawić w postaci sumy wag poszczególnych cyfr liczbę rzeczywistą R = (10).

Systemy zapisu liczb.

Dla człowieka naturalnym sposobem liczenia jest korzystanie z systemu dziesiętnego, dla komputera natomiast korzystanie z zapisu dwójkowego

Wprowadzenie do architektury komputerów systemy liczbowe, operacje arytmetyczne i logiczne

Podstawy Informatyki

ARYTMETYKA BINARNA. Dziesiątkowy system pozycyjny nie jest jedynym sposobem kodowania liczb z jakim mamy na co dzień do czynienia.

Teoretyczne Podstawy Informatyki

Przedmiot: Urządzenia techniki komputerowej Nauczyciel: Mirosław Ruciński

Techniki multimedialne

Technologie Informacyjne

Architektura komputerów Reprezentacja liczb. Kodowanie rozkazów.

Dane, informacja, programy. Kodowanie danych, kompresja stratna i bezstratna

ARCHITEKTURA SYSTEMÓW KOMPUTEROWYCH

Podstawy Informatyki. Inżynieria Ciepła, I rok. Wykład 5 Liczby w komputerze

Pracownia Komputerowa wykład VI

Metody numeryczne Technika obliczeniowa i symulacyjna Sem. 2, EiT, 2014/2015

Stan wysoki (H) i stan niski (L)

Samodzielnie wykonaj następujące operacje: 13 / 2 = 30 / 5 = 73 / 15 = 15 / 23 = 13 % 2 = 30 % 5 = 73 % 15 = 15 % 23 =

Dr inż. Grażyna KRUPIŃSKA. D-10 pokój 227 WYKŁAD 2 WSTĘP DO INFORMATYKI

Arytmetyka binarna - wykład 6

Kodowanie informacji. Kody liczbowe

LABORATORIUM PROCESORY SYGNAŁOWE W AUTOMATYCE PRZEMYSŁOWEJ. Zasady arytmetyki stałoprzecinkowej oraz operacji arytmetycznych w formatach Q

Arytmetyka komputera. Na podstawie podręcznika Urządzenia techniki komputerowej Tomasza Marciniuka. Opracował: Kamil Kowalski klasa III TI

Architektura komputerów

Wstęp do informatyki- wykład 1 Systemy liczbowe

Wstęp do programowania. Reprezentacje liczb. Liczby naturalne, całkowite i rzeczywiste w układzie binarnym

Liczby rzeczywiste są reprezentowane w komputerze przez liczby zmiennopozycyjne. Liczbę k można przedstawid w postaci:

INFORMATYKA. Zajęcia organizacyjne. Arytmetyka komputerowa.

1.1. Pozycyjne systemy liczbowe

Metoda znak-moduł (ZM)

Dane, informacja, programy. Kodowanie danych, kompresja stratna i bezstratna

Kod U2 Opracował: Andrzej Nowak

Zapis liczb binarnych ze znakiem

RODZAJE INFORMACJI. Informacje analogowe. Informacje cyfrowe. U(t) U(t) Umax. Umax. R=(0,Umax) nieskończony zbiór możliwych wartości. Umax.

Systemy liczenia. 333= 3*100+3*10+3*1

SYSTEMY LICZBOWE 275,538 =

Kodowanie liczb całkowitych w systemach komputerowych

SYSTEMY LICZBOWE. Zapis w systemie dziesiętnym

Kodowanie informacji. Przygotował: Ryszard Kijanka

Arytmetyka liczb binarnych

1259 (10) = 1 * * * * 100 = 1 * * * *1

Naturalny kod binarny (NKB)

Wielkości liczbowe. Wykład z Podstaw Informatyki dla I roku BO. Piotr Mika

Pracownia Komputerowa wyk ad VI

Języki i metodyka programowania. Reprezentacja danych w systemach komputerowych

Podstawy Informatyki. Metalurgia, I rok. Wykład 3 Liczby w komputerze

Cyfrowy zapis informacji

Arytmetyka komputera

Pracownia Komputerowa wykład V

Kod uzupełnień do dwóch jest najczęściej stosowanym systemem zapisu liczb ujemnych wśród systemów binarnych.

SYSTEMY LICZBOWE. SYSTEMY POZYCYJNE: dziesiętny (arabski): 0, 1, 2, 3, 4, 5, 6, 7, 8, 9 rzymski: I, II, III, V, C, M

ARCHITEKRURA KOMPUTERÓW Kodowanie liczb ze znakiem

4 Standardy reprezentacji znaków. 5 Przechowywanie danych w pamięci. 6 Literatura

Arytmetyka stałopozycyjna

Kod IEEE754. IEEE754 (1985) - norma dotycząca zapisu binarnego liczb zmiennopozycyjnych (pojedynczej precyzji) Liczbę binarną o postaci

Kod znak-moduł. Wartość liczby wynosi. Reprezentacja liczb w kodzie ZM w 8-bitowym formacie:

Wielkości liczbowe. Wykład z Podstaw Informatyki. Piotr Mika

Technika Cyfrowa i Mikroprocesorowa

Wstęp do informatyki- wykład 1

System liczbowy jest zbiorem reguł określających jednolity sposób zapisu i nazewnictwa liczb.

2 Arytmetyka. d r 2 r + d r 1 2 r 1...d d 0 2 0,

Arytmetyka stało i zmiennoprzecinkowa

Podstawy Informatyki

L6.1 Systemy liczenia stosowane w informatyce

Podstawowe operacje arytmetyczne i logiczne dla liczb binarnych

Systemy liczbowe używane w technice komputerowej

Pozycyjny system liczbowy

Cyfrowy zapis informacji. 5 grudnia 2013 Wojciech Kucewicz 2

DZIESIĘTNY SYSTEM LICZBOWY

Podstawy Informatyki. Wykład 2. Reprezentacja liczb w komputerze

Wstęp do Informatyki

Moduł 2 Zastosowanie systemów liczbowych w informacji cyfrowej

Met Me ody numer yczne Wykład ykład Dr inż. Mic hał ha Łan Łan zon Instyt Ins ut Elektr Elektr echn iki echn i Elektrot Elektr echn olo echn

LICZBY ZMIENNOPRZECINKOWE

Podstawy Informatyki dla Nauczyciela

Zestaw 3. - Zapis liczb binarnych ze znakiem 1

Znaki w tym systemie odpowiadają następującym liczbom: I=1, V=5, X=10, L=50, C=100, D=500, M=1000

Architektura systemów komputerowych. Arytmetyka maszyn cyfrowych

Prefiksy binarne. kibibit (Kibit) mebibit (Mibit) gibibit (Gibit) tebibit (Tibit) pebibit (Pibit) exbibit (Eibit) zebibit (Zibit) yobibit (Yibit)

Wprowadzenie do informatyki i użytkowania komputerów. Kodowanie informacji System komputerowy

Technologie Informacyjne Wykład 4

Wstęp do informatyki- wykład 2

PODSTAWY INFORMATYKI. Informatyka? - definicja

ARCHITEKTURA KOMPUTERÓW Liczby zmiennoprzecinkowe

Architektura systemów komputerowych Laboratorium 5 Kodowanie liczb i tekstów

Urządzenia Techniki. Klasa I TI. System dwójkowy (binarny) -> BIN. Przykład zamiany liczby dziesiętnej na binarną (DEC -> BIN):

Operacje arytmetyczne

Materiały laboratoryjne. Kodowanie i liczby. dr inż. Zbigniew Zakrzewski. Z.Z. Podstawy informatyki

Informatyka kodowanie liczb. dr hab. inż. Mikołaj Morzy

Adam Korzeniewski p Katedra Systemów Multimedialnych

1. Operacje logiczne A B A OR B

Elektronika (konspekt)

Wykład 2. Informatyka Stosowana. 10 października Informatyka Stosowana Wykład 2 10 października / 42

Luty 2001 Algorytmy (7) 2000/2001

Wykład 2. Informatyka Stosowana. 9 października Informatyka Stosowana Wykład 2 9 października / 42

System Liczbowe. Szesnastkowy ( heksadecymalny)

Wprowadzenie do informatyki - ć wiczenia

Transkrypt:

ARCHITEKTURA SYSTEMÓW MIKROPROCESOROWYCH część 1 dr inż. Małgorzata Langer B9, pok. 310 Instytut Elektroniki

Cel przedmiotu Program przedmiotu Architektura systemów mikroprocesorowych ma za zadanie pokazać podstawowe funkcje i działanie różnych bloków systemów oraz zdefiniować interfejsy pomiędzy tymi blokami. Jednakowa waga będzie przykładana do następujących aspektów: - organizacji systemu widzianej okiem programisty - opisu sprzętu spostrzeganego okiem projektanta elektronika -szczegółowego logicznego opisu działania systemu (wraz z funkcjami OS) 2

Dlaczego systemy mikroprocesorowe System mikroprocesorowy system do realizacji dowolnego zadania, wykonalnego poprzez przetwarzanie informacji cyfrowej, przy pomocy sprzętu i oprogramowania Głównym elementem systemu jest mikroprocesor System komputerowy jest systemem mikroprocesorowym Różnice istnieją w ogólności aplikacji, możliwych rozwiązaniach dedykowanych, itd. System mikroprocesorowy składa się z mikroprocesora, pamięci operacyjnej, pamięci stałej, układów wejścia wyjścia, układów umożliwiających przepływ informacji, oprogramowania użytkowego

System komputerowy System komputerowyto urządzenie, lub zespół urządzeń (cyfrowych?) do przetwarzania, gromadzenia i wyszukiwania informacji za pomocą odpowiedniego oprogramowania Zasadniczym zadaniemsystemu komputerowego jest przetwarzanie wprowadzonych (wejściowych) danych tak, aby wyniki (dane wyjściowe) mogły być (z lepszym skutkiem, łatwiej) zastosowane w szczególnej aplikacji w szczególnym otoczeniu System komputerowy jest powiązany z otoczeniemprzez urządzenia peryferyjne i/lub linie komunikacyjne 4

Sprzęt (ang. hardware) Cztery główne elementy blokowe występują we wszystkich systemach komputerowych: - jednostka sterująca, CU (Control Unit); centralna CPU; procesor zawierająca odrębną funkcjonalnie: * jednostkę arytmetyczną i logiczną ALU(Arithmetic & Logic Unit); -pamięć MU (Memory Unit), pamięć główna -MM; - jednostka wejścia/wyjścia IOU lub I/O (Input/Putput Unit); Komputery są zawodne, ale ludzie jeszcze bardziej (Ed. Murphy) 5

Funkcje komputera Są 4 podstawowe funkcje, które może realizować system: - przetwarzanie danych - przechowywanie danych - przenoszenie danych - sterowanie Przechowywanie danych Środowisko aplikacyjne (źródło/miejsce przeznaczenia danych) Przemieszczanie danych Urządzenie sterujące Funkcjonalny obraz komputera Przetwarzanie danych 6

Oprogramowanie (ang. software) Elementami systemu mikroprocesorowego są w przeważającej większości urządzenia elektroniczne, w których podstawową jednostką informacji jest albo 0, albo 1 odpowiadające dwóm stanom sygnału elektrycznego Programy i dane dla nich muszą więc być wyrażone przy użyciu notacji dwójkowej ( alfabetu binarnego zawierającego tylko dwa znaki: 0 i 1). Programy napisane w kodzie dwójkowym toprogramy w języku maszynowym Programowanie tylko przy zastosowaniu ciągu zer i jedynek byłoby prawie niemożliwe. Część podstawowych, prostych (tzw. primitives) instrukcji, jak przesuwanie (shift), dodawanie (add) odejmowanie (sub) itp. ma swoją znakową postać język asemblera, którą może posługiwać się programista a zrozumie ją ASEMBLER dla danego sprzętu (tłumaczy język asemblera na kod maszynowy). 7

Oprogramowanie c.d. Języki wyższego poziomu(c, C++, JAVA, DELPHI, ) mogą być używane niezależnie od sprzętu. Potrzebny jest KOMPILATOR (inny dla każdego języka), który przetłumaczy program napisany w języku wyższego poziomu na język maszynowy PAMIĘTAJ: Asembler i kompilator są PROGRAMAMI Program w asemblerze ASEMBLER Program w jęz. wyższego poziomu KOMPILATOR Program w języku maszynowym Załadowanie 8

System operacyjny Operacje takie, jak wybór odpowiedniego kompilatora, załadowanie kodu do pamięci, start, stop, itp. Są wykonywane automatycznie Zestaw programów nadzorujących, który pozwala na takie automatyczne działanie to SYSTEM OPERACYJNY System operacyjny i niektóre programy użytkowe oraz dane, zwłaszcza o sprzęcie, które nie powinny być modyfikowane ani kasowane, rezydują często w pamięci typu tylko do odczytu (read-only). Takie oprogramowanie nazywane jest firmware Nie można żadnego urządzenia zrobić "odpornym na głupotę", ponieważ głupcy są genialni. 9

System operacyjny OS (ang. OperatingSystem) Program, który działa jako interfejs między użytkownikiem a sprzętem komputerowym (mikroprocesorowym) Oprogramowanie, które steruje wykonywaniem programów przez procesor i zarządza jego zasobami Szereguje procesy (zadania); umożliwia współbieżne wykonywanie programów, itd. Zarządza pamięcią, również tworzy pamięć wirtualną JEST SPRZĘTOWO ZALEŻNY OD PROCESORA 10

Warstwy systemu komputerowego 11

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 12

N Ogólna postać wielomianu dla = dowolnej liczby i notacji 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. 13

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 14

Przykłady 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 15

Konwersja liczb 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 16

Inne przykłady (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 17

Działania arytmetyczne Ogólne zasady wykonywania działań arytmetycznych są jednakowe we wszystkich notacjach 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 18

Liczby ujemne Sposób pierwszy: znak i moduł Dla przedstawienia liczby potrzebujemy n+1 cyfr; cyfra najbardziej znacząca (pierwsza z lewej strony MSD) przyjmuje wartość 0dla liczb dodatnich i r-1dla liczb ujemnych (czyli F dla notacji szesnastkowej, 7 dla ósemkowej, 1 dla binarnej ) Przykłady: liczba reprezentacja (zakładamy razem 5 cyfr) (-2) 2 10010 (+2) 2 00010 (-56) 8 70056 (+11F) 16 0011F znak moduł 19

Znak i moduł 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 20

Liczby ujemne 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 21

Kod uzupełnień 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 22

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 n = r ( N) r gdy ( N) r = 0 gdy ( N ) = = r 0 0 Przykład: U2 dla (01010) 2 n=5 ; r=2: 2 101 (01010) = 100000 01010 = 10110 dla (0,0010) 2 n=1 ; r=2 2 1 (0,0010) = 10,0000 0,0010 = 1,1110 23

Inne metody obliczania U2 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 24

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 25

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) 26

Działania arytmetyczne w poszczególnych kodach 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. 27

Format danych Liczby stałoprzecinkowe -Fixedpoint -dla liczby całkowitej (przecinek jest ustalony po skrajnej, prawej stronie stąd nazwa) bit znaku (0 dla plusa, 1 dla liczby ujemnej) (n-1) bitów wartości (n liczba bitów w słowie) liczby ujemne zapisywane są najczęściej w postaci uzupełnienia do dwóch Zapis dziesiętny(decimalmode) BCD; 4 bity na cyfrę (czyli 2 cyfry w bajcie); najczęściej zostają konwertowane do postaci binarnej i przetwarzane (liczone) w arytmetyce dwójkowej a potem ponownie przeliczane na notację dziesiętną; czasem stosowana jest oddzielna arytmetyka dla liczb dziesiętnych 28

Format danych Łańcuchy literowe(characterstring) typowo 1 bajt na literę (znak), najczęściej w kodzie ASCII, czasem EBCDIC Liczby zmiennoprzecinkowe(floating-pointnumbers), zapisywane w różnych kodach, ale przy zachowaniu formatu: bit znaku pole wykładnika pole ułamka: 24 bity pojedyncza precyzja 56 bitów podwójna precyzja Przykład konwersji: (23,5) 10 = (10111.1) 2 = (0.101111) x (2) 5 29

Liczby zmiennoprzecinkowe Zapis stałoprzecinkowy jest dogodny przy zapisie liczb o ograniczonej wielkości modułu. W procesorze, 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, rto podstawa, a E -wykładnik 30

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) 31

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 32

Endien Istnieją dwa sposoby na przedstawienie wielobajtowej danej w architekturze o adresowanych bajtach. Tryb little Endien najmniej znaczący bajt danych jest zapisywany w bajcie o najniższym adresie i kolejne pod lokalizacjami o wyższych adresach Tryb big Endien odwrotnie, od najwyższego, do najniższego adresu Przykład: liczba (56789ABC) 16 wymaga 4 bajtów do zapisu, o adresach np. 0, 1, 2, 3 Zapis dla obu formatów: 0 1 2 3 little Endien BC 9A 78 56 big Endien 56 78 9A BC 33

Endien Oczywiście istotne jest uwzględnienie formatu przy przetwarzaniu wielobajtowych liczb, zapisywaniu czy odczycie z pliku Serie Intel stosują littleendien(ale nowsze procesory mają funkcję odwracania do swojego formatu za pośrednictwem rejestru, jeżeli jakaś aplikacja zapisuje inaczej) Serie Motorola stosują big Endien Aplikacje takie, jak JPEG, Adobe Photoshop big Endien Wszystkie aplikacje typowe dla Windows (BMP, GIF) little Endien Microsoft WAV, TIF oba formaty 34

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 35

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 36

Zapisy znormalizowane Istnieją dwa poprawne zapisy dla 0 (+0oraz -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 37

Podwójna precyzja (słowo 64 bitowe) bit 11 bitów 52 bity znaku Wykładnik Mantysa Dla liczb znormalizowanych przesunięcie wykładnika wynosi +1023 Wartości najmniejsze: Największe +2,2250738585072020 x 10-308 +1,7976931348623157 x 10 308 38

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 39

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. 40

Przykłady kodów wagowych do zapisu cyfr Wagi 8421 2421 642 3 0 0000 0000 0000 1 0001 0001 0101 2 0010 0010 0010 3 0011 0011 1001 4 0100 0100 0100 5 0101 1011 1011 6 0110 1100 0110 7 0111 1101 1101 8 1000 1110 1010 9 1001 1111 1111 41

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 pierwsza +0110 0111 1110 0000 korekta druga 10000000 0000 Nie ma takiego zapisu w kodzie Ani takiego! 42

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 43

Kody z wykrywaniem błędów Można dodać bit parzystości np. EvenBCD; 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 44

Kody alfanumeryczne 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 45

Przechowywanie danych 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. 46

Liczby różne sposoby zapisu 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 47

Tablice (Arrays) Ł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 A = 4 8 1 9 W rejestrach znajdą się kolejno: 4 4 1 Lub 8 8 1 9 9 48

Rekordy 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 49