




























































































Studirajte zahvaljujući brojnim resursima koji su dostupni na Docsity-u
Zaradite bodove pomažući drugim studentima ili ih kupite uz Premium plan
Pripremite ispite
Studirajte zahvaljujući brojnim resursima koji su dostupni na Docsity-u
Nabavite poene za preuzimanje
Zaradite bodove pomažući drugim studentima ili ih kupite uz Premium plan
PROGRAMIRANJE 1 Arhitektura računara opisuje pogled korisnika na računar. Skup naredbi, vidljivi registri, strukture kao što su tabele za upravljanje radom memorije, model za manipulaciju sa izuzecima, sve su to delovi arhitekture računara
Tipologija: Praktikum
Učitan datuma 18.10.2020.
1 dokument
1 / 279
Ova stranica nije vidljiva u pregledu
Ne propustite važne delove!





























































































1. Ocena performansi
[ \
Šta je arhitektura računara?
Arhitektura računara opisuje pogled korisnika na računar. Skup naredbi, vidljivi registri, strukture kao što su tabele za upravljanje radom memorije, model za manipulaciju sa izuzecima, sve su to delovi arhitekture računara.
Šta je organizacija računara?
Organizacija računara opisuje implementaciju arhitekture koja je nevidljiva korisniku. Protočna struktura, transparentni keš, tabele koje se odnose na definiciju funkcije hardvera, TLB ( translation look-aside buffer ) - sve su to aspekti organizacije računara.
Šta je procesor?
Procesor opšte namene predstavlja konačni automat ( finite state machine ) koji izvršava instrukcije smeštene u memoriji. Stanje sistema definišu vrednosti koje se čuvaju u memorijskim blokovima zajedno sa vrednostima koje se čuvaju u određenim registrima koji su sastavni deo procesora. Svaka instrukcija definiše način na koji se stanje mašine menja a, takođe, i koju instrukciju treba izvršiti kao narednu.
Koji su osnovni blokovi von Neumann -ovog računara?
ulazni interfejs (i)
ulazni uredjaj (i)
uobičajeno skupljeni upodataka jedinstvenu stazu
izlazni uredjaj (i)
sekundarnamemorija
procesor
memorija^ glavna izlazni interfejs (i)
instrukcije i podaci
Slika 1.2 Osnovna struktura von Neumann-ovog računara
Ukazati na osnovne razlike između von Neumann -ovog i Harvard pristupa.
Korišćenje iste memorije za podatke i instrukcije je ključna karakteristika von Neumann -ovih računara.
Nasuprot ovakvom pristupu kod Harvard arhitekture ( Slika 1.3 ), memorija u kojoj se čuvaju podaci je izdvojena od memorije u kojoj se čuvaju instrukcije. Kod ovakvog rešenja putevi za prenos podataka i instrukcija su izdvojeni.
Korišćenje jedinstvene memorije za podatke i instrukcije dovodi do efikasnijeg korišćenja memorije i tipično je kao rešenje kod ranijih računarskih sistema. Savremeni RISC i DSP procesori koriste veći broj puteva (magistrala) za prenos podataka između procesora, memorije i U/I podsistema.
procesor
memorija podataka
magistrala adrese podataka
magistrala podataka memorija za instrukcije
magistrala instrukcija
magistrala adrese instrukcija
ka spoljnoj memoriji
Slika 1.3 Pojednostavljena struktura Harvard arhitekture
Koje se druge mere i faktori, pored MIPS -a i MFLOPS -a, koriste za dobijanje slike o sistemu?
Najčešće korišćene mere su:
(1) Propusnost procesora ( throughput of a processor ) je mera koja ukazuje na broj programa (zadataka ili zahteva) koje procesor može da izvrši po jedinici vremena.
(2) Iskorišćenost procesora tiče se dela vremena u toku koga je procesor zauzet izvršenjem programa. U suštini, to je odnos između vremena zauzeća i ukupno proteklog vremena.
(3) Vreme odziva ( response time ) predstavlja vremenski interval od trenutka kada se izda zahtev za opsluživanje, do trenutka kada se ta usluga obavi. Često vreme odziva se naziva i kružno vreme (turnaround time).
(4) Memorijska propusnost ( memory bandwidth ) ukazuje na broj memorijskih reči kojima se u jedinici vremena može pristupiti.
(5) Vreme pristupa memoriji ( memory access time ) predstavlja srednje vreme potrebno procesoru da pristupi memoriji, obično se izražava u nanosekundama (ns).
(6) Obim memorije ( memory size ) je kapacitet memorije a izražava se u megabajtovima (Mbajtovi=MB). Na određeni način ova mera ukazuje na iznos podataka koji se može čuvati u memoriji.
Pored nabrojanih performansnih mera postoje i drugi faktori koji imaju uticaj na kvalitet računara, a to su:
(a) Opštost - je mera koja određuje opseg aplikacija date arhitekture. Neke od arhitektura su dobre za naučne aplikacije a druge za poslovne. Arhitektura je marketinška ako podržava veći broj aplikacija.
(b) Jednostavnost korišćenja je mera koja ukazuje koliko je ta arhitektura laka programeru sistema, kada on želi da je savlada i kada želi da napiše softver (kao što su operativni sistem ili kompilator) za tu arhitekturu.
(c) Proširljivost je mera koja ukazuje koliko je lako da se nadgradi ta arhitektura, kao što je ugradnja većeg broja procesora, više memorije i veći broj U/I uređaja.
(d) Kompatibilnost ukazuje koliko je data arhitektura kompatibilna sa prethodnim računarom iz iste familije.
(e) Pouzdanost ukazuje na verovatnoću greške ili srednje vreme izmedju grešaka.
- Vreme koje je potrebno CPU-u da izvrši program?
CPU cp
CPU
T =NICPIt
taktni_period
_broj_sekundi
instrukcija_
_broj_taktnih_intervala
program_
broj_instrukcija T =
gde je : NI - broj instrukcija u programu; CPI - broj taktnih intervala po instrukciji; tcp - vreme trajanja taktne pobude. Pri ovome imamo da je:
Osnovne komponente performansi CPU -a se izražavaju u sledećim jedinicama:
komponente performansi
jedinice mera
Tcpu sekunda NI broj instrukcija potreban da se izvrši program CPI prosečan broj taktnih perioda po instrukciji tcp broj sekundi po taktnom periodu
Vreme koje je potrebno CPU-u de izvrši program:
TCPU=broj_taktnih_intervala_CPU-a_u_programutcp=Ntcp
Skup instrukcija čini veći broj različitih klasa instrukcija. Instrukcije koje pripadaju različitim klasama se izvršavaju za različito vreme.
n
i 1
CPIi *NIi
gde je : n - broj različitih klasa instrukcija; NIi - ukazauje na to koliko se broj puta instrukcija iz klase i izvršava u programu; CPIi - prosečno vreme izvršenja instrukcije iz klase i.
Prema tome:
cp ,
n
i 1
TCPU CPIiNIi⎟t ⎠
=
dok je
=
= ⎟⎟ ⎠
⎞ ⎜⎜ ⎝
⎛ = =
n
i 1
i i
n
i 1
i i
broj_instrukcija
NI CPI * broj_instrukcija
CPI *NI CPI
(I) Neka se usavršeni deo programa izvršava 10 puta brže od originalnog (neusavršenog). Za deo programa koji se može usavršiti u neusavršenom programu troši se 40% vremena. Ukupno ubrzanje Suk koje se postiže uvođenjem poboljšanja iznosi sada: Fpob=0. Spob=
156 064
1
10
06 04
Suk 1_._
...
= ≈
=
(II) Neka se program na nekoj mašini izvršava za 100s, pri čemu se za operacije množenja troši 80s od tog vremena. Koliko puta treba ubrzati množenje ako želimo da se program izvršava pet puta brže.
( ) (^) ⎟⎟ ⎠
⎞ ⎜⎜ ⎝
⎛ = − + Spob
Fpob Tnovo Tstaro 1 Fpob
20=100((1-0.8)+0.8/Spob) 20=20+80/Spob
Ovaj rezultat ukazuje da ubrzanje izvršenja programa za pet puta nije moguće postići sa prihvatljivom vrednošću Spob (neprihvatljiva vrednost za Spob je ∞).
Zadatak 1.
Neka postoje dve implementacije arhitektura sa istim skupom naredbi. Računar R1 karakteriše tcp1=1ns i CPI 1 =2.0, a računar R tcp2=2ns i CPI 2 =1.2. Koja mašina je brža za ovaj program i koliko?
Odgovor
Obe mašine izvršavaju isti broj instrukcija u toku izvršenja programa i označimo ovaj broj sa k. Broj taktnih intervala Nx u toku izvršenja programa:
a) za računar R1 iznosi:
N 1 =k*2,0^ N = NI^ ∗^ CPI
b) za računar R2 iznosi
N 2 =k*1,
CPU -ovo vreme izračunavanja za svaki računar je:
i) za računar R1 :
TCPU1=k2,0tcp1=k2,01ns=2,0*k ns;
ii) za računar R2 :
TCPU2= k 1,2tcp2= k 1,22ns=2,4*k ns.
Formiranjem odnosa:
1, 2,0*kns
2,4*kns Tcpu
Tcpu PR
PR = = =
Ovaj rezultat ukazuje da je računar R1 brži 1,2 puta od računara R.
b) Ako se koristi C2 , tada imamo:
CPIR1C2=6, CPIR2C2=2,
pri istim uslovima je: t^ cpR1^6
1 400 10
= ⋅ i^
t (^) cpR2 (^16) 200 10
= ⋅.
Dobićemo da je R2 za 1,10 puta brži od R.
c) Ako se koristi simulator C3, tada:
CPIR1C3=5, CPIR2C3=2,
Pod istim uslovima koji važe za a) i b), dobićemo da je R1 za 1,04 puta brže od R2. Zbog toga, kada se koristi kompilator C3, treba isporučivati (kupovati) mašinu R.
Zadatak 1.
Zainteresovani smo za dve implementacije mašine, jedna sa-, a druga bez specijalnog FP hardvera. U toku izvršenja programa P učešće operacija je sledeće:
MFP ( machine with floating point ) ima FP hardver i zbog toga može FP operacije implementirati direktno. Za svaku klasu instrukcije potreban je sledeći broj taktnih intervala:
MNFP ( machine with no floating point ) nema FP hardver i zbog toga mora emulirati FP operacije koristeći Integer instrukcije. Broj instrukcija tipa Integer , potreban za implementaciju svake od FP operacija, je sledeći:
Obe mašine se taktuju na 100 MHz.
a) Odredi native MIPS za obe mašine.
Napomena:
= T CPU ∗ 106 MIPS NI vreme_izvršenja* 106
broj_instrukcija native MIPS = (^) ,
ili, alternativno:
= (^) CPI ∗ 106 MIPS fcp
b) Ako je MFP -u potrebno 300*10^6 instrukcija da bi izvršio program, koliko je Integer instrukcija potrebno MNFP -u da izvrši isti program.
c) Ako je broj instrukcija MFP -a 300*10^6 , za koje vreme se izvrši program P na MFP i MNFP mašini.
Odgovor
a) CPIMFP=0,16+0,154+0,0520+0,72=3,
CPIMNFP=
MIPSMFP= (^6)
6 36 10
100 10 ⋅
⋅ , =27,
MIPSMNFP=
100 10 2 10
6 6
⋅ ⋅ =
broj instrukcija (10^9 ) za svaku klasu instrukcije kôd A B C kompilator 1 5 1 1 kompilator 2 10 1 1
Slika 1.13 Broj instrukcija svake klase
Neka je taktna frekvencija 500 MHz. Koja kôdna sekvenca će se izvršavati brže, shodno MIPS -ovima, a koja shodno vremenu izvršenja?
Odgovor
vreme_izvršenja= (^) taktna_frekvencija
CPU −ovi_taktni_intervali
TCPU=N*tcp
n i 1
CPIi *NIi
U konkretnom slučaju, kada je apliciran kompajler 1, važi:
Nc1=(51+12+13)10^9 =10*10^9.
Kada je apliciran kompajler 2, imamo:
Nc2=(101+12+13)10^9 =15*10^9.
Vreme izvršenja za odgovarajuće kompajlirane programe iznosi:
TCPUC1= (^500) * 10 20 s
10 * 10 6
TCPUC2= (^500) * 10 30 s
15 * 10 6
Na osnovu vremena izvršenja zaključujemo da kompilator generiše kraći program. Odredimo sada MIPS -ove za svaku verziju programa.
TCPU * 10
broj_instrukcija
( ) *
5 1 1 10 20 10
350
9 6
( ) *
10 1 1 10 30 10
400
9 6
Interesantan zaključak koji se nameće je da kôd kompilatora 2 ima veći broj MIPS -ova ali se kôd kompilatora 1 izvršava za kraći vremenski period.
Zadatak 1.
Pretpostavite da ste glavni projektant novog procesora. Dizajn procesora i kompilatora su okončani, ali ostaje da se donese odluka da li će se i dalje proizvoditi sadašnji dizajn ili je vredno potrošiti još dodatnog vremena da bi se rešenje poboljšalo. O ovom problemu ste diskutovali sa timom inžejnera hardverista i došli ste do zaključka da se mogu ponuditi sledeće opcije:
(a) ne menjati rešenje - ovaj tip mašine naziva se Rosn. Njegova taktna frekvencija je 500 MHz, a merenja na simulatoru su dala sledeće rezultate:
klasa instrukcije CPI frekventnost A 2 40% B 3 25% C 3 25% D 5 10%
broj instrukcija = NI 0.4 NI 0.25 NI 0.25 NI 0.1 NI
(b) optimizovani hardver - tim projektanata hardvera je utvrdio da može poboljšati dizajn procesora, i povećati taktnu frekvenciju na 600 MHz. Poboljšani procesor zvaćemo Rpob. Merenja na simulatoru su dala sledeće rezultate: