You are on page 1of 36

- 1. ?

. Aspekt arhitekture raunarskih sistema tretira problem organizacije i strukture kontrolnih funkcija, procesnih elemenata, memorijskih modula, te sistema poveziva a. Arhitektura u osnovi definie podlogu za procesiranje/obradu i time odreuje mogunosti programske nadogradnje. Prvu klasifikaciju raunarskih sistema dali su J.C.Murtha i R.L.Beadless (1964), a zatim Flynn (1966) L.C.Hobbs i D.J.Theis (1970). Najpoznatija i najee koritena klasifikacija je Flynn-ova koja kategorizuje raunarske sisteme na osnovu odnosa instrukcionog toka i toka podataka na: SISD maine sa jednim tokom instrukcija i jednim tokom podataka, SIMD maine sa jednim tokom instrukcija i viestrukim tokom podataka, MISD maine sa viestrukim tokom instrukcija i jednim tokom podataka, MIMD - maine sa viestrukim tokom i instrukcija i podataka. Feng (1972) predlae klasifikaciju na bazi duine rijei i broja rijei koje se procesiraju paralelno. Konzistentnu klasifikaciju daje W.Handler na bazi razlikovanja tri nivoa procesiranja: nivo programske kontrolne jedinice (PCU) koja interpretira instrukcije, nivo aritmetiko-logike jedinice (ALU) koja izvodi aritmetiko-logike operacije, i nivo elementarnih logikih sklopova (ELC) koji izvode elementarne operacije.
2. .

Razliiti koncepti u arhitekturama raunarskih sistema proizlazili su iz razliitih koncepata identifikacije i eksploatacije paralelizma i tehnolokih mogu nosti realizacije tih koncepata. Postojanje paralelizma znai mogunost da se odreena raunanja mogu procesirati istovremeno. Paralelizam postoji i moe se detektovati i eksploatisati na vie hijerarhijskih nivoa. Na najviem nivou moemo posmatrati paralelizam izmeu programa-aplikacija (meuprogramski paralelizam). Svaki program moemo posmatrati i kao ureen skup zadataka izmeu kojih postoje relacije prethoenja i izmeu kojih moe postojati izmjena podataka (izlazne podatke iz jednog zadatka drugi zadatak koristi kao ulaz). Kao nie nivoe moemo identifikovati proceduralni nivo, nivo programskih petlji ili grupa instrukcija, instrukcioni nivo i nivo elementarnih operacija.
3. .

Koncept protone obrade se sastoji u tome da se neka operacija razdijeli u sekvencijalni niz podoperacija, pri emu se svaka podoperacija realizuje u specijalizovanom hardverskom sklopu (protonom stepenu). Niz ovih hardverskih segmenata ini protoni sistem. Kroz proto ni sistem se proputa tok podataka. Svaki podatak se parcijalno obrauje u svakom protonom stepenu, a procesiranje podataka 1-4

(kompletiranje operacije) se zavrava po izlasku procesiranog podatka iz proto nog sistema (odreene varijacije postoje u smislu blokiranja odreenih segmenata pri prolazu podatka kroz protoni sistem, mogunosti premoavanja ). Sukcesivni podaci se obrauju tako da se pojedine faze njihove obrade preklapaju u razliitim proto nim stepenima. Protoni stepeni mogu implementirati jednu ili vie funkcija (multifunkcionalni protoni stepeni).
4.

5. Von Noeman- .

Von-Noemanova arhitektura raunara je izvanredno strukturirana na najviem nivou apstrakcije predstavlja se jednostavnim i razumljivim dijagramom.

MEMORIJA

I/O

CPU

2-4

Memorija promjenljivog sadraja, sadri ne samo podatke/rezultate raunanja, nego i program (skup instrukcija/akcija) koji se izvodi. Ovaj koncept je omoguio univerzalnost i jednostavnost primjene raunara: novi aplikativni zadatak moe da se izvede na raunaru samo punjenjem drugog programa u memoriju i pokretanjem njegovog izvrenja. Centralna procesna jedinica (CPU) dobavlja instrukcije iz memorije i izvodi ih jednu za drugom. Instrukcije sadre informacije kako o vrsti operacije/akcije, tako i o operandima nad kojima se akcija izvodi.
6. () CPJ,

CPJ.

Osnovna funkcija CPJ je da izrava program smjeten u glavnoj memoriji. Osnovni funkcionalni blokovi CPJ su upravljaka jedinica i izvrna jedinica (u literaturi poznata i kao staza podataka data path). Upravljaka jedinica vri pribavljanje instrukcija iz memorije, njihovo dekodiranje i generisanje upravljakih signala za izvrnu jedinicu (pribavljanje podataka i instrukcija iz memorije se moe realizovati i posebnom funkcionalnom jedinicom). Izvrna jedinica izvrava operacije predviene datom instrukcijom. Podaci u okviru CPU cirkuliu jednom ili vie skupina linija internih magistrala.
7.

. Izvrna jedinica sadri aritmetiko-logiku (ALU) i druge funkcionalne jedinice za manipulaciju podacima, registre, pomjerae, generator adrese i komunikacione puteve izmeu njih. Kada postoji vie puteva podataka na ulazu/izlazu neke 3-4

komponente, neophodna su upravljaka kola za selekciju podataka na odgovarajuim putevima (upravljake take). Upravljaka taka je prekida puta podataka koja, na bazi upravljakog signala, dozvoljava ili blokira prenos podataka na odgovarajuem prenosnom putu. Na sl 3.5 dat je principijelni primjer implementacije upravlja kih taaka na ulazu/izlazu jedne funkcionalne jedinice CPU-a.

8. ?

. Upravljake take pripadaju upravljakoj jedinici, a sami putevi za prenos podataka izvrnoj jedinici. MDR (memory data register) je interni registar preko kojeg se vri upis podataka u glavnu memoriju, odnosno itanje podataka iz glavne memorije. On slui kao bafer izmeu CPJ i memorije pri prenosu podataka izmeu ovih jedinica. MAR (memory address regeister) je takoe interni registar, preko kojeg se postavlja adresa memorijske lokacije koja se referencira (za itanje ili upis). Transfer podataka iz memorije u registar se odvija u slijede im koracima: (MDR) Mem[MAR], (Rx) (MDR).
9. ?

. Skup registara CPJ, ije stanje nakon izvrenja neke instrukcije moe imati uticaja na izvrenje slijedee instrukcije naziva se programski model procesora. Registri programskog modela su: Programski brojac, Registri opste namjene,

4-4

Registri za podatke, Adresni registri (segmentni, indeksni, bazni, pokazivac steka), Statusni registri (sign, zero, carry, overflow, interrupt enable, priv. rezim).

.
10. .

Koriste se za specifikaciju adrese operanada/instrukcija. Svaka instrukcija (osim NOP), vrsi odredjene operacije nad operandima ili vrsi transfer kontrole izvodjenja programa na instrukciju cija lokacija u memoriji nije neposredno iza tekuce instrukcije. Lokacije operanada i slijedece instrukcije dobijaju se u procesu sracunavanja efektivne adrese, a ovaj proces zavisi od primijenjenog nacina adresiranja u odnosnoj instrukciji. Razumijevanje nacina adresiranja i formiranja efektivne adrese je od kljucnog znacaja za proces programiranja na asemblerskom nivou. Neki registri se u instrukcijama pri formiranju efektivne adrese koriste inherentno, a neki eksplicitno. Kod segmentnih registara adresa se formira kombinacijom sadrzaja odnosnog segmentnog registra koji pokazuje na pocetak segmenta i ofseta odstojanja od pocetka segmenta.
11. .

Pokazivac steka pokazuje na vrh LIFO steka na koji se automatski smjestaju podaci pri pozivu potprograma ili pri ulasku u process posluzivanja prekida. Takodje se stek moze koristiti za privremeno smjestanje podataka koristenjem odgovarajucih instrukcija( PUSH, PULL, POP). U ovim primjenama uloga pokazivaca je podrazumijevajuca. Ovaj registar se najcesce moze I eksplicitno specifikovati u instr. Kojima se inicijalizira ili cuva sadrzaj pokazivaca.
12. . (flags).

Ovaj registar sadrzi markere, koje se postavljaju za indikaciju rezultat prethodne operacije. Npr. Nakon izvrsenja neke aritmeticke operacije rezultat moze biti pozitivan, negativan, nula, moze se desiti prenos ili premasaj opsega. Cesto je nakon ovih aritmetickih operacija potrebno testirati rezultat izvrsenja i donijeti odluku o daljem pravcu procesiranja na osnovu rezultata testiranja. Za ovo se koriste instrukcije grananja zavisno od uslova. Ove instr. Kao ulazne parametre koriste stanje markera u statusnom registru. Standarni markeri su: Sign, oznacava znak preth. Operacije, Zero, ako je rez. 0, Carry, prenos, Overflow, ako se rez. Ne moze predstaviti raspolozivim brojem bita registra, Interrupt enable, dozvoljava/onemogucuje prekid izvrsenja programa eksternim zahtjevom,

5-4

Biti privilegovanog rezima.

13. .

Upravljacka jedinica generise signale za upravljanje svim aktivnostima u okviru CPJ, kontrolom upravljacke jedinice se vrsi dobavljanje instrukcije iz memorije, njeno dekodovanje I identifikacija operacije koju je potrebno izvrsiti, identifikacija I prenos operanada od izv. do funkcionalnih jedinica gdje se oper. izvodi, te vracanje rezultata na odrediste. Ovaj process se pod kontrolom upravljacke jedinice ponavlja pri izvodjenju svake slijedece instrukcije. Upr. Jedinica djeluje kao komandni centar iz kojeg se upravlja radom ostalih jedinica sistema, a u svrhu izvrsenja niza masinskih instrukcija. Da bi upr. Jedinica ostvarila ove zadatke, ona mora da: - obezbijedi korektan redoslijed izvrsenja instrukcija, sekvenciranje - generisanjem potrebnih signala obezbijedi izvrsenje selektovane instrukcije.
14. .

