04 tryby adresowania i formaty

Transkrypt

04 tryby adresowania i formaty
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
Rozkaz
Op Argument
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
Rozkaz
Op
Adres
Pamięć
Argument
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
Rozkaz
Op
Adres
Pamięć
Adres
Argument
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
Rozkaz
Op
R
Rejestry
Argument
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
Rozkaz
Op
R
Pamięć
Rejestry
Adres
Argument
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
Rozkaz
Op R
Adres
Pamięć
Rejestry
Adres
+
Argument
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
Rozkaz
Op
Pamięć - stos
Rejestr
wierzchołka stosu
Adres
Zajęte
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
●
Bezwzględny
- skoki
●
Względny
- skoki
●
Pośredni
- skoki
●
Rejestrowy
- obliczenia
●
Natychmiastowy
- obliczenia całkowite
- ładowanie/zapis
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
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?