Procesor (CPU - centralna jednostka wykonawcza) to układ scalony, którego działanie polega na wykonywaniu instrukcji programów. Nadzoruje on i synchronizuje prace wszystkich urządzen w komputerze. Charakterystyczne cechy, które odróżniają procesory od siebie to:
architektura (CISC lub RISC)
liczba bitów przetwarzana w jednym takcie
częstotliwość taktowania podawana w MHz
Wszystkie współczesne procesory maja podobna architekturę oparta na superskalarnym jądrze RISC (architektura procesora o uproszczonej liście rozkazów). Jeszcze kilka lat temu procesory zaliczano do rodziny CISC (architektura procesora wykorzystująca złożoną listę rozkazów). Dzisiaj, dzięki zastosowaniu w nich techniki przekodowywania rozkazów, uzyskano ogromne zwiększenie wydajności procesora, a RISC-owa konstrukcja umożliwia stosowanie wysokich częstotliwości zegara.
Budowa procesora
Procesor jest urządzeniem wykonującym rozkazy dotyczące pracy komputera.
Wykonuje on bardzo szybko dowolny ciąg prostych operacji wybranych ze zbioru
operacji podstawowych.
Procesor składa się z:
- zespołu rejestrów do przechowywania danych i wyników,
- jednostki arytmetycznej (arytmometr) do wykonywania prostych operacji na danych,
- układu sterującego przebiegiem obliczeń,
- rejestru rozkazów, czyli operacji podstawowych,
Cechą za pomocą, której można dokonać podziału procesorów jest długość słowa, na którym wykonywane są operacje obliczeniowe.
Rozróżniamy więc procesory:
- 8 bitowe,
- 16 bitowe,
- 32 bitowe,
- 64 bitowe,
- 128 bitowe.
Do typowych rozkazów wykonywanych przez procesor należą:
a) działania arytmetyczne:
- dodawanie,
- odejmowanie,
- porównywanie dwóch liczb,
- dodawanie i odejmowanie jedności,
- zmiana znaku liczby,
b) działania logiczne:
- suma logiczna,
- iloczyn logiczny,
- suma modulo 2 (różnica symetryczna),
- negacja,
c) przesunięcie bitów w lewo lub prawo,
d) działania na bitach.
Komputer oprócz procesora głównego CPU posiada procesory pomocnicze: obrazu, dźwięku, koprocesory arytmetyczne.
Zasada działania
Ze względu na przepływ danych i rozkazów w procesorze, można wyróżnić w nim kilka zasadniczych modułów:
1. Blok wstępnego pobierania i dekodowania instrukcji. Odpowiada on za dostarczenie kolejnych poleceń z pamięci operacyjnej i przekazanie ich do odpowiedniej jednostki wykonawczej.
2. Główny blok wykonawczy to jednostka arytmetyczno-logiczna ALU. Zapewnia ona prawidłowe przetworzenie wszystkich danych stałoprzecinkowych. ALU wyposażony jest w niewielka zintegrowana pamięć, nazywana zestawem rejestrów. Każdy rejestr to pojedyncza komórka używana do chwilowego przechowywania danych i wyników.
3. FPU, czyli koprocesor wykonujący wszystkie obliczenia zmiennoprzecinkowe.
4. Po zakończeniu "obliczeń" dane będące wynikiem przetwarzania trafiają do modułu wyjściowego procesora. Jego zadaniem jest przekierowanie nadchodzących informacji np. do odpowiedniego adresu w pamięci operacyjnej lub urządzenia wejścia/wyjścia.
Dodatki multimedialne
Producenci nowoczesnych procesorów za podstawowy kierunek rozwoju technologicznego obrali rozszerzenie multimedialnych możliwości układu. Poszerzone listy rozkazów operujące na stało- i zmiennoprzecinkowych macierzach znacząco przyspieszają obróbkę grafiki, dźwięku czy generowanie obrazów 3D.
MMX
Pierwszym wprowadzonym rozszerzeniem multimedialnym, wbudowanym we wszystkie obecnie produkowane modele procesorów, jest zestaw 57 instrukcji arytmetyki stałoprzecinkowej typu SIMD, znany pod nazwa MMX.
3DNow!
Firma AMD wprowadziła 21 nowych instrukcji zmiennoprzecinkowych typu SIMD-FP zorientowanych na wspomaganie grafiki trójwymiarowej. Był to pierwszy przypadek wprowadzenia tak istotnych zmian do architektury procesora przez firmę inna niż Intel. SIMD-FP procesorów AMD wykorzystuje do działania połączone w pary 64-bitowe rejestry MMX - co niestety, utrudnia automatyczna optymalizacje kodu programu, gdyż wymagany jest podział danych na dwa segmenty.
SSE
Również Intel wprowadził w swoich procesorach Pentium III, instrukcje zmiennoprzecinkowe SIMD-FP. Instrukcje te są wykonywane przez wyspecjalizowana jednostkę operującą na ośmiu 128-bitowych dedykowanych rejestrach - co sprzyja optymalizacji kodu programu.
|