ArKom 4 13 INSTRUKCJE I ADRESOWANIE

background image

Architektura komputerów

4. INSTRUKCJE I

ADRESOWANIE

background image

4 Instrukcje i adresowanie

4.1 Słowo rozkazowe
4.2 Rozkazy 3-, 2-,1- i 0-adresowe
4.3 Adresowanie pamięci
4.4 Lista rozkazów

ArKom 2013 – 4. Instrukcje i

adresowanie

2 - 2

background image

4.1 Słowo rozkazowe

• Instrukcja - rozkaz  słowo

ArKom 2013 – 4. Instrukcje i

adresowanie

3

opcod

e

addressis

• rozkaz wskazuje rodzaj operacji +

lokalizuje argumenty tej operacji.

• Kod operacji – kilka bitów – od

kilkudziesięciu do kilkuset operacji

• Argumenty operacji mogą być zapisane:

• bezpośrednio w rozkazie – adres

natychmiastowy

• w pamięci / rejestrach - adresy

argumentów

• istnieją rozkazy bez argumentowe -

lokalizacja argumentu wynika
bezpośrednio z kodu rozkazu

• Adresy – od kilku do

kilkunastu/kilkudziesieciu bajtów

background image

• Początkowo listy rozkazów były niewielkie i

zawierały proste operacje arytmetyczne i
elementarne struktury programistyczne (pętle,
skoki, rozgałęzienia, podprogramy)

• ostatnio dodano rozkazy obsługujące

multimedia

• Istniała luka pomiędzy assemblerem (kod

maszynowy) a językami algorytmicznymi
wysokiego poziomu  rozbudowa listy
rozkazów ≡ nowe kody operacyjne +
adresowanie + długość słowa

ArKom 2013 – 4. Instrukcje i

adresowanie

4

background image

• CISC – Complex Instruction Set Computer

bardzo rozbudowana lista rozkazów , np.
superminikomputer VAX – ok. 300 rozkazów
+ pojedyncze rozkazy zastępowały
podprogramy

„elegancja” pisania programów, długie listy

rozkazów, wyrafinowane rozkazy i dany, wiele
systemów adresowania

sterowanie mikroprogramowe
rozkazy długie i o zmiennej długości –

utrudnienia dla układu sterującego (procesora)

ArKom 2013 – 4. Instrukcje i

adresowanie

5

background image

• RISC – Reduced Instruction Set Computer

– lata osiemdziesiąte + założenie by
uprościć listę rozkazów (ok. 60 rozkazów)
i przyspieszyć jej realizację

 dostosowano do pamięci buforowych / cache
 przetwarzania wielopotokowego.

• Obecne komputery RISC „znowu”

posiadają obszerne listy rozkazowe +
operacje zmiennoprzecinkowe + operacje
na upakowanych danych (multimedia)

ArKom 2013 – 4. Instrukcje i

adresowanie

6

background image

• Komputer (procesor) - interpretuje kilka typów

słów rozkazowych, co pośrednio wpływa na
liczbę sposobów adresowania,

ArKom 2013 – 4. Instrukcje i

adresowanie

7

Przykłady

Liczba różnych

długości

rozkazów

Liczba

sposobów

adresowania

Max

długość

rozkazu

IBM 370
(CISC)

3

5

8

VAX (CISC)

56

21

57

SPARC

(RISC)

1

1

4

RS6000
(RISC)

1

4

4

background image

• Cykl rozkazowy (Instruction cycle)

ArKom 2013 – 4. Instrukcje i

adresowanie

8

 

  START

  HALT

Fetch the next
Instruction

Execute the

Instruction

Fetch

Cycle

Execute

Cycle

background image

• Przetwarzanie potokowe

• Realizacja sekwencyjna trzech rozkazów

ArKom 2013 – 4. Instrukcje i

adresowanie

9

Rozka

z

 

 

 

 

 

 

n

F

E

 

 

 

 

n+1

 

 

F

E

 

 

n+2

 

 

 

 

F

E

• Realizacja potokowa trzech rozkazów

Rozka

z

 

 

 

 

 

 

n

F

E

 

 

 

 

n+1

 

F

E

 

 

 

n+2

 

 

F

E

 

 

background image

• W trakcie pobierania rozkazu (F) układy

realizujące wykonanie rozkazu (E) są bezczynne.

• Oczywiście:

– musi być oddzielenie układów pobierania

rozkazów od układów wykonawczych

– trzeba doliczyć czas na organizację potoków

ArKom 2013 – 4. Instrukcje i

adresowanie

10

background image

