You are on page 1of 25

SVEUILITE U MOSTARU

FAKULTET STROJARSTVA I RAUNARSTVA

Arhitektura i organizacija
digitalnog raunala
Nastavnik: Prof.dr.sc. Sven Gotovac
Asistent: Goran Kraljevi, dipl.ing.ra.

Ak.god. 2011/2012

Arhitektura i organizacija digitalnog raunala

VI/1

Cjevovodi

Ak.god. 2011/2012

Arhitektura i organizacija digitalnog raunala

VI/2

Cjevovod
Postoji analogija izmeu procesa obrade naredbi u
procesoru i izrade nekog proizvoda
U oba sluaja cilj je procesne ili proizvodne potencijale
maksimalno iskoristiti. To se postie podjelom posla na korake
(manje cjeline) koje mogu posao raditi paralelno.

Primjer:
Pet razliitih naredbi se nalazi u razliitim stadijima obrade isto
kao i pet razliitih dijelova u proizvodnom procesu.
Dio programa izvodi se na sljedei nain:
shr r3, r3, 2
sub r2, r5, 1
add r4, r3, r2
st r4, addr1
ld r2, addr2

Ak.god. 2011/2012

Arhitektura i organizacija digitalnog raunala

VI/3

Cjevovod i proizvodna linija

Intrepretacija
i izvoenje
naredbe

Proizvodnja
dijela

Intrepretacija
i izvoenje
naredbi

Dohvat
naredbe

Dohvat
materijala

ld r2, addr2

Dohvat
naredbe

Dohvat
operanada

Buenje

st r4,addr1

Dohvat
operanada

Zadnja
ploa

Buenje

ALU
operacija

Rezanje

add r4, r3, r2

ALU
operacija

Gornja
ploa

Rezanje

Pristup
memoriji

Poliranje

sub r2, r5, 1

Pristup
memoriji

Donja
ploa

Poliranje

Upis u
spremnik

Pakovanje

shr r3, r3, 2

Upis u
spremnik

Prednja
ploa

Proizvodna
linija
Okvir

Dohvat
materijala

Pakovanje

add r4, r3, r2 Izrada gornje ploe


a) Obrada bez cjevovoda/proizvodnog procesa b) Obrada sa cjevovodom/proizvodnim procesom

Ak.god. 2011/2012

Arhitektura i organizacija digitalnog raunala

VI/4

Dijagram stanja PRIBAVI IZVRI

Ak.god. 2011/2012

Arhitektura i organizacija digitalnog raunala

VI/5

Dijagram stanja PRIBAVI IZVRI

Pribavljanje instrukcije (if instruction fetch)


itanje instrukcije iz memorije i njeno premjetanje u CPU

Dekodiranje instrukcije (iod instruction operation decoding)


analiza i dekodiranje instrukcije u cilju odreivanja tipa operacije koja e
se izvesti te odreivanja tipa operanada

Raunanje adrese operanada (oac operand address calculation)


ako se operacija referencira na operand koji je pohranjenu memoriji ili
raspoloiv u U/I podsustavu odreuje se efektivna adresa operanda

Dohvat operanda (of operand fetch)


dohvat operanada iz memorije ili U/I podsustava

Operacija na podacima / operandima (do data operation)


izvodi se operacija (specificirana operacijskim kodom instrukcije)

Pohranjivanje rezultata (os operand store)


upisuje se rezultat u memoriju ili u U/I podsustav

Ak.god. 2011/2012

Arhitektura i organizacija digitalnog raunala

VI/6

Protoni segmenti

Ak.god. 2011/2012

Arhitektura i organizacija digitalnog raunala

VI/7

Protoni segmenti

IF (Instruction Fetching) Pribavljanje instrukcije


Upotrebljava se programsko brojilo PC za dohvat sljedee instrukcije.
Instrukcije se obino nalaze u prirunoj memoriji (engl. cache) koja se ita
tijekom faze PRIBAVI.

ID (Instruction decoding and operand fetching) Dekodiranje


instrukcije i dohvat operanada
Dekodira se operacijski kod instrukcije i dohvaaju se operandi iz skupa
registara.

EX (Instruction execution) Izvoenje (obavljanje) instrukcije


Obavlja se operacija specificirana operacijskim kodom. Za instrukcije koje
naslovljavaju memoriju (load, store) u ovom se protonom segmentu rauna
efektivna adresa.

ME (Memory access) Pristup memoriji


Izvode se instrukcije load i store. Obino se upotrebljava priruna memorija.

WB (Result write-back) Upis rezultata

Ak.god. 2011/2012

Arhitektura i organizacija digitalnog raunala

VI/8

Protoni segmenti

Ak.god. 2011/2012

Arhitektura i organizacija digitalnog raunala

VI/9

Temeljne pretpostavke kod


projektiranja cjevovoda

Ak.god. 2011/2012

Arhitektura i organizacija digitalnog raunala

VI/10

Temeljne pretpostavke kod projektiranja cjevovoda

Skup naredbi procesora ostaje nepromijenjen


Temeljno pravilo kod projektiranja cjevovoda je da naredbe moraju izvoditi istu obradu i
davati iste rezultate neovisno o arhitekturi na kojoj se izvode.

