background image

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

background image

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

background image

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

background image

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

background image

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

background image

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