Pobierz Procesory 1 Procesor – budowa, schemat, tryby pracy i więcej Egzaminy w PDF z Linux tylko na Docsity! Procesory 1 Procesor – budowa, schemat, tryby pracy Procesor (ang. processor), także CPU (ang. Central Processing Unit) – to główny element komputera, urządzenie cyfrowe sekwencyjne, którego zadaniem jest wykonywanie rozkazów i sterowanie pracą wszystkich pozostałych bloków systemu (m.in. pamięci i układów wejścia-wyjścia). Procesor przetwarza informacje, wykonując na niej elementarne operacje zwane instrukcjami maszynowymi (bądź rozkazami). Ciąg takich instrukcji realizujący konkretne zadanie przetwarzania informacji nazywamy programem. Do systemu mikroprocesorowego oprócz danych wejściowych musimy więc dostarczyć także program lub zestaw programów, czyli oprogramowanie (ang. software). W przypadku systemu mikroprocesorowego sposób przetwarzania informacji jest określony głównie przez oprogramowanie. Ułatwia to w razie potrzeby zmianę sposobu przetwarzania informacji. Procesory (zwane mikroprocesorami) wykonywane są zwykle jako układy scalone zamknięte w hermetycznej obudowie, często posiadającej złocone wyprowadzenia (stosowane ze względu na odporność na utlenianie). Ich sercem jest monokryształ krzemu, na który naniesiono techniką fotolitografii szereg warstw półprzewodnikowych, tworzących, w zależności od zastosowania, sieć od kilku tysięcy do kilkuset milionów tranzystorów. Połączenia wykonane są z metalu (aluminium, miedź). Wszystkie mikroprocesory zawierają podobne elementy: 1. układ sterowania i synchronizacji, który kontroluje pracę procesora i wytwarza sygnały potrzebne do sterowania niektórymi elementami komputera. 2. arytmometr, czyli układ, który wykonuje operacje arytmetyczne i logiczne (niektóre procesory mają kilka arytmometrów). 3. rejestry, tj. układy pamięci. 4. wbudowana pamięć podręczna cache, która działa podobnie do zewnętrznej pamięci RAM. Zapewnia ona, że procesor nie jest zmuszony czekać na dane potrzebne mu do pracy. 5. koprocesor matematyczny, który jest zestawem instrukcji przeznaczonych do obsługi skomplikowanych operacji matematycznych. 6. wewnętrzne szyny łączące elementy procesora. Procesory 2 Schemat blokowy procesora 2: OZNACZENIA RAM (Random Acces Memory) - pamięć operacyjna BU (Bus Unit) - układ zarządzający magistralami AU (Addresing Unit) - układ obliczania adresu połączony z MMU (Memory Management Unit) układem zarządzania pamięcią IU (Instruction Unit) - dekoder instrukcji EU (Execution Unit) -moduł wykonawczy zawiera ALU (Aritmetic-Logic Unit) jednostkę arytmetyczno-logiczną FPU (Floating Point Unit) jednostkę zmiennoprzecinkową ALU - układ ten jest często nazywany układem wykonawczym procesora, ponieważ wykonuje on większość rozkazów zlecanych procesorowi. Blok ALU jest układem, który realizuje różne funkcje w zależności od zaprogramowanej operacji, tj. rozkazu umieszczonego w programie. Argumentami tych rozkazów są słowa binarne. Rozkazy te mogą dotyczyć operacji arytmetycznych (dodawanie i odejmowanie) lub logicznych (sumowanie, mnożenie itp.). Rejestry: Zarówno jednostka arytmetyczno-logiczna jak i układ sterowania musi współpracować z określonym zestawem rejestru. Zawartość pewnej części rejestru może być zmieniona w wyniku wykonania przez procesor określonej instrukcji. Rejestry takie nazywamy rejestrami dostępnymi programowo. W grupie tych rejestrów występują takie typy rejestrów, których Procesory 5 Tryb chroniony: Pierwszym procesorem 32-bitowym przeznaczonym dla komputerów PC i wprowadzonym do sprzedaży był układ 386. Procesor ten mógł wykonywać zupełnie nowy zestaw instrukcji 32-bitowych. Aby w pełni wykorzystać taką możliwość, konieczne było stworzenie odpowiedniego 32-bitowego systemu operacyjnego i aplikacji. Nowy, 32- bitowy tryb pracy procesora został określony terminem trybu chronionego (ang. protected mode). Nazwa wywodzi się stąd, że programy działające w tym trybie otrzymują własny obszar pamięci, przez co nie dochodzi między nimi do konfliktów. Tego typu ochrona sprawia, że system jest o wiele bardziej stabilny, ponieważ programy zawierające błąd nie mogą w prosty sposób zaszkodzić innym programom lub systemowi operacyjnemu. Poza tym program, który się zawiesił, może być usunięty z pamięci bez szkody dla reszty systemu. Jest to zatem tryb pracy mikroprocesorów serii x86 wprowadzony w mikroprocesorze Intel 80286. Tryb chroniony umożliwia adresowanie pamięci w większym zakresie niż 1 MB (tryb rzeczywisty), wprowadza wiele nowych udogodnień wspierających wielozadaniowość, takich jak: sprzętowa ochrona pamięci (układ MMU), wsparcie przełączania kontekstu procesora i wiele innych. Większość nowoczesnych systemów operacyjnych wykorzystuje procesory serii x86 właśnie w trybie chronionym. Zaliczają się do nich m.in.: Linux, Windows w wersji 3.0 i wyższych, systemy z rodziny BSD. *Tryb chroniony został wprowadzony do mikroprocesora Intel 80286 wraz z trybem rzeczywistym (ang. real mode) dla zachowania zgodności z poprzednimi mikroprocesorami rodziny x86. W mikroprocesorze Intel 80286 w trybie chronionym 16-bitowe rejestry segmentowe CS, SS, DS, ES zawierają selektory, które jednoznacznie określają deskryptor (8- bajtowa struktura w pamięci) opisujący segment. Deskryptor dysponuje następującymi informacjami o segmencie: fizyczna lokalizacja segmentu w pamięci (24-bitowy adres bazowy, 16-bitowa długość segmentu w bajtach), prawa dostępu do segmentu i numer uprawnienia segmentu. W odróżnieniu od trybu chronionego w trybie rzeczywistym rejestry segmentowe CS, SS, DS, ES zawierają adresy bazowe (początków) segmentów. Procesor zaczyna pracę w trybie chronionym po ustawieniu bitu PE (ang. Protection Enable) na jeden, wyzerowanie tego bitu powoduje powrót do trybu rzeczywistego (bit PE to najmłodszy bit rejestru CR0 (ang. Control Register)). Tryb chroniony jest właściwym trybem pracy procesorów rodziny IA-32. Zapewnia on największą wydajność systemu; są w nim dostępne wszystkie instrukcje i mechanizmy procesora. Praca w tym trybie jest zalecana dla wszystkich nowych aplikacji i systemów operacyjnych. Dla zapewnienia zgodności programowej, bez utraty kontroli nad całym systemem (ochrona zasobów, wielozadaniowość itp.), wprowadzono możliwość uruchamiania programów trybu rzeczywistego bez potrzeby przełączania trybu pracy na rzeczywisty. Ta właściwość jest określana jako tryb wirtualny, i często jest nazywana kolejnym trybem pracy procesora. Tryb wirtualny jest właściwie 'pod-trybem' trybu chronionego i może być włączony poprzez ustawienie odpowiedniej flagi przez dowolne zadanie. Tryb wirtualny: Tryb wirtualny (zwany także V86 lub Virtual 8086) — to specjalny tryb pracy procesorów o architekturze IA-32, dostępny w trybie chronionym, który umożliwia Procesory 6 uruchamianie programów przeznaczonych dla trybu rzeczywistego. W trybie wirtualnym symulowane jest działanie analogiczne dla procesora Intel 8086 (faktycznie można uruchamiać kod także dla 8088, 80186 i 80188), tzn. otrzymuje dostęp do 1 MB pamięci i rejestrów procesora i może wykonywać te rozkazy, które mają sens w takim otoczeniu. Tryb ten bywa nazywany wirtualnym trybem rzeczywistym. Jednak w odróżnieniu od "prawdziwego" trybu rzeczywistego, wszelki dostęp do portów procesora jest sankcjonowany przez system operacyjny pracujący w trybie chronionym. W trybie wirtualnym procesor wykorzystuje swoje pełne możliwości. Używa 24 bitów adresu, co pozwala zaadresować 16 MB fizycznej pamięci. Ponadto dostępne są sprzętowe mechanizmy wspomagające obsługę pamięci wirtualnej, pracy wielozadaniowej i ochrony zasobów. Tryb ten jest kluczem do zgodności 32-bitowego środowiska Windows i właściwie jest trybem wirtualnym środowiska 16-bitowego działającego w 32-bitowym trybie chronionym. Po uruchomieniu w systemie Windows sesji DOS jest wykorzystywany tryb wirtualny. Dzięki wielozadaniowości oferowanej przez tryb chroniony właściwie możliwe jest uruchomienie kilku sesji w trybie rzeczywistym, w których działają programy na zasadzie pracy w wirtualnych komputerach. Programy te mogą działać jednocześnie, nawet gdy są uruchomione aplikacje 32-bitowe. *Należy zauważyć, że dowolny program działający w trybie wirtualnym ma dostęp tylko do 1 MB pamięci, co spowoduje, że będzie "przekonany o tym", że jest to pierwszy i jedyny megabajt pamięci dostępnej w systemie. Inaczej mówiąc, jeśli aplikacja napisana dla systemu DOS zostanie uruchomiona w trybie wirtualnym, będzie miała do dyspozycji tylko 640 kB. Takie ograniczenie wynika stąd, że w przypadku 16-bitowego środowiska pracy jest dostępny tylko 1 MB pamięci RAM, z czego 384 kB jest zarezerwowane dla samego systemu. Tryb wirtualny w pełni emuluje środowisko pracy procesora 8088, dlatego też aplikacje działają tak, jakby były uruchomione w komputerze oferującym tylko faktyczny tryb rzeczywisty. Każda wirtualna maszyna korzysta z własnej 1-megabajtowej przestrzeni adresowej, w której znajduje się obraz rzeczywistych funkcji systemu BIOS odwołujących się do urządzeń i emuluje wszystkie pozostałe rejestry oraz funkcje występujące w trybie rzeczywistym. Tryb wirtualny jest wykorzystywany w momencie uruchomienia, w oknie sesji DOS, 16-bitowego programu stworzonego dla systemu DOS lub Windows 3.x. Po uruchomieniu takiego programu system Windows tworzy wirtualną maszynę DOS, która przejmuje jego obsługę. Wielozadaniowość – Multitasking, która cechuje systemy Windows, pozwala na współbieżne wykonywanie wielu procesów na raz. Zwykle za poprawną realizację wielozadaniowości odpowiedzialne jest jądro systemu operacyjnego. Wielozadaniowość zapewniona jest między innymi przez planistę, czyli część systemu operacyjnego realizującą algorytm szeregowania zadań w kolejce do przyznania czasu procesora. Równoczesność jest pozorna. Dla uzyskania wrażenia wykonywania wielu zadań jednocześnie, konieczne staje się dzielenie czasu. Procesory 7 Systemy wielozadaniowe można podzielić na oferujące i nie oferujące wywłaszczania W systemach z wywłaszczaniem może nastąpić przerwanie wykonywania procesu, odebranie mu procesora i przekazanie sterowania do planisty. Pełne wywłaszczanie zapewniają mechanizmy sprzętowe działające niezależnie od oprogramowania (na przykład przerwanie zegarowe). W systemach bez wywłaszczania procesy powinny same dbać o sprawiedliwy podział czasu, co często uzyskuje się pośrednio - proces dokonując wywołania systemowego, oddaje sterowanie procesowi jądra, lub jednemu z procesów systemowych i w ten sposób zrzeka się procesora. Program nie wykonywany pozostaje "w uśpieniu" do momentu, gdy znów zostanie mu przydzielony czas procesora. Systemami wielozadaniowymi są: systemy z rodziny Uniksów (np. Linux) systemy z rodziny Microsoft Windows (np. Microsoft Windows 95) Mac OS i jego następca Mac OS X Nie jest: DOS (może być więcej niż jeden proces, ale tylko jeden będzie wykonywany) Proces - to jedno z najbardziej podstawowych pojęć w informatyce. Z definicji jest to po prostu egzemplarz wykonywanego programu. Należy odróżnić jednak proces od wątku - każdy proces posiada własną przestrzeń adresową, natomiast wątki posiadają wspólną sekcję danych. Wątek (ang. thread) - to jednostka wykonawcza w obrębie jednego procesu, będąca kolejnym ciągiem instrukcji wykonywanym w obrębie tych samych danych (w tej samej przestrzeni adresowej). Wątki tego samego procesu korzystają ze wspólnego kodu i danych, mają jednak oddzielne stosy. W systemach wieloprocesorowych, a także w systemach z wywłaszczaniem, wątki mogą być wykonywane równocześnie (współbieżnie). Równoczesny dostęp do wspólnych danych grozi utratą spójności danych, i w konsekwencji błędem działania programu. Każdemu procesowi przydzielone zostają zasoby, takie jak: procesor pamięć dostęp do urządzeń wejścia-wyjścia pliki Procesory 10 Cechy wielowątkowości wszystkie wątki wykonują się w ramach tylko jednego programu (procesu) - to znaczy, że wykonują ten sam kod wykonawczy (przykładowo: w systemach Unix/Linux każdemu wątkowi przydziela się konkretną funkcję do wykonania) wątki zostały wprowadzone aby zwiększyć wydajność w programowaniu współbieżnym, gdzie zachodzi potrzeba wykonania wielu zadań jednocześnie; wszystkie wątki procesu współdzielą tą samą wirtualną przestrzeń adresową (mają dostęp to tych samych "egzemplarzy" zmiennych, obiektów i struktur) i korzystają z tych samych zasobów systemowych; komunikacja między wątkami w odróżnieniu od procesów jest bardzo łatwa do wykonania - w przypadku wątków wystarczy odwoływać się do tych samych zmiennych i obiektów - komunikacja między procesami wymaga zastosowania mechanizmów IPC (ang. InterProcess Communication); współdzielenie wirtualnej przestrzeni adresowej niesie duże zagrożenie - jeden "wadliwy" wątek może zagrozić wykonaniu całego programu; każdy wielowątkowy system operacyjny zapewnia specyficzne metody synchronizacji wątków, które z wyżej wymienionych przyczyn należy bezwzględnie zaimplementować. Typy obudów mikroprocesorów Fizycznie mikroprocesor to krzemowa płytka o wielkości około 1 cm 2 . Jest podatna na wpływ czynników zewnętrznych, stąd musi być umieszczona w ochronnej powłoce – ceramicznej, plastikowej lub metalowej. Obudowa ma wyprowadzenia (nóżki lub piny) pozwalające na montaż w płycie głównej. Spotykane obecnie obudowy: PGA – nóżki w kształcie symetrycznej siatki: PPGA – Plastic PGA – do osłony rdzenia wykorzystano plastikową powłokę, CPGA – Ceramic PGA – ceramiczna osłona rdzenia, FC-PGA – rdzeń przeniesiony na górną część obudowy w celu lepszego chłodzenia i zatopiony w plastiku, FC-PGA2 – podobnie jak w FC-PGA, ale dodatkowo rdzeń w plastikowej osłonie przykryto stalowa blaszką. SPGA – rozmieszczenie nóżek w rzędach i kolumnach jest niesymetryczne SECC – specyficzny typ obudowy pochodzący z czasów kiedy nie potrafiono jeszcze umieścić pamięci Cache2 w strukturze rdzenia (Pentium II, III, Athlon). Mikroprocesor przylutowany był do płytki drukowanej wraz z pamięcią Cache L2, a całość w plastikowej obudowie w postaci kartridża. SEPP – podobna do SECC z tą różnicą, że nie ma plastikowej osłony, stosowana w tańszych wersjach typu Celeron, Duron. Procesory 11 LGA – opracowany przez Intel, nóżki zastąpiono pozłacanymi stykami. PGA PGA PPGA CPGA FC-PGA SPGA Procesory 12 SECC SEPP LGA