Procesor

Jednostka centralna (CPU) jest ważną częścią każdego komputera. Jednostka centralna wysyła sygnały do sterowania innymi częściami komputera, prawie jak mózg kontroluje ciało.

CPU jest maszyną elektroniczną, która pracuje na liście komputerowych rzeczy do zrobienia, zwanych instrukcjami. Odczytuje ona listę instrukcji i uruchamia (wykonuje) każdą z nich w kolejności. Lista instrukcji, które CPU może uruchomić jest programem komputerowym.

Szybkość zegara, czyli prędkość wewnętrznych części procesora, jest mierzona w hercie (Hz). Nowoczesne procesory często pracują tak szybko, że zamiast nich używa się gigaherców (GHz). Jedna GHz to 1,000,000,000 cykli na sekundę.

Większość procesorów używanych w komputerach stacjonarnych (domowych) to mikroprocesory firmy Intel lub Advanced Micro Devices (zazwyczaj skrócone do AMD). Niektóre inne firmy produkujące procesory to ARM, IBM i AMD w ramach ATI Technologies, która jest obecnie liderem. Większość ich procesorów jest wykorzystywana w systemach wbudowanych w bardziej wyspecjalizowanych aplikacjach, takich jak telefony komórkowe, samochody, konsole do gier lub w wojsku.

Procesor Pentium wewnątrz komputeraZoom
Procesor Pentium wewnątrz komputera

Rodzaje procesorów

W XX wieku inżynierowie wymyślili wiele różnych architektur komputerowych. Obecnie większość komputerów stacjonarnych używa albo 32-bitowych procesorów, albo 64-bitowych. Instrukcje w 32-bitowym CPU są dobre w obsłudze danych o wielkości 32 bitów (większość instrukcji "myśli" w 32-bitowym CPU). Podobnie, procesor 64-bitowy jest dobry w obsłudze danych o rozmiarze 64 bitów (a często także w obsłudze danych 32-bitowych). Rozmiar danych, które procesor najlepiej radzi sobie z danymi, jest często nazywany rozmiarem słownym procesora. Wiele starych procesorów z lat 70-tych, 80-tych i wczesnych 90-tych (oraz wiele nowoczesnych systemów wbudowanych) ma 8-bitową lub 16-bitową wielkość słowa. Kiedy w połowie XX wieku wynaleziono procesory, miały one wiele różnych rozmiarów słów. Niektóre z nich miały różne rozmiary słów dla instrukcji i danych. Mniej popularne rozmiary słów przestały być później używane.

Większość procesorów to mikroprocesory. Oznacza to, że procesor jest tylko pojedynczym układem. Niektóre chipy z mikroprocesorami w środku zawierają również inne komponenty i są kompletnymi "komputerami" jednochipowymi. Nazywa się to mikrokontrolerem.

Rejestry

Kiedy CPU uruchamia program komputerowy, potrzebuje gdzieś do przechowywania danych, na których działają instrukcje (danych, które odczytują i zapisują). Ten magazyn nazywany jest rejestrem. Procesor ma zazwyczaj wiele rejestrów. Rejestry muszą być bardzo szybkie w dostępie (do odczytu i zapisu). Dlatego są one częścią samego układu CPU.

Pamięć

Przechowywanie wszystkich danych w rejestrach sprawiłoby, że większość procesorów byłaby zbyt skomplikowana (i bardzo kosztowna). Dlatego też, rejestry zazwyczaj przechowują tylko te dane, nad którymi pracuje procesor "w tej chwili". Pozostałe dane używane przez program są przechowywane w pamięci RAM (memory). Z wyjątkiem mikrokontrolerów, pamięć RAM jest zazwyczaj przechowywana poza CPU w oddzielnych chipach.

