Procesor (ang. processor), także CPU (ang. Central Processing Unit) – urządzenie cyfrowe sekwencyjne, które pobiera dane z pamięci, interpretuje je i wykonuje jako rozkazy. Wykonuje on ciąg prostych operacji (rozkazów) wybranych ze zbioru operacji podstawowych określonych zazwyczaj przez producenta procesora jako lista rozkazów procesora. Mikroprocesory 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ź). Jedną z podstawowych cech procesora jest długość (liczba bitów) słowa, na którym wykonywane są podstawowe operacje obliczeniowe. Jeśli słowo ma 64 bity, mówimy, że procesor jest 64-bitowy. Innym ważnym parametrem określającym procesor jest szybkość, z jaką wykonuje on rozkazy. Przy danej architekturze procesora, szybkość ta w znacznym stopniu zależy od czasu trwania pojedynczego taktu. Budowa logiczna mikroprocesora: W funkcjonalnej strukturze procesora można wyróżnić takie elementy, jak: • zespół rejestrów do przechowywania danych i wyników, rejestry mogą być ogólnego przeznaczenia lub mają specjalne przeznaczenie, • jednostkę arytmetyczną (arytmometr) do wykonywania operacji obliczeniowych na danych, • układ sterujący przebiegiem wykonywania programu, • inne układy, w które producent wyposaża procesor w celu usprawnienia jego pracy. Rozmiary elementów: Jednym z parametrów 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 możliwa do osiągnięcia częstotliwość pracy. Współczesne procesory używane w komputerach osobistych wykonywane są w technologii pozwalającej na uzyskanie elementów o rozmiarach 45 i 32 nm, pracujących z częstotliwością kilku GHz. Intel w 2012 roku wydał procesory wykonane w rozmiarze technologicznym 22 nm (Ivy Bridge). Wielordzeniowość i procesory pomocnicze: Większość współczenych procesorów ma wielordzeniową budowę. Pierwszym procesorem wielordzeniowym ogólnego przeznaczenia był procesor Power 4 firmy IBM wprowadzony na rynek w roku 2001. Pierwszymi procesorami wielordzeniowymi architektury x86 były wersje procesorów Opteron firmy AMD i Pentium Extreme Edition firmy Intel wprowadzone w kwietniu 2005 roku. Popularnym modelem firmy Intel, który kontynuował ten trend był Intel Pentium D. Prawdziwym przebojem stał się dopiero Intel Core 2 Duo zbudowany na bazie architektury Conroe (65 nm). W roku 2007 Intel zaprezentował testy układu scalonego wyposażonego w 80 rdzeni ogólnego przeznaczenia, który osiągnął wydajność ponad 1 Tflops. 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) • (podział ze względu na sposób adresowania danych) • 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 • skoki • bezwarunkowe • warunkowe Układ sekwencyjny jest jednym z rodzajów układów cyfrowych. Charakteryzuje się tym, że stan wyjść y zależy od stanu wejść x oraz od poprzedniego stanu, zwanego stanem wewnętrznym, pamiętanego w zespole rejestrów (pamięci). Lista rozkazów procesora (ang. instruction set) – zestaw podstawowych instrukcji, jakie dany procesor potrafi wykonać. Producenci procesorów podają zazwyczaj szczegółowe informacje dotyczące każdego z rozkazów: • działania jakie dana instrukcja wykonuje: co dokładnie robi (algorytm), jak wpływa na stan procesora (zawartość rejestrów, modyfikacja rejestru flag itp.), jakie może spowodować błędy, itp.; • sposób kodowania rozkazu, tj. jego binarna postać rozpoznawana przez układ elektroniczny; • proponowane mnemoniki udostępniane przez asemblery. Rodzaje list rozkazów procesora: RISC (Reduced Instruction Set Computer) – nazwa architektury mikroprocesorów, która została przedstawiona pod koniec lat 70. Jej podstawowe cechy to: 1. Liczba rozkazów zredukowana do niezbędnego minimum. Wynosi ona kilkadziesiąt. Upraszcza to znacznie dekoder rozkazów. 2. Redukcja trybów adresowania, dzięki czemu kody rozkazów są prostsze, bardziej zunifikowane, co dodatkowo upraszcza wspomniany wcześniej dekoder rozkazów. 3. Ograniczenie komunikacji pomiędzy pamięcią a procesorem. 4. Zwiększenie liczby rejestrów (np. 32, 192, 256, podczas gdy np. w architekturze x86 jest zaledwie 8 rejestrów), co również ma wpływ na zmniejszenie liczby odwołań do pamięci. CISC (ang. Complex Instruction Set Computer) – architektura procesora o następujących cechach: • występowanie złożonych, specjalistycznych rozkazów (instrukcji), które do wykonania wymagają od kilku do kilkunastu cykli zegara, • szeroka gama trybów adresowania, • przeciwnie niż w architekturze RISC rozkazy mogą operować bezpośrednio na pamięci (zamiast przesłania wartości do rejestrów i operowania na nich), • powyższe założenia powodują, iż dekoder rozkazów jest skomplikowany. Pamięć podręczna (ang. cache) – mechanizm, w którym część spośród danych zgromadzonych w źródłach o długim czasie dostępu i niższej przepustowości jest dodatkowo przechowywana w pamięci o lepszych parametrach. Ma to na celu poprawę szybkości dostępu do tych informacji, które przypuszczalnie będą potrzebne w najbliższej przyszłości. Pamięć podręczna jest elementem właściwie wszystkich systemów – współczesny procesor ma 2 albo 3 poziomy pamięci podręcznej oddzielającej go od pamięci RAM. Dostęp do dysku jest buforowany w pamięci RAM, a dokumenty HTTP są buforowane przez pośredniki HTTP oraz przez przeglądarkę. Pamięć podręczna przyspiesza dostęp do relatywnie wolnej pamięci RAM. Charakteryzuje się bardzo krótkim czasem dostępu. Jest używana do przechowywania danych, które będą w niedługim czasie przetwarzane. Na współczesnych procesorach są 2 lub 3 poziomy pamięci podręcznej L1 (zintegrowana z procesorem), a także L2 i L3 (umieszczone w jednym układzie scalonym razem z procesorem lub na płycie głównej). Najczęściej jest to pamięć typu SRAM. Niektóre systemy pamięci podręcznej próbują przewidywać, które dane będą potrzebne i pobierają je wyprzedzając żądania. Np. pamięć podręczna procesora pobiera dane w pakietach po kilkadziesiąt czy też więcej bajtów, pamięć podręczna dysku zaś nawet do kolejnych kilkuset kilobajtów czytanego właśnie pliku. Magistrale procesora. Magistrala (ang. Bus) – jest zestawem ścieżek łączących jednocześnie kilka komponentów oraz umożliwiającym komunikację między nimi. W zależności od zastosowanej technologii, magistrala może przesyłać informację w sposób równoległy lub szeregowy, a w zależności od zastosowanego sposobu kontroli przepływu danych może być asynchroniczna lub synchroniczna. Magistralne charakteryzuje poprzez dwa parametry: • Szerokości – która oznacza liczbę jednocześnie wysłanych bitów w jednostce czasu. Jeżeli magistrala równoległa jednocześnie przesyła np. 32 bity, nazywa się ją magistralą 32 bitową. • Szybkości – która określa, jak szybko dane są przesyłane przez ścieżki magistrali. Szybkość określana jest w hercach (Hz) lub wielokrotnością tej jednostki (MHz albo GHz) Oto magistrale umożliwiające komunikację procesora z innymi komponentami: • Magistrala danych • Magistrala adresowa • Magistrala pamięci • Magistrala sterująca Magistrala danych (ang. Data Bus) – umożliwia wymianę danych między procesorem, a chipsetem. Jest to najważniejsza magistrala w systemie. Oto trzy rodzaje magistrali danych: • FSB • Hyper Transport • QPI Magistrala adresowa (ang. Address Bus) – jest to specjalny zestaw ścieżek służący do adresowania pamięci operacyjnej. Znając szerokość magistrali adresowej, możemy określić, z jaką ilością pamięci może współpracować procesor. Magistrala pamięci (ang. Memory Bus) – łączy procesor z pamięcią operacyjną RAM, umożliwiając wymianę danych. Po zaadresowaniu konkretnych komórek następuje proces zapisu lub odczytu danych przez centralną jednostkę obliczeniową. Procesory ze zintegrowanym kontrolerem pamięci połączone są bezpośrednio z pamięcią operacyjną za pomocą magistrali pamięci , dzięki czemu nie ma potrzeby angażowania chipsetu podczas wymiany danych między procesorem a pamięcią operacyjną. Współczesne magistrale pamięci to rozwiązania równoległe o szerokości 64 bitów, które umożliwiają transfer nawet do 12 GB/s. Magistrala sterująca (ang. Control Bus) – odpowiedzialna jest za przesyłanie sygnałów sterujących między procesorem, pamięcią RAM i pozostałymi urządzeniami wejścia/wyjścia. Dzięki niej urządzenia współpracujące z procesorem informowane są o przydzielonych im zadaniach. FSB (ang. Front Side Bus) – oparta jest na dwóch magistralach: • Zewnętrznej FSB, która łączy procesora z mostkiem północnym chipsetu; • Wewnętrznej BSB (ang. Back Side Bus) łączącej rdzeń z wewnętrzną pamięcią Cache L2 Magistrala FSB pracuje równolegle z prędkością płyty głównej i umożliwia przesył danych w trybie half-duplex. Ów przesył danych jest głównym ograniczeniem magistrali FSB, powoduje znaczne opóźnienia podczas wymiany danych między procesorem, a chipsetem. Dodatkowym minusem architektury DIB jest pośrednictwo magistrali FSB w wymianie danych pomiędzy procesorem, a pamięcią RAM, ponieważ kontroler pamięci został zintegrowany z chipsetem. Architektura Hyper Transport (AMD) jest to magistrala opracowana przez AMD, wykorzystywana do tworzenia szybkich połączeń między różnymi komponentami, np. procesorem a chipsetem, rdzeniami wewnątrz procesora, serwerami, czy urządzeniami sieciowymi. Point to point – umożliwia bezpośrednie połączenie dwóch komponentów bez współdzielenia przepustowości, jak to ma miejsce w tradycyjnych magistralach równoległych. AMD wykorzystuje magistralę LDT do komunikacji procesora z chipsetem, zastępując FSB. Hyper Transport umożliwia transfer w trybie full-duplex, czyli pozwala na jednoczesne wysyłanie i odbieranie danych co niweluje opóźnienia w transmisji. Architektura QPI (Intel) Wraz z wprowadzeniem Intel Core i7, magistralę FSB zastąpiono szeregową magistralą QPI (ang. Quick Path Interconnect) cechującą się dużą wydajnością i małymi opóźnieniami. Podobnie jak LDT, magistrala firmy Intel jest rozwiązaniem szeregowym, pełno dupleksowym typu point-point, oparty na architekturze magistrali PCI Express. Tryby pracy procesorów. Jedną z wielu cech procesorów jest kompatybilność wsteczna. Stosowanie starszego oprogramowania na komputerze wyposażony w nowy procesor, umożliwiają specjalne tryby w których procesor może pracować: Tryb rzeczywisty – umożliwia uruchamianie w jednym czasie tylko jednej aplikacji, ponieważ nie ma możliwości ochrony danych zapisanych w pamięci RAM. Tryb sprawdzał się z systemem tekstowym DOS. Jego największa wada to - brak zabezpieczeń danych w pamięci objawiał się małą stabilnością i częstym zawieszaniem systemu Tryb chroniony – Tryb został wyposażony w specjalny mechanizm chroniący dane w pamięci RAM przed nadpisaniem przez inną aplikację. Wirtualny tryb rzeczywisty – powstał w celu uruchamiania aplikacji 16 bitowy na platformie 32 bitowej. Każdej aplikacji 16 bitowej tryb wirtualny przydziela prywatny obszar pamięci operacyjnej o rozmiarze 1 MB. Tryb pozwala na jednoczesne uruchomienie wielu aplikacji 16 bitowych na procesorze 32 bitowym bez niebezpieczeństwa zawieszenia systemu operacyjnego. Tryb 64 bitowy – umożliwia uruchamianie aplikacji 64 bitowych na platformie 64 bitowej. Tryb zgodności – umożliwia procesorom 64 bitowym obsługę aplikacji 32 i 16 bitowych. Na ogólną wydajność procesora wpływają następujące czynniki: Wewnętrzna Architektura procesora – są to szerokość magistrali, rejestrów i jednostek ALU oraz sposób współpracy procesora z pamięcią operacyjną i urządzeniami I/O. W procesorach wielordzeniowych ważny jest mechanizm zarządzania zadaniami rozdzielanymi między rdzenie. Szybkość zegara pracy – Im wyższa częstotliwość wyrażana w hercach Hz, megahercach MHz, gigahercach GHz, tym szybciej procesor może wykonywać operację Wielkość pamięci Cache – Najnowsze procesory mają po kilka MB pamięci podręcznej Cache. Podzielone są na trzy poziomy L1, L2, L3. Zwiększenie ilości pamięci Cache pozwala przyśpieszyć pracę procesora bez konieczności modyfikowania wewnętrznej struktury Dodatkowe funkcje – mają one za zadanie poprawiać możliwości CPU. Nowe architektury wyposażone są w dodatkowe funkcje zwiększające ich wydajność i możliwości. Oto najważniejsze: • MMX –opracowane przez firmę Intel dodatkowe instrukcje stałoprzecinkowe wspomagające mikroprocesor w przetwarzaniu operacji typu: rendering grafiki 3D, kompresja-dekompresja strumienia MPEG etc. • SSE, SSE2, SSE3, SSE4 – zestawy stało i zmiennoprzecinkowe. Instrukcje wpływają na przyśpieszenie takich operacji jak przetwarzanie grafiki 3D czy strumieniowe przetwarzanie dźwięku i obrazu • 3DNow, Enhanced 3DNow!, 3DNow! Professional – opracowane dla procesorów K6 jako odpowiedź firmy AMD na rozszerzenia SSE. • Hyper-Threading Technology – opracowana prze Intel, technologia umożliwiająca wykonywanie przez jeden procesor dwóch niezależnych strumieni kodów programu w tym samym czasie. • Przetwarzanie dwurdzeniowe – zapewnia prawdziwie równoległe wykonywanie operacji obliczeniowych przez dwa niezależne rdzenie pracujące z tą samą częstotliwością. Każdy rdzeń może wykonywać do czterech pełnych instrukcji jednocześnie. • Dynamic Execution – zapewnie wykonywanie większej liczby instrukcji w jednym cyklu zegara. Obudowy procesorowe Procesor jako taki to tak naprawdę krzemowa płytka wielkości 1 cm2. Jest bardzo podatna na działanie czynników zewnętrznych, dlatego musi być umieszczona w specjalnej powłoce ceramicznej, plastikowej lub metalowej. Obudowa procesora posiada wyprowadzenia (piny albo nóżki) umożliwiające przepływ informacji w postaci impulsów elektrycznych po zamontowaniu w gnieździe płyty głównej. • PGA (ang. Pin Grid Array) – bardzo popularny standard obudów procesorowych z nóżkami w kształcie symetrycznej siatki. Odmiany standardu PGA: • PPGA (ang. Plastic PGA) – obudowa PGA, w której do rdzenia wykorzystano plastikową powłokę. • CPGA (ang. Ceramic PGA) – obudowa PGA, w której do osłony rdzenia wykorzystano ceramiczną powłokę • FC-PGA (ang. Fili Chip PGA2) – obudowa PGA, w której rdzeń został przeniesiony na górną część obudowy w celu lepszego odprowadzenia ciepła i zatopiony w plastikowej osłonie. • FC-PGA2 (ang. Filip Chip PGA2) – obudowa PGA, podobna do FC-PGA, w której rdzeń w plastikowej osłonie dodatkowo ukryty został pod stalową blaszką. • SPGA (ang. Staggered PGA) – odmiana PGA, w której rozmieszczenie nóżek w rzędach i kolumnach jest niesymetryczne. • SECC (ang. Single Edge Contact Cartridge) – procesor przylutowany jest do płytki drukowanej wraz z pamięcią Cache L2, a całość umieszczona w plastikowej obudowy w postaci kartridża. • SEPP (ang. Single Edge Processor Package) – podobna do SECC z tą różnicą że nie posiada plastikowej osłony. • Micro-FCBGA (ang. Flip Chip Ball Grid Array) – typ obudowy bazujący na BGA, z nóżkami zakończonymi małymi kulkami polepszającymi przepływ prądu między procesorem, a gniazdem. • LGA (ang. Land Grid Array) – typ obudowy, w którym nóżki zastąpiono specjalnymi pozłacanymi stykami Gniazdo procesora (ang. CPU socket lub CPU slot) jest to 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. Na każdej płycie głównej musi być przynajmniej jedno takie gniazdo; determinuje ono rodzaj procesora, jaki jest przez nią obsługiwany. Typ gniazda dla procesora musi być zgodny z określonym procesorem. Dla danego typu gniazda charakterystyczny jest kształt, napięcie rdzenia, prędkość magistrali systemowej oraz inne cechy. Na przykład Slot 1 – Celeron, Pentium II, Pentium III. Podział gniazd: • slot – wyglądem przypomina sloty ISA, PCI i AGP • socket – poziomo położona prostokątna płytka, zawierająca dziurki na piny procesora lub piny, na które wkłada się procesor • Istnieje jeszcze wiele innych gniazd, które jednak są już niestosowane.