Izmjene u organizaciji memorije


Kod realizacije cjevovoda znaajno je osigurati da jedna naredba u svakom taktu ue u
cjevovod. Nije dozvoljeno da procesor eka na sporu memoriju kako bi pristupio naredbi
ili operandu. Ovo je mogue rijeiti samo skupljim brzim memorijama.
Drugi problem je to u konceptu cjevovoda svaka naredba u prvom taktu dohvata
naredbu, a u etvrtom taktu pristupa memoriji. Potrebno je postaviti dvije nezavisne
memorije, jednu za program, a drugu za podatke te im osigurati istovremeni, paralelni
pristup. Ova podjela na zasebnu memoriju za program i za podatke te posebni sabirniki
sustav koji osigurava paralelni pristup naziva se Harvardska arhitektura.

Spremnici ope namjene


U prethodnim razmatranjima pokazano je da je uinkovito imati tri sabirnice. Slino
vrijedi kod procesora sa cjevovodom. Ovakav pristup zahtijeva da spremnici ope
namjene imaju pristup svim sabirnicama, na neke samo piu a sa drugih itaju, tzv.
spremnici s tri pristupa (three port register file). Ovakav pristup omoguava postavljanje
istovremeno na dvije sabirnice dva operanda i upis rezultata.

Ak.god. 2011/2012

Arhitektura i organizacija digitalnog raunala

VI/11

Temeljne pretpostavke kod projektiranja cjevovoda

Izmjena sustava sabirnica i putova podataka


Cjevovod zahtijeva izmjenu sabirnike strukture. Umjesto povezivanja spremnika preko
zajednike ili zajednikih sabirnica podaci se direktno prenose iz spremnika u spremnik
nezavisnim putovima. Ovakav pristup povezivanja (point to point) omoguava
istovremeni prijenos veeg broja podataka. Ovo je neophodno kako bi se realiziralo
istovremeno vie aktivnosti to je i cilj cjevovoda.
I kod cjevovoda vai pravilo za sabirnice da samo jedan spremnik moe odreivati u
jednom taktu stanje na sabirnici. Ovo rezultira uvoenjem dodatnih spremnika, tzv.
spremnika cjevovoda (pipeline registers) koji slue prijenosu podataka iz koraka u
korak cjevovoda, pa ak i ako se podatak u nekom koraku ne obrauje. Tako se podaci i
naredba ili neki njeni dijelovi moraju propagirati korak po korak kroz cjevovod.
Osim izmjena u broju i funkciji spremnika te nainu njihova povezivanja izmjene se
moraju napraviti i kod ALU-a. Sve aritmetike i logike naredbe moraju se obaviti u
jednom taktu.

Dodatno sklopovlje
Cjevovod obino zahtjeva i dodatno sklopovlje koje ima zadatak dodatno ubrzati rad
procesora i pojednostavniti neke operacije. Primjer je nezavisan sklop za
inkrementiranje sadraja programskog brojila. Cilj je rasteretiti ALU ove operacije.

Ak.god. 2011/2012

Arhitektura i organizacija digitalnog raunala

VI/12

Tok niza naredbi kroz cjevovod

Ak.god. 2011/2012

Arhitektura i organizacija digitalnog raunala

VI/13

Tok niza naredbi kroz cjevovod

Primjer:
100:
104:
108:
112:
.....
512:

add r4, r6, r8 ;R[4] R[6] + R[8]


ld r7, 128(r5) ;R[7] M[R[5] + 128]
brl r9, r11, 001 ;PC R[11](=512):R[9] PC
str r12, 32
;M[PC+32] R[12]
sub .....

;sljedea naredba

Na navedenom primjeru opisati e se tok naredbi kroz cjevovod,


poevi dohvatom naredbe za zbrajanje i zavravajui naredbom za
oduzimanje.
Pretpostavka je da je programsko brojilo inicijalizirano na vrijednost
100, te da spremnici cjevovoda imaju na slici upisane trenutne
vrijednosti.

Ak.god. 2011/2012

Arhitektura i organizacija digitalnog raunala

VI/14

Prvi takt izvoenja programa


Programska
memorija

naredba add
ulazi u cjevovod

PC

104

100

Mp1

1.
Dohvat
naredbe

Inc4
100: add r4, r6, r8
104

IR2
op ra rb rc c1 c2

Spremnici ope namjene

PC2

a1 R1

a2 R2

rb

2.
Dekodiranje
i dohvat
operanada

Mp3
IR3
op

uvjet
c2 2..0

Logika
uvjeta

Mp4
X3

Y3

MD3

ra

3.
ALU
operacija

Dekodiraj

ALU
op

ALU

IR4

Z4

MD4

addr

Podatkovna
memorija

op ra

4.
Pristup
memoriji

Dekodiraj

pii/itaj

Mp5

op ra

IR5

Z5

ra

5.
Upis u
op
ra spremnik
(odredite)

Ak.god. 2011/2012

G1
GA1
G2
W3

Mp2

rc
ra

c2
c1

a3 R3

vrijednost

Dekodiraj

load

