Pomieszczenie wysokiej czystości (
Clean room) w fabryce procesorów.
Procesor (ang. processor), także CPU (ang. Central Processing Unit) – urządzenie cyfrowe sekwencyjne, które pobiera dane z pamięci, interpretuje je oraz wykonuje jako rozkazy. Wykonuje on ciąg prostych operacji (rozkazów) wybranych ze zbioru operacji podstawowych określonych zwykle przez producenta procesora jako lista rozkazów procesora.
Procesory (zwane mikroprocesorami) wykonywane są zwykle jako układy scalone zamknięte w hermetycznej obudowie, wielokrotnie 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
W funkcjonalnej strukturze procesora da się wyróżnić takie elementy, jak:
- zespół rejestrów do przechowywania danych oraz wyników, rejestry bywają ogólnego przeznaczenia albo posiadają 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 oraz 32 nm, pracujących z częstotliwością kilku GHz. Intel planuje wydanie procesorów wykonanych w rozmiarze technologicznym 22 nm (Ivy Bridge) na przełomie 2011 oraz 2012 roku.
Aby ograniczyć straty związane z powstawaniem defektów w tak małych strukturach, fabryki procesorów muszą posiadać pomieszczenia o niezwykłej czystości, co jest bardzo kosztowne.
Wielordzeniowość oraz procesory pomocnicze
Współcześnie przeważajaca ilość 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 oraz 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). Najszybsze dziś modele posiadają rdzeń taktowany zegarem 3,33 GHz (C2D E8600). Wymieniony procesor oparto o architekturę Penryn oraz wykonano w procesie technologicznym 45 nm (tj. największa długość kanału tranzystora wynosi 45 nm).
Największy konkurent Intela, czyli AMD, wprowadził do sprzedaży popularny model procesora dwurdzeniowego o nazwie Athlon 64 X2. Obie firmy posiadają dziś w ofercie także modele czterodzeniowe (niektóre Core i5 oraz Core i7 Intela oraz AMD Athlon II X4 oraz Phenom II X4 AMD) oraz sześciordzeniowe (Phenom II X6 oraz Core i7 serii 9x0) przeznaczone do komputerów klasy desktop. Dostępne procesory do zastosowań serwerowych potrafią posiadać do 8 (Intel Xeon), albo nawet 12 rdzeni (AMD Opteron) (stan na lipiec 2011). Przewiduje się, że w przyszłości, przez przynajmniej parę następnych lat, liczba rdzeni w procesorach wielordzeniowych dostępnych na rynku będzie się podwajać w tempie podobnym jak liczba tranzystorów w pojedynczym układzie, czyli zgodnie z prawem Moore'a ok. co 2 lata.
Projektanci procesorów próbują także innych metod zwiększania wydajności procesorów, jak np. Hyper-Threading, gdzie każdy rdzeń może się zachowywać jak dwa procesory logiczne, dzielące pomiędzy siebie zasoby pamięci podręcznej oraz jednostek wykonawczych. Gdy jeden z konkurujących ze sobą procesów pozostawia niewykorzystane zasoby, proces przypisany do drugiego procesora logicznego może ich użyć, co w sprzyjających okolicznościach może prowadzić do sumarycznego wzrostu wydajności o parę do kilkunastu procent.
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.
Komputer oprócz procesora głównego (CPU) ma procesory pomocnicze: obrazu (GPU, najnowsze konstrukcje pozwalają na integrację CPU z GPU w APU), dźwięku, koprocesory arytmetyczne (od lat 90. na ogół są zintegrowane z CPU).
Jednostka centralna
Procesor bywa też nazywany jednostką centralną (poprzez tłumaczenie ang. CPU, Central Processing Unit w sposób prawie dosłowny). Część użytkowników jednostkę centralną kojarzy z handlowym terminem określającym jednostką systemową komputera złożoną z elementów takich jak procesor, płyta główna, karty rozszerzeń, pamięć operacyjna, dysków twardych zamkniętych we wspólnej obudowie, zwykle nie obejmującą takich urządzeń peryferyjnych jak monitor, klawiatura czy drukarka.
Rozkazy procesora
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 oraz 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 albo prawo
- skoki
Instrukcje procesora identyfikowane są na podstawie binarnego kodu maszynowego, jednak dany kod nie musi oznaczać wykonywania tych samych operacji przez procesor do tego samego (lub innego) zadania.
W tym celu, w procesorach niedostępnych masowo da się spotkać możliwość programowania rozkazów CPU, czyli mikroprogramowania. Rozwiązanie takie daje pełniejszą kontrolę nad procesorem oraz możliwość np. zwiększenia wydajności procesora w pewnych zastosowaniach itp., w wydatnie większym stopniu niż w przypadku np. dostępnych powszechnie procesorów, w których kody maszynowe są na stałe przypisane do listy wykonywanych mikroinstrukcji.
Sprawdź też