background image

Architektura komputerów

Tydzień 4

Tryby adresowania i formaty

background image

Tryby adresowania

Natychmiastowy

Bezpośredni

Pośredni

Rejestrowy

Rejestrowy pośredni

Z przesunięciem

stosowy

background image

Argument natychmiastowy

Op

Argument

Rozkaz

background image

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.

background image

Adres bezpośredni

Op

Adres

Rozkaz

Argument

Pamięć

background image

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.

background image

Adres pośredni

Op

Adres

Rozkaz

Argument

Pamięć

Adres

background image

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.

background image

Adres rejestrowy

Op

Rozkaz

Argument

R

Rejestry

background image

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.

background image

Adres rejestrowy pośredni

Op

Rozkaz

Argument

Pamięć

Adres

R

Rejestry

background image

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.

background image

Adres z przesunięciem

Op

Rozkaz

Argument

Pamięć

Adres

R

Rejestry

Adres

+

background image

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.

background image

Adres stosowy

Op

Rozkaz

Zajęte

Pamięć - stos

Adres

Rejestr 

wierzchołka stosu

background image

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.

background image

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

background image

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

background image

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.

background image

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).

background image

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.

background image

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?