ladr

brl

alu

Arhitektura i organizacija digitalnog raunala

VI/15

Drugi takt izvoenja programa


Programska
memorija

naredba add
ulazi u drugi korak

PC

108

104

Mp1

1.
Dohvat
naredbe

Inc4
104: ld r7, r5,128
108
PC2
104

IR2
add r4 r6 r8

naredba ld
ulazi u cjevovod

2.
Dekodiranje
i dohvat
operanada

a2

R2

r8

Mp3

IR3
op

Logika
uvjeta

Mp4
Y3

MD3

ra

Dekodiraj

ALU
op

ALU

IR4

Z4

MD4

addr
op ra

4.
Pristup
memoriji

Dekodiraj

Podatkovna
memorija

pii/itaj

Mp5

op ra

5.
Upis u
op
ra spremnik
(odredite)

G1
GA1
G2
W3

uvjet
c2 2..0

X3

3.
ALU
operacija

IR5

a3 R3

Mp2

rc
ra

c2
c1

add r4

Ak.god. 2011/2012

a1 R1
r6 4
rb

Z5

ra

vrijednost

Dekodiraj

load

ladr

brl

alu

Arhitektura i organizacija digitalnog raunala

VI/16

Trei takt izvoenja programa


Programska
memorija

naredba add
ulazi u fazu
izvoenja ALU

112

108

Mp1
Inc4
108: brl r9, r11, 001
112

IR2

PC2

ld r7 r5

128

a1 R1

108
rb

2.
Dekodiranje
i dohvat
operanada

naredba brl
u fazi dohvata
naredbe

16

ld

r7

Mp3

IR3 add r4

3.
ALU
operacija

a3 R3

G1
GA1
G2
W3

Mp2
uvjet

rc
ra

c2
c1

c2 2..0

Logika
uvjeta

128

Mp4
X3

Y3

MD3

ra

op

Dekodiraj

add

ALU

add r4

IR4

Z4

MD4

addr

Podatkovna
memorija

op ra

4.
Pristup
memoriji

Dekodiraj

pii/itaj

Mp5

op ra

IR5

Z5

ra

5.
Upis u
op
ra spremnik
(odredite)

Ak.god. 2011/2012

a2 R2

r5 16

naredba ld
ulazi u korak
dekodiranja

PC

1.
Dohvat
naredbe

vrijednost

Dekodiraj

load

ladr

brl

alu

Arhitektura i organizacija digitalnog raunala

VI/17

etvrti takt izvoenja programa


Programska
memorija

naredba add
izvedena i eka
upis u odredini
spremnik

PC

512

112

Mp1

1.
Dohvat
naredbe

Inc4

512

112: str r12, 32


116

IR2

PC2

brl r9 r11

001

a1 R1

112

a2 R2

naredba ld
ulazi u korak
prorauna
memorijske adrese

naredba brl
u fazi dekodiranja i
odreivanja
adrese grananja

naredba str
u fazi dohvata
naredbe

c2
c1

brl r9

IR3

Mp3

Y3

16

add

128

MD3

ALU

r7

144

IR4 add r4

Z4

MD4
addr

Podatkovna
memorija

op ra

4.
Pristup
memoriji

Dekodiraj

pii/itaj

Mp5

add r4
IR5

5.
Upis u
op
ra spremnik
(odredite)

Ak.god. 2011/2012

Logika
uvjeta

001

ra

Dekodiraj
ld

uvjet
c2 2..0

Mp4
X3

ld r7
op

3.
ALU
operacija

rc
ra

G1
GA1
G2
W3

Mp2

112

2.
Dekodiranje
i dohvat
operanada

a3 R3

r11 512
rb

Z5

ra

vrijednost

Dekodiraj

load

ladr

brl

alu

Arhitektura i organizacija digitalnog raunala

VI/18

Peti takt izvoenja programa


Programska
memorija

naredba add
zavrava upisom u
odredini spremnik

naredba brl
proslijeenja kroz
ALU fazu

naredba str
u fazi dekodiranja i
odreivanja adrese
grananja

516

512

Mp1
Inc4
512: sub ...
516

IR2

PC2

str r12

32

a1 R1

512

naredba sub
u fazi dohvata

c2 r12
c1 32
str r12

Mp3

IR3 brl r9

r4

c2 2..0

Logika
uvjeta
23

Mp4
X3

Y3

112

Mp2 uvjet

xxx

MD3

ra

op

3.
ALU
operacija

rc
ra

G1
GA1
G2
W3

a3 R3

23

rb
512

2.
Dekodiranje
i dohvat
operanada

Dekodiraj

Z=X

ALU

brl r9

122

IR4 ld r7

Z4

144

MD4
addr
144
Podatkovna
memorija

op ra

4.
Pristup
memoriji

itaj

Dekodiraj
ld

55

pii/itaj

Mp5

r7

IR5
add r4

5.
Upis u
op
ra spremnik
(odredite)

Ak.god. 2011/2012

a2 R2
r12

naredba ld
ulazi u korak itanja
podataka iz
podatkovne
memorije

PC

1.
Dohvat
naredbe

Z5
ra

r7

Dekodiraj

