O bitach, bajtach i hardware R. Robert Gajewski omklnx.il.pw.edu.pl/~rgajewski www.il.pw.edu.pl/~rg s-rg@siwy.il.pw.edu.pl
Bity i bajty Jednostkę ilości informacji nazywamy bitem (bi to po angielsku kawałek) skrót: b. Bit to skrót terminu BInary DigiT. Do komunikacji z komputerem używany jest odpowiedni zestaw znaków. Każdy z nich jest odpowiednio kodowany, otrzymuje on interpretację jako ciąg bitów. Ciąg ośmiu bitów nazywany jest bajtem skrót: B. Każdy bajt może być także zinterpretowany po prostu jako liczba. 2 02
Znaki Dwa bajty to (najczęściej...) półsłowo. Cztery bajty (32 bity) to słowo. 64 bity to podwójne słowo. Zestaw znaków używanych do komunikacji zazwyczaj obejmuje! małe i duże litery,! cyfry! znaki specjalne (takie jak na klawiaturze maszyny do pisania, np.!,?),! znaki sterujące,! inne znaki semigraficzne. W jednym bajcie można można zakodować 256 różnych znaków. 3 02
ASCII Istnieje wiele sposobów kodowania znaków.! ASCII American Standard Code for Infonnation Interchange,! BCD notation Binary Coded Decimal notation. Liczby mogą być więc zapamiętywane w dwojaki sposób:! jako ciąg znaków, np. 168 to znak 1, znak 6 i znak 8, czyli trzy bajty.! bezpośrednio z wykorzystaniem systemu dwójkowego, na ciągu bajtów! 1 bajt to 2 8 = 256 kombinacji, czyli zakres 0-255.! 2 bajty to 2 16 = 65 536 kombinacji, czyli zakres 0-65535. 4 02
Liczby całkowite Znane są dwa sposoby reprezentacji ujemnych liczb całkowitych! wykorzystujący bit znaku - najstarszy, skrajny lewy bit oznacza znak! wykorzystujący kod uzupełnieniowy, oznaczający dla liczb nieujemnych standardową postać, a dla x<0 x uzup = 2 n - x, gdzie n jest liczbą bitów reprezentacji.! 75 = 01001011! -75 = 1100101l - wykorzystanie bitu znaku,! -75 = 2 8-75 = 1 00000000-01001011 = 10110101 - kod uzupełnieniowy. Na jednym bajcie możemy zapisać liczby z przedziału [0...255] lub [-128...127] 5 02
Liczby zmiennopozycyjne Liczby zmiennopozycyjne mogą być zapamiętywane na dwa sposoby eliminujące kropkę dziesiętną:! przy ustaleniu, że część ułamkowa i całkowita zawsze tę samą jednakową liczbę bitów (stałoprzecinkowo), jako ciąg bitów reprezentują kolejno: " znak liczby zmiennopozycyjnej, " cyfry binarnego rozwinięcia części całkowitej, " cyfry binarnego rozwinięcia części ułamkowej.! w postaci cechy i mantysy zapisywanych na określonej liczbie bitów, czyli w sposób zmiennoprzecinkowy - zapis zmiennopozycyjny wykorzystujący (m+1) +(c+1) bitów umożliwia zapisanie liczby ±m*2 ±c 6 02
Dokładność i zakres 7 02 Mantysa mówi o dokładności, cecha o zakresie Standard Standard IEEE-754 (single, 32b):! Bit 0 znak liczby! Bity 1-8 wykładnik (cecha) powiększony o 127 (liczba z zakresu [-128...127] # 2 127 =1.7...E 38! Bity 9-31 wartość bezwzględna mantysy (dokładność!!!) pomniejszona o 1 Dodawanie/odejmowanie:! sprowadzenie do wspólnej cechy (do większej) Mnożenie/dzielenie:! dodajemy (odejmujemy) cechy i mnożymy (dzielimy) mantysy. (m1 p c1 ) (m2 p c2 ) = (m1 m2) p (c1+c2) 3.5 = 0,875 2 2-0 00000010 1110...0
Meandry zmiennopozycyjności 8 02 Zalety zmiennoprzecinkowego przechowywania! proste mnożenie i dzielenie! łatwo porównywać liczby! na niewielu bitach można zmieścić duże liczby Wady:! konwersje zabierają czas Pułapki arytmetyki zmiennoprzecinkowej! Trzy cyfry dziesiętne w mantysie: 1,51+0,00001=1,51001 (komputer przechowa: 1,51)! Nadmiar; zero maszynowe i błąd reprezentacji! Złożenie błędów zaokrąglania z utratą cyfr znaczących przy dodawaniu i odejmowaniu 7,54293-7,54129 i TRZY cyfry dziesiętne w mantysie to 7,54-7,54 = 0, choć dokładny wynik to 0,00164
Systemy liczenia... Inne pokrewne dwójkowemu systemy to:! ósemkowy, operujący ośmioma cyframi, bez 8 i 9,! szesnastkowy, operujący dziesięcioma cyframi i dodatkowo literami: A=10, B=11,C=12, D=13, E=14, F=15. 234 10 =2 10 2 +3 10 1 +4 10 0 =200+30+4 234 8 =2 8 2 +3 8 1 +4 8 0 =128+24+4=156 234 16 =2 16 2 +3 16 1 +4 16 0 =512+48+4=564 10 ABC 16 =10 16 2 +11 16 1 +12 16 0 = 2560+176+12= 2748 10 9 02
Konwersje... Z dziesiętnego na binarny! Dzielimy liczbę przez 2, kolejne reszty z dzielenia czytane od tyłu to liczba binarna 14 2=7 (0) 7 2=3 (1) 3 2=1 (1) 1 2=0 (1) 14 10 =1110 2 =BA 16 Binarny-szesnastkowy-binarny...! Cztery bity (połówka bajtu, tetrada) to jeden znak szesnastkowy: 0000 2 =0 16, 0001 2 =1 16,... 1110 2 =E 16,1111 2 =F 16 10 02
Hardware (1) Elementy składowe każdego mikrokomputera: PAMIĘĆ WEWNĘTRZNA MIKROPROCESOR MONITOR KLAWIATURA DYSK 11 02 Sprzęt komputerowy (hardware) to: jednostka systemowa zawierająca między innymi:! płytę główną a na niej: " mikroprocesor z rodziny Intel, i ewentualny koprocesor, " pamięć (RAM i ROM), " układy pomocnicze takie jak zegar, sterowniki pamięci, CMOS
Hardware (2)! zasilacz impulsowy,! napędy dyskowe wraz z kontrolerem,! kartę wejścia/wyjścia,! karty rozszerzenia (opcjonalne, np. karty sieciowe), monitor ekranowy, klawiatura, opcjonalne peryferia! drukarki,! myszy,! plotery,! skanery,! digitajzery... 12 02
Pamięć (1) Wszystkie bajty lub ich grupy nazywane słowami maszynowymi mają swoje adresy Istnienie adresowania zapewnia dostęp do informacji znajdującej się w pamięci. Pamięć jest miejscem, w którym są przechowywane (pamiętane) informacje. Możemy podzielić ją na:! pamięć zewnętrzną -informacje są przechowywane przeważnie na nośnikach magnetycznych: taśmach, dyskach! pamięć wewnętrzną, o niewielkim czasie dostępu do informacji, którą z kolei możemy podzielić na: 13 02
Pamięć wewnętrzna Pamięć operacyjna RAM (Random Access Memory), pamięć o dostępie swobodnym, w której zapisywane są i z której odczytywane są odpowiednie informacje w czasie pracy programu; zawartość tej pamięci ulega zniszczeniu po wyłączeniu komputera; pamięć tworzą układy elektroniczne, które mogą znajdować się w jednym z dwóch stanów 1-0 (tak-nie, prawda-fałsz, True-False), Pamięć stała ROM (Read Only Memory), którą możemy jedynie odczytywać, w której zapisane są podstawowe dla danego komputera informacje; w przeciwieństwie do RAM u jest to pamięć trwała. 14 02
Początek rewolucji Rewolucję zapoczątkowało w 1947 roku pojawienie się tranzystorów. Jeszcze większy przełom został dokonany w chwili wprowadzenia układów scalonych o bardzo dużej skali integracji VLSI (Very Large Scale Integration) i tzw. mikroprocesorów. Pierwszy 4-bitowy mikroprocesor został wyprodukowany w 1971 roku przez firmę Intel. W latach 70-tych powstawały liczne konstrukcje mikrokomputerów, których jednostką centralną był mikroprocesor 8-bitowy. 15 02
Mikrokomputery... Faktycznie pierwszymi mikrokomputerami były jabłuszka firma Apple. Firma IBM wyprodukowała pierwsze mikrokomputery IBM PC (Personal Computer) w 1981. Dwa lata później pojawił się na rynku IBM XT (extended Technology). Oba te mikrokomputery miały 16-bitowy mikroprocesor Intel 8088 z 8-bitową szyną danych. Oznacza to, że "wnętrzu" procesora informacje były przetwarzane w porcjach 16 bitowych, przyjmowanie i przesyłanie informacji następowało w porcjach 8-bitowych. 16 02
Narodziny standardu W roku 1984 wprowadzono IBM AT (Advanced Technology) z w pełni szesnastobitowym mikroprocesorem 80286. Lata te to narodziny standardu mikrokomputerowego. Firma IBM ujawniła architekturę mikrokomputera. Wiele firm rozpoczęło produkcję sprzętu kompatybilnego ze standardem. Chociaż wiele innych firm produkowało i produkuje mikrokomputery oparte o mikroprocesory innych firm określenie PeCet to produkt zgodny ze standardem IBM. 17 02
Współczesne procesory Kolejne nowe procesory firmy Intel:! Pentium! Pentium z technologią MMX! Pentium Pro! PentiumII, Pentuim III, Pentium IV Procesory zgodne z Pentium to między innymi:! AMD PC Processor (AMD-K5)! 6x86 PR-150+ (manufactured by IBM) Aby sprzęt komputerowy ożył niezbędne jest oprogramowanie czyli software. Dla każdego komputera najważniejszym programem, bez którego nie jest możliwa praca jest system operacyjny kontrolujący pracę komputera. 18 02
Procesor centralny Sercem komputera jest procesor centralny. W przypadku mikrokomputerów ze względu na miniaturyzację nazywany mikroprocesorem. Mikroprocesor składa się z:! jednostki sterującej, pobierającej z pamięci kolejne instrukcje wraz z ich argumentami, czyli dane do przetwarzania,! arytmometru, gdzie odbywa się właściwe przetwarzanie. 19 02
Elementy jednostki sterującej Dodatkowymi, niezbędnymi elementami jednostki sterującej są:! licznik rozkazów, w którym znajduje się adres miejsca w pamięci wewnętrznej zawierającego aktualne polecenie (rozkaz) dla procesora,! układy dekodujące odpowiedzialne za przygotowanie rozkazu do jego realizacji w arytmometrze. Komunikację między procesorem centralnym a urządzeniami zewnętrznymi zapewnia kanał obsługujący transmisje. 20 02
Mikroprocesor 21 02 Wędrówkę po świecie sprzętu rozpoczniemy od płyty głównej, omawiając podstawowe elementy znajdujące się na niej. Mikroprocesor to zminiaturyzowany procesor centralny (Central Processing Unit, CPU). Jego zadaniami są:! wykonywanie rozkazów,! sterowanie pracą wszystkich elementów komputera. Za pamiętanie i przechowywanie informacji cyfrowej odpowiedzialne są rejestry. Koprocesor był wyspecjalizowanym układem scalonym projektowanym jako odciążenie mikroprocesora. Występował on w starych typach procesorów...
ALU Jednym z podstawowych bloków funkcjonalnych mikroprocesora jest tzw. jednostka arytmetyczno-logiczna ALU (ArithmeticandLogicUnit) wykonująca wszystkie podstawowe operacje arytmetyczne i logiczne. Jednym z podstawowych bloków funkcjonalnych mikroprocesora jest tzw. jednostka arytmetyczno-logiczna ALU (ArithmeticandLogicUnit) wykonująca wszystkie podstawowe operacje arytmetyczne i logiczne. 22 02
W rytm zegara... Zegar to odpowiedni układ scalony, który jest generatorem drgań elektrycznych synchronizujących pracę mikrokomputera. Wszystkie elementy pracują synchronicznie. Oznacza to, że każdy takt zegara wymusza jeden elementarny krok pracy wszystkich elementów. Granicą zwiększania częstotliwości zegara jest czas reagowania najwolniejszego z elementów elektronicznych. Niektóre elementy mogą wykonywać swoją pracę przez dwa takty. 23 02
Jednostki szybkości pracy Jednostkami, w mierzona jest szybkość pracy komputera są:! MIPS (Milion Instructions Per Second), czyli milionów rozkazów procesora wykonywanych przez sekundę,! megaflop, jednostka szybkości działania komputera równa 1,048,576 operacji zmiennoprzecinkowych na sekundę. 24 02