61
1 © Kovač, Basch, FER, Zagreb Izvođenje naredaba i protočna struktura Ovaj dokument namijenjen je isključivo za osobnu upotrebu studentima Fakulteta elektrotehnike i računarstva Sveučilišta u Zagrebu. Svaka druga upotreba ili umnožavanje bilo kojeg dijela ovog dokumenta nije dozvoljena bez pismene dozvole autora. © Mario Kovač, Danko Basch

05 FRISC Pipeline

Embed Size (px)

Citation preview

Page 1: 05 FRISC Pipeline

1© Kovač, Basch, FER, Zagreb

Izvođenje naredaba i protočna struktura

Ovaj dokument namijenjen je isključivo za osobnu upotrebu studentima Fakulteta elektrotehnike i računarstva Sveučilišta u Zagrebu.

Svaka druga upotreba ili umnožavanje bilo kojeg dijela ovog dokumenta

nije dozvoljena bez pismene dozvole autora.

© Mario Kovač, Danko Basch

Page 2: 05 FRISC Pipeline

2© Kovač, Basch, FER, Zagreb

Efikasno izvođenje poslova

• Prije diskusije o izvođenju naredaba na procesoru analizirajmo jedan ne-

računarski primjer: Izrada proizvoda koje treba izrezati, izbušiti i lakirati.

3 1 1 12

1

2 2

2 3 3 3 1

2

3

Za izradu 3 proizvoda treba ukupno 9 koraka.

Page 3: 05 FRISC Pipeline

3© Kovač, Basch, FER, Zagreb

Efikasno izvođenje poslova• Ovakav primitivan pristup izvođenju poslova još davno je odbačen kao vrlo

neefikasan.

• U 1901. Ransome Eli Olds uveo je u industriju prve verzije linije za proizvodnju.

• Henry Ford je 1913-14 uveo prve pokretne trake u sklapanju automobila u tvornici Ford Highland Park, Michigan.

• Pojedini radnik radio je isključivo mali dio posla (npr. montirao volan i ništa osim toga) te je slijedeći radnik radio drugi mali dio posla i tako za cijelu proizvodnju.

• Ovakva organizacija proizvodnje uvela je revoluciju u proizvodnju automobila zbog svojih velikih ušteda: • vrijeme za sklapanje auta smanjilo se sa preko 12 sati

na 93 minute (Model T)

Page 4: 05 FRISC Pipeline

4© Kovač, Basch, FER, Zagreb

Efikasno izvođenje poslova

• Puno brže i efikasnije je upotrijebiti pokretnu traku i obavljati sva tri

koraka istodobno (bitno je da su koraci međusobno NEOVISNI i da

jedan drugom ne “smetaju”):

Za izradu 3 proizvoda ukupno treba 5 koraka.

Nakon što prvi proizvod bude napravljen u 3 koraka, svi sljedeći proizvodi izlaze u jednom koraku !!

Uvjet koji ne smijemo zaboraviti: za ovakvu proizvodnju treba nam više radne snage: 3 radnika !!! -> Cijena rada sustava je veća.

33 2 12

1

1

2

3

Page 5: 05 FRISC Pipeline

5© Kovač, Basch, FER, Zagreb

Izvođenje naredaba u procesoru

• Podsjetnik - tipične faze u izvođenju naredbe* su:

• dohvat naredbe iz memorije (fetch)

• dekodiranje naredbe (decode)

• izvođenje naredbe (execute)

* Moguće su i drugačije podjele na faze (obično na veći broj faza: npr.

faza izvođenja se može podijeliti na dohvat operanada, izvođenje

ALU-operacije i spremanje rezultata itd.)

Page 6: 05 FRISC Pipeline

6© Kovač, Basch, FER, Zagreb

• Npr. neka imamo redom naredbe ADD, SUB i XOR koje se trebaju izvesti:

Izvođenje naredaba u procesoru

Dekodiraj

ADDADDIzvedi

ADD

Dohvati

ADD

SUB

XOR

Dekodiraj

SUB

Izvedi

SUB

Dohvati

SUB

Dekodiraj

XOR

Izvedi

XOR

Dohvati

XOR

• Ako bi se naredbe izvodile slijedno po fazama, tada bi za svaku naredbu bila potrebna 3 vremenska perioda (uz pretpostavku da svaka faza traje jedan period).

• Ovo predstavlja STARI način izvođenja ---- NEEFIKASNO

• Još uvijek se koristi kod nekih jednostavnih procesora.

T1 T2 T3 T4 T5 T6 T7 T8 T9

Page 7: 05 FRISC Pipeline

7© Kovač, Basch, FER, Zagreb

IzvođenjeDekodiranje

Izvođenje naredaba i protočna struktura

• Podjelimo li faze tako da su međusobno neovisne, možemo

primjeniti načela pokretne trake, pa se sve tri faze mogu

izvoditi istodobno:

• Ovakva organizacija izvođenja se u literaturi naziva cjevovod (engl. pipeline), a mi ga nazivamo protočna struktura.

