Architektura komputerów
Tydzień 4
Tryby adresowania i formaty
Tryby adresowania
●
Natychmiastowy
●
Bezpośredni
●
Pośredni
●
Rejestrowy
●
Rejestrowy pośredni
●
Z przesunięciem
●
stosowy
Argument natychmiastowy
Op
Argument
Rozkaz
Adres natychmiastowy
Adresowanie natychmiastowe jest
najprostszą formą adresowania, w której
argument tak naprawdę zastępuje adres i
jest obecny bezpośrednio w rozkazie.
Zaletą adresowania natychmiastowego
jest to, że żadne odniesienie do pamięci,
poza pobraniem rozkazu, nie jest
potrzebne do uzyskania argumentu.
Wadą jest mały rozmiar pola w rozkazie.
Adres bezpośredni
Op
Adres
Rozkaz
Argument
Pamięć
Adres bezpośredni
W adresie bezpośrednim pole adresowe
zawiera efektywny adres argumentu. Ta
metoda nie wymaga żadnych obliczeń.
Wadą jest nieprzenaszalność programu i
znaczne ograniczenie przestrzeni
adresowej.
Adres pośredni
Op
Adres
Rozkaz
Argument
Pamięć
Adres
Adres pośredni
Przy adresowaniu pośrednim w instrukcji
zakodowany jest adres pamięci, który
dopiero zawiera właściwy adres
argumentu. Możliwe jest wykorzystanie
pamięci o małych adresach, dzięki czemu
adres zakodowany w rozkazie może być
krótki, a w pamięci umieszczony adres o
pełnej długości, pozwalający na
wykorzystanie pełnej przestrzeni
adresowej procesora.
Adres rejestrowy
Op
Rozkaz
Argument
R
Rejestry
Adresowanie rejestrowe
Adresowanie rejestrowe oznacza, że w
instrukcji mamy zakodowany numer
(adres) rejestru, a nie adres pamięci.
Procesory zwykle zawierają od kilku (np.
8), do kilkudziesięciu (np. 64) rejestrów,
dzięki czemu pole adresowe odnoszące
się do rejestru może mieć od 3 do 6
bitów długości.
Adres rejestrowy pośredni
Op
Rozkaz
Argument
Pamięć
Adres
R
Rejestry
Pośrednie adresowanie
rejestrowe
Zasada pośredniego adresowania jest
taka sama jak poprzednio. Tym razem
jednak pole adresowe w rozkazie
odwołuje się do rejestru. Dopiero w
rejestrze jest zawarty adres argumentu w
pamięci.
Dodatkową zaletą tego sposobu
adresowania pamięci jest o jeden dostęp
do pamięci mniej, gdyż adres pośredni
przechowywany jest w rejestrze, zamiast
w pamięci.
Adres z przesunięciem
Op
Rozkaz
Argument
Pamięć
Adres
R
Rejestry
Adres
+
Adresowanie z przesunięciem
Jest to połączenie adresowania
bezpośredniego i rejestrowego. Wymaga
dwóch pól adresowych w rozkazie:
odniesienia do rejestru i do pamięci.
Do adresu bezpośredniego zakodowanego
w rozkazie jest dodawana zawartość
rejestru.
Istnieje odmiana zwana adresowaniem
indeksowanym, gdzie dodajemy zawartość
rejestru zwanego indeksowym. Może być
też forma, gdzie używamy dwóch
rejestrów: indeksowego i bazowego.
Adres stosowy
Op
Rozkaz
Zajęte
Pamięć - stos
Adres
Rejestr
wierzchołka stosu
Adresowanie stosowe
Stos jest określonym blokiem pamięci,
gdzie element włożony jako ostatni jest
wyjmowany jako pierwszy. Najczęściej
jest realizowany jako tablica. Rejestr
stosu wskazuje adres wierzchołka stosu,
czyli ostatniego elementu.
Najczęściej stos jest adresem domyślnym
i w rozkazie nie koduje się żadnego
adresu.
Tryby adresowania Pentium
●
Natychmiastowy
●
Rejestrowy
●
Z przesunięciem
●
Z rejestrem podstawowym
●
Z rejestrem podstawowym i
przesunięciem
●
Skalowane indeksowanie z
przesunięciem
●
Z rejestrem podstawowym z indeksem i
przesunięciem
●
Z rejestrem podstawowym ze
skalowanym indeksowaniem i z
przesunięciem
●
Względny
Tryby adresowania PowerPC
●
Pośredni
- ładowanie/zapis
●
Pośredni indeksowany - ładowanie/zapis
●
Bezwzględny
- skoki
●
Względny
- skoki
●
Pośredni
- skoki
●
Rejestrowy
- obliczenia
●
Natychmiastowy
- obliczenia całkowite
Formaty rozkazów
●
Format rozkazu określa rozkład bitów
rozkazu w odniesieniu do jego części
składowych. Musi zawierać kod operacji
oraz adresy argumentów w jednej z
przedstawionych wcześniej postaci.
●
Format rozkazu musi w sposób jawny
lub domyślny określać tryb adresowania
każdego argumentu.
●
W większości procesorów występuje
więcej niż jeden format rozkazu.
Długość rozkazu
●
Im krótszy rozkaz, tym zajmuje mniej
pamięci i może być szybciej wczytany.
●
Dłuższe rozkazy pozwalają na umieszczenie
większej ilości informacji lub dłuższych
adresów.
●
Długość rozkazu powinna być
wielokrotnością jednostki transferu
(najczęściej słowa), choć możliwe są wyjątki
od tej reguły.
●
Słowo powinno być wielokrotnością długości
znaku, jeśli operacje na znakach są brane
pod uwagę (w maszynach do obliczeń
numerycznych to może nie mieć dużego
znaczenia).
Przydział bitów
●
Przy ustalonej długości rozkazu trzeba
zdecydować ile bitów przeznaczyć na
poszczególne elementy rozkazu.
●
Większa lista rozkazów wymaga
dłuższego pola kodu operacji. Dłuższy
kod operacji, to mniej miejsca na adresy
argumentów.
Przydział bitów
●
Liczba trybów adresowania. Przy jawnym
trybie adresowania trzeba go określić.
●
Liczba argumentów. Im więcej
argumentów tym mniej miejsca dla
każdego.
●
Ilość rejestrów. Liczba zestawów (jeden
ogólny, czy więcej specjalizowanych).
●
Zakres możliwych adresów.
●
Stopień granulacji adresu. Czy
adresujemy pojedyncze bajty, czy słowa?