Porady

Poznajmy technologie: jak działa procesor?

25 czerwca 2015Lenovo

 

Krzemowe serca biją w niezliczonej liczbie maszyn obecnych w naszych domach. Jak są zbudowane i jak działają?

 

Procesor, a dokładniej CPU (Central Processing Unit) czyli centralna jednostka obliczeniowa to mózg komputera, a także tabletów, smartfonów i w zasadzie wszystkich bardziej skomplikowanych współczesnych urządzeń elektronicznych. Klasycznie definiuje się go jako sekwencyjne urządzenie cyfrowe, które pobiera dane z pamięci, odpowiednio interpretuje a następnie wykonuje zawarte w nich polecenia.

 

Krzemowe serce

Procesory wykonywane są zazwyczaj w formie układów scalonych zamkniętych w hermetycznych obudowach. Sercem każdego takiego układu jest monokryształ krzemu – płytka o wielkości ok. 1 cm2. Techniką litografii nanosi się na niego warstwy półprzewodnikowe, z których powstaje sieć tranzystorów. W najnowszych konstrukcjach ich ilość sięga nawet ponad 4 miliardów. Połączenia między nimi wykonane są z różnych metali, najczęściej z miedzi lub aluminium.

 

Na zewnątrz obudowy procesor wyposażony jest w wyprowadzenia, zazwyczaj w postaci nóżek lub, jak ma to miejsce w najnowszych konstrukcjach – w pola stykowe. Wyprowadzenia te umożliwiają procesorowi komunikację z innymi urządzeniami. W przypadku konstrukcji desktopowych czasami także umożliwiają one zamontowanie procesora w specjalnej podstawce. Wyprowadzenia te najczęściej są złocone. Walory estetyczne tego metalu oczywiście nie są tu istotne. Stosuje się go z powodu jego wyjątkowej odporności na utlenianie.

 

Współcześnie spotyka się kilka typów obudów procesorów. W PGA nóżki rozmieszczono w kształcie symetrycznej siatki. Wyróżnia się kilka jej typów: PPGA (Plastic PGA), gdzie do osłony rdzenia wykorzystuje się powłokę plastikową, CPGA (Ceramic PGA) z powłoką ceramiczną, FC-PGA z rdzeniem przeniesionym na górną część obudowy w celu lepszego chłodzenia oraz FC-PGA2, podobną do FC-PGA ale rdzeń procesora dodatkowo osłonięty jest metalową blaszką. W obudowach typu SPGA rozmieszczenie połączeń jest niesymetryczne. W opracowanej przez Intela obudowie LGA nóżki zastąpiono pozłacanymi polami stykowymi. Czasem spotyka się jeszcze obudowy typu SECC, pochodzące z czasów Pentium II i Pentium III. Bariery technologiczne tamtego okresu nie pozwalały umieszczać pamięci Cache2 w jednej strukturze wraz z rdzeniem procesora więc umieszczano je osobno, lutując oba te elementy do płytki drukowanej a tę z kolei zamykano w plastikowej obudowie.

 

Na parametry procesorów składa się kilka czynników. Po pierwsze jest to rozmiar elementów z jakich zbudowana jest jego struktura, tzw. proces technologiczny. Im rozmiar ten jest mniejszy tym niższe zużycie energii udaje się uzyskać i tym wyższą częstotliwości pracy można osiągnąć. Najnowsze dostępne technologię pozwalają na uzyskanie elementów o rozmiarach 32, 22 a nawet 14 nm jak ma to miejsce w najnowszych procesorach Intela.

 

Kolejnym elementem charakteryzującym procesory jest długość słowa danych stosowana wewnątrz procesora. Współcześnie niemal wszystkie układy są 32- lub 64-bitowe. Elementami, które również charakteryzują procesory, a o których nie przeczytamy np. w opisie na sklepowej półce są długość adresu czyli zazwyczaj 16 lub 20 bitów, lista rozkazów oraz czas cyklu maszynowego czyli szybkość z jaką procesor wykonuje rozkazy.

 

Nie tylko CPU

 

CPU, choć jest najważniejszym elementem każdego komputera, oczywiście nie jest w stanie działać sam. Umieszcza się go na płycie głównej czyli elemencie, który łączy i pozwala współpracować procesorowi (z płytą łączy go podstawka, w której jest zamocowany jak ma to miejsce w przypadku komputerów stacjonarnych lub jest do niej na stałe wlutowany – np. w smartfonach czy tabletach) z innymi podzespołami i na którym znajdują się inne komponenty danego urządzenia. Są to właśnie procesory a także pamięć operacyjna (lub gniazda do jej zamocowania), gniazda dla dodatkowych kart rozszerzeń oraz urządzeń składujących, złącza dla zasilacza, klawiatury oraz urządzeń wskazujących a także porty, za pomocą których podłącza się urządzenia zewnętrzne. Czasami porty te są zunifikowane tak jak w przypadku microUSB, które w większości współczesnych smartfonów i tabletów służy zarówno do przesyłania danych jak i podłączania zasilania.

 

