Procesory - co, gdzie, jak

 


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.

Procesory (zwane mikroprocesorami) 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

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).

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ść i procesory pomocnicze

Współcześnie większość 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). Najszybsze dziś modele mają rdzeń taktowany zegarem 4.40GHz (AMD A10-6800K).

Największy konkurent Intela, czyli AMD, wprowadził do sprzedaży popularny model procesora dwurdzeniowego o nazwie Athlon 64 X2. Obie firmy mają dziś w ofercie także modele czterordzeniowe (niektóre Core i5 oraz Core i7 Intela i 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 mogą mieć do 10 (Intel Xeon), lub nawet 16 rdzeni (AMD Opteron) (stan na marzec 2012). Przewiduje się, że w przyszłości, przez co najmniej kilka 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 między siebie zasoby pamięci podręcznej i 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 kilka 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 niemal 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, zazwyczaj nieobejmują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 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

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 można 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 znacznie 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.