You are on page 1of 34

1

Mere za ocenu performansi racunara


Vreme je standardno prihvacena mera za odredjivanje performansi racunara. Nekoliko pojmova koje treba definisati: Vreme odziva (responce time, latency) je ukupno vreme izmedju pocetka operacije i dostupnosti rezultata. Vezuje se za vremensko kasnjenje i jedinica je s Propusnost je broj obavljenih operacija u sekundi. Vezuje se za ucestanost i jedninca je Hz. Vreme odziva (latencija) i propusnost se mogu posmatratisa aspekta izvrsenja programa i pristupa memoriji. Treba biti upoznat sa sledecm notacijama: (1) Latentnost memorije: vreme za koje se dobije odziv na memorijski zahtev. Zavisi od tipa instaliranememorije. (2) Propusnost memorije: kolicina podataka (instrukcija i operanada) koji se u sekundi mogu preneti ka/iz memorije (3) Vreme izvrsenja: vreme izmedju izdavanja instrukcije i dostupnosti rezultata. (4) Propusnost kod izvrsenja: kolicina obradjenih podataka u sekundi. MIPS Milion Instructions Per Second mera za brzinu procesora.

Sistemsko strukturni tipovi podataka


Koristi ih operativni sistem za upravljanje tokom programa unutar racunara. Dve standardne strukture: Magacin (Stack) Red cekanja (Queue) Koncepcija: LIFO (Last In First Out) Koristi se za: Pamcenje stanja procesa kod komutacije stanja konteksta i aktiviranje zapisa kod izvrsenja programa. Predstavlja memorijski blok u kome se cuvaju podaci. - Pocetak magacina se nalazi na fiksnoj adresi kao i svaki element koji se nalazi u magacinu a za obavljanje operacija nad magcinom koristi se pokazivac magacina (Stack Pointer- SP) tako sto se po potrebi inkrementira ili dekrementira. - Operacije za manipulaciju sa magacinom: Ima ih vise a najvaznije su PUSH i POP. PUSH X : prvo dekrementira SP a onda smesta X u lokaciju na koju ukazuje SP. Na taj nacin se obim magacina povecava za jednu stavku. POP Y: smanjuje obim magacina za jednu stavku tako sto smesta element sa vrha magacina na lokaciju Y a zatim inkrementira SP za jednu stavku. - Promena sadrzaja SP-a bez stvarnog smestanja podataka u magacin (kada se rezervise prostor za lokalne promenljive). Pri radu sa magacinom treba obratiti paznju na sledece: - Premasaj: da se ne prekoraci dozvoljeni iznos dodeljene memorijske oblasti jer moze doci do gubljena elemenata ili unistavanja susednih struktura podataka ili programa. - Podbacaj: kada pokusavamo da izbavimo podatak (POP Data) iz praznog magacina. Magacin se koristi za: - Podrsku blok-strukturnim jezicima (Paskal) zbog LIFO tipa organizacije. - Realizaciju kompilatora (za prenos parametara izmedju procedura, memorisanje trenutnih rezultata...)

Magacin (Stack)

Koncepcija: FIFO (First In First Out) Podatak koji se prvi smesta u red cekanja prvi se i izbavlja. Koristi se za formiranje bafera za smestanje opisa zadataka koji cekaju na izvrsenje od strane procesora i dr. Predstavlja FIFO bafer. Ovde su potrebna dva pokazivaca: - Zaglavlje (head) - Rep (tail) Zaglavlje: pokazuje na prvu slobodnu lokaciju koja sledi nakon zadnjeg unetog podatka. Rep: pokazuje lokaciju prvog unetogpodatka Kada i rep i zaglavlje pokazuju na istu lokaciju => red cekanja je prazan.

Redovi cekanja (Queue)

Zasniva se na identifikaciji dva razlicita nezavisna koncepta: toka instrukcija i toka podataka Tok podataka definie se kao sekvenca podataka koji se pozivaju od strane toka instrukcija (ukljuujui ulazne podatke i privremene podatke) Tok instrukcija se definie kao sekvenca instrukcija koja se obavlja od strane raunara Postoje etiri klase raunara: SISD SIMD MISD MIMD
jednostruki tok podataka jednostruki tok instrukcija viestruki tok instrukcija viestruki tok podataka

Klasifikacione eme
Flynnova klasifikacija racinara

SISD MISD

SIMD MIMD

SISD - jedinstveni tok instrukcija - jedinstveni tok podataka (Single Instruction stream Single Data stream) klasu raunara ine konvencionalne von Neumann-ove arhitekture (program se izvrsava prema redosledu instrukcija). Kod ovih raunara u jednom trenutku procesira se samo jedna instrukcija koja operie nad jedinstvenim tokom podataka, operanada i rezultata. SIMD - jedinstveni tok instrukcija i viestruki tok podataka (Single Instruction stream Multiple Data stream). Kod ovih raunara jednom instrukcijom simultano se operie nad nekoliko elemenata podataka. MISD - viestruki tok instrukcija i jedinstveni tok podataka (Multiple Instruction stream Single Data stream). Kod ove klase raunara nad jedinstvenim podacima operie se od strane veeg broja instrukcija MIMD - viestruki tok instrukcija viestruki tok podataka (Multiple Instruction stream Multiple Data stream). Ova klasa ra~unara je veoma iroka jer pokriva sve multiprocesorske i multikompjuterske sisteme, tj. sisteme sa privatnom ili deljivom memorijom, slabo, umereno ili vrsto spregnute sisteme itd.

Na mainskom nivou svaka instrukcija se predstavlja sekvencom bitova Kodiranjem ovih bitova formira se informacija koja je potrebna radi upravljanja izvrenjem instrukcije Ovom informacijom treba da se definie: tip operacije koja treba da se izvri implicitna ili eksplicitna specifikacija jednog ili veeg broja operanada nad kojima se izvrava operacija tj. specificiraju se izvorni operandi adresa gde treba da se smesti rezultat obavljene operacije, tj. specificira se odredini operand, i adresa naredne instrukcije koju treba izvriti nakon to se obavi tekua

Predstavljanje instrukcija

Instrukciju ine sledea dva globalna dela: operacioni adresni Operacioni deo se zove operacioni kd, tj. opkd Adresni deo sadri informaciju o izvornim operandima, odredinom operandu i adresu naredne instrukcije Izgled (layout) instrukcije zove se format instrukcije.

Adresni deo instrukcije


Sastavni delovi adresnog dela instrukcije su polja operandi i modifikatori. Modifikator sadri informaciju kojom se: opisuje nain adresiranja ukazuje o dodatnim uslovima koji se odnose na pristup podacima ili na nain izvrenja operacije Najvei broj CPU-ova se izvodi kao jedno-, dvo-, ili tro-adresna maina, pri emu se adresa naredne instrukcije dobija implicitno preko programskog brojaa (PC)

Operacioni deo instrukcije


Neka instrukciju ine (n+k) bitova , od kojih se k bitova dodeljuje opkdu, a n bitova jedinstvenoj adresi. Sa k bitova dobija se 2k razliitih opkdova. Alternativno, istih (n+k) mogue podeliti tako da se (k-1) bit dodeli opkdu, a (n+1) bit adresi, to znai da je broj instrukcija prepolovljen, ali je broj memorijskih lokacija udvostruen. Tehnika kodiranja koja se bazira na proirenju broja bitova opkda naziva se kodiranje sa proirenjem. Diskusije u vezi izbora formata Projektovanje formata instrukcija je kompleksan zadatak. Mora se uzeti u obzir veliki broj faktora kakvi su: obim i organizacija memorije struktura magistrale kompleksnost CPU-a i brzina rada Mora da se napravi dobar kompromis izmedju elja i mogunosti. Programeri uvek preferiraju ka: veem broju opkdova veem broju operanada veem broju adresnih naina rada veem adresnom opsegu Vei broj opkdova i vei broj adresnih naina rada prua programeru mogunost da napie svoj program krae. Sa veim brojem adresnih naina rada lake je implementirati odredjene funkcije kao to je manipulisanje sa tabelama i viestruko grananje. elja je da se manipulie sa veim adresnim prostorom to neminovno dovodi da se specificira dua adresa.

