Rozdział 1.3.2
Przykład wykonywania cyklu rozkazu
Współpraca bloków procesora przy wykonywaniu cyklu rozkazu zostanie zilustrowana na przykładzie dwuargumentowego
rozkazu dodawania, który w zapisie symbolicznym zapiszemy jako:
ADD A, [B]
ADD jest to mnemonik oznaczający typ rozkazu, w tym wypadku dodawanie. Dalej mamy symboliczny zapis dwóch argumentów,
oddzielonych przecinkami, najpierw tzw. argumentu docelowego, potem argumentu źródłowego. Symbol A jest argumentem
docelowym i oznacza nazwę rejestru procesora. Symbol [B] jest argumentem źródłowym i oznacza zawartość pamięci pod
adresem zapisanym w rejestrze o nazwie B. Zatem rozkaz ten ma znaczenie "Pobierz liczbę całkowitą spod adresu zawartego
w rejestrze B, dodaj do liczby całkowitej z rejestru A i zapisz wynik w rejestrze A". Zastosowany tu zapis symboliczny
rozkazu stanowi uproszczenie notacji stosowanej w językach programowania niskiego poziomu - asemblerach procesorów.
Załóżmy, że w pewnej fazie pracy procesora zawartość rejestrów i
pamięci jest następująca:
| Rejestry |
| Nazwa |
Zawartość |
| PC |
111 |
| A |
25 |
| B |
100 |
| Pamięć |
| Adres |
Zawartość |
| 100 |
5 |
| ... |
... |
| 111 |
ADD A,[B] |
| 112 |
Następny rozkaz |
Przy takim stanie rejestrów i pamięci cykl rozkazu przebiegnie następująco:
Faza obliczenia adresu rozkazu
- W tym przypadku adres rozkazu jest po prostu pobierany z licznika
programu PC i wynosi 111.
Faza pobrania rozkazu (jeden cykl maszynowy)
- Adres 111 rozkazu zostaje wystawiony na szynę adresową, jednostka
sterująca CU umieszcza na szynie sterującej sygnał odczytu pamięci.
- Pamięć wystawia na szynę danych kod rozkazu "ADD A,[B]", który
zostaje wpisany pobrany do rejestru rozkazów IR.
- Licznik programu PC zostaje zwiększony o 1 (adres następnego
rozkazu wyniesie 111+1=112).
Faza dekodowania rozkazu
- Dekoder rozkazów ID pobiera zawartość IR, rozpoznaje typ rozkazu
(dodawanie), argument źródłowy (zawartość pamięci pod adresem zapisanym w rejestrze B) i argument docelowy
(rejestr A).
Faza pobrania argumentu (jeden cykl maszynowy)
- Zawartość rejestru B (liczba 100) zostaje wystawiona na szynę
adresową. Pamięć zostaje ustawiona na odczyt.
- Pamięć wystawia na szynę danych liczbę 5 spod adresu 100, która
zostaje zapisana w rejestrze B.
Faza wykonania rozkazu
- Zawartość rejestru A zostaje przesłana jako argument pierwszy,
zawartość rejestru B jako argument drugi, wynik skierowany do rejestru A oraz ALU zostaje zaprogramowana sygnałami
sterującymi na operację dodawania.
Powrót do rozdziału 1
Powrót do strony głównej