Minimalni skup kojim se moze realizovati svaki algoritam je skup koji se sastoji iz: - instrukcije ADD ONE, - DECREMENT AND JUMP IF ZERO. Pozdrazumijeva se da se iza prve instrukcije u sekv. Programi moze izvesti samo jedna, tj. Da ona ima samo jednog nasljednika, dok se nakon izvrsenja druge instrukcije, izvodi jedna od dvije moguce instrukcije. Druga instr. Spada u grupu instrukcija grananja. U praksi je broj instr. Prvog tipa znatno veci od drugog. Logika za odr. Lokacije slijedece instrukcije, nakon izv. Instr. I1 prvog tipa, je: - na osnovu oper. Koda i nacina adresiranja instrukcije i1, moze se utvrditi broj bajta w instr. I1. - ako je slijedeca instrukcija koja treba da se izvede smjestena neposredno iza i1, onda se njegova adresa moze odrediti novom vrijednoscu pc-a. PC PC+ w. Kod instrukcije grananja imamo: - na osnovu oper. Koda i nacina instrukcije i1, utvrdimo broj bajta w instr, - ukoliko je uslov test. Istinit, onda na osnovu adresnog nacina sracunamo MX, PCMX, ondosno PCPC + w.
15. .

Izvodjenje instrukcija se realizuje tako sto upravljacka jedinica generise niz upravljackih signala u pravo vrijeme I u korektnoj sekvenci, koji upravljaju radom izvrsne jedinice procesora. Signali su: interni upravljacki signali, upravljaju radom sklopova u CPU,

6-4

spoljni upravljacki singali, MR, MW, IOR, IOW, statusni signali... spoljni ulazni upravljacki signali, Reset, Ready, itd instrukcija, ukazuje na tip operacije koja treba da se obavi.

16. .

Varijante ovog tipa upr. Jedinica su upr. Jedinice zasnovane na: tabeli stanja, elementima za kasnjenje, brojackoj sekvenci.

Prilikom izvodjenja instrukcije, processor prolazi kroz niz internih stanja. Na osnovu tekuceg stanja I skupa ulaznih signala, generisu se izlazni signali I processor prelazi u novo stanje. Dio generisanih izlaza se koristi kao ulazni signal sljedeceg stanja. Logika rada se moze predstaviti tabelom stanja, kojom se opisuju prelazi procesora kroz internja stanja. Vrste u tabeli odg. Internim stanjima iz skupa Sint. Kolone u tabelu odg. Podskupovima ulaznih signala bj od Aul. Iz stanja Si pod dejstvom podskupa bj, prelazi se u novo stanje Sij. Problem sa realizacijom upr. Jedinice upravljane na bazi tabele je u velicini tabele, zbog velikog br. Mogucih stanja i br. Ulaznih ulaznih signala. Kod elemenata za kasnjenje, polazi se od dijagrama toka rada upravljacke jedinice. Za reprezentaciju n stanja sistema koristi se n bistabilnih elemenata. Nedostatak je velik broj flip flopova koji se koriste za reprezentaciju stanja sistema, odn. Elemenata za kasnjenje. Kod brojacke sekvence, upr. Jedinica pretpostavlja izvrsenje masinske instr. u k koraka. U itom koraku se aktivira neki skup upr. Linija koristenjem odnosnog faznog impulsa. Fazni impulsi se generisu kolom brojac sekvenci. Impulsi na izlazu brojaca su vrem. pomj. za vrijeme trajanja impulsa.
17. .

Mikroinstrukcije sadrze skup mikrokomandi koje kontrolisu izvrsenje skupa mikrooperacija u toku mikroinstrukcionog ciklusa. Ukoliko se svakom mikroinstrukcijom kontrolise izvrsenje samo jedne mikrooperacije, onda se radi o vertikalnim mikroinstrukcijama, a ako se jednom mikroinstrukcijom moze specifikovati izvrsenje vise mikroinstrukcija, onda se radi o horizontalnim mikroinstrukcijama. Prednost vertikalnih mikroinstrukcija je u: maksimalnom iskoristenju mikroinstrukcione rijeci, jer se specifikuje samo operacija koja se izvodi, mikroprogramiranje je jednostavno zbog jednostavnosti formata mikroinstr.

Nedostatci vertikalnog mikroprogramiranja su u relativno dugim sekvencama mikroinstrukcija, sto implicira duze vrijeme izvrsenja mikroprograma i sto nema mogucnost paralelnog izvodjenja mikrooperacija. Cesto se pod horizontalnim mikroinst. Podrazumijeva maks. Paralelizam operacija, sto podrazumijeva koristenje veceg broja razlicitih polja u okviru mikroinstr. Balansirani pristup koristi manji broj polja za specifikaciju mikrooperacija

7-4

nego kod horizontalnih mikroinstr. Ovaj format se cesto referise terminom dijagonalni format. Kod vert. Mikroinstr. Broj razlicitih polja je 1-3, kod dijagonalnih je 4-6, a kod horizontalnih je veci od 6.
18. .

Ukoliko se u mikroprogramskoj memoriji nalazi veliki broj mikroinstrukcija koje se ponavljaju, onda se moze primijeniti koncept nanoprogramiranja. Kod ovog koncepta, konvencionalna mikroprogramska memorija se zamjenjuje mikroprogramskom memorijom od n rijeci. Svaka rijec sadrzi samo adresu mikroinstrukcije u nanomemoriji. Na ovaj nacin se smanjuje zahtjev za ukupan kapacitet memorije mikroprograma.

19.

. Fizicko povezivanje mikroprocesora sa okolinom realizuje se preko elektricki provodljivih nozica pinova. Preko pinova se realizuje napajanje procesora, taktna pobuda, te prenos signala za komunikaciju sa memorijom i U/I podsistemom. Putevi koji povezuju pinove procesora sa ostalim dijelovima sistema cine spoljasnu magistralu procesora. Razliciti procesori mogu imati odr. Specificnosti u pogledu broja i funkcija pojedinih linija. Signali hipotetickog procesora:

8-4

20. . / .

Racunar komunicira sa spoljnim svijetom preko ulazno/izlaznih jedinica. S obzirom na primjenu racunara u svim oblastima ljudske djelatnosti, razvijen je veliki broj periferijskih uredjaja sa kojima racunar moze da komunicira. Prema komunikacionim karakteristikama, U/I uredjaje mozemo grupisati: razumljive covjeku, citljive od strane masine, komunikacione, razumljive specificnim uredjajima/procesima.

Principijelna blok sema U/I interfejsa:

9-4

Prema brzini, razlikujemo brze, jedinice srednjih brzina i spore uredjaje. Iako memorijski i U/I podsistem mogu da dijele odredjene linije i adresa i podataka, oni su logicki razdvojeni. Odredjene kontrolne linije specifikuju da li se operacije odnose na U/I ili memorijski podsistem. I pored standardizacije tehnika povezivanja U/I uredjaja sa racunarima, problemi kod povezivanja prosticu zbog razlike u brzini periferija, broju bita prenosa, spec. Nacin predst. Podataka, nacinu detekcije, itd.
21. / : / .

Funkcije U/I portova mogu biti: - baferovanje podataka ka/iz memorije, - cuvanje informacije o statusu uredjaja sa kojim se komunicira, - registrovanje komandi CPU-a upucenih U/I interfejsu. Skup portova predstavlja U/I programski model. Programski model interfejsa tastature sastoji se od jednog 8-bitnog U/I porta. Da bi ocitao podatak sa tastature, program mora da izvede instrukciju koja vrsi transfer sadrzaja porta KBDATA u jedan od registara procesora. Iako je port KBDATA sa stanovista procesora read-only, enkoder moze da upisuje u njega podatke. Prema tipu podataka koji se izmjenjuju izmedju porta i procesora, razlikujemo: - port potadaka, statusni port, upravljacki port.
22. / .

Za selekciju U/I uredjaja I transfer podataka ka perifernim uredjajima, procesor moze koristiti dva nacina. Jedan je koristenje specijalnih U/I instrukcija procesora, dok se drugi realizuje koristenjem instrukcija za izmjenu podataka sa memorijom. Primjer koristenja i formata U/I instrukcija IN/OUT: IN Rn, Pn ; ucitava se u registar Rn sadrzaj porta Pn, OUT Pn, Rn ; upisuje se u port Pn sadrzaj registra Rn. IN/OUT instrukcije izvrsavaju transfer podataka slicno memorijskim instrukcijama LD/ST, izuzev da ne adresiraju memoriju, nego U/I port. Pri izvodjenju memorijskih instrukcija, procesor aktivira signal M/IO za selekciju memorije. Signal M/IO se koristi kako za selekciju portova U/I-a, tako i za inicijalizaciju samog transfera. Prednosti memorijski mapirane U/I komunikacije su: - ne zahtijeva specijalizovane U/I instrukcije, mogu se koristiti sve instrukcije za referenciranje memorije, raspoloziv je veliki broj U/I portova i pojednostavljuje se hardverska struktura. Nedostaci su gubitak dijela adresnog prostora memorije i memorijske instrukcije nisu optimizovane za U/I operacije.

10 - 4

23. / /. ()

. /. Pri U/I komunikaciji, CPU moze biti u vecoj ili manjoj mjeri ukljucen u proces U/I komunikacije. Ako su U/I operacije u potpunosti kontrolisane od strane CPU-a, onda se ovakav tip transfera naziva programirani U/I prenos.

Za programski model tastature koji se sastoji od jednog kontrolnog i statusnog porta i jednog ulaznog porta za podatke, ucitavanje podataka ovom tehnikom izgleda: LDA #1 ; start STA KBCS TST KBCS ; testiranje spremnosti interfejsa BPL CEKANJE ; cekaj ako interfejs nije spreman LDA KBDATA ; interfejs spreman, ocitaj podatak Tehnika prenosa podataka programiranim U/I ima veliki nedostatak u ogromnom gubitku procesorskog vremena dok se ceka na spremnost periferije. Zbog toga su razvijene prekidne tehnike i prenos podataka preko DMA.
24. . . .