4.2 Rozkazy 3-, 2-,1- i 0-adresowe

• Rozkaz 3-adresowy

– operacja logiczna / arytmetyczna q = x + y

ArKom 2013 – 4. Instrukcje i

adresowanie

11

ADD X,Y,Q

ADD

Adres X

Adres Y

Adres Q

• Długie słowa adresowe

• Poszczególne adresy zależą od przestrzeni

adresowej, np. 1MB przestrzeni wymaga
przynajmniej 20 bitów, czyli rozkaz OPCODE
+ 3 * 20

• Trzy kontakty (2 pobrania + 1 zapis) z

pamięcią

 

Y

X

Q

Q

:

background image

3.12.2013

• Rozkaz 2-adresowy
• q = x + y - dwa rozkazy dwuadresowe –

(operacje podobne do użycia akumulatora
w maszynie von Neumana)  

ArKom 2013 – 4. Instrukcje i

adresowanie

12

MOV

Adres X

Adres Q

ADD

Adres Y

Adres Q

Y

Q

Q

Q

Y

ADD

X

Q

Q

X

MOV

;

,

;

,

background image

• Rozkaz 1-adresowy

q = x + y
schemat von Neumana – akumulator –
przechowuje domyślny argument operacji
dwuargumentowych

ArKom 2013 – 4. Instrukcje i

adresowanie

13

LOAD

Adres X

ADD

Adres Y

STORE

Adres Q

ACC

Q

Q

STORE

Y

ACC

ACC

Y

ADD

X

ACC

X

LOAD

;

;

;

background image

Rozkaz 0-adresowy

Jeżeli zdefiniować domyślne miejsca obu
argumentów operacji, to można wykonywać
działania nie podając jawnie adresów argumentów

Komputery stosowe (stack computers) ze stosem
obliczeniowym (evaluation stack)

Stos stanowi zespół rejestrów, z których możliwe
jest odczytywanie/zapisywanie informacji
wyłącznie w odwrotnej kolejności do kolejności ich
zapisu/odczytu

Zapis i pobranie odbywa się tylko z wierzchołka
stosu

ArKom 2013 – 4. Instrukcje i

adresowanie

14

background image

ArKom 2013 – 4. Instrukcje i

adresowanie

15

1

0

1

Stack Pointer

Wierzchołek
stosu

 
 
 

 

 

 

 

S[0
]S[1
]

S[2
]S[3
]

S[6
]

S[4
]S[5
]

S[7
]

PUSH

POP

 

background image

• Zapis z pamięci na stos za pomocą rozkazu

PUSH - „podwyższenie” stosu, czyli zmniejszenie
wskaźnika S[…],

Realizacja PUSH X - zapis słowa X na stos
SP  SP – 1; next S[SP]  X

• Pobranie ze stosu za pomocą POP – „obniżenie”

stosu, czyli zwiększenie wskaźnika S […]
Zapisanie (pobranie) słowa z wierzchołka –
POP Q – przesłanie słowa z wierzchołka pod
adres Q i „podwyższenie” stosu

Q  S [SP]; next SP  SP + 1

ArKom 2013 – 4. Instrukcje i

adresowanie

16

background image

• Wykonanie obliczenia q = x + y w komputerze

stosowym wymaga realizacji czterech rozkazów
= 3 jednoadresowe oraz 1 zeroadresowy

PUSH   X

;Stos  X

PUSH   Y

;Stos  Y

ADD

;Dodanie dwóch słów z wierzchołku

stosu

POP   Q ;Q  Stos

ArKom 2013 – 4. Instrukcje i

adresowanie

17

background image

PUSH

Adres X

PUSH

Adres Y

ADD

 

POP

Adres Q

ArKom 2013 – 4. Instrukcje i

adresowanie

18

• Mechanizm stosu stosuje się również do

przechowywania adresów powrotnych
podprogramów oraz do przechowywania
danych potrzebnych do wznowienia
programów przerwanych – stosy powrotu
(return stack)

background image

4.3 Adresowanie pamięci

• Pole adresowe rozkazu powinno, ale nie może,

zawierać efektywny adres pamięci (EA – Effective
Address
), gdyż

– pamięć może być duża
– pole adresowe stałe (za mało bitów/bytów)
– lokowanie/przedłużanie adresów w następnych

słowach rozkazowych zwiększa czas
pobierania rozkazów i może prowadzić
marnotrawstwa

ArKom 2013 – 4. Instrukcje i

adresowanie

19

background image

• Metody adresowania (addressing modes);

– adresowanie natychmiastowe
– adresowanie bezpośrednie,
– adresowanie pośrednie
– adresowanie względne,

 rozbudowa pól adresowych – dodaje