load

ladr

brl

vrijednost
alu

Arhitektura i organizacija digitalnog raunala

VI/19

Tok niza naredbi kroz cjevovod


Primjer

Prvi takt ciklus: naredba add ulazi u cjevovod


Programsko brojilo pokazuje na adresu 100 (adresu programske memorije na kojoj
je upisana naredba za zbrajanje). Programska memorija postavlja svoj sadraj na
sabirnicu, a istovremeno procesor inkrementira sadraj programskog brojila i dovodi
novu vrijednost (104) na njegov ulaz.
Naredba i nova vrijednost programskog brojila ekaju sljedei takt kako bi bili
upisani u IR2, PC i PC2.

Drugi takt ciklus: add prelazi u drugi korak; ld ulazi u cjevovod


Naredba za zbrajanje prelazi u drugi korak, dekodiranje sadraja naredbe. Naredba
se upisuje u spremnik naredbe (IR2) kao i sadraj programskog brojila (104) u PC2.
Dekodiranjem naredbe odreeni su operandi. To su sadraji spremnika r6 i r8,
odnosno vrijednosti 4 i 5 koji se iz spremnika preko multipleksora Mp3 i Mp4
postavljaju na ulaze spremnika cjevovoda X3 i Y3. Operacijski kod, add, i spremnik u
koji je potrebno upisati rezultat, r4, postavljeni su na ulaz spremnika cjevovoda IR3.
Ovime je prva naredba pripravna za trei korak njenog izvoenja.
Druga naredba koju je potrebno izvesti, ld, upisana je na adresi 104 programske
memorije. Postavljanjem sadraja programskog brojila na adresnu sabirnicu
programske memorije naredba se dohvata i pripravna je za upis u spremnik naredbe
IR2. Ujedno je sadraj programskog brojila inkrementiran na vrijednost 108 i
pripravan je za upis u spremnike PC i PC2.

Ak.god. 2011/2012

Arhitektura i organizacija digitalnog raunala

VI/20

10

Tok niza naredbi kroz cjevovod


Primjer

Trei takt: add prelazi u trei korak; ld u drugi korak; brl ulazi u
cjevovod
Naredba add prelazi u trei korak. Njeni operandi pohranjeni su u spremnike
cjevovoda X3 i Y3, a operacijski kod, add, i odredini spremnik, r4, u IR3. Logika za
dekodiranje signalizira ALU da se radi o naredbi za zbrajanje. Kombinacijska logika
zbraja sadraje s ulaza i rezultat operacije se dovodi na ulaz spremnika cjevovoda
Z4. Operacijski kod, add, kao i odredini spremnik r4, spremni su za upis u spremnik
cjevovoda IR4.
Naredba ld je ula u drugi korak u kojem se ona dekodira. Adresa operanda kod ove
naredbe odreena je sadrajem spremnika rb i konstante c2. U konkretnom sluaju
odabire se spremnik r5 iji se sadraj 16 dovodi preko multipleksora Mp3 na ulaz
spremnika cjevovoda X3. Istovremeno se iz naredbe odabire konstanta c1, 128, te
se ista preko multipleksora Mp4 dovodi na ulaz spremnika cjevovoda Y3. Operacijski
kod, ld, kao i odredini spremnik r7 spremni su za upis u spremnik cjevovoda IR3.
Programsko brojilo pokazuje na adresu 108 programske memorije na kojoj se nalazi
naredba brl. Programska memorija postavlja naredbu na izlaz i ona je pripravna za
upis u spremnik naredbe IR2. Istovremeno se programsko brojilo inkrementira i
pokazuje na novu naredbu upisanu na adresi 112. Ova vrijednost e se u sljedeem
taktu upisati u spremnike PC i PC2.

Ak.god. 2011/2012

Arhitektura i organizacija digitalnog raunala

VI/21

Tok niza naredbi kroz cjevovod


Primjer

etvrti takt: add prelazi u etvrti korak; ld u trei; brl u drugi; str
ulazi u cjevovod
Zbrajanje je izvedeno i rezultat je upisan u privremeni spremnik cjevovoda Z4. Kako
se radi o ALU operaciji, koja ne pristupa podatkovnoj memoriji, dekoder samo
prespaja izlaz spremnika Z4 na ulaz spremnika Z5.
Naredba ld je u treem koraku u kojem se izraunava adresa podatkovne memorije
iz koje je sadraj potrebno prebaciti u odredini spremnik, r7. Adresa podatka dobiva
se zbrajanjem sadraja spremnika X3, sadraj spremnika r5 koji je 16 i konstante c1
koja je 128. Rezultat, 144, eka sljedei takt impuls kako bi se upisao u spremnik
cjevovoda Z4.
U drugom koraku je naredba za bezuvjetno grananje u potprogram, brl. Adresa
potprograma upisana je u spremnik r11, a povratna adresa e se upisati u spremnik
r9. Uvjetni kod 001 specificira da se radi o bezuvjetnom grananju. Ovaj kod se preko
c2 sabirnice dovodi na logiku uvjeta koja svoj izlaz, uvjet, postavlja u jedinicu. Kako
je uvjet jednak jedinici i radi se o naredbi za grananje, multipleksor Mp1
preusmjerava sadraj spremnika r11, odnosno adresu prve naredbe potprograma,
na ulaz programskog brojila. Sada se na ulazu programskog brojila nalazi vrijednost
512, a ne prethodna vrijednost poveana za etiri, koja e se upisati u programsko
brojilo sljedeim takt impulsom.