• Svaka razina protočne strukture (engl. pipeline stage) izvodi jednu fazu.

• Glavna namjena je ubrzanje izvođenja

DohvatNAREDBE

Page 8: 05 FRISC Pipeline

8© Kovač, Basch, FER, Zagreb

Izvođenje naredaba i protočna struktura

IzvođenjeDekodiranjeDohvat

ADD

SUB

XOR

• Sada se prije spomenute tri naredbe ADD,SUB i XOR mogu puno efikasnije

i brže izvesti:

Dekodiraj

ADDADD

Izvedi

ADD

Dohvati

ADD

Dekodiraj

SUBSUBIzvedi

SUB

Dohvati

SUB

XOR

Dekodiraj

XOR

Izvedi

XOR

Dohvati

XOR

T1 T2 T3 T4 T5

Page 9: 05 FRISC Pipeline

9© Kovač, Basch, FER, Zagreb

Izvođenje naredaba i protočna struktura

• Podijelimo li naredbu na N faza, onda možemo izračunati ubrzanje:

• u slijednom izvođenju:

• za svaku naredbu treba N vremenskih perioda

• za M naredaba slijedno izvođenje traje: M * N

• u protočnom izvođenju:

• prva naredba traje N perioda, a svaka sljedeća traje 1 period

• za M naredaba protočno izvođenje traje: N + (M-1)

• za veliki M vrijedi: (M*N) / (N+M-1) ≈ (M*N) / (M) = N

• Protočno izvođenje u N razina je u prosjeku N puta brže

od izvođenja korak-po-korak (* uz pretpostavku linearnog programa

bez hazarda, više o tome kasnije)

Page 10: 05 FRISC Pipeline

10© Kovač, Basch, FER, Zagreb

Izvođenje naredaba i protočna struktura

• Radi većeg ubrzanja, dobro bi bilo naredbu podijeliti na što više

faza (tj. protočnu strukturu na što više razina)

• Brzina cijele protočne strukture ovisi o brzini najsporije razine,

tj. najsporija razina predstavlja ograničenje (usko grlo)

• Zato se pokušavaju odabrati faze tako da svaka traje čim kraće,

ali i tako da sve imaju podjednako trajanje

• Primjer brzih operacija su interne operacije u procesoru (npr. rad

s registrima, jednostavne AL operacije itd.)

• Primjer vrlo sporih operacija su naredbe pisanja/čitanja iz

memorije

Page 11: 05 FRISC Pipeline

11© Kovač, Basch, FER, Zagreb

Izvođenje naredaba i protočna struktura

• RISC arhitekture upravo koriste navedena načela da se izvodi puno

brzih i jednostavnih naredaba čime se vrijeme izvođenja skraćuje

• Zato se protočna struktura i počela koristiti s pojavom procesora

RISC arhitekture

• Danas se, zbog napretka tehnologije, protočnost koristi u većini

procesora bez obzira jesu li RISC ili CISC

• U nastavku ćemo definirati protočnu strukturu procesora FRISC

Page 12: 05 FRISC Pipeline

12© Kovač, Basch, FER, Zagreb

Izvođenje naredaba i protočna struktura procesora FRISC

Page 13: 05 FRISC Pipeline

13© Kovač, Basch, FER, Zagreb

Protočna struktura FRISC-a

• Kako bi zadržali jednostavnost našeg procesora, za

efikasnije izvođenje naredaba uvesti ćemo

najjednostavniju moguću protočnu strukturu

• Odabiremo protočnu strukturu FRISC-a sa dvije

razine, koje ćemo nazvati:

• razina za dohvat

• razina za izvođenje

IzvođenjeDohvat

Page 14: 05 FRISC Pipeline

14© Kovač, Basch, FER, Zagreb

Protočna struktura FRISC-a

• Podjela operacija između razina je ovakva:

• Razina za dohvat

• Dohvat naredbe

• Dekodiranje naredbe

• Dohvat operanada

• Razina za izvođenje

• Izvođenje AL operacije

• Spremanje rezultata

Page 15: 05 FRISC Pipeline

15© Kovač, Basch, FER, Zagreb

Podjela naredaba po brzini izvođenja

• Trajanje operacija u svakoj razini je jedan period signala

vremenskog vođenja CLOCK-a (uz pretpostavku da memorija

nije spora)

• Naredbe procesora FRISC razlikuju se po načinu kako se

izvode:

• Faza dohvata svih naredaba traje jedan period

• Faza izvođenja također traje jedan period, ali kod

nekih naredaba nije moguće preklapanje s fazom

dohvata sljedeće naredbe

Page 16: 05 FRISC Pipeline

16© Kovač, Basch, FER, Zagreb

Podjela naredaba po brzini izvođenja

• Kod jednostavnih naredaba moguće je preklapanje faze

izvođenja sa fazom dohvata sljedeće naredbe.

• Ove naredbe zovu se jednociklusne jer im efektivno

vrijeme izvođenja u protočnoj strukturi iznosi jedan period

(ciklus) CLOCK-a.