„nowe/specjalne składniki” oraz sposoby i ich
interpretacji  architektura ortogonalna ≡
gdy w słowie wieloadresowym każdy
argument/operand może być adresowany
w sposób niezależny od pozostałych

ArKom 2013 – 4. Instrukcje i

adresowanie

20

background image

4.3.1 Adresowanie natychmiastowe

OPCOD

E

Argument/operand

ArKom 2013 – 4. Instrukcje i

adresowanie

21

• Zapisuje się argumenty stałe (niezmienne)

i znane już w trakcie pisania programu

background image

4.3.2 Adresowanie bezpośrednie

• Naturalny sposób adresowania
• Wymaga dużego pola adresowego
• Czasami adresuje się jedynie początek obszaru pamięci

ArKom 2013 – 4. Instrukcje i

adresowanie

22

OPCOD
E

Adres

Operand

Adres

efektywny

PAMIĘĆ

background image

4.3.3 Adresowanie pośrednie

ArKom 2013 – 4. Instrukcje i

adresowanie

23

OPCOD
E

Adres

Adres

efektywny

Adres adresu

efektywnego

PAMIĘĆ

Operand/ar

gument

background image

• Rozwiązanie historyczne, gdyż

– przynajmniej dwukrotny dostęp do pamięci
1)znaleźć adres efektywny,
2)pobrać/zapisać operand
opóźnienia w realizacji cyklu rozkazowego &

komplikacja wykonania cyklu rozkazowego

– stosowano również wielostopniowe

adresowanie efektywne

ArKom 2013 – 4. Instrukcje i

adresowanie

24

background image

4.3.4 Adresowanie pośrednie oparte o
rejestry

ArKom 2013 – 4. Instrukcje i

adresowanie

25

OPCOD
E

Nr

rejestru/rejestrów

 

PAMIĘĆ

Operand/arg

ument

Adres

Adres

Adres

background image

• Adresowanie podobne do adresowania

pośredniego opartego o pamięć lecz dzięki
ulokowaniu adresu w specjalnych uniwersalnych
rejestrach procedura tworzenia efektywnego
adresu jest prostsza i nie wymaga dwu (wielu)
odwołań do pamięci.

• W polu adresowym rozkazu umieszcza się

adresy/numery rejestrów zawierających adresy
argumentów;

– w szczególnym przypadku (RISC) mogą to być

numery 3 rejestrów (dwa dla wyliczenia adresu
argumentu, trzeci dla wyniku)

ArKom 2013 – 4. Instrukcje i

adresowanie

26

background image

4.3.5 Adresowanie względne

ArKom 2013 – 4. Instrukcje i

adresowanie

27

OPCOD
E

Adres

Operand

PAMIĘĆ

Adres

bazowy

+

background image

• Adresowanie względne (indexed, based) – pole

adresowe rozkazu zawiera element adresu
efektywnego, który dodaje do zawartości
wskazanego rejestru w celu uzyskania pełnego
adresu efektywnego operandu.

ArKom 2013 – 4. Instrukcje i

adresowanie

28

background image

Ze względu na zawartość rejestru rozróżnia się
adresowanie względne;
• adresowanie bazowe – stała (niezmienna w trakcie

realizacji programu) zawartość rejestru  do
zmieniającej się wartości pola adresowego rozkazu jest
dodawana stała zawartość rejestru bazowego

• adresowanie indeksowe – zmienna zawartość rejestru

w trakcie realizacji programu  do pola adresowego
rozkazu dodaje się zawartość rejestru indeksowego;
w szczególnym przypadku zawartość rejestru
indeksowego może się zmieniać automatycznie
(autoindeksacja) w górę (autoinkrementacja) lub w dół
(autodekrementacja)

ArKom 2013 – 4. Instrukcje i

adresowanie

29

background image

4.3.6 Adresowanie względne w oparciu
o licznik rozkazów

ArKom 2013 – 4. Instrukcje i

adresowanie

30

OPCOD
E

displacement

Operand

PAMIĘĆ

Adres następnego

rozkazu

+

 

Program Counter,

Instruction Pointer

Rozkaz

przesunię
cie

background image

• Adresowanie względne oparte o rejestr licznika

rozkazów i nosi nazwę relative addressing

• W polu adresowym rozkazu przechowuje się tzw.

przesunięcie (displacement) równe odległości
mierzonej w bajtach od wykonywanego rozkazu,
a dokładniej od następnego rozkazu.

• W asemblerze nie występują jawnie adresy –

