LEKCJA
Transkrypt
LEKCJA
LEKCJA TEMAT: Współczesne procesory. 1. Wymagania dla ucznia: zna pojęcia: procesor, CPU, ALU, potrafi podać typowe rozkazy; potrafi omówić uproszczony i rozszerzony schemat mikroprocesora; potraf omówić rejestry; potrafi omówić etapy pracy oraz cykle procesora potrafi wymienić typy obudów mikroprocesora oraz typy gniazda - książka strona 61 potrafi omówić rodzaje magistrala - książka strona 64 potrafi omówić rodzaje architektur mikroprocesora – książka strona 67 potrafi podać parametry wpływające na wydajność procesora – książka strona 68 potrafi omówić tryby mikroprocesora – książka strona 69 potrafi wymienić i omówić dodatkowe funkcje mikroprocesora – książka strona 70 potrafi podać co to jest pamięć cache, rodzaje, parametry – książka strona 71 potrafi wyjaśnić zagadnienia: procesory 32 i 64 bitowe oraz wielordzeniowe – książka strona 72 2. Procesor (ang. processor) - urządzenie cyfrowe sekwencyjne potrafiące pobierać dane z pamięci, interpretować je i wykonywać jako rozkazy. Wykonuje on bardzo szybko ciąg prostych operacji (rozkazów) wybranych ze zbioru operacji podstawowych określonych zazwyczaj przez producenta procesora jako lista rozkazów procesora. Procesor wykonywany jest zwykle jako układ scalony zamknięty w hermetycznej obudowie posiadającej złocone wyprowadzenia. Złoto jest konieczne, aby zmniejszyć pojemności pasożytnicze połączeń. Jego sercem jest monokryształ krzemu, na który naniesiono techniką fotolitografii szereg warstw półprzewodnikowych. Tworzą one sieć od kilku do kilkudziesięciu milionów tranzystorów. Połączenia wykonane są z metalu (aluminium, miedź). Ważnym parametrem procesora jest rozmiar elementów budujących jego strukturę. Im są one mniejsze tym niższe jest zużycie energii, napięcie pracy oraz wyższa częstotliwość pracy. Współczesne procesory wykonywane są w technologii pozwalającej na uzyskanie elementów o rozmiarach mniejszych niż 90 nm pracujących z częstotliwością 3,6 GHz. Fabryki procesorów muszą posiadać pomieszczenia o niezwykłej czystości, co jest bardzo kosztowne. 3. Do typowych rozkazów wykonywanych przez procesor należą: kopiowanie danych - z pamięci do rejestru; - z rejestru do pamięci; - z pamięci do pamięci (niektóre procesory); działania arytmetyczne - dodawanie; - odejmowanie; - porównywanie dwóch liczb; - dodawanie i odejmowanie jedności; - zmiana znaku liczby; działania na bitach - iloczyn logiczny – AND; - suma logiczna – OR; - suma modulo 2 (różnica symetryczna) – XOR; - negacja – NOT; - przesunięcie bitów w lewo lub prawo; 4. 5. 6. 7. skoki - bezwarunkowe; - warunkowe; Komputer oprócz procesora głównego (CPU) posiada procesory pomocnicze: obrazu (GPU), dźwięku, koprocesory arytmetyczne. Jednostką arytmetyczno-logiczną (ALU ang. Arithmetic-Logic Unit) nazywa się uniwersalny układ cyfrowy przeznaczony do wykonywania operacji arytmetycznych i logicznych. Zestaw operacji, które potrafi zrealizować ALU, powinna być funkcjonalnie pełne (czyli za jego pomocą jesteśmy w stanie zrealizować dowolny algorytm przetwarzania informacji). Do zestawu operacji wykonywanych przez jednostkę arytmetycznologiczną należą: dodawanie i odejmowanie algebraiczne, przesuwanie bitów słowa w prawo i w lewo, porównywanie wartości dwóch słów, operacje iloczynu i sumy logicznej, negacji i alternatywy wykluczającej. Aby możliwe było dokonanie wyboru operacji realizowanej w danym momencie przez ALU, musi ona zawierać zestaw wejść zwanych sterującymi. Jednostka ALU nie ma własnych układów pamiętających, dlatego musi współpracować z pewnym zestawem rejestrów. Rejestr który zawiera jeden z argumentów operacji i do którego ładowany jest wynik wykonywanej operacji, zwany jest akumulatorem. Dodatkowe cechy wyniku wykonywanej operacji (przeniesienie) są przechowywane w postaci określonych bitów w rejestrze zwanym flagowym lub znaczników. Mikroprocesor wraz z układami towarzyszącymi, takimi jak zegar systemowy i sterownik magistral, tworzy centralną jednostkę przetwarzającą, czyli CPU (ang. Central Processing Unit). Uproszczony schemat blokowy mikroprocesora Zadaniem jednostki wykonawczej EU (ang. execution unit) jest przetwarzanie informacji, czyli wykonywanie wszelkich operacji arytmetycznych i logicznych. Rodzaj wykonywanych operacji zależy od wewnętrznych sygnałów sterujących wytwarzanych przez jednostkę sterującą CU. W skład jednostki wykonawczej wchodzi jednostka arytmetyczno-logiczna ALU oraz zestaw współpracujących rejestrów. Informacją wejściową części wykonawczej są dane, wyjściową zaś wyniki. W skład CU (jednostki sterującej) wchodzą: rejestr rozkazów IR, dekoder rozkazów i układ sterowania. W rejestrze rozkazów przechowywany jest kod aktualnie wykonywanego rozkazu. Kody rozkazów pobierane są do rejestru rozkazów z pamięci. Ciąg rozkazów tworzy program wykonywany przez system. Po pobraniu z pamięci kod rozkazu jest dekodowany w dekoderze rozkazów, czyli jest określane, jakiego rozkazu kod znajduje się w dekoderze rozkazów. Na tej podstawie układ sterowania wytwarza wewnętrzne lub zewnętrzne sygnały sterujące realizujące dany rozkaz. Rys. Schemat uproszczony (blokowy) mikroprocesora. 8. Rozszerzony schemat blokowy mikroprocesora Rys. Rozszerzony schemat blokowy mikroprocesora Poszczególne bloki oznaczają: BU (Bus Unit) – odpowiada za współpracę procesora z pamięcią; Prefetch – w celu przyspieszenia pracy procesora podczas fazy wykonania jednego rozkazu jest już wykonywana faza pobierania następnego rozkazu; IU (Instruction Unit) – dekoder odtwarzający rozkaz do wykonania przez procesor, czekające w kolejce; ROM – pamięć wspomagająca dekoder IU, umożliwiająca dostęp do słownika tłumaczącego przyjmowane kody rozkazowe na sekwencje operacji; EU (Execution Unit) – układ wykonawczy, do którego są przekazywane rozkodowane instrukcje; ALU (Arythmetic Lgic Unit) – jednostka wykonująca operacje na liczbach stałoprzecinkowych; CU (Control Unit) – blok sterujący jednostką ALU; FPU (Floating Point Unit) – jednostka wykonująca operacje na liczbach zmiennoprzecinkowych; AU (Addressing Unit) – jednostka adresowa, która obsługuje m. in. pobieranie argumentów rozkazów; MMU (Memory Management Unit) – moduł zarządzania realizujący dostęp do pamięci fizycznej żądanej przez CPU. 9. Rejestry Akumulator – rejestr który zawiera jeden z operandów (argumentów) wykonywanej operacji i do którego jest ładowany wynik wykonywanej operacji. Rejestr flagowy nazywa się rejestr zawierający dodatkowe cechy wyniku wykonywanej operacji potrzebne do podjęcia decyzji o dalszym sposobie przetwarzania informacji. Cechami tymi mogą być przykładowy znak wyniku, wystąpienie przekroczenia zakresu czy parzystość. Licznik rozkazów nazywa się rejestr mikroprocesora zawierający adres komórek pamięci, w której przechowywany jest kod rozkazu przeznaczonego do wykonani jako następny. W nowszych mikroprocesorach nosi on nazwę IP - wskaźnik instrukcji (ang. Instruction Pointer). Czyli po wczytaniu kolejnego rozkazu zawartość licznika rozkazu powinna zostać zamieniona tak, aby wskazywała kolejny rozkaz przeznaczony do wczytania do mikroprocesora. Pobranie kodu rozkazu z kolejnej komórki pamięci powoduje zwiększenie zawartości licznika rozkazu o jeden. Wskaźnik stosu jest rodzajem pamięci (buforem) oznaczonej przez LIFO. Wskaźnikiem stosu nazywa się rejestr zawierający adres ostatniej zapełnionej komórki stosu (wierzchołkiem stosu). Z definicji stosu wnika, że przy założeniu narastania stosu w kierunku adresów rosnących każdy zapis na stos zwiększa zawartość wskaźnika stosu, a każdy odczyt zmniejsza jego zawartość. Dzięki czemu wskaźnik stosu pokazuje zawsze ostatnią zapełnioną komórkę stosu. Jednym z klasycznych zastosowań stosu jest zapamiętywanie adresu powrotu do programu wywołującego w przypadku tak zwanego podprogramu. Rejestry robocze (rejestry ogólnego przeznaczenia) (GPR – ang. General Purpose Registers). Przykładowo rejestry takie mogą przechowywać argumenty wykonywanych operacji, wyniki czy też adresy tychże w pamięci. Rejestry te mogą pełnić pewne dodatkowe funkcje przewidziane przez projektanta mikroprocesora np. licznik wykonywanych pętli. 10. Realizując program, system mikroprocesorowy wykonuje pewne powtarzające się czynności, polegające na cyklicznym pobieraniu kodów rozkazów z pamięci i wczytywaniu ich do układu sterowania mikroprocesora, a następnie realizacji rozkazu którego kod został pobrany. W cyklu możemy wyróżnić dwa etapy: faza pobrania (fetch), faza wykonania (execution). Faza pobrania polega na pobraniu kodu rozkazu z komórki pamięci o adresie przechowywanym w liczniku rozkazów, a następnie na umieszczeniu tego kodu w rejestrze rozkazów IR znajdujących się w układzie sterowania mikroprocesora. Kod rozkazu przesyłany jest do mikroprocesora magistralą danych. Następnie zawartość licznika rozkazu jest modyfikowana tak, aby wskazywała on na kolejny kod rozkazu przeznaczony do pobrania. Po zakończeniu fazy pobrania następuje faza wykonania. Faza wykonania polega na zdekodowaniu kodu rozkazu znajdującego się w rejestrze IR. Po zdekodowaniu kodu rozkazu układ sterowania wytwarza wewnętrzny lub zewnętrzny sygnał sterujący realizujący dany rozkaz. 11. Cykl rozkazowy następuje po sobie na przemian faza pobrania i faza wykonania. W celu przyspieszenia pracy systemu stosuje się modyfikację cyklu zwaną prefetchingiem, czyli wstępnym pobraniem instrukcji. Polega na równoległym wykonywaniu fazy pobrania następnego rozkazu, jeszcze w trakcie realizacji fazy wykonania rozkazu poprzedniego. Rys. Cykle rozkazowe Realizację prefetchingu wymaga określonej budowy procesora, umożliwiającej równoległą pracę jednostek CU i EU. Ponadto wstępne pobranie instrukcji jest ograniczone dostępnością magistrali.