• Ove naredbe efikasno koriste protočnu strukturu.

• U jednociklusne naredbe spadaju:

• Aritmetičko-logičke naredbe

• Registarske naredbe

Page 17: 05 FRISC Pipeline

17© Kovač, Basch, FER, Zagreb

Podjela naredaba po brzini izvođenja

• Kod složenijih naredaba nije moguće preklapanje faze izvođenja s fazom dohvata sljedeće naredbe

• Takve naredbe zovu se dvociklusne naredbe jer im efektivno vrijeme izvođenja u protočnoj strukturi iznosi dva perioda (ciklusa) CLOCK-a.

• Ove naredbe ne koriste efikasno protočnu strukturu

• U dvociklusne naredbe spadaju:

• Memorijske naredbe

• Upravljačke naredbe

Page 18: 05 FRISC Pipeline

18© Kovač, Basch, FER, Zagreb

Jednociklusne naredbe

• Izvođenje slijeda jednociklusnih naredaba N1,... N4, u

razinama Dohvat i Izvođenje tijekom vremenskih trenutaka

Ti, možemo simbolički prikazati ovako (sličan primjer

izvođenja već je pokazan na slajdu 8):

T1 T2 T3 T4 T5

N1IzvediN1

DohvatiN1

N2

N3

IzvediN2

DohvatiN2

IzvediN3

DohvatiN3

N4IzvediN4

DohvatiN4

Page 19: 05 FRISC Pipeline

19© Kovač, Basch, FER, Zagreb

Jednociklusne naredbe: dohvat

Razina dohvata:Rastući brid CLOCK-a:

PC ���� AR, A0-A310 ���� READ // ovaj redak ćemo nadalje ispuštati

Padajući brid CLOCK-a:PC+4 ���� PC(AR) ���� IR, dekodiranje1 ���� READ // ovaj redak ćemo nadalje ispuštatidohvat operanada i slanje u ALU (ako je potrebno)

CLOCK

ADR

DATA

READ

WRITE

WAIT

Pretpostavka: memorija je dovoljno

brza i radi bez ciklusa

čekanja

Page 20: 05 FRISC Pipeline

20© Kovač, Basch, FER, Zagreb

Jednociklusne naredbe: izvođenje

Razina izvođenja:Rastući brid CLOCK-a:

ALU izvodi operaciju (ako je potrebno)Padajući brid CLOCK-a:

upis rezultata (ako je potrebno)postavljanje zastavica u SR-u (ako je potrebno)

Page 21: 05 FRISC Pipeline

21© Kovač, Basch, FER, Zagreb

Dohvat naredbe - arhitektura

Rastući brid CLOCK-a:

PC ���� AR

Padajući brid CLOCK-a:

PC+4 ���� PC

(AR) ���� IR, dekodiranje

• Do trenutka dekodiranja, sve naredbe imaju jednaku fazu

dohvata:

AR

A[0..31]

+4

PC

Upravljačka jedinica

AR_wr

PC_wr

Page 22: 05 FRISC Pipeline

22© Kovač, Basch, FER, Zagreb

Dohvat naredbe - arhitektura

• Do trenutka dekodiranja, sve naredbe imaju jednaku fazu

dohvata:

Rastući brid CLOCK-a:

PC ���� AR

Padajući brid CLOCK-a:

PC+4 ���� PC

(AR) ���� IR, dekodiranje

Upravljačka jedinica

IR

DR

D[0..31]

DR_wr

IR_wr

IR_data

Page 23: 05 FRISC Pipeline

23© Kovač, Basch, FER, Zagreb

Jednociklusne naredbe, primjer: ADD

Razina dohvata:

Rastući brid CLOCK-a:

PC ���� AR

Padajući brid CLOCK-a:

PC+4 ���� PC

(AR) ���� IR, dekodiranje

R1 i R2 ���� ALU

Razina izvođenja:

Rastući brid CLOCK-a:

ALU: izvodi zbrajanje

Padajući brid CLOCK-a:

ALU ���� R3

postavljanje zastavica u SR-u

PRIMJER: izvođenje naredbe ADD R1,R2,R3

PC ���� AR PC+4 ���� PC(AR) ���� IR, dek. operandi���� ALU

Spremanje rezultataZastavice

T1 T2

Page 24: 05 FRISC Pipeline

24© Kovač, Basch, FER, Zagreb

Jednociklusne naredbe, primjer: MOVE

PRIMJER: izvođenje naredbe MOVE 100,R1

Razina dohvata:Rastući brid CLOCK-a:

PC ���� ARPadajući brid CLOCK-a:

PC+4 ���� PC(AR) ���� IR, dekodiranjeext 100 ���� ALU

Razina izvođenja:Rastući brid CLOCK-a:

ALU: samo proslijeđuje drugi operandPadajući brid CLOCK-a:

ALU ���� R1

Page 25: 05 FRISC Pipeline

25© Kovač, Basch, FER, Zagreb

Naredba 1-

čitanje MEM

Jednociklusne naredbe

