lista rozkazów procesora - omówienie

Nasza ocena:

3
Pobrań: 84
Wyświetleń: 1162
Komentarze: 0
Notatek.pl

Pobierz ten dokument za darmo

Podgląd dokumentu
lista rozkazów procesora - omówienie - strona 1 lista rozkazów procesora - omówienie - strona 2 lista rozkazów procesora - omówienie - strona 3

Fragment notatki:

LISTA ROZKAZÓW PROCESORA
Jest funkcjonalnie pełna – nie ważna jest budowa listy rozkazów, ile jest
rozkazów ani jakie są, ale każdy program da się opisać i wykonać tym
procesorem – co byśmy nie wymyślili, da się zrobić, ograniczenia to głównie
czas wykonania i brak pamięci.
Podział ze względu na budowę listy rozkazów:
- CISC, idea – jak najwięcej rozkazów (300, 500...), sporo działań na
danych - wykonanie trwa długo;
- RISC – lista okrojona – mało rozkazów (około 30), rozkazy proste i
szybko się wykonują - lepsze od CISC.
W 8051 jest 111 rozkazów.
GRUPY ROZKAZÓW
-
rozkazy przesłań – rejestr - rejestr, pamięć - rejestr, ... –
przemieszczanie danych
rozkazy arytmetyczne
rozkazy logiczne
rozkazy sterujące
Wykonanie rozkazów w procesorze:
-
pobranie rozkazu z pamięci (FETCH) – PC wskazuje, który rozkaz i
pobieramy do procesora;
-
dekodowanie – co do zrobienia, skąd wziąć dane, gdzie przesłać wyniki;
-
liczenie adresu efektywnego, może być dostęp do pamięci albo układów
I/O, powiązane z trybami adresowania procesora – sposób dostępu do
danych (zasobów):
 tryb rejestrowy – dane są w rejestrach ogólnego przeznaczenia, wynik
może trafić do rejestru – b. szybki,
 tryb rejestrowy pośredni – w rejestrze jest adres, spod którego trzeba
pobrać dane, nie trzyma adresu wprost, wynik tak samo - adres, gdzie
umieścić wynik,
 tryb bezpośredni – adres podany po kodzie rozkazu, mamy dany
adres efektywny, nie trzeba go liczyć, ale odwołujemy się do innych
elementów systemu - dłużej to trwa niż w trybie rejestrowym,
 tryb natychmiastowy – dane zawarte wprost w rozkazie (dane
szczątkowe)
 tryb bazowo-indeksowy – jest odmianą
trybu rejestrowego pośredniego, przydaje
się, gdy konstrukcje programistyczne są tak
poukładane (np. tablica).
3
-
pobranie operandów (operands fetch);
wykonanie (execute);
przechowanie rezultatów (results store).
Ile czasu jest potrzebne na wykonanie rozkazu? Tam, gdzie jest kontakt z
pamięcią, I/O – 3*T. W sumie około 14*T.
Jak to przyspieszyć?
S1 S2 S3 S4 S5 S6 S1 S2 S3 S4 S5 S6
rozkaz 1
rozkaz 2
?
?
PC
S1 S2 S3 S4 S5 S6 3T
S1 S2 S3 S4 S5 S6
3T
S1 S2 S3 S4 S5 S6
18T
Wady – niektóre S trwają T, a inne 3T. Rozwiązanie – wszystko po 3T. Wada –
wykonanie po 18T, ale za to kolejne rozkazy są wykonywane po 3T, a to już
całkiem nieźle :)
Inny problem – PC jest tylko jeden, skąd wziąć kolejne?
PC
S1 S2 S3 S4 S5 S6 3T
S1 S2 S3 S4 S5 S6
3T
S1 S2 S3 S4 S5 S6
18T
Rozkaz następny – ten po bieżącym wykonywanym, wtedy 1 licznik PC
wystarcza (jeśli program jest wykonywany liniowo). Jest to przetwarzanie
potokowe.
Liniowość może być zachwiana – poprzez:
-
skoki:
 bezwarunkowe – jeśli trzeba zmienić porządek programu, to to się
stanie
 warunkowe – zmiana porządku programu zależy od warunku (np.
overflow)
-
wysyłanie procedur funkcji:
 warunkowe (testowanie flag, znaczników).
Skoki – kiedy znamy nowe miejsce wykonania? 3. etap – liczenie adresu
efektywnego, dla skoku warunkowego – w 5. etapie (wykonanie), najpierw
testowanie ... zobacz całą notatkę



Komentarze użytkowników (0)

Zaloguj się, aby dodać komentarz