Kiedy CPU chce odczytać lub zapisać dane w pamięci RAM, wysyła adres do tych danych. Każdy bajt w pamięci RAM ma adres pamięci. Rozmiar adresów jest często taki sam jak rozmiar słowa: 32-bitowy procesor używa 32-bitowych adresów, itd. Jednak mniejsze procesory, takie jak 8-bitowe, często używają adresów większych niż wielkość słowa. W przeciwnym razie, maksymalna długość programu byłaby zbyt krótka.

Ponieważ rozmiar adresów jest ograniczony, ograniczona jest również maksymalna ilość pamięci. Procesory 32-bitowe mogą zazwyczaj obsługiwać tylko do 4 GB pamięci RAM. Jest to liczba różnych bajtów, które można wybrać za pomocą 32-bitowego adresu (każdy bit może mieć dwie wartości-0, a 1-i 232 bajty to 4 GB). Procesor 64-bitowy może obsługiwać do 16 EB pamięci RAM (16 eksabajtów, około 16 miliardów GB lub 16 miliardów bajtów). System operacyjny może ograniczyć go do korzystania z mniejszych ilości.

Informacje, które są przechowywane w pamięci RAM są zazwyczaj zmienne. Oznacza to, że znikną one po wyłączeniu komputera.

Schowek

W nowoczesnych komputerach, pamięć RAM jest znacznie wolniejsza niż rejestry, więc dostęp do niej spowalnia programy. Aby przyspieszyć dostęp do pamięci, często pomiędzy pamięć RAM a główne części procesora umieszczany jest szybszy typ pamięci zwany cache. Pamięć podręczna jest zazwyczaj częścią samego układu CPU i jest znacznie droższa w przeliczeniu na bajt niż pamięć RAM. Pamięć podręczna przechowuje te same dane co pamięć RAM, ale zazwyczaj jest znacznie mniejsza. Dlatego też, wszystkie dane używane przez program mogą nie zmieścić się w pamięci podręcznej. Pamięć podręczna próbuje przechowywać dane, które najprawdopodobniej będą dużo wykorzystywane. Przykładem mogą być dane ostatnio używane oraz dane znajdujące się w pamięci blisko ostatnio używanych danych.

Często ma sens posiadanie "cache for the cache", tak jak ma sens posiadanie cache for RAM. W wielopoziomowym cache'u istnieje wiele cache'ów, zwanych L1 cache, L2 cache, i tak dalej. Pamięć podręczna L1 jest najszybszą (i najdroższą na bajt) pamięcią podręczną i jest "najbliższa" procesorowi. Pamięć podręczna L2 jest oddalona o jeden krok i jest wolniejsza od pamięci podręcznej L1, itd. Pamięć podręczna L1 często może być postrzegana jako pamięć podręczna dla L2, itp.

Autobusy

Szyny komputerowe to przewody wykorzystywane przez procesor do komunikacji z pamięcią RAM i innymi komponentami w komputerze. Prawie wszystkie procesory posiadają co najmniej magistralę danych - używaną do odczytu i zapisu danych - oraz magistralę adresową - używaną do wyprowadzania adresów. Inne szyny wewnątrz procesora przenoszą dane do różnych części procesora.

Zestawy instruktażowe

Zestaw instrukcji (zwany również ISA - Instruction Set Architecture) jest językiem rozumianym bezpośrednio przez dany procesor. Języki te są również nazywane maszynowym lub binarnym. Mówią one o tym, jak każesz procesorowi robić różne rzeczy, na przykład ładować dane z pamięci do rejestru lub dodawać wartości z dwóch rejestrów. Każda instrukcja w zestawie instrukcji posiada kodowanie, czyli jak instrukcja jest zapisywana jako ciąg bitów.

Programy napisane w językach programowania takich jak C i C++ nie mogą być uruchamiane bezpośrednio przez CPU. Muszą być przetłumaczone na kod maszynowy zanim procesor będzie mógł je uruchomić. Kompilator jest programem komputerowym, który wykonuje to tłumaczenie.