Iz primjera se može uočiti da se aritmetičke i registarske naredbe izvode na isti način što se tiče redoslijeda pojedinih operacija.

Pogledajmo sada kako se prilikom izvođenja jednociklusnih naredaba preklapaju faze dohvata i izvođenja

T1 T2

Spremanje rez.Zastavice

T3

PC+4 ���� PC(AR) ���� IR, dek. operandi���� ALU

Naredba 1- zauzeta ALU

Spremanje rez.Zastavice

PC+4 ���� PC(AR) ���� IR, dek. operandi���� ALU

Naredba 2- zauzeta ALU

PC ���� AR

PC ���� AR

Naredba 2-

čitanje MEM

Page 26: 05 FRISC Pipeline

26© Kovač, Basch, FER, Zagreb

Hazardi

• Do sada objašnjeni rad protočne strukture za jednociklusne naredbe

bio je idealan, no u stvarnom radu postoje situacije koje uzrokuju

da protočna struktura djelomično gubi svoju efikasnost

• U nekim situacijama protočna struktura ne može obraditi sljedeću

naredbu odmah u sljedećem periodu

• Takve situacije nazivaju se hazardi

• Postoje tri osnovna tipa hazarda:

• Strukturni

• Upravljački

• Podatkovni

Page 27: 05 FRISC Pipeline

27© Kovač, Basch, FER, Zagreb

Strukturni hazard• Strukturni hazard je pojava kad procesor u određenom trenutku ne

može izvesti sve faze onih naredaba koje se nalaze u protočnoj strukturi, jer struktura (tj. sklopovlje) procesora ne omogućuje istodobno izvođenje svih tih faza

• Jednostavan primjer strukturnog hazarda je izvođenje naredbe STORE kod procesora sa Von Neumannovom arhitekturom. Struktura memorijskog sučelja (Von Neumannova arh.) ne dozvoljava istovremeno dva pristupa memoriji:

• jedan pristup treba za izvođenje naredbe STORE (spremanje podatka)

• drugi pristup je dohvat strojnog kôda sljedeće naredbe (npr. ADD)

STOREADD

MEMCPU

Page 28: 05 FRISC Pipeline

28© Kovač, Basch, FER, Zagreb

Strukturni hazard

• Strukturni hazard rješava se tako da procesor odgodi izvođenje naredaba koje se nalaze u prethodnim razinama protočne strukture (tj. to su naredbe koje su kasnije ušle u pipeline) dok se uzrok hazarda ne ukloni.

• Odgoda izvođenja naredaba u prethodnim razinama u literaturi se naziva mjehurić (bubble). Slikovito se promatra kao da je u proročnu strukturu ušao mjehurić koji prolazi kroz razine i uzokuje njihovu neaktivnost.

• Kada uzrok hazarda nestane, procesor nastavlja izvoditi naredbe na normalan način.

Page 29: 05 FRISC Pipeline

29© Kovač, Basch, FER, Zagreb

Naredbe FRISC-a i strukturni hazard

• Zbog Von Neumannove arhitekture memorijskog sučelja, sve memorijske naredbe procesora FRISC (LOAD, STORE, PUSH, POP) uzrokovat će strukturni hazard.

• Te naredbe imati će fazu izvođenja koja se ne može preklapati s fazom dohvata sljedeće naredbe te će njihovo izvođenje efektivno trajati dva perioda. Zato ćemo te naredbe svrstati u grupu dvociklusnih naredaba.

• U nastavku će biti opisan način izvođenja tih naredaba

Page 30: 05 FRISC Pipeline

30© Kovač, Basch, FER, Zagreb

Izvođenje memorijskih naredaba

• Memorijske naredbe LOAD i STORE:

• Naredba LOAD prilikom izvođenja mora pročitati podatak iz memorije, a naredba STORE ga mora upisati u memoriju

• Pristup memoriji pri izvođenju LOAD/STORE ne može se odvijati istodobno s dohvatom sljedeće naredbe iz iste memorije

• Zato se, nakon prepoznavanja naredbe LOAD/STORE, onemogućujerad razine dohvata u sljedećem ciklusu (mjehurić) te će biti aktivna samo razina izvođenja

T1 T2 T3 T4

LOADIzvediLOAD

DohvatiLOAD

Dohvat sljedeće naredbe se onemogućuje (mjehurić)

"Dohvati"Mjehurić

Page 31: 05 FRISC Pipeline

31© Kovač, Basch, FER, Zagreb

Izvođenje memorijskih naredaba

• Nakon izvođenja naredbe LOAD/STORE, spojni putovi prema memoriji su slobodni za dohvaćanje sljedeće naredbe

• Na kraju izvođenja se zato omogućuje rad razine za dohvat u sljedećem ciklusu

• Međutim, za vrijeme tog (odgođenog) dohvata bit će neaktivna razina za izvođenje, jer nema dohvaćene naredbe koja bi se mogla izvoditi

T1 T2 T3 T4

LOADIzvediLOAD

DohvatiLOAD

NEXT IzvediNEXT

