background image

Układ wykonawczy, instrukcje

i adresowanie

Dariusz Chaberski

background image

System mikroprocesorowy

mikroprocesor

D

A

A

C

C

C

C

C

2

C

3

C

1

dekoder

adresów

pamięć

programu

pamięć
danych

układy wejścia

wyjścia

A

D

D

D

A

A

magistrala adresowa

magistrala danych

sygnały sterujące

BIOS

pamięć operacyjna

mysz

karta graficzna

klawiatura

stacja dyskietek

2

background image

Jednostka centralna

układ

wykonawczy

układ

sterowania

sygnały

sterujące

sygnały

stanu

sz

y

n

a

sy

g

n

a

ło

w

st

er

o

w

a

n

ia

wewnętrzna

szyna adresowa

w

ew

n

ęt

rz

n

a

sz

y

n

a

d

a

n

y

ch

3

background image

Układ wykonawczy

rejestr tymczasowy

akumulator

rejestr znaczników

rejestry ogólnego

przeznaczenia

licznik programu

wskaźnik stosu

rejestr rozkazów

4

background image

§ architektura superskalarna

rejestry ogólnego przeznaczenia

FIFO

sekwenser

licznik

programu

5

background image

Instrukcje

§ format 4

r

k1

o

m1

R

:

O

:

drugi operand

rodzaj operacji

pierwszy operand

o

0

O

:

W

:

wynik

w

0

o

0

w

n1

r

0

o

l1

R(WF) = R(OO

0

F)

F - rejestr znaczników

+ przykłady

◦ [W] = [O] † O

0

◦ W = O † [#O

0

]

† - dowolny operator

6

background image

§ format 3

r

k1

R

:

rodzaj operacji

pierwszy operand

o

0

O

:

o

m1

O

:

drugi operand

o

0

r

0

o

l1

R(A/OF) = R(OO

0

F)

A - rejestr specjalny - akumulator

+ przykłady

◦ O = O

0

