ARCHITEKTURY KOMPUTERÓW I SYSTEMY OPERACYJNE
ARCHITEKTURA PROCESORÓW
ARCHITEKTURA PROCESORA, poza blokami funkcjonalnymi, to przede wszystkim:
a. formaty
rozkazów,
b. lista rozkazów,
c. rejestry
dostępne programowo,
d. sposoby adresowania pamięci,
e. sposoby
współpracy procesora z układami wejścia/wyjścia i pamięcią,
f. przebiegi czasowe sygnałów na końcówkach procesora.
FORMATY DANYCH I ROZKAZÓW
Podstawową jednostką informacji cyfrowej dla procesora jest słowo, czyli 1 lub kilka
bajtów, które procesor może wymienić z pamięcią RAM w wyniku jednej operacji czytania
lub pisania. Długość słowa (liczba bitów) procesora jest równa liczbie linii jego magistrali
danych.
Od długości słowa procesora zależy m.in. moc obliczeniowa procesora i większa
różnorodność technik adresowania. Im większa długość słowa tym większa różnorodność, a
tym samym efektywność rozkazów i technik adresowania.
W zależności od długości słowa rozróżnia się procesory: 4-bitowe, np. Intel 4004, 8-
bitowe, np. Intel 8080, 16-bitowe, np. Intel 8086, 32-bitowe, począwszy od Intela 386, 64-
bitowe.
ROZKAZY różnych procesorów mogą mieć różne struktury. Podstawowe to rozkazy
składające się z 2 części:
- pola kodu operacji – informacja dla układu sterowania o rodzaju wykonywanej operacji,
- pola
adresowego – zawierającego adres operandu (np. argument funkcji) lub informacje
potrzebne do jego wyznaczenia
KOD OPERACJI
ADRES OPERANDU
Rozkazy składające się z dwóch pól są podstawowymi rozkazami dla procesorów 8-
bitowych, w których istniały również rozkazy bezadresowe. W dalszych procesorach rozkazy
są bardziej rozbudowane, spotyka się m.in. rozkazy dwu- lub trójadresowe przedstawiane za
pomocą kilku (dwóch-trzech) słów.
Sterowanie rozkazami o złożonej strukturze byłoby co najmniej kłopotliwe.
1
ARCHITEKTURY KOMPUTERÓW I SYSTEMY OPERACYJNE
ARCHITEKTURA PROCESORÓW
KOD OPERACJI
ADRES I-ego
OPERANDU
ADRES II-ego
OPERANDU
ADRES WYNIKU
ADRES
NASTĘPNEGO
ROZKAZU
Aby uprościć działanie część informacji potrzebnej do wykonania następnego rozkazu
nie jest umieszczana bezpośrednio w rozkazie, lecz pośrednio na drodze przestrzegania
określonych zasad funkcjonowania procesora:
1. Ponieważ każdy mikroprogram zawiera fragmenty realizowane zawsze w taki sam
sposób, przyjmuje się, o ile to możliwe, że kolejno realizowane rozkazy znajdują się w
następujących po sobie komórkach pamięci. Adresy kolejnych komórek pamięci
przechowywane są w rejestrze zwanym licznikiem rozkazów, którego zawartość jest
zwiększana o 1 podczas fazy pobierania kolejnego rozkazu.
2. Wykorzystuje się rozkazy sterujące, tzn. zmieniające stan licznika rozkazów zgodnie z
żądaniem programisty o więcej niż 1. Dzięki temu możliwe jest przerwanie sekwencji
rozkazów z kolejnych komórek pamięci, np. wtedy, kiedy dalszy ciąg programu zależy od
poprzednio uzyskanego wyniku (rozkazy skoku).
3. Wynik operacji pozostaje w jednym z rejestrów procesora, nie przesyła się go do
dowolnej komórki pamięci.
4. Ze względu na iterakcyjność programów, tzn. wynik poprzedniej operacji staje się
operandem następnej operacji, nie umieszcza się adresu drugiego operandu w pamięci (nie
jest więc potrzebne pole z adresem do danej komórki), lecz używa się jako drugiego
operandu zawartości akumulatora.
PRZETWARZANIE ROZKAZÓW - CYKL ROZKAZOWY
Wszystkie operacje realizowane przez procesor są synchronizowane przez sygnały
generatora cyklu podstawowego. Generator może być elementem zewnętrznym,
przyłączanym do odpowiednich końcówek procesora, albo może być zintegrowany z
procesorem.
Cykl rozkazowy (ang. instruction cycle) – obejmuje wszystkie kolejne cykle
podstawowe (zwane również taktami lub stanami) potrzebne do pobrania i wykonania
określonego rozkazu. Różne rozkazy wymagają różnej liczby cykli rozkazowych.
2
ARCHITEKTURY KOMPUTERÓW I SYSTEMY OPERACYJNE
ARCHITEKTURA PROCESORÓW
Wzrost mocy obliczeniowej mierzy się ilością
wykonywanych operacji w jednostce czasu.
Zwiększenie częstotliwości taktującej (skrócenie
czasu trwania pojedynczego cyklu) jest
najbardziej oczywistym czynnikiem
gwarantującym przyrost wydajności (pod
warunkiem,, że nadążają za nim układy
otaczające procesor, głównie pamięć).
SPOSOBY ADRESOWANIA PAMIĘCI OPERACYJNEJ
Zadaniem procesora jest przetwarzanie danych złożonych w pamięci.
Wykonywane operacje mają charakter dwukierunkowy: zapis, odczyt. Przy zapisie procesor
wystawia słowo na magistralę danych a stosowny adres na magistrale adresową. Podczas
odczytu końcówki adresowe procesora określają adres w pamięci i zwartość wskazanej
komórki sczytywana jest przez procesor z magistrali danych. Całość nadzorowana jest przez
sygnały kontrolno-sterujące.
Fizyczna przestrzeń adresowa, jaką mogą zaadresować procesory zależy od ilości linii
adresowych:
- procesory 16-bitowe (od 8088 do 80186) miały 20 końcówek – 2
20
=1MB
- procesory 32-bitowe(od 80386DX) mają już 32 końcówki – 2
32
=4GB
Adresowaniem nazywa się wyznaczenie adresu komórki pamięci zawierającej
operand na podstawie informacji zawartej w rozkazie.
Podstawowe (historyczne) sposoby adresowania w procesorach:
- adresowanie bezpośrednie – umieszczenie adresu bezpośrednio w rozkazie. Problemy –
długość adresu a rozmiar pamięci, np. 1B dla adresu to pamięć, którą można zaadresować
to tylko 2
8
=256, w związku z tym, potrzeba rozkazów 2 lub 3 –słowowych, które są
jednak dłużej wykonywane. Ponadto jest to rozwiązanie nieekonomiczne w przypadku
programów działających na danych skupionych w pewnym obszarze, a nie rozproszonych
po całej pamięci. Rozwiązanie to jest również niedogodne w przypadku modyfikacji
programów, szczególnie programów przechowywanych w pamięci ROM.
3
ARCHITEKTURY KOMPUTERÓW I SYSTEMY OPERACYJNE
ARCHITEKTURA PROCESORÓW
- adresowanie rejestrowe bezpośrednie – operand znajduje się w jednym z rejestrów
procesora, adres tego rejestru stanowi część rozkazu. Adresowanie to jest szybsze od
adresowania bezpośredniego, ale jest ograniczone do liczby rejestrów procesora.
- adresowanie rejestrowe pośrednie – rozkaz zawiera adres rejestru, w którym
przechowywany jest adres operandu w pamięci. Szybsze od adresowania bezpośredniego,
ograniczone tylko liczbą bitów danego rejestru.
- adresowanie względne – adres operandu jest sumą informacji adresowej zawartej w
rozkazie, tzw. przesunięcia (ang. offset, displacement) oraz stanu licznika rozkazów. Przy
m.-bitowym przesunięciu zakres adresowania rozciąga się wokół komórki zawierającej
rozkaz na 2
m.-1
bitów w górę (w kierunku wzrostu adresów) i 2
m.-1
-1 bitów w dół od
adresu, pod którym znajduje się realizowany rozkaz.
- adresowanie indeksowe – podobne do adresowania względnego, ale rolę licznika
rozkazów spełnia rejestr indeksowy. Rejestry indeksowe są rejestrami o długości
umożliwiającej zaadresowanie dowolnej komórki pamięci, i których zawartość może być
bardzo szybko dodana do przesunięcia. Można je zerować, ładować do pamięci i z
akumulatora oraz testować ich zawartość.
- adresowanie natychmiastowe – operand zawarty jest „natychmiast” w drugim lub
drugim i trzecim słowie rozkazu. Technika bardzo dogodna przy ustawianiu zawartości
rejestrów indeksowych lub liczników.
Procesory z reguły umożliwiają stosowanie wielu różnych sposobów adresowania.
Różnorodność i skuteczność sposobów adresowania jest jednym z ważnych czynników
określających wygodę programowania w językach maszynowych i moc obliczeniową
procesora. Wynika to m.in. z faktu, że ogromna liczba operacji wykonywanych przez
procesor wymaga wyznaczenia adresów operandów.
Ze względu na fakt, że architektura procesorów ulegała i ulega ciągłym zmianom,
przeliczanie adresów logicznych na rzeczywiste nie jest już takie proste i wyraźne i zależy
m.in. od trybu pracy procesora.
1. Tryb rzeczywisty (ang. Real Mode) – procesory 32-bitowe przełącza się w stan pracy
procesora 16-bitowego.
2. Tryb chroniony (ang. Protected Mode) – od 80286 – wprowadzony w celu ochrony
poszczególnych zadań pracujących pod kontrolą wielozadaniowego systemu
operacyjnego. Charakterystyczny jest 4-poziomowy system uprawnień kontrolujący
odwołania do danych oraz do kodu.
4
ARCHITEKTURY KOMPUTERÓW I SYSTEMY OPERACYJNE
ARCHITEKTURA PROCESORÓW
3. Tryb wirtualny procesora 8086 (ang. Virtual 8086 Mode) – dostępny w procesorach Intela
od 80386. Swego rodzaju kombinacja dwóch poprzednich trybów. Każdy z programów
użytkowych widzi swój własny procesor 8086 pracujący w trybie rzeczywistym, a
elementy z trybu chronionego zapewniają odpowiednie prawa dostępu i uniemożliwiają
kolizje między zadaniami.
Poza trybem wirtualnym począwszy od modelu 80386 wprowadzono do procesorów
Intela stronicowanie (metoda zarządzania pamięcią). Rozmiar stron w 386 jest stały,
pamiętany w procesorze i wynosi 4kB, w kolejnych procesorach, np. w Pentium, może być
zmieniany od 4kB do 4MB.
5
ARCHITEKTURY KOMPUTERÓW I SYSTEMY OPERACYJNE
ARCHITEKTURA PROCESORÓW
SPOSOBY WSPÓŁPRACY PROCESORA Z UKŁADAMI WEJŚCIA/WYJŚCIA (ang.
Input/Output I/O)
Układy I/O to dla procesora po prostu część przestrzeni adresowej, do której odwołuje
się za pomocą dwóch specjalnych rozkazów odwołań do portów IN i OUT. Rozkazy te
operują tylko i wyłącznie za pośrednictwem akumulatorów, tzn. że nie można przesłać
zawartości pamięci bezpośrednio do portu lub skierować zawartości portu do pamięci.
Różnice w zapisie/odczycie układów I/O w poszczególnych procesorach:
- ilość portów, które mogą zostać zaadresowane:
8086: 64k (20 linii adresowych, ale A16-A19 zawsze = 0),
80386, 80486: 64k portów 8-bitowych, 32k portów 16-bit., 16k portów 32-bit.
- w 80386 i 486 dostęp do przestrzeni I/O odbywa się z pominięciem pamięci podręcznej,
- Pentium jest zgodny z 486, pomijany cache i wszelkie bufory, ale w dostępie do I/O
bierze udział tylko połowa z 64-bitowej magistrali danych.
Przerwanie sprzętowe to technika, dzięki której urządzenia zewnętrzne mogą
poinformować procesor o skutkach wykonywanych operacji (wykonywanie operacji przez
urządzenia zewnętrzne inicjuje procesor), czyli o zakończeniu lub błędzie. Polega to na tym,
że urządzenie samo zgłasza wykonanie zadania, a procesor obsługuje je w dogodnym dla
siebie momencie, tzn. przerywa realizację wykonywanego procesu i przechodzi do procedury
reagującej na zgłoszenie urządzenia. Kod tej procedury zazwyczaj znajduje się w pamięci
stałej komputera. Przerwania mają swoje priorytety.
Kontroler przerwań obecnie wchodzi w skład chipseta procesora (ang. Chipset – zbiór
układów wysokiej skali integracji tworzących „obudowę” procesora)).
6