zapisuje się je jako etykiety i przesuniecie jest
liczone „automatycznie” jako aktualna odległość
do danej etykiety i odległość ta stanowi
przesuniecie zapisane w polu adresowym
rozkazu.

ArKom 2013 – 4. Instrukcje i

adresowanie

31

background image

• Znak przesunięcia wskazuje kierunek odwołania;

– ujemne przesunięcie wskazuje miejsce

w pamięci przed rozkazem, czyli jest to
odwołanie do tyłu

– dodatnie – miejsce za rozkazem – odwołanie do

przodu.

ArKom 2013 – 4. Instrukcje i

adresowanie

32

background image

ArKom 2013 – 4. Instrukcje i

adresowanie

33

background image

4.4 Lista rozkazów

• Typy działań:

– przesłania
– działania arytmetycne
– działania logiczne
– sterowanie przebiegiem program
– przesłania wejścia-wyjścia
– operacje zmiennoprzecinkowe
– opreracje na argumentach

upakowanych.

ArKom 2013 – 4. Instrukcje i

adresowanie

34

background image

4.4.1 Przesłania

• Przesłanie – przemieszczenie

strumieni zero-jedynkowych
pomiędzy adresowanymi polami
pamięci lub rejestrami procesora ≡
kopiowanie bez zerowania lub innej
modyfikacji zawartości źródła

• Zapisy asemblerowe move, MOV –

mylące, gdyż to jest tylko
kopiowanie

ArKom 2013 – 4. Instrukcje i

adresowanie

35

background image

• Przesłanie bajtu

– przesłanie bezpośrednie (bez znaku -

unsigned) – pierwsza część słowa Q
„pusta” wypełniona zerami

ArKom 2013 – 4. Instrukcje i

adresowanie

36

10100010

00000000 10100010

P

Q

a)

background image

• Przesłanie bajtu

– przesłanie z zachowaniem znaku (sign-

extended) – pierwsza część słowa
wypełniona znakiem – powtórzeniem
najstarczego bitu bytu – kod
uzupełnieniowy

ArKom 2013 – 4. Instrukcje i

adresowanie

37

10100010

11111111

10100010

P

Q

 

b)

background image

• Szczególny typ przesłania to operacje na stosie –

dotyczy domyślnego adresu wierzchołka stosu

– Stos stanowi zespół rejestrów, z których możliwe jest

odczytywanie informacji wyłącznie w odwrotnej
kolejności do kolejności ich zapisu

– Zapis i pobranie odbywa się tylko z wierzchołka stosu

– Zapis z pamięci na stos za pomocą rozkazu PUSH X -

zapis słowa X na stos - „podwyższenie” stosu, czyli
zmniejszenie wskaźnika S[…] / SP

– Pobranie ze stosu za pomocą POP Q – Zapisanie

(pobranie) słowa z wierzchołka – POP Q – przesłanie
słowa z wierzchołka i przesłanie go pod adres Q
i„obniżenie” stosu, czyli zwiększenie wskaźnika SP

ArKom 2013 – 4. Instrukcje i

adresowanie

38

background image

ArKom 2013 – 4. Instrukcje i

adresowanie

39

1

0

1

Stack Pointer

Wierzchołek stosu

 
 

 

 

 

 

 

S[0
]S[1
]

S[2
]S[3
]

S[6
]

S[4
]S[5
]

S[7
]

PUSH

POP

 

 

background image

4.4.2 Rozkazy arytmetyczne

• Dotyczą operacji na liczba całkowitych (kod U2)

– ADD – dodawanie oraz ADC – dodawanie z przeniesieniem

(add with carry)

– SUB – odejmowanie oraz SBB – odejmowanie z pożyczką

(subtrack with borrow)

– MUL – mnożenie
– DIV - dzielenie

• Stosuje się wskaźniki wyznaczane dla każdej operacji

arytmetycznej i wykorzystywane w rozkazach warunkowych

– C – przeniesienie (Carry)
– V – nadmiar arytmetyczny (overflow)
– Z – zera (zero)
– N – znaku (negative),

ArKom 2013 – 4. Instrukcje i

adresowanie

40

background image

Dodawanie dwóch liczb o zwiększonej
dokładności  wielostopniowość operacji

ArKom 2013 – 4. Instrukcje i

adresowanie

41

X; 63-32

X; 31-0

X+Y; 63-32

X+Y; 31-0

Y; 63-32

Y; 31-0

C

background image

4.4.3 Operacje logiczne

• Operacje logiczne (boolowskie) są

realizowane na odpowiadających
sobie bitach (pozycjach)