Kod maszynowy jest tylko ciągiem 0s i 1s, co utrudnia jego odczytanie przez ludzi. Aby uczynić go bardziej czytelnym, programy w kodzie maszynowym są zazwyczaj pisane w języku zespołu. Język asemblera używa tekstu zamiast 0s i 1s: Można napisać "LD A,0", aby na przykład załadować wartość 0 do rejestru A. Program, który tłumaczy język asemblera na język maszynowy, nazywany jest asemblerem.

Funkcjonalność

Oto niektóre z podstawowych rzeczy, które może zrobić procesor:

  • Odczytywanie danych z pamięci i zapisywanie danych do pamięci.
  • Dodaj jeden numer do innego numeru.
  • Sprawdź, czy jeden numer jest większy od drugiego.
  • Przenoszenie numeru z jednego miejsca w inne (na przykład z jednego rejestru do drugiego, lub między rejestrem a pamięcią).
  • Skocz na inne miejsce na liście instrukcji, ale tylko wtedy, gdy jakiś test jest prawdziwy (np. tylko wtedy, gdy jeden numer jest większy od drugiego).

Nawet bardzo skomplikowane programy mogą być wykonane poprzez połączenie wielu prostych instrukcji, takich jak te. Jest to możliwe, ponieważ każda instrukcja zajmuje bardzo krótki czas. Wiele współczesnych procesorów może wykonać ponad miliard (1,000,000,000) instrukcji w ciągu jednej sekundy. Ogólnie rzecz biorąc, im więcej procesor jest w stanie wykonać w danym czasie, tym jest on szybszy. Jednym ze sposobów pomiaru szybkości procesora jest MIPS (Million Instructions Per Second). Flopy (operacje zmiennoprzecinkowe na sekundę) i szybkość zegara procesora (zwykle mierzona w gigahercach) są również sposobami na zmierzenie, ile pracy może wykonać procesor w danym czasie.

Procesor jest zbudowany z bramek logicznych; nie posiada żadnych ruchomych części. Procesor komputera jest połączony elektronicznie z innymi częściami komputera, takimi jak karta graficzna lub BIOS. Program komputerowy może sterować tymi urządzeniami peryferyjnymi, odczytując lub zapisując numery w specjalnych miejscach w pamięci komputera.

Rurociągi instruktażowe

Każda instrukcja wykonywana przez CPU jest zazwyczaj wykonywana w wielu krokach. Na przykład, kroki do uruchomienia instrukcji "INC A" (zwiększenie wartości zapisanej w rejestrze A o jeden) na zwykłym CPU mogą być takie:

  • Przeczytaj instrukcję z pamięci,
  • rozszyfrować instrukcję (dowiedzieć się, co robi instrukcja), oraz
  • dodać jeden do rejestracji A.

Różne części procesora robią te różne rzeczy. Często możliwe jest wykonanie kilku kroków z różnych instrukcji w tym samym czasie, co czyni procesor szybszym. Na przykład, możemy odczytać instrukcję z pamięci w tym samym czasie, co dekodujemy inną instrukcję, ponieważ te kroki używają różnych modułów. Można to uznać za posiadanie wielu instrukcji "wewnątrz potoku" na raz. W najlepszym przypadku, wszystkie moduły pracują na różnych instrukcjach na raz, ale nie zawsze jest to możliwe.

Jednostki zarządzania pamięcią (MMU) i pamięć wirtualna

