47
AIOR, S. Ribaric 1 4. Upravljacka jedinica • Funkcija upravljacke jedinice • Prijenos upravljanja izmedu programa • Rekurzivni programi • LIFO ili stožna struktura • Uporaba stoga

4. Upravljacka jedinica • Funkcija upravljacke jedinice ... · PDF file(Dataflow arhitektura) AIOR, ... Nedostatak rješenja: Potprogrami ne mogu pozivati sami sebe ... IN - prijemni

Embed Size (px)

Citation preview

Page 1: 4. Upravljacka jedinica • Funkcija upravljacke jedinice ... · PDF file(Dataflow arhitektura) AIOR, ... Nedostatak rješenja: Potprogrami ne mogu pozivati sami sebe ... IN - prijemni

AIOR, S. Ribaric 1

4. Upravljacka jedinica

• Funkcija upravljacke jedinice• Prijenos upravljanja izmedu programa• Rekurzivni programi• LIFO ili stožna struktura• Uporaba stoga

Page 2: 4. Upravljacka jedinica • Funkcija upravljacke jedinice ... · PDF file(Dataflow arhitektura) AIOR, ... Nedostatak rješenja: Potprogrami ne mogu pozivati sami sebe ... IN - prijemni

AIOR, S. Ribaric 2

Funkcije upravljacke jedinice:• Pribavljanje instrukcija• Tumacenje instrukcija• Generiranje upravljackih signala tijekom instrukcijskog

ciklusa• Upravljanje slijedom instrukcija: izbor instrukcije –

prijenos upravljanja s jedne na drugu instrukciju(engl. Instruction sequencing)

Page 3: 4. Upravljacka jedinica • Funkcija upravljacke jedinice ... · PDF file(Dataflow arhitektura) AIOR, ... Nedostatak rješenja: Potprogrami ne mogu pozivati sami sebe ... IN - prijemni

AIOR, S. Ribaric 3

Najjednostavnija metoda upravljanja slijedom instrukcija:

- svaka instrukcija jednoznacno odreduje adresu sljedece:(znacajka prvih racunala – prije “von Neumannovog doba”)

Primjer:EDVAC (Electronic Discrete Variable Computer)Oblik aritmeticke instrukcije:

Nedostatak: Povecana duljina instrukcije(Dataflow arhitektura)

Page 4: 4. Upravljacka jedinica • Funkcija upravljacke jedinice ... · PDF file(Dataflow arhitektura) AIOR, ... Nedostatak rješenja: Potprogrami ne mogu pozivati sami sebe ... IN - prijemni

AIOR, S. Ribaric 4

Druga metoda:

- Instrukcija I nalazi se na memorijskoj lokaciji s adresom A iima jedinstvenu nasljednicu instrukciju I’ na adresi A+1

PC – programsko brojilo sadrži adresu A + 1 (adresu slijedeceinstrukcije)

Adresa slijedece instrukcije (I’) odreduje se povecanjem PC-a:

PC PC + k,

gdje je k duljina instrukcije I izražena u rijecima (bajtovima)/za procesor RISC k=1/

Page 5: 4. Upravljacka jedinica • Funkcija upravljacke jedinice ... · PDF file(Dataflow arhitektura) AIOR, ... Nedostatak rješenja: Potprogrami ne mogu pozivati sami sebe ... IN - prijemni

AIOR, S. Ribaric 5

Prijenos upravljanja izmedu instrukcija koje si nisu slijedne:

1) Instrukcije grananja2) Instrukcije za prijenos upravljanja izmedu programa

1) Instrukcije grananja

• Instrukcije bezuvjetnog grananjaPC X, gdje je X adresa ciljne instrukcije

POZOR: Gornja se operacija izvodi tijekom faze IZVRŠI

Page 6: 4. Upravljacka jedinica • Funkcija upravljacke jedinice ... · PDF file(Dataflow arhitektura) AIOR, ... Nedostatak rješenja: Potprogrami ne mogu pozivati sami sebe ... IN - prijemni

AIOR, S. Ribaric 6

• Instrukcije uvjetnog grananja

- Tijekom faze IZVRŠI ispituje se da li je neki uvjet C zadovoljen(C je obicno posljedica neke ranije instrukcije)

- Ako je C zadovoljen, tada PC X, u drugim slucajevima PCse ne mijenja (tijekom faze IZVRŠI)

Page 7: 4. Upravljacka jedinica • Funkcija upravljacke jedinice ... · PDF file(Dataflow arhitektura) AIOR, ... Nedostatak rješenja: Potprogrami ne mogu pozivati sami sebe ... IN - prijemni

AIOR, S. Ribaric 7

2) Instrukcije za prijenos upravljanja izmedu programa

P1 – program (glavni program)P2 – potprogram

ili

P1 – pozivajuci programP2 – pozvani program

Dva glavna slucaja:

1) Pozivanje potprograma2) Prekidi

Page 8: 4. Upravljacka jedinica • Funkcija upravljacke jedinice ... · PDF file(Dataflow arhitektura) AIOR, ... Nedostatak rješenja: Potprogrami ne mogu pozivati sami sebe ... IN - prijemni

AIOR, S. Ribaric 8

1)P1 P2 instrukcije za pozivanje potprograma

(engl. Call, jump to subroutine):

CALL X,

gdje je X ciljna adresa (ili se ciljna adresa racuna na temeljuX) prve instrukcije (pot)programa P2.

Page 9: 4. Upravljacka jedinica • Funkcija upravljacke jedinice ... · PDF file(Dataflow arhitektura) AIOR, ... Nedostatak rješenja: Potprogrami ne mogu pozivati sami sebe ... IN - prijemni

AIOR, S. Ribaric 9

Tijekom faze IZVRŠI instrukcije CALL obavljajuse dva slijedece koraka:

1. Korak: Sadržaj PC-a (koji pokazuje na slijedecu instrukcijuu P1) se pohranjuje na za to predodredenu lokaciju S,

2. Korak: X (ili adresa izracunata na temelju X) prenosi se u PC

Lokacija S sadrži povratnu adresu

Page 10: 4. Upravljacka jedinica • Funkcija upravljacke jedinice ... · PDF file(Dataflow arhitektura) AIOR, ... Nedostatak rješenja: Potprogrami ne mogu pozivati sami sebe ... IN - prijemni

AIOR, S. Ribaric 10

Povratak iz programa P2 (P2 P1):

Instrukcija povratka (Return; RET) – posljednja instrukcija u P2

PC S

Problem: Gniježdenje potprograma!

Page 11: 4. Upravljacka jedinica • Funkcija upravljacke jedinice ... · PDF file(Dataflow arhitektura) AIOR, ... Nedostatak rješenja: Potprogrami ne mogu pozivati sami sebe ... IN - prijemni

AIOR, S. Ribaric 11

Primjer: PDP –8(ili kako se nekad radilo)

JMS SUB ; Jump to Subroutine

i) PC se pohranjuje na lokaciju SUBii) PC se automatski inkrementira podrazumijevajuci da se prva

instrukcija potprograma SUB nalazi na adresi SUB + 1

Prijenos upravljanja s potprograma na pozivajuci program:

JMP I SUB ; Indirektni skok na SUB !!!

Problem gniježdenja potprograma riješen!

Page 12: 4. Upravljacka jedinica • Funkcija upravljacke jedinice ... · PDF file(Dataflow arhitektura) AIOR, ... Nedostatak rješenja: Potprogrami ne mogu pozivati sami sebe ... IN - prijemni

AIOR, S. Ribaric 12

Nedostatak rješenja: Potprogrami ne mogu pozivati sami sebe(nije omogucena rekurzija)

Rekurzivni program P može se prikazati kao kompozicija Πosnovnih instrukcija si (koje ne sadrže P) i samog programaP:

P = Π [si, P]

Primjer: PROLOG

predak_od (X,Y) :- roditelj_od (X, Y).predak_od (X, Y) :- roditelj_od (Z, Y), predak_od (X, Z).

Page 13: 4. Upravljacka jedinica • Funkcija upravljacke jedinice ... · PDF file(Dataflow arhitektura) AIOR, ... Nedostatak rješenja: Potprogrami ne mogu pozivati sami sebe ... IN - prijemni

AIOR, S. Ribaric 13

Primjer:

n! = 1 x 2 x 3 x 4 x... n1! = 1n! = n x (n-1)!