Sve nabrojane stavke (opkdovi, operandi, adresni naini rada, i adresni opseg) ukazuju da je potrebno koristiti vei broj bitova po instrukciji to znai da e instrukcija biti dua. Due instrukcije zauzimaju vei memorijski prostor i za due vreme se pribavljaju iz memorije, a to znai da ih CPU izvrava sporije. Za memoriju kaemo da predstavlja "usko grlo" sistema jer u principu CPU moe da izvrava instrukcije bre nego to ih moe pribaviti. Reenje se sastoji u korienju : ke memorije kraih instrukcija Za zadatu duinu instrukcije neophodno je napraviti kompromis izmedju broja opkdova i adresnih mogunosti. Faktori koji imaju direktni uticaj na duinu polja za adresiranje su: broj adresnih naina rada broj operanada specifikacija internih registara u odnosu na memoriju adresni opseg adresna granularnost

Osnovni formati instrukcija


Postoji tri osnovna formata instrukcija Broj polja I njihova duzina variraju Fiksni i promenljivi format instrukcije Razlikujemo arhitekture koje koriste sledee formate instrukcija : fiksni promenljivi

Jedan od standardnih naina za opis arhitekture uzima u obzir koliko je eksplicitnih adresa operanada ukljueno u instrukcije. Najvei broj CPU-ova izvodi se kao jedno-, dvo-, ili tro-adresna maina, pri emu se adresa naredne instrukcije dobija implicitno ( obino preko programskog brojaa (PC)). U praksi etvoro-adresne instrukcije veoma retko sreemo. Neki raunari su projektovani tako da najvei broj instrukcija ne sadri eksplicitne adrese, pa se zbog toga ove maine zovu nulto-adresne maine. Tro-adresna maina Kod tro-adresnih instrukcija specificiraju se lokacije sva tri operanda, dva izvorina, i jedan odredini. Ove instrukcije zahtevaju relativno dug format. Tro-adresni format instrukcija obino sreemo kod 32-bitnih RISC procesora Primer: HLL aritmetiki iskaz Y:= (A-B) / (C+D*E) se izvrava pomou sledee sekvence

Broj adresa

Dvo-adresna maina Kod dvo-adresnih instrukcija specificiraju se dva operanda pri emu je jedan od izvorinih operanada istovremeno i odredini. Ovaj nain adresiranja se veoma esto koristi kod 8-, 16- i 32-bitnih mikroprocesora tipa CISC . Primer: HLL aritmetiki iskaz Y:= (A-B) / (C+D*E) se izvrava pomou sledee sekvence

Jedno-adresna maina Kod jedno-adresnih maina specificira se jedan operand i to izvorini, drugi izvorini operand je istovremeno i odredini i implicitno se podrazumeva. Ovaj pristup je bio korien kod ranijih maina pri emu se implicitna adresa odnosila na CPU-ov registar poznat kao akumulator (ACC) Primer: HLL aritmetiki iskaz Y:= (A-B) / (C+D*E) se izvrava pomou sledee sekvence

Nulto-adresna maina Kod aritmetiko-logikih operacija ne specificira se eksplicitno adresa operanda, jer se eksplicitno podrazumeva gde se nalazi operand. Svi operandi koji se koriste potrebno je da budu na vrhu magacina. Na vrh magacina ukazuje pokaziva SP (Stack Pointer). Za izbavljanje podatka sa vrha magacina koristi se operacija Pop, a za smetanje podatka na vrh magacina opeacija Push, koje su jedine operacije za komuniciranje sa memorijom Primer: HLL aritmetiki iskaz Y:= A*B+C*C se izvrava pomou sledee sekvence TOS oznaava vrh magacina

Adresni prostori
Kod najveeg broja raunara postoji vei broj razliitih adresnih prostora Svaki prostor ima odredjenu namenu, a najvanije su: Registarski prostor ine ga registri opte i specifine namene Prostor glavne memorije koristi se za uvanje programa i podataka U/I prostor namenjen za adresiranje periferala Prostor magacina realizuje se kao memorija tipa LIFO Upravljaki prostor ine ga PSW, SR, registri MMU-a i dr.

Svakom operandu instrukcije pridruen je odgovarajui podatak X. Podatak moe biti lociran u memorijskom, U/I podsistemu, CPU-ovim registrima, ili da predstavlja deo instrukcije. Da bi izvrio instrukciju procesor treba da pribavi tekuu vrednost X-a. Ova vrednost se moe specificirati na nekoliko naina koje zovemo adresni naini rada (addressing modes) ili adresne tehnike (addressing techniques). Adresni naini rada su sredstva koja se koriste za preslikavanje naina vidjenja adresibilnog prostora maine na pogled maine. Odredjuju gde se precizno nalazi eljeni podatak tj. gde je njegova efektivna adresa, EA. Specifikacija adresnog naina rada, koja je sadrana u okviru instrukcije, odredjuje kako procesor treba da koristi i interpretira bitove instrukcije i ostalu informaciju da bi izraunao efektivnu adresu. Da bi odredio efektivnu adresu CPU koristi usluge sledeih operacija: selekcija bira se operand koji moe biti registarski ili memorijski korienje baze odnosi se na sabiranje vrednosti pomou kojih se formira adresa skaliranje umnoavanje vrednosti nekog od operanda (obino umnoavanje sa faktorom 1, 2, 4, 8, ....) indeksiranje odnosi se na sabiranje i noenje celobrojne vrednosti indirekcija itanje vrednosti sa zadate adrese inkrementiranje dodavanje konstante registru ili mem. lokaciji dekrementiranje oduzimanje konstante registru ili mem. lokaciji Naini adresiranja U zavisnosti od toga kako se vri formiranje efektivne adrese razlikujemo sledee naine adresiranja :

Naini adresiranja

10

Adresni naini rada


Adresni nacin neposredni registarsko direktni registarsko indirektni memorijsko direktni memorijsko indirektni Polje operanada podatak adresa registra adresa registra memorijska adresa memorijska adresa Sadraj RF polja Sadraj memorije

... ... ... ... ...

podatak

memorijska adresa

... ... ... ...

podatak

podatak

memorijska adresa

podatak

... ... ... ...

Apsolutno adresiranje Ako adresa u instrukciji specificira (memorijsku) lokaciju operanda bez korienja bilo koje druge dodatne informacije tada taj tip efektivne adrese nazivamo apsolutna adresa. Ovaj tip apsolutne efektivne adrese mogue je specificirati na vie naina pa u zavisnosti od toga razlikujemo sledee naine apsolutnog adresiranja: neposredno adresiranje vrednost operanda je sastavni deo instrukcije direktno adresiranje odredjeni bitovi instrukcije sadre kompletnu EA implicitno sama instrukcija ne sadri adresnu informaciju u eksplicitnoj formi, ve se EA formira na osnovu opkda Indirektno adresiranje Indirektnom adresom nazivamo onu adresu koja ne specificira memorijsku lokaciju operanda ve memorijsku lokaciju u kojoj se nalazi adresa operanda. Razlikujemo sledea dva naina indirektnog adresiranja: registarsko indirektno procesor interpretira sadraj specificiranog registra kao (direktnu) memorijsku lokaciju. indirektno adresiranje preko memorije indirektna memorijska adresa specificira direktno memorijsku adresu gde se nalazi adresa operanda.

11

