architektura komputerów
Transkrypt
architektura komputerów
ARCHITEKTURA KOMPUTERÓW Reprezentacja danych w komputerach dr inż. Wiesław Pamuła [email protected] ARCHITEKTURA KOMPUTERÓW Literatura 2. 3. 4. 5. 6. J.Biernat: Architektura komputerów, Oficyna Wydawnicza Politechniki Wrocławskiej, Wrocław2002. Null L., Lobor J.:Struktura organizacyjna i architektura systemów komputerowych, Helion Gliwice 2004. Stallings W.: Organizacja i architektura systemu komputerowego WNT Warszawa 2000. A.Skorupski: Podstawy budowy i działania komputerów, WKŁ Warszawa 2000. D.A.Patterson, L.Hennessy: Computer architecture. San Mateo CA USA, Morgan Kaufman Publishers 1998. ARCHITEKTURA KOMPUTERÓW JEDNOSTKI INFORMACJI Dla opisu działania powszechnie produkowanych układów komputera przyjęto dwu symbolowy alfabet „0”, „1”. • • bit elementarna jednostka informacji bajt wektor 8 bitów (łańcuch) – nibble lub tetrada 4 bity • słowo rozmiar dostosowany do podstawowej jednostki przetwarzanej przez procesor – słowo maszynowe od 16 do 64 bitów • słowo podwójne (long word lub double word) 2 słowa stanowiące przetwarzaną jednostkę • słowo poczwórne (quad word) ARCHITEKTURA KOMPUTERÓW RODZAJE DANYCH Można wyróżnić 3 grupy danych przetwarzanych przez komputer: • • • rozkazy zawierają kody operacji i identyfikatory argumentów dla operacji dane systemowe informacja dla zapewnienia poprawnego gospodarowania zasobami komputera dane użytkowe informacje wykorzystywane w programach realizowanych przez komputer ARCHITEKTURA KOMPUTERÓW ROZKAZY Projektant architektury komputera definiuje strukturę i rozmiar rozkazów. Rozmiar stanowi wielokrotność słowa maszynowego procesora. • struktura rozkazu zbiór pól zawierających identyfikatory działań, które ma wykonać procesor – klasa operacji – rodzaj operacji – identyfikatory • przestrzeń kodowa liczba różnych rozkazów, które można zakodować przez bity słowa rozkazu – 2n liczba różnych rozkazów (rodzaje zadań, sposoby adresowania) – ortogonalność listy rozkazów – kody złożone wykorzystujące więcej niż jedno słowo maszynowe ARCHITEKTURA KOMPUTERÓW ROZKAZY przykłady: 6 bitów dodawanie 8 bitów skok 2 bity rejestrowe 4 bity rejestr 1 8 bitów „młodszy adres” 4 bity rejestr 2 8 bitów „starszy adres” ARCHITEKTURA KOMPUTERÓW DANE SYSTEMOWE Posiadają strukturę zdefiniowaną na poziomie architektury komputera. Użyteczne dla wspomagania realizacji wielozadaniowej pracy komputera. • • • stos bufor typu LIFO kolejka bufor typu FIFO tablica systemowa blok danych zawierających informacje o stanie procesora lub procesu wykonywanego przez komputer Zapis i odczyt zawartości danych systemowych realizowany jest przez specjalizowane układy komputera. ARCHITEKTURA KOMPUTERÓW STOS Wydzielony obszar pamięci komputera. Ograniczony. LIFO – last in first out - ostatni wpisany pierwszy odczytany • wskaźnik stosu zawiera adres szczytu stosu – przepełnienie stosu - próba zapisu na zapełniony stos – wyczerpanie stosu - próba odczytu pustego stosu przykłady zastosowania: zachowanie stanu licznika programu podczas wejścia do obsługi przerwania zachowanie stanu licznika rozkazów podczas wywołania podprogramu zapamiętanie zmiennych roboczych użytkownika ARCHITEKTURA KOMPUTERÓW STOS Działanie przepełnienie push wskaźnik stosu push wskaźnik stosu pop dana1 dana2 dana3 dana1 dana2 dana3 dana1 dana2 dana3 wskaźnik stosu pop wyczerpanie ARCHITEKTURA KOMPUTERÓW KOLEJKA Wydzielony obszar pamięci. FIFO - first in first out - pierwszy wpisany pierwszy odczytany • • wskaźnik początku kolejki określa położenie danej do pobrania z bufora wskaźnik końca kolejki określa miejsce gdzie można wpisać następną daną nieprawidłowe wyznaczanie wskaźników może prowadzić do zapętlenia kolejki ARCHITEKTURA KOMPUTERÓW DANE UŻYTKOWE Dane użytkowe rozróżniane są przez kontekst wykorzystania. Oprogramowanie wykorzystuje następujące typy danych: • • • skalarne reprezentacja wielkości jednowymiarowych strukturalne zbiory danych skalarnych wskaźnikowe argumenty trybów adresowania danych w obszarze pamięci komputera Typy danych użytkowych definiowane są na poziomie języka programowania ARCHITEKTURA KOMPUTERÓW TYPY SKALARNE przykłady • wyliczeniowe opisowe – znaki alfanumeryczne – stałe logiczne – znaczniki • liczby stałoprzecinkowe – porządkowe – całkowite – wymierne • liczby rzeczywiste – zmiennoprzecinkowe – logarytmiczne ARCHITEKTURA KOMPUTERÓW TYPY STRUKTURALNE przykłady • wektory i tablice – łańcuchy – liczby zespolone • • rekordy zbiory struktury danych różnych typów nieuporządkowane zestawy danych ARCHITEKTURA KOMPUTERÓW TYPY WSKAŹNIKOWE przykłady wskazują miejsce przechowywania danych w pamięci komputera • adresy zmiennych • deskryptory – wskaźniki do adresów danych – wskaźniki do tablic adresów danych – wielopoziomowe adresowanie posrednie pamięć danych tablica adresów danych adres w tablicy adres danej dana ARCHITEKTURA KOMPUTERÓW ZAPIS DANYCH Dane zapisane są w postaci wektorów bitowych. Interpretując wektor jako liczbę binarną każdą daną można przedstawić w postaci liczby i zapisać w wybranym systemie liczenia. Zapis binarny wykorzystuje symbole „0” i „1” kolejne pozycje zapisu są potęgami liczby 2. Grupując liczby binarne w tetrady można każdą tetradę przedstawić z użyciem symboli szesnastkowego systemu liczenia. Kolejne pozycje reprezentacji są potęgami liczby 16. symbole szesnastkowe: „0”,”1”,”2”,”3”,”4”,”5”,”6”,”7”,”8”,”9”,”A”,”B”,”C”,”D”,”E”,”F”. ARCHITEKTURA KOMPUTERÓW ASCII American Standard Code for Information Interchange. KOD 0000 0001 0010 0011 0100 0101 0110 0111 1000 1001 1010 1011 1100 1101 1110 1111 0000 NUL SOH STX ETX EOT ENQ ACK BEL BS HT LF VT FF CR SO SI 0001 DLE DC1 DC2 DC3 DC4 NAK SYN ETB CAN EM SUB ESC FS GS RS US 0010 SP ! „ # $ % & ‘ ( ) * + , - . / 0011 0 1 2 3 4 5 6 7 8 9 : ; < = > ? 0100 @ A B C D E F G H I J K L M N O 0101 P Q R S T U V W X Y Z [ \ ] ^ - 0110 ` a b c d e f g h i j k l m n o 0111 p q r s t u v w x y z { | } ~ DEL UNICODE ISO/IEC 10646-1:1993 16 bitowe rozszerzenie kodu ASCII uzupełniony o kody alfabetów narodowych ARCHITEKTURA KOMPUTERÓW LICZBY STAŁOPRZECINKOWE Zapis pozycyjny n L ai 2 i i 0 n – liczba pozycji liczby (pozycje ułamkowe mają ujemne indeksy) Liczba może być zapisana na kilku słowach maszynowych wtedy ważny jest sposób zapisu kolejności słów liczby w pamięci BIG ENDIAN - bardziej znacząca część liczby zapisana pod mniejszym adresem w pamięci „wcześniej” (MOTOROLA) LITTLE ENDIAN - części liczby zapisane kolejno od najmłodszej do najstarszej w pamięci komputera (INTEL) ARCHITEKTURA KOMPUTERÓW LICZBY UJEMNE Zapisy liczb ujemnych • znak moduł • znak U1 • znak U2 reprezentacja liczb ujemnych przez dopełnienie U1=(2n -1) – L U2=2n - L n – liczba pozycji zapisu U1 negacja modułu liczby L U2 = U1+1 lub negacja kolejnych cyfr modułu liczby L od lewej do prawej do najmłodszej jedynki, która pozostaje nie zanegowana ARCHITEKTURA KOMPUTERÓW LICZBY ZMIENNOPRZECINKOWE IEEE 754 (-1)S mantysa 2cecha s - bit znaku mantysa - określa precyzję zapisu 1<m<2 znormalizowana cecha - określa zakres liczb S cecha (przesunięcie k) mantysa znormalizowana ukryta (1) MSB Format pojedyńcza podwójna bit znaku 1 bit (bit 31) 1 bit (bit 63) mantysa 23 bits (bit 0 do 22) 52 bits (bit 0 do 51) cecha 8 bits (bit 23 do 30) 11 bits (bit 52 do 62) 28-1-1 = 127 211-1-1 = 1023 przesunięcie (k) ARCHITEKTURA KOMPUTERÓW LICZBY ZMIENNOPRZECINKOWE IEEE 754 obiekty specjalne obiekt cecha mantysa liczba znormalizowana (1 – 254) różne od 0 zero 00000000 0 nieznormalizowana liczba 00000000 różne od 0 +/- ∞ 11111111 (255) 0 NaN (nie liczba) 11111111 (255) różne od 0 wykorzystywane w sprawdzaniu poprawności wykonania operacji na liczbach zmiennoprzecinkowych ARCHITEKTURA KOMPUTERÓW KODOWANIE INFORMACJI kody detekcyjne • z kontrolą parzystości • Grey’a • „z jedynkami” kody korekcyjne • Hamming’a • R-S ARCHITEKTURA KOMPUTERÓW CRC Cyclic Redundancy Check reszta z dzielenia przez wielomian generacyjny – sprawdzany w celu określenia poprawności przesyłu informacji ARCHITEKTURA KOMPUTERÓW OPERACJE NA DANYCH operacje logiczne • • • • iloczyn suma suma modulo 2 XOR przesunięcia logiczne , arytmetyczne, cykliczne wskaźniki stanu wykonania operacji • zero • przeniesienie, przeniesienie połówkowe, • znak • przekroczenie zakresu