Podręcznik
4. Procesor – informacje ogólne
Procesor jest chyba najbardziej rozpoznawalną częścią systemu komputerowego. Często jest z nim wręcz utożsamiany. Jednak bez pozostałych komponentów systemu jest nieprzydatny. Procesor (CPU – ang. Central Processing Unit) interpretuje instrukcje programu i zgodnie z nim przetwarza dane. Potrafi dodawać, odejmować, mnożyć, dzielić, negować, porównywać itd. liczby binarne. Procesor wykonany w postaci jednego układu scalonego nazywa się zwyczajowo mikroprocesorem.
Procesor wykonuje sekwencyjnie instrukcje przechowywane w pamięci. Instrukcja nie jest wykonywana w jednym kroku. Jej wykonanie jest rozbite na wiele etapów. Dąży się do tego, aby każdy etap mógł być wykonany niezależnie. W architekturze PC jest to trudne zadanie ze względu na specyfikę kodu. W ogólności można wyróżnić pięć głównych etapów wykonywania instrukcji. Są to:
- Pobranie rozkazu – odczyt rozkazu z pamięci. Każde polecenie jest wartością liczbową interpretowaną jako polecenie. Adres aktualnie wykonywanej instrukcji jest umieszczony w specjalnym rejestrze rozkazów PC (ang. Program Counter).
- Zdekodowanie rozkazu – po odczytaniu instrukcji z pamięci, procesor interpretuje polecenie. W trakcie tego procesu instrukcja jest rozbijana na poszczególne części o odmiennym znaczeniu. W różnych systemach komputerowych zestaw instrukcji też jest różny, jak również sposób ich interpretacji. Przykładowo, w architekturze PC początkowa część bitów tworzy tzw. opcode, który jest interpretowany i wg tej interpretacji podejmowany jest szereg operacji będących wykonaniem instrukcji (Rys.9). Inne elementy instrukcji mogą zawierać adresy, bezpośrednie dane lub przedrostki modyfikujące jej interpretację.
Rys.9. Przykład instrukcji
- Generacja adresów operandów – na tym etapie obliczane są bezpośrednie adresy danych, na których operuje instrukcja. Dane te muszą być ściągnięte do rejestrów procesora.
- Wykonanie rozkazu – jest to wykonanie polecenia. Wykorzystywane mogą być różne moduły procesora: całkowitoliczbowa jednostka arytmetyczno-logiczna (ALU), jednostka zmiennopozycyjna (FPU). Dane na tym etapie są pobierane z rejestrów, a wyniki umieszczane w rejestrach. Nie jest możliwe wykonywanie operacji arytmetyczno-logicznych bezpośrednio w pamięci RAM.
- Zapis do pamięci – jest to faza końcowa. Na tym etapie wyniki mogą zostać odesłane do pamięci operacyjnej RAM.