Tylko dwa stany

 

Pomimo ogromnych mocy obliczeniowych współczesnych maszyn procesory nie umieją tak naprawdę zbyt wiele a operują wyłącznie na dwóch stanach – 0 i 1, odpowiadającym w uproszczeniu stanom – wyłączony i włączony. Są one używane w algebrze Boole’a, stosowanej w informatyce oraz elektronice cyfrowej, do oznaczania fałszu i prawdy. W elektronice symbolem 0 określa się stan niski a 1 stan wysoki. W zależności od konstrukcji układu odpowiadają one charakterystycznym dla każdego z nich wartościom napięć. Z fizycznego punktu widzenia niemożliwe jest dosłowne wyłączanie i włączanie bowiem podstawowym elementem konstrukcyjnym procesora jest tranzystor, a ten, aby działać stale musi być zasilany. Stany niski i wysoki muszą więc odpowiadać konkretnym napięciom. Dla układów skonstruowanych w technologii CMOS (Complemetary Metal-Oxide Semiconductor) stanowi niskiemu (L) odpowiada napięcie od 0 V do 1/3 VDD czyli napięcia zasilania. Stan wysoki (H) określa się napięciem od 2/3 VDD do napięcia zasilania. Dla układów TTL (Transistor-transistor Logic) jest to odpowiednio od 0 V do 0,8 V oraz od 2 V do napięcia zasilania. W układach typu ECL (Emiter Coupled Logic) stan niski to zakres od VEE (ok. -5,2 V) do – 1.4 V natomiast stan wysoki to od – 1,2 V do 0 V czyli VCC.

 

Struktura funkcjonalna

Choć cały procesor umieszczony jest w jednej obudowie a zbudowany na pojedynczej płytce krzemu to jego strukturę można podzielić na kilka funkcjonalnych elementów. Najważniejszym z nich jest jednostka arytmetyczno-logiczna czyli ALU. Współpracuje a z nią zespół rejestrów przechowujących dane i wyniki operacji, układ sterujący przebiegiem wykonywania programu oraz inne układy, usprawniające działanie całości, charakterystyczne dla poszczególnych konstrukcji.

 

Schemat blokowy procesora

procesor1

 

  • RAM (Random Acces Memory) – pamięć operacyjna
  • BU (Bus Unit) – układ zarządzający magistralami
  • AU (Addresing Unit) – układ obliczania adresu. Połączony jest z MMU
  • MMU (Memory Management Unit) układem zarządzania pamięcią
  • IU (Instruction Unit) – dekoder instrukcji
  • EU (Execution Unit) – moduł wykonawczy. Zawiera ALU oraz FPU
  • ALU (Aritmetic-Logic Unit) – jednostka arytmetyczno-logiczna
  • FPU (Floating Point Unit) – jednostka zmiennoprzecinkowa

 

Jednostka arytmetyczno-logiczna czyli ALU nazywana jest często blokiem wykonawczym procesora. Wykonuje ona większość rozkazów i realizuje zaprogramowane funkcje. Argumentami wszystkich tych rozkazów są słowa binarne. Ciąg prostych operacji, charakterystycznych dla danej konstrukcji definiuje lista rozkazów procesora określona przez jego producenta. Złożone operacje wykonuje się stosując określone kombinacje prostych rozkazów. Najbardziej typowe to kopiowanie danych, działania arytmetyczne, operacje logiczne, przesunięcia bitowe oraz skoki bezwarunkowe i warunkowe. Wszystkie te instrukcje identyfikowane są na podstawie binarnego kodu maszynowego.

 

Schemat blokowy procesora – wykonywanie rozkazów

procesor2

 

  • A – akumulatory
  • B, C, D, E, H, L – rejestry robocze
  • ALU – jednostka arytmetyczno-logiczna
  • F – rejestr flagowy
  • IR – rejestr instrukcji
  • D – dekoder
  • EU – jednostka wykonawcza
  • CU – jednostka sterująca

 

Kod maszynowy lub inaczej język maszynowy jest zestawem rozkazów procesora. Program taki zapisany jest w postaci binarnych liczb. Część z nich stanowi rozkazy, część – argumenty. Kod maszynowy generowany jest w dwóch procesach. W przypadku języków programowania wysokiego poziomu jest to kompilacja, natomiast asemblację stosuje się dla języków niskopoziomowych.

 

Układ sterowania czyli CU (Control Unit) jest odpowiedzialny za dekodowanie rozkazów i sterowanie wszystkimi innymi blokami CPU. To ten element ustawia odpowiednio sygnały sterujące dopasowane do określonego typu operacji np. dodawania.

 