DohvatiNEXT

razina Dohvata ponovo se omogućuje a razina izvođenja

je neaktivna (mjehurić)

"Dohvati"Mjehurić

"Izvedi"Mjehurić

Page 32: 05 FRISC Pipeline

32© Kovač, Basch, FER, Zagreb

Izvođenje memorijskih naredaba: LOADPRIMJER: izvođenje naredbe LOAD R1,(1000)

Razina dohvata:Rastući brid CLOCK-a:

PC ���� ARPadajući brid CLOCK-a:

PC+4 ���� PC(AR) ���� IR, dekodiranjeext 1000onemogući dohvat u sljedećem ciklusu

Razina izvođenja:Rastući brid CLOCK-a:

ext 1000 ���� ARPadajući brid CLOCK-a:

(AR) ���� DRDR ���� R1omogući dohvat u sljedećem ciklusu

kao u prethodnim naredbama

Page 33: 05 FRISC Pipeline

33© Kovač, Basch, FER, Zagreb

Izvođenje memorijskih naredaba: STOREPRIMJER: izvođenje naredbe STORE R1,(R2+30)

Razina dohvata:Rastući brid CLOCK-a:

PC ���� ARPadajući brid CLOCK-a:

PC+4 ���� PC(AR) ���� IR, dekodiranjeext 30 i R2 ���� ALUonemogući dohvat u sljedećem ciklusu

Razina izvođenja:Rastući brid CLOCK-a:

ALU: izvodi zbrajanjeALU ���� ARR1 ���� DR

Padajući brid CLOCK-a:DR ���� (AR)omogući dohvat u sljedećem ciklusu

kao u prethodnim

naredbama

Page 34: 05 FRISC Pipeline

34© Kovač, Basch, FER, Zagreb

Izvođenje memorijskih naredaba

• Memorijske naredbe PUSH i POP:

• Prilikom izvođenja naredaba PUSH i POP također se pristupa memoriji kao i kod naredba LOAD i STORE, pa se naredbe izvode na sličan način (na slici nisu prikazani mjehurići)

• Dodatno, naredba PUSH smanjuje registar SP, a POP povećava SP

• Za povećanje odnosno smanjenje registra SP postoji poseban sklop u okviru registarskog skupa.

T1 T2 T3 T4

PUSHIzvediPUSH

DohvatiPUSH

NEXTIzvediNEXT

DohvatiNEXT

Page 35: 05 FRISC Pipeline

35© Kovač, Basch, FER, Zagreb

Izvođenje memorijskih naredaba: PUSH

PRIMJER: izvođenje naredbe PUSH R5

Razina dohvata:Rastući brid CLOCK-a:

PC ���� ARPadajući brid CLOCK-a:

PC+4 ���� PC(AR) ���� IR, dekodiranjeonemogući dohvat u sljedećem ciklusuR7-4 ���� R7

Razina izvođenja:Rastući brid CLOCK-a:

R7 ���� ARR5 ���� DR

Padajući brid CLOCK-a:DR ���� (AR)omogući dohvat u sljedećem ciklusu

kao u prethodnim naredbama

Page 36: 05 FRISC Pipeline

36© Kovač, Basch, FER, Zagreb

Izvođenje memorijskih naredaba: POP

PRIMJER: izvođenje naredbe POP R5

Razina dohvata:Rastući brid CLOCK-a:

PC ���� ARPadajući brid CLOCK-a:

PC+4 ���� PC(AR) ���� IR, dekodiranjeonemogući dohvat u sljedećem ciklusu

Razina izvođenja:Rastući brid CLOCK-a:

R7 ���� ARR7+4 ���� R7

Padajući brid CLOCK-a:(AR) ���� DRDR ���� R5omogući dohvat u sljedećem ciklusu

kao u prethodnim naredbama

Page 37: 05 FRISC Pipeline

37© Kovač, Basch, FER, Zagreb

Upravljački hazard

• Drugi od tri ranije spomenuta hazarda je upravljački hazard. Ovaj hazard dešava se kad naredba koja se nalazi u protočnoj strukturi i spremna je za izvođenje nije naredba koja se u stvari treba izvesti

• Ovaj hazard događa se kod izvođenja naredaba grananja kad je procesor već učitao sljedeću naredbu i pripremio se za njeno izvođenje, ali zbog grananja program treba nastaviti izvođenje naredbe sa neke druge adrese

• Zbog toga se ovaj hazard ponekad još naziva i hazard grananja

• Naredbe koje uzrokuju ovaj hazard kod FRISC-a su upravljačke naredbe

Page 38: 05 FRISC Pipeline

38© Kovač, Basch, FER, Zagreb

Naredbe FRISC-a i upravljački hazard

• Upravljačke naredbe:

• Izvođenje upravljačkih naredaba može promijeniti normalni slijed izvođenja, ovisno o uvjetu, tj. ovisno o stanju zastavica

• Kada bi upravljačke naredbe bile jednociklusne, onda bi se tijekom njihovog izvođenja već dohvatila i dekodirala sljedeća naredba