Ak.god. 2011/2012

Arhitektura i organizacija digitalnog raunala

VI/22

11

Tok niza naredbi kroz cjevovod


Primjer

Dok procesor odreuje adresu grananja, procesor je ve u procesu dohvata sljedee


naredbe. Programsko brojilo pokazuje na adresu 112 programske memorije, na kojoj
je upisana naredba str. Naredba se dovodi na ulaz spremnika naredbe, IR2. Ujedno se
sadraj programskog brojila inkrementira te se vodi na ulaz spremnika cjevovoda PC2,
ali ne i na ulaz programskog brojila na koji je ve multipleksor Mp1 prespojio izlaz
spremnika r11. Ova naredba je ve ula u cjevovod i izvesti e se bez obzira na
prethodne naredbe.
Ovim primjerom objanjena je potreba odgaanja dohvata naredbe koja se nalazi
iza naredbe za grananje ukoliko je ta naredba ovisna o rezultatu grananja. U tom
sluaju ubacuje se fiktivna naredba koja ne izvodi nikakvu obradu, nop.

Peti takt: naredba za zbrajanje zavrava; naredba ld dohvata


podatak iz podatkovne memorije; naredba brl premjeta se u trei
korak; naredba str dohvata operande; dohvata se prva naredba
potprograma sub
U petom taktu naredba za zbrajanje, add, zavrava izvoenje upisom rezultata u
odredini spremnik. Rezultat operacije, 9, i adresa spremnika, r4, prosljeuje se na
ulaze spremnika ope namjene. Za primijetiti je da se rezultat u odredini spremnik
upisuje tek na kraju petog koraka. Na poetku koraka rezultat operacije se prebacuje u
spremnik cjevovoda Z5.

Ak.god. 2011/2012

Arhitektura i organizacija digitalnog raunala

VI/23

Tok niza naredbi kroz cjevovod


Primjer

Naredba ld je u etvrtom koraku i pristupa podatkovnoj memoriji. Proraunata adresa


operanda, 144, postavlja se na adresnu sabirnicu. Logika dekodira da se radi o
naredbi za itanje podatka iz memorije te generira podatkovnoj memoriji signal itaj.
Ujedno multipleksor Mp5 prespaja izlaz memorije na ulaz spremnika cjevovoda Z5. Na
njegovom ulazu je sada vrijednost 55. Ujedno, informacija o operacijskom kodu ove
naredbe i odredinom spremniku prosljeuje se na ulaz spremnika IR5.
Naredba za grananje prelazi u trei korak. Kako ova naredba ne zahtjeva nikakav
proraun, kombinacijska logika samo prosljeuje adresu povratka iz potprograma,
112, prema sljedeem koraku, odnosno spremniku Z4 (Z = X).
U fazi dekodiranja naredbe i dohvata operanada nalazi se naredba str. Ova naredba
koristi relativno adresiranje, M[PC + 32] R[r12]. Zato je bilo potrebno sauvati
inkrementiranu vrijednost programskog brojila iz prethodnog takta. Multipleksor Mp3
prosljeuje sadraj PC2 na ulaz spremnika cjevovoda X3 dok multipleksor Mp4
prosljeuje sadraj konstante c1 iz PC2 na ulaz spremnika cjevovoda Y3. Ovim je
napravljena priprema za proraun memorijske adrese. Kako se radi o naredbi koja
upisuje sadraj spremnika u podatkovnu memoriju, multipleksor Mp2 prespaja polje
naredbe ra na adresni ulaz spremnika ope namjene. Sadraj odabranog spremnika,
r12, koji iznosi 23 postavlja se na ulaz spremnika MD3, koji e u sljedeem koraku za
vrijeme prorauna adrese samo biti proslijeen prema spremniku MD4 iz kojega e se
prebaciti na izraunatu memorijsku adresu.
Prva naredba potprograma, sub, nalazi se u fazi dohvata naredbe.

Ak.god. 2011/2012

Arhitektura i organizacija digitalnog raunala

VI/24

12

Opasnosti vezane uz primjenu cjevovoda

Ak.god. 2011/2012

Arhitektura i organizacija digitalnog raunala

VI/25

Opasnosti vezane uz primjenu cjevovoda

Opasnosti vezane uz primjenu cjevovoda su posljedica izvoenja


naredbe ovisne o rezultatu jedne od prethodnih naredbi ija obrada
jo nije zavrila.

Program prevodilac mora unaprijed predvidjeti (prije izvoenja


programa) mogue izvore pogreaka te ih otkloniti. Pri tome se
rukovodi strategijom najgoreg sluaja (worst case).

Opasnosti vezane uz primjenu cjevovoda mogu se podijeliti prema