Relativno adresiranje Kod relativnog adresiranja polje operanda sadri relativnu adresu ili razmetaj, a kompletna adresa operanada formira se od strane CPU-a. Instrukcijom se takodje aksplicitno ili implicitno identifikuju ostale memorijske lokacije koje sadre dodatnu adresnu informaciju. Kod relativnog adresiranja postoje sledee varijante: PC-relativno - adresa operanda je specificirana relativno u odnosu na sadraj programskog brojaa bazno-registarsko - u registru kome se obraamo uva se memorijska adresa koju sabiramo sa razmetajem (specificiran u samoj instrukciji), pa se na taj nain formira EA. indeksno-adresiranje - EA se izraunava sabiranjem sadraja selektovanog registra sa adresom specificiranom u okviru instrukcije. autoindeksno - u toku izvrenja instrukcije vri se automatsko inkrementiranje ili dekrementiranje indeksnog registra preko magacina - pristup magacinu regulie se pomou pokazivaa magacina. Neposredno adresiranje Najjednostavniji oblik apsolutnog adresiranja je neposredni (immediate addressing) Adresni deo instrukcije specificira vrednost operanda, tj. operand je konstanta i sastavni je deo instrukcije

Karakteristike: koristi se da definie konstante operand se pribavlja u CPU u trenutku kada se pribalja instrukcija obim podatka koji se pribavlja ogranien je obimom adresnog polja

12

Direktno adresiranje Kod direktnog naina adresiranja u odgovarajue polje operanda (polje operand_A) smetena je adresa memorijske lokacije A koja odgovara podatku (operandu) X kome se pristupa, tj. adresni deo instrukcije sam predstavlja adresu na osnovi koje se vri obraanje memoriji, pa se zbog toga ova adresa zove direktna adresa.

Karakteristike: prednost ovog naina rada adresiranja je jednostavnost izvodjenja, a nedostatak ogranieni adresni opseg

13

Registarsko adresiranje Slino je direktnom adresiranju. Jedina razlika je u tome to se adresno polje odnosi na specifikaciju registra, a ne adresu glavne memorije

Karakteristike: adresno polje instrukcije kojim se specificira registar je mali i obima nekoliko bitova ne vri se obraanje memoriji instrukcije koje manipuliu sa sadrajem registra brzo se izvravaju ogranien adresni prostor Implicitno adresiranje Za implicitnu adresu operanda kaemo da je ona koja se u adresnom delu naredbe ne specificira posebno, ve je mesto operanda unapred poznato i zavisi od opkda polja. Karakteristike: Ovakav nain rada adresiranja koristimo kod postavljanja vrednosti markera registra CCR Tipini primeri su instrukcije Clc ;marker prenosa C se postavlja na nulu Stc ;marker prenosa C se postavlja na jedan Indirektno adresiranje preko memorije Kod indirektnog adresiranja, adresom se specificira memorijska lokacija u kojoj se ne uva operand nego adresa operanda

Karakteristike: potrebne su dve operacije pribavljanja mogunost pristupa veem adresnom prostoru vei broj obraanja memoriji

14

Registarsko indirektno adresiranje Kao to je registarsko adresiranje analogno sa direktnim adresiranjem, tako je i registarsko indirektno adresiranje analogno sa indirektnim adresiranjem. U oba sluaja razlika se ogleda u sledeem: Adresno polje instrukcije kod indirektnog adresiranja ukazuje na memorijsku lokaciju, a kod registarsko indirektnorg adresiranja na registar

Relativno adresiranje Kada se deo adresne informacije sadri u instrukciji, a kompletna adresa formira od strane CPU-a, za ovaj nain adresiranja kaemo da se zove relativno. Ovo adresiranje se karakterie time da polje operanda sadri relativnu adresu ili razmetaj (displacement ili offset) neki autori za termin razmetaj koriste pojam pomeraj. Tri najee koriene tehnike relativnog adresiranja su: PC-relativno bazno-registarsko indeksno PC - relativno adresiranje Kod ovog adresiranja registar kome se implicitno obraamo je programski broja (PC) Tekua adresa instrukcije sabira se sa razmetajem i na taj nain formira se EA. Kod ove operacije razmetaj se tretira kao broj u dvojinom komplementu. Kao rezultat, EA predstavlja relativni razmetaj u odnosu na adresu instrukcije PC relativno adresiranje koristi koncept lokalnosti jer najvei broj obraanja memoriji je relativno blizu instrukciji koja se tekue izvrava. Efektivna adresa se izraunava na sledei nain: EA = (PC) + D gde je: D razmetaj specificiran instrukcijom

15

Bazno-registarsko adresiranje Interpretacija bazno registarskog adresiranja je sledea: Registar kome se obraamo, R, uva memorijsku adresu, a adresno polje sadri razmetaj, D, (obino je to neoznaena celobrojna vrednost) u odnosu na memorijsku lokaciju. Kada se registar R koristi na ovaj nain kaemo da je bazni registar, a njegov sadraj se zove bazna adresa. Obraanje baznom registru moe biti eksplicitno ili implicitno. Bazno-registarsko adresiranje podrava relokatibilnost programa i podataka, tj. mogunost raunarskog sistema da u razliito vreme programu ili segmentima podataka dodeljuje razliite oblasti glavne memorije Indeksno adresiranje Kod indeksnog adresiranja interpretacija je sledea: Adresno polje, A, sadri adresu glavne memorije, a u registru R, u kome se obraamo smeten je pozitivni razmetaj u odnosu na tu adresu. Za registar R kaemo da je indeksni registar . Korienje ovog naina adresiranja je suprotan interpretaciji bazno-registarskog adresiranja. Nezavisno od interpretacije, kod oba naina adresiranja (bazno-registarski i indeksni) metod izraunavanje EA je isti, EA=R+D. Indeksiranjem se obezbedjuje efikasan mehanizam za obavljanje iterativnih operacija Autoindeksiranje Indeksni registar se esto koristi za obavljanje iterativnih zadataka. Kod nekih arhitektura, nakon obavljene iterativne operacije, ugradjuje se onaj deo aktivnosti instrukcije koji automatski vri inkrementiranje ili dekrementiranje indeksnog registra. Rezultantni adresno modifukujui proces se zove autoindeksiranje. Postoje sledee varijante autoindeksiranja: postinkrementiranje, postdekrementiranje, preinkementiranje, predekrementiranje, kombinacija post-/pre-inrementiranje/dekrementiranje Adresiranje magacina Magacin predstavlja linearno polje lokacija glavne memorije. Magacinu se moe pristupiti samo sa jednog kraja koji se naziva vrh-magacina (TOS- Top of Stack). Pristup magacinu regulie se registrom SP koji se naziva pokaziva magacina (stack pointer). Operacijom upis u magacin, nazvanom Push smeta se novi podatak na vrh magacina. Operacija itanje, nazvana Pop izbavlja podatak sa vrha magacina. Operacija Push/Pop menja se poloaj vrha magacina za odgovarajuu duinu operanda koji se smeta/izbavlja u/iz magacina.

16

Programeri esto imaju potrebu da nekoliko puta u okviru programa ponavljaju odredjene sekvence. Najjednostavnije ovaj problem se reava tako to se sekvenca instrukcija kad god zatreba prepie. Ako je sekvenca dugaka, ili se esto ponavlja, ovaj posao postaje zaista dosadan. Kao alternative se nude sledea dva reenja koja se baziraju na grupisanju instrukcija u jedinstvenu celinu : makro naredbe potprogrami (procedure) Obe strategije imaju svoje prednosti i nedostatke. Kod poziva, procedure izvravaju instrukcije Call i Return. Ako je procedura kratka, a poziv procedure est, izvrenje instrukcija Call i Return u znaajnoj meri usporava brzinu izvrenja programa. Makro naredbe obezbedjuju efikasnije reenje problema uestalog izvrenja iste ili skoro iste sekvence instrukcija. Nedostatak makro naredbe se ogleda u poveanju obima programa.

Makro naredbe i potprogrami

Makro naredbe
Veliki broj asemblerskih jezika je proirljiv. Asembleri dozvoljavaju korisniku da definie nove instrukcione mnemonike koje zovemo makro naredbe Makro naredbe se mogu smatrati kao sastavni deo jezika, pa se kao takve i mogu pozivati. Novo definisane instrukcije mogu se koristiti potpuno ravnopravno sa svim ostalim instrukcijama iz skupa instrukcija na asemlerskom jeziku. Makro naredba predstavlja sekvencu mainskih instrukcija koja se definie jedanput, a moe se koristiti po nekoliko puta u toku izvornog programa. Definicija makro naredbe lii na definiciju procedure. Procedure i makro naredbe nisu isto. Razlika se ogleda u sledeem : korienjem makro naredbi ne tedi se memorijski prostor na mestima na kojima se poziva marko naredba ubacije se sekvenca mainskih instrukcija, koje ine makro naredbe, ime se obim programa poveava makro naredbe nije potrebno povezivati, tj. linkovati. makro naredbe su pogodnije za primenu kada se u toku programa javljaju kratke celine po nekoliko puta, a procedure kada su celine due. Definicija makro naredbe Definicija makro naredbe predstavlja metod dodele imena delu programa. Razliiti asembleri koriste razliitu notaciju kod definicje makro naredbi. Nezavisno od detalja svi imaju sledee tri osnovne celine: zaglavlje u kome se javlja ime makro naredbe koja se definie, tekst koji ini telo makro naredbe, direktiva koja se odnosi na kraj definicije. Kada se ime makro naredbe koristi kao opkd tada je ono poznato kao makro poziv a njegova ekspanzija telom makro naredbe zove se makro ekspanzija Definicija makroa ukljuuje zadavanje formalnih parametara, a makro pozivom se predaju aktuelni parametri.

17

Procedure
Procedura je osnovna programska jedinica kod najveeg broja HLL-ova. Korienjem procedure moe da pobolja itljivost, pisanje, i odravanje velikih programa. Procedure takodje smanjuju veliinu programa jer je njihov kd deljiv, tj. zajedniki za vei broj programa Upotreba procedura je takodje svojstvena kod uvodjenja novih programskih tehnika kao to je rekurzivno programiranje ime se u znaajnoj meri smanjuju napori programera kod realizacije odredjenih algoritama. Lako prepoznajemo korienje procedura u skoro svim programima koje danas sreemo. Implementacija procedura podrazumeva upravljanje nekim strukturama podataka koje zbog poziva procedura unose dodatno vremensko prekoraenje, tj. usporavaju brzinu izvrenja programa Savremeni mikroprocesori poseduju specijalne instrukcije koje izvode ove aktivnosti, a njihov efekat se ogleda u poboljanju performansi Aktivnosti kod poziva procedura Prenos parametara proceduri (preko magacina, registara, itd) Predaja upravljanja eljenoj proceduri Dodela prostora radi memorisanja lokalno promenljivih, Pamenje konteksta programa iz koga je izvren poziv, Pristup parametrima u toku izvrenja procedure, Obnavljanje konteksta programa iz koga je izvren poziv, Oslobadjanje prostora koji je bio rezervisan za memorisanje lokalno promenljivih, Izbavljanje parametara (iz magacina, registara, itd), Vraanje upravljanja programu iz koga je izvren poziv.

18

U odnosu na to kako se skupom instrukcija vri specifikacija operanada instrukcije raunare moemo podeliti na sledee tipove: L/S Load/Store arhitekture R/M Registar-Memorija arhitektura R + M Registarplus-Memorija arhitekture

Podela raunara
Load/Store arhitektura

RISC masine karakterise Load/Store format naredbi. Svi operandi se nalaze u registrima. Upis podataka u memoriju: pomocu Store naredbe, Citanje podataka iz memorije: pomocu Load naredbe. Ova koncepcija arhitekturnog resenja obezedila je sledece karakteristike: Regularnost kod izvrsenja instrukcija Jednostavno dekodiranje instrukcija Reducirani sklop naredbi Velika brzina rada Fiksni obim instrukcija sa uniformnom prezentacijom polja u oviru instrukcije.

Registar/Memorija arhitektura
Kod ovih arhitektura jedan od izvornih operanada mora da se nalazi u memoriji, a drugi izvorni, koji se istovremeno koristi kao odredisni, mora da bude regstarski. Ove masine koriste dvo-adresni format instrukcija

Registar-plus-Memorija arhitektura
Operandi se nalaze u memoriji ili u registrima. Sva tri operanda se mogu nezavisno specificirati (tro-adresni format). Kod dvo-adresnih formata, adresa jednog od izvornih operanada mora da bude i odredisna.

19

Tehnike za U/I prenos podataka se dele na sledee tri grupe: Programirana U/I tehnika Pragrammed I/O technique Prekidna U/I tehnika Interrupt I/O technique Direktni pristup memoriji - DMA (Direct Memory Access) Programirana U/I i prekidna U/I tehnika se obavljaju pod programskom kontrolom, dok se DMA obavlja pod hardverskom kontrolom

U/I tehnike za prenos podataka

Programirani U/I prenos


Ova opcija postoji skoro kod svih racunara. Posebno je korisna kod sporih sistema gde je jako vazno minimizirati cenu hardvera. Ova tehnika zahteva da se sve U/I operacije izvrsavaju pod direktnom kontrolom CPUa. Obicno se prenos ostvaruje izmedju nekog od registara CPUa I baferskog registra koji je sastavni deo U/I uredjaja. U/I uredjaj nema direktan pristup glavnoj memoriji. Prenos podataka izmedju U/I I glavne memorije se ostvaruje tako sto CPU izvrsi nekoliko instrukcija. Prvo se podatak iz U/I uredjaja prenosi u neki od registara CPUa a zatim upisuje u glavnu memoriju. Dodatno su potrebne jos dve instrukcije, jedna za izracunavanje adrese memorijke lokacije a druga za brojanje reci podataka koje se prenose. Kada processor u toku programske sekvence izvrsi U/I naredbu, on u sustini izda naredbu U/I interfejsu. Kod programirane U/I tehnike , U/I interfejs obavlja tacno odredjenu akciju a zatim postavlja odgovarajuci bit u U/I registru. U/I dalje ne generise zahtev za prekid vec CPU perodicno proverava status U/I interfejsa dok ne ustanovi da je operacija zavrsena. Da bi izvrsio U/I naredbu, CPU generise adresu koja odredjuje svaki U/I interfejs I U/I uredjaj ali takodje zadaje I U/I komandu. Postoji 4 tipa U/I komandi koje, kada CPU posalje, U/I interfejs moze da primi a to su: a) Upravljacka: koristi se za aktiviranje periferalije I ukazuje sta ona treba da uradi. Zavisi od tipa perifernog uredjaja. b) Test: koristi se za testiranje razlicitih statusnih uslova koji se odnose na U/I interfejs periferale. Sta se testira: npr. Da li je neki peripheral prikljucen na napajanje, da li je tekuca operacija zavrsena, da li se javila greska itd. c) Citanje: koristi se da U/I interfejs dobije podatak od periferala I smesti ga u interni bafer. Nakon izdavanjakomande, CPU prihvata podatak koga U/I interfejs postavlja na magistralu podataka. d) Upis: uzrokuje da U/I interfejs prihvati podatak sa magistrale podataka a zatim preda taj podatak periferalu.

20