• Są to z reguły podstawowe operacje

logiczne:

p AND q, p OR q, p XOR q, p NOR q,
p NAND q, NOT p,

• Korzysta się w manipulacjach na

ciągach zerojedynkowych, np.

ArKom 2013 – 4. Instrukcje i

adresowanie

42

background image

ArKom 2013 – 4. Instrukcje i

adresowanie

43

1010110011110101

0000010010010101

0000011110011111

P

P AND Q

maska - Q

background image

4.4.4 Przesunięcia

• Przesunięcie (shift) oznacza zmianę położenia

ciągu zerojedynkowego w rejestrze;

w lewo – na pozycje bardziej znaczące, w

prawo na mniej znaczące

– może być

naturalne (shl, shr)– na zwolnione miejsca

wpisuje się zera , a wysunięty bit
zapamiętuje się w znaczniku C  odpowiada
to mnożeniu/dzieleniu,

ArKom 2013 – 4. Instrukcje i

adresowanie

44

background image

Naturalne przesuniecie w lewo

ArKom 2013 – 4. Instrukcje i

adresowanie

45

 

10011001

 1

C

shl

00110010

0

background image

Przesunięcie w prawo

ArKom 2013 – 4. Instrukcje i

adresowanie

46

 

10011001

 1

C

shr

01001100

0

background image

cykliczne (ro) – wysunięty bit wprowadzany jest

na zwolnione miejsce

ArKom 2013 – 4. Instrukcje i

adresowanie

47

 

10011001

 1

C

rol

00110011

background image

arytmetyczne – pewne manipulacje na wartości i

znaku, np. shra – arytmetyczne w prawo zachowuje
znak (najstarszy bit), a wartość przesuwa się.

• Natomiast shla ≡ shl (naturalnemu w lewo)

ArKom 2013 – 4. Instrukcje i

adresowanie

48

 

10011001

 1

C

shra

11001100

0

background image

zamiana bajtów (swap), np. bez zamiany

kolejności bitów w bajcie

ArKom 2013 – 4. Instrukcje i

adresowanie

49

P

Q

R

S

 

S

R

Q

P

background image

4.4.5 Rozszerzenia multimedialne

• potrzeba uzupełnienia listy rozkazów o operacje

ułatwiające przetwarzanie grafiki i dźwięku 
rozkazy multimedialne  wykonanie tej samej
operacji na wielu zmiennych, np. 16. bitowe
kodowanie koloru

• By nie wykonywać wielokrotnie tych samych

czynności dla kolejnych danych dane grupuje się
(pakuje się) i wykonuje się jeden rozkaz na całej
paczce  odpowiada to przetwarzaniu SIMD
(Single Instruction Multliple Data)

• z reguły proste operacje dodawania, mnożenia,

logiczne, przesunięcia i porównania

ArKom 2013 – 4. Instrukcje i

adresowanie

50

background image

• Przykłady rozszerzeń

– Intel x86 – MMX (Multi Media EXtension) –

Rys. 4.19 lub (nowsza wersja procesora) SSE
(Streaming SIMD Extension) – rejestry 64
bitowe

– SPARC (Scalable Processor ARChitecture) –

VIS (Visual Instraction Set)

ArKom 2013 – 4. Instrukcje i

adresowanie

51


Document Outline


Wyszukiwarka

Podobne podstrony:
[lekcja 13] Instrukcja warunkowa if else Kurs C++ » Poziom 1
13.Instrukcja mycia drobnego sprzętu, Haccp-Dokumentacja-przykład
02 uklad wykonawczy instrukcje i adresowanie
13 Instrukcja obsługi BFU
[lekcja 13] Instrukcja warunkowa if else Kurs C++ » Poziom 1
13 Instrukcja technologiczna spawania
ArKom 3 13 ARYTMETYKA KOMPUTEROWA
ArKom 0 13 OMÓWIENIE
ArKom 5 13 PRZERWANIA
13 Instrukcja obsługi BFU
13 Instrumenty muzyczne
ArKom 1 13 WPROWADZENIE
ArKom 2 13 PRZETWARZANIE W KOMPUTERZE Kopia
Instrukcja do zad proj 13 Uklad sterowania schodow ruchom
Instrukcja 13 Elementy czasowe i liczniki pne
13-in.postęp. na wyp. powst. pożaru, Instrukcje BHP, XIX - P.POŻ
LAB instrukcje, Ćwiczenie 13, Przebieg _wiczenia:
13. Miareczkowanie amperometryczne, Technologia Chemiczna, Rok III, Semestr II, Instrumentalne metod

więcej podobnych podstron