Docsity
Docsity

Pripremite ispite
Pripremite ispite

Studirajte zahvaljujući brojnim resursima koji su dostupni na Docsity-u


Nabavite poene za preuzimanje
Nabavite poene za preuzimanje

Zaradite bodove pomažući drugim studentima ili ih kupite uz Premium plan


Školska orijentacija
Školska orijentacija


RAČUNSKE VEŽBE - PROGRAMIRANJE 1, Praktikum od Programiranje

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

2019/2020

Učitan datuma 18.10.2020.

nepoznat korisnik
nepoznat korisnik 🇸🇷

1 dokument

1 / 279

Toggle sidebar

Ova stranica nije vidljiva u pregledu

Ne propustite važne delove!

bg1
1. Ocena performansi
[ \
pf3
pf4
pf5
pf8
pf9
pfa
pfd
pfe
pff
pf12
pf13
pf14
pf15
pf16
pf17
pf18
pf19
pf1a
pf1b
pf1c
pf1d
pf1e
pf1f
pf20
pf21
pf22
pf23
pf24
pf25
pf26
pf27
pf28
pf29
pf2a
pf2b
pf2c
pf2d
pf2e
pf2f
pf30
pf31
pf32
pf33
pf34
pf35
pf36
pf37
pf38
pf39
pf3a
pf3b
pf3c
pf3d
pf3e
pf3f
pf40
pf41
pf42
pf43
pf44
pf45
pf46
pf47
pf48
pf49
pf4a
pf4b
pf4c
pf4d
pf4e
pf4f
pf50
pf51
pf52
pf53
pf54
pf55
pf56
pf57
pf58
pf59
pf5a
pf5b
pf5c
pf5d
pf5e
pf5f
pf60
pf61
pf62
pf63
pf64

Delimični pregled teksta

Preuzmite RAČUNSKE VEŽBE - PROGRAMIRANJE 1 i više Praktikum u PDF od Programiranje samo na Docsity!

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

  1. Memorija u kojoj se čuvaju instrukcije i podaci koji su potrebni instrukcijama
  2. Ulazno/izlazni mehanizmi i periferni uređaji namenjeni za prenos podataka ka-, ili iz sistema
  3. Procesor koga čine sledeća dva bloka:
    • Upravljačka jedinica - pribavlja instrukcije iz memorije,
    • Aritmetički procesor - obavlja specificirane operacije.

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:

  • tcp - određeno od VLSI IC poluprovodničke tehnologije i organizacije računara
  • CPI - zavisan od organizacije i skupa instrukcija arhitekture CPU-a
  • NI - određen skupom instrukcija i tehnologijom kompilatora.

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= ∑=

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:

  • FP množenje 10%
  • FP sabiranje 15%
  • FP deljenje 5%
  • Integer instrukcije 70%

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:

  • FP množenje 6
  • FP sabiranje 4
  • FP deljenje 20
  • Integer instrukcije 2

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:

  • FP množenje -> 30,
  • FP sabiranje -> 20,
  • FP deljenje -> 50.

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

CPI* 106

taktna_učastanost

MIPS =

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= ∑=

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

9

TCPUC2= (^500) * 10 30 s

15 * 10 6

9

Na osnovu vremena izvršenja zaključujemo da kompilator generiše kraći program. Odredimo sada MIPS -ove za svaku verziju programa.

MIPS= 6

TCPU * 10

broj_instrukcija

MIPSC1=

( ) *

5 1 1 10 20 10

350

9 6

    • (^) =
MIPSC2=

( ) *

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: