CYKL ROZKAZOWY
CYKL ROZKAZOWY
I TRYBY ADRESOWANIA
I TRYBY ADRESOWANIA
Cykl rozkazowy
Cykl rozkazowy
Format rozkazu i tryb adresowania
Format rozkazu i tryb adresowania
Czas potrzebny na odczytanie kodu rozkazu z pamięci, na
pobranie argumentów, na wykonanie rozkazu i przesłanie
wyniku
operacji
nazywa
się
cyklem
rozkazowym
(instrukcyjnym)
Czas potrzebny na odczytanie kodu rozkazu z pamięci, na
pobranie argumentów, na wykonanie rozkazu i przesłanie
wyniku
operacji
nazywa
się
cyklem
rozkazowym
(instrukcyjnym)
Cykl rozkazowy składa się zwykle z faz pobierania (kodu rozkazu,
Cykl rozkazowy składa się zwykle z faz pobierania (kodu rozkazu,
pobierania argumentu) i wykonania rozkazu.
pobierania argumentu) i wykonania rozkazu.
P
a
m
ię
ć
P
a
m
ię
ć
C
P
U
C
P
U
POBRANIE
POBRANIE
ROZKAZU
ROZKAZU
WYSŁANIE
WYSŁANIE
ADRESU
ADRESU
ROZKAZU
ROZKAZU
DEKODOW
DEKODOW
ANIE
ANIE
ROZKAZU
ROZKAZU
OBLICZANIE
OBLICZANIE
ADRESU
ADRESU
ARGUMENTU
ARGUMENTU
I
I
OBLICZANIE
OBLICZANIE
ADRESU
ADRESU
ARGUMENTU
ARGUMENTU
II
II
WYKONANIE
WYKONANIE
ROZKAZU
ROZKAZU
OBLICZENIE
OBLICZENIE
ADRESU
ADRESU
PRZEZNACZE
PRZEZNACZE
-
-
NIA
NIA
ZAPIS
ZAPIS
WYNIKU
WYNIKU
POBRANIE
POBRANIE
ARGUMENTU
ARGUMENTU
II
II
POBRANIE
POBRANIE
ARGUMENTU
ARGUMENTU
I
I
cykl pobrania rozkazu
cykl pobrania rozkazu
cykl
cykl
pobrania
pobrania
argument
argument
u I
u I
cykl
cykl
pobrania
pobrania
argument
argument
u II
u II
cykl zapisu
cykl zapisu
wyniku
wyniku
CYKL ROZKAZOWY PROCESORA
CYKL ROZKAZOWY PROCESORA
Realizując program, system mikroprocesorowy wykonuje pewne
Realizując program, system mikroprocesorowy wykonuje pewne
powtarzające się czynności, polegające na cyklicznym pobieraniu kodów
powtarzające się czynności, polegające na cyklicznym pobieraniu kodów
rozkazów z pamięci i wczytywaniu ich do układu sterowania, a następnie
rozkazów z pamięci i wczytywaniu ich do układu sterowania, a następnie
realizacji rozkazu
realizacji rozkazu
Liczba faz pobierania rozkazu (pobierania argumentu) zależy od
Liczba faz pobierania rozkazu (pobierania argumentu) zależy od
rodzaju procesora i rodzaju rozkazu (argumentu).
rodzaju procesora i rodzaju rozkazu (argumentu).
Faza pobrania:
Faza pobrania:
1. adresowanie: podanie zawartości rejestrów adresujących
1. adresowanie: podanie zawartości rejestrów adresujących
pamięć (np. CS:IP) na magistralę adresową
pamięć (np. CS:IP) na magistralę adresową
2. odczyt zaadresowanej komórki pamięci do rejestru rozkazów
2. odczyt zaadresowanej komórki pamięci do rejestru rozkazów
(RR)
(RR)
3. zwiększenie zawartości licznika rozkazów (IP)
3. zwiększenie zawartości licznika rozkazów (IP)
Faza wykonania:
Faza wykonania:
4. zdekodowanie kodu rozkazu i wytworzenie sygnałów
4. zdekodowanie kodu rozkazu i wytworzenie sygnałów
sterujących realizujących dany rozkaz
sterujących realizujących dany rozkaz
1
1
2
2
3
3
4
4
Cykl von
Cykl von
Neumana
Neumana
w przypadku rozkazów
wielobajtowych
ADRES
ADRES
RR
RR
kod
kod
rozkazu
rozkazu
kod
kod
rozkazu
rozkazu
kod
kod
rozkazu
rozkazu
kod
kod
rozkazu
rozkazu
kod
kod
rozkazu
rozkazu
procesor
procesor
pamięć
pamięć
s
zy
n
a
a
d
re
so
w
a
s
zy
n
a
a
d
re
so
w
a
s
zy
n
a
d
a
n
y
c
h
s
zy
n
a
d
a
n
y
c
h
CYKL ROZKAZOWY PROCESORA
CYKL ROZKAZOWY PROCESORA
Program składa się z 4 rozkazów (adres pierwszego rozkazu wynosi 300):
Program składa się z 4 rozkazów (adres pierwszego rozkazu wynosi 300):
•
odczyt pierwszego argumentu z komórki o adresie 841 i zapisanie go do
odczyt pierwszego argumentu z komórki o adresie 841 i zapisanie go do
rejestru A
rejestru A
•
odczyt drugiego argumentu z komórki o adresie 915 i zapisanie go do rejestru B
odczyt drugiego argumentu z komórki o adresie 915 i zapisanie go do rejestru B
•
dodanie obu argumentów
dodanie obu argumentów
•
przesłanie wyniku do komórki pamięci o adresie 915
przesłanie wyniku do komórki pamięci o adresie 915
CYKL ROZKAZOWY PROCESORA
CYKL ROZKAZOWY PROCESORA
16 bitów
Rozpatrzmy przykład wykonania programu dodawania dwóch liczb
Rozpatrzmy przykład wykonania programu dodawania dwóch liczb
16-bitowych stałopozycyjnych w komputerze 16-bitowym.
16-bitowych stałopozycyjnych w komputerze 16-bitowym.
Pamięć jest 16-bitowa, kod rozkazu 12-bitowy a adres 20-bitowy
Pamięć jest 16-bitowa, kod rozkazu 12-bitowy a adres 20-bitowy
(kod rozkazu i adres można zatem umieścić w 2 komórkach
(kod rozkazu i adres można zatem umieścić w 2 komórkach
pamięci)
pamięci)
MAPA PAMIĘCI
12 bitów
4 bity
Formatem rozkazu nazywamy sposób rozmieszczenia informacji w
kodzie rozkazu
Formatem rozkazu nazywamy sposób rozmieszczenia informacji w
kodzie rozkazu
Kod rozkazu:
Kod rozkazu:
•
musi zawierać określenie rodzaju wykonywanej operacji (kod operacji)
musi zawierać określenie rodzaju wykonywanej operacji (kod operacji)
- w pierwszym bajcie (bajtach) kodu rozkazu
- w pierwszym bajcie (bajtach) kodu rozkazu
•
może zawierać operandy i/lub adresy operandów wykonywanych
może zawierać operandy i/lub adresy operandów wykonywanych
operacji
operacji
Trybem adresowania nazywamy sposób określenia miejsca
przechowywania argumentów rozkazu
Trybem adresowania nazywamy sposób określenia miejsca
przechowywania argumentów rozkazu
Argumenty rozkazu (dotyczy zarówno danych jak i wyników) mogą być
Argumenty rozkazu (dotyczy zarówno danych jak i wyników) mogą być
przechowywane w:
przechowywane w:
•
rejestrach
rejestrach
•
pamięci
pamięci
•
kodzie rozkazu
kodzie rozkazu
Rozróżniamy następujące tryby adresowania
• adresowanie natychmiastowe
• adresowanie bezpośrednie
• adresowanie rejestrowe
• adresowanie pośrednie
• adresowanie indeksowe z przemieszczeniem
FORMAT ROZKAZÓW
FORMAT ROZKAZÓW
I TRYB ADRESOWANIA
I TRYB ADRESOWANIA
Przy adresowaniu natychmiastowym argument rozkazu zawarty
jest w kodzie rozkazu
Przy adresowaniu natychmiastowym argument rozkazu zawarty
jest w kodzie rozkazu
Oznacza to, że w zasadzie nie jest to adresowanie w zwykłym sensie.
Oznacza to, że w zasadzie nie jest to adresowanie w zwykłym sensie.
Argument jest umieszczany w kodzie rozkazu, więc musi być on znany w
Argument jest umieszczany w kodzie rozkazu, więc musi być on znany w
momencie pisania programu.
momencie pisania programu.
Kod rozkazu
Kod rozkazu
Kod operacji
Kod operacji
Argument
Argument
Przy adresowaniu bezpośrednim kod rozkazu zawiera adres
komórki pamięci, w której przechowywany jest argument rozkazu
Przy adresowaniu bezpośrednim kod rozkazu zawiera adres
komórki pamięci, w której przechowywany jest argument rozkazu
W momencie pisania programu musimy zarezerwować adres przechowywania
W momencie pisania programu musimy zarezerwować adres przechowywania
argumentu.
argumentu.
Kod
Kod
rozkazu
rozkazu
Kod operacji
Kod operacji
Adres
Adres
Argument
Argument
P
A
M
IĘ
Ć
P
A
M
IĘ
Ć
TRYB ADRESOWANIA
TRYB ADRESOWANIA
Przy adresowaniu rejestrowym w kodzie rozkazu zawarty jest
rejestr, w którym przechowywany jest argument
Przy adresowaniu rejestrowym w kodzie rozkazu zawarty jest
rejestr, w którym przechowywany jest argument
Zaletą tego trybu jest krótki kod i szybkie wykonanie
Zaletą tego trybu jest krótki kod i szybkie wykonanie
Kod
Kod
rozkazu
rozkazu
Kod
Kod
operacji
operacji
Określeni
Określeni
e
e
rejestru
rejestru
Argument
Argument
REJESTR
REJESTR
W trybie adresowania pośredniego (rejestrowego pośredniego)
kod rozkazu zawiera określenie rejestru bądź rejestrów, w
których znajduje się adres komórki pamięci zawierającej
argument
W trybie adresowania pośredniego (rejestrowego pośredniego)
kod rozkazu zawiera określenie rejestru bądź rejestrów, w
których znajduje się adres komórki pamięci zawierającej
argument
Adres
Adres
REJESTR
REJESTR
Argument
Argument
P
A
M
IĘ
Ć
P
A
M
IĘ
Ć
Kod
Kod
operacji
operacji
Określeni
Określeni
e
e
rejestru
rejestru
Kod
Kod
rozkazu
rozkazu
TRYB ADRESOWANIA
TRYB ADRESOWANIA
W trybie adresowania indeksowego z przemieszczeniem adres
argumentu przechowywanego w pamięci obliczany jest jako
suma zawartości rejestru określonego w kodzie rozkazu i
wartości
umieszczonej
w
kodzie
rozkazu,
zwanej
przemieszczeniem
W trybie adresowania indeksowego z przemieszczeniem adres
argumentu przechowywanego w pamięci obliczany jest jako
suma zawartości rejestru określonego w kodzie rozkazu i
wartości
umieszczonej
w
kodzie
rozkazu,
zwanej
przemieszczeniem
Kod
Kod
rozkazu
rozkazu
Kod
Kod
operacji
operacji
Określeni
Określeni
e
e
rejestru
rejestru
wartość
wartość
REJESTR
REJESTR
Przemieszczen
Przemieszczen
ie
ie
Argument
Argument
P
A
M
IĘ
Ć
P
A
M
IĘ
Ć
TRYB ADRESOWANIA
TRYB ADRESOWANIA
DZIĘKUJĘ ZA UWAGĘ !
DZIĘKUJĘ ZA UWAGĘ !