• međutim, ako je uvjet skoka istinit, onda bi trebalo "poništiti" dohvaćenu naredbu i započeti novi dohvat

T1 T2 T3 T4

JP XIzvediJP X

DohvatiJP X

NEXT1

INSTX

IzvediNEXT1

DohvatiNEXT1

IzvediINSTX

DohvatiINSTX

JP_TRUE X

NEXT1

NEXT2

...

X INSTX

...

Page 39: 05 FRISC Pipeline

39© Kovač, Basch, FER, Zagreb

Naredbe FRISC-a i upravljački hazard

• Upravljačke naredbe:

<<<<• ako uvjet skoka nije istinit, onda bi se moglo nastaviti s

izvođenjem dohvaćene naredbe• mnogi procesori rade upravo na ovaj način čime se ciklus gubi

samo kad je to nužno (tj. kad se skok izvodi)

T1 T2 T3 T4

JP XIzvediJP X

DohvatiJP X

NEXT1

NEXT2

IzvediNEXT1

DohvatiNEXT1

IzvediNEXT2

DohvatiNEXT2

JP_FALSE X

NEXT1

NEXT2

...

X INSTX

...

Page 40: 05 FRISC Pipeline

40© Kovač, Basch, FER, Zagreb

Naredbe FRISC-a i upravljački hazard

• Da bi se pojednostavnila arhitektura za izvođenje, u FRISC-u će naredbe skoka uvijek biti dvociklusne

• Nedostatak ovog rješenja je manja brzina izvođenja upravljačke naredbe u slučaju kad uvjet skoka nije istinit

• Kao i kod memorijskih naredaba, kad se dekodira upravljačka naredba, onemogućuje se dohvat u sljedećem ciklusu, a nakon izvođenja upravljačke naredbe ponovno se omogućuje dohvat

T1 T2 T3 T4

JP XIzvediJP X

DohvatiJP X

INSTXIzvediINSTX

DohvatiINSTX

JP X

NEXT1

NEXT2

...

X INSTX

...

Page 41: 05 FRISC Pipeline

41© Kovač, Basch, FER, Zagreb

Izvođenje upravljačkih naredaba

• Specifičnosti pojedinih upravljačkih naredaba su:

• Adresa skoka zadana je brojem ili registrom: zbrajanje nije potrebno za izračun adrese skoka (za razliku od memorijskih naredaba s indirektnim registarskim adresiranjem s odmakom)

• Izuzetak je naredba JR u kojoj je zadana relativna adresa koja se pribraja registru PC, ali za to se ne koristi ALU, nego zasebni sklop za zbrajanje koji postoji uz registar PC

• Naredbe CALL i RET su specifične po tome što osim promjene tijeka izvođenja zahtjevaju dodatni pristup memoriji, tj. stogu.

• Po tome su one slične naredbama PUSH i POP

• Pokažimo sada izvođenje ovih četiriju naredaba • zelenom bojom su označeni koraci koji ispituju uvjet i

oni koji se izvode samo ako je uvjet istinit• to su ujedno koraci koji se međusobno razlikuju

od naredbe do naredbe

Page 42: 05 FRISC Pipeline

42© Kovač, Basch, FER, Zagreb

Izvođenje upravljačkih naredaba: JP

PRIMJER: izvođenje naredbe JP_EQ 1000

Razina dohvata:Rastući brid CLOCK-a:

PC ���� ARPadajući brid CLOCK-a:

PC+4 ���� PC(AR) ���� IR, dekodiranjeispitivanje istinitosti uvjeta Z=1ako Z=1: ext 1000onemogući dohvat u sljedećem ciklusu

Razina izvođenja:Rastući brid CLOCK-a:

-Padajući brid CLOCK-a:

ako Z=1: ext 1000 ���� PComogući dohvat u sljedećem ciklusu

kao u prethodnim naredbama

Page 43: 05 FRISC Pipeline

43© Kovač, Basch, FER, Zagreb

Izvođenje upravljačkih naredaba: JR

PRIMJER: izvođenje naredbe JR_NC 10

Razina dohvata:Rastući brid CLOCK-a:

PC ���� ARPadajući brid CLOCK-a:

PC+4 ���� PC(AR) ���� IR, dekodiranjeispitivanje istinitosti uvjeta: C=0ako C=0: ext 10onemogući dohvat u sljedećem ciklusu

Razina izvođenja:Rastući brid CLOCK-a:

-Padajući brid CLOCK-a:

ako C=0: ext 10 + PC ���� PComogući dohvat u sljedećem ciklusu

10 ovdje predstavlja

relativni odmak, a

ne adresu odredišta

koja se inače piše u naredbi

kao u prethodnim naredbama

Page 44: 05 FRISC Pipeline

44© Kovač, Basch, FER, Zagreb

Izvođenje upravljačkih naredaba: CALLPRIMJER: izvođenje naredbe CALL (R2)

Razina dohvata:Rastući brid CLOCK-a:

PC ���� ARPadajući brid CLOCK-a:

PC+4 ���� PC(AR) ���� IR, dekodiranjeispitivanje istinitosti uvjeta: Trueonemogući dohvat u sljedećem ciklusuako True: R7-4 ���� R7

Razina izvođenja:Rastući brid CLOCK-a:

ako True: R7 ���� ARako True: PC ���� DR

Padajući brid CLOCK-a:ako True: DR ���� (AR)ako True: R2 ���� PComogući dohvat u sljedećem ciklusu

kao u prethodnim

naredbama

Page 45: 05 FRISC Pipeline

45© Kovač, Basch, FER, Zagreb

Izvođenje upravljačkih naredaba: RETPRIMJER: izvođenje naredbe RET

Razina dohvata:Rastući brid CLOCK-a:

PC ���� ARPadajući brid CLOCK-a:

PC+4 ���� PC(AR) ���� IR, dekodiranjeispitivanje istinitosti uvjeta: Trueonemogući dohvat u sljedećem ciklusu

Razina izvođenja:Rastući brid CLOCK-a:

ako True: R7 ���� ARako True: R7+4 ���� R7

Padajući brid CLOCK-a:ako True: (AR) ���� DRako True: DR ���� PComogući dohvat u sljedećem ciklusu

kao u prethodnim naredbama

Page 46: 05 FRISC Pipeline

46© Kovač, Basch, FER, Zagreb

Izvođenje niza naredaba - primjer

Primjer

Odrediti trajanje izvođenja sljedećeg niza naredaba (zanemarujemo eventualno preklapanje za prvu i zadnju naredbu, jer nije definirano što se događa prije i poslije ovog programskog odsječka): ADD, CMP, JP, MOVE, SUB, SHR

IzvediADD

DohvatiADD

IzvediCMP

DohvatiCMP

IzvediJP

DohvatiJP

IzvediMOVE

DohvatiMOVE

IzvediSUB

DohvatiSUB

IzvediSHR

DohvatiSHR

ukupno 8 koraka, tj. ciklusa

>>>>

Page 47: 05 FRISC Pipeline

47© Kovač, Basch, FER, Zagreb

Izvođenje niza naredaba - primjer

I bez crtanja stanja protočne strukture, trajanje se može jednostavno odrediti ako se zna koje naredbe su jednociklusne, a koje dvociklusne:

ADD CMP JP MOVE SUB SHR

1 1 2 1 1 1+1 → Σ=8

jer iza zadnjeg ciklusa "nema ničega" pa računamo i ciklus izvođenja zadnje naredbe

<<<<

Page 48: 05 FRISC Pipeline

48© Kovač, Basch, FER, Zagreb

Izvođenje niza naredaba - primjer

Primjer

Odrediti trajanje izvođenja sljedećeg niza naredaba:

ADD SUB STORE MOVE SUB LOAD LOAD ADD HALT

1 1 2 1 1 2 2 1 1+1

Ukupno: 13

Page 49: 05 FRISC Pipeline

49© Kovač, Basch, FER, Zagreb

Podatkovni hazard

• Podatkovni hazard javlja se kod izvođenja naredaba u protočnoj strukturi kada se naredba ne može izvesti jer podaci potrebni za njeno izvođenje još nisu spremni

• Kod FRISC-a nema pojave podatkovnog hazarda pa ćemo primjer ovog hazarda proučiti kod procesora ARM

Page 50: 05 FRISC Pipeline

50© Kovač, Basch, FER, Zagreb

Cjelovit rad procesora

• U prethodnim predavanjima proučili smo arhitekturu puta podataka i detaljno proučili način izvođenja svih naredaba

• U nastavku ćemo ukratko objasniti na koji način funkcionira procesor kao cjelina, odnosno koja su načela upravljanja sa svim dijelovima puta podataka

• Prisjetimo se nakratko cijele arhitekture puta podataka procesora FRISC

Page 51: 05 FRISC Pipeline

51© Kovač, Basch, FER, Zagreb

Put podataka procesora FRISC

Upravljačka jedinica

IREXT

AR

DR

D[0..31]

A[0..31]

+REG

SR

ALU

C

A BR7±±±±4

4

PC

Kako generirati upravljačke signale

potrebne za izvođenje opisanih naredaba ?

Page 52: 05 FRISC Pipeline

52© Kovač, Basch, FER, Zagreb

Upravljanje putom podataka

• Kao što ste naučili u "Digitalnoj", jednostavan način generiranja upravljačkih signala može se postići strojem s konačnim brojem stanja (finite state machine - FSM)

• Pri izvođenju naredaba treba generirati upravljačke signale na rastući i na padajući brid signala vremenskog vođenja

• Običan FSM ne može generirati različite signale na rastući i padajući brid clock-a te upravljačka jedinica FRISC-a koristi dvostruki FSM

Page 53: 05 FRISC Pipeline

53© Kovač, Basch, FER, Zagreb

Upravljačka jedinica – stroj s konačnim brojem stanja

Kombinacijskisklop sljedećeg