Prekidi su dogadjaji koji uzrokuju prekid izvrsavanja normalnog toka programske sekvence. Mogu biti razliciti, a dijele se na softverske (eksplicitno generisani, poslj. Gresaka u izvodjenju programa) i hardverske (eksterni, interni) prekide. Prekid proizilazi iz viseg prioriteta servisiranja dogadjaja koji uzrokuje prekid, u odnosu na prioritet izvrsavanja osnovnog programa. Nakon prekida, programska sekvenca se vraca na tacku prekida, pa se nastavlja izvodjenje osnovnog programa.

11 - 4

Ideja prekida potice od problema komunikacijom sa periferijama. Kod programiranog U/I procesor kontinualno testira spremnost periferije za komunikaciju. Pri takvom nacinu komunikacije, u sistemu sa mnogo periferijskih jedinica procesor bi vecinu vremena trosio u cekanju na spremnost periferija. Takav nacin rada bi usporavao cak i periferijske jedinice, jer periferija koja ima spreman podatak bi moga da ceka znacajan period zbog komunikacije procesora sa dr. Periferijama progr. U/I. Alternativni pristup je da procesor radi koristan posao izvodeci osnovni program, a da periferija izvjesti procesor kada je spremna za komunikaciju.
25. .

. Procesor moze prekinuti tekucu sekvencu kontrolnog toka samo izmedju individualnih masinskih instrukcija. Razlog tome je to sto program cije se izvrsenje prekida, treba da nastavi rad od tacke prekida nakon servisiranja dogadjaja koji ga je generisao. Za to je potrebno cuvanje stanja procesora u trenutku prekida, i restauracija tog stanja nakon servisiranja prekida. Prekidi se dozvoljavaju samo nakon kompletiranja izvrsenja jedne instrukcije, a prije pocetka druge. Proces izvrsenja jedne instrukcije se moze opisati sekvencom CheckForInterrupt, Fetch, Execute. CheckForInterrupt utvrdjuje postojanje zahtjeva za prekid. Ukoliko se radi o dogadjaju koji zahtijeva neodlozno servisiranje ili ako je prekid koji se moze kontrolisati dozvoljen, onda se ulazi u proces posluzivanja prekida u okviru kojeg se: - pohranjuje u mem. na stek dio stanja ili kompl. Stanje programskog modela procesora i postavlja u PC adresa pocetka rutine za servisiranje prekida, - Identifikuje izvor i izvode se sve potrebne akcije za servisiranje prekida, - Sacuvano stanje programskog modela se restaurira sa steka i nastavlja sa izv. odakle je prekid nastao. Automatsko cuvanje programskog modela procesora obuhvata obavezno programski brojac i statusnu rijec procesora. Ukoliko je broj registara mali, onda se najcesce pohranjuje kompletan programski model, a ako je veliki, onda se zadatak cuvanja stanja realizuje u okviru ISR.
26. .

Najjednostavniji slucaj realizacije U/I komunikacije prekidnim mehanizmom je da svaka periferija ima svoju prekidnu liniju. Svaka linija kojom se zahtijeva prekid ima obicno fiksan prioritet. Omogucenje prekida odredjenih prioriteta se kontrolise internim bitovima dozvole. Za svaku prekidnu liniju definisana je specificna adresa na koju se preusmjerava programska sekvenca u slucaju dogadjaja prekida. U okviru interne CheckForInterrupt sekvence procesora se: - utvrdjuje zahtjev za prekid najviseg prioriteta u IR, - ukoliko je prekid tog nivoa dozvoljen, onda se ulazi u sekvencu posluzivanja prekida. Adresa ISR je odredjena zahtjevom INTRi koji se posluzuje.

12 - 4

Kod prek. Sistema ovog tipa, tipicno uredjenje prioriteta je slijedece: Ako se posluzuje prekid nivoa k < n, onda su dozvoljeni prekidi nivoa k+1, ..., n.
27. :

. Kada se desi prekid uzrokovan zahtjevom za prekid INTRi na odr. Liniji, ulazi se u process posluzivanja prekida aktiviranjem odgovarajuce ISR-e. Pri ulasku u ISRi nije poznat izvor prekida, jer je vise U/I interfejsa vezano na istu liniju INTRi. Da bi se utvrdio izvor zahtjeva, odnosna ISRi treba da ispituje status svakog interfejsa vezanog na INTRi liniju. Prvi interfejs za koji se utvrdi da je postavio zahtjev, opsluzuje se u ISRi. Prioritet posluzivanja zahtjeva istog prekidnog nivoa odredjuje redoslijed ispitivanja. Taj redoslijed moze biti fiskan ili promjenljiv. Dijagram toka odgovarajuce ISR:

13 - 4

28. .

. . Kod ove tehnike I dalje je vise U/I interfejsa vezano na jednu INTRi liniju zahtjev za prekid. Identifikacija U/I interfejsa koji je zahtijevao prekid I aktivacija rutine za posluzivanje odnosnog interfejsa se realizuje hardverski. Da bi se aktivirala odnosna ISR rutina interfejsa koji je postavio zahtjev za prekid, odnosni interfejs postavlja na linije podataka prekidni vektor. Da bi samo jedan uredjaj postavio prekidni vektor na linije podataka, koristi se lancanje.

INTA se koristi kao signal da je CPU prepoznao zahtjev za prekid i da je spreman da primi informaciju o vektoru prekid. Ovim se ostvaruje sinhronizacija CPU-a i U/I interfejsa u procesu identifikacije zahtjeva za prekid.
29. . /

. Logika kontrole U/I komunikacije prekidnom tehnikom cesto se implementira posebnim programibilnim kolom kontroler prekida. Kolo obicno sadrzi registar za pamcenje zahtjeva za prekid IRR (interrupt request register), registar za maskiranje IMR (interrupt mask register), registar statusa servisiranja (ISR interrupt service register), kontrolne i statuste registre, te logiku za lancanje.

14 - 4

Program moze zabraniti odredjene prekide postavljanjem odnosnih bitova u IMR. Preko kontrolnih portova se definise prioritetni mehanizam: fiksni prioriteti linija, round robin, itd. Takodje se definise vrijednost prekidnog vektora najnizeg prioriteta, odnosno adresa rutine za servisiranje prekida. Ako se u IRR pojavi vise zahtjeva istovremeno, onda kontroler na bazi stanja registra maskiranja, registra serv. Prekida ISR, i prior. Mehanizma, zakljucuje da li treba generisati zahtjev za prekid procesoru. Na kraju obrade prekida, RSP je duzna da signalizira kontroleru da je servisiranje zavrseno, a kontroler na osnovu toga brise postavljeni bit u ISR.
30. / . DMA.

. DMA . Komunikacija izmedju perifernih jedinica i procesora je relativno jednostavan i efikasan mehanizam, ukoliko su periferijske jedinice spore. U tom slucaju, i za veliki broj periferijskih jedinica, vrijeme koje processor potrosi za komunikaciju sa periferijama iznosi svega nekoliko procenata ukupnog procesorskog vremena. Medjutim, transfer velikog broja podataka izmedju brzih periferija i memorije preko procesora, zahtijevao bi znatan procenat procesorskog vremena. Kanal za direktan pristup memoriji DMA channel, je specijalni interfejs koji omogucava periferiji da izvrsi brz transfer podataka ka/iz memorije, bez ucesca CPU-a. Da bi DMA izvrsio prenos podataka ka memoriji, on standardno postavlja procesoru zahtjev za prekid INTR. Procesor postavlja parameter prenosa: adresu pocetka mem. bloka, broj bloka diska, kao i broj bajta koji se prenose, te izdaje komandu za prenos koja sadrzi i inf. o smjeru prenosa.

15 - 4

DMA treba da dobije pravo upravljanja magistralom u toku transfera podataka ka/iz memorije. Zahtjev za upr. magistralom DMA saopstava procesoru preko linije BR, a odobrenje od procesora dobije kada proc. postavi signal BG (bus grant). Postoji nekoliko varijanti DMA prenosa sa stanovista duzine kontrole nad magistralom: 1) Kradja ciklusa, 2) Standardni DMA prenos, 3) DMA koristi magistralu u masinskim ciklusima kad je ne koristi CPU.
31. : .

Razlicite procesorske arhitekture se mogu predstaviti u projektnom prostoru sa taktnom frekvencijom kao apscisnom koordinatom i CPI ( br. ciklusa po instrukciji).

Kako se implementacione tehnologije brzo usavrsavaju, frekvencija radnog takta procesora se brzo pomjera od manjih ka vecim brzinama, odnosno kompletan dijagram se pomjera ka donjem desnom uglu. Drugi trend je da proizvodjaci procesora nastoja da smanje vrijednost CPI koristeci kako hardverske tako i softverske pristupe.
32.

Konvencionalni procesori spadaju u familiju CISC (complex instr. set comp.) procesora. Brzina takta ovih CISC procesora je do nekoliko desetina MHz, sa opsegom CPI 1-20 za mikroprogramske upr. jedinice. Zbog toga su u gornjem lijevom uglu projektnog prostora. RISC procesori imaju vecu frekvenciju radnog takta od CISC-a. S obzirom da se najcesce

16 - 4

koristi hardverski implementirana upravljacka jedinica, CPI je sveden na 1-2. Specijalna klasa RISC proc. su superskalarni procesori, kod kojih se vise instrukcija mogu izvoditi istovremeno za vrijeme svakog ciklusa, pa je kod ovih procesora CPI ispod korespodentnih vrijednosti za RISC proc. Procesori sa velikom duzinom rijeci (VLWI) koriste vise funk. jedinica i od supersk. procesora. Time se jos smanjuje CPI. Zbog velike duzene rijeci (256-1024 bita), upr. jedinica ovih procesora je mikroprogramskog tipa, te je frekvencija manja. Superprotocni procesori koriste visefazne taktne signal sa znatno visom radnom frekv. i relativno visokim CPI-om, izuzev ako se ne koriste visestruke funkcionalne jedinice kao u vektorskim procesorima. Ovi proc. pored skalarnih funkcionalnih jedinica imaju i funkcionalne jedinice za vektorske operacije.
33. ( MIPS-a) CPI .

MIPS rate =

f . CPI *10 6

34. RISC , RISC CISC .

