Studia Podyplomowe INFORMATYKA Architektura komputerów Wykład III Procesor 1,
Część 1 1. ALU 2. Cykl rozkazowy 3. Schemat blokowy CPU 2 dr Artur Bartoszewski - WYKŁAD: Podstawy informatyki; Studia Podyplomowe INFORMATYKA, Edycja 11
I. ALU; Cykl rozkazowy; Schemat blokowy CPU Jednostka arytmetyczno-logiczna Jednostka arytmetyczno-logiczna (ALU, ang Algebraic-Logic Unit) to uniwersalny układ cyfrowy przeznaczony do wykonywania operacji arytmetycznych i logicznych na dostarczonych do niej danych. 3
I. ALU; Cykl rozkazowy; Schemat blokowy CPU Jednostka arytmetyczno-logiczna Zestaw operacji ALU powinien być funkcjonalnie pełny, tzn. taki za pomocą którego jesteśmy w stanie zrealizować dowolny algorytm przetwarzania informacji. Każda lista rozkazów zawiera kilka grup działań występujących w różnych wersjach niemal w każdym komputerze są to: przesłania, działania arytmetyczne, działania logiczne, przesunięcia, sterowanie przebiegiem programu, przesłania wejścia-wyjścia, działania zmiennopozycyjne, działania na argumentach upakowanych. ALU nie posiada pamięci ani urządzeń umożliwiających współpracę z pamięcią RAM. Współpracuje z zestawem rejestrów. 4
I. ALU; Cykl rozkazowy; Schemat blokowy CPU Schemat blokowy mikroprocesora (I) EU - (execution unit) Blok wykonawczy CU - (contro unit) Blok sterujący W procesorze są dwie części różniące się pełnionymi funkcjami blok sterujący (CU, control unit) blok wykonawczy (EU execution unit) 5
I. ALU; Cykl rozkazowy; Schemat blokowy CPU Schemat blokowy mikroprocesora (I) Zadaniem części sterującej jest pobieranie rozkazów z pamięci, dekodowanie ich, przygotowanie argumentów i generowanie sygnałów sterujących mikrooperacjami w fazie wykonania. Układ sterujący może być zrealizowany na dwa sposoby - jako sterowanie układowe (hardwired control) lub sterowanie mikroprogramowane (micropwgrammed control). 6
I. ALU; Cykl rozkazowy; Schemat blokowy CPU Schemat blokowy mikroprocesora (I) Rejestry ogólnego przeznaczenia Jednostka arytmetyczno logiczna Dekoder rozkazów Układ serujący jednostką ALU IR - Rejestr rozkazów 7
I. ALU; Cykl rozkazowy; Schemat blokowy CPU Rejestry procesora dostępne programowo A B D H PC SP IR F C E L A Akumulator Zawiera jeden z operandów działania i do niego przekazywany jest wynik B,C,D,E,H,L rejestry robocze (uniwersalne) F - rejestr znaczników SP - wskaźnik stosu PC - licznik rozkazów IR rejestr rozkazów 8
I. ALU; Cykl rozkazowy; Schemat blokowy CPU Rejestry procesora dostępne programowo Licznikiem rozkazów (PC) nazywamy rejestr mikroprocesora zawierający adres komórki pamięci, w której przechowywany jest rozkaz przeznaczony do wykonywania jako następny Rejestrem rozkazów (IR) nazywamy rejestr mikroprocesora zawierający kod aktualnie wykonywanego rozkazu (lub kody rozkazów w przypadku przetwarzania potokowego) 9
I. ALU; Cykl rozkazowy; Schemat blokowy CPU Lista rozkazów Rozkazem nazywamy najprostszą operację w programowaniu - taką której wykonania program może zażądać od procesora Lista rozkazów to pełny zestaw instrukcji maszynowych jakie może wykonać procesor 10
I. ALU; Cykl rozkazowy; Schemat blokowy CPU Lista rozkazów Rozkaz może składać się z kilku pól. Jedno z nich występuje zawsze i nosi nawę pola kodu operacji. Kod ten definiuje funkcję rozkazu, czyli czynności jakie należy wykonać. Pozostałe pola zawierają argumenty operacji. Liczba tych pól zależy od rodzaju operacji, jakiej odpowiada rozkaz. W rozkazach bez argumentów pola dodatkowe nie występują. Kod operacji Kod operacji Kod operacji Argument Argument 1 Argument 2 11
I. ALU; Cykl rozkazowy; Schemat blokowy CPU Cykl rozkazowy procesora Cykl rozkazowy procesora obejmuje dwie powtarzające się czynności: 12
I. ALU; Cykl rozkazowy; Schemat blokowy CPU Cykl rozkazowy procesora - Cykl von Neumana Faza pobrania: 1. Podanie zawartości licznika rozkazów PC na magistralę adresową AB 2. Wczytanie zawartości zaadresowanej komórki do rejestru rozkazów (IR) 3. Zwiększenie zawartości licznika rozkazów Faza wykonania: 4 1 3 2 4. Zdekodowanie kodu rozkazu i wytworzenie sygnałów sterujących realizujących rozkaz Cykl von Neumana 13
I. ALU; Cykl rozkazowy; Schemat blokowy CPU Cykl rozkazowy procesora - Cykl von Neumana Współpraca procesora z pamięcią Faza pobrania: 1. Podanie zawartości licznika rozkazów PC na magistralę adresową AB 2. Wczytanie zawartości zaadresowanej komórki do rejestru rozkazów (IR) 3. Zwiększenie zawartości licznika rozkazów Faza wykonania: 4. Zdekodowanie kodu rozkazu i wytworzenie sygnałów sterujących realizujących rozkaz 14
I. ALU; Cykl rozkazowy; Schemat blokowy CPU Cykl rozkazowy procesora - Cykl von Neumana Rozkaz jest odczytywany z pamięci na podstawie adresu w liczniku rozkazów (PC) Rozkaz wpisywany do rejestru rozkazów, w którym przebywa aż do zakończenia cyklu rozkazowego. Poszczególne części rejestru rozkazów, odpowiadające polom słowa rozkazowego, są dekodowane określając dalszy przebieg cyklu. Wykrywana jest długość pobranego rozkazu i o te wielkość zwiększa się licznik rozkazów, wskazując od tej pory adres kolejnego rozkazu. Ten mechanizm zapewnia sekwencyjne działanie komputera - rozkazy są pobierane i wykonywane w takiej kolejności, w jakiej są umieszczone w pamięci, czyli tak jak były zapisane w programie. Jedynie rozkazy sterujące (skoki) mogą w czasie wykonania, a więc przed pobraniem następnego rozkazu, zmienić zawartość PC. 15
I. ALU; Cykl rozkazowy; Schemat blokowy CPU Współpraca procesora z pamięcią 16
I. ALU; Cykl rozkazowy; Schemat blokowy CPU Schemat procesora (II) 17
I. ALU; Cykl rozkazowy; Schemat blokowy CPU Schemat procesora (II) BU (Bus Unit) - wyizolowany blok komunikacyjny odpowiadający za współpracę z pamięcią Prefeth kolejka oczekujących na wykonanie danych IU (instruction Unit) blok dekodera korzysta on z pamięci ROM w której znajduje się słownik tłumaczący przyjmowane kody rozkazów na sekwencje instrukcji wewnętrznych mikroprocesora EU (Execution Unit) układ wykonawczy realizujący operacje określone przez kod rozkazu. Znaczna część programu podlega obróbce w module ALU (Arithmetic-Logic Unit) sterowanym z bloku CU (Control Unit). Dla przyspieszenia pracy procesora operacje zmiennoprzecinkowe przekazywane są do wyspecjalizowanej jednostki FPU (Floating Point Unit) 18
I. ALU; Cykl rozkazowy; Schemat blokowy CPU Schemat procesora (II) Konieczność zapewnienia płynnego funkcjonowania procesora wymaga, by dane do wykonania (kod programowy) pobierane były w większych porcjach i gromadzone w kolejce Prefetch, gdzie oczekują na wykonanie. 19
I. ALU; Cykl rozkazowy; Schemat blokowy CPU Schemat procesora (II) Ich odtwarzania odbywa się w bloku dekodera (IU - Instruction Unit). Praca tego układu wspomagana jest często przez obszerną podręczną pamięć stałą (ROM), w której zawarty jest słownik tłumaczący przyjmowane kody rozkazowe na sekwencje ukrywających się pod nimi operacji. 20
I. ALU; Cykl rozkazowy; Schemat blokowy CPU Schemat procesora (II) Rozkodowane instrukcje przekazywane są do właściwego układu wykonawczego (EU - Execution Unit), gdzie realizowana jest operacja określona danym kodem rozkazowym. Znaczna część powszechnie używanego kodu pracuje na liczbach stałoprzecinkowych (Integer) i podlega obróbce w module ALU (Arithmetic-Logic Unii) sterowanego z bloku CU (Control Unit). 21
I. ALU; Cykl rozkazowy; Schemat blokowy CPU Schemat procesora (II) Jeśli jednak rozkaz dotyczył obiektów zmiennoprzecinkowych przekazuje się go do wyspecjalizowanej jednostki zmiennoprzecinkowej (FPU - Floating Point Unit). 22
I. ALU; Cykl rozkazowy; Schemat blokowy CPU Schemat procesora (II) Rozkazy posługują się zwykle pewnymi argumentami (parametry funkcji, na przykład składniki przy dodawaniu), które również trzeba pobrać z pamięci operacyjnej. Często wymaga się, by wynik operacji przesłać pod określony adres. Obsługę przesyłania bierze na siebie jednostka adresowania (AU Addressing Unit). Względy natury technicznej (omówione na poprzednim wykładzie) powodują, iż dostęp do pamięci operacyjnej wymaga pewnych dodatkowych nakładów, których realizacji poświęca się jednostkę zarządzania pamięcią (MMU - Memory Management Unit). 23
Część 2 RISCi CISC 24 dr Artur Bartoszewski - WYKŁAD: Podstawy informatyki; Studia Podyplomowe INFORMATYKA, Edycja 11
II. RISC i CISC Architektura CISC Początkowo listy rozkazów były niewielkie i zawierały operacje niezbędne do wykonywania działań arytmetycznych i do tworzenia elementarnych struktur progra mowych (skoki, pętle, rozgałęzienia warunkowe, podprogramy). Później dołączono rozkazy działające na znakach, a ostatnio rozkazy ukierunkowane na zastosowania w obsłudze operacji multimedialnych. Po wprowadzeniu języków symbolicznych (asemblerów), które stały się głównym narzędziem programowania systemowego (systemy operacyjne, kompilatory), nowe listy rozkazów wyposażano w coraz bardziej złożone instrukcje ułatwiające programowanie. Celem stało się zniwelowanie luki semantycznej między asemblerami, a więc i językami maszynowymi, a językami algorytmicznymi wysokiego poziomu. 25
II. RISC i CISC Architektura CISC Procesory ze złożoną listą instrukcji są określane jako CISC (ang. Complex Instruction Set Computer). Charakteryzują się: dużą liczbą rozkazów o różnych długościach; dużą liczbą trybów adresowania; Zalety: łatwością tworzenia oprogramowania Wady: rozkazy były długie i różnej długości, co komplikowało strukturę i działanie układu sterującego 26
II. RISC i CISC Architektura RISC Procesory ze zredukowaną (uproszczoną) listą rozkazów RISC (ang. Reduced Instruction Set Computer) charakteryzują się: niewielką liczbą rozkazów małą liczbą trybów adresowania prostą i szybką jednostką sterującą Zalety: Wady: prosta (a więc tania) jednostka sterująca; możliwość zwiększania taktowania procesora; przetwarzanie potokowe; trudnością w tworzeniu oprogramowania duże obciążenie magistral pamięciowych 27
II. RISC i CISC CISC vs.risc CISC 28
II. RISC i CISC CISC vs.risc RISC 29
II. RISC i CISC Intel x86 RISC czy CISC? Obecnie popularne procesory Intela z punktu widzenia programisty są widziane jako CISC, ale ich rdzeń jest RISC-owy. Rozkazy CISC są rozbijane na mikrorozkazy (ang. microops), które są następnie wykonywane przez RISC-owy blok wykonawczy. W praktyce okazuje się że rozwiązanie takie (pomimo wielu znaczących wad) jest podejściem znacznie bardziej wydajnym (szczególnie że RISC-owy blok wykonawczy jest znacznie bardziej nowoczesny od architektury CISC widocznej dla programisty). 30
Część 3 1. Stos mechanizm skoków 2. Przetwarzanie potokowe 31 dr Artur Bartoszewski - WYKŁAD: Podstawy informatyki; Studia Podyplomowe INFORMATYKA, Edycja 11
III. Tryby pracy procesora Stos Stosem nazywany wyróżniony obszar pamięci używany według następujących reguł: 1. Informacja zapisywana jest do kolejnych komórek, żadnego adresu nie wolno pominąć, 2. Odczyt informacji następuje w kolejności odwrotnej do zapisu, 3. Informuje odczytujemy z ostatnio zapisanej komórki, natomiast zapisujemy do pierwszej wolnej. 1; 2; 3; 4; 5 5 4 3 2 5; 4; 3; 2; 1 1 32
III. Tryby pracy procesora Stos Stos jest rodzajem pamięci (buforem) typu LIFO (ang. Last In First Out). Stos ma stały wymiar i położenie w pamięci. Konieczna jest więc tylko znajomość adresu pierwszej wolnej komórki stosu (wierzchołka stosu). Do tego służy rejestr SP - wskaźnik stosu. Wskaźnik stosu 5 4 3 2 1 Wskaźnikiem stosu nazywamy rejestr zawierający adres ostatnio zapisanej komórki (wierzchołka) stosu 33
III. Tryby pracy procesora Wykorzystanie stosu skoki do 34
III. Tryby pracy procesora Zasada przetwarzania potokowego Jeżeli w procesorze wydzielić dwa stanowiska obsługi" - jedno dla pobierania rozkazów, a drugie dla ich wykonywania (rys), wówczas można równocześnie realizować obie fazy cyklu rozkazowego: pobieranie następnego rozkazu odbywa się w czasie, gdy jest wykonywany rozkaz poprzedni. Takie działanie, analogiczne do obróbki na taśmie produkcyjnej, nazywa się potokowym (pipeline). 35
III. Tryby pracy procesora Zasada przetwarzania potokowego Zakładając, że czas trwania każdej fazy cyklu jest taki sam, uzyskujemy dwukrotne skrócenie czasu kończenia kolejnych rozkazów (uzyskiwania wyników), mimo że sumaryczny czas cyklu pozostaje niezmieniony. 36
III. Tryby pracy procesora Zasada przetwarzania potokowego Powyższy przykład opisywał potok dwustopniowy, w praktyce mamy więcej stopni (więcej instrukcji przetwarzanych jednocześnie). W procesorach Pentium jest 5 potoków. Przetwarzanie potokowe działa w oparciu o założenie, że instrukcje wykonywane są kolejno, tak jak zapisano je w pamięci operacyjnej 37
III. Tryby pracy procesora Konflikty przetwarzania potokowego Problemem jest wystąpienie w programie rozgałęzień zależnych od efektów poprzedzającej operacji (skoków warunkowych) - w takim przypadku kolejny pobrany rozkaz może okazać się nieprzydatny i trzeba pobierać inny, wskazany przez wykonywany rozkaz skoku. Następuje wówczas opróżnienie potoku (flush) powodujące chwilowy przestój jednostki wykonawczej, Z kolei przestoje jednostki pobierającej rozkazy pojawiają się wtedy, gdy samo wykonanie rozkazu wymaga kontaktu z pamięcią dla odczytania lub zapisania argumentów. 38
III. Tryby pracy procesora Konflikty przetwarzania potokowego Ponad 95% - kodu programu to instrukcje wykonywane potokowo. Tylko mniej niż 5% kodu powoduje konflikty. Konflikt nie jest problemem procesor posiada mechanizmy rozwiązywania różnych typów konfliktów. Najprostszymi są przestoje oraz opróżnienie potoku i ponowne załadowanie rozkazów. 39
Część 4 Pamięć CACHE 40 dr Artur Bartoszewski - WYKŁAD: Podstawy informatyki; Studia Podyplomowe INFORMATYKA, Edycja 11
IV. Pamięć CACHE CHAHE Działanie pamięci buforowej cache, (zwanej pamięcią podręczną): prawie zawsze, kiedy procesor poszukuje jakiegoś miejsca w pamięci, jego kopia jest w cache - przypadek taki nazywa się trafieniem (hit); jeżeli odczytywany adres nie jest odwzorowany w cache, czyli próba odczytu jest chybiona (miss); wówczas następuje odczyt z pamięci głównej, ale równocześnie do cache jest przepisywany blok (zwany linią) kilku lub kilkunastu sąsiednich bajtów wraz z ich adresem. W ten sposób chybienia powodują uzupełnianie pamięci buforowej aż do momentu, kiedy nie będzie w niej miejsca i wtedy usuwa się jedną linię - np. tę, która była najdawniej używana. 41
IV. Pamięć CACHE Organizacja pamięci CHAHE CPU CACHE L1 CACHE L2 CACHE L3 RAM 42
IV. Pamięć CACHE Organizacja pamięci CHAHE System pamięci podręcznej CACHE składa się z dwóch zasadniczych elementów: banku danych pamięci CACHE (pamięci danych) przeznaczonego do przechowywania zapisywanej i odczytywanej informacji, katalogu pamięci CACHE (tzw. TAG-RAM) przechowującego adresy i służącego do szybkiego sprawdzania, czy poszukiwana informacja znajduje się w pamięci danych 43
IV. Pamięć CACHE Organizacja pamięci CHAHE 44
Część 5 Wieloprocesorowość 45 dr Artur Bartoszewski - WYKŁAD: Podstawy informatyki; Studia Podyplomowe INFORMATYKA, Edycja 11
IV. Wieloprocesorowość Procesory logiczne Rejestry Rejestry Aparat wykonawczy (ALU) Pamięć podręczna (CACHE) Hyper-Treading (HT) procesor posiada dwa zestawy rejestrów dzięki czemu emuluje obecność dwóch układów nazywanych procesorami logicznymi Magistrala systemowa Pamięć operacyjna (RAM) Pamiętajmy: program widzi procesor jako zestaw rejestrów. 46
IV. Wieloprocesorowość Procesory fizyczne - rdzenie Rejestry Rejestry Rejestry Rejestry Aparat wykonawczy Aparat wykonawczy Aparat wykonawczy Aparat wykonawczy Pamięć podręczna (CACHE) CACHE CACHE Magistrala systemowa Magistrala systemowa Pamięć operacyjna (RAM) Pamięć operacyjna (RAM) 47
IV. Wieloprocesorowość Procesory fizyczne - rdzenie W praktyce spotykam też hybrydę dwu powyższych schematów. W procesorze Intel Core i7 każdy z rdzeni posiada własną pamięć podręczną poziomów L1 i L2, natomiast pamięć poziomu L3 jest wspólna. L2 L2 L2 L2 Źródło: http://nvision.pl/img/art/procesory/intel_core_i7/intel_core_i7-2.jpg 48
IV. Wieloprocesorowość Procesory fizyczne - rdzenie Rejestry Aparat wykonawczy CACHE L2 Rejestry Rejestry Rejestry CACHE L3 Aparat wykonawczy CACHE L2 Magistrala systemowa W najnowszych procesorach (Core i7) dla każdego z fizycznych rdzeni zastosowano technologię Hyper-Treading. Oznacza to, że każdy rdzeń widziany jest jako dwa procesory logiczne i może robić dwie rzeczy naraz, np. czterordzeniowy procesor Core i7 może wykonywać 8 wątków jednocześnie. Pamięć operacyjna (RAM) Źródło: http://nvision.pl/img/art/procesory/intel_core_i7/intel_core_i7-2.jpg 49
IV. Wieloprocesorowość Rozwój procesorów 50
IV. Wieloprocesorowość Rozwój procesorów 51
Literatura: Metzger Piotr - Anatomia PC, wydanie XI, Helion 2007 Wojtuszkiewicz Krzysztof - Urządzenia techniki komputerowej, część I: Jak działa komputer, MIKOM, Warszawa 2000 Wojtuszkiewicz Krzysztof - Urządzenia techniki komputerowej, część II: Urządzenia peryferyjne i interfejsy, MIKOM, Warszawa 2000 Komorowski Witold - Krótki kurs architektury i organizacji komputerów, MIKOM Warszawa 2004 Gook Michael - Interfejsy sprzętowe komputerów PC, Helion, 2005 52 dr Artur Bartoszewski - WYKŁAD: Podstawy informatyki; Studia Podyplomowe INFORMATYKA, Edycja 11