Adresiranje U/I uredjaja: U/I uredjaji se povezuju na sistemsku magistralu preko odgovarajucih U/I interfejsa, tj. Kontrolera U/I uredjaja. Kod mikroracunara se za adresiranje U/I uredjaja koriste dve metode: 1. Memorisko preslikani U/I I 2. Izdvojeni U/I. Kod Memorijsko preslikanog U/I-a adresni proctor za memorijske lokacije I U/I uredjaje je jednistven. Drugim recima, linije za upis I citanje koje pripadaju upravljackoj magistrali su jedinstvene. Naredbe koje se koriste su iste, nezavisno da li se prstupa memoriji ili U/I-u. Izdvojeni U/I ima odvojene prostore za memoriju I U/I tj. Jedna grupa linija uravljacke magistrale se koristi za upis ili citanje memorije a druga za U/I. Kod ovog pristupa U/I upravljacke linije na magistrali se aktiviraju posebnim komandama. Tipovi programiranog U/I prenosa Postoje dva tipa programiranog U/I: Bezuslovni U/I prenos karakteristike su sledee: Koristi se tamo gde je vreme odziva spoljnih perifernih uredjaja poznato i stalno. Uredjaji moraju biti spremni za prenos podataka u trenutku izvodjenja U/I naredbe. Prenos se lako izvodi. Uslovni U/I prenos karakteristike su sledee: U toku prenosa mikroraunar ispituje status U/I. Ako U/I uredjaj nije spreman programski se ispituje njegov status sve dok se ne ispuni uslov za predaju ili prijem. Ovakav tip prenosa koristi se na onim mestima i u onim sluajevima gde se ne sme preuzeti akcija ako prethodno nisu ispunjeni neki uslovi. Nedostaci programiranog U/I prenosa: Brzina prenosa je ograniena brzinom sa kojom CPU moe da testira i opsluuje U/I uredjaje Vreme koje CPU potroi na testiranje statusa U/I uredjaja kao i vreme koje je potrebno da se obavi prenos podataka esto je mogue efikasnije iskoristiti

21

Prekidna U/I tehnika Kod prekidne U/I tehnike prenos podataka se inicira od strane U/I uredjaja koji signalaizira CPU-u kada je spreman za prenos podataka. Ne postoji vie potreba za permanentnim stalnim testiranjem statusa U/I uredjaja. Osnovni mehanizam rada je isti kao kod programirane U/I tehnike: CPU razmenjuje podatke sa U/I uredjajem preko svojih registara. Drugim recima: sastavni deo U/I interfejsa su jos uvek portovi za podatke, upravljanje I statusni. Za razliku od programirane U/I tehnike, gde je iniciranje procesa prepusteno CPUu pa U/I program mora cesto da analizira stats U/I uredjaja, kod prekidne U/I tehnike prenos podataka inicira U/I uredjaj koji koristi prekidni mehanizam da obavsti CPU o svojoj spremnosti.. U/I koristi iste prekindne mehanizmekada je potrebano da CPU obrati paznju na njega iz drugih razloga, npr. Kada se javi greska, da ukase na zavrsetak lokalne operacije itd. Dva osnovna problema kod ove tehnike: 1. Kako CPU odredjuje koji uredjaj je zahtevao prekid? 2. Koji zahtev ima prednost kada se javi vise zahtva od jednom? (1.) Prihvatanje adrese za obradu prekida U odnosu na nain kako CPU odredjuje adresu uredjaja koji je izazvao prekid razlikujemo dva tipa prekida: Vektorski prekidi U/I uredjaj predaje prekidni vektor koji se koristi da generie poetnu adresu rutine za obradu tog prekida. Vektor moe da predstavlja potpunu ili parcijalnu adresu. Korisni su kod CPU-ova koji primaju zahteve za prekid od nekoliko uredjaja preko iste uprvaljake linije Nevektorski prekidi U/I uredjaj predaje zahtev za prekid CPU-u aktiviranjem linije IRQ Kada je CPU spreman da procesira zahtev on aktivira signal IACK kojim ga obavetava da je prihvatio zahtev za prekid (2) etiri poznate kategorije prihvatanja zahteva za prekid kada istovremeno naidje vei broj zahteva za prekid su: 1. Veci broj prekidnih linija. Najjednostavniji nacin da se resi problem prihvatanja zahteva za prekid je da se obezbedi veci broj prekidnih linija zmedju CPU i U/I interfejsa. U ovom slucaju je potrebno svakom zahtevu za prekid dodeliti jedinstveni prioritet prei cemu ce svaki izvor prekida biti poznat CPUu. => CPU odredjuje kojoj ce liniji dodeliti najveci prioritet. Neprakticno resenje jer zahteva veliki broj veza. 2. Softversko kruno ispitivanje Jednostavan nain za usluzivanje prekida. U ovom sluaju je vei broj U/I ureaja povezano na vei broj U/I interfejsa. => Prioritet opsluivanja se odreuje softverskim kruznim ispitivanjem. Nedostatak: dugo traje

22

3. Lananje i vektorksko prekidanje Lancanje: Hardverski se odredjuje prednost uredjaja na osnovu aktivacije odgovarajuce linije. Ukoliko se desi da dva interfejsa istovremeno izdaju zahtev za prekid, prvi ce biti usluzen onaj koji je blii mkroprocesoru. => Prioritet se odredjuje fizickom pozicijom ploce u sistemu. Prednosti: jedinstven nacin identifikacije, ne zahteva dodatni hardver a postojeci se lsko prosiruje i preuredjuje. Nedostaci: ima mogucnost prosirivanja I preuredjivanja samo hardvera, prioritet opsluzivanjaje odredjen fizickom pozicijom, zahteva dodatno vreme. Vektorsko prekidanje: Unapredjena verzija metode lancanja da bi se smanjilo vreme prekoracenja kod procesa kruznog opsluzivanja. => Svakoj INTR liniji je dodeljen prioritet. 4. Magistralno arbitrazni metod Koristi vektorski prekid sa logikom tipa kodera prioriteta. Samo jedan U/I interfejs ima pravo upravljanja nad magistralom u jednom trenutku.

Direktni pristup memoriji DMA


Nedostaci Programirane i Prekidne U/I tehnike su vezani za cinjnicu da CPU aktivno ucestvuje u toku U/I procesa. Kada periferija predaje podatak, CPU ga preuzima i smesta u memoriju. Kada je periferija spremna da preuzme podatak, CPU ga cita iz memorije a nakon toga ga predaje U/I interfejsu. 1. Brzina U/I odredjena je brzinom rada CPUa 2. CPU upravlja U/I prenosom pa je za svaki prenos potrebno izvrsiti veci broj naredbi. Direktni pristup memoriji obezbedjuje direktan prenos podataka izmedju periferija i RAM-a bez aktivne intervencije CPUa. Osnovne karakteristike ove tehnike su: 1. Prenos se ostvaruje bez programskog upravljanja 2. Brzina prenosa je velika i odredjena je memorijskim ciklusom (reda je 2 megabajta u sekundi) 3. Prenos se realizuje kao blokovski Za razliku od prethodne dve tehnike gde je CPU akumulirao podatke i tek posto se formira blok podataka, redavao ga izlaznom uredjaju, kod DMA se podaci ne cuvaju u CPUovim registrima na putu ka/iz memorije vec U/I interfejs cita/upisuje podatke direktno iz/u memoriju. U/I uredjaj se na sistem povezuje preko DMA kontrolera, specijalnog interfejs kola koji se ponasa kao sluga (slave) prema CPUu i prima instrukcije od strane CPUa. DMA kontroler se sastoji od ulazno/izlanih bafer podataka, generatora adresa, brojaca prenetih podataka i upravljacke jedinice.

23