Nakon mnogih istrazivanja, doslo se do rezultata koji su pokazivali da se svega 25% instrukcija iz kompleksnog instrukcionog skupa cesto koristi. Ovaj podatak se moze interpretirati i tako da se 75% hardverski impl. instr. ne izvodi gotovo nikako. Zato se rijetko koristene instr. mogu implementirati softverski koristenjem osnovnih, cesto koristenih procesorskih instrukcija. Iako je ta implementacija sporija, ukupan efekat je pozitivan, jer se oslobodjeni prostor na procesorskom cipu moze iskoristiti za realizaciju znatno mocnijeg hardvera. Instrukcioni skup RISC procesora sadrzi tipicno manje od 100 instrukcija. Koriste svega nekoliko nacina adresiranja, vecina instr. koristi operande u registrima. Broj registara ovih procesora je veliki kako bi se omogucila brza promjena konteksta izmedju procesa, te brzi pozivi i gnijezdenje procedura. Cijeli proc. se realizuje na jednom VSLI cipu i rezultat je rad na visim frekvencijama, smanjenje vrijednosti CPI-a i vece performanse u MIPS. Komparacija CISC-a i RISC-a:

17 - 4

35. (Berklay RISC architecture).

Po konceptu registarskih prozora, svakoj proceduri se pridjeljuje 32 cjelobrojna registra. Osam od ovih registara su globalni registri, dok su preostala 24 registri prozora procedure. Prozor je podijeljen na tri sekcije iste velicine: Sekcija ulaznih parametara (Ins), lokalni registri procedure (Locals) i registarska sekcija za predaju parametara slijedecoj proceduri (Outs). Registarska sekcija ulaznih parametara pozvane procedure se preklapa sa registarskom sekcijom izlaznih parametara pozivane procedure. Ukupno ima 64 preklapajuca i 64 lokalna registra, uz 8 globalnih. Prozori cine cirkularni stek. Prozor procedure koja se izvodi se naziva aktivni prozor, i na njega pokazuje pokazivac aktivnog prozora (CWP). WIM (window interrupt mask) se koristi za indikaciju da je prozor zauzeta i da je njegova dodjela novoj proc. nedozvoljena. Ako se desi takav slucaj da se poziva nova proc. a svi prozori su zauzeti, onda se generise prekid, u toku kojeg se smjestaju Ins i Locals registri prozora u memoriju koristeci servisnu rutinu na koju pokazuje trap base register. WIM se poveca i pokazuje na slijedeci prozor i nastavi proces pozivanja slijedece proc. Opisanom tehnikom se znatno smanjuje vrijeme izmjene parametara u procesu pozivanja procedure.
36. Intel- Pentium ?

Procesor ima 64-bitne interne i eksterne linije podataka, dok su adresne linije 32-bitne. ALU za cjelobrojne operacije je takodje 32-bitna. Postoje posebne kes memorije za podatke (8KB) i instr. (4kb). Komunikacija sa memorijom se realizuje preko jedinice za upravljanje memorijom MMU. Postoje dvije jedinice za obradu u pokretnom zarezu: mnozac i sabirac. Specijalne dualne instrukcije add-and multiply i substract-and multiply koriste istovremeno i jedinicu za mnozenje i jedinicu za sab. Takodje, istovremeno se mogu izvoditi i cjelobrojne oper. i operacije u tekucem zarezu, pa zbog toga i8060 ima karakt. i superskalarnog procesora. Graficka jedinica pozdrava 3-D graficke operacije sa 8, 16 i 32 bitnim pikselima. Ovaj RISC proc. ima 82 instrukcije, od cega 24 za oper. u pokretnom zarezu, 10 grafickih instr. i 6 pseudoasemblerskih instrukcija.
37. ? ?

. Hazard je okolnost koja sprecava da funkcionalna jedinica izvrsava instrukciju maksimalnom brzinom. Javljaju se zbog zavisnosti po podacima izmedju instrukcija, konflikata u koristenju zajedn. resursa pri istovremenom izvodjenju razlicitih instrukcija i zbog promjene instrukcionog toka. Hazardi uzrokuju da se rad cijelog protocnog sistema ili njegovog dijela privremeno zaustavi, sto uzrokuje degradaciju radnih performansi. Obicno kada se zaustavi izvrsenje neke instrukcije u protocnom sistemu, onda se zaustavlja izvrsenje i svih drugih instr. u prot. sistemu koje slijede iza zaustavljenje instr. dok se produzava izvrs. instr. koje su u protocnom sistemu ispred zaustavlj. instr. U cilju smanjenja broja hazarda koriste se razliciti postupci koji se mogu podijeliti na staticke i dinamicke. Staticke (softverske) tehnike su postupci koji se primjenjuju prije samog izvodjenja, odnosno postupci u fazi prevodjenja programa. Zasnivaju se na identifikaciji karakteristika programa i potencijalnih hazarda koji se nastoje eliminisati preuredjenjem programskog koda. Dinamicke tehnike se baziraju na preuredjenju redoslijeda izvodjenja instrukcija u toku samog izvrsenja, koriscenjem dodatnih hardverskih sklopova na samoj CPU. 18 - 4

38. .

Pristup zajednickim varijablama za citanje/pisanje od strane razlicitih instrukcija koje se nalaze u protocnom sistemu, moze dovesti do razlicitih rezultata ako se instrukcije izvedu razlicitim redoslijedom. Ovaj tip zavisnosti izmedju instrukcija se naziva zavisnost po podacima. Mijenjanje originalnog redoslijeda instrukcija je dopustivo samo ako to mijenjanje nema uticaja na konacan rezultat izvrsenja programa. Ukoliko se instrukcije, izmedju kojih postoji zavisnost po podacima, ne izvode po originalnom redoslijedu, dolazi do logickih hazarda. Posmatrajmo dvije instrukcije I i J, pri cemu J logicki slijedi instrukciju I, a izmedju njih postoji neka od zavisnosti. Ukoliko dodje do promjene originalnog redoslijeda instrukcija, dolazi do nekorektnog citanja ili upisa, odnosno do hazarda. Hazadri treba da budu onemoguceni tako da se sprijeci izvodjenje instrukcije J prije instr. I.
39. : .

Mogucnost preuredjenja redoslijeda izvrsenja instrukcija je pozeljna, jer se time moze postici vece iskoristenje protocnog sistema i povecati brzina obrade. Pri tome, medjusobne relacije u redoslijedu izvodjenja izmedju instrukcija kod kojih postoji zavisnost po podacima trebaju da budu sacuvane. U fetch stepenu se vrsi pribavljanje instrukcije iz memorije za jedan ciklus. U stepenu dekodiranja se dekodira fja koju treba realizovati i identifikuju potrebni resursi. Stepen I vrsi rezervisanje resursa onemogucavanjem pristupa resursima za izvodjenje dr. instr. U ovoj fazi se takodje vrsi ocitavanje operanada iz registara i dovodjenje operanada na ulaz funkcionalnih jedinica. Instrukcije se izvode u jednom ili vise izvrsnih stepeni. U W stepenu se vrsi upis rez. u odrediste.

// objasnjenje na 80 strani, 4b (hazardi) prezentacija.


40. . WAR

WAW . . Tomasulov algoritam razrjesava konflikte u koristenju hardverskih resursa i obezbjedjuje redoslijed izvrsenja odredjen zavisnoscu po podacima na bazi markacije registara. Ukoliko pri iniciranju izvrsenja instrukcija potrebni operandi nisu raspolozivi, onda se instrukcija prosljedjuje u rezervacionu stanicu (RS) sa odg. markiranjem potrebnih registara/operanada. 19 - 4

Instrukcija ceka u RS dok se prehodno ne izvedu sve potrebne instrukcije u cilju ocuvanja zavisnosti po podacima i dok potrebni operandi ne postanu raspolozivi. Kada se ti uslovi ispune instr. se iz RS prosljedjuje funkcionalnoj jedinici za izvrsenje. Kada se pojavi rezultat neke operacije na magistrali sa odnosnom markacijom, onda i odredisni registar i RS koja ocekuje odnosni podatak, azuriraju svoj sadrzaj. Ako time neka instrukcija/operacija postaje raspoloziva za izvrsenje, onda se onda prosljedjuje funkcionalnoj jedinici sa potrebnim operandima.

// 81 str.
41. .

Ovaj tip hazarda se javlja kada dolazi do konflikta u koristenju hardverskih resursa procesora. Npr. ako posmatramo idealan slucaj rada skalarnog RISC procesora koji izvodi jednu instrukciju u svakom ciklusu, onda je memorijski port stalno zauzet. Ukoliko se izvodi instrukcija Load/Store onda ce se zahtijevati obracanje memoriji za pribavljanje/smjestanje operanda, sto generise konflikt u pristupu memoriji. S obzirom na to da je procenat Load/Store instrukcija u ukupnom br. instr. koje se izvrsavaju visok, ovi konflikti mogu znacajno da degradiraju performanse sistema. Da bi se rijesio ovaj problem, RISC procesori cesto koriste dual-port memorije, tako da se instrukcijama i podacima moze pristupati nezavisno. Slican problem nastaje kada vise instrukcija zahtijeva koristenje iste funkcionalne jedinice istovremeno. U cilju eliminisanja ovakvih konflikata, kako je to prezentovano i u prethodnim primjerima, realizuju se procesori sa visestrukim funkcionalnim jedinicama.
42. . .

. Zastoj u protocnom sistemu moze biti uzrokovan i promjenom instrukcionog toka. Pri promjeni instrukcionog toka potrebno je izracunati ciljnu adresu grananja i eventualno uslove na osnovu kojih se odlucuje o grananju. Ciljna adresa nije uvijek unaprijed poznata: onda se cesto mora izracunati ili dobiti u toku izvrsenja instrukcije. Izvrsavanje instr. grananja posjeduje odredjene specificnosti koje mogu uticati na pojavu zastoja u protocnom sistemu, a to su: - Instrukcija koja se izvodi nakon instrukcije grananja zavisi od rezultata izvrsenja same instrukcije grananja, - Operand na osnovu kojeg se procjenjuje uslov grananja moze zavisiti od neke ranije instrukcije, 20 - 4

