Upload
davorh65
View
323
Download
0
Embed Size (px)
Citation preview
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
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.
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)
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
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.)
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
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
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
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)
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
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
12© Kovač, Basch, FER, Zagreb
Izvođenje naredaba i protočna struktura procesora FRISC
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
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
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
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
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
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
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
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)
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
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
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
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
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
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
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
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.
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
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ć
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ć
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
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
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
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
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
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
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
...
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
...
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
...
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
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
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
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
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
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
>>>>
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
<<<<
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
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
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
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 ?
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
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
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
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
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
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
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
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
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
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.