DMA rad: 1. CPU inicira DMA kontroler koji tada spreman za prenos podataka 2. U/I uredjaj obavestava DMA kontroler kada je spreman za rad. 3. DMA kontroler pocinje sa prenosom podataka 4. DMA kontroler obavestava CPU kada je proces zavrsen (obicno se koristi u tu svrhu prekid) Tipovi DMA prenosa 1. Podela u zavisnosti od nacina realizacije DMA prenosa: a. Kradja ciklusa: DMA kontroler koristi sistemsku magistralu na princiu kradje magistralnih ciklusa mikroprocesoru. Okupiranje I oslobadjanje magistrale se sinhronizuje sa mikroprocesorom. Koristi se kod relativno sporih prenosa podataka. b. Normalni: DMA kontroler koristi celu sistemsku magistralu u toku trajanja celokupnog vremena koje je potrebno za prenos bloka podataka a mikroprocesoru je zabranjen pristup magstrali za taj duzi vremenski period. Koristi se za veoma brz prenos podataka. Nedostatak: mikroprocsor je duze vreme pasivan. Resenje: Podaci se salju u odredjenom broju podblokova specificiranih duzina da bi CPU imao pristup magistrali za hitne operacije nakon svakog prenesenog podbloka. Ovaj princip se zove BURST (paketni) DMA. c. Transparentni: DMA kontroler koristi sistemsku magistralu kada je mikroprocesor ne koristi, bez sukobljavanja. Ovo se ostvaruje kada je vreme pristupa memoriji kratko ili kada se koriste specijalni magistralni slotovi koji u datom trenutku nisu potrebni CPUu. Koristi se I za brzi I za spori prenos kod odredjenih vrsta magistrala. 2. U zavisnosti od nacina hardverske realizacije DMA kontrolera, prenos na sistemskoj magistrali moze biti:. a. Direktni: ostvaruje se izmedju U/I podsistema I memorije b. Indirektni: DMA kontroler je sklop koji sluzi da privremeno prihvati podatak tipa bajt ili rec koji se prenosi izmedju U/I podsistema I memorije. Nedostatak: prenos svakog podatka se realizuje za vremenski period od dva magistralna ciklusa. 3. U zavisnosti od smera prenosa podataka, razlikujemo sledece tipove DMA prenosa: a. DMA IN: prenos tipa U/I podsistem => memorija b. DMA OUT: prenos tipa memorija => U/I podsistem c. DMA MEMORY TO MEMORY: prenos tipa memorija => memorija Mana DMA: implementacija DMA tehnike zahteva ugradnju relativno komplikovanog hardvera.

24

Kada se govori o arhitekturi raunara definiu se tri osnovna i razliita nivoa apstrakcije: arhitekturni specificira funkcionalno ponaanje procesora, implementacioni odnosi se na logiku strukturu ili organizaciju koja vai za tu arhitekturu, i realizacioni predstavlja fiziku strukturu u koju se ugradjuje ta implementacija Arhitektura Arhitektura se esto naziva ISA. ISA se koristi kao interfejs izmedju softvera i hardvera, ili izmedju programa i procesora. ISA specificira skup instrukcija koji karakteriu funkcionalno ponaanje unapred definisanog skupa instrukcija. Sav softver se mora preslikati ili kodirati u ovaj skup instrukacija kako bi mogao da se izvrava od strane procesora. Svaki program se kompajlira u sekvencu instrukcija koje pripadaju tom skupu. Tipini primeri arhitektura su IBM 360, DEC VAX, Motorola 68k, Power PC, IA 32, i dr. Atributi koji prate arhitekturu su asemblerski jezik, format instrukcija, adresni nain rada, i programski model. Implementacija Implementacija predstavlja specifini dizajn arhitekture koja se naziva mikroarhitektura. U toku ivota, jedna ISA arhitektura moe da ima vei broj implementacija, pri emu sve implementacije izvravaju programe za tu ISA. Primeri implementacija poznatih arhitektura su IBM 360/91, VAX 11/780, Motorola 68040, PowerPC 604, Intel P6. Atributi koji su tipini za implementaciju su protoni dizajn, ke memorija, i prediktori granjanja. Implementacija se ostvaruje na nivou hardvera i nevidljiva je softveru. Realizacija Realizacija implementacije se odnosi na fiziko ugradjivanje dizajna. Kada se govori o mikroprocesorima tu se pre svega misli na to da li je to fiziko ugradjivanje sprovedeno na ipu ili multiipu. Za datu implementaciju postoji vei broj relizacija. Realizacije se mogu razlikovati u odnosu na taktnu frekvenciju, kapacitet memorije, interfejs magistrale, pakovanje i dr. Atributi koji prate realizaciju su povrina ipa, disipacija, hladjenje, pouzdanost, i dr. Projektovanje mikroprocesora- ta definie ISA ? ISA definie skup instrukcija nazvan asemblerske instrukcije. Svaka instrukcija specificira operaciju i jedan ili vei broj operanada. Svaka ISA na jedinstven nain definie asemblerski jezik. Program na asemblerskom jeziku ini sekvenca asemblerskih instrukcija. Uglavnom ISA se medjusobno razlikuju po tome koliki se broj operanada specificira instrukcijom. Postoje 3-, 2-, 1-, i 0-adresne maine.

Arhitektura raunara tri nivoa apstrakcije

RISC arhitekture

25

RISC je skraenica od Reduced Instruction Set Computer to znai procesor sa redukovanim skupom naredbi broj naredbi reda 100 CISC je skraenica od Complex Instruction Set Computer to znai procesor sa sloenim skupom naredbi broj naredbi reda nekoliko stotina (600 800) Prelazak sa CISC na RISC CISC koncepti RISC i CISC koncepti predstavljaju dve kole koje se odnose na ISA Osnovne arhitekturne karakteristike klasinih CISC procesora su: Ranije CISC arhitekture imale su: Jedinstveni ke u kome se uvaju instrukcije i podaci. Isti put za podatke/instrukcije i koristile malo registarsko polje (RF-register file). Mikroprogramski upravljanu memoriju za implementiranje velikog skupa naredbi Arhitektura kod koje postoje posebni putevi za pristup podacima i instrukcijama naziva se Harvard arhitektura

CISC I RISC

Klasini RISC procesor

veliko polje registara (large registar file)

upravl ja~ka jedinica sa direktnim upravl janjem (hardwired control unit)

staza podataka (data path)