◦ [#O] = O † #O

0

◦ A = O † [#O

0

]

7

background image

§ format 2

r

k

1

R

:

rodzaj operacji

operand

o

0

r

0

O

: o

l

1

R(A/OF) = R(AOF)

+ przykłady

◦ O = O

◦ A = O

◦ A = [A † O]

8

background image

§ format 1

r

k

1

R

:

rodzaj operacji

r

0

R(AF) = R(AF)

+ przykłady

◦ A = A

◦ [A] = 0

◦ A = [A]

9

background image

§ podział

+ pełniona funkcja

3 przesłań

3 arytmetyczne

3 logiczne

3 sterujące

3 warunkowe

3 specjalne

+ typ danych

3 stałoprzecinkowe

3 zmiennoprzecinkowe

3 bitowe

3 blokowe

3 DSP - Digital Signal Processing

3 SIMD - Single Instruction Multiple Data

+ poziom uprzywilejowania

10

background image

§ przesłania bitowe międzyrejestrowe

przeznaczenie

źródło

rejestry

ogólnego

przeznaczenia

przeznaczenie

rejestry

ogólnego

przeznaczenia

akumulator

D = S

D = A

D, S -rejestr przeznaczenia, źródła

11

background image

§ przesłania 2bitowe międzyrejestrowe

rejestry

ogólnego

przeznaczenia

S

1

S

2

D

1

D

2

rejestry

ogólnego

przeznaczenia

D

H

D

L

S

L

S

H

D

2

D

1

= S

2

S

1

D

L

= S

H

12

background image

§ przesłania pamięć-rejestr, rejestr-pamięć (kolejność bajtowa)

RS

RD

H

RD

L

AD

:

AS

:

AS

+1:

pamięć

rejestry ogólnego przeznaczenia

[AD] = RS

RD

H

◦ RD

L

= [AS] ◦ [AS + 1]

13

background image

Kolejność bajtowa

§ Big Endian - najbardziej znaczący bajt umieszczany jest w pamięci jako pierwszy

pod najniższym adresem (na przykład procesory POWER)

+ przykład

0x6FC9D (Big Endian, 32 bitowe rejestry)

adres(przesunięcie)

0

1

2

3

zawartość

0x00

0x06

0xFC

0x9d

§ Little Endian - najmniej znaczący bajt umieszczany jest w pamięci jako pierwszy

(na przykład procesory Intel x86)

14

background image

Instrukcje

§ przesłania blokowe pamięć-pamięć

DI

:

pamięć

SI

:

licznik

przesłań

rejestr

indeksowy

przeznaczenia

rejestr

indeksowy

źródła

DIR

DI

:

SI

:

CNT

:

znacznik

kierunku

15

background image

§ przesłania na stos i ze stosu (ochrona rejestru)

n+3
n+2

wskaźnik

stosu

n+1

n

n+4

LIFO

chroniony

rejestr

n+3
n+2

wskaźnik

stosu

n+1

n

n+4

LIFO

chroniony

rejestr

16

background image

§ sterujące - wywołanie podprogramu

PC

- licznik programu

SP

- wskaźnik stosu

instrukcja

instrukcja

instrukcja

instrukcja

instrukcja

instrukcja

instrukcja

powrót

pamięć

programu

SUB

:

PC

+1:

SUB

wywołanie

PC

:

SP

=SP-1

PC

=[SP]

PC

=PC+1

SP

=SP+1

[SP]=PC
PC

=SUB

17

background image

§ sterujące - skok bezwarunkowy

PC

=ADDR

instrukcja

instrukcja

instrukcja

instrukcja

instrukcja

pamięć

programu

ADDR

:

PC

+1:

ADDR

skok

PC

:

18

background image

§ sterujące - skok bezwarunkowy względny

ADDR

L

instrukcja

instrukcja

instrukcja

instrukcja

pamięć

programu

PC

+1:

PC

:

PC

= PC + 1

skok

instrukcja

ADDR

H

L

= [PC]

H

= [PC]

PC

= PC + 1

PC

+ H ◦ L:

PC

= PC + H ◦ L

19

background image

§ warunkowe typu SKIP

instrukcja

instrukcja

warunkowa

instrukcja

pomijana

instrukcja

instrukcja

20

background image

§ warunkowe typu BRANCH (zastosowanie SKIP)

instrukcja

instrukcja

warunkowa

instrukcja

instrukcja

instrukcja

instrukcja

in

st

ru

k

cj

e

p

o

m

ij

a

n

e

21

background image

§ warunkowe typu BRANCH (zastosowanie do tworzenia opóźnień)

instrukcja

warunkowa

instrukcja

instrukcja

instrukcja

instrukcja

za

p

ęt

la

n

e

in

st

ru

k

cj

e

22

background image

§ warunkowe typu instrukcja+BRANCH

instrukcja

instrukcja

instrukcja

instrukcja

warunkowa

instrukcja

za

p

ęt

la

n

e

in

st

ru

k

cj

e

instrukcja

23

background image

§ warunkowe typu instrukcja+SKIP

instrukcja

instrukcja

instrukcja

instrukcja

warunkowa

instrukcja

instrukcja

pomijana

24

background image

§ specjalne

+ zatrzymanie procesora

+ oczekiwanie przerwania

+ operacja pusta

+ obniżenie poboru energii

25

background image

§ bitowe

+ przesunięcie logiczne w prawo

b

N

1

b

0

C

0

+ przesunięcie logiczne / arytmetyczne w lewo

C

b

N

1

b

0

0

+ przesunięcie arytmetyczne w prawo

b

N

1

b

0

C

26

background image

§ bitowe

+ przesunięcie cykliczne w prawo przez znacznik przeniesienia

b

N

1

b

0

C

+ przesunięcie cykliczne w lewo przez znacznik przeniesienia

C

b

N

1

b

0

27

background image

Instrukcje

§ bitowe

+ przesunięcie cykliczne w prawo

b

N

1

b

0

C

+ przesunięcie cykliczne w lewo

C

b

N

1

b

0

28

background image

§ bitowe

+ ustawianie bitu k w słowie B

b

N

1

b

0

1

k

B

:

N-1

0

B = B ∨ (1 << k)

+ zerowanie bitu k w słowie B

b

N

1

b

0

0

k

B

:

N-1

0

B = B ∧ (1 << k)

29

background image

§ bitowe

+ negowanie bitu k w słowie B

b

N

1

b

0

k

B

:

N-1

0

b

k

B = B ⊕ (1 << k)

30

background image

§ poziom uprzywilejowania

0

1

2

3

0 - jądro systemu operacyjnego (zarządzanie pamięcią, przełączanie zadań)

1 - system operacyjny (dostęp do danych, obsługa wejść / wyjść)

2 - rozszerzenie systemu operacyjnego przez użytkownika

3 - programy użytkowe

31

background image

§ podział mikroprocesorów według typu listy instrukcji

+ RISC (ang. Reduced Instruction Set Computer)

3 zbiór instrukcji jest ortogonalny

3 mała liczba instrukcji

+ CISC (ang. Complex Instruction Set Computer)

3 rozbudowana liczba instrukcji

3 wysoka specjalizacja instrukcji

32

background image

Tryby adresowania

§ implikowane

rejestry

ogólnego

przeznaczenia

pamięć

programu

akumulator

A = A † R

† - dowolny operator

A - rejestr specjalny - akumulator

R - wybrany rejestr ogólnego przeznaczenia

33

background image

§ natychmiastowe

pamięć

programu

akumulator

A = A † #D

34

background image

§ bezpośrednie

rejestry

ogólnego

przeznaczenia

pamięć

programu

akumulator

A = A † [D1 ◦ D2]

D1D2 - dwa kolejne słowa po kodzie rozkazu

35

background image

§ (pre, post) indeksowe

akumulator

rejestry

indeksowe

pamięć

programu

rejestry ogólnego

przeznaczenia lub

pamięć

A = A † [I + D]

D - słowo po kodzie rozkazu

I - zawartość wybranego rejestru indeksowego

36

background image

§ indeksowe z przesunięciem bezpośrednim

akumulator

pamięć

programu

rejestry ogólnego

przeznaczenia lub

pamięć

rejestry indeksowe

A = A † [I + [D1 ◦ D2]]

37

background image

§ pośrednie

akumulator

pamięć

programu

rejestry ogólnego

przeznaczenia lub

pamięć

A = A † [[D1 ◦ D2]]

38

background image

§ względne

akumulator

pamięć

programu

licznik programu

adres następnej

instrukcji

A = A † [PC + D]

PC - licznik programu

39