Nowoczesne procesory często wykorzystują jednostkę zarządzania pamięcią (MMU). MMU jest komponentem, który tłumaczy adresy z CPU na (zazwyczaj) różne adresy pamięci RAM. W przypadku używania MMU, adresy używane w programie nie są (zazwyczaj) "rzeczywistymi" adresami, w których przechowywane są dane. Nazywa się to pamięcią wirtualną (odwrotnie niż "rzeczywistą"). Poniżej wymieniono kilka powodów, dla których dobrze jest mieć MMU:

  • MMU może "ukryć" przed programem pamięć innych programów. Odbywa się to poprzez nie tłumaczenie żadnych adresów na "ukryte" podczas działania programu. Jest to dobre, ponieważ oznacza to, że programy nie mogą odczytywać i modyfikować pamięci innych programów, co zwiększa bezpieczeństwo i stabilność. (Programy nie mogą "szpiegować" siebie nawzajem, ani "nadepnąć sobie na palce").
  • Wiele MMU może spowodować, że niektóre części pamięci nie będą mogły być zapisywane, odczytywane lub wykonywane (co oznacza, że kod przechowywany w tej części pamięci nie może być uruchomiony). Może to być dobre ze względów stabilności i bezpieczeństwa, a także z innych powodów.
  • MMU pozwalają różnym programom na posiadanie różnych "widoków" pamięci. Jest to przydatne w wielu różnych sytuacjach. Na przykład, zawsze będzie można mieć "główny" kod programu pod tym samym (wirtualnym) adresem bez kolizji z innymi programami. Jest to również przydatne, gdy istnieje wiele różnych kawałków kodu (z bibliotek), które są dzielone między programami.
  • MMUs umożliwiają wyświetlanie kodu z bibliotek pod różnymi adresami za każdym razem, gdy program jest uruchamiany. Jest to dobre, ponieważ niewiedza o tym, gdzie znajdują się rzeczy w pamięci, często utrudnia hakerom zmuszanie programów do robienia złych rzeczy. Nazywa się to randomizacją przestrzeni adresowej.
  • Zaawansowane programy i systemy operacyjne mogą używać trików z MMU, aby uniknąć konieczności kopiowania danych pomiędzy różnymi miejscami w pamięci.

Rdzenie wielokrotne

Procesory wielordzeniowe stały się powszechne na początku XXI wieku. Oznacza to, że mają one wiele procesorów wbudowanych w ten sam układ, dzięki czemu mogą uruchamiać wiele instrukcji na raz. Niektóre procesory mogą mieć do trzydziestu dwóch rdzeni, jak AMD Epyc 7601.

Producenci

Następujące firmy produkują procesory komputerowe:

  • ARM
  • Intel
  • Zaawansowane mikrourządzenia
  • MCST
  • SRISA
  • Mikrosystemy słoneczne

Dalsze informacje

Pytania i odpowiedzi

P: Co to jest procesor?


O: Procesor (centralna jednostka obliczeniowa) jest ważną częścią każdego komputera. Wysyła on sygnały sterujące innymi częściami komputera, podobnie jak mózg steruje ciałem. CPU jest maszyną elektroniczną, która pracuje na liście instrukcji do wykonania określonych zadań.

P: Jak działa CPU?


O: CPU czyta listę instrukcji i uruchamia (wykonuje) każdą z nich w kolejności. Lista instrukcji, które procesor może wykonać, to program komputerowy.

P: W czym mierzy się częstotliwość lub szybkość zegara procesora?


O: Częstotliwość lub prędkość zegara wewnętrznych części procesora mierzona jest w hercach (Hz). Nowoczesne procesory często pracują tak szybko, że zamiast tego używa się gigaherców (GHz) - jeden GHz to 1 000 000 000 cykli na sekundę.

P: Kim są niektóre firmy produkujące procesory?


O: Niektóre firmy produkujące procesory to Intel, Advanced Micro Devices (AMD), ARM (niedawno kupiona przez Nvidię), IBM i AMD w ramach ATI Technologies, która obecnie jest liderem rynku.

P: Gdzie jest wykorzystywana większość procesorów?


O: Większość procesorów stosowanych w komputerach stacjonarnych to mikroprocesory produkowane przez Intel lub AMD, podczas gdy większość pozostałych jest wykorzystywana w systemach wbudowanych w bardziej wyspecjalizowanych urządzeniach, takich jak telefony komórkowe, samochody, konsole do gier wideo lub zastosowania wojskowe.

AlegsaOnline.com - 2020 / 2023 - License CC3