instrukcioni ke{ (instruction cashe)

ke{ podataka (data cashe)

instrukcije podaci (instruction) (data) glavna memorija (main memory)

26

Noviji CISC procesori kakvi su MC68030 i MC68040 koriste: Posebne keeve za podatke i instrukcije. Reenja koja se okreu ka direktnom upravljanju Klasini CISC procesori koriste jedinstveni put za pristup memoriji podataka i memoriji instrukcija. Ovakav tip arhitekture se naziva Princeton arhitektura

malo polje registara (small registar file )

Klasini CISC procesor


instrukcija/staza podataka instruction/data path

upravl ja~ka jedinica (control unit )

upravlja~ka memorija (control memory )

jedinstveni ke{ (unified cashe)

glavna memorija (main memory )

Prelazak sa CISC na RISC RISC koncepti Keevi za podatke i instrukcije su izdvojeni, a takodje su razliiti i putevi preko kojih se pristupa ovim memorijama (Harvard arhitektura) Kod RISC-ova se koristi registarsko polje neto veeg obima Upravljaka jedinica je bazirana na direktnom upravljanju. Mogue je postii CPI reda jedan ciklus.

27

Smernice razvoja kod CISC-ova Reprezenti su procesori iz serije Intel x86, Motorola MC 68xxx, Digital VAX serija, i neke IBM maine. Porast skupa instrukcija je bio stimulisan popularnou mikroprogramskog upravljanja 60-tih i 70-tih godina prolog veka. Jedan tipian CISC procesor ima vie od 300 instrukcija. Koriste promenljive formate instrukcija/podataka, pri emu obim tipinih rei mo`e biti 8-, 16-, 32-, i 64-bita. Koristi se relativno mali skup registara opte namene, od 8 do 24. Postoji veliki broj operacija obraanja memoriji, koje koriste na desetinu adresnih naina rada (oko 20), ukljuujui indeksno i indirektno adresiranje. Skoro svi veliki proizvodjai mikroprocesorskih ipova imali su znaajne investicije u razvoju CISC arhitektura od kasnih 60-tih do pojave prvih RISC ipova Razlika izmedju CISC i RISC pristupa u pogledu memorije Protona obrada kod CISC maina kada se vreme pristupa memoriji u toku faze IF obavljalo za vei broj ciklusa CISC procesori kod kojih se vreme pristupa memoriji u toku faze IF obavlja za jedan ciklus Tajming RISC procesora pod uslovom da ne postoje zavisnosti

28

Broj i inamena internih registara u velikoj meri varira u zavisnosti od rahitekture pa se njihov broj i kapacitet drdjuje na osnovu velikog broja kompromisa. Inerni registri mogu da budu opsti i registri specijalne namene. U registrima opste namene se cuvaju lokalne i globalne promenljive, pokazivaci, parametri i rezultati kojima se moze brzo pristupiti pa je zbog oga dobro da ih ima puno. Problem koji se javlja u radu sa registrima opste namene je da se cesto javlja vremensko prekoracenje. Projektanti koriste softverska ihardverska resenja za manipulaciju sa sadrzajem velikog broja internih registara tj. RF poljem. Dodela registara se vrsi softverski u procesu povezivanja progra ma. Sa druge strane, hardverske tehnike se oslanjaju na tehniku rada sa registarskim prozorima. Ovom prilikom se RF polje deli na nekoliko banaka pri cemu se banka dodeljuje kod svakog poziva a oslobadja pri povratku iz procedure. Banke su organizovane u obliku kruznog bafera. Kada se zahteva banka koja je prethodno dodeljena , da nebi doslo do dopisivanja preko prethodno zapamcene informacije, procesor smesta prethodnu informaciju u memorije (prekoracenje prozora). Kod povratka, prethodno memorisan sadrzaj registarske banke procesor puni iz memorije (podbacaj prozora). Softversk tehnika za pamcenje sadrzaja registara po definiciji cini da hardver bude jednostavan. Ipak, kada se gleda celovit problem, treba istaci sledece: (a) Povezivanje programa kod RF polja se u ovoj tehnici je brzo a dinamicko linkovanje se lako ostvaruje. (b) Potreban je veci broj bitova za identifikaciju operanada zbog veceg broja adresibilnih registara. Dve tehnike za rad sa prozorima: Rad sa prozorima fiksne i promenljive duzine. Kod rada sa fiksnim prozorima projektant prozora je taj kojidefinise broj prozora po banci dok kod rada sa prozorma promenljive duzine, softverski se specificira obim banke i trenutak dodele.

Model i rad sa prozorima

29

Primer: RF polje se sastoji od 138 registara. Fizicki registri od 0 do 9 su globalni registri i dele se od strane svih procedura. Svaki proces za sebe vidi skup logickih registara od 0 do 31. Logicki registri od 26 do 31 su deljivi izmedju tekuce procedure i procedure roditelj a logicki registri od 10-15 su deljivi izmedju tekuce procedure i procedure naslednik. U jednom trenutku vidljiv je samo jedan prozor registara i adresno je dostupan kao da je sve to jedinstveni skup registara. Prozori su podeljeni u tri oblasti fiksnih duzina: Parametarski registri se koriste za cuvanje parametara koji se prenose iz procedure roditelj u tekucu proceduru i obrnuto. Lokalni registri se koriste za cuvanje lokalno promenljivih i dodeljuju se od strane kompilatora. Privremeni registri se koriste za razmenu parametara i rezultata izedju tekuce procedure i procedure naslednika. Privremeni registri na jednom nivou su fizicki gledano isti kao i parametarski registri na narednom nizem nivou sto omogucava da se parametri izmedju procedura prenose bez stavrnog kopiranja podataka iz jednih lokacija u druge. Da se ne bi desilo da broj prozora treba da bude neogranicen, registtarski prozori se koriste za cuvanje samo najskorije aktiviranih procedura. Kada se kruzni bafer popuni, stanje se cuva u memoriji a kasnije se to stanje vraca u bafer kada se tokom vremena dubina gnezdjenja smanjuje. Zbog toga je stvarna organizacija registarskog polja izvedena kao kruzni bafer sa prozorima koji se preklapaju.

Prozori fiksnog obima

U ovom lsucaju se u globalnom registru cuva informacija o tekucoj poziciji prozora. Njegova vrednost se povecava za vrednost zeljenog registra pri svakom obracanju prozoru a zatim dovodi na ulaz dekodera koji selektuje zeljeni registar. Jedina instrkcija koja se koristi u radu sa ovim prozorima je operacija pomeranja. Kod poziva procedure procedura roditelj azurira sadrzaj (pozitivni pomeraj) tekuceg pokazivaca prozora kako bi ukazao na prvi parametar koji se predaje. Negativni pomeraj odgovara povratku iz procedure. Nakon poziva procedura moze da pristupa registrima tekuceg prozora na osnovu sadrzaja pozivaca prozora.

Rad sa prozorima promenljive duzine

30

Protonost (pipelining) je standardna hardverska tehnika koja se kod raunara koristi za postizanje boljih performansi. Kada se govori o izvrenju instrukcija ono se ostvaruje na taj nain to se obrada instrukcije deli na vei broj fiksnih koraka koji se izvravaju sekvencijalno. Protonu realizaciju funkcije ine nekoliko hardverskih stepena S1, ...., Sn, medjusobno razdvojenih leevima.Kako instrukcija prolazi kroz protoni sistem, hardver svakog stepena obavlja odredjeni tip obrade.Kada instrukcija napusti protoni sistem ona je u potpunosti izvrena. Dobre performanse kod protone obrade postiu se zahvaljujui paralelizmu. Paralelizam se odnosi na istovremenu obradu nekoliko insrtrukcija od kojih se svaka izvrava u razliitom stepenu.

Protona obrada instrukcija

Izvrenje instrukcije ini sekvencu akcija. Akcije se specificiraju semantikom instrukcije. Neke od karakteristinih akcija, koje se obino u toku izvrenja instrukcije javljaju, su: Pribavljanje instrukcije IF (Instruction Fetch) Dekodiranje instrukcije ID ( Instruction Decode) Pribavljanje operanada OF (Operands Fetch) Izvrenje instrukcije EX (Instruction Execution) Pristup memoriji ME (Memory Access) Upis rezultata WB (Write-Back) ...

Podela izvrenja instrukcije

31

Premoavanje kod protone obrade

Premoavanje predstavlja tehniku pomou koje je mogue poboljati performanse kod protone obrade.

Na slici su prikazana 4 puta za premoscavanje. Tri puta dovode na ulaz stepena EX a cetvrti na ulaz stepena ME. Ovim se, naravno, usloznjava strukturaprotocnog sistema kako sa aspekta upravljanja tako i ugradnje dodatnih multipeksera ali se postizu znacajni rezultati u povecanju brzine rada. Ova metoda moze dovesti i do zastoja u radu protocnog sistema jer se rezultat neke instrukcije moze koristiti tek nakon upisivanja u neki od registara RF polja. Ipak, neki od zastoja se mogu eliminisati ili redukovati ako se obezbedde specijalni putevi za brzo premoscavanje podataka izmedju dva stepena.

Zavisnosti kod protone obrade


Zavisnost je okolnost koja potencijalno spreava da CPU izvrava instrukciju svojom maksimalnom specificiranom brzinom. Kada protoni sistem izvrava dve instrukcije izmedju kojih postoje zavisnosti tada moe da dodje do zastoja ili nekorektnog rada sistema pa se takva situacija naziva hazard (opasna situacija). Hazardi se uglavnom javljaju zbog medjusobne zavisnosti dve instrukcije kada su one u redosledu izvrenja suvie bliske jedna drugoj Zavisnost moe da dovede do hazarda, ali ne mora Tri klase zavisnosti/hazarda Strukturni nastaju zbog konflikta kod korienja resursa, tj kada dve ili vie instrukcija koje se nalaze u razliitim fazama obrade zahtevaju angaovanje istog hardverskog resursa Po podacima tipino ih sreemo u situacijama kada dalje izvrenje instrukcije zavisi od rezultata koji generie prethodna instrukcija Upravljaki uslovljeni su od strane instruikcija grananja i svih drugih instrukcija koje menjaju sadraj programskog brojaa (PC) Performansne mere protoni sistem

32

Osnovna ideja protone obrade je da se ostvari preklapanje u izvrenju izmedju sukcesivnih instrukcija ime se tedi na vremenu i poveava propusnost. Skoro svi dananji savremeni procesori koriste tehniku protone obrade ime na jedan indirektan nain postiu bolje performanse u odnosu na strogo sekvencijalno izvrenje. Definiimo dva pojma koja se odnose na protoni dizajn: Protoni ciklus (alternativni pojmovi su procesorski ciklus ili taktni period): perioda taktnog signala, Cp kojim se pobudjuje protoni sistem. Perioda je odredjena od najdueg vremenskog kanjenja potrebnog da se izvri jedna operacija kroz neki od protonih stepena. Tekui protoni procesori operiu sa procesorskim ciklusom koji je reda od 200 ps - 20 ns (tj. 5 GHz 50 MHz) Latencija iniciranja instrukcija: broj procesorskih ciklusa izmedju iniciranja dve susedne instrukcije u programskoj sekvenci. broj procesorskih ciklusa Broj procesorskih ciklusa potreban za procesiranje sekvence od k instrukcija iznosi broj_procesorskih_ciklusa = broj_procesorskih_ciklusa_da_se_generie_prvi_rezultat + broj_instrukcija_u_sekvenci - 1 = n + k -1 gde je: n-broj protonih stepeni, a k - duina sekvence instrukcija. Broj procesorskih ciklusa po instrukciji (CPI) iznosi: CPI = (n + k - 1) / k = 1 + (n - 1) / k kada k 1, tada CPI n, a u slucaju kada k , tada CPI 1, to znai da se CPI nalazi u granicama 1 < CPI < n. Ubrzanje Ubrzanje (speedup) protonog sistema u odnosu na neprotoni sistem se definie kao S pro = T neprotocno / T protocno = n * k / (n + k - 1) , to znai da S pro n, kada k Vaan faktor koga treba uzeti u obzir kod procene performansi predstavlja dodatno kanjenje koje unosi svaki le u lancu. Vreme potrebno protonom stepenu da procesira podatak jednako je zbiru T ci + T ri , gde je: T ci - vreme procesiranja signala od strane stepena Si, a T ri - predstavlja kanjenje koje unosi le Li . Zbog uticaja kanjenja koje unosi le ubrzanje realnog protonog sistema bie dato sledeom relacijom S pro = (( n - ) * k)/ ( k + n - 1) to znai da S pro n - , kada k gde je: prekoraenje usled T ri , tj. prekoraenje usled dodatnog vremena, svakog protonog stepena, potrebnog da se ostvari sinhronizovan rad. efikasnost Efikasnost protonog sistema koji obavlja izraunavanje (ili niz izraunavanja) se definie kao E ideal = S pro / n = (n * k) / ( n2 + n * k - n)

33

Odmotavanje petlji
Petlje ine znaajni deo programskih sekvenci. Od velike vanosti je eliminisati zastoje koji se javljaju u toku njihovog izvrenja. U cilju postizanja vee brzine izvrenje programa vri se odmotavanje petlje (loop unrooling). Ako se petlja odmota n puta dobija se n kopija tela petlje , a na kraju programske sekvence postoji instrukcija bezuslovnog grananja Branch. Vrednosti koje su funkcije indeksa petlje, kao to su adresni indeksi, uskladjuju se kod svake od n kopija. Na ovaj nain smanjuje se broj grananja, a time se ubrzava izvrenje programa Problem: ako je n veliko, telo petlje ce praviti veliki broj instrukcija pa I memorija mora imati veliki kapacitet. Resenje: omotavanje petlji se vrsi u grupama (dve iteracije cine jednu grupu)

Superskalarne i superprotocne masine

Superskalarne masine mogu da iniciraju izvrsenje nekoliko instrukcija po ciklusu Superprotocne masine mogu da iniciraju izvrsenje samo jedne instrukcije po ciklusu ali je vreme ciklusa znatno krace u odnosu na latenciju funkcionalne jedinice. Uvodjenje paralelizma na nivou instrukcija je znacajno uticalo na poboljsanje performansi Parametri masine: Instrukciono protocni ciklus taktni period kod protocnosti instrukcija Latencija iniciranjaizvrsenja instrukcija broj ciklusa izmedju iniciranja izvrsenja dve susedne isntrukcije Konflikti kod koriscenja resursa kada dve ili vise instrukcija zahteva koriscenje jednog resursa Jednostavne operacije Operativna latentnost vreme ( u ciklusima) dok rezultat ne bude dostupan na koriscenje kao operand u sledecoj instrukciji. Klasa instrukcija grupa instrukcijakoja u toku izvrsenja koristi istu funkcionalnu jedinicu Osnovna skalarna masina Da bi obro procenili performance masina koje koriste paralelizam na nivou instrukcija, definisacemo osnovnu skalarnu masinu koja se karakterise sledecim: Broj instukcija po ciklusu cije izvrsenje inicira = 1 Latencija iniciranja jednostavnih instrukcija u ciklusima = 1 Latencija izmedju iniciranja izvrsenja instrukcija u ciklusima = 1 Kod ove masine nikada ne dolazi do: blokiranja operativne latentnosti, zastoja ili do umetanja operacije tipa Nop.

Izvrsavaju jednu instrukciju po ciklusu: izvrsi se jedno iniciranje I ocekuje se jedno izvrsenje. Superskalarni procesori baziraju svoj nacin rada na koriscenju vestacke instrukcione protocnosti sto znaci da se po jednom ciklusu inicira izvrsenje veceg broja instrukcija a isto tako generise veci broj rezultata.

Superskalarne masine

34

Ovi procesori koriste veci nivo paralelizma na nivou instrukcija. Superskalarna masina ce imati sledece karakteristike: Broj instrukcija cije se izvrsenje inicira po ciklusu jednako je n Latencija jednostavnih instrukcija merena u ciklusima jednaka je 1 Paralelizam na nivou instrukcija potreban da bi se u potpunosti dobilo iskoriscenje masine je n

VLIW (Very Long Instruction Word) masine imaju instrukcije velikog obima (stotinu I vise bitova). Svakom instrukcijom se moze specificirati veci broj operacija tj. Tezi se ka eksploatisanju paralelizma na nivou instrukcije. Sve aktivnosti se odredjuju u toku kompilcije tako dasu svi konflikti predvidjeni a instrukcije u hardveru se tako formiraju da do konflikta ne moze da dodje. Tri osnovne razlike izmedju VLIW I superskalarnih masina: 1. Dekodiranje VLIW instrukcija je jednostavnije jer su fiksnog formata pa ne moze da dodje do premasivanja raspolozivih resursa. Kod VLIW masina se odlucue koja ce sledeca operacija da bude izvrsena u toku kompajliranja sto ID logiku ove masine cini jednostavnijom. 2. Zbog fiksnog formata VLIW instrukcija nije pogodno koristiti VILW masine u slucajevima kada je dostupnost paralelizma niza od one koja se moze eksploatisati ovom masinom. U takvim slucajevima pakovanjekoda je mnogo pogodnije kod Superskalarnih masina jer nemapraznog prostora zbog fiksnog formata instrukcija. 3. Superskalane masine su objektivno kodno kompatibilne sa velikim brojem ne paralelnih masina don VILW masine koriste razliciti iznos paralelizma pa zbog toga I poseduju razlicite skupove instrukcija

VLIW masine

You might also like