Hanojski tornjevi

Fibonaccijevi brojevi:1) F0 = 0, F1 = 1; i2) Fn = Fn-1 + Fn-2, za n ≥ 2

Page 14: 4. Upravljacka jedinica • Funkcija upravljacke jedinice ... · PDF file(Dataflow arhitektura) AIOR, ... Nedostatak rješenja: Potprogrami ne mogu pozivati sami sebe ... IN - prijemni

AIOR, S. Ribaric 14

Rješenje problema rekurzije: Uporaba upravljackih stogova

Stog – LIFO (Last In First Out) služi za pohranu povratnih adresa.

CALL SUB

1) PUSH PC

2) PC SUB

RETURN

1) POP PC

Page 15: 4. Upravljacka jedinica • Funkcija upravljacke jedinice ... · PDF file(Dataflow arhitektura) AIOR, ... Nedostatak rješenja: Potprogrami ne mogu pozivati sami sebe ... IN - prijemni

AIOR, S. Ribaric 15

Rekurzivno pozivanje:

Begin..

CALL SUBX: . ; X je povratna adresa

.

.

SUB: ..

CALL SUBY: . ; Y – povratna adresa

.

.RETURN

.End

Page 16: 4. Upravljacka jedinica • Funkcija upravljacke jedinice ... · PDF file(Dataflow arhitektura) AIOR, ... Nedostatak rješenja: Potprogrami ne mogu pozivati sami sebe ... IN - prijemni

AIOR, S. Ribaric 16

Stanje stoga:

Nakon prvog pozivanja Nakon drugog pozivanja

Trece pozivanje, cetvrto pozivanje, ...

Povratak???

Page 17: 4. Upravljacka jedinica • Funkcija upravljacke jedinice ... · PDF file(Dataflow arhitektura) AIOR, ... Nedostatak rješenja: Potprogrami ne mogu pozivati sami sebe ... IN - prijemni

AIOR, S. Ribaric 17

Rekurzivno pozivanje:Begin

.

N := 3

CALL SUB

X: .

.

SUB: .

.

N := N – 1

IF (N > 0) THEN CALL SUB

Y: .

.

RETURN

End

Page 18: 4. Upravljacka jedinica • Funkcija upravljacke jedinice ... · PDF file(Dataflow arhitektura) AIOR, ... Nedostatak rješenja: Potprogrami ne mogu pozivati sami sebe ... IN - prijemni

AIOR, S. Ribaric 18

Stanje stoga:- Prvi poziv (N = 3) / poziv iz glavnog programa/:

- Drugi poziv (N = 2) / poziv iz SUB/:

Page 19: 4. Upravljacka jedinica • Funkcija upravljacke jedinice ... · PDF file(Dataflow arhitektura) AIOR, ... Nedostatak rješenja: Potprogrami ne mogu pozivati sami sebe ... IN - prijemni

AIOR, S. Ribaric 19

Treci poziv (N = 1) /poziv iz SUB/:

Prvi povratak:

Drugi povratak:

Treci povratak:

Page 20: 4. Upravljacka jedinica • Funkcija upravljacke jedinice ... · PDF file(Dataflow arhitektura) AIOR, ... Nedostatak rješenja: Potprogrami ne mogu pozivati sami sebe ... IN - prijemni

AIOR, S. Ribaric 20

Primjeri izvedbe stoga:

1) Stog od n k-bitnih rijeci izveden pomocu posmacnih registara2) Uporaba memorije s izravnim pristupom kao podrucje stoga

Page 21: 4. Upravljacka jedinica • Funkcija upravljacke jedinice ... · PDF file(Dataflow arhitektura) AIOR, ... Nedostatak rješenja: Potprogrami ne mogu pozivati sami sebe ... IN - prijemni

AIOR, S. Ribaric 21

1)

k

Page 22: 4. Upravljacka jedinica • Funkcija upravljacke jedinice ... · PDF file(Dataflow arhitektura) AIOR, ... Nedostatak rješenja: Potprogrami ne mogu pozivati sami sebe ... IN - prijemni

AIOR, S. Ribaric 22

2)RAM