- Ako se grananje obavlja, pribavljanje i izvrsenje naredne instrukcije ne moze poceti sve dok se ne sracuna BTA (branch transfer address), - Sracunavanje BTA moze zavisiti od neke ranije instrukcije. Zbog navedenog, kao i zbog cinjenice da je procenat izvodjenja instrukcija grananja visok, posebna paznja se posvecuje smanjenju negativnih efekata pri izvodjenju ovih instrukcija.

Nakon kompletiranja instrukcije I2, izvrsenje instr. I3 do I6 koje su zapocete se prekida u protocnom sistemu. Na taj nacin u ciklusima 9-12 ne dolazi do kompletiranja instrukcija, pa su to izgubljeni ciklusi/cijena izvrsenja instrukcije grananja.
43.

. ( ).

U cilju smanjenja cijene grananja koriste se razlicite tehnike: - zakasnjeno granjanje, - predvidjanje grananja, - Druge tehnike smanjenja cijene grananja. Zakasnjeno Grananje Prilikom izvrsenja instrukcije grananja, utvrdjivanje da li ce se grananje izvesti ili se ne moze realiziovati u razlicitim stepenima protocnog sistema, zavisno od njegove implementacije. Zavisno od toga u kom stepenu se donosi odluka o grananju, ciljna instrukcija se pribavlja sa odredjenim br. ciklusa zakasnjenja. Ako je to kasnjenje d ciklusa, onda se u protocnom sistemu nalazi d-1 instrukcija izmedju instr. grananja i mem. instrukcije na koju se grananje vrsi.

21 - 4

Umjesto da se u slucaju grananja prazne sve instrukcije u protocnom sistemu izmedju instrukcije grananja i mete, kod ove tehnike se nastavlja sa izvrsenjem jednog broja instrukcija iza instr. grananja bez obzira na to da li je grananje izvrseno ili ne. Ono sto je potrebno obezbijediti je da su to korisne instrukcije, cije je izvodjenje iza instr. grananja valjano i za slucaj grananja i za slucaj kada nema grananja, ili da su to instr. popune tipa NOP. Postoje tri mogucnosti: Instrukcije u slotu kasnjenja se uvijek izvode, protocni sistem se prazni ako se grananje ne obavlja ili protocni sistem se prazni ako se grananje obavlja.
44. . . BTB.

Predvidjanje da li ce se grananje desiti ili ne, moze se izvrsiti staticki u fazi prevodjenja, ili dinamicki, na bazi istorije grananja registrovane za vrijeme izvodjenja programa. Statisticki podaci govore, da se kod instrukcija uslovnog grananja, grananje cesce dogadja, odnosno da se povoljniji rezultati dobijaju ako se predvidja izvrsenje grananja. Statickim predvidjanjem se moze postici tacnost predvidjanja koja je veca od 75%. Kod dinamicke strategije grananja, predvidjanje da li ce doci do grananja ili ne pri izvodjenju neke instrukcije grananja, se bazira na prethodnoj istoriji grananja odnosne instrukcije. Za implementaciju dinamickog grananja koriste se bafer ciljnog grananja BTB (branch target buffer). Dinamickim predvidjanjem grananja sa jednim bitom istorije, moze se postici tacnost predvidjanja izmedju 86% i 96%.

45. VLIW .

VLIW . Arhitektura CISC i RISC skalarnih procesora moze se dalje poboljsati implementacijom koncepata superskalarnog ili vektorskog procesiranja. Dok skalarni procesori izvode jednu instrukciju po ciklusu, kod superskalarnih procesora se koristi vise funkcionalnih protocnih sistema, cime se omogucava da se u jednom ciklusu inicira i kompletira izvrsavanje vise instrukcija. Vektorski procesori izvrsavaju vektorske instrukcije na nizovima podataka sto je pogodno za protocnu obradu.

22 - 4

46. EPIC , IA-64 .

Smatra se da IA-64 arhitektura predstavlja najznacajniji napredak u oblasti mikroprocesorskih arhitektura od uvodjenja 32-bitnog mikroprocesora Intel 386, 1985. god. Nakon 5 godina zajednickog istrazivanja, god. 1999. Intel i HP su objavili detalje nove arhitekture IA-64 ISA, s ciljem da razvojni inzenjeri sirom svijeta ubrzaju razvoj nove generacije aplikacija za platforme koje ce biti bazirane na IA-64 procesorima. Prvi model ove arhitekture nazvan je Merced i planiran je za realizaciju 2000. god. Cilj razvojnih napora Intela i HP-a je bio da se razvije arhitektura sa 64-bitnim instrukcionim skupom za radne stanice visokih performansi, serverske stanice i racunarske sisteme preduzeca. U ovom domenu postoji niz aktuelnih aplikativnih oblasti koje zahtijevaju izuzetne performanse, sa tendencijom stalnog povecanja zahtijeva za procesne mogucnosti racunara: internet aplikacije, elektronska trgovina, procesiranje govora, itd. IA-64 je jednist. kombinacija vise novih karakteristika, kao sto su: eksplicitni paralelizam, predikcija, spekulativno izvodjenje, itd. Novi tehnoloski koncept nazvan je EPIC : Explicitly Parallel Instruction Computing. IA-64 arhitektura takodje obezbjedjuje potpunu kompatibilnost sa IA-32 arh. , a i sa HP PARISC procesorom. To je bio jedan od osnovnih zahtjeva.
47.

: , . reorder buffer-a. .

Postoje dva tipa spekulacije: upravljacka i spekulacija o podacima. U obe varijante kompajler povecava ILP specifikacijom izvrsenja neke operacije ranije, sa ciljem eliminisanja kasnjenja na kriticnom putu izvodjenja instrukcija. Prevodilac specifikuje spekulativno izvrsenje neke instrukcije ranije, ako postoji znacajna vjerovatnoca da ce spekulacija biti ostvarena i ako ranijim izvrsenjem instrukcije dolazi do povecanja mogucnosti eksploatacije paralelizma. Npr. ako posmatramo instr. if(a>b) load (ld_addr1, target1), izvodjenje operacije ld_addr1, target1 prije nego sto je poznat uslov a>b se moze karakt. kao spekulacija da ce uslov a>b biti istinit. Nakon spekulativnog izvodjenja ld_addr1, target1 druge instr. mogu koristiti vrijednosti upisane u target1 i azurirati dr. elemente procesorskog stanja. Ukoliko je spekulacija bila pogresna, ide se u proceduru oporavka, kojom se ponist. efekti pogr. spekulacije. Spekulacija o podacima je dobavljanje podataka iz memorije prije operacije smjestanja u memoriju koja prethodi tom pribavljanju, ako postoji potencijalna mogucnost da load i store operacije referenciraju isti dio memorije.

23 - 4

Npr. Store(st_addr, data); Load(ld_addr,target); Use(target) Ukoliko load i store instr. referenc. razl. memorijske lokacije, onda redoslijed izvodj. moze biti promijenjen. Medjutim, ako u fazi predovjenja ovo ne moze da se utvrdi, onda se izvodjenje load prije store moze smatrati spekulativnim, sa spekulacijom da load i store referenciraju na istu mem. lokaciju.
48. .

Predikcija je uslovno izvrsenje instrukcija. U tradicionalnim arhitekturama, uslovno izvrsenje se implementira instrukcijama grananja. IA-64 arhitektura implementira ovu fju koristenjem predikatskih instrukcija. Vrijednost predikata se postavlja instrukcijom poredjenja u odnosni predikatski registar. Predikovana instrukcija se izvodi ako je vrijednost predikata 1, u suprotnom predikovana instrukcija ima isti efekat kao i NOP. Predikacijom se uklanjaju grananja koja se koriste za uslovno izvrsenje, stvaraju se veci blokovi sekvencijalnih instr. i eliminisu gubici koji nastaju zbog pogresne procjenje grananja. Npr. instr. bez predikata: if(p5) r1 = r2 + r3 . r1 = r2 + r3 ; kada je predikovana ima formu:

Ovde je p5 kontrolni predikat, koji odlucuje da li ce se ili ne instrukcija izvesti i azurirati stanje masine. Predikatskim izvodjenjem se izbjegavaju grananja tako sto se kontrolne zavisnosti transformisu u zavisnost po podacima.
49. Pentium .

Mogucnosti cjelobrojnih operacija i oper. u pokr. zarezu su raznovrsne. Ovdje cemo ilustrovati tehniku koristenja registarskih prozora kod poziva procedura, kojom se izbjegava tradicionalno cuvanje i restauriranje sadrzaja registara prilikom poziva na slican nacin opisan za RISC procesore, ali umjesto fiksnog br. registara koji se pridjeljuju proceduri, vrsi se dinamicko pridjeljivanje samo potrebnog broja registara. Registarski skup od 128 reg. je podjeljen na 2 podskupa: staticki, koji sadrzi registre 0-31 i magacinski podskup. Staticki je vidljiv iz svih procedura, dok se magacinski dinamicki dodjeljuje procedurama, redom kako se one pozivaju. CFM (current frame marker) pokazuje na par cjelobrojnih indikatora sof (size of frame) i sol (size of locals) koji specifikuju ukupan br. reg. magacinskog podskupa koji je pridjeljen proc. i br. registara pridjeljen proc. za njene lokalne potrebe. PFM sadrzi ove inf. u tekucoj proceduri za prethodnu proceduru, iz koje je tekuca proc. pozvana. Prilikom poziva procedure B iz proc. A, parametri koje prosljedjuje proc. A proceduri B su u startu dio registraskog prozora proc. B.
50. .

? Memorijsku tehnologiju i org. na svakom nivou karakterise 5 parametara: Vrijeme pristupa Ti (access time), od CPU do i-tog memorijskog nivoa, Velicina (kapacitet) memorije Si na nivou i (u bajtima), Cijena po bajtu Ci na memorijskom nivou i, Propusni opseg Bi (transfer bandwith) izmedju nivoa i & i+1, 24 - 4

Jedinica transfera Xi (u bajtima) izmedju i & i+1.

Informacije smjestene u hijerarhijski organizovanom memorijskom sistemu imaju tri karakt. osobine: inkluziju (ukljucenost), koherentnost i lokalnost. Inkluzija skupova implicira da su sve informacije originalno pohranjene u spoljnom nivou Mn. Svojstvo koherentnosti zahtijeva da informacija na nekom nivou, ima konzistentne kopije na slijedecim visim nivoima. Odrzavanje koherentnosti se moze realizovati sledecim strategijama: Upis odmah, Odgodjeni upis.

Lokalnost referenciranja je svojstvo programa da memorijke adrese, generisane u toku izvrsavanja programa, imaju tendenciju grupisanja posmatrano sa aspekta vremena i prostora.
51. .

Performanse memorijskog sistema zavise od efektivnog vremena pristupa Teff, bilo kom nivou u memorijskoj hijerarhiji i od frekvencije pristupa tim nivoima. Stopa pogadjanja Hi je vjerovatnoca da je zahtijevana informacija raspoloziva u Mi. Stopa promasaja se definise kao 1 Hi. Stopa pogadjanja na sukcesivnim nivoima je slucajna promjenljiva sa podrucjem vrijednosti izmedju 0 i 1, i fja je kapaciteta memorije, politike upravljanja memorijom i ponasanja programa. Frekvencija pristupa nivou Mi je : Fi = (1-H1)(1-H2)...(1-Hi-1)Hi. Velicina Fi je vjerovatnoca uspjesnog pristupanja nivou Mi. Primijetimo da je :

fi = 1.
i =1

S obzirom na svojstvo lokalnosti, frekvencije pristupa opadaju veoma brzo od nizih ka visim nivoima, tj. Fi >> F2 >> F3 ... , odnosno unutr. mem. nivoima se pristupa mnogo cesce nego vanjskim. Efektivno vrijeme pristupa: Teff =

fi * Ti , Ti vremenski gubici.
i =1

52. . .

Glavna memorija se cesto naziva i fizicka memorija. U ovoj memoriji se nalaze programi u toku izvrsenja kao i podaci i rezultati koje ovi programi koriste/produkuju. S obzirom na to da je velicina glavne memorije ogranicena, svi programi ne mogu biti smjesteni istovremeno u gl. mem. Koncept virtuelne mem. omogucuje virtuelno prosirenje glavne memorije sekundarnom memorijom, cime se postize da veci br. programa moze istovremeno koristiti fiz. memoriju. Samo aktivni programi, ili njihovi dijelovi, se nalaze u GM u jednom trenutku vremena. Programi se ucitavaju sa sek. memorije(disk) u memoriju i vracaju nazad na disk pod kontrolom OS-a. Skup adresa, preko kojih se moze pristupiti raspolozivim mem. lokacijama GM cini fizicki adresni prostor. Adrese koje generise programski prevodilac prilikom prevodjenja izvornog programa, odnosno instrukcije prilikom izvodjenja su virtuelne adrese. Virtuelni adresni prostor je po pravilu veci od fizickog adr. prostora. Prilikom izvodjenja programa, potrebno je obezbijediti prevodjenje virtuelnih adresa u fiz. adrese, odnosno realizovati mapiranje virtuelnog na fiz. adr. prostor.

25 - 4

Postoje dva nacina translacije virtuelnih i fizicke adrese: privatna virt. mem. i dijeljenja virt. mem.
53. . .

TLB-a. Kod tehnike stranicenja, u cilju preslikavanja virtuelnog u fizicki adresni prostor i virtuelni i fizicki prostor se dijele na str. iste duzine. Varijante translacionih mapa su kes stranicenja (TLB table lookaside buffer) i tabela stranicenja (PT page table). TLB je brza memorija koja sadrzi najcesce referencirane ulazne tabele stranicenja. Najpovoljnija varijanta je ako se translacija virtuelne u fizicku adresu realizuje preko TLB ulaza. Ukoliko TLB ne sadrzi ulaz koji specifikuje translaciju, onda se trazenje nastavlja u tabeli stranicenja. Hardverski:

TLB se mora azurirati dinamicki kako bi se odrzalo aktuelno stanje.


54. .

. . Invertovana tabela stranicanje (IPT) sadrzi jedan ulaz za svaku fizicku stranicu (frame). Prema tome, broj ulaza je odredjen brojem fizickih umjesto virtuelnih stranica. Polje veza formira lanac IPT ulaza koji imaju istu hash vrijednost. Npr, hash fja moze mapirati broj virtuelne stranice indeks ulaza u IPT na slijedeci nacin: indeks ulaza u IPT = ( br. virtuelne stranice ) mod n, n br. fizickih stranica. Sadrzaj vrijednosti virtuelne adrese stranica se uporedjuje sa vrijednoscu str. u ulazu u tabeli stranicenja koji odgovara vrij. hash funkcije za datu virtuelnu stranicu. Ako su vrij. iste, onda se odg. broj fizicke stranice dobija u polju ulaz, a ako se ne poklapaju, onda se preko polja veza ide na slijedeci ulaz sa istom hash vrij. i postupak se ponavlja dok se ne pronadje fiz. str. ili utvrdi da u tekucoj virt. adresi nije pridruzena nijedna stranica u GM. Tad se generise Page Fault. U memorijskom sistemu sa segmentiranjem, korisnicki programi su struktuirani u logicke segmente koji mogu biti razlicite duzine. Dakle, segmentacija omogucava da se programski kod organizuje na bazi korisnicke predstave programa. Virtuelna adresa specifikuje br. segmenata i pomjeraj u okviru segmenta. Broj segmenta se koristi kao indeks u segmentnoj tabeli. Ulaz segmentne tabele sadrzi pored specifikacije, bazne fiz. adrese i specifikaciju 26 - 4

maksimalne duzine segmenta. Tehnike segmentacije i stranicenja je moguce kombinovati. Kod ove organizacije mem., virtuelna adresa se sastoji iz 3 dijela: broj segmenta, br. stranice i pomjeraj.
55. .

Ukoliko se stranica ne nalazi u memoriji, onda je potrebno ucitati trazenu str. sa sekundarne memorije u GM. Problem se pojavljuje kod odlucivanja u koju fizicku str. (frame) treba ucitati nove podatke, odnosno koju postojecu str. treba zamijeniti. Postoji vise politika zamjene stranica: - LRU (Least recently used), mjenja onu fiz. str. u GM koja najduze nije referencirana, - Optimalni (OPT), zamjenjuje onu str. koja nece biti referencirana najduzi period, posmatrano od tekuceg trenutka ( ne moze se realno implementirati, jer ne znamo sta ce biti unaprijed), - FIFO, zamjenjuje onu str. koja je najduze u memoriji, - LFU (Least frequently used), zamjenjuje onu str. koja je najrjedje referencirana u proslosti, - Zamjena stranice na bazi slucajnog izbora (Random), itd. LRU tehnika je najcesce koristena i najcesce daje najbolje rezultate.
56. SIMD . . SIMD .

SIMD . Kod arhitektura ovog tipa postoji jedan sekvencijalni tok instrukcija i jedna kontrolna jedinica koja upravlja istovremenim izvrsenjem svake instrukcije na vise procesnih elemenata. Svi omoguceni procesni elementi izvode instrukciju nad razlicitim podacima, cime se realizuje paralelna obrada na odredjenom skupu podataka. Jednim instrukcionim tokom se izbjegava ponavljanje procesa dobavljanja instrukcije za svaku procesnu jedinicu. S obzirom na to da svi procesori rade sinhronizovano, na osnovu upravljackih signala iz kontrolne jedinice, ovakve arhitekture su pogodne za eksploataciju sitnozrnastog paralelizma. Dva osnovna modela su : PE-PE model i PE memorijski model. Procesor sa poljem PE-a se normalno povezuje na racunar opste namjene preko kontrolne jedinice. Racunar opste namjene izvrsava standardne sistemske fje i komunikaciju sa spoljnim svijetom, tako da se procesorska polja mogu smatrati pridodatom procesnom jedinicom za izvrs. specificnih aplik. ili dijelova aplikacija. Npr. kod racunara Illiac IV, sa 64 procesora povezanih mrezom, kontrolna jedinica dekodira instrukcije koje se dobavljaju iz procesnih elemenata pod kontrolom OS-a, a vrsi distribuciju instrukcija za izvrsenje ka potrebnim procesnim elementima. Kontrolna jedinica takodje izvodi proste skalarne operacije. Prosljedjivanje podataka izmedju procesnih elemenata se vrsi instr. rutiranja. Procesni element ima 4 64-bitna registra ( A akumulator, B operand reg. , R reg. za rutiranje, S opsti registar za prihvat podataka). 16-bit ind. reg X i 8-bit statusni/mod reg. Svaki procesni element ima vezu/moze rutirati podatke, ka 4 druga procesna elementa.

27 - 4

57. . , .

Za razliku od klasicnih racunara, asocijativni procesori referenciraju podatke u memoriji na osnovu njihovog sadrzaja. Na taj nacin je moguce referenciranje vise podataka istovremeno. Memorija koja ima navedene mogucnosti, naziva se asocijativna memorija. Kljuc za referenciranje se specifikuje preko registra za komparaciju. Upravljacka logika inicira komparaciju sadrzaja svih nemaskiranih dijelova CR sa svim lokacijama asocijativne memorije. Komparaciju izvodi kontrolna logika pridruzena svakoj mem. lokaciji, i za one lokacije koje zadovoljavaju trazeni uslov, postavlja se logicka jedinica u korespodentni bit registra za indikaciju. Komparacija se moze izvoditi serijski ili paralelno.

Asoc. procesori se povezuju na racunar domacin kao specijalizovani procesori za odr. aplikacije. Modul za povezivanje sa okolinom obezbjedjuje sirok spektar mogucnosti: DMA, paralelni U/I, spregu sa dr. spec. procesorima, koristenje senzorskih ulaza, itd. Sve ovo omogucava postizanje visokih performansi u aplikacijama. Zbog skupe reazlizacije komparatorske logike, asocijativne mem. su malog kapac. i skupe, sto ogranicava njihovu upotrebu za specijalizovane namjene. Znacajnu primjenu imamo u realizaciji kes memorija, gdje se utrdjivanje raspolozivosti podatka/instr. u kesu utrvdjuje na bazi privjeska (tag) generisanog na bazi adrese.
58. . .