tipu naredbe uz koji su vezane. Iako postoji vie moguih podjela,
osnovna je na:
opasnosti vezane uz podatke i
opasnosti vezane uz grananja.

Ak.god. 2011/2012

Arhitektura i organizacija digitalnog raunala

VI/26

13

Opasnosti u primjeni cjevovoda vezane uz pristup podacima

Opasnost primjene cjevovoda vezana uz podatke odnosi se na sluaj


kad naredba pristupa spremniku ili memorijskoj lokaciji prije nego je
u nju neka od prethodnih naredbi upisala rezultat.

Primjer:
100: add r0, r2, r4
104: sub r3, r0, r1

Rezultat operacije upisuje se u odredini spremnik tek u petom koraku, dok


se operandi dohvaaju ve u drugom koraku.
Tako naredba za oduzimanje pristupa spremniku r0 prije nego je prethodna
naredba za zbrajanje u njega upisala rezultat.
Analiza slika kojima je opisan prolaz naredbi kroz cjevovod pokazuje da je
rezultat operacije zbrajanja dostupan ve u treem koraku.
To ukazuje na mogunost konstrukcije sklopovlja koje moe pravovremeno
proslijediti potreban podatak sljedeoj naredbi, tzv. sklopovlje za
prosljeivanje (forwarding hardware).

Ak.god. 2011/2012

Arhitektura i organizacija digitalnog raunala

VI/27

Opasnosti u primjeni cjevovoda vezane uz pristup podacima

Prilikom odreivanja svih moguih opasnosti vezanih uz pristup


podacima kod cjevovoda potrebno je analizirati sve naredbe i njihove
meuovisnosti

Zadatak je mogue znatno pojednostavniti grupiranjem naredbi prema


nainu kako pristupaju operandima i kako rezultat upisuju u odredini
spremnik

Primjer: Analiza meuovisnosti dviju ALU naredbi


Kod ALU naredbi informacija (rezultat normalno dostupan)/(rezultat
najranije dostupan) oznaava se kao 6/4.
Kod ALU operacija operandima se pristupa u drugom koraku ali se koriste u
treem koraku, tj. (operand normalno potreban)/(operand
najkasnije potreban) iznosi 2/3.
Temeljen ovih podataka mogue je izraunati minimalni potrebni razmak
izmeu dviju ovisnih ALU operacije kao (6-2)/(4-3) = 4/1, odnosno
izmeu dvije zavisne ALU naredbe potrebno je ubaciti etiri slobodna
mjesta, a koritenjem posebnog sklopovlja za prosljeivanje podatka broj
potrebnih slobodnih mjesta reducira se na jedno.

Ak.god. 2011/2012

Arhitektura i organizacija digitalnog raunala

VI/28

14

Opasnosti u primjeni cjevovoda vezane uz pristup podacima

Podatkovna meuovisnost naredbi koje mijenjaju podatke:

Tablica pokazuje kako je sve ovisne naredbe potrebno razdvojiti sa etiri


nezavisne naredbe, ali primjenom sklopovlja za prosljeivanje broj potrebnih
slobodnih mjesta znaajno se smanjuje.

Ak.god. 2011/2012

Arhitektura i organizacija digitalnog raunala

VI/29

Opasnosti vezane uz primjenu cjevovoda

U sluaju da se pristupa podacima u memoriji stvar je znatno


jednostavnija jer problem moe samo postojati ukoliko iza naredbe za
upis slijedi naredba za itanje iz iste lokacije.
Ali kako se svaki pristup memoriji odvija u etvrtom koraku ne postoji
opasnost pristupa podacima.
Opasnost u cjevovodu kod naredbi za grananje
Kod grananja postoji problem da se obavezno izvodi naredba koja
slijedi naredbu za grananje neovisno o rezultatu grananja.
To znai da je potrebno ubaciti jedno slobodno mjesto iza naredbe za
grananje.

Ak.god. 2011/2012

Arhitektura i organizacija digitalnog raunala

VI/30

15

Sklopovska detekcija i otklanjanje opasnosti

Temelj sklopovske detekcije je ispitivanje opasnosti u svim koracima u


kojima se ona moe pojaviti.
Minimalni razmak izmeu dvije ovisne naredbe bez sklopovlja za
prosljeivanje podataka iznosi etiri mjesta.
Ovisna naredba mora se zaustaviti u drugom koraku, dok se
problematina situacija ne razrijei.
Razlog je to naredba ne moe dohvatiti potreban operand, dok jedna
od sljedeih naredbi ne upie rezultat u odredini spremnik. Naredba
koja je u prvom koraku takoer se mora zaustaviti.
Dvije zavisne naredbe mogu biti razmaknute za jedno, dva ili tri
mjesta. Sklopovlje mora detektirati sva tri sluaja.
Sve naredbe koje su ule u cjevovod prije naredbe koja eka operand
moraju se nesmetano izvesti do kraja.

Ak.god. 2011/2012

Arhitektura i organizacija digitalnog raunala

VI/31

Sklopovska detekcija i otklanjanje opasnosti

Detekcija opasnosti izmeu koraka dva i tri