Page 23: 4. Upravljacka jedinica • Funkcija upravljacke jedinice ... · PDF file(Dataflow arhitektura) AIOR, ... Nedostatak rješenja: Potprogrami ne mogu pozivati sami sebe ... IN - prijemni

AIOR, S. Ribaric 23

Analiza slucaja: MC 68000Scenarij:1. Procesor je u korisnickom nacinu rada (User Mode)• Poziva se potprogram• Nastavlja se izvodenje potprograma2. Dogodila se iznimka (PREKID)• Obrada prekida3. Vracanje u potprogram4. Vracanje iz potprograma

/primjer detaljno opisan u S. Ribaric, Naprednije arhitekture mikroprocesora,Element, 1997., Zagreb/

Primjer uporabe stoga

Page 24: 4. Upravljacka jedinica • Funkcija upravljacke jedinice ... · PDF file(Dataflow arhitektura) AIOR, ... Nedostatak rješenja: Potprogrami ne mogu pozivati sami sebe ... IN - prijemni

AIOR, S. Ribaric 24

Graficki prikaz scenarija:

Page 25: 4. Upravljacka jedinica • Funkcija upravljacke jedinice ... · PDF file(Dataflow arhitektura) AIOR, ... Nedostatak rješenja: Potprogrami ne mogu pozivati sami sebe ... IN - prijemni

AIOR, S. Ribaric 25

Page 26: 4. Upravljacka jedinica • Funkcija upravljacke jedinice ... · PDF file(Dataflow arhitektura) AIOR, ... Nedostatak rješenja: Potprogrami ne mogu pozivati sami sebe ... IN - prijemni

AIOR, S. Ribaric 26

Dijagram stanja za MC 68000

RTE -Return from Exception /povlaštena instrukcija/

Page 27: 4. Upravljacka jedinica • Funkcija upravljacke jedinice ... · PDF file(Dataflow arhitektura) AIOR, ... Nedostatak rješenja: Potprogrami ne mogu pozivati sami sebe ... IN - prijemni

AIOR, S. Ribaric 27

• CALL POT se izvodi u dva koraka:

- PUSH PC

- PC POT

Povratak:

- RET:

POP PC

Uporaba stoga!!!

Page 28: 4. Upravljacka jedinica • Funkcija upravljacke jedinice ... · PDF file(Dataflow arhitektura) AIOR, ... Nedostatak rješenja: Potprogrami ne mogu pozivati sami sebe ... IN - prijemni

AIOR, S. Ribaric 28

Na stog se tijekom prijenosaupravljanja s prekinutog na prekidniprogram (P1 P2) pohranjuje MINIMALNI KONTEKST:

• Sadržaj programskog brojila (4 bajta)• Sadržaj statusnog registra (2 bajta)

Adresa prekidnog programa?

Page 29: 4. Upravljacka jedinica • Funkcija upravljacke jedinice ... · PDF file(Dataflow arhitektura) AIOR, ... Nedostatak rješenja: Potprogrami ne mogu pozivati sami sebe ... IN - prijemni

AIOR, S. Ribaric 29

Stanja kazala stogai stogova prije pozivanja potprograma

Page 30: 4. Upravljacka jedinica • Funkcija upravljacke jedinice ... · PDF file(Dataflow arhitektura) AIOR, ... Nedostatak rješenja: Potprogrami ne mogu pozivati sami sebe ... IN - prijemni

AIOR, S. Ribaric 30

Stanje neposredno nakon

grananja u potprogram

Page 31: 4. Upravljacka jedinica • Funkcija upravljacke jedinice ... · PDF file(Dataflow arhitektura) AIOR, ... Nedostatak rješenja: Potprogrami ne mogu pozivati sami sebe ... IN - prijemni

AIOR, S. Ribaric 31

Dogodio se prekid!

(Iznimka se obraduje u nadglednom nacinu)

Page 32: 4. Upravljacka jedinica • Funkcija upravljacke jedinice ... · PDF file(Dataflow arhitektura) AIOR, ... Nedostatak rješenja: Potprogrami ne mogu pozivati sami sebe ... IN - prijemni

AIOR, S. Ribaric 32

Stanje stogova nakon vracanja u potprogram