Mnogi, racunski zahtjevni algoritmi, sadrze veliki broj operacija koje rade sa uredjenim skupovima elemenata vektorima. Zajednicka karakteristika je da se ista operacija ponavlja na svim elementima ili parovima elemenata vektora. Izvodjenje ovih operacija se moze optimizovati ako se izbjegne ponavljanje dobavljanja i dekodiranja instrukcija za svaki element vektora, odnosno ako se cijeli process inicira jednom instrukcijom. Vektorska instrukcija sadrzi operacioni kod, adrese operanada, duzinu vektora i adresni inkrement. Posto se kod skalarnih masina ove operacije implementiraju programskom petljom, izbjegava se takodje gubitak uslijed programske kontrole zavrsetka petlje.

28 - 4

Svaki vektorski registar moze da sadrzi jedan vektor sa N elemenata. Jedinica za procesiranje instr. dobavlja i dekodira instr. iz GM i prosljedjuje skalarne instr. skalarnom procesoru, a vektorske kontroleru vektorskih instr. Skalarni i vek. proc. se sastoji iz vise paralelnih protocnih funkcionalnih sistema implementiranih za efikasnu protocnu obradu skalarnih, odn. vektorskih instrukcija.
59. . ,

. Mnogi problemi koji zahtijevaju intenzivna racunanja i koji sadrze visok steepen paralelizma mogu se efikasno rijesiti primjenom jednostavnih procesnih elemenata org. u neku regularnu strukturu. Ovakva organizacija procesiranja je pogodna za implementaciju u VLSI tehnologiji, s obzirom na jednostavnost elemenata i pravilnost strukture. Informacije u sistolicni sistem se upumpavaju preko vanjskih celija, preko kojih se ostvaruje i izlazna veza. Bazicni element najcesce omogucava samo jednostavne operacije, kao npr. sabiranje i mnozenje.

Procesni element moze da procesira podatke i ostvaruje vezu sa dr. elementima paralelno ili serijski, moze biti sa ili bez lokalne mem. Podaci ulaze u sistolicno polje, obradjuju se u procesnim elementima po principu protocne obrade i prenose u slijedece procesne elemente ritmicno i sinhrono. Komunikacija izmedju procesnih elemenata je jednostavna i lokalizovana na najblize susjede, sto omogucava povecanje frekvencije radnog takta.

29 - 4

60. MIMD .

MIMD arhitekture se sastoje od niza procesorskih elemenata, pri cemu svaki procesor izvodi niz svojih instrukcija nad vlastitim tokom podataka, pod kontrolom autonomne kontrolne jedinice. Rad procesorskih elemenata je asinhron, sto daje veliku fleksibilnost ovakvim sistemima. Ova pogodnost MIMD arhitetktura nije bez cijene, s obzirom da procesni elementi moraju da kooperisu u cilju izvrsenja jedinstvenog posla. Planiranje mehanizama komunikacije i sinhronizacije postaje od osnovne vaznosti. Buduci da je komunikaciono i sinhronizaciono vrijeme znatno vece od vremena izvodjenja instrukcija, od interesa je eksploatacija paralelizma na visem nivou granularnosti. MIMD arhitekture se dalje dijele na visoko-paralelne i labavno spregnute. U labavo spregnute sisteme spadaju LAN i WAN racunarske mreze. Sprega izmedju racunara u ovim sistemima se izvodi serijskim linkovima, a izmedju udaljenih racunara koriste se modemi i komutirane veze. Posto jedino visoko paralelni sistemi mogu efikasno esploatisati paralelizam sa visim nivoom granularnosti, dalja razmatranja ce se ograniciti na tu arhitekturu. Visoko paralelni sistemi se dalje mogu klasifikovati na multiprocesore i multiracunare. U prvom slucaju proc. komuniciraju preko zajednicke memorije, a u drugom preko izmjene poruka preko mreze. Obe arhitekture koriste brze kes memorije.
61. . . .

Najjednostavniji nacin sprezanja modula paralelnog sistema je preko zajednicke magistrale. Ovakav nacin povezivanja najcesce se koristi kod multiproc. paralelnih sistema. Moduli GM su mapirani u virtuelni adresni prostor svakog procesora i tipicno su isprepleteni u cilju postizanja veceg propusnog opsega. Samo jedan procesor moze zauzeti magistralu i pristupiti zajedn. mem. pa je broj proc. ogranicen. Veza svakog procesora sa svakim modulom globalne mem. se moze ostvariti i preko krosbar sprezne mreze. Mrezu cini niz n * n linija, gdje se veza izmedju procesorskih elemenata i mem. modula ostvaruje preko prekidackih elemenata na svakom presjecistu linija. Svi proc. mogu istovremeno i bez konflikta da pristupe memoriji, sve dok pristupaju razlicitim modulima. Hiper-kocka Neka je ukupan broj procesora N = 2^m, i neka je binarna reprezentacija adrese svakog od N procesora Pm-1...Pi+1Pi-1...Po. fje povezivanja za ovu spreznu mrezu date su izrazom: Cubei (pm-1... pi+1 pi pi-1 ...po) = pm-1... pi+1 pi pi-1 ...po , za 0 <= i <= m-1, gdje je pi bit komplement od pi. Svaki procesni element se moze funkcijama povezivanja povezati sa m drugih procesora, tako da je ukupan br. mogucih povezivanja m* 2^m, odnosno broj veza je (m*2^m)/2. Funkcija povezivanja i 3-D strukturna reprezentacija za N = 8 :

30 - 4

62. . . PM2I, FNN.

U PM21 mrezama, procesor sa adresom P moze poslati podatke svim drugim procesorima cije su adrese (P +- 2^i) mod N . Odredjivanje rute za komunikaciju izmedju procesora moze se bazirati na razlici adresa odredisnog i izvorisnog procesora. Npr. za komunik. izmedju proc. 1 i 12, (N=16) razlika adresa je 11, pa podatak moze stici na odrediste koristenjem fja PM2I+o, PM2I+1, PM2I+3, prolazeci kroz cvorove 2,4. Razlicit skup fja rezultovace istim odredistem.

Funkcije povezivanja za FNN mrezu su: FNN+1(P) = (P+1) mod N FNN-1 (P) = (P -1) mod N FNN+n(P) = (P + n) mod N FNN-n(P) = (P - n) mod N, gdje se n =
63.

N podrazumijeva kao cijeli broj.

. . . .

Visestepene mreze obezbjedjuju povezivanje N sistemskih resursa sa M drugih resursa. Sastoje se iz odr. broja stepeni, pri cemu se u svakom stepenu nalazi odr. broj a*b krosbar prek. elemenata. Najcesce, visestepene mreze povezuju N ulaza sa N izlaza koristeci 2*2 krosbar prek. elemente, koji mogu biti postavljenu u jedno od 4 stanja. Mreza vrsi prenos podataka od izv. do odr. elemenata komunikacionim putevima odr. stanjima prekidackih elemenata u pojedinim stepenima. Stanje prek. elementa se odr. kontrolnim bitovima na ulazu, koje je obicno i-ti bit adresne inf. rutiranja.

31 - 4

Generalizovana kocka, ova mreza se sastoji iz m = log 2 N stepeni, gdje je N br. ulaznih odnosno izlaznih elemenata koji se povezuju. U svakom stepenu postoji N/2 prek. elemenata i po N ulaznih i izlaznih veza, oznacenih od 0 do N-1. Ako se veze oznace tako da gornji ulazi prek. elem. imaju istu oznaku, onda stepen (i) generalizovane kocke implementira fju povezivanja CUBEi. Ako se ostvaruje veze svih ulaza na po 1 izlaz, onda se koriste samo direktna i unakrsna stanja. Za slucaj prosljedjivanja od jednog izvora ka vise odr. istovremeno, koristi se stanje emisije odozgo prek. elem. za prosljedjivanje poruka kroz mrezu, moze se koristiti adresa rutiranja T = S D, inicijalne duzine m-bita, gdje su S i D adrese izvorista/odredista. Potrebno je 2m bita za adr. rutiranja.
64. .

Sprezne mreze se karakterisu ma osnovu operativnog moda, upravljacke strategije, metodologije prekidanja i topologije. Operativni mod moze biti sinhroni ili asinhroni. Sinhroni mod rada mreza se koristi kod SIMD sistema, gdje se povezivanja i transferi realizuju upravljanjem iz jedne kontrolne jedinice. Asinhroni mod karatkerise rad MIMD sistema. U nekim sistemima realizovana je kombinacija sinh/asinhr. rada. Upravljacka strategija definise nacin upravljanja prekidackim elementima i moze biti centralizovana, gdje centralni kontroler, fizicki izdvojen od logike za prenos podataka, upravlja stanjem prek. elem., i distribuirana, gdje je upr. logika implementirana u prek. elementima. Prekidacki metod moze biti paketni ili baziran na fizickom povezivanju na nivou kola. U 1. sl., podaci se prenose od izv. do odr. u paketima odredjene duzine, prolazeci kroz niz prek. elem. U 2. sl, podskup prek. elem. se postavlja u stanja koja omogucavaju postojanje direktne fizicke veze izmedju izvor. i odr. za vrijeme trajanja transfera. Topologija mreze se moze opisati grafom kod kojeg cvorovi predstavljaju prek. elemente, a lukovi komunikacione puteve. Kod statickih topologija, veza izmedju cvorova je fiksna i ustanovljene veze se ne mogu rekonfigurisati, dok dinamicke topol. dozvoljavaju dinamicku promjenu komunik. veza.
65. .