alu3 alu2 ((ra3 = rb2) ((ra3 = rc2) imm2))
(pauza2: pauza1: op3 0):
Ako su ALU naredbe u koracima dva i tri i ako je ra u koraku tri jednak rb ili
rc u koraku dva (osim ako se radi o neposrednom operandu u kojem sluaju
rc nije specificiran), postoji opasnost izmeu naredbi u koracima dva i tri.
U tom sluaju generira se signal kojim se zaustavlja izvoenje naredbi u
koracima dva i jedan te se umee prazno mjesto izmeu naredbi u treem i
drugom koraku (nop)
Upravljaki signali pauza1 i pauza2 koriste se za zaustavljanje naredbi iz
koraka jedan i dva, dok op3 0 upisuje operacijski kod nop u spremnik
naredbe treeg koraka IR3.

Ak.god. 2011/2012

Arhitektura i organizacija digitalnog raunala

VI/32

16

Sklopovska detekcija i otklanjanje opasnosti

Otkrivanje ovisnosti izmeu naredbi u drugom i etvrtom koraku


Sklopovlje za otkrivanje ovisnosti naredbi u drugom i etvrtom koraku mora ispitati
sljedea dva sluaja:
Opasnost je posljedica ve otkrivene ovisnosti meu naredbama u drugom i
treem koraku. Ve je umetnuto jedno prazno mjesto izmeu naredbi.
Ovisnost je otkrivena izmeu naredbi razdvojenih jednom naredbom. Opasnost
je otkrivena prvi put kada su te naredbe u drugom i etvrtom koraku.
U oba navedena sluaja opasnost se mora otkriti, zaustaviti se izvoenje naredbi u
prvom i drugom koraku te umetnuti prazno mjesto u trei korak
alu4 alu2 ((ra4 = rb2) ((ra4 = rc2) imm2))
(pauza2: pauza1: op3 0):

Otkrivanje ovisnosti izmeu naredbi u petom i drugom koraku


alu5 alu2 ((ra5 = rb2) ((ra5 = rc2) imm2))
(pauza2: pauza1: op3 0):

U najgorem sluaju su dvije ovisne naredbe jedna iza druge pa je


potrebno umetnuti tri prazna mjesta.

Ak.god. 2011/2012

Arhitektura i organizacija digitalnog raunala

VI/33

Otkrivanje opasnosti pomou sklopova.


Rjeenje prosljeivanja podataka (forwarding hardware)
Programska
memorija

PC
Mp1

1.
Dohvat
naredbe

Inc4

IR2
op ra rb rc c1 c2

Spremnici ope namjene


PC2

a1 R1

a2 R2

rb

G1
GA1
G2
W3

Mp2
uvjet

2.
Dekodiranje
i dohvat
operanada

rc
ra

c2
c1

Mp3
IR3
op ra

3.
ALU
operacija

Y3

4.
Pristup
memoriji

ALU

ra

Mp5

Z5

ra

Dekodiraj

Podatkovna
memorija

pii/itaj

Logika za
detekciju rizika
i prosljeivanje
podataka

IR5

MD4

addr

Logika za
detekciju rizika
i prosljeivanje
podataka

Dekodiraj

5.
Upis u
op
ra spremnik
(odredite)

MD3

Z4

op ra

Logika
uvjeta

Mp7

Dekodiraj

op

c2 2..0

Mp4
X3

rb, rc
Mp6

IR4

Ak.god. 2011/2012

a3 R3

vrijednost
load

ladr

brl

alu

Arhitektura i organizacija digitalnog raunala

VI/34

17

Primjer

Otkrijte opasnosti u programskom odsjeku (u kojem koraku


se detektira opasnost?) i eliminirajte ih umetanjem NOP-a.
shr r7, r7, 2
sub r6, r5, 1
add r2, r3, r4
add r1, r2, r3
ld r8, addr2
add r5, r8, r6

Ak.god. 2011/2012

Arhitektura i organizacija digitalnog raunala

VI/35

Otklanjanje opasnosti u cjevovodu

prvi takt
dohvat
naredbe

ld r8, addr2

dohvat
operanada

add r1, r2, r3

drugi takt
zaustavljen

trei takt
zaustavljen

ld r8, addr2

zaustavljen

ld r8, addr2

zaustavljen
add r1, r2, r3

nova

etvrti takt

nova

peti takt

zaustavljen
ld r8, addr2

add r5, r8, r6

zaustavljen
add r1, r2, r3

nova

add r1, r2, r3

ld r8, addr2

nova

izvoenje
naredbe

add r2, r3, r4

nop

nop

nop

add r1, r2, r3

pristup
memoriji

sub r6, r5, #1

add r2, r3, r4

nop

nop

nop

upis u
spremnik

shr r7, r7, #2

sub r6, r5, #1


zavrena

Ak.god. 2011/2012

add r2, r3, r4


zavrena

nop
zavrena

Arhitektura i organizacija digitalnog raunala

nop
prazno

VI/36

18

Primjer

Dvije ovisne naredbe se nalaze jedna iza druge pa je potrebno