Rejestry stosowane w CPU mogą być ogólnego lub szczególnego przeznaczenia. W tych elementach przechowuje się tymczasowe wyniki obliczeń oraz adresy lokacji w pamięci operacyjnej. Najczęściej są to komórki pamięci o małych rozmiarach – do 128 bitów. Szczególnymi typami rejestrów są PC (Program Counter) czyli licznik rozkazów zawierający adres komórki zawierającej następny rozkaz czekający w kolejce do wykonania, IR (Instruction Register), rejestr instrukcji zawierający kod aktualnie wykonywanej instrukcji oraz SP (Stack Pointer), wskaźnik stosu zawierający adres wierzchołka stosu. Stos jest to wyróżniony obszar pamięci używany wg ściśle określonych reguł LIFO (Last In, Firts Out), gdzie dane dokładane i pobierane są z wierzchołka stosu. Wykorzystywany jest on do chwilowego zapamiętywania rejestrów procesora oraz zmiennych lokalnych.

 

Zegar dobry na wszystko

 

Kluczem do działania całości i współpracy między tymi elementami jest zegar. Steruje on wszystkimi częściami składowymi procesora, dostarczając do nich sygnał elektryczny o określonej częstotliwości taktowania. Podstawowa, jednostkowa operacja wykonywana jest za każdym razem, kiedy dotrze do nich impuls taktujący. Im wyższa częstotliwość, tym szybciej wykonywane mogą być te operacje. Procesor taktowany zegarem o częstotliwości np. 1 GHz wykonuje miliard operacji na sekundę. To stąd wynika jeden z podstawowych parametrów opisujących CPU, którymi zazwyczaj kierujemy się wybierając nowy sprzęt. Współcześnie procesory taktowane są zegarami dochodzącymi do 4,4 GHz. Wzrost tego czynnika nie jest już tak widoczny w kolejnych generacjach procesorów zresztą nie jest to jedyny czynnik, który wyznacza wydajność konkretnego układu. Obecnie wzrost szybkości obliczeń uzyskuje się dzięki zwiększaniu liczby tranzystorów i ilości rdzeni w procesorach.

 

Gdy jeden to za mało

 

Częstotliwość taktowania nie świadczy już tak ewidentnie o szybkości procesora. Sposobem na zwiększanie mocy obliczeniowej stało się zwiększenie liczby rdzeni. Nie jest to nowy pomysł. Stosowany jest od dawna ale w początkowej fazie realizowano go za pomocą zestawu komputerów z jednordzeniowymi procesorami, połączonych ze sobą za pomocą szybkiej sieci wymiany danych. Z powodu bardzo wysokich kosztów stosowano je głównie w centrach obliczeniowych czy naukowych. Pośrednim krokiem między tymi maszynami a współcześnie dostępnymi konstrukcjami były płyty główne pozwalające na montaż kilku procesorów jednocześnie. Niestety również z powodu wysokiej ceny ich zastosowanie zazwyczaj ograniczało się do serwerowni choć dostępne były one w normalnej sprzedaży i nic nie stało na przeszkodzie aby zamontować je w domowym komputerze. Kolejnym krokiem na drodze do układów wielordzeniowych była technologia wielowątkowości czyli Hyper-Threading opracowana przez Intela, która polega na tym, że dwa niezależne wątki mogły korzystać z procesora w tym samym czasie. Procesor HT w systemie operacyjnym identyfikowany był jako dwa procesory logiczne. Współcześnie stawia się na układy wielordzeniowe czyli na kilka połączonych ze sobą wzajemnie jednordzeniowych procesorów, które komunikują się ze sobą za pomocą wewnętrznej magistrali. Obecnie produkuje się układy dwu-, trzy-, cztero-, sześcio-, ośmio-, dwunasto-, a nawet szesnastordzeniowe.

 

Tego typu integracje w jednej obudowie kilku urządzeń nie dotyczy zresztą już tylko rdzeni procesora. Najnowsze generacje to już nie CPU ale APU czyli Accelerated Processing Unit będące połączeniem centralnej jednostki obliczeniowej i GPU czyli procesora graficznego. GPU to jednak temat na następną cześć naszego cyklu.

 

Dowiedz się, jak działa karta graficzna!



Udostępnij

Komentarze do artykułu

Komentarze do artykułu mogą dodawać tylko osoby zalogowane.

Zaloguj się

PatrickZoneX

Początkujący User 263 posty 37 pkt.
2017-01-02 21:09:34

Fajnie zredagowany, jest super.

bluePL

Celny Kursor 190 posty 229 pkt.
2016-12-29 13:55:53

Super artykuł, bardzo ciekawy.

asusowiec

Wielki Procesor 1111 posty 968 pkt.
2016-12-06 20:16:49

Super artykuł, bardzo ciekawy.

ideapad100

Wielki Procesor 1007 posty 1020 pkt.
2016-11-24 21:31:07

Nie zawsze dużo znaczy lepiej, Hyper-Threading czy Turbo Boost bardzo pomaga. :-)


Przeczytaj poprzedni wpis:
wakacje_v2
Niezbędnik wakacyjny [Infografika]

Sezon urlopów zaczął się na dobre. Zobaczcie nasz zaskakujący niezbędnik wakacyjny, który pomoże wam dobrze przygotować się do letniego wypoczynku!

Zamknij