1 HISTORIA URZĄDZEŃ LICZACYCH: Starożytne (abaki) – prostokątna deska z wyżłobionymi rowkami, w których kamykami zaznaczano liczbę poszczególnych rzędów dziesiętnych - Liczydło 18 wiek – sumator: - 1842 – Pascal – sumator szeregowy, dodawanie cyfra po cyfrze - 1871 – G. W. Leibnitz – sumator równoległy – sumowanie cyfr odbywało się jednocześnie – możliwe obliczenia prostych iloczynów 19 wiek: - 1812 – Babbage – model maszyny różnicowej, obliczenia tablic funkcji matematycznych - 1833 – Babbage – projekt maszyny analitycznej – idea sterowania sekwencyjnego – karty dziurkowane, zrealizowane z powodu trudności finansowych niskiego stanu techniki - 1877 – USA – sumator klawiszowy 20 wiek: - 1920 – arytmometr elektryczny - 1944 – Mark1 – maszyna licząca oparta na przekaźnikach elektromagnetycznych – sponsorowana przez IBM - Bell5 – Bell telecom - 1946 – USA – ENIAC (początek informatyki): 17000 lamp elektronowych, zegar 100khz, 5000 dodawań na sekundę, sterowanie sekwencyjne, system dziesiętny, pamięć do przechowywania liczb - 1945 – UAS – maszyna sekwencyjna ze sterowaniem wewnętrznym (wymienny program w pamięci wraz z danymi - 1947 – 1949 – EDSAC i EDVAC – wg. koncepcji Neumanna Komputery pierwszej generacji: lampowe - programowanie w języku wewnętrznym (0,1) - 1951 – UNIVAC – system dziesiętny, pamięć rtęciowa - 1953 – IBM701 – system dwójkowy, pamięć elektrostatyczna - 1958 – UMC1 – skonstruowany na Politechnice Warszawskiej, produkowany seryjnie, pierwszy komputer w Lublinie Komputery drugiej generacji: - 1949 – pierwszy tranzystor i kompozycja oparta na nich, pamięć na rdzeniach ferrytowych, powstają pierwsze translatory - 1955 – TRADIC – zbudowany na tranzystorach - 1956 – TX0 – programowalny komputer ogólnego przeznaczenia - 1958 – Seymon Cray – CDC1608 – superkomputer tranzystorowy - 1962 – Odra1003 – polski komputer tranzystorowy, pamięć ferrytowa - 1959 – IBM seria 7000 – 64-bitowe słowo, pierwszy raz użyto zwrotu ARCHITEKTURA KOMPUTERA (jest to funkcjonalny wygląd komputera przeznaczony dla jego użytkowników – definicja z 1964 r.) Komputery trzeciej generacji: Szukasz gotowej pracy ? To pewna droga do poważnych kłopotów. Plagiat jest przestępstwem ! Nie ryzykuj ! Nie warto ! Powierz swoje sprawy profesjonalistom. 2 - - komputery na układach scalonych SSI, MSI, (zmniejszenie rozmiarów i poboru mocy, zwiększenie niezawodności), konsola operatora (klawiatura, monitor), systemy operacyjne, rozwój algorytmicznych języków programowania, podział na hardware i software 1958 – pierwszy obwód scalony (Texas Instruments) 1954 – FORTRAN - język programowania IBM 1960 – PDP1 – pierwszy mikrokomputer wyprodukowany przez DEC 1965 – PDP8 1967 – nowa seria Odra 1300 w Polsce we współpracy z ICL Komputery czwartej generacji: oparte na układach scalonych LSI, VLSI, procesor jest pierwszym układem scalonym, rozpowszechnianie się pamięci operacyjnych, dyski elastyczne, rozwój oprogwamowania 1969 – UNIX dla PDP 1970 – Pascal 1971 – Intel 4004 – 4 bitowy 1974 – Intel 8080 i Motorola 68000 1976 – Apple1 i superkomputer Cray1 o architekturze wektorowej 1977- Microsoft 1978 – Intel 8086 – 16 bitwy 1980 ZX80 PARAMETRY KOMPUTERA: Mips – mega instruction per second Mtlops – mega floaming point operations (ilość operacji zmiennoprzecinkowych na sekundę) Superkomputer to system komputerowy o najwyższej z pośród dostępnych w danym czasie maszyn o mocy obliczeniowej Komputery piątej generacji – koniec lat 80-tych Rozwój technik komputerowych następuje w kierunkach: - szukanie nowych architektur komputerów, RISC, potokowe, wieloprocesorowe i inne - dalsza budowa superkomputerów i sieci komputerowych - szybki rozwój technik minikomputerów Generacje komputerów: zerowa: - maszyny mechaniczne i elektromechaniczne pierwsza: - od 1946 roku – maszyny lampowe druga; - lata 50-te – maszyny tranzystorowe trzecia: - lata 60-te – układy SSI i MSI czwarta: - lata 70-te – LSI i VLSI piąta: - koniec lat 80-tych Klasyczna koncepcja komputera (Von Neumann): Pamięć Procesor Urządzenia zewnętrzne Użytkownik - Informacje w komputerze: informacje (dane i rozkazy) w komputerze są przedstawiane w postaci słów binarnych słowo binarne – dowolny skończony, uporządkowany ciąg symboli 0 lub 1 (bitów) długość słowa bitowego określa ilość znaków we słowie w komputerze długość słowa wpływa zwykle na długość jego wszystkich rejestrów Procesor – uniwersalny układ cyfrowy przetwarzający informacje przetwarza informacje wykonując na niej elementarne operacje instrukcje – rozkaźniki 3 - ciąg instrukcji- program - w celu wykonania przetwarzania informacji do procesora należy dostarczyć dane WE oraz program Uproszczony model procesora: adres pamięci LR A ALU ALU wynik operacji B BR dekoder LR – licznik rozkazów RL – rejestr rozkazów ALU – jednostka arytmetyczno – logiczna A, B – rejestry z argumentami ALU (A – akumulator) Dekoder – dekoder kodu rozkazowego Elementy procesora: - licznik rozkazów (wskaźnik instrukcji) – rejestr procesora zawierający adres komórki pamięci, w której przechowywany jest kod rozkazu przeznaczonego do wykonania - jednostka arytmetyczno – logiczna (ALU) – uniwersalny układ cyfrowy przeznaczony do wykonywania operacji arytmetycznych i logicznych - rejestry procesora są dostępne programowi - A – akumulator – rejestr, który zawiera 1 z operandów wykonywanej operacji i do którego jest zazwyczaj wynik operacji - B – uniwersalny rejestr roboczy – zawiera drugi operand - Dekoder (dekoder rozkazów) – układ procesora przeznaczony do rozpoznania kodu rozkazów i wytworzenia wewnętrznych i zewnętrznych sygnałów sterujących - pamięć operacyjna – uporządkowany ciąg n słów binarnych (komórek pamięci) o równej długości (np. 8), w której przechowywane są dane, wyniki oraz kody instrukcji tworzących program - każda komórka pamięci posiada swój adres - podanie adresu ma WE adresowe umożliwiające dostęp do danej komórki pamięci - w 1 cyklu pracy można zapisać lub odczytać z pamięci tylko 1 słowo Struktura pamięci n słów binarnych: Adres bitów WE O/Z 0 1 2 3 4 5 n=5 n=4 n=3 n=2 n=1 W. adres WY 4 W. adres – wejściowe adresowe O/z – sygnał sterujący dostępem W w zależności od O Z pamięć jest odczytywana lub zapisywana - Czas wykonania instrukcji: całkowity czas wykonania instrukcji cykl – czas każdego dostępu do pamięci komputera długość instrukcji jest zwykle różna dla różnych rozkazów cykl instrukcji zawiera zwykle 1 lub kilka cykli maszynowych najszybciej wykonują się rozkazy nie zawirające cyklu maszynowego (bez odwołan co pamięci) Język wewnętrzny komputera: lista rozkazów – zestaw wszystkich instrukcji maszynowych (rozkazów), jakie potrafi wykonać procesor binarna postać listy rozkazów wraz z podstawowymi cechami architektóry komputera tworzy język wewnętrzny komputera LR 00 LR – pamięć Dekoder LR Nie Dekod er HALT Czy rozkaz wielokom órkowy Kolejne cykle pobrania Wykonania BR Tak 5 - Główne cechy komputera (wg Neumanna): 3 główne bloki funkcjonalne – procesor, pamięć operacyjna, urządzenia WE, WY praca pod kontrolą sekwencyjnego wpisanego programu program i dane zapisane są w pamięci operacyjnej SYSTEMY LICZBOWE: Dane w procesie przetwarzania informacji: - dane stanowią reprezentację informacji - w procesie przetwarzania danych wykonywane są określone działania, bez odwoływania się do ich znaczenia - podstawowym rodzajem przetwarzania danych są dane liczbowe Co to jest liczba ? - liczbą naturalną nazywa się te cechy zbioru, która określa ilość (liczność) elementów w zbiorze - pojęcie liczby jest więc pojęciem abstrakcyjnym, ponieważ w żadnym stopniu nie zależy od innych szczególnych cech elementu zbioru Konieczność rejestrowania zjawisk o charakterze ciągłym spowodowało powstanie innych rodzajów liczb – liczby wymierne i rzeczywiste - pierwszy materialny zapis liczby z przed 30000lat odkryto w Czechach (na Morawach) w 1837 roku – były to kości wilka, na których nacięto poprzeczne karby Zasady numeracji – przedstawianie liczb: - addytywna (z łac. Addto – dodawanie) - kilka podstawowych znaków (cyfr) oznaczających wybrane liczby, a wtedy pozostałe liczby oznacza się powtarzając wybrany znak potrzebną ilość razy - subtraktywna (z łac. Subtractio – odejmowanie) – zestawienie cyfry oznaczającej liczbę mniejszą przed większą oznaczającą różnicę liczb multiplikatywna Systemy pozycyjne: - w starożytnym Babilonie pierwszy raz pojawiła się numeracja pozycyjna, była oparta na stosowaniu 2 znaków (- oznaczał 1 i 60, <10 i 600) - z indyjskich cyfr brahmi powstały nowoczesne cyfry – indyjskie dewanagari (boskie pismo) – stosowane w układzie dziesiętnym – pochodzą od nich arabskie i europejskie dziesiętne systemy pozycyjne (pierwsze świadectwo 7 wiek) Dziesiętny system pozycyjny: - służy do zapisu liczb naturalnych: n 1 - N(10) = a n-1-i * 10n-1-i = an-1 * 10n-1 + an-2 * 10n-2 + ... + a1(10) + a0 = an-1 * an-2 + ... + a1 * a0(10) i 0 - np.: 2046(10) = 2* 103 + 0 * 102 + 4 * 101 + 6 * 100, gdzie: a 3 = 2, a 2 = 0, a 1 = 4, a 0 = 6 - System pozycyjny o podstawie naturalnej p>1: jeżeli p>1 jest dowolną ustaloną liczbą naturalną, to każdą liczbę naturalną można przedstawić: - N(p) = n 1 i0 a n-1-i * pn-1-i = an-1 * pn-1 + an-2 * pn-2 + ... +a1 p+ a0 = an-1 * an-2 * ... * a1 a0(p) 6 - Ułamki: jeżeli p>1 to każda formuła o przedstawionej postaci przedstawia pewną m-pozycję liczby taką, że: 0<u<1 - u(p) = m ai * pi = a-1 * p-1 + a-2 * p-2 + ... + a-n+1 * p-n+1 + a-n * p-n = 0, a-1 * a-2 ... a-n+1 * a-n(p) i 1 Liczba wymierna w systemie pozycyjnym o podstawie p>1: -formuła przedstawia (n + m) liczbę wymierną zapisaną w pozycyjnym systemie o podstawie p: m N, M(p) = ai * pi = an-1 * an-2 ... a1 * a0, a-1 * a-2 ... a-m+1 * a-m + p i n 1 W SYSTEMIE POZYCYJNYM NIE MOŻNA ZAPISAĆ LICZBY NIEWYMIERNEJ Dwójkowy system pozycyjny: m - N,U(2) = ai * 21 = an-1 *am-2 ... a1 * a0, a-1 * a-2 ... a-m + a-m(2) i n 1 - 1011001 101101(2) = 89,703125 57(10) = 1 * 25 + 1 * 24 + 1 * 23 + 0 * 22 + 0 * 21 + 1 * 20 = 111001(2) 2046(10) = 11111111110(2) 57(10) = 111001(2) - - - - Algorytmy konwersji liczb w różnych systemach pozycyjnych: o algorytm zamiany naturalnej liczby dziesiętnej na dwójkową – w celu dokonania konwersji naturalnej liczby dziesiętnej na liczbę dwójkową należy: podzielić liczbę, a następnie kolejno uzyskane ilorazy przez liczbę 2, aż do uzyskania ilorazu 0 podczas wykonywanych działań należy rejestrować kolejno otrzymywane reszty z dzielenia poszukiwany kod dwójkowy liczby naturalnej otrzymuje się wpisując kolejno otrzymane reszty w porządku przeciwnym do otrzymania o Zamiana ułamka dziesiętnego na ułamek dwójkowy: mnożyć ułamek, a następnie części ułamka kolejno otrzymywanych iloczynów przez 2 podczas wykonywanych mnożeń należy rejestrować kolejno części całkowite otrzymywanych iloczynów poszukiwany kod dwójkowy ułamka otrzymuje się wypisując kolejno otrzymane części całkowite iloczynów w porządku zgodnym z ich uzyskaniem postępowanie przerwać, gdy pewna sekwencja cyfr w wyniku zacznie się powtarzać Algorytm zamiany liczby szesnastkowej na dwójkową: należy przekodować kolejno na kod dwójkowy wszystkie cyfry liczby szesnaście, otrzymany ciąg cyfr dwójkowych jest poszukiwaną liczbą dwójkową Algorytm zamiany liczby dwójkowej na szesnastkową: należy podzielić liczbę dwa od prawej strony na grupy po cztery cyfry, każdą z czterech cyfr liczby dwa należy zastąpić cyfrą szesnastkową. Otrzymany ciąg cyfr szesnastkowych jest poszukiwaną liczbą szesnastkową Kody binarne cyfr szesnastkowych: Cyfra 16 0 1 2 3 4 5 6 7 Kod binarny 0000 0001 0010 0011 0100 0101 0110 0111 Cyfra 16 8 9 A B C D E F Kod binarny 1000 1001 1010 1011 1100 1101 1110 1111 KODOWANIE INFORMACJI: Kodowanie informacji: - informacja cyfrowa – informacja przedstawiona (zakodowana) w postaci słów cyfrowych - słowo cyfrowe (binarne) – dowolny ciąg składający się z symboli 0lub 1, co oznaczamy: an-1 * an-2 ... a3 a2a1a0 , gdzie a = (0,1) , an-1 – oznacza się USB (ang. Most Significant Bit) – najbardziej znaczący (najstarszy) bit , a0 – LSB (ang. Least Significant Bit) – najmniej znaczący (najmłodszy) bit 7 - - Jednostka informacji: jeśli prawdopodobieństwo pojawienia się komunikatu wynosi p, to komunikat zawiera k - bitów informacji: k= - log2 (bit) jeśli prawdopodobieństwo pojawienia się komunikatu wynosi p = 0,5, to wtedy komunikat zawiera : –log2 2-1 = 1 bitów informacji Przyjmujemy następujące oznaczenia: 1 (bit) = 1 b 8 (bitów) = 1 B (Bajtów) w n - elementarnym słowie cyfrowym cyfry 0 i 1 możemy rozmieścić na 2 n sposobów jeżeli pojawienie się n – elementowego słowa cyfrowego ma CHARAKTER LOSOWY, to wtedy prawdopodobieństwo pojawienia się go wynosi p = 2-n , na podstawie definicji jednostki informacji słowo takie zawiera –log2 2-n = -(n * log2 2) = n * 1 = n (bitów informacji) Nazwy słów binarnych: Długość słowa 1 4 8 16 32 64 Oznaczenia symboliczne a0 a3 ... a0 a7 ... a0 a15 ... a0 a31 ... a0 a63 ... a0 Nazwy angielskie Binary, digit, bit Nibble Byte 16-bit word, word Double word, dword Word, qword, quad Nazwy polskie Bit Tetrada, kęs Bajt Słowo 16-bitowe, słowo Podwójne słowo, dwósłowo Słowo 64-bitowe-4 słowo - Kodowanie – przyporządkowanie poszczególnym obiektom zbioru kodowego odpowiadających im elementom zwanych słowami kodowymi, wg. ściśle określonego przypisu zwanego kodem, przy czym każdemu słowu kodowemu musi odpowiadać dokładnie 1 element kodowy Umowna terminologia: zapis dowolnej liczby w dowolnym systemie notacji będziemy nazywać liczbą z dodaniem nazwy systemu notacji Kod – takie jednoznaczne przyporządkowanie (kod), które liczbom zapisanym w dowolnym systemie przyporządkowuje słowo kodowe w postaci zerojedynkowej Graficzna interpretacja kodowania: 111 A 010 B 100 C Zbiór obiektów kodowanych 001 Zbiór słów kodowanych Naturalny kod binarny – NKB jeżeli dowolnej liczbie dziesiętnej przyporządkowujemy jej dowolną liczbę binarną, to otrzymujemy naturalny kod binarny (NKB) NKB 393 110001001 - przyporządkowując każdej cyfrze dziesiętnej 4 – cyfrową liczbę dwójkową (tetradę) w kodzie NKB, a następnie kodując liczbę dziesiętną cyfra po cyfrze otrzymuje się kod prosty (BCD) BCD 393 001110010011 Stałopozycyjna reprezentacja liczb: o W reprezentacji liczb można stosować następujące kody stałopozycyjne: 1). Kod znak – moduł ZM - 8 2). Kod odwrotny – U 1 3). Kod uzupełniający – U 2 Stosowanie odpowiednich kodów jest konieczne ze względu na to, że w normalnym zapisie pozycyjnym oprócz cyfr (np.: 0,1) do zapisu liczby używamy jeszcze znaków: „+” „-” „ , ” Dla dowolnej liczby dwójkowej (W) – 2k można utworzyć jej reprezentację w słowie cyfrowym o długości n = (k + n) zgodnie z następującym wzorem: Wzm = W 2k-1 gdzie W 0 gdzie W 0 Kod ZM tworzy się przez dodanie bitu znaku do kodu NKB - 0 oznacza + , a wartość 1 znak – pozostałe bity słowa oznaczają wartość (W) liczby - pozycję oddzielającą część całkowitą od ułamkowej przypisuje się umownie k – bitów od początku słowa, np.: słowa 8 – bitowego -93 = -1011101 93 = 1011101 -0,6875 = -0,1011 0,6875 = 0,1011 Kod odwrotny: W0 U1 = W gdzie W 0 2k + W – 2-m gdzie W 0 - kodzie U 1 liczba dodatnia ma taką samą reprezentację jak w kodzie ZM - reprezentację liczb w kodzie U 1 można utworzyć w ten sposób, że na pozycji bitu znaku umieszczamy 1, a na pozostałych bitach zanegowane bity wartości bezwzględnej liczby w kodzie NKB, np.: kod U 1 dla słowa 8 – bitowego -0,6875 = -0,1011 0,6875 = 0,1011 Kod uzupełnieniowy: - dla dowolnej liczby 2(W) – 2k można utworzyć jej reprezentację w słowie cyfrowym o długości n = (k+m) zgodnie z następującym wzorem: wu2 = w gdzie w 0 w gdzie w 0 - w kodzie U2 liczby dodajemy na taką samą reprezentację jak w kodzie 2M - reprezentację liczby ujemnej w U2 można utworzyć w ten sposób, że na pozycji bitu znaku umieszczamy 1, a następnie do zanegowanych bitów wartości bezwzględnej liczby należy optymalnie dodać 1 na najmniej znaczącej pozycji słowa ,np.: -93 = 1011101 93 = 1011101 -0,6875 = -0,1011 -0,6875 = 0,1011 Kodowanie znaków alfa – numerycznych: - dane alfa – numeryczne (dane tekstowe) reprezentujące wyłącznie znaki drukarskie (litery, cyfry, znaki interpunkcyjne, znaki specjalne, znaki sterujące wydrukiem niewidoczne w tekście) - do kodowania znaków alfa – numerycznych używa się obecnie kodu ASCII (American Standard Code for Information Interchange) - kod ASCII znany jest też jako ISO (International Standard Organization) - pierwotnie kod ASCII był kodem 7 – bitowym, a 8 bit był przeznaczony do tzw. Kontroli parzystości - obecnie stosuje się 8 – bitowej odmiany kod ASCII uwzględniający wiele dodatkowych znaków (w tym narodowe) PODSTAWY UKŁADÓW LOGICZNYCH: Działania logiczne i bramki: - każdy układ cyfr można przedstawić jako „czarną skrzynkę” - słowem WE układu cyfr nazywamy uporządkowany ciąg wartości wszystkich sygnałów WE - słowem WY układu cyfr nazywamy uporządkowany ciąg wartości wszystkich sygnałów WY Układy kombinacyjne i sekwencyjne: - jest to układ cyfr, w którym danemu słowu WE odpowiada zawsze tylko 1 słowo WE 9 - w którym istnieje przynajmniej 1 słowo WE, na które układ odpowiada różnymi słowami WE w różnych chwilach czasu układ cyfr, dla którego w dowolnym momencie jego działania stan WE oddziaływuje na stan WY stan WE wpływa na stan WY jedynie w pewnych odcinkach czasu pracy układu zwanych „czasem czynnym”, natomiast w pozostałych odcinkach zwanych „czasem biernym” stan WE nie wpływa na stan WY Układy kombinacyjne: o w technice cyfrowej układ kombinacyjny realizuje się jako: układy złożone z odpowiedniego zestawu najprostszych układów logicznych tzw. Bramek Standardowe bloki kombinacyjne: dekodery multipleksery układy matrycowe bramka (ang. gata) jest to podstawowy układ logiczny realizujący prostą funkcję logiczną (np.: sumę lub iloczyn) - iloczyn (AND) - suma (OR) - NAND - NOT o np.: 1 bitowy sumator: - niech A i B będą naturalne, zapisane w kodzie NKB: A= i ai 2 1 A= bt 21 t aby znaleźć sumę arytmetyczną tych liczb należy dodawać bit po bicie zaczynając od najmniej znaczącej pozycji liczb - zadanie polega na kilkukrotnym wyznaczaniu wartości 2 funkcji y1 = y1 (a1 b1 c1) – binarny wynik jednopozycyjnego dodawania Komparatory: - układ liczb wskazujący fakt równości lub nierówności 2 słowa binarnego WE nazywa się komparatorem - w przypadku nierówności słowa komparator może wskazywać, które ze słów WE jest większe o Komparator 1 bitowy: - 10 A B Kekodery: nazwane są układem o n – WE i 2n WY przekształcają one słowa WE w kodzie NKB na słowa w „ 1 z 2 n na odpowiednim WY dekodera pojawia się 1, a wszystkie pozostałe pozycje są równe 0 (czasem bywa odwrotnie) - koderem (endokoderem) nazywamy układ komb. Który zamienia kod WE na kod binarny NKB - kodem priorytetu nazywamy układ kodu, w którym wprowadzono następujące zmiany: 1. na jego WE może pojawić się więcej niż 1 sygnał wyróżniany 2. każdemu WE przyporządkowuje pewien priorytet 3. na WE pojawia się zakodowany numer tego WE z wyróżnionym sygnałem, który posiada najwyższy priorytet Multiplekser – układ realizujący funkcje wybierania (selekcji) 1 z wielu WE i skierowanie informacji z tego WE na WY Dekoder – układ realizujący funkcje wybierania (selekcji), z wielu WY, na które skierowane są informacje z WE Układy sekwencyjne: - rejestrem nazywamy układ cyfr przeznaczony do krótkoterminowego przechowywania niewielkich ilości informacji lub zamiany postaci informacji z równoległej na szeregową lub odwrotnie - licznik – układ cyfr, na którego WY pojawia się zakodowana liczba impulsów podanych na WE zliczające licznika, zliczona przez licznik ARYTMETYCZNE PODSTAWY DZIAŁANIA KOMPUTERA Arytmetyka stałopozycyjna: - dodawanie stałopozycyjnych liczb dodatnich: - Wartości dziesiętne Wart. w zapisach ZM, U1, U2 01011001 00101101 (1)00101101 89 +45 134 - Wartości w BCD 010001001 001000101 011001110 01100110 00100100 + (1) (1) 00110100 w zapisie ZM, U1, U2 i dodawanie stałopozycyjne liczb dodatnich przebiega w identyczny naturalny sposób zapis w BCD dodaje do siebie odpowiednie tetrady, jeżeli wynik dodawania tetrad przekracza zakres kodu, to dodaje się do nich korekcję równą 6. Następnie uwzględnia się powstałe przeniesienia dodawanie liczb stałopozycyjnych: Wart. dziesiętne +9 -7 +2 ZM 01001 +10111 00010 U1 01001 +11000 (1)000001 + 1 00010 U2 01001 +11001 (1)00010 BCD 01001 +10111 00010 11 - - - - aby odjąć 2 liczby w zapisie ZM lub BCD należy: a) porównać moduły obu argumentów i przyjąć jako znak wyniku znak liczby o większym module b) od większego modułu odjąć mniejszy, realizacja tego argumentu nie jest łatwa, ponieważ w przypadku gdy na wybranej pozycji od 0 należy 1 istnieje konieczność stosowania tzw. „pożyczek wyższych pozycji” Odejmowanie liczb w zapisie U1 i U2: w zapisie U1 odejmowanie polega na dodawaniu wszystkich pozycji liczby wraz z bitem znaku oraz uwzględnieniu powstałego przeniesienia. Korekcja polega na dodawaniu przeniesienia do najmniej znaczącej pozycji wyniku w U2 odejmowanie jest po prostu dodawaniem wszystkich pozycji wraz z bitem znaku. Jeśli powstanie przeniesienie na liście, to jest ono ignorowane Mnożenie liczb w zapisie stałoprzecinkowym: o Algorytm mnożenia liczb dla zapisu ZM: porównać bity znaków i przyjąć znak wyniku wykonać mnożenie modułów bit znaku wyniku można wyznaczyć wykonując na bitach znaków czynników sumę moduło 2 mnożenie modułów można wykonać zgodnie z arytmetycznymi zasadami mnożenia liczb w systemie pozycyjnym o podstawie 2 M ALU RL C Układ sterow ania SHF RH M – rejestr bitowy R – rejestr 8 – bitowy RL – 1 bitowa najmniej znacząca część rejestru R RH -1 bitowa najbardziej znacząca część rejestru R ALU – jednostka logiczno – arytmetyczna C – 1 bitowy rejestr do uwzględniania przeniesienia SHR – przesunięcie w prawo Algorytm mnożenia liczb stałoprzecinkowych BCD: 12 START RH 0 RL czynnik 1 M czynnik 1 STER N R0 = 1 Przesunięcie w prawo N=N-1 RL RL + M 13 - - przy realizacji tego algorytmu układ sterowania programuje się na odpowiednią liczbę kroków równą liczbie bitów mnożonych liczb Mnożenie liczb stałoprzecinkowych w zapisie U1 i U2 algorytm mnożenia liczb w zapisie U1 zależy od znaku czynników (dla dodawania pokrywa się z algorytmem liczb NKB) algorytm mnożenia liczb zapisanych w U2 wymaga stosowania korekty przy mnożeniu przez liczbę ujemną (wydłużenie algorytmu o 1 krok) wymienioną wyżej wadę algorytmu mnożenia liczby w zapisie U2 można usunąć zmieniając odpowiednio konstrukcję algorytmu START RH 0 RL czynnik 1 M czynnik 1 STER N R0 = 1 Przesunięcie w prawo N=N-1 RL RL + M 14 RL0 = N=0 1 RL RL +M STOP - - algorytm wymaga wykonania o 1 krok więcej niż wynosi liczba mnożonych liczb Dzielenie liczb w zapisie stałopozycyjnym: o Dzielenie liczb w zapisie zmiennoprzecinkowym jest działaniem bardziej złożonym od mnożenia ze względu: nie zawsze musi być działaniem wykonywalnym dzielna musi być odpowiedniej długości, aby iloraz miał pożądaną długość w algorytmie dzielenia wykonuje się operacje dodawania, odejmowania i przesunięcia w lewo Reprezentacja zmiennoprzecinkowa liczb: binarny zapis liczb zmiennoprzecinkowych składa się z 3 części zapisanych w oddzielnych polach n – bitowe pole znaku n – bitowe pole części ułamkowej zwanej mantysą S m – bitowe pole części wykładnika zwane cechą E o Stosując przyjęte oznaczenia dowolną liczbę A można przedstawić: A = + (-) S * B+ (-)E ,gdzie S – mantysa , E – cecha , B – podstawa wykładnika (zwykle 2; 10;16) o Jeżeli 1/B S 1 , to S – znormalizowana i wtedy S = 0,1s-2 s-1...s-n Zakres obliczeń zmiennoprzecinkowych: - niech będzie dane 32 – bitowe słowo standardu IEEE. Przyjmujemy, że jest 32 = 1 + 23 + 8 = 1 + n + m (n – długość mantysy, m – długość cechy) - przy tych założeniach w 1 słowie można zapisać najmniejszą liczbę : -(1-2-24)*2127 - graficznie nie można przedstawić liczb bliskich 0 - zakres zmiennoprzecinkowych reprezentacji liczb jest znacznie większy niż w reprezentacji stałoprzecinkowej] Własności zmiennoprzecinkowej reprezentacji liczb; - zmiennoprzecinkowa prezentacja liczb jest obecnie dominującym sposobem przedstawiania liczb w systemie komputerowym - w reprezentacji zmiennoprzecinkowej zwiększenie długości mantysy wpływa na zwiększenie dokładności obliczeń (zmniejszenie rozdzielczości) - w reprezentacji zmiennoprzecinkowej zwiększenie cechy wpływa na zwiększenie zakresu prezentowanych liczb 15 Komputer VAX 11 Mikroprocesor Intel Standard IEEE 754 Słowo 32 80 64(32) Znak 1 1 1 Cecha 23 64 48(23) Mantysa 8 15 45(8) Dodawanie i odejmowanie liczb zmiennoprzecinkowych; wymaga wykonania procedury wyrównania cech(wykładników) wyrównanie odbywa się w ten sposób, ze mniejsza cecha 1 z dodawania (odejmowania) liczby jest zwiększana do wyrównania z 2 - zwiększenie cechy powoduje konieczność odpowiedniego zmniejszenia mantysy w liczbie, w której korygowana jest cecha o Niech będą dane 2 liczby: A = SA * 2EA i B = SB * 2EB , zakładamy, że EA < EB EB – EA >0 Wtedy A = (S.A. * 2(EA – EB)) * 2EB Mnożenie i dzielenie liczb zmiennoprzecinkowych: - dzięki własnościom funkcji wykładniczej mnożenie i dzielenie liczb zmiennoprzecinkowych nie jest działaniem trudnym - istotnym problemem podczas dokonywania tych operacji jest problem dokładności obliczeń Dokładność przy wykonywaniu działań dla liczb zmiennoprzecinkowych: - w celu poprawy dokładności obliczeń stosuje się tzw. „bity ochrony”, polega to na : - do rejestrów, w których podczas obliczeń znajdują się mantysy dołącza się wyzerowane wcześniej bity dodatkowe - wydłużenie w ten sposób mantysy zachowują bity końcowe tracone w innym przypadku podczas operacji przesunięcia związanych z wykorzystaniem działań - przy wykonywaniu działania i normalizacji mantysom przywracana jest ich normalna długość - wpływ na dokładność obliczeń ma problem zaokrąglania o stosuje się 2 techniki: - odwracanie – polega na ignorowaniu najmniej znaczących bitów nie wchodzących do zapisu - zaokrąglanie POJĘCIE SYSTEMU MIKROPROCESOROWEGO: Przetwarzanie informacji za pomocą systemu mikroprocesorowego: - DANE System mp WYNIKI pr og ra m - system komputerowy to złożone urządzenie elektroniczne zawierające co najmniej 1 procesor i pracujące pod nadzorem dostarczonego z zewnątrz programu (ów) sposób działania zależy głównie od dostarczonego oprogramowania o w skład CPU wchodzą: mikroprocesor, zegar, sterownik (magistrala opcjonalnie); koprocesor ( opcjonalnie, np.: arytmetyczny) zadaniem CPU jest przetwarzanie informacji i sterowanie pracą pozostałych elementów systemu mikroprocesorowego steruje pracą układów systemowych zegar – wytwarza przebiegi czasowe niezbędne do systemu sterownik magistral (jest niezbędny, gdy w systemie jest więcej niż 1 procesor) wytwarza sygnały sterujące układami pamięci i układami WE, WY koprocesor – wspomaga pracę procesora w przetwarzaniu czasochłonnych operacji MEM – pamięć operacyjna wykonana jako półprzewodnikowa, służy do: 16 przechowywania ciągu instrukcji dostarczanych do procesora, stanowiących program 2. przechowywania danych do programu 3. przechowywania wyników działania programu Przechowywanie informacji może być wykonane w technologii: RAM – pamięć ulotna, tracąca informacje w momencie wyłączenia zasilania, przeznaczona do zapisu i odczytu – stanowi główną część pamięci operacyjnej ROM – pamięć stała przechowuje informacje nawet po wyłączeniu zasilania – możliwy tylko odczyt informacji, zawiera BIOS I/O – układy WE i WY przeznaczone do pośredniczenia w wymianie informacji między procesorem i pamięcią, a urządzeniami zewnętrznymi o Potrzeba stosowania układów WE i WY: dostosowanie poziomów sygnałów elektronicznych potrzeby sterowania przepływem informacji dostosowania szybkości transmisji przygotowanie odpowiedniego formatu informacji Magistrala – zestaw linii oraz układów przełączających, łączących 2 lub więcej układów mogących być nadajnikami lub odbiornikami informacji, przesyłanie informacji zachodzi zawsze pomiędzy 1 układem będącym nadajnikiem, a dokładnie 1 układem będącym odbiornikiem, przy pozostałych układach odseparowanych od linii przesyłających DB – magistrala danych – dwukierunkowa – łączy procesor z innymi układami – jest przeznaczona do przesyłania danych wyników oraz kodów instrukcji AB – magistrala adresowa – jednokierunkowa – przesyła adresy generowane przez procesor – jest przeznaczona do przesyłania adresów komórek pamięci lub układów WE – WY CB – magistrala sterująca – stanowi zestaw linii sterujących pracą układów współpracujących z procesorem i sygnalizowania jego stanów Akumulator – rejestr, do którego ładowany jest 1 z argumentów wykonywanej operacji, a następnie wynik tej operacji w nowych typach procesora w celu przyspieszenia pracy wynik operacji może być umieszczony także w innych rejestrach o Rejestr flagowy – rejestr zawierający informacje o wyniku wykonanej operacji informacja to znak wyniku, nadmiar, parzystość, itp. znacznikami stanu są poszczególne bity rejestru flagowego znaczniki stanu są wykorzystywane do tworzenia rozgałęzień w programie o Licznik rozkazów – rejestr procesora zawierający adres komórki, w której przechowywany jest kod rozkazu przeznaczonego do wykonania jako następujący: licznik rozkazu – PC – jest też „wskaźnik instrukcji” – IP po pobraniu przez procesor kolejnego rozkazu zawartość licznika zasadniczo powiększa się o 1 w poszczególnych przypadkach w wyniku działania specjalnych rozkazów wartość powiększa się o Stos – wyróżniony obszar pamięci używany wg. następujących reguł: informacje zapisywane są na stos do kolejnych komórek (żadnego adresu nie można pominąć) odczytujemy informacje w kolejności odwrotnej do zapisu informacje odczytujemy z ostatnio zapełnionej komórki, natomiast zapisujemy do 1 wolnej często przeznaczony jako LIFO wskaźnikiem stosu nazywamy rejestr zawierający adres komórki stosu (wierzchołka stosu) w zależności od typu procesora stos buduje się w kierunku adresów rosnących lub malejących – wskaźnik stosu zwiększa się lub zmniejsza dla wykorzystania stosu nie jest to istotne klasyczne zastosowanie stosu to zapamiętanie miejsca powrotu z podprogramu Uniwersalne rejestry robocze: każdy procesor dysponuje pewną liczbą rejestrów roboczych ogólnego przeznaczenia, służą one najczęściej do przechowywania: wyników operacji adresów pełni funkcje liczników itp. w procesorze I 8080 para rejestrów HL służy do rejestrowego trybu adresowania pamięci Fazy cyklu rozkazowego: w celu przyspieszenia pracy systemu stosuje się modyfikację cyklu rozkazowego 1. - - - - - 17 - Prefechting – jego realizacja wymaga odpowiedniej budowy procesora umożliwiającej równoległą pracę jednostek CU i EU rozwiązaniem jest praca pętlowa Cykl rozkazowy: PC 00 IR MEM(PC PC PC + 1 DEK IR DEK = HALT Czy rozkaz wielorozk Wykonanie IR 18 Lista rozkazów mikroprocesora: rozkazem nazywamy najprostszą operację, której wykonania programista może zażądać od procesora listą rozkazów nazywamy zestaw wszystkich instrukcji maszynowych (rozkazów, jakie potrafi wykonać dany procesor o Wyróżniamy rozkazy: - przesłań - arytmetyczne i logiczne - sterujące (skoki, wywołania, pętla, itp.) - inne (np.: sterowanie koprocesorem) Charakter rozkazów: o Przesłań: - są najczęściej wykonywane - nie zmieniają wartości informacji - zalicza się do nich operacje na stanie oraz operacje WE i WY o Arytmetyczno – logiczne: - zmieniają wartość informacji - oprócz rozkazów wykonujących podstawowe operacje arytmetyczne i logiczne należą do nich rozkazy przesuwania cyklicznego i porównania o Sterujące: - pozwalają zmieniać kolejność instrukcji wykonania operacji - robią do nich warunkowe i bezwarunkowe skoki, wywołania podprogramu oraz pętle - inne rozkazy w tym sterujące pracą procesora Format rozkazu; - nazywamy sposób rozmieszczenia informacji w kodzie rozkazu - musi zawierać określenie rodzaju wykonywanej operacji - jest to kod operacji – musi on być zapisany w 1 części rozkazu - może zawierać operandy lub adresy operandów (dodawanie argumentów i wyników) - tryb adresowanie – sposób określenia przechowywania argumentów rozkazu Tryby adresowania: o Natychmiastowe i bezpośrednie: - polega na tym, że argument zawarty jest w kodzie rozkazu - bezpośrednie polega na tym, że kod rozkazu zawiera adres komórki pamięci, w której przechowywany jest argument o Rejestrowe i pośrednie: - rejestrowe polega na tym, że w kodzie rozkazu określany jest rejestr zawierający argument - pośrednie polega na tym, że kod rozkazu zawiera określenie rejestru, w którym znajduje się adres komórki pamięci zawierającej argument o Indeksowe z przemieszczeniem: - polega na tym, że adres argumentu przechowywanego w pamięci jest obliczany jako suma zawartości rejestru określonego w kodzie rozkazu i wartości umieszczonej w kodzie rozkazu, a zwanej „przemieszczeniem” - - PAMIĘCI OPERACYJNE Najważniejsze parametry to: pojemność – określa się podając liczbę słów i długość słowa szybkość – określa się jak często procesor może z niej korzystać, często określa się szybkość: czas dostępu, cyklu, szybkość transmisji czas dostępu – jest to czas, jaki upływa od momentu zażądania informacji z pamięci do momentu, w którym ta informacja ukaże się na WY pamięci, dla pamięci operacyjnej wynosi od 20 ns do 200 ns czas cyklu – jest to najkrótszy czas, jaki musi upłynąć pomiędzy 2 żądaniami dostępu do pamięci szybkość transmisji – mierzy się liczbą bitów, jaką można przesłać w jednostce czasu pomiędzy pamięcią, a innym urządzeniem szybkość transmisji jest szczególnie ważna dla pamięci, w których adresuje się fragmenty większe niż słowo pamięci półprzewodnikowe mogą pracować z różnymi prędkościami z wolniejszych pamięci buduje się pamięci operacyjne, a z szybszych – kieszeniowe Hierarchia pamięci komputera: Tworzy się od góry porządkując pamięci najszybszych, ale przy tym o najmniejszej pojemności od najwolniejszych i równocześnie największej pojemności, w ten sposób otrzymujemy pamięci: 19 1. 2. 3. 4. 5. 1. 2. 3. 4. - - - - operacyjną kieszeniową rejestrową masową zewnętrzną Sposób dostępu do informacji: bezpośredni cykliczny sekwencyjny asocjacyjny Pamięci półprzewodnikowe cyfrowe układy scalone przeznaczone do przechowywania większych ilości informacji w postaci binarnej Pamięci o dostępie swobodnym: pamięć, dla której czas dostępu praktycznie nie zależy od adresu słowa w pamięci, czyli od miejsca, w którym jest przechowywana informacja Pamięci z dostępem swobodnym: inaczej RAM, są to pamięci matrycowe, gdzie matryca elementów jest nośnikiem informacji – dzielimy je na: ROM – jednokrotnie zapisywalne (read only memory) RAM – wielokrotnie zapisywalne (random access memory) Innego rodzaju pamięci: z dostępem cyklicznym, dzielimy je na 2 grupy: 1. z nieruchomym nośnikiem (zbudowane przy pomocy rejestrów przesuwających) 2. z ruchomym nośnikiem (kinetyczne pamięci magnetyczne – dyski) Pamięci z dostępem sekwencyjnym są pamięciami: na taśmach magnetycznych informacje zapisywane są w kolejności przychodzenia porcje danych nazywa się blokiem lub rekordem odczyt dokonuje się przez wskazanie numeru rekordu są nazywane pamięciami adresowanymi zawartością o Pamięci można podzielić ze względu na sposób wybierania (taktowania) elementów z tablic na: pamięci z 1 WE wybierania (typu 2 D) wybieranie polega na tym, że WE są połączone wierszami, a końcówki danych kolumnami, gdy na WE pojawi się sygnał 1 z n wybrana jest komórka wzmacniacze na linii danych są sterowane sygnałem R/W wadą jest konieczność sterowania rozbudowanego dekodera WE pamięci z 2 WE wybierania (typu 3 D) element pamięci jest aktywny, gdy na WE wybierania pojawią się sygnały mają prostszą budowę, ale dłuższy czas dekodowania adresu Podział pamięci RAM: pamięci statyczne – SRAM (static memory), jej cechy: duża szybkość pracy, niewielka pojemność, duży pobór mocy, typowe zastosowanie – pamięci kieszeniowe pamięci dynamiczne – DRAM (dynamic memory), jej podstawowym elementem są kondensatory, jej cechy: duża pojemność, mały pobór mocy, wymagają odświeżania, typowe zastosowanie – pamięci operacyjne PROM (programmable ROM) – pamięć nie tracąca zawartości, jednokrotnie zapisywalne UVEPROM – pamięć kasowana promieniowaniem ultrafioletowym EEPROM – pamięć kasowana elektronicznie NVRAM – pamięć, w której w 1 obudowie scalono RAM i EEPROM, a w normalnym trybie pracuje RAM, a pod wpływem odpowiedniego sygnału zawartość RAM jest przepisywana do EEPROM Łączenie układów pamięci: budowa banków pamięci polega na łączeniu układów pamięci o określonej pojemności i organizacji, aby w ten sposób uzyskać zespoły pamięci o większej pojemności lub zmienionej długości słowa występują 2 podstawowe przypadki: zwiększenie (rozszerzenie) długości słowa przy niezmienionej ilości słów zwiększenie ilości słów przy niezmienionej długości słowa Inne funkcje realizowane przez bloki pamięci; ochrona przed utratą zawartości w przypadku zaniku napięcia sygnał z zasilacza o zaniku napięcia jest podawany jako przerwanie o najwyższym priorytecie (obsługa zapamiętanie stanu procesora i włączenie baterii) lub można stosować pamięć NVRAM 20 Praca z przeplotem; przyspiesza dostęp do pamięci – polega na tym, że dostęp do banku i 1 rozpoczyna się zanim jeszcze zakończono dostęp do banku i Pamięć dwubramowa:- jest głównie wykorzystywana w systemach wieloprocesorowych, polega na tym, że do pamięci jest podwójne WE Pamięć kieszeniowa: - zjawisko lokalności (locality) - podczas wykonywania programu kolejne odwołania do pamięci zachodzą zwykle w pewnym niewielkim obszarze, który pokrywa się najczęściej z miejscem ulokowania programu, programy rzadko odwołują się do odległych obszarów pamięci - do pamięci o dużej pojemności zbudowanej z kości pamięci dynamicznej dodaje się względnie niewielką, ale szybką pamięć statyczną zdolną do zapamiętywania jedynie fragmentu pamięci operacyjnej, pamięć ta nazywa się pamięcią kieszeniową (cache memory) Pamięć z dostępem cyklicznym (direct access memory) - pamięć, w której każda komórka pamięci jest dostępna dla otoczenia tylko w pewnym, określonym przez zegar i powtarzanym okresowo momencie - są realizowane jako pamięci dyskowe lub pamięci na rejestrach przesuwających - wykorzystuje się jako pamięci masowe lub buforowe - w tej pamięci informacja ma WE i WY jest zwykle w postaci szeregowej Pamięci dyskowe: - zbudowane w ten sposób, że na cylindrycznych wirujących powierzchniach rozmieszczone są ścieżki podzielone na sektory - informacje przechowywane są w blokach znajdujących się w sektorach URZĄDZENIA ZEWNĘTRZNE: Podział urządzeń WE – WY: o Można podzielić na: - urządzenia pracujące w trybie znakowym - urządzenia pracujące w trybie graficznym o można też dokonać innego podziału: - urządzenia operatorskie (human readable) – klawiatura, monitor, drukarki, pióro świetlnie itp. - urządzenia maszynowe (machine readable) – wprowadzające informacje binarną, różnego rodzaju dyski, taśmy i itp. - Urządzenia komunikacyjne połączone ze źródłami informacji – czujniki i sterowniki połączone z komputerem przez przetworniki – cyfrowe (A/D) i (D/A) Przyłączenie urządzenia WE i WY: - są dołączone do magistrali systemowej za pośrednictwem odpowiednich sterowników (controller) - zadanie sterownika polega na dostosowaniu łącza do magistrali systemowej - sterownik przyjmuje polecenie obsługi do urządzenia zewnętrznego oraz procesora - wykonanie polecenia obsługi dostępu polega na wykonaniu specjalnego programu - procesor zgłasza żądanie dostępu do urządzenia wysyłając na magistralę adresową odpowiedni adres - dane i rozkazy sterownik przesyła przez magistralę danych Współpraca sterownika z procesorem: o Współpracują ze sobą w 3 krokach: 1. procesor wykonując rozkaz dostępu do urządzenia WE i WY wysyła adres na magistralę adresową 2. wszystkie sterowniki dekodują wysłany adres i tam sterownik, który rozpozna swój adres przechodzi w stan aktywny (ewentualnie przesyłanie parametrów transmisji) 3. następuje przesyłanie informacji Transmisje mogą być: - znakowe, jeśli przesyłany jest bajt - blokowe, jeśli przesyłany jest ciąg bajtów Transmisje znakowe: - urządzenia realizujące transmisję znakową nazywamy urządzeniami znakowymi - urządzenia znakowe są wolne (np.: wydrukowanie znaku może trwać tyle, co wykonanie 10 000 rozkazów przez procesor) - dla synchronizacji pracy procesora z wolnym urządzeniem zewnętrznym stosuje się: 1. programową obsługę urządzeń zewnętrznych 2. współpracę polegającą na przerwaniach (interrupt) pracy komputera Transmisje blokowe: - są znacznie szybsze niż znakowe - zachodzą pomiędzy procesorem, a urządzeniem - 21 - - - - - - - te transmisje mogą być realizowane: 1. pod nadzorem procesora, który wykonuje program kolejnego odczytywania komórek pamięci i przesyłania ich do urządzenia 2. pod nadzorem innego układu, który generuje adresy i sygnały synchronizujące dla procesora i urządzeń Sytuacje wyjątkowe: zdarzenia przerwania wykonania właściwego programu przez procesor i wywołanie odpowiedniego programu reakcji na te zdarzenia, mogą to być: 1. powstałe w wyniku działania programu wykonywanego przez procesor 2. przechodzące z układów współpracujących z procesorem błędy adresowania Zdarzenia niezamierzone: błędy adresowania błędy rozkazowe błędy argumentu Zdarzenia zamierzone: praca krokowa praca w trybie śledzenia praca w trybie pułapki Sytuacje wyjątkowe pochodzące z układów współpracujących z procesorem: o Błędy wykryte w różnych miejscach komputera przez specjalne układy detekcji błędów: błąd na magistrali – żądanie dostępu do zabronionego obszaru błąd transmisji – wykrycie różnicy danych wysyłanych i dostarczanych błąd zasilania – układ elektroniczny stwierdza brak napięcia o Zdarzenia służące synchronizacji pracy procesora z urządzeniami znacznie wolniejszymi od niego, informujące go o swojej gotowości do pracy Systemy przerwań: o Zasady obsługi przerwań: programowa obsługa urządzeń WE – WY polega na okresowym sprawdzaniu przez system operacyjny stanu wszystkich sterowników wydłuża czas wykonania podstawowego programu zastosowanie w tańszych i prostszych komputerach Sprzętowy sposób obsługi przerwań: polega na tym, że procesor odbiera sygnał o powstałym zdarzeniu komputer musi być wyposażony w odpowiednie układy realizujące ten proces zastosowanie w droższych, bardziej złożonych systemach Zdarzenia systemowe przerwań: 1. rozpoznanie źródła przerwania 2. zapewnienie odpowiedniej kolejności obsługi wielu urządzeń, które mogą jednocześnie żądać takiej obsługi Programowa obsługa urządzeń WE – WY polega na tym, że: oprogramowanie systemowe co pewien czas powoduje przerwanie wykonania właściwego programu i dokonuje sprawdzania stanu wszystkich sterowników urządzenia nie występuje problem rozpoznania urządzenia, bo procesor wysyłając adresy urządzeń wie, które z nich sprawdza priorytetowy (priority) – system przerwań określa w tym przypadku kolejność obsługi wielu zgłoszeń przerwań przy obsłudze wielopoziomowej system przerwań procesora zapamiętywany jest zwykle na stosie Sprzętowy system przerwań: polega na zgłoszeniu przez sterownik urządzenia, sygnału przerwania do specjalnego układu przerwań, 2 z układ przerwań powiadamia procesor o zgłoszeniu dalsza obsługa przerwania może być w tym przypadku sprzętowa lub programowa w przypadku programowej obsługi przerwań procesor przerywa program główny i rozpoczyna program przeglądania stanu urządzeń – taki sposób pracy nazywany jest przerwaniem z przeglądaniem (poll and interput) Sprzętowy system przerwań: o w przypadku dalszej sprzętowej obsługi przerwań układ przerwań musi zrealizować następujące zadania: rozróżnienie źródła przerwania polegające na przesłaniu procesorowi numeru (adresu) urządzenia żądającego przerwania wyznaczenie kolejności obsługi urządzeń 22 - - - - - podczas rozpoznania źródła zgłaszającego przerwanie układ przerwań tworzy słowo w kodzie NKB zwane „wektorem przerwań” wektor przerwań wykorzystywany jest przy tworzeniu adresu początku programu obsługi urządzeń kolejność obsługi urządzeń jest ustalana na podstawie priorytetów urządzeń zgłaszających przerwanie Typy sprzętowego systemu przerwań: o Łańcuchowy: rozstrzygnięcie o kolejności (priorytecie) obsługi urządzeń następuje poprzez umiejscowienie sterownika w łańcuchu sterownik zgłaszający przerwanie wysyła swój numer na magistralę danych układ przerwań może być w stanie oczekiwania na przerwanie albo w stanie obsługi przerwania układ rejestruje zgłoszenie przerwania, a następnie sam znajduje, koduje i wysyła na magistralę numer urządzenia o najwyższym priorytecie Sterownik urządzeń zewnętrznych: (układ WE – WY) nazywamy układ elektroniczny pośredniczący w wymianie informacji pomiędzy procesorem i pamięcią z 1 strony, a urządzeniem zewnętrznym (peryferyjnym) z 2 strony dla systemu komputerowego sterownik urządzeń zewnętrznych widoczny jest jako rejestr lub zespół rejestrów o określonych adresach oraz pewien zestaw sygnałów sterujących Rodzaje sterowników: każdemu sterownikowi przyporządkowany jest adres jeżeli sterownik ma wiele rejestrów, to przyporządkowuje mu się więcej niż 1 adres stosuje się 2 sposoby umieszczania sterowników w przestrzeni wektorowej wspólnie z pamięcią operacyjną (w tym przypadku dostęp do urządzenia zapewniają rozkazy dostępu do pamięci) oddzielenie jako 2 odrębne obszary adresowania (w tym przypadku dostęp do urządzenia zapewniając obszary WE – WY) jeżeli linia danych sterowników składa się z wielu pojedynczych linii danych (najczęściej 8 lub więcej), to wtedy mówi się, że transmisja zachodzi równolegle, a sterownik nazywamy sterownikiem łącza równoległego jeżeli linia danych sterowników składa się z pojedynczej linii danych (najczęściej 8 lub więcej), to wtedy mówi się, że transmisja zachodzi szeregowo, a sterownik nazywamy sterownikiem łącza szeregowego jeżeli transmisje w łączu mogą zachodzić w obu kierunkach równocześnie, to łącza nazywamy dupleksowym jeżeli transmisja w łączu może zachodzić w obu kierunkach w rozdzielonym czasie, to łącze nazywamy pół dupleksowym PROCESORY RODZINY INTEL 8080 - - Pentium: 64 – bitowa magistrala danych 32 – bitowa magistrala adresowa o Praca w 3 trybach: rzeczywisty chroniony tryb wirtualny tryb wirtualny 8086 o Architektura superskalarna: praca potokowa 2 potoki przetwarzania instrukcji stałopozycyjnych o Sprzętowe mechanizmy ułatwiające projektowanie systemu wspomagające: pamięć wirtualną pracę wielozadaniową ochronę zasobów o Przewidywanie realizacji rozgałęzień programu o Segmentacja i stronicowanie pamięci o Wewnętrzna jednostka arytmetyki zmiennoprzecinkowej pracująca w trybie potokowym o 2 wewnętrzne rozdzielone pamięci podręczne (cache): pamięć cache dla danych pamięć cache dla kodu programu o Możliwość współpracy z pamięcią cache 2 – go poziomu 23