stanja zaneparnecikluse

Registarneparnogstanja

Kombinacijskisklop sljedećeg

stanja zaparnecikluse

Registarparnogstanja

IZLAZNI KOMBINACIJSKI SKLOP

Upravljački signali

Ulazni signali

clk

Page 54: 05 FRISC Pipeline

54© Kovač, Basch, FER, Zagreb

Kombinacijskisklop sljedećeg

stanja zaneparnecikluse

Registarneparnogstanja

Kombinacijskisklop sljedećeg

stanja zaparnecikluse

Registarparnogstanja

IZLAZNI KOMBINACIJSKI SKLOP

Upravljački signali

Ulazni signali

clk

Upravljačka jedinica – stroj s konačnim brojem stanja

Prvi FSM zadužen je za generiranje svih signala u neparnim poluperiodima (1,3) tj. kod rastućeg brida clock-a

Page 55: 05 FRISC Pipeline

55© Kovač, Basch, FER, Zagreb

Kombinacijskisklop sljedećeg

stanja zaneparnecikluse

Registarneparnogstanja

Kombinacijskisklop sljedećeg

stanja zaparnecikluse

Registarparnogstanja

IZLAZNI KOMBINACIJSKI SKLOP

Upravljački signali

Ulazni signali

clk

Upravljačka jedinica – stroj s konačnim brojem stanja

Drugi FSM zadužen je za generiranje svih signala u parnim poluperiodima (2,4) tj. kod padajućeg brida clock-a

Page 56: 05 FRISC Pipeline

56© Kovač, Basch, FER, Zagreb

Kombinacijskisklop sljedećeg

stanja zaneparnecikluse

Registarneparnogstanja

Kombinacijskisklop sljedećeg

stanja zaparnecikluse

Registarparnogstanja

IZLAZNI KOMBINACIJSKI SKLOP

Upravljački signali

Ulazni signali

clk

Upravljačka jedinica – stroj s konačnim brojem stanja

Upravljački signali generiraju se na temelju stanja oba stroja

Page 57: 05 FRISC Pipeline

57© Kovač, Basch, FER, Zagreb

Primjer dijagrama stanja

• U nastavku ćemo prikazati primjere dijagrama stanja FSM-a za izvođenje dvije naredbe procesora FRISC

• Dijagram je napravljen za dvostruki stroj s konačnim brojem stanja prikazan na prethodnim slikama

Page 58: 05 FRISC Pipeline

58© Kovač, Basch, FER, Zagreb

FSM – naredbe ADD i LOAD, razina dohvata

[1] PC->AR: AR_in_sel=PCAR_wr

1->READ: READ=1next_state=2

[2] (AR)->IR: IR_wr0->READ: READ=0PC=PC+4: PC_in_sel=PC

PC_sum_sel=+4PC_wr

Dekodiranje: A_sel=f(IR)B_sel=f(IR)C_sel=f(IR)Oper_sel=f(IR)Reg_in_sel=f(IR)SR_in_sel=f(IR)ALU_B_sel=f(IR)…next_state=f(IR)next_state=3 (za ADD)next_state=5 (za LOAD)

1

2

IREXT

AR

DR

D[0..31]

A[0..31]

+

REG

SR

ALU

C

A BR7±±±±4

4

PC

Page 59: 05 FRISC Pipeline

59© Kovač, Basch, FER, Zagreb

FSM – ADD, razina izvođenja[3] next_state=4

[4] upis rezultata: C_wr

upis zastavica:SR_wr

next_state=1

3

4

1

2

IREXT

AR

DR

D[0..31]

A[0..31]

+

REG

SR

ALU

C

A BR7±±±±4

4

PC

Page 60: 05 FRISC Pipeline

60© Kovač, Basch, FER, Zagreb

FSM – LOAD, razina izvođenja[5] adresiranje: AR_wr

READ=0

next_state=6

[6] upis podatka: DR_wr

C_wr

READ=1

next_state=1

1

2

5

6

IREXT

AR

DR

D[0..31]

A[0..31]

+

REG

SR

ALU

C

A BR7±±±±4

4

PC

Page 61: 05 FRISC Pipeline

61© Kovač, Basch, FER, Zagreb

Upravljačka jedinica - mikroprogramiranje

• Mikroprogramiranje je metoda izvedbe kompleksnih upravljačkih jedinica. (npr. upravljačku jedinicu procesora Pentium bi bilo izuzetno teško izvesti pomoću FSM-a jer bi trebalo tisuće stanja i tisuće prelaza,... skupo i kompleksno )

• Kod takvih procesora upravljačka jedinica izvedena je kao jednostavno računalo unutar računala. Dohvat, dekodiranje, izvođenje naredaba te upravljanje radom procesora obavlja se izvođenjem internog mikroprograma.

• Da bi se naredbe za izvedbu upravljačke jedinice razlikovale od naredaba koje su dostupne programerima one se nazivaju mikronaredbama. One se izuzetno brzo izvode (RISC načelo!!!) te omogućuju brz i efikasan rad procesora.