Izvodjenje nekog algoritma na racunarskom sistemu realizuje se uredjenim skupom operacija izmedju kojih postoje relacije prethodjenja i koje se izvode nad odr. podacima. Dok se kod von Neumann-ovih masina operacije izvode sekvencijalno, kod sistema upravljanih tokom podataka izvrsavaju se one oper. koje imaju raspolozive potrebne operande. Operacije se izvode paralelno i asinhrono i nema nezeljenih efekata koji se javljaju u multiprocesorskim sistemima uslijed istovremenih i nesihronizovanih pristupa zajedn. mem. Cim se realizuje neka operacija, ona produkuje izlaz, a novi podaci cine spremnim za izvrsenje novi skup operacija. Ovaj proces se modelira grafom, gdje cvorovima modeliraju operacije i pravilo okidanja, a lukovima podaci potrebni za izvodjenje operacija, te produkti oper. i transmisija podataka.

32 - 4

Postoje dva tipa ovih arhitektura: staticke i dinamicke. Staticke dopustaju postojanje samo jednog podatka na bilo kom luku u bilo kod trenutku, dok dinamicke dop. da se generise vise podataka izmedju dva cvora.
66.

. .

Uobicajena fja cilja za izvodjenje neke aplikacije na paralelnom sistemu u teoretskim razmatranjima je minimizacija vremena izvrsenja, a za skup nezavisnih programa, optimalan balans opterecenja po procesnim elementima. U praksi, najcesce je od interesa dobijanje najpovoljnijeg odnosa performansa/cijena, gdje cijena ukljucuje ne samo cijenu procesiranja nego i razvoja aplikacije. Problem optimalnog izvodjenja u osnovi se sastoji iz: problema grupisanja, podjele problema na zrna, velicine konkurentnih modula-zrna koja se rasporedjuju po procesnim elementima i strukture elementarnih operacija po zrnima, problema optimalnog rasporedjivanja zrna po procesnim elementima.

Rjesavanje ovih problema zahtijeva da se u razmatranje ukljuci i niz dodatnih parametara: karakteristike i mehanizmi medjuproc. komunikacije, te mogucnost preklapanja komunikacionih i racunarskih oper. , heterogenost procesorskih i memorijskih elem. i sl.
67. .

Teoretski, maks. ubrzanje koje se moze postici izvodjenjem programa na paralelnom sistemu sa N procesora jednako je broju procesora. U takvom scenariju, svih N procesora bi izvodilo samo korisne instrukcije, i svi bi poceli i zavrsili procesiranje u istim vremenskim trenucima. U praksi, ostvarivanje ovakvih maksimalnih performansi se ne postize zbog gubitaka vremena prouzrokovanih: - komunikacionim kasnjenjima, - sinhronizacijom izmedju procesora, - nezaposlenoscu procesora (prazni hodovi), - neophodnim upravljackim aktivnostima OS-a. Implikacije medjuproc. komunikacije su komunikaciona kasnjenja i konflikti zbog koristenja zajedn. resursa. Komunikaciona kasnjenja se odnose na vrijeme koje je potrebno za transfer podataka od izvora do odredista, a konflikti u koristenju resursa nastupaju kada se pojavi vise zahtjeva za koristenje jednog resursa, sto rezultuje dodjeljivanjem resursa jednom zahtjevu i cekanjem ostalih. Prilikom prenosa poruka kroz spreznu mrezu, vise poruka moze istovremeno zahtijevati prolaz kroz jedan cvor, uz mogucu degradaciju komunik. saobracaja ne samo u okolini navedenog cvora, nego i u cijeloj mrezi.

33 - 4

68. .

Racunanja u procesnim elem. se izvode brzinom koja se ne moze tacno predvidjeti. Posljedica toga je asinhrono generisanje akcija, dogadjaja i podataka koji se koriste u dr. procesima u paral. sistemu. U cilju uredjivanja ovih dog, uvodi se skup ogranicenja koja se koriste za odgadjanje izvodjenja odr. racunanja, kako bi se zadovoljili potrebni uslovi. Osnovni tipovi sinhronizacije kod multiproc. su medjusobno iskljucivanje i sinhronizacija uslova. Medjusobno iskljucivanje obezbjedjuje da procesi pristupaju ekskluzivno fizickim ili virtuelnim resursima. Dio koda koji se izvodi ekskluzivno od strane nekog procesa i u kojem se pristupa dijeljenoj varijabli, naziva se kriticna sekcija. Sinhronizacija uslova je tip sinhr. gdje procesi moraju da cekaju dok stanje dijeljene varijable, koje zavisi od rezultata izvodjenja grupe procesa, ne dobije zeljenu vrijednost. Kod medjusobnog isklj. process detektuje status kriticne sekcije, i ako je slobodna, postavlja status kriticne sekcije u zauzeto, a zatim izvodi kriticnu sekciju. Ako je kriticna sekcija zauzeta, proces moze nastaviti sa ispitivanjem statusa kriticne sekcije ne oslobadjajuci procesor, ili se moze impl. mehanizam koji proces stavlja u stanje cekanja, a procesor oslobadja za dr. aktivnosti.
69. .

U ovom pristupu, sav teret identifikacije i specifikacije nacina na koji ce se eksploatisati paralelizam preuzimaju programski prevodioci, a korisnici realizuju programe koristeci standardne jezike. Pored toga sto korisnik ne ulaze nikakav dodatni napor u odnosu na sekvencijalno programiranje, ovaj pristup omogucava direktnu eksploataciju postojecih sekvencijalnih programa na paralelnim sistemima. Osnovni problem je sto paralelizirajuci kompajleri tesko mogu, u opstem slucaju, identifikovati visok nivo paralelizma. Cijena koja se placa za komoditet programera je cesto znacajno umanjenje ubrzanja izvodjenja aplikacije i iskoristenosti resursa paralelne masine. Paralelizirajuci kompajleri koriste razlicite postupke transformacije izvornog programa u cilju postizanja sto veceg iznosa paralelizma u transformisanom kodu, naravno uz ocuvanje semantickog integriteta izvornog programa. Optimizacija programskih petlji je od vitalnog znacaja za ekspl. paralelizma, jer petlje potencijalno sadrze veliki iznos paralelizma i izvodjenje petlji je najcesce dominantni dio izvodjenja programa. Osnovne tehnike optimiz. su vektorizacija i razmotavanje petlji.
70. .

I pored toga sto koristenje paralelizirajucih prevodilaca oslobadja korisnika dodatne dimenzije kompleksnosti programiranja u paralelnom okruzenju, ipak ono ima i nekoliko ozbiljnih nedostataka. Osnovni nedostatak je nemogucnost prevodilaca da mijenja semantiku programa, odnosno strukturu sekvencijalnih algoritama, koji cesto ne sadrze mnogo inherentnog paralelizma. Prestrukturiranjem postojecih algoritama ili konstrukcijom novih, moze se obezbijediti znatno povecanje iznosa paralelizma. Konkurentnost se pojavljuje kao fundamentalni zahtjev za algoritme i programe. Dalje, mnogi postojeci sekvencijalni jezici sadrze konstrukcije koje limitiraju mogucnost detekc. paralelizma u postojecim programima. Sekvencijalni programi nisu automatski prilagodljivi za izvodjenje za slucaj povecanja broja procesora u sistemu i obima problema. Mogucnost prosirenja u navedenom smislu se takodje namece kao jedan od bitnih zahtjeva za paral. programe. Kompleksnost paralelnog programiranja izrazito potencira modularnost kao fundamentalni princip programiranja.

34 - 4

Aspekti modularnosti sekvencijalnog programiranja moraju biti prosireni, s obzirom na specificnost paralelnih sistema. Projektovanje se moze strukturirati u 4 faze: - particionisanje, ustanovljavanje veza, ukrupnjavanje i mapiranje.
71. .

Mapiranje zadataka po procesnim elementima sa ciljem minimizacije fje cilja je kompleksan problem. Ako je fja cilja minimizacija vremena izvodjenja sistema zadataka na paralelnoj arhitekturi, onda se govori o algoritmima rasporedjivanja. Za postizanje navedene fje cilja, algoritmi rasporedjivanja se baziraju na strategiji rasporedjivanja konkurentnih zadataka na razl. procesore, i na strategiji objedinjavanja izvrsenja zadataka na jednom procesoru, i cilju smanjenja komunik. aktivnosti. Kako su navedene strategije oprecne, algoritmi rasporedjivanja uvijek ukljucuju kompromis ova dva bazicna prinicipa. Ako je fja cilja ravnomjerno opterecenje proc. elemenata u sistemu, onda se mapiranje zadataka naziva balansiranje opterecenja. U odr. slucajevima, optimizacija rasporeda rezultuje i optimizacijom vremena izvodjenja skupa zadataka.
72. .

Particioniranje ima za cilj da se cijeli proces izdijeli na sto veci broj zadataka izmedju kojih postoji potencijalno velika mogucnost konkurentnog procesiranja. Zadaci obuhvataju kako racunanja, tako i podatke nad kojima se racunanja izvode. Dobra podjela implicira ravnomjernu raspodjelu, kako racunannja, tako i podataka po zadacima. Povezivanje je faza u kojoj se ustanovljava zavisnost izmedju zadataka i potrebni transferi podataka izmedju njih. Za spec. komunik. potrebno je definisati podatke i komunikacione veze izmedju zadataka.

35 - 4

Ukrupnjavanje se vrsi u cilju smanjenja komunikacionih aktivnosti uz zadrzavanje sto je moguce veceg iznosa paralelizma. Dodatno, potrebno je odrzati prilagodljivost rjesenja obimu problema, i prihvatljivu cijenu programske implementacije. Mapiranje zadataka po procesnim elementima sa ciljem minimizacije fje cilja je kompleksan problem. Ako je fja cilja minimizacija vremena sistema zadataka na paralelnoj arhitekturi, onda se govori o algoritmima rasporedjivanja. Za postizanje navedene fje cilja, algoritmi rasporedj. se baziraju na strategiji rasporedjivanja konk. zadataka na razl. procesore, i na strategiji objedinjavanja izvrsenja zadataka na jednom procesoru, u cilju smanjenja komunikacionih aktivnosti.
73. MIMD .

// 60 pitanje // 60

74. MIMD . .

pitanje
75. .

// 61 i 62 pitanje // 53 i 54 pitanje

76.

() ?

36 - 4