umetnuti tri prazna mjesta (3 nop naredbe).
Na taj nain rezultat zbrajanja (r3+r4) e se upisati u odredini
spremnik (r2) u petom koraku, a nakon toga e naredba zbrajanja
add r1, r2, r3 u drugom koraku dohvatiti ispravnu (auriranu)
vrijednost operanda r2.

shr r7, r7, 2


sub r6, r5, 1
add r2, r3, r4
nop
nop
nop
add r1, r2, r3
ld r8, addr2
...

Ak.god. 2011/2012

Arhitektura i organizacija digitalnog raunala

VI/37

Performanse procesora sa cjevovodom

Ak.god. 2011/2012

Arhitektura i organizacija digitalnog raunala

VI/38

19

Performanse procesora sa cjevovodom


Prva pretpostavka - neka je frekvencija takta identina onoj kao i kod
procesora bez cjevovoda.
Ubrzanje se rauna prema izrazu:
%ubrzanj

(IC CPI )bez cjevovoda (IC CPI ) sa cjevovodom


(IC CPI ) sa cjevovodom

100

Kako je i broj naredbi jednak za oba sluaja slijedi:


%ubrzanj

CPIbez cjevovoda CPIsa cjevovodom


CPIsa cjevovodom

100

Kod jedno-sabirnikog SRCa prosjeno se izvede jedna naredba u pet


taktova dok se kod procesora sa cjevovodom idealno izvede jedna
naredba u jednom taktu. Ubrzanje tada iznosi:
%ubrzanj

Ak.god. 2011/2012

CPIbez cjevovoda CPIsa cjevovodom


CPIsa cjevovodom

100

5 1
100 400%
1

Arhitektura i organizacija digitalnog raunala

VI/39

Performanse procesora sa cjevovodom

Realnija pretpostavka je da se na svakih pet naredbi ubacuje prosjeno


jedno prazno mjesto, odnosno izvedu se prosjeno etiri naredbe u pet
taktova.
U tom sluaju dobiva se:
%ubrzanj

CPIbez cjevovoda CPIsa cjevovodom


CPIsa cjevovodom

100

55 4
100 375%
54

to je takoer veliko ubrzanje !

Ak.god. 2011/2012

Arhitektura i organizacija digitalnog raunala

VI/40

20

Usporedba pogodnosti CISC i RISC


procesora za cjevovode

Ak.god. 2011/2012

Arhitektura i organizacija digitalnog raunala

VI/41

Arhitektura i organizacija digitalnog raunala

VI/42

CISC. RISC.

Ak.god. 2011/2012

21

Usporedba pogodnosti CISC i RISC za protonu izvedbu

Kraa perioda signala vremenskog voenja poveanje broja perioda


za instrukciju.

Uobiajeni pristup:
vrijeme trajanja periode tako da dopusti izvoenje najjednostavnijih
operacija u jednoj periodi
izvoenje sloenijih instrukcija/operacija u vie perioda

Ak.god. 2011/2012

Arhitektura i organizacija digitalnog raunala

VI/43

Usporedba pogodnosti CISC i RISC za protonu izvedbu

Tipian slijed instrukcija za CISC procesor:

svaka instrukcija ima dodijeljeno vrijeme upravo onoliko koliko joj je


potrebno

Tenja u RISC arhitekturi:


Jedna perioda po instrukciji !

Ak.god. 2011/2012

Arhitektura i organizacija digitalnog raunala

VI/44

22

Usporedba pogodnosti CISC i RISC za protonu izvedbu


Primjer protonog izvoenja za CISC instrukcije

- periode kanjenja

- ekskluzivni zahtjevi za resursom


(ALU, registri, sklop za posmak,...)

Negativan utjecaj promjenjive duljine trajanja instrukcija u


CISC arhitekturi!

Ak.god. 2011/2012

Arhitektura i organizacija digitalnog raunala

VI/45

2. generacija RISC procesora


Superskalarni RISC

Ak.god. 2011/2012

Arhitektura i organizacija digitalnog raunala

VI/46

23

Pitanja i zadaci za ponavljanje

Ak.god. 2011/2012

Arhitektura i organizacija digitalnog raunala

VI/47

Pitanja i zadaci za ponavljanje

1) Objasnite princip rada procesora s cjevodom.


2) Koja procesorska arhitektura (CISC ili RISC) je pogodnija za protonu
izvedbu (cjevovodi) i zato?
3) Navedite probleme koji se susreu kod procesora s cjevovodom.
Objasnite kako se navedeni problemi rjeavaju (navedite primjere).
4) Otkrijte opasnosti u programskom odsjeku (u kojem koraku se detektira
opasnost?) i eliminirajte ih umetanjem NOP-a.

(procesor je SRC s cjevovodom, bez sklopovlja za prosljeivanje).


...
400
404
408
412
...

add r0, r1, r2


addi r1, r1, 2
sub r0, r0, r2
st r0, 1024

Ak.god. 2011/2012

Arhitektura i organizacija digitalnog raunala

VI/48

24

Pitanja i zadaci za ponavljanje

5) Na procesoru s cjevovodom (prikazan na slici) objasnite izvoenje


naredbe: add R2,R3,R6.

Ak.god. 2011/2012

Arhitektura i organizacija digitalnog raunala

VI/49

25

You might also like