Procesor (ang. processor), także CPU (ang. Central Processing Unit

advertisement
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.
Download