Procesor przetwarza informacje, wykonuje elementarne operacje zwane instrukcjami bądź (rozkazami). Ciąg takich instrukcji realizujących konkretne zadanie nazywamy programem. Jednym z elementów systemu mikroprocesorowego jest uniwersalny układ przetwarzający informacje. Wykonuje on działania arytmetyczne i logiczne potrzebne do osiągnięcia zamierzonego wyniku. Układ musi jednak współpracować z dodatkowymi układami w celu stworzenia użytecznego systemu mikroprocesorowego.
Schemat blokowy systemu mikroprocesorowego CPU ROM (Bios) MEM RAM (PAO) I/O DB AB CB CPU - centralna jednostka przetwarzająca MEM pamięć RAM I ROM (Bios podstawowy system obsługi we/wy I/O układ we/wy AB magistrala adresowa DB magistrala danych CB magistrala sterująca
Mikroprocesor to procesor wykonany w technologii LSI (mikroprocesor 8-bitowe), VLSI (mikroprocesor 16-bitowe i 32-bitowe) lub ULSI (mikroprocesor 64-bitowe).
STRUKTURA ROZKAZU: Długość rozkazu słowo lub kilka słów Kod rozkazu liczba binarna charakterystyczna dla rodzaju operacji (funkcji rozkazu) Pole rozkazu pole kodu operacji + pole argumentów Lista rozkazów mikroprocesora składa się zwykle z rozkazów arytmetycznych, logicznych, przesłań, rozkazów skoku, zatrzymania, wejścia / wyjścia oraz wywołania podprogramu. Każdy z tych rozkazów ma zero, jeden lub dwa argumenty. Argumenty mogą być umieszczone bezpośrednio w kodzie rozkazu, w rejestrze lub w pamięci. W związku z różnymi sposobami adresowania argumentów istotne jest podanie sposobu ich odnalezienia, który zależy od zastosowanego sposobu adresacji.
Zadaniem CPU oprócz przetwarzania inf. jest sterowanie pracą pozostałych układów. Zegar systemowy wytwarza przebiegi czasowe niezbędne do pracy mikroprocesora i systemu. Sterownik magistrali jest układem który pośredniczy w sterowaniu magistralami, wytwarzając na podstawie inf. otrzymanych z mikroprocesora (tzw. sygnałów statusowych i sterujących) sygnały sterujące pracą układów pamięci i układów we/wy. Wszystkie operacje zachodzące w systemie są sterowane bądź inicjowane przez mikroprocesor. Rodzaj tych działań zależy od ciągu instrukcji (programu).
Wszystkie te informacje między tymi blokami przesyłane są przez magistrale: 1. Magistrala danych - Przeznaczona jest do przesyłania danych, wyników oraz kodów instrukcji, jest to magistrala dwukierunkowa. 2. Magistrala adresowa - Przesyłane są adresy komórek pamięci lub ukł. we/wy z którymi chce się komunikować mikroprocesor magistrala jednokierunkowa adresy są generowane przez mikroprocesor, natomiast trafiają do pamięci bądź do ukł. we/wy
3. Magistrala sterująca - Właściwie zestaw linii sterujących, linie te służą do sterowania pracą układów współpracujących z mikroprocesorem oraz do sygnalizowania pewnych ich określonych stanów.
Mikroprocesor pojedynczy układ scalony o dużej skali integracji. Schemat blokowy mikroprocesora dzieli się na: 1. Jednostkę wykonawczą Przetwarzanie inf., czyli wykonywanie wszelkich operacji arytmetycznych i logicznych. Rodzaj wykonywanych operacji zależy od wewnętrznych sygnałów wytwarzanych przez CPU. W skład jednostki wykonawczej wchodzą ALU oraz zestaw współpracujących z nią rejestrów. Informacją wej. części wykonawczej są dane, zaś wyjściową wyniki (liczby, inf. tekstowe, sygnały sterujące )
2. Jednostkę sterującą - W skład jednostki sterującej wchodzą: -rejestr rozkazów IR -dekoder rozkazów -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. Na tej podstawie układ sterowania wytwarza wewnętrzne i/lub zewnętrzne sygnały sterujące realizujące dany rozkaz. Rejestry procesora dostępne programowo: -rejestr flagowy -licznik rozkazów -wskaźnik stosu -rejestry robocze Zgodnie ze schematem blokowym mikroprocesora zarówno ALU jak i ukł. sterujący współpracują z określonymi zestawem rejestrów.
Zawartość pewnej części rejestrów z tego zestawu może być zmieniana w wyniku wykonywania przez procesor określonej instrukcji. Rejestry te nazywane są rejestrami dostępnymi programowo. Pozostałe rejestry są niedostępne dla użytkownika i ich zestaw nie jest zwykle znany. W rejestrach dostępnych programowo występują takie typy rejestrów, których odpowiedniki znajdują się praktycznie w każdym procesorze. Ich pojemność czy ilość może się zmieniać, jednak wykonywane zadania pozostają takie same.
A B D H IPC SP F C E L Rejestry procesora dostępne programowo A Akumulator F rejestr flagowy B, C, D, E, H, L rejestry robocze (uniwersalne) IPC Licznik rozkazów SP Wskaźnik Stosu Akumulatorem nazywamy rejestr, który zawiera jeden z argumentów wykonanej operacji i do którego jest ładowany wynik wykonanej operacji. Rejestr flagowy nazywamy rejestr zawierający dodatkowe cechy wyniku wykonywanej operacji, potrzebne do podjęcia decyzji o dalszym sposobie przetwarzania informacji. Cechami tymi mogą być np. znak wyniku, przekroczenia zakresu wyniku lub parzystości lub nieparzystości wyniku. Wystąpienie określonego wyniku (+lub-) sygnalizowane jest ustawieniem lub wyzerowaniem określonego bitu w rejestrze flagowym, (znaczniki, flagi)
Licznik rozkazów jest jednym z istotniejszych rejestrów, w nowszych mikroprocesorach nosi nazwę IP wskaźnika instrukcji. Licznikiem rozkazów nazywamy rejestr mikroprocesorowy zawierający adres komórki pamięci, w której przechowywany jest kod rozkazu przeznaczony do wykonania jako następny. Po wczytaniu kolejnego kodu rozkazu zawartość licznika rozkazów powinna zostać zmieniona tak, aby wskazywał on na kolejny rozkaz przeznaczony do wczytania do mikroprocesora.
Wskaźnik stosu Stosem nazywamy wyróżniony obszar pamięci używany według następujących reguł. 1. Informacje zapisywane są na stos do kolejnych komórek (po kolei pod każdymi adresami), przy czym żadnego adresu nie wolno pominąć. 2. Odczytujemy informację w kolejności odwrotnej do ich zapisu. 3. Informację odczytujemy z ostatnio zapełnionej komórki a zapisujemy do pierwszej wolnej.
Stos jest więc rodzajem pamięci (czy też buforem). Pamięć taką można porównać do stosu talerzy. Talerze dokładamy do stosu kładąc je na wierzchu a zbieramy zdejmując je także z wierzchu. W przypadku pojęcia stosu w pamięci, konieczna jest znajomość adresu ostatniej zapełnionej komórki stosu, przy czym komórkę odczytana uważamy za pustą. Komórka ta zwana jest wierzchołkiem stosu. Wskaźnikiem stosu nazywamy rejestr zawierający adres ostatniej zapełnionej komórki stosu (wierzchołka stosu)
BU (układ magistrali) jest pasmem transmisyjnym, którego zadanie polega na pobieraniu instrukcji z pamięci i przesyłanie ich do procesora. Działa także w drugą stronę, co pozwala nazwać ten układ pośredniczącym w wymianie danych ze światem zewnętrznym. IU ( układ instrukcji) pobiera instrukcje z kolejki kodów układu magistrali systemu, dekoduje je oraz umieszcza w swojej kolejce instrukcji zwanej potokiem. Może znajdować się w niej do trzech zdekodowanych instrukcji. EU (układ wykonawczy) wykonuje instrukcje zgodnie z mikroprogramem zawartym w ROMie układu wykonawczego. Podczas wykonywania kolejnych instrukcji ROM informuje układ, że ma obowiązek pobrać następną. AU- (układ adresowy) układ ten zajmuje się zarządzaniem pamięcią, pełni także funkcję ochronną przy przekształceniu adresów wirtualnych na fizyczne.
Jednostką arytmetyczno logiczną (ALU) nazywamy uniwersalny układ cyfrowy przeznaczony do wykonania operacji arytmetycznych i logicznych Słowo uniwersalny w ALU oznacza, że zestaw operacji, które potrafi zrealizować jednostka arytmetyczno-logiczna powinien być funkcjonalnie pełny, jeżeli za jego pomocą jesteśmy w stanie zrealizować dowolny algorytm przetwarzania informacji.
Do zestawu operacji wykonanych przez ALU należą najczęściej dodawanie i odejmowanie algebraiczne, przesuwanie bitów słowa w prawo i w lewo, porównywanie (komparacja) wartości dwóch słów, operacje iloczynu i sumy logicznej, negacji i alternatywy wykluczającej ALU nie posiada układów pamiętających, dlatego musi współpracować z pewnym zestawem rejestrów. Rejestr przechowujący wyniki operacji nazywa się akumulatorem. Oraz rejestr flagowy zawierający cechy wyniku (np. przeniesienie bitu lub przekroczenie zakresu) Są to dwa podstawowe rejestry z którymi ALU współpracuje.
Koderem priorytetu nazywamy układ kodera, w którym wprowadzono następujące zmiany: 1. Na jego wejściu może pojawić się więcej niż jeden sygnał wyróżniony. 2. Każdemu wejściu przyporządkowano pewien stopień ważności zwany priorytetem 3. Na wyjściu pojawia się zakodowany numer tego wejścia z wyróżnionym sygnałem, które posiada najwyższy priorytet.
Licznikiem nazywamy układ cyfrowy na którego wyjściu pojawia się zakodowana liczba impulsów podanych na wejściu zliczające licznika i zliczone przez licznik. Podstawowymi parametrami licznika jest jego pojemność oraz kod w którym jest podawana ilość zliczanych impulsów. Pojemność określa max ilość impulsów którą może zliczyć licznik. Po przekroczeniu tej wartości licznik zaczyna zliczanie impulsów od początku. Liczniki w systemach mikroprocesorowych są układami pomocniczymi.
Jednym z klasycznych zastosowań stosu jest zapamiętanie adresu powrotu do programu wywołującego w przypadku wywołania tak zwanego podprogramu. Ponieważ podprogram może wywołać inny podprogram, adresy powrotów odkładane są na stos, gdyż muszą być odczytane w kolejności odwrotnej do kolejności ich zapisu. Rejestry robocze-uniwersalne są pewnym zestawem rejestrów ogólnego przeznaczenia. Mają przechowywać argumenty wykonanych operacji i wyniki.
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ł. sterowania mikroprocesora, a następnie realizację rozkazu (tego kodu). I dlatego rozróżniamy dwie fazy: fazę pobrania, fazę wykonania. Komputer będący systemem mikroprocesorowym przetwarza informacje zgodne z wykonywanym programem. Program jest ciągiem instrukcji realizujący określony algorytm działania systemu.
W pamięci systemu mikroprocesorowego program przechowywany jest w postaci binarnych kodów instrukcji maszynowych (rozkazów) właściwych dla danego procesora. Rozkazem (instrukcją maszynową) nazywamy najprostszą operację, której wykonanie programista może zażądać od procesora. Listą rozkazów nazywamy zestaw wszystkich instrukcji maszynowych (rozkazów), jakie potrafi wykonać dany procesor.
Operacje wejścia/wyjścia - programy realizujące wymianę inf. i wszelkie operacje jej dotyczące nazywamy operacjami wejścia/wyjścia. Operacjami wejścia/wyjścia nazywamy całokształt działań potrzebnych do realizacji wymiany inf. pomiędzy mikroprocesorem i pamięcią z jednej strony a układem wejścia/wyjścia z drogiej. Operacje wejścia/wyjścia musza być realizowane od początku do końca przez procesor lub tylko przez zainicjowanie operacji wejścia/wyjścia przez mikroprocesor, który z kolei przekazuje nadzór nad nią innemu układowi (zarządca magistrali) Stąd operacja dzieli się na:
-operacja z bezpośrednim -operacja z pośrednim sterowaniem przez procesor Z czego operacje z bezpośrednie dzieli się: -bezwarunkowe operacje wej/wyj -operacje wej/wyj z testowaniem stanu ukł. wej/wyj -operacje wej/wyj z przerwaniem programu Bezwarunkową operacją wej/wyj nazywamy taka operację przy której realizacji mikroprocesor nie sprawdza gotowości ukł. wej/wyj do tej wymiany.
Przy realizacji operacji wej/wyj z testowaniem stanu ukł. wej/wyj mikroprocesor sprawdza sygnał (np. może to być określony bit) gotowości ukł. wej/wyj do tej wymiany. W przypadku potwierdzenia gotowości do tej wymiany przez ukł. jest ona realizowana. Brak gotowości ukł. wej/wyj do wymiany powoduje wykonanie przez mikroprocesor tak zwanej pętli przepytania, w której cyklicznie sprawdza on gotowość ukł. do wymiany.
Jedną z oczywistych wad operacji wej/wyj z testowaniem stanu ukł. wej/wyj jest konieczność wykonania przez mikroprocesor pętli przepytania w celu stwierdzenia gotowości tego ukł. do wymiany. Rozwiązanie tego problemu jest takie że mikropro. wykonuje pewien program zwany programem głównym, oczekując na sygnał gotowości do wymiany zgłoszony ze strony ukł. wej/wyj. W tym celu mikroprocesor dysponuje określonym wej. zwanym wej. zgłoszenia przerwania. Aktywny poziom na tym wej. sygnalizuje tak zwane zgłoszenie przerwania, czyli gotowości ukł. wej/wyj do wymiany.
Układy wejścia/wyjścia Podczas operacji wejścia/wyjścia zachodzi wymiana informacji pomiędzy pamięcią operacyjną systemu mikroprocesorowego a urządzeniami peryferyjnymi. Operacje te mogą być realizowane na dwa sposoby: pod nadzorem procesora lub z bezpośrednim dostępem do pamięci (bez udziału procesora). Operacje we/wy nadzorowane przez procesor, zwane są również operacjami typu PIO (ang. Programmed Input/Output). Procesor generuje wszystkie sygnały sterujące i adresy, niezbędne do przesłania informacji do/z pamięci operacyjnej.
W trakcie tej czynności nie może wykonywać żadnych innych operacji - fakt ten spowalnia pracę komputera. Typowym przykładem operacji nadzorowanych przez procesor są tzw. operacje we/wy z przerwaniem programu. Cykl operacji rozpoczyna urządzenie peryferyjne, które sygnalizuje za pomocą lini IRQn (ang. Interrupt Request - żądanie przerwania) gotowość wymiany informacji. Specjalny układ, zwany kontrolerem przerwań powiadamia o tym fakcie procesor (sygnałem INTR), który z kolei przerywa wykonywanie swojego programu (potwierdza to sygnałem INTA) i rozpoczyna wymianę informacji pomiędzy urządzeniem a pamięcią operacyjną.
Każde urządzenie posiada swój oryginalny numer przerwania (np. IRQ3, IRQ4,...). Jeśli dwa urządzenia zgłoszą jednocześnie żądanie przerwania, to obsłużone najpierw zostanie urządzenie o wyższym priorytecie (niższy numer przerwania to wyższy priorytet). Wymiana informacji (pomiędzy pamięcią operacyjną a urządzeniem peryferyjnym) z bezpośrednim dostępem do pamięci (ang. Direct Memory Access - DMA) zachodzi bez udziału procesora (który w tym czasie może wykonywać inne operacje). Sterowanie operacją wejścia/wyjścia realizowane jest przez specjalny układ zwany kontrolerem DMA, który przejmuje kontrolę nad magistralami.
Przerwanie (interrupt) - jest sygnałem dla procesora mówiącym mu, że ma czasowo przerwać aktualnie wykonywany proces i zająć się czymś innym. Bez przerwań procesor musiałby stale kontrolować wszystkie urządzenia zewnętrzne typu klawiatura, podczas gdy z przerwaniami procesor może wykonywać jakiś program i nadal ma możliwość reagować na wydarzenie zewnętrzne (np. naciśnięcie klawisza) od razu po jego wystąpieniu. Procesor ma też instrukcję, która umożliwia wyłączenie przerwań - jeśli aktualnie wykonywany proces nie może być zakłócany. Istnieją jednak pewne specyficzne sytuacje, podczas których konieczna jest reakcja procesora - np. awaria sprzętu, pamięci czy odcięcie dopływu prądu - nie ważne jak istotny jest wykonywany aktualnie proces. Do poinformowania procesora o tym służy tzw. non maskable interrupt (NMI - przerwanie niemaskowalne).
Procesor posiada 256 różnych przerwań - można je podzielić na dwie grupy: 1. Hardware interrupts - przerwania sprzętowe - omówione powyżej przerwania wywoływane przez inne części sprzętu jak np. klawiatura, zegar etc. 2. Software interrupts - przerwania programowe - przerwania, które są wywoływane przez program - np. przerwanie 21h - przerwanie DOS. Również w przypadku przerwań programowych, po napotkaniu odwołania do przerwania (instrukcja INT) - procesor przerywa wykonywanie aktualnego programu i "przeskakuje" do procedury wywołanego przerwania.
Tryby pracy procesora Tryb rzeczywisty (z ang. Real mode)- Trybie rzeczywistym pracował procesor 8088 a przy użyciu 16 bitowych rejestrów wewnętrznych wykonywał instrukcje 16 bitowe. Ten że procesor posiadał 20 bitową magistralę adresową i komunikował się z pamięcią RAM o rozmiarze 1 Megabajt (MB). W trybie rzeczywistym uruchamiało się system operacyjny firmy Microsoft MS-DOS był to system 16 bitowy. Procesor 286 i kolejne wykonywały 16 bitowe instrukcje, ale znacznie szybciej od procesora 8088. W tym trybie można było uruchamiać tylko jeden program. Jeśli się uruchomiło więcej niż jedną aplikację mogło to spowodować zawieszenie się systemu operacyjnego MS-DOS. Po jakimś czasie pojawiły się narzędzia, programy które pozwalały rozszerzyć pamięć RAM o ponad 1 MB. Takie programy nazywa się ekspanderem systemu DOS sposób pracy takiego narzędzia został opisany protokołem DPMI (DOS Protected Mode Inerface) za pomocą tego protokołu można uruchamiać system DOS w trybie chronionym. Procesory nowsze, tzn. i286, i386 itd., mają szersze szyny adresowe (24-, 32- lub 36- bitowe) toteż pracując w trybie rzeczywistym mogą adresować całe 1088 KB pamięci. System DOS począwszy od wersji 4.0 potrafił wykorzystać te dodatkowe 65536-16 B pamięci, która została nazwana pamięcią wysoką (HMA High Memory Area). Jednak powoduje to niepełną zgodność z procesorami Intel 8086 i dlatego w komputerach zgodnych z IBM/PC została wprowadzona możliwość blokowania 21. linii adresowej nowszych procesorów, co sprawia, że programy pracujące w trybie rzeczywistym mają dostęp do 20 linii. Blokowanie i odblokowywanie linii 21 jest udostępniane przez ustawienie w biosie komputera bramkę A20 (ang. A20 gate; A20 to numer linii adresowej, liczony od 0).
Tryb chroniony (ang. protected mode) - to tryb pracy mikroprocesorów serii x86 wprowadzony w mikroprocesorze Intel 80286. Tryb chroniony umożliwia adresowanie pamięci w większym zakresie niż 1MB (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 Wirtualny - (z ang. virtual mode) W Trybie wirtualnym uruchamiało się systemy i programy 32 bitowe ale można było również uruchamiać programy z trybu rzeczywistego (16 bitowe).
Gniazdo procesora jest rodzaj złącza znajdującego się na płycie głównej; pełni ono rolę interfejsu pomiędzy procesorem a pozostałymi elementami systemu komputerowego, umożliwiając jego współpracę z systemem za pośrednictwem odpowiednich magistrali i układów znajdujących się na płycie głównej.
Historia przystawek: 2009: Socket 1366 (Intel Core i7) 2009: Socket AM3 (Athlon II, Phenom II, Sempron) 2010: Socket 1156 (Core i5, Core i7) 2010: Socket 1155 2011: Socket FM1 2011: Socket AM3+ 2012: LGA 2011
Podział Gniazd: Socket- Jest to podstawka kwadratowa z dźwignią zaciskową w której montuje się procesor. Slot- Gniazdo w którym montuje się procesor podobnie jak kartę rozszerzającą jest podobna do gniazd sloty PCI, ISA, AGP
Slot 1: procesory Intel Pentium II, Pentium III, Celeron, 242 styki Slot 2: pro cesory Intel Pentium II Xeon, 330 styki,
Slot A: procesory AMD Athlon
Podział obudów procesorów ze względu na budowę: Land Grid Array (LGA) nie ma pinów na procesorze, w ich miejsce zastosowane zostały złocone, miedziane, płaskie styki, które dociskane są do pinów w gnieździe płyty głównej. Stosowane w procesorach firmy Intel Pentium 4, Intel Core 2, Intel Core i7, AMD Opteron.
Pin Grid Array (PGA) - wyprowadzenia w postaci szpilek (pinów) znajdują się na całej (bądź znacznej części) powierzchni spodniej strony układu.
Podstawki pod procesory: -podstawka AM2 : typ PGA, procesory firmy AMD, 940 pinów - podstawka AM2+ : typ PGA, procesory firmy AMD, 940 pinów -podstawka AM3 : typ PGA, 941 pinów, procesory firmy AMD
-podstawka AM3+: typ PGA, 942 piny, procesory firmy AMD
-Podstawka LGA1150(Socket H3) : (2013), typ LGA, procesor firmy Intel Haswell. Niezgodne z LGa1156 i LGA1155. -LGA1155 (Socket H2): typ LGA, procesory firmy Intel, 1155 styków, nie kompatybilny wstecz z LGA1156 -LGA1156 (Socket H): typ LGA, procesor Intel Core i5, Core i7, Xeon, obsługuje procesory z wbudowanym mostkiem północnym.
-LGA 1366 (Socket B): (2008), typ LGA, procesory Intel Core i7, Intel Xeon, 1366 pól -- LGA 2011 (Socket R): (2011), typ LGA, 2011 pól, procesory Intel Core i7, Intel Xeon
Operacja DMA inicjowana jest przez urządzenie sygnałem DRQn (n - numer kanału DMA). Układ DMA, za pomocą sygnału HRQ, zgłasza gotowość przejęcia kontroli nad magistralami. Procesor wprowadza swoje magistrale w stan zawieszenia i fakt ten potwierdza sygnałem HLDA. Kontroler, za pomocą linii DACK, informuje urządzenie o ustawieniu trybu DMA. Rozpoczyna się transmisja danych.
Urządzenie nr 1 Urządzenie nr 2 Urządzenie nr 3 magistrala adresowa Pamięć RAM magistrala danych Procesor CPU INTA INTR IRQ2 IRQ3 IRQ5 Kontroler przerwań Proces składa się z 4 części: 1. Odebranie zgłoszenia IRQ od urządzenia (urządzeń) przez kontroler przerwań 2. Przesłanie informacji sygnałem INTR przez kontroler przerwań o zgłoszonym przerwaniu do procesora 3. Potwierdzenie odebrania przerwania przez procesor sygnałem INTA 4. Następuje wymiana danych pomiędzy pamięcią a urządzeniem
Urządzenie nr 1 Urządzenie nr 2 Urządzenie nr 3 magistrala adresowa Pamięć RAM magistrala danych Procesor CPU INTA INTR IRQ2 IRQ3 IRQ5 Kontroler przerwań 1. Odebranie zgłoszenia IRQ od urządzenia (urządzeń) przez kontroler przerwań
Urządzenie nr 1 Urządzenie nr 2 Urządzenie nr 3 magistrala adresowa Pamięć RAM magistrala danych Procesor CPU INTA INTR IRQ2 IRQ3 IRQ5 Kontroler przerwań 2. Przesłanie informacji sygnałem INTR przez kontroler przerwań o zgłoszonym przerwaniu do procesora
Urządzenie nr 1 Urządzenie nr 2 Urządzenie nr 3 magistrala adresowa Pamięć RAM magistrala danych Procesor CPU INTA INTR IRQ2 IRQ3 IRQ5 Kontroler przerwań 3. Potwierdzenie odebrania przerwania przez procesor sygnałem INTA
Urządzenie nr 1 Urządzenie nr 2 Urządzenie nr 3 magistrala adresowa Pamięć RAM magistrala danych Procesor CPU INTA INTR IRQ2 IRQ3 IRQ5 Kontroler przerwań 4. Następuje wymiana danych pomiędzy pamięcią a urządzeniem
Wszystkie współczesne procesory mają podobną architekturę opartą na superskalarnym jądrze RISC (architektura procesora o uproszczonej liście rozkazów). Jeszcze kilka lat temu procesory zaliczano do rodziny CISC (architektura procesora wykorzystująca złożoną listę rozkazów). Dzisiaj, dzięki zastosowaniu w nich techniki przekodowywania rozkazów, uzyskano ogromne zwiększenie wydajności procesora, a RISC-owa konstrukcja umożliwia stosowanie wysokich częstotliwości zegara.
Ze względu na przepływ danych i rozkazów w procesorze, można wyróżnić w nim kilka zasadniczych modułów: Blok wstępnego pobierania i dekodowania instrukcji. Odpowiada on za dostarczenie kolejnych poleceń z pamięci operacyjnej i przekazanie ich do odpowiedniej jednostki wykonawczej. Główny blok wykonawczy to jednostka arytmetyczno-logiczna ALU. Zapewnia ona prawidłowe przetworzenie wszystkich danych stałoprzecinkowych. ALU wyposażony jest w niewielką zintegrowaną pamięć, nazywaną zestawem rejestrów. Każdy rejestr to pojedyncza komórka używana do chwilowego przechowywania danych i wyników. FPU, czyli koprocesor wykonujący wszystkie obliczenia zmiennoprzecinkowe. Po zakończeniu "obliczeń" dane będące wynikiem przetwarzania trafiają do modułu wyjściowego procesora. Jego zadaniem jest przekierowanie nadchodzących informacji np. do odpowiedniego adresu w pamięci operacyjnej lub urządzenia wejścia/wyjścia.
MMX Pierwszym wprowadzonym rozszerzeniem multimedialnym, wbudowanym we wszystkie obecnie produkowane modele procesorów, jest zestaw 57 instrukcji arytmetyki stałoprzecinkowej typu SIMD, znany pod nazwą MMX. 3DNow! Firma AMD wprowadziła 21 nowych instrukcji zmiennoprzecinkowych typu SIMD-FP zorientowanych na wspomaganie grafiki trójwymiarowej. Był to pierwszy przypadek wprowadzenia tak istotnych zmian do architektury procesora przez firmę inną niż Intel. SIMD-FP procesorów AMD wykorzystuje do działania połączone w pary 64-bitowe rejestry MMX - co niestety, utrudnia automatyczną optymalizację kodu programu, gdyż wymagany jest podział danych na dwa segmenty.
SSE Również Intel wprowadził w swoich procesorach Pentium III, instrukcje zmiennoprzecinkowe SIMD-FP. Instrukcje te są wykonywane przez wyspecjalizowaną jednostkę operującą na ośmiu 128-bitowych dedykowanych rejestrach - co sprzyja optymalizacji kodu programu.
Historia procesorów 2010 pojawiły się procesory wielordzeniowe 2011 pojawił się procesor do zastosowań serwerowych Aubrey Isle w technologii 32nm składający się z 32 rdzeni. 2011 pierwszy procesor Intela o nazwie kodowej Ivy Bridge wykonany w technologii 22nm (najmniejsza cząstka procesora mierzy 22nm). Zastosowano także prowadzenie ścieżek w kilku warstwach - 3D stacking. W celu optymalizacji obciążenia procesora wyposażono procesory w funkcje, np. wykonywanie instrukcji wg zasady out by order - przewidywanie rozgałęzień- pozwalają procesorowi zająć się podczas oczekiwania innymi obliczeniami. W procesorach wielordzeniowych to zadanie jest rozwiązane z wykorzystaniem wielowątkowości Hyperthreading (jeśli jeden z czterech wątków rdzenia będzie musiał podczas obliczeń czekać na pamięć RAM kolejny wirtualny rdzeń przejmie inne zadanie i będzie wykonywał je do czasu aż będzie musiał czekać. Im większa technologia wykonania tym więcej energii trzeba do działania układu, układ szybciej się grzeje, jest głośniejszy. Intel Pentium G2120 (22nm) maksymalna moc 79W, AMD-K6-5400K (32nm) moc 100W.
Proces wytwarzania procesorów: Układ scalony składa się z setek tysięcy (milionów) tranzystorów wytworzonych na krzemowej płytce. 8-rdzeniowy procesor Intel Core-i7 składa się z 732mln tranzystorów, zajmując powierzchnię 263mm2. Wytworzenie takiego procesora trwa od 12 do 15tygodni. Materiałem wyjściowym do produkcji procesora jest krzemowy wafel o średnicy 200-300mm i grubości od 0,5 do 1mm (na takiej powierzchni mieści się od 300 do 450 sztuk procesorów). Wafle do wykonywania układów scalonych wytworzone są z czystego krzemu (klasa Electronic Grade Silicon), 1 atom zanieczyszczeń na 1mld atomów krzemu. Po stopieniu krzemu wykonywany jest jeden monokryształ o ściśle określonej strukturze i niewielkiej liczbie defektów - w procesie powolnego wyciągania kryształowego zarodka. Taki jeden monokryształ jest dużym blokiem w kształcie walca (ingot - wlewek) ważący do 225kg i wysokości ok 2m i średnicy np. 300mm. Jest on cięty na plasterki diamentowym ostrzem do uzyskania płytki szlifowanej i polerowanej. Cała obróbka jest wykonywana w bardzo czystych i bezpyłowych pomieszczeniach - pył osadzający się na płytce krzemu uszkadza delikatne obwody układu scalonego; jeden źle działający tranzystor (na kilkaset mln) sprawia że procesor będzie źle działał i nadawał się do wyrzucenia (odpadów jest ok 30% wszystkich wytwarzanych układów scalonych). Nanoszenie innych pierwiastków na podłoże krzemowe odbywa się w formie gazowej lub poprzez bombardowanie podłoża krzemowego jonami pierwiastków (metali z grupy III lub V).
Wielowątkowość - możliwość przetwarzania dwóch wątków programu na jednym rdzeniu. Efekt jest gorszy niż w przypadku dodatkowego fizycznego rdzenia, ale w układach Intela ( z funkcją hyper-threading) daje dodatkowo 10-20% wydajności. Wielordzeniowość - większość aplikacji korzysta z 2,4,6,8 rdzeni. Im więcej ma ich procesor tym będzie szybszy, choć wydajność wcale nie rośnie proporcjonalnie do liczby rdzeni. Procesory z rodziny Intel Core-i7 wyposażony jest np. w 4 rdzenie z których każdy dysponuje 4 jednostkami obliczeniowymi - dane pomiędzy rdzeniami wymieniane są poprzez dużą pamięć podręczną L3
APU Accelerated Processing Unit -(2011) układ mający dodatkowe elementy przetwarzające dane poza CPU w układzie graficznym. Procesory AMD (początek AMD Fussion) Cache L3 - bufor pomiędzy szybszymi układami o mniejszej pojemności a wolniejszymi o większej pojemności. Cache L3 w procesorze pośredniczy wymianie danych między Cache L2 a pamięcią RAM komputera.
Turbo Boost - dynamiczne zwiększanie częstotliwości rdzeni procesora w zależności od ich obciążenia. Gdy zostają obciążone wszystkie rdzenie (np. 4) są automatycznie podkręcane o jeden stopień. Jeśli obciążonych jest mniej rdzeni to ich częstotliwość jest podkręcana do wyższej wartości, gdy obciążony jest tylko jeden rdzeń jego zegary osiągają jeszcze większą częstotliwość. W tym czasie pozostałe rdzenie są wyłączone i nie pobierają energii.
Najnowsze procesory zbudowane z 3 miliardów tranzystorów.
Przykłady procesorów: Intel Core i5: 4 rdzenie 45nm, brak Hyper Threading, jest Turbo Boost Intel Core i3: 2 rdzenie, zintegrowany układ graficzny, 32nm, Hyper Threading AMD Phenom II X4 AMD Athlon II X4: 4 rdzenie, zgodne z DDr2, przystawka AM2+ Intel COre 2 Duo: 2 rdzenie Intel Core 2 Quad: przystawka LGA775 AMD Athlon II X3: 3 rdzenie Intel Core i5: przystawka LGA1145 Intel COre i7: przystawka LGA1366 AMD FX 8150 Bulldozer: 8 rdzeni, 1.2mld tranzystorów AMD Phenom II X6: 6 rdzeni, AMD Phenom II X3: 3 rdzenie (produkty 4 rdzeniowe z odłączonym/uszkodzonym jednym rdzeniem),
Intel Pentium Procesory Pentium uznawane za 32-bitowe, tak jest w istocie - rejestry procesora są 32-bitowe, jednakże wewnętrzne ścieżki mają nawet do 256 bitów szerokości, dzięki czemu prędkość wewnętrznych transferów jest większa niż mogłoby wynikać z owych 32-bitów. Pentium posiada dwa potoki przetwarzające instrukcje stałoprzecinkowe (U i V) oraz jednostkę zmiennoprzecinkową. Jeżeli jest to możliwe, procesor przetwarza w każdym cyklu dwie instrukcje (po jednej na potok). Potoki pracują wyłącznie w trybie synchronicznym, niemożliwe jest więc np. przewidywanie skoków przez jeden z nich, ponieważ zatrzymanie jednego z potoków prowadzi do zatrzymania drugiego. Jednak Pentium posiada dodatkowy moduł dynamicznego przewidywania rozgałęzień BPU (ang. Branch Prediction Unit). Moduł ten przewiduje rozgałęzienia, czyli "wkłada do potoku te instrukcje, które jego zdaniem będą wykonywalne. Błędne przewidzenie rozgałęzienia powoduje, że jeden z potoków musi wstrzymać przetwarzanie, a więc i drugi potok nie może być realizowany
Intel Pentium MMX Procesor Pentium MMX jest jednostką typu SIMD (Single Instruction Multiple Data), czyli wykonuje operację na kilku grupach danych jednocześnie. MMX stanowi rozszerzenie procesora Pentium o nowe rozkazy multimedialne. Rozszerzenie spowodowało pojawienie się nowych instrukcji (i nowych wyprowadzeń) oraz nowych rejestrów wykorzystywanych do tego celu. Istotne zmiany procesora Pentium MMX w stosunku do jego poprzednika.
Intel Celeron A Celerony A Medocino (określenie "medocino" identyfikuje strukturę krzemową) posiadają znaczniki 300A, 333, 366 i wyżej... Wyposażone są one w zintegrowaną pamięć podręczną L2 o skromnym rozmiarze 128 kb, która jest taktowana z pełną prędkością zegara procesora, czyli z prędkością cache L1. Medocino współpracuje z magistralami 66/100MHz. Dodatkowo, Celeron A jako pierwszy dał możliwość "podkręcania" (ang. overclocking)
AMD Duron Procesor Duron został stworzony przez firmę AMD głównie z myślą o klientach, którzy potrzebują dużej mocy obliczeniowej za niewielką cenę. Ograniczenie kosztów możliwe stało się dzięki zmniejszeniu ilości pamięci ciche poziomu L2 do 64 KB. Pamięć cache poziomu L1 w procesorze Durom wynosi 128 KB, a więc po raz pierwszy w historii procesor rodziny x86 posiada mniejszy cache poziomu L2 niż poziomu L1. Nie powoduje to jednak znacznego spadku wydajności dzięki zastosowaniu specjalnej organizacji pamięci podręcznej. Zaimplementowana w Duronie interpretacja rozkazów 3DNow! i Enchanced 3DNow!, które wspomagają operacje multimedialne, pozwala na równoległe przetwarzanie kilku liczb arytmetyki stałoprzecinkowej jak i zmiennoprzecinkowej, a więc zwiększenie szybkości przetwarzania danych. Taki sposób przetwarzania określany jest jako SIMD (ang. Single Instruction Multiple Data) i polega na wykonywaniu jednej instrukcji na bloku danych. Procesor AMD Duron komunikuje się z pamięcią SDRAM z
Procesor INTEL Pentium II gniazdo Slot 1 300 MHZ częstotliwość procesora 512 kb Cache L2 100 MHz FSB 2.0 V napięcie rdzenia
Intel Pentium II Pentium II to model, który pierwszy przełamał granicę taktowania 200 MHz. Tym co odróżniło go od poprzedników był zupełnie nowy image. Otóż procesor Pentium II pojawił się na pokładzie specjalnej karty o 242 końcówkach, którą wkłada się do złącza krawędziowego o nazwie Slot 1 (patrz rysunek dla Pentium 3). Dodatkową zmianą było oddzielenie pamięci podręcznej L2 (ang. Second Level Cache) od procesora, a stało się to dlatego, że taki sposób produkcji był znacznie tańszy. Pamięć L2 miała rozmiar 256/512 kb, taktowana była częstotliwością równą połowie taktu zegara procesora i znajdowała się na płytce wraz z procesorem. Dodatkowe informacje o konstrukcji są następujące: pamięć podręczna L1 ma rozmiar 32KB (po 16KB dla kodu programu i danych), wewnętrzna magistrala ma szerokość 300 bitów, procesor może zaadresować 64 GB (wirtualnie 64 TB), zasilanie wynosi 2,8V, jako pierwszy współpracuje z magistralą taktowaną 100 MHz. Pentium II przetwarza dane w trzech równoległych dwunastostopniowych potokach, a jądro procesora pracuje w układzie RISC (ang. Reduced Instruction Set Computer) - instrukcje rozkładane są na proste mikrooperacje i grupowane w centralnym zbiorniku (ang.
Procesor INTEL Pentium III gniazdo Slot 1 500 MHZ częstotliwość procesora 512 kb Cache L2 100 MHz FSB 2.0 V napięcie rdzenia
Intel Pentium III Procesor ten (nazwany roboczo Katmai), tak jak jego poprzednik, ma architekturę 32-bitową. Ponadto posiada zintegrowaną 512 kb pamięć podręczną drugiego poziomu, wykorzystuje poszerzoną 256-bitową szynę BSB (ang. Back Side Bus) zapewniającą szybszy transfer wewnętrzny danych. Procesor zasilany jest napięciem 1.65/1.7 V (zależnie od modelu). Pentium III dysponuje poszerzoną listą rozkazów. Dodano ponad 70 rozkazów określanych jako ISSE (ang. Internet Streaming SIMD Extentions), czyli wykorzystanie znanych z MMX technik przetwarzania kilku danych z użyciem jednego rozkazu. Ponadto, cache L2 jest zintegrowany z procesorem i jest taktowany z taką samą szybkością jak rdzeń procesora. Interfejs magistrali zewnętrznej w procesorze Intela oparty jest na standardzie - GTL+ (ang. Gunning Tranceiver Logic). Magistrala jest taktowana z częstotliwością 133 MHz.
Procesor INTEL Celeron gniazdo Socket 370 600 MHZ częstotliwość procesora 128 kb Cache L2 66 MHz FSB 1.7 V napięcie rdzenia
Procesor INTEL Celeron gniazdo Socket 370 1200 MHZ częstotliwość procesora 256 kb Cache L2 100 MHz FSB 1.475 V napięcie rdzenia
Procesor INTEL Celeron gniazdo Socket 478 1,7 GHZ częstotliwość procesora 128 kb Cache L2 400 MHz FSB efektywne (technologia quad pumping) 100 MHz FSB rzeczywiste 1.75 V napięcie rdzenia
Procesor INTEL Pentium 4 gniazdo Socket 478 1,7 GHZ częstotliwość procesora 256 kb Cache L2 400 MHz FSB efektywne (technologia quad pumping) 100 MHz FSB rzeczywiste 1.75 V napięcie rdzenia
Intel Pentium 4 Procesor Pentium 4 jest najnowszym produktem firmy Intel. Wyróżnia go wysoka częstotliwość pracy układu - ponad 1,4 GHz. Wraz z procesorem zintegrowana jest pamięć cache L2 o pojemności 256 kb, która pracuje tak jak u poprzednika, z pełną prędkością procesora. Brak jest natomiast pamięci cache L1. Usprawnione jest przetwarzanie potokowe, a długość kolejki rozkazów wynosi 20. Za tłumaczenie kodu x86 odpowiada wyspecjalizowany dekoder.
Procesor INTEL Celeron D gniazdo LGA 775 2,66 GHZ częstotliwość procesora 256 kb Cache L2 533 MHz FSB efektywne (technologia quad pumping) 133 MHz FSB rzeczywiste
Procesor AMD Athlon gniazdo Socket 462 1800 oznaczenie (parametry do odczytu wg tabeli w dodatku B) 1,53 GHZ częstotliwość procesora 256 kb Cache L2 266 MHz FSB efektywne 133 MHz FSB rzeczywiste
AMD Athlon Thunderbird Architektura procesora Athlon Thunderbird jest niemal identyczna jak ta, która charakteryzuje procesor AMD Duron. Najbardziej istotną różnicą jest rozmiar pamięci cache L2 działający z pełną szybkością jądra układu, który wynosi 256 KB. Pamięć ta pracuje w trybie exclusive L2 cache memory. Procesor Athlon współpracuje z 200/266 MHz magistralą systemową, dzięki czemu możliwe jest dostarczenie do procesora 1.6/2.13 GB danych. Ten wydajny interfejs magistrali zewnętrznej Thunderbirda - EV6 - pochodzi od procesorów Alpha firmy DEC. W Athlonie, tak jak i w Duronie, zaimplementowane są rozkazy SIMD - 3DNow! (21 instrukcji) oraz Enhanced 3DNow! (45 instrukcji), dzięki którym uzyskano przyspieszenie blokowych operacji na danych. Dzięki tym rozszerzeniom procesor potrafi efektywniej wykonywać takie zadania jak:
Procesor AMD Athlon 64 gniazdo Socket AM2 3200 oznaczenie (parametry do odczytu wg tabeli w dodatku B) 2,0 GHZ częstotliwość procesora 512 kb Cache L2 400 MHz FSB efektywne 200 MHz FSB rzeczywiste
Procesor AMD Athlon 64 X2 gniazdo Socket AM2 4000 oznaczenie (parametry do odczytu wg tabeli w dodatku B) X2 - dwurdzeniowy procesor o częstotliwości 2*2,0 GHZ 1 MB Cache L2 400 MHz FSB efektywne 200 MHz FSB rzeczywiste
AMD Phenom (2010) procesor wielordzeniowy firmy AMD wykonany w technologii 65nm(2007) oraz 45nm (2008). Montowany w przystawce AM2, AM2+. Dwurdzeniowy Phenom X2, trzyrdzeniowy Phenom X3
Intel Core 2 architektura 64 bitowa, w 1 cyklu wykonują średnio 3,5 rozkazu, dwurdzeniowy procesor, LGA775, 45nm lub 65nm Intel Core 2 Duo posiada 2 rdzenie, Intel Core 2 Quad 4 rdzenie, Intel Core 2 Extreme 4 rdzenie
Intel Core i5 LGA1156, BGA-1288, BGA- 1023. Procesory mające oprócz CPU także GPU. Intel Core i5 (2009), zintegrowany kontroler karty graficznej i pamięci DDR3, LGA1150, LGA1155, LGA1156
Intel Core i7 (2008), 45nm i 32nm, LGA1366, Zmieniono strukturę magistrali FSB i mostka północnego. Pamięć cache: L1 32kB/rdzeń, L2 256kB/rdzeń, L3 8MB wspólna dla wszystkich rdzeni. 4 rdzenie, 8 wątków.