Page 33: 4. Upravljacka jedinica • Funkcija upravljacke jedinice ... · PDF file(Dataflow arhitektura) AIOR, ... Nedostatak rješenja: Potprogrami ne mogu pozivati sami sebe ... IN - prijemni

AIOR, S. Ribaric 33

Stanje stoga nakon vracanja iz potprograma

Page 34: 4. Upravljacka jedinica • Funkcija upravljacke jedinice ... · PDF file(Dataflow arhitektura) AIOR, ... Nedostatak rješenja: Potprogrami ne mogu pozivati sami sebe ... IN - prijemni

AIOR, S. Ribaric 34

Stanje prije izvodenja programa

Stanje nakon izvodenjaprograma

Page 35: 4. Upravljacka jedinica • Funkcija upravljacke jedinice ... · PDF file(Dataflow arhitektura) AIOR, ... Nedostatak rješenja: Potprogrami ne mogu pozivati sami sebe ... IN - prijemni

AIOR, S. Ribaric 35

Nacini izvedbe upravljacke jedinice

Page 36: 4. Upravljacka jedinica • Funkcija upravljacke jedinice ... · PDF file(Dataflow arhitektura) AIOR, ... Nedostatak rješenja: Potprogrami ne mogu pozivati sami sebe ... IN - prijemni

AIOR, S. Ribaric 36

Opis upravljackih signala

C’OUT - signali koji izravno upravljaju djelovanjem digitalnogsustava za obradu informacije /glavna funkcija upravljacke jedinice/

C’IN - signali koji omogucuju utjecaj podataka tijekom njihoveobrade – omogucavaju donošenje odluke u zavisnosti odrezultata operacije na podacima

C’’IN - prijemni signali (od drugih upravljackih jedinica ili odsredišnje nadgledne jedinice, npr. start, stop)

C’’OUT - signali prema drugim upravljackm jedinicama (npr. busy,operation completed)

Page 37: 4. Upravljacka jedinica • Funkcija upravljacke jedinice ... · PDF file(Dataflow arhitektura) AIOR, ... Nedostatak rješenja: Potprogrami ne mogu pozivati sami sebe ... IN - prijemni

AIOR, S. Ribaric 37

Opisivanje djelovanja upravljacke jedinice

• Dijagram toka i opisni jezici (engl. Description language)- dijagram toka opisuje mikrooperacije i njihov slijed

svakoj mikrooperaciji se u dijagramu toka pridružuje skupupravljackih signala {Ci,j}koji se moraju aktivirati da bi se mikrooperacija izvršila

- sklopovski opisni jezici: RTL (Register Transfer Language), CDL (Computer Design Language), VHDL,...

Nacini izvedbe upravljacke jedinice

1) Sklopovska izvedba - sekvencijalni sklopovi (engl. Hardwired control unit)

2) Mikroprogramska izvedba

Page 38: 4. Upravljacka jedinica • Funkcija upravljacke jedinice ... · PDF file(Dataflow arhitektura) AIOR, ... Nedostatak rješenja: Potprogrami ne mogu pozivati sami sebe ... IN - prijemni

AIOR, S. Ribaric 38

Sklopovska izvedba

-tri pristupa:1) Standardni pristup oblikovanju sekvencijalnih sklopova

(uporaba tablica ili dijagrama stanja)

2) Uporaba elemenata za kašnjenje

3) Uporaba brojila sekvenci

Page 39: 4. Upravljacka jedinica • Funkcija upravljacke jedinice ... · PDF file(Dataflow arhitektura) AIOR, ... Nedostatak rješenja: Potprogrami ne mogu pozivati sami sebe ... IN - prijemni

AIOR, S. Ribaric 39

Tablica stanja

Sn,m, Zn,m...Sn,2, Zn,2Sn,1, Zn,1Sn

...............

...............

............S3

S2,m, Z2,m...S2,2, Z2,2S2,1, Z1,2S2

S1,m, Z1,m...S1,2, Z1,2S1,1, Z1,1S1

Im...I2I1Stanja

Ulazne kombinacije

Si,j – oznacava slijedece stanje

Zi,j – oznacava skup izlaznih signala koji se aktiviraju s Ij ako je upravljackajedinica u stanju Si

Page 40: 4. Upravljacka jedinica • Funkcija upravljacke jedinice ... · PDF file(Dataflow arhitektura) AIOR, ... Nedostatak rješenja: Potprogrami ne mogu pozivati sami sebe ... IN - prijemni

AIOR, S. Ribaric 40

Dijagram stanja

Page 41: 4. Upravljacka jedinica • Funkcija upravljacke jedinice ... · PDF file(Dataflow arhitektura) AIOR, ... Nedostatak rješenja: Potprogrami ne mogu pozivati sami sebe ... IN - prijemni

AIOR, S. Ribaric 41

Uporaba elemenata za kašnjenje

-razmotrimo problem generiranja slijeda upravljackih signala u vremenskimtrenucima t1, t2, ... , tn

t1: aktiviraj {C1,j}t2: aktiviraj {C2,j}. .... ...tn: aktiviraj {Cn,j}

- Pretpostavimo da je u trenutku t1 prisutan signal Start(t1) i on ce u trenutku t1aktivirati skup signala {C1,j} koji ce pobuditi jednu (prvu) ili više mikrooperacija- Signal Start(t1) dovodimo na element za kašnjenje (kašnjenje = t2 – t1) – izlaz iz

elementa za kašnjenje aktivira {C2,j} itd.-Slijed elemenata za kašnjenje može se upotrijebiti za generiranje upravljackih

signalaOblikovanje upravljacke jedinice – izravno iz dijagrama toka

Page 42: 4. Upravljacka jedinica • Funkcija upravljacke jedinice ... · PDF file(Dataflow arhitektura) AIOR, ... Nedostatak rješenja: Potprogrami ne mogu pozivati sami sebe ... IN - prijemni

AIOR, S. Ribaric 42

Start

{C1,j}

{C2,j}

{C5,j}{C4,j}{C3,j}

{C6,j}

X1=1? X2=1?Ne Ne

Da Da

Primjer

Page 43: 4. Upravljacka jedinica • Funkcija upravljacke jedinice ... · PDF file(Dataflow arhitektura) AIOR, ... Nedostatak rješenja: Potprogrami ne mogu pozivati sami sebe ... IN - prijemni

AIOR, S. Ribaric 43

{C1,j}

{C2,j}

Element zakašnjenje

{C1,j}

{C2,j}

C1

C2

C3

Odnos: dijagram toka sklopovi

Page 44: 4. Upravljacka jedinica • Funkcija upravljacke jedinice ... · PDF file(Dataflow arhitektura) AIOR, ... Nedostatak rješenja: Potprogrami ne mogu pozivati sami sebe ... IN - prijemni

AIOR, S. Ribaric 44

NeX=1?

Da

X X

Da Ne

Odnos: dijagram toka sklopovi

Page 45: 4. Upravljacka jedinica • Funkcija upravljacke jedinice ... · PDF file(Dataflow arhitektura) AIOR, ... Nedostatak rješenja: Potprogrami ne mogu pozivati sami sebe ... IN - prijemni

AIOR, S. Ribaric 45

C1

C2

Ck

Element zakašnjenje

{C1,j}

{C2,j}

Element zakašnjenje

{C3,j}

Element zakašnjenje

{C4,j} {C5,j}

{C6,j}

X1

X1 X2X1 X2

Izvedba:

Page 46: 4. Upravljacka jedinica • Funkcija upravljacke jedinice ... · PDF file(Dataflow arhitektura) AIOR, ... Nedostatak rješenja: Potprogrami ne mogu pozivati sami sebe ... IN - prijemni

AIOR, S. Ribaric 46

Izvedba jednostavnog elementa za kašnjenje – dvostruki bistabil (engl. Master-slave)

S

R

MASTER

S

R Q’

SLAVE

S

R

CP

QY

Y’

M-S BISTABIL

S

R

Q

Q

C

Page 47: 4. Upravljacka jedinica • Funkcija upravljacke jedinice ... · PDF file(Dataflow arhitektura) AIOR, ... Nedostatak rješenja: Potprogrami ne mogu pozivati sami sebe ... IN - prijemni

AIOR, S. Ribaric 47

0

1

0

1

0

1

0

1

PROPAGATION DELAY OF OUTPUT Q FROM LEADING EDGE OF THE CLOCK PULSE

Cp

R

S

Q

??