You are on page 1of 33

Za postizanje najviših performansi, ipak, neophodno je bilo programiranje na "nižem" nivou.

DEFINICIJA ARHITEKTURA RAČUNARA

Flynn-ova klasifikacija kategorizuje računarske sisteme na osnovu odnosa instrukcionog toka i toka
podataka na : SISD (Single Instruction Single Data), SIMD (Single Intruction Multiple Data) MISD,
MIMD.

Konzistentnu klasifikaciju daje Handler na bazi razlikovanja 3 nivoa procesranja: nivo programske
kontrolne jedinice, nivo aritmetičko-logičke jediice i nivo elementarnih logičkih sklopova.

RAZLIČITI KONCEPTI RAČUNARSKIH ARHITEKTURA

Koncept protočne obrade se sastoji u tome da se neka operacija razdijeli u sekvencijalni niz
podoperacija, pri čemu se svaka podoperacija realizuje u specijalizovanom hardverskom sklopu
(protočnom stepenu). Niz ovih hardverskih segmenata čini protočni sistem. Kroz protočni sistem se
propušta tok podataka. Svaki podatak se parcijalno obrađuje u svakom protočnom stepenu, a
procesiranje podataka (kompletiranje operacije) se završava po izlasku procesiranog podatka iz
protočnog sistema Sukcesivni podaci se obrađuju tako da se pojedine faze njihove obrade preklapaju u
različitim protočnim stepenima (Sl. 1). Protočni stepeni mogu implementirati jednu ili više funkcija.

ULAZ IZLAZ

Slika 1 Koncept protočne obrade

PRINCIP ORGANIZACIJE SISD RAČUNARSKIH SISTEMA

Program koji računar izvodi, nalazi se u glavnoj memoriji računara. Program u glavnoj memoriji može
biti trajno upisan (u memoriju sa trajnim sadržajem ROM-EPROM), ili se puni u glavnu memoriju
(RAM) sa sekundarne memorije (koja je takođe memorija sa trajnim sadržajem), sistemskim
programom. Prva varijanta je karakteristična za specijalizovane računare za upravljanje procesima koji
rade u otežanim eksploatacionim uslovima, dok je druga varijanta karakteristična za računare opše
namjene.
Kontrolna jedinica dobavlja instrukcije iz memorije, dekodira ih i generiše niz upravljačkih signala u
pravom trenutku i u korektnoj sekvenci kojima se obezbjeđuje izvršenje operacije specifikovane
instrukcionim kodom u izvršnoj jedinici procesora (Sl. 3.3). Npr. za izvođenje instrukcije za promjenu
znaka (komplementiranje do 2) sadržaja registra Rx: (Rx) ←¬ (Rx),
upravljačka jedinica generiše signale kojima se:
* sadržaj registra Rx dovodi na ulaz aritmetičko – logičke jedinice (ALU),
* izvodi promjena znaka (komplementiranje do 2) u ALU,
* rezultat upisuje nazad u registar Rx.
S obzirom da se mnogi rezultati izvršenja instrukcija koriste u kasnijoj fazi kao operandi (podaci)
potrebno ih je memorisati. Registri CPU-a mogu čuvati ove međurezultate, ali je broj registara u
procesoru mali a instrukcije za svoje izvršenje često zahtijevaju operande u registrima. Zbog
navedenog, pored instrukcija, u glavnoj memoriji se nalaze i podaci sa kojima program operiše u toku
svoga izvođenja. Za trajno čuvanje podataka i programa koristi se jeftinija sekundarna memorija
(magnetni/optički diskovi, magnetne trake). Magnetni diskovi se u određenim slučajevima mogu
koristiti i za privremeno smještanje dijelova programa/podataka u toku izvođenja, kada kapacitet
glavne memorije nije dovoljan. Procesor ne može direktno dobavljati instrukcije niti podatke iz
sekundarne memorije nego se to realizuje preko glavne memorije.

ORGANIZACIJA I STRUKTURA CENTRALNE PROCESNE JEDINICE (CPU)

Osnovna funkcija CPJ je da izršava program smješten u glavnoj memoriji. Osnovni funkcionalni
blokovi CPJ su upravljačka jedinica i izvršna jedinica . Upravljačka jedinica vrši pribavljanje
instrukcija iz memorije, njihovo dekodiranje i generisanje upravljačkih signala za izvršnu jedinicu
(pribavljanje podataka i instrukcija iz memorije se može realizovati i posebnom funkcionalnom
jedinicom). Izvršna jedinica izvršava operacije predviđene datom instrukcijom. Podaci u okviru CPU
cirkulišu jednom ili više skupina linija – internih magistrala.

Slika 2. Blok šema CPU

Izvršna jedinica sadrži aritmetičko-logičku (ALU) i druge funkcionalne jedinice za manipulaciju


podacima, registre, pomjerače, generator adrese i komunikacione puteve između njih. Kada postoji više
puteva podataka na ulazu/iz lazu neke komponente, neophodna su upravljačka kola za selekciju
podataka na odgovarajućim putevima (upravljačke tačke). Upravljačka tačka je prekidač puta podata ka
koja, na bazi upravljačkog signala, dozvoljava ili blokira prenos podataka na odgovarajućem
prenosnom putu.
Upravljačke tačke pripadaju upravljačkoj jedinici, a sami putevi za prenos podataka izvršnoj jedinici.
MDR (memory data register) je interni registar preko kojeg se vrši upis podataka u glavnu memoriju,
odnosno čitanje podataka iz glavne memorije. On služi kao bafer između CPJ i memorije pri prenosu
podataka između ovih jedinica. MAR (memory address regeister) je takođe 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).

REGISTRI

Registri se u procesoru koriste za prihvat i čuvanje rezultata nakon izvršenja operacija u funkcionalnim
jedinicama procesora, za prihvat podataka iz memorije, te za transfer podataka/međurezultata iz
procesora u memoriju.
Između bitova registara može postojati određena logika, koja može vršiti određene operacije između
susjednih bitova registra (npr. kopiranje sadržaja prethodnog/narednog bita u tekući bit registra, čime se
ostvaruje pomjeranje sadržaja u registru, odbrojavanje na više, na niže itd.).
Skup registara CPJ, čije stanje nakon izvršenja neke instrukcije može imati uticaja na izvršenje
slijedeće instrukcije naziva se programski model procesora.
MAR i MDR su interni registri, i ne pripadaju programskom modelu procesora. S obzirom da stanje
ovih registara može imati uticaj na izvršenje slijedeće instrukcije, programski model se mora sačuvati u
slučaju suspenzije izvršenja programa (zbog prekida npr.), i restaurirati nakon završetka suspenzije i
prije nastavka izvođenja suspendovanog programa.
Ostali registri CPJ se mogu svrstati u grupu internih registara.

Registri programskog modela:

* Programski brojač - Neposredno prije početka pribavljanja i izvršenja instrukcije, ovaj registar
sadrži memorijsku adresu instrukcije koja treba da se izvrši.

* Registri opšte namjene - Ovi registri se generalno mogu referencirati u svim instrukcijama koje
koriste registre: kako za speifikaciju operanada tako i za specifikaciju adresa. Ipak, u praksi obično
postoje ograničenja na generalnost primjene ovih registara.

* Registri za podatke - Ovi registri mogu prihvatati podatke i njihov sadržaj se može koristiti kao
operandi u operacijama specifikovanim instrukcijama. Ovi registri se ne mogu koristiti za specifikaciju
adrese.

* Adresni registri - Koriste se za specifikaciju adrese operanada/instrukcija. Postoji više varijanti


adresnih registara, prema njihovoj ulozi u formiranju efektivne adrese:

* Segmentni registri
* Indeksni registri
* Bazni registri
* Pokazivač steka
* Statusni registar - Ovaj registar sadrži markere (flags, condition codes), koji se postavlja se obično
ju za indikaciju rezultata prethodne operacije. Npr. nakon izvršenja neke aritmetičke operacije rezultat
može biti pozitivan, negativan, nula, može se desiti prenos (carry) ili preljev/premašaj opsega.

Interni registri

Interni regstri su registri koje procesor interno koristi za privremeno smještanje i baferovanje podataka
u procesu pribavljanja i izvršenja instrukcije. Stanje ovih registara nakon izvršenja neke instrukcije ne
utiče na izvršenje slijedeće instrukcije. Npr. MAR (memory address register) se koristi postavljanje
memorijske adrese sa koje se vrši očitavanje podatka/instrukcije, odnosno na koju se vrši upis podatka.
Nakon što se adresa (generisana generatorom adresa) postavi u MAR, transfer podatka između
procesora i memorije se vrši aktiviranjem upravljačkih signala za čitanje/ upis memorije (Mem_Read,
Mem_Write). Ukoliko se vrši upis u memoriju, prethodno se podatak mora postaviti u MDR (memory
data register). Nakon čitanja iz memorije, podatak se takođe prvo smješta u MDR, a zatim se
prosljeđuje u registar ili ulaz ALU.

Interne magistrale

Internim magistralama se prenose podaci, adrese i upravljački signali u okviru centralne procesne
jedinice.
UPRAVLJAČKA JEDINICA

Upravljačka jedinica generiše signale za upravljanje svim aktivnostima u okviru CPJ, kontrolom
upravljačke jedinice se vrši dobavljanje instrukcije iz memorije, njeno dekodovanje i identifikacija
operacije koju je potrebno izvršiti, identifikacija i prenos operanada od izvorišta do funkcionalnih
jedinica gdje se zahtijevana operacija izvodi, te vraćanje rezultata na odredište. Ovaj proces se pod
kontrolom upravljačke jedinice ponavlja pri izvođenju svake slijedeće instrukcije. Dakle, upravljačka
jedinica djeluje kao 'komandni centar' iz kojeg se upravlja radom ostalih jedinica sistema, a u svrhu
izvršenja niza mašinskih instrukcija – programa čime se realizuje željena funkcija - algoritam.

Da bi upravljačka jedinica ostvarila ove zadatke, ona mora da:


• obezbijedi korektan redoslijed izvršenja instrukcija (sekvenciranje instrukcija),
• generisanjem potrebnih signala obezbijedi izvršenje selektovane instrukcije.

Izvođenje instrukcija

Izvođenje instrukcija se realizuje tako što upravljačka jedinica generiše niz upravljačkih signala u
pravo vrijeme i u korektnoj sekvenci, koji upravljaju radom izvršne jedinice procesora.

Ovi signali su:


• interni upravljački signali (koji upravljaju radom sklopova u okviru CPU-a),
• spoljni upravljački signali (signali tipa MR, MW, IOR, IOW, statusni signali procesora) ,
• spoljni ulazni upravljački signali (signali tipa Reset, Ready, BussError itd.) ,
• instrukcija – signali na ovim linijama ukazuju na tip operacije koja treba da se obavi

Tipovi upravljačkih jedinica

Dvije su varijante realizacije upravljačke jedinice:

•direktno upravljanje: Logičkom mrežom se generišu kontrolni signali u predefinisanom redoslijedu


za svaku mašinsku instrukciju (hardwired/konvencionalni pristup),
•mikroprogramsko upravljanje (Wilkis 1953): Kontrolni signali se generišu izvršenjem
mikroinstrukcija zapisanih u internoj mikroprogramskoj memoriji procesora. Izvođenje svake mašinske
instrukcije (koja ima svoj asemblerski ekvivalent) se realizuje nizom elementarnih akcija koje se
implementiraju mikroinstrukcijama.
Prednost direktnog upravljanja je brzina a mikroprogramskog jednostavnost realizacije i
izmjena/otklanjanja grešaka u projektovanju.
Upravljačka jedinica sa direktnim upravljanjem

Varijante ovog tipa upravljačkih jedinica su upravljačke jedinice zasnovane na:


• tabeli stanja,
• elementima za kašnjenje
• brojačkoj sekvenci.

Prilikom izvođenja instrukcije procesor prolazi kroz niz internih stanja. Na osnovu tekućeg stanja i
skupa ulaznih signala, generišu se izlazni signali i procesor prelazi u novo stanje. Dio generisanih
izlaza se koristi kao ulazni signali sljedećeg stanja. Logika rada, može se predstaviti tabelom stanja,
kojom se opisuje prelazi procesora kroz interna stanja.
Problem sa realizacijom upravljačke jedinice upravljane na bazi tabele stanja je u veličini tabele, zbog
velikog broja mogućih stanja i velikog broja stanja ulaznih signala.

Upravljačka jedinica zasnovana na elementima za kašnjenje

Kod ovog koncepta upravljačkih jedinica, polazi se od dijagrama toka rada upravljačke jedinice. Za
reprezentaciju n stanja sistema koristi se n-bistabilnih elemenata jedan element po stanju. U datom
trenutku aktivan je samo jedan bistabilni element i taj ukazuje na tekuće stanje. Prelaz u novo stanje se
može predstaviti podskupom osnovnih koncepata dijagrama toka, pri čemu se svaki od ovih koncepata
implementira odgovarajućim upravljačkim kolom
Nedostatak ove metode je u velikom broju flip-flopova koji se koriste za reprezentaciju stanja sistema,
odnosno elemenata za kašnjenje. Sličan koncept realizacije je koncept zasnovan na brojačkoj sekvenci.
Metoda brojačke sekvence

Upravljačka jedinica ovog tipa pretpostavlja izvršenje mašinske instrukcije u k koraka. U i-tom koraku
aktivira se neki skup upravljačkih linija korištenjem odnosnog faznog impulsa Φi. Fazni impulsi Φ (i =
1, ..., k) generišu se kolom 'brojač sekvenci'. Sukcesivni impulsi na izlazu brojača sekvenci su
vremenski pomjereni za vrijeme trajanja impulsa
Mikroinstrukcije sadrže skup mikrokomandi koje kontrolišu izvršenje skupa mikrooperacija u toku
mikroinstrukcionog ciklusa. Ukoliko se svakom mikroinstrukcijom kotroliše izvršenje samo jedne
mikrooperacije, onda se radi o vertikalnim mikroinstrukcijama, a ako se jednom mikroinstrukcijom
može specifikovati izvršenje više mikrooperacija, onda se radi o horizontalnim mikroinstrukcijama.
Prednost vertikalnih mikroinstrukcija je u:
• maksimalnom iskorištenju mikroinstrukcione riječi, jer se specifikuje samo
operacija koja se izvodi,
• mikroprogramiranje je jednostavno zbog jednostavnosti formata mikroinstrukcija.

Ukoliko se u mikroprogramskoj memoriji nalazi veliki broj mikroinstrukcija koje se ponavljaju onda se
može primijeniti koncept nanoprogramiranja. Kod ovog koncepta, konvencionalna mikroprogramska
memorija se zamjenjuje mikroprogramskom memorijom od n riječi. Svaka riječ sadrži samo adresu
mikroinstrukcije u nanomemoriji. Na ovaj način se smanjuje zahtjev za ukupan kapacitet memorije
mikroprograma
ULAZNO/IZLAZNI PODSISTEM

Povezivanje procesora sa okolinom

Fizičko povezivanje mikroprocesora sa okolinom realizuje se preko električki provodljivih nožica –


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
čine spoljašnu magistralu procesora. Različiti procesori mogu imati određene specifičnosti u pogledu
broja i funkcija pojedinih linija.

Princip povezivanja sa U/I podsistemom

Princip povezivanja periferijskih jedinica i računara se vrši posredstvom U/I interfejsa. Kao i
memorijska sabirnica i U/I sabirnica sadrži adresne linije, linije podataka, i kontrolne linije. Adresne
linije služe za selekciju registara (portova) preko kojih se odvija komunikacija sa periferijskim
jedinicama, a preko linija podataka se vrši prenos informacija između periferija i računara. Kontrolnim
linijama se prenose kontrolne i statusne informacije i vrši sinhronizacija prenosa. Broj adresnih linija
kao i broj linija podataka ne moraju da korespondiraju broju odnosnih linija na memorijskoj sabirnici.

U/I interfejs

U/I interfejs kontroliše rad periferijskih jedinica u skladu sa naredbama procesora računara, i po potrebi
vrši konverziju podataka iz jednog formata u drugi.

U/I portovi

Periferijski interfej sadrži skup registara – U/I portova kojima CPU može da pristupa i preko kojih CPU
komunicira sa interfejsom.
Funkcije portova mogu biti:
• Baferovanje podataka ka/iz memorije,
• Čuvanje informacije o statusu uređaja sa kojim se komunicira,
• Registrovanje komandi CPU –a upućenih U/I interfejsu.
Skup portova predstavlja U/I programski model

Prema tipu podataka koji se izmjenjuju između porta i procesora, razlikujemo:


• port podataka (preko kojeg se izmjenjuju podaci),
• statusni port (preko kojeg procesor može dobiti informaciju o stanju prenosa, U/I interfejsa odnosno
uređaja),
• upravljački port, preko kojeg CPU postavlja komande i parametre za izvođenje U/I operacija.

Način selekcije U/I uređaja

Za selekciju U/I uređaja i transfer podataka ka perifernim uređajima (i obrnuto), procesor može koristiti
dva načina. Jedan je korištenjem specijalnih U/I instrukcija procesora (izolirani U/I), dok se drugi
realizuje korištenjem instrukcija za izmjenu podataka sa memorijom (memorijsko – mapirani U/I).

IN / OUT instrukcije izvršavaju transfer podataka slično memorijskim instrukcijama LD / ST, izuzev da
ne adresiraju memoriju nego U/I port. Pri izvođenju memorijskih instrukcija procesor aktivira signal
M/IO za selekciju memorije (logičko 1).
Kod memorijski – mapiranog U/I, I/O portovima se pristupa korištenjem memorijskih instrukcija.
Jedan dio memorijskog adresnog prostora je pridjeljen za adresiranje U/I portova.

Tehnike U/I komunikacije i prenosa podataka

Ako su U/I operacije u potpunosti kontrolisane od strane CPU-a onda se ovakav tip transfera naziva
programirani U/I prenos.

Programirani U/I prenos

Razlikujemo dvije varijante: uslovnu i bezuslovnu.


U varijanti bezuslovnog prenosa procesor ne ispituje status spremnosti periferije za komunikaciju; ovo
se primjenjuje kada se zna da je periferija uvijek spremna za U/I komunikaciju u trenutku iniciranja
transfera.
Tehnika prenosa podataka programiranim U/I ima veliki nedostatak u ogromnom gubitku procesorskog
vremena dok se čeka na spremnost periferije. U cilju minimizacije utroška procesorskog vremena pri
U/I komunikaciji, razvijene su prekidne tehnike prenosa podataka, kao i prenos podataka direktnim
pristupom memoriji.
Prekidna tehnika U/I komunikacije

Prekidi

Prekidi su događaji koji uzrokuju prekid izvršavanja normalnog toka programske sekvence. Ovi
događaji mogu biti različiti, a dijele se na softverske (generisane programom) i hardverske (generisane
hardverskim sklopovima/uređajima).
Prekid proizilazi iz višeg prioriteta servisiranja događaja koji uzrokuje prekid, u odnosu na prioritet
izvršavanja osnovnog programa. Servisiranje se realizuje aktiviranjem prekidne rutine (interrupt
service routine) koja treba da izvede sve potrebne akcije koje zahtijeva pojava tog događaja. Nakon
servisiranja događaja prekida programska sekvenca se vraća na tačku prekida, nakon čega se nastavlja
izvođenje osnovnog programa.
Određeni događaji najvišeg prioriteta uvijek uzrokuju prekid (npr. POWER FAIL, MACHINE
MULFUNCTION, ALARM, DIV BY ZERO, …). Maskirani prekidi se poslužuju samo ako procesor
prethodno postavi bitove dozvole prekida u statusnoj riječi procesora za odnosne događaje.
Procesor može prekinuti tekuću sekvencu kontrolnog toka samo između individualnih mašinskih
instrukcija. Razlog tome je to što program čije se izvršenje prekida, treba da nastavi rad od tačke
prekida nakon servisiranja događaja koji ga je generisao. Za to je potrebno čuvanje stanja procesora
(konteksta) u trenutku prekida, i restauracija tog stanja nakon servisiranja prekida. Pošto je za
izvođenje instrukcije osnovnog programa iza tačke prekida bitan samo kontekst programskog modela
nakon izvođenja prethodne instrukcije, onda se prekidi dozvoljavaju samo nakon kompletiranja
izvršenja jedne instrukcije a prije početka izvršenja druge.
Dakle, proces izvršenje jedne instrukcije bi se mogao opisati sekvencom:

CheckForInterrupt sekvenca utvrđuje postojanje zahtjeva za prekid, odnosno događaja koji zahtijevaju
posluživanje.
Automatsko čuvanje (dijela) programskog modela procesora, u procesu posluživanja prekida, obuhvata
obavezno programski brojač i statusnu riječ procesora. Ukoliko je broj registara procesora mali, onda
se najčešće pohranjuje kompletan programski model, a ukoliko je broj registara veliki, onda se zadatak
čuvanja/restauracije njihovog stanja realizuje u okviru ISR. Promjena stanja procesora (PC-a, registara
i statusne riječi) pri ulasku u servisnu rutinu i restauracija sačuvanog stanja pri povratku iz servisne
rutine naziva se promjena konteksta procesora.

Sistem sa većim brojem prekidnih linija

Najjednostavniji slučaj realizacije U/I komunikacije prekidnim mehanizmom je da svaka periferija ima
svoju prekidnu liniju. Svaka linija kojom se zahtijeva prekid ima obično fiksan prioritet. Za svaku
prekidnu liniju definisana je specifična adresa na koju se preusmjerava programska sekvenca u slučaju
događaja prekida (adresa ISR).
U okviru interne CheckForInterrupt (mikroprogramske) sekvence procesora se:
• utvrđuje zahtjev za prekid najvišeg prioriteta u IR,
• ukoliko je prekid tog nivoa dozvoljen, onda se ulazi u sekvencu posluživanja prekida (pohranjivanje
stanja i ulazak u ISR). Adresa ISR je određena zahtjevom INTRi koji se poslužuje.

Identifikacija povezivanjem

Kada se desi prekid uzrokovan zahtjevom za prekid INTRi na određenoj liniji, ulazi se u proces
posluživanja prekida aktiviranjem odgovarajuće ISR-e. Pri ulasku u ISRi nije 54 poznat izvor prekida,
jer je više 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 (što se utvrđuje ispitivanjem statusnih portova interfejsa) opslužuje se u ISRi.
Ova varijanta je pogodna ako je mala vjerovatnoća da dva interfejsa istovremeno traže zahtjev za
prekid.
Lančanje i vektorsko prekidanje

Kod ove tehnike i dalje je više U/I interfejsa vezano na jednu INTRi liniju – zahtjev za prekid.
Identifikacija U/I interfejsa koji je zahtijevao prekid i aktivacija rutine za posluživanje 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 (odnosno identifikator
na osnovu kojeg procesor identifikuje ISR). Da bi samo jedan uređaj (od više njih, koji su eventualno
postavili istovremeno zahtjeve za prekid) postavio prekidni vektor na linije podataka, koristi se
lančanje.

U/I komunikacija direktnim pristupom memoriji (DMA)

Komunikacija između perifernih jedinica i procesora je relativno jednostavan i efikasan mehanizam,


ukoliko su periferijske jedinice spore.
Međutim, transfer velikog broja podataka između brzih periferija (diskova npr.) i memorije preko
procesora mehanizmom prekida za transfer svakog pojedinačnog podataka, zahtijevao bi znatan
procenat procesorskog vremena.
Kanal za direktan pristup memoriji (DMA channel - direct memory access channel), je specijalni
interfejs koji omogućava periferiji da izvrši brz transfer podataka ka/iz memorije, bez učešća CPU
(odnosno, učešće CPU-a se svodi na iniciranje transfera).

Da bi DMA interfejs izvršio prenos podataka ka memoriji, on standardno postavlja procesoru zahtjev
za prekid INTR (kojim indicira spremnost za prijem/predaju podataka. Podaci se prenose u blokovima).
Procesor postavlja parametre prenosa: adresu početka memorijskog bloka, broj bloka diska, kao i broj
bajta koji se prenosi, te izdaje komandu za prenos koja sadrži i informaciju o smjeru prenosa.
DMA interfejs treba da dobije pravo upravljanja magistralom u toku transfera podataka ka/iz memorije
Zahtjev za upravljanje magistralom DMA saopštava procesoru preko linije BR (bus request), a
odobrenje od procesora dobija kada procesor postavi signal BG (bus grant).
Prije predavanja magistrale DMA interfejsu, procesor treba da završi tekuće korištenje magistrale
(tekući aktivni ciklus magistrale) i da postavi svoje izlaze na magistralu u neaktivno stanje (stanje
visoke impedanse). Ovo procesor može da uradi u više tačaka ciklusa mašinske instrukcije (npr. iza
faze pribavljanja, faze dekodiranja instrukcije, pribavljanja operanda itd).
Postoji nekoliko varijanti DMA prenosa sa stanovišta dužine kontrole nad magistralom:
Krađa ciklusa: DMA kontroliše sabirnicu prilikom prenoa podataka i kada CPU ne koristi magistralu
Standardni DMA prenos: Kod ove varijante DMA interfejs drži kontrolu nad sabirnicom za vrijeme
prenosa cijelog bloka podataka.
Po trećoj varijanti DMA kontroler koristi magistralu u mašinskim ciklusima u kojima je ne
koristi CPU.
HAZARDI KOD POTOČNE OBRADE

Hazard je okolnost koja sprečava da funkcionalna jedinica izvršava instrukciju maksimalnom brzinom.
Hazardi se mogu javiti zbog:
• zavisnosti po podacima između instrukcija
• konflikata u korištenju zajedničkih resursa pri istovremenom izvođenju različitih instrukcija
(strukturni hazardi)
• promjene instrukcionog toka (uzrokovan instrukcijama grananja i drugim instrukcijama koje
mijenjaju kontrolni tok - upravljački hazardi).

Hazardi uzrokuju da se rad cijelog protočnog sistema ili njegovog dijela privremeno zaustavi, što
uzrokuje degradaciju radnih performansi. Obično, kada se zaustavi izvršenje neke instrukcije u
protočnom stepenu, onda se zaustavlja izvršenje i svih drugih instrukcija u protočnom sistemu koje
slijede iza zaustavljene instrukcije dok se produžava izvršenje instrukcija koje su u protočnom sistemu
ispred zaustavljene instrukcije. Ovo znači da se u slučaju pojave zastoja (hazarda) u nekom protočnom
stepenu zaustavlja i dalje pribavljanje instrukcija.
U cilju smanjenja broja hazarda koriste se različiti postupci koji se mogu podijeliti na statičke i
dinamičke. Statičke (softverske) tehnike su postupci koji se primijenjuju prije samog izvođenja,
odnosno postupci u fazi prevođenja programa. Ove tehnike se zasnivaju na identifikaciji karakteristika
programa (prije svega zavisnosti po podacima između instrukcija) i potencijalnih hazarda koji se
nastoje eliminisati preuređenjem programskog kôda. Dinamičke tehnike se baziraju na preuređenju
redoslijeda izvođenja instrukcija u toku samog izvršenja, korišćenjem dodatnih hardverskih sklopova
na samoj CPU.

Hazardi uzokovani zavisnošću po podacima

Pristup zajedničkim varijablama za čitanje/pisanje od strane različitih instrukcija koje se nalaze u


protočnom sistemu, može dovesti do različitih rezultata ako se instrukcije izvedu različitim
redoslijedom. Ovaj tip zavisnosti između instrukcija se naziva zavisnost po podacima.
Mijenjanje originalnog redoslijeda instrukcija je dopustivo samo ako to mijenjanje nema uticaja na
konačan rezultat izvršenja programa.
Ukoliko se instrukcije, između kojih postoji zavisnost po podacima, ne izvode po originalnom
redoslijedu, dolazi do logičkih hazarda
Raspoređivanje instrukcija za izvođenje

Planiranje redoslijeda izvršenja instrukcija je moguće u fazi prevođenja (statičko raspoređivanje) i u


toku samog izvršenja (dinamičko raspoređivanje).
Statičko raspoređivanje obavlja prevodilac, na osnovu analize programa i utvrđivanja zavisnosti po
podacima između instrukcija. Prevodilac nastoji povećati rastojanje između iniciranja izvršenja
instrukcija kod kojih postoji zavisnost po podacima. Na taj način se obezbjeđuje raspoloživost
operanada za pristup od strane instrukcije čije izvršenje zavisi od izvršenja neke prethodne instrukcije.
Dinamičko raspoređivanje je prvi put implementirano u sistemu IBM 360/91 sa višestrukim
funkcionalnim jedinicama za operacije u pokretnom zarezu.

Šema (Tomasulov algoritam) razrješava konflikte u korištenju hardverskih resursa i obezbjeđuje


redoslijed izvršenja određen zavisnošću po podacima na bazi markacije registara (register tagging) .
Ukoliko pri iniciranju izvršenja instrukcija potrebni operandi nisu raspoloživi, onda se instrukcija
prosljeđuje u rezervacionu stanicu (RS) sa odgovarajućim markiranjem potrebnih registara/operanada.
Instrukcija čeka u RS dok se prethodno ne izvedu sve potrebne instrukcije u cilju očuvanja zavisnosti
po podacima i dok potrebni operandi ne postanu raspoloživi. Kada se ti uslovi ispune (signaliziranjem
odgovarajućom markacijom od strane tag jedinice), instrukcija se iz RS prosljeđuje funkcionalnoj
jedinici za izvršenje. Kada se pojavi rezultat neke operacije na magistrali sa odnosnom markacijom,
onda i odredišni registar i RS koja očekuje odnosni podatak, ažuriraju svoj sadržaj. Ako time neka
instrukcija/operacija postaje raspoloživa za izvršenje, onda se ona prosljeđuje funkcionalnoj jedinici sa
potrebnim operandima.
Srukturni hazardi

Ovaj tip hazarda se javlja kada dolazi do konflikta u korištenju hardverskih resursa procesora.

Upravljački hazardi

Zastoj u protočnom sistemu može biti uzrokovan i promjenom instrukcionog toka.


Pri promjeni instrukcionog toka potrebno je izračunati ciljnu adresu grananja i eventualno uslove na
osnovu kojih se odlučuje o grananju (kod instrukcija uslovnog grananja). Ciljna adresa nije uvijek
unaprijed poznata: ona se često mora izračunati/dobiti u toku izvršenja instrukcije.

Izvršavanje instrukcija grananja posjeduje određene specifičnosti koje mogu uticati na pojavu zastoja u
protočnom sistemu a to su:
• Instrukcija koja se izvodi nakon instrukcije grananja zavisi od rezultata izvršenja same instrukcije
grananja,
• Operand na osnovu kojeg se procjenjuje uslov grananja može zavisiti od neke ranije instrukcije,
• Ako se grananje obavlja, pribavljanje i izvršenje naredne instrukcije ne može početi sve dok se ne
sračuna BTA (branch transfer addresss),
• Sračunavanje BTA može zavisiti od neke ranije instrukcije.

U cilju analize efekata grananja, definišimo slijedeće pojmove:


• Ostvarenje grananja (branch taken), akcija pribavljanja nesekvencijalne udaljene instrukcije nakon
izvođenja branch instrukcije,
• Meta grananja (branch target) je instrukcija koja se izvodi u slučaju ostvarenja grananja,
• Slotovi kašnjenja (delay slots), broj neiskorištenih ciklusa b u k-stepenom protočnom sistemu, između
instrukcije u kojoj je došlo do ostvarenja grananja i mete grananja

U cilju smanjenja cijene grananja koriste se različite tehnike:


A. Zakašnjeno grananje (delayed branch),
B. Predviđanje grananja,
C. Druge tehnike smanjenja cijene grananja.

Zakašnjeno grananje

Umjesto da se u slučaju grananja prazne sve instrukcije u protočnom sistemu između instrukcije
grananja i mete , kod ove tehnike se nastavlja sa izvršenjem jednog broja ( b ) instrukcija iza instrukcije
grananja bez obzira na to da li je grananje izvršeno ili ne.
Instrukcije koje se umeću u slot kašnjenja mogu biti:
• Instrukcije ispred instrukcije grananja,
• Instrukcije sa puta gdje se grananje obavlja,
• Instrukcije sa puta gdje se grananje ne obavlja.

Prilikom umetanja instrukcija potrebno je sačuvati originalne relacije zavisnosti po podacima između
instrukcija i obezbijediti da modifikovani program produkuje isti rezultat kao originalni program.
Preuređenje programske sekvence u cilju popune slota kašnjenja je najčešće zadatak programskog
prevodioca.Suštinski, postoje tri mogućnosti:
1. Instrukcije u slotu kašnjenja se uvijek izvode,
2. Protočni sistem se prazni (poništavaju se instrukcije u slotu kašnjenja), ako se grananje ne obavlja,
3. Protočni sistem se prazni (poništavaju se instrukcije u slotu kašnjenja), ako se grananje obavlja.
Predviđanje grananja

Predviđanje grananja je važno zbog smanjivanja cijene grananja.


Predviđanje da li će se grananje desiti ili ne, može se izvršiti statički – u fazi prevođenja (na bazi
karakteristika – koda instrukcije grananja), ili dinamički, na bazi istorije grananja registrovane za
vrijeme izvođenja programa.
Statičko se vrši u fazi prevođenja. Statički podaci govore da se kod instrukcija uslovnog grananja
grananje češće događa, pa se bolji rezultati dobijaju ako se grananje predvidi.Tačnost ove tehnike je
negde oko 75%.
Kod dinamičke strategije predviđanja,predviđanje da li će doći do grananja ili ne pri izvođenju
instrukcije grananja se bazira na prethodnoj istoriji grananja odnosne instrukcije. Za implementaciju se
koristi bafer ciljnog grananja BTB.Ovo tehnik se dobija tačnost između 86% i 96%.

Predikacija

Predikacija je uslovno izvršenje instrukcija. U tradicionalnim arhitekturama, uslovno izvršenje se


implementira instrukcijama grananja. IA-64 ahitektura implementira ovu funkciju 102 korištenjem
predikatskih instrukcija. Vrijednost predikata se postavlja intrukcijom poređenja u odnosni predikatski
registar. Predikovana instrukcija se izvodi ako je vrijednost predikata 1 (1 – bitna vrijednost u
predikatskom registru), u suprotnom predikovana instrukcija ima isti efekat kao i nop (no operation)
instrukcija. Predikatskim izvođenjem se izbjegavaju grananja tako što se kontrolne zavisnosti
transformišu u zavisnost po podacima.
HIJERARHIJSKA ORGAIZACIJA MEMORIJE

Informacije smještene u hijerarhijski organizovanom memorisjkom sistemu (M1, M2, …, Mn) imaju tri
karakteristične osobine: inkluziju (uključenost), koherentnost i lokalnost. Skup svih adresibilnih riječi u
Mn čini virtuelni adresni prostor računara.

Inkluzija

Osobina inkluzije se iskazuje sa: M1 ⊂ M2 ⊂ M3 ⊂ … ⊂ Mn.


Inkluzija skupova implicira da su sve informacije originalno pohranjene u spoljnjem nivou Mn . U toku
obrade, dio informacija se kopira u Mn-1. Analogno, podskup Mn-1 se kopira u Mn-2 itd. Tj. ako se
informaciona riječ nalazi u Mi, onda se kopije te informacije takođe nalaze u svim višim nivoima
Mi+1, Mi+2, … , Mn, ali informacija koja se nalazi u Mi+1 ne mora postojati u Mi u posmatranom
trenutku. Nepostojanje riječi u Mi (word miss) implicira nepostojanje te riječi u svim nižim nivoima
(Mi-1, Mi-2, … , M1). Najviši nivo je memorija za arhiviranje (backup storage) gdje se mogu naći sve
informacije.

Koherentnost

Svojstvo koherentnosti zahtijeva da informacija na nekom nivou, ima konzistentne (identične) kopije
na slijedećim - višim nivoima. Održavanje koherentnosti se može realizovati slijedećim strategijama:
− Upis odmah ( write through - WT),
− Odgođeni upis ( write back - WB).
WT strategija ažurira odgovarajuću kopiju u Mi+1, čim je došlo do ažuriranja neke riječi u Mi. WB
metod odgađa ažuriranje informacije u Mi+1, sve do momenta dok se odnosna informacija ne uklanja
iz Mi.

Lokalnost

Lokalnost referenciranja je svojstvo programa da memorijske adrese, generisane u toku izvršavanja


programa, imaju tendenciju grupisanja posmatrano sa aspekta vremena i prostora. U najvećem broju
programa, 90% vremena programskog izvršenja proističe izvršenjem 10% programskog koda . Kao
posljedicu imamo svojstvo lokalnosti: ovo svojstvo ima tri dimenzije: temporalnu, prostornu i
sekvencijalnu.
Temporalna lokalnost je svojstvo da će memorijske reference, generisane u najbližoj prošlosti,
vjerovatno ponovo biti generisane u skoroj budućnosti.
Prostorna lokalnost je svojstvo da se generišu memorijske reference koje su bliske jedna drugoj.
Sekvencijalna lokalnost se odnosi na činjenicu da se često generiše sekvencijalni niz adresa .

Planiranje memorijske organizacije

Performanse memorijskog sistema zavise od efektivnog vremena pristupa (effective access time) Teff
bilo kom nivou u memorijskoj hijerarhiji, i od frekvencije pristupa tim nivoima.
Stopa pogađanja (hit ratio) hi je vjerovatnoća da je zahtijevana informacija raspoloživa u Mi. Stopa
promašaja (miss ratio) se definiše kao 1- hi.
Frekvencija pristupa (access frequency) nivou Mi se definiše kao: fi = (1- h1) (1- h2) … (1- hi-1) hi.
Efektivno vrijeme pristupa se definiše kao:

gdje su t1, t2, …, tn vremenski gubici (cijena u vremenskim jedinicama) koja se mora platiti za
pristupanje slijedećem višem nivou u memorijskoj hijerarhiji. Vrijeme pristupa kešu (za slučaj da
informacija nije raspoloživa u registrima) je t1, cijena (vrijeme pristupa) zbog nepostojanja informacija
u kešu prvog nivoa (promašaj bloka – block miss) je t2, cijena zbog nepostojanja informacija u glavnoj
memoriji (promašaj stranice – page fault) je t3 (ako je glavna memorija slijedeći nivo u memorijskoj
hijerarhiji) itd. t1 < t2 < …< tn. Stone (1990) je pokazao da je cijena promašaja keša 2-4 puta skuplja
od cijene pogađanja keša, dok je cijena promašaja stranice u glavnoj memoriji (page fault) 1000 – 10
000 puta veća od cijene pogađanja.

Koncept virtuelne memorije

Glavna memorija se često naziva i fizička memorija. U ovoj memoriji se nalaze programi u toku
izvršenja kao i podaci i rezultati koje ovi programi koriste/produkuju.
Koncept virtuelne memorije omogućuje virtuelno proširenje glavne memorije sekundarnom
memorijom, čime se postiže da veći broj programa može istovremeno koristiti fizičku memoriju
Skup adresa, preko kojih se može pristupiti raspoloživim memorijskim lokacijama glavne memorije
čini fizički adresni prostor. Adrese koje generiše programski prevodilac prilikom prevođenja izvornog
programa, odnosno instrukcije prilikom izvođenja su virtuelne adrese.

Privatna virtuelna memorija

U ovom modelu, svakom procesoru se pridjeljuje privatni virtuelni adresni prostor. Svaki privatni
virtuelni prostor je izdijeljen na stranice. Stranice različitih virtuelnih prostora se mapiraju u stranice
iste fizičke memorije, koja je zajednička za sve procesore.

Dijeljena virtuelna memorija

U ovom modelu, virtuelni adresni prostori svih procesora se kombinuju u jedinstveni dijeljeni virtuelni
adresni model. Svakom procesoru se dodijeljuje dio jedinstvenog adresnog prostora. Virtuelni adresni
prostori različitih procesora mogu da se preklapaju.
Straničenje, TLB, Segmentacija

Kod tehnike straničenja, u cilju preslikavanja virtuelnog u fizički adresni prostor i virtuelni i fizički
adresni prostor se dijele na stranice iste dužine.
Koriste translacione mape koje se mogu implementirati na različite načine. Ove mape mogu biti
smještene u keš memoriju, specijalnu asocijativnu memoriju ili u glavnu memoriju. Svaka mapa sadrži
određeni broj ulaza, a svakim ulazom se specifikuje translacija. Pristup odgovarajućem ulazu u tabeli se
vrši na bazi funkcije mapiranja, koja se primjenjuje na virtuelnu adresu. Mapiranje se može
implementirati hash ili kongruentnom funkcijom.

Varijante translacionih mapa su keš straničenja (TLB – table lookaside buffer) i tabela straničenja (PT –
page table).
TLB je brza memorija koja sadrži najčešće referencirane ulaze tabele straničenja. Najpovoljnija
varijanta je ako se translacija virtuelne u fizičku adresu realizuje preko TLB ulaza. Ukoliko TLB ne
sadrži ulaz koji specifikuje translaciju, onda se traženje nastavlja u tabeli straničenja.
Tabele straničenja (PT) sadrže suštinski iste ulaze kao i TLB (koji specifikuju asocijaciju između
virtuelnih i fizičkih stranica – okvira). Ove tabele se kreiraju u glavnoj memoriji nakon kreiranja
korisničkih procesa (za svaki proces se kreira posebna PT). S obzirom da broj aplikativnih procesa
može biti veliki, broj PT u memoriji može takođe biti veliki. I TLB i PT se moraju dinamički ažurirati
kako bi odražavali aktuelno stanje.
Ukoliko se tražena stranica ne nalazi u memoriji (ne postoji par (virtuelna stranica, fizička stranica) u
PT), onda se generiše stranična greška (page fault). U tom slučaju se tekući proces suspenduje, aktivira
se novi proces (izvršava se context switch), a tražena stranica se dobavlja sa diska/jedinice magnetne
trake, u memoriju. Nakon tog transfera suspendovani proces se stavlja u listu spremnih procesa, i nakon
njegovog aktiviranja, nastavlja se izvršenje od one instrukcije koja je generisala straničnu grešku.

Direktno straničenje

U posebnom registru se čuva tabela straničenja procesa. Broj virtuelne stranice se koristi kao indeks u
tebeli straničenja, iz koje se čita odgovarajući broj fizičke stranice (broj okvira). Ovaj broj se
kombinuje sa pomjerajem virtuelne adrese čime se dobija željena realna (fizička) adresa.
Prethodno opisana tehnika (direktnog) straničenja je pogodna ako virtulni adresni prostor nije izuzetno
veliki (do 32 bita). U slučaju velikog virtuelnog adresnog prostora PT bi postale izuzetno velike. U
takvim slučajevima koriste se invertovane tabele straničenja (IPT).
Inverzno straničenje

Kod ove tehnike invertovana tabela straničenja (IPT) sadrži jedan ulaz za svaku fizičku stranicu
(frame). Prema tome, broj ulaza je određen brojem fizičkih umjesto virtuelnih stranica.
Polje veza formira lanac IPT ulaza koji imaju istu hash vrijednost.
Npr, hash funkcija može mapirati broj virtuelne stranice → indeks ulaza u IPT na slijedeći način:

indeks ulaza u IPT = broj virtuelne stranice mod n

gdje je n broj fizičkih stranica (frame-ova).

Sadržaj vrijednosti virtuelne adrese stranica# (vrijednost ključa) se upoređuje sa vrijednošću str.# u
ulazu u tabeli straničenja koji odgovara vrijednosti hash funkcije za datu virtuelnu stranicu. Ako su
vrijednosti iste, onda se odgovarajući broj fizičke stranice dobija u polju ulaz#. Ako se vrijednosti
ključa ne poklapaju, onda se preko polja ‘veza’ ide na slijedeći ulaz sa istom hash vrijednošću i
postupak ponavlja dok se ne pronađe fizička stranica, ili utvrdi da tekućoj virtuelnoj adresi nije
pridružena nijedna (fizička) stranica u glavnoj memoriji (frame). U posljednjem slučaju generiše se
stranična greška.
Segmentiranje

Segmentiranje. U memorijskom sistemu sa segmentiranjem, korisnički programi su strukturirani u


logičke segmente koji mogu biti različite dužine.
Broj segmenta se koristi kao indeks u segmentnoj tabeli. Ulaz segmentne tabele sadrži pored
specifikacije bazne fizičke adrese i specifikaciju maksimalne dužine segmenta.
MISD ARHITEKTURE (SISTOLIČNI PROCESORI)

Mnogi problemi koji zahtijevaju intenzivna računanja (procesne resurse) i koji sadrže visok stepen
paralelizma mogu se efikasno riješiti primjenom jednostavnih procesnih elemenata organizovanih u
neku regularnu strukturu (mreža, stablo, linearno polje i sl.).
Informacije u ovaj (sistolični) sistem se "upumpavaju" preko vanjskih ćelija, preko kojih se ostvaruje i
izlazna veza. Bazični element najčešće omogućava samo jednostavne operacije, kao npr. sabiranje i
množenje,
Procesni element može da procesira podatke i ostvaruje vezu sa drugim elementima paralelno (više bita
odjednom) ili serijski, može biti sa ili bez lokalne memorije. Podaci ulaze u sistolično polje, obrađuju
se u procesnim elementima po principu protočne obrade i prenose u slijedeće procesne elemente
ritmično i sinhrono. Komunikacija izme|u procesnih elemenata je jednostavna i lokalizovana na
najbliže susjede, što omogućava (zbog malog rastojanja) povećanje frekvecnije radnog takta.

Sistolični procesori zahtijevaju specifično projektovanje algoritama za određene računski intenzivne


probleme i odgovarajuću organizaciju sistoličnog polja. Visoke performanse i niska cijena
implementacije uticali su na primjenu sistoličkih polja u mnogim oblastima

Hardverski bazirana spekulacija.Uloga ROB-a (Reorder Buffer).

Bafer za promenu redosleda (ROB) se korsiti u Tomasulo algoritmu za vanredno izvršavanje


instrukcija.
On dozvoljava instrukcijama da budu privržene u redu. Obično postoje tri faze instrukcija: izdavanje,
izvršavanje i pisanje rezultata. U Tomasulo algoritmu, postoji dodatna faza "privrženje". U ovoj fazi,
rezultati instrukcija će biti sačuvani u registru ili memoriji. U fazi pisanja rezultata, rezultati se stave u
bafer za promenu redosleda. Ceo sadržaj ovog bafera se onda može koristiti pri izvršavanju drugih
instrukcija koje zavise od ove.
Postoje dodatna polja u svakom unosu u bafer:
* Tip instrukcije (skok, postavljanje u memoriju, postavljanje u registar).
* Destinacija (adresa memorije ili registarski broj)
* Rezultat (vrednost koja ide u destinaciju ili indikacija (ne)uspešnog skoka)
* Validnost (da li rezultat već postoji)
Dodatne prednosti ovog bafera su omogućavanje preciznih izuzetaka i jednostavne rollback kontrole
ciljnih adresnih predviđanja (grananje ili skok). ROB radi tako što čuva instrukcije redom kojim ih je
uvezao. ROB-u takođe može da se pristupi sa strane jer svaka rezervaciona stanica ima dodatni
parametar koji pokazuje na instrukciju u ROB-u. Kada predviđanje skoka nije tačno, ili se desi
nepopravivi izuzetak u instrukcijskom toku, ROB se prazni tako da ne sadrži instrukcije i rezervacione
stanice su postavljene na početak.
Različiti načini adreiranja

Register: mov ax, bx


Immediate(neposredno): add eax, 16
Direct: mov al, temp
Register Indirect: address = [register]; mov eax, offset arrayB; mov al ,[eax];
Based: address = [baseReg + disp]; mov edx, 4 ; mov al, arrayB[edx]
Indexed: address = [indexReg* Scale + Disp]; mov esi, 1; mov arrayB[esi * 1], ‘S’
Ciklus izvršavanja instrukcije

3.3

Program koji računar izvodi, nalazi se u glavnoj memoriji računara. Program u glavnoj memoriji može
biti trajno upisan (u memoriju sa trajnim sadržajem ROM-EPROM), ili se puni u glavnu memoriju
(RAM) sa sekundarne memorije (koja je takođe memorija sa trajnim sadržajem), sistemskim
programom. Prva varijanta je karakteristična za specijalizovane računare za upravljanje procesima koji
rade u otežanim eksploatacionim uslovima, dok je druga varijanta karakteristična za računare opše
namjene.
Kontrolna jedinica dobavlja instrukcije iz memorije, dekodira ih i generiše niz upravljačkih signala u
pravom trenutku i u korektnoj sekvenci kojima se obezbjeđuje izvršenje operacije specifikovane
instrukcionim kodom u izvršnoj jedinici procesora
S obzirom da se mnogi rezultati izvršenja instrukcija koriste u kasnijoj fazi kao operandi (podaci)
potrebno ih je memorisati. Registri CPU-a mogu čuvati ove međurezultate, ali je broj registara u
procesoru mali a instrukcije za svoje izvršenje često zahtijevaju operande u registrima. Zbog
navedenog, pored instrukcija, u glavnoj memoriji se nalaze i podaci sa kojima program operiše u toku
svoga izvođenja. Za trajno čuvanje podataka i programa koristi se jeftinija sekundarna memorija
(magnetni/optički diskovi, magnetne trake). Magnetni diskovi se u određenim slučajevima mogu
koristiti i za privremeno smještanje dijelova programa/podataka u toku izvođenja, kada kapacitet
glavne memorije nije dovoljan. Procesor ne može direktno dobavljati instrukcije niti podatke iz
sekundarne memorije nego se to realizuje preko glavne memorije.
Preko U/I sistema računar komunicira sa spoljnim svijetom. Osnovni zadatak ovog sistema je
transformacija informacija iz forme razumljive objektima spoljnjeg svijeta (ljudi, senzori, izvršni
organi itd.) u formu razumljivu računaru i obrnuto.
Концепт микропрограмске управљачке јединице. Представите блок шему микропрограмске
управљачке јединице и опишите како микропрограмска управљачка јединица генерише
управљачке сигнале приликом извршења машинских инструкција.

Kontrolni signali se generišu izvršenjem mikroinstrukcija zapisanih u internoj mikroprogramskoj


memoriji procesora. Izvođenje svake mašinske instrukcije (koja ima svoj asemblerski ekvivalent) se
realizuje nizom elementarnih akcija koje se implementiraju mikroinstrukcijama.
Navediti i opišite koncept projektovanja paralelnih programa. Šta je najčešći cilj koji se želi
ostvariti pri paralelnom izvršenju programa, i koji su (međusobno konfliktni) principi kojima se
želi ostvariti željeni cilj ? Šta je rezultat primjene prethodnih principa?

Prestrukturiranjem postojećih algoritama ili konstrukcijom novih, može se obezbijediti znatno


povećanje iznosa paralelizma. Konkurentnost se pojavljuje kao fundamentalni zahtjev za algoritme i
programe. Dalje, mnogi postojeci sekvencijalni jezici sadrže konstrukcije koje limitiraju mogućnost
detekcije paralelizma u postojećim programima. Sekvencijalni programi nisu automatski prilagodljivi
za izvođenje za slučaj povećanja broja procesora u sistemu i obima problema. Mogućnost proširenja u
navedenom smislu se takođe nameće kao jedan od bitnih zahtjeva za paralelne programe.
Kompleksnost paralelnog programiranja izrazito potencira modularnost kao fundamentalni princip
programiranja. Aspekti modularnosti sekvencijalnog programiranja moraju biti prosireni, s obzirom na
specificnost paralelnih sistema. Optimalno izvođenje podrazumijeva postojanje funkcije cilja koja
može biti: minimalno vrijeme izvršenja programa (algoritma), ravnomjerno opterećenje procesnih
resursa, minimalna cijena izvođenja i sl.
Projektovanje se moze strukturirati u 4 faze:
• Particionisanje – ima za cilj da cijeli proces izđeli na veci broj zadataka između kojih postoji
potencijalno velika mogucnost konkurentnog procesiranja. Zadaci obuhvataju kako racunanja tako i
podatke nad kojima se racunanja izvode. Dobra pođela implicira ravnomjernu raspođelu, kako
racunanja tako i podataka po zadacima.
• Ustanovljavanje veza – faza u kojoj se ustanovljava zavisnost između zadataka i potrebni transferi
podataka između njih. Za specifikaciju komunikacije je potrebno definisati podatke i komunkacione
veze između zadataka.
• Ukrupnjavanje – vrsi se 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 funkcije cilja je kompleksan
problem. Ako je funkcija cilja minimizacija vremena sistema zadatka na paralelnoj arhitekturi, onda se
govori o algoritmu raspoređivanja. Za postizanje navedene funkcije ciljaalgoritmi raspoređivanja se
baziraju na strategiji raspoređivanja konkretnih zadataka na razlicite procesore i na strategiji
objedinjavanja izvrsenja zadataka na jednom procesoru u cilju smanjenja komunikacionih aktivnosti.
Uobičajena funkcija cilja za izvođenje neke aplikacije na paralelnom sistemu u teoretskim
razmatranjima je minimizacija vremena izvršenja, a za skup nezavisnih programa, optimalan balans
opteredenja po procesnim elementima. U praksi, najčešće je od interesa dobijanje najpovoljnijeg
odnosa performansa/cijena, gđe cijena uključuje ne samo cijenu procesiranja nego i razvoja aplikacije.
Prethodno navedeno pitanje implicira inherentno postojanje paralelizma u aplikativnom problemu, te
optimalnu eksploataciju istog u paralelnom sistemu. Aplikativni problem se može riješitiodređenim
uređenim skupom operacija – algoritmom, koji se može posmatrati na različitim nivoima apstrakcije:
nivou zadataka, podzadataka, procedura, grupa instrukcija, samih instrukcija ili elementarnih operacija.
Sprežna mreža FNN (rešetka).

Funkcije povezivanja za ovu mrežu predstavljene su na slici i definisane su sa :


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 = N podrazumjeva kao celi broj.Slično kao kod PM2I mreža, rutiranje u FNN mreži se može
ostvariti na bazi razlike adresa odredišnog i izvorišnog procesora.
Ako posmatramo PM2I i FNN mrežu gdje obe povezuje N procesora i gde je
N = 2m za PM2I i n = N (celi broj) za FNN mrežu (odnosno n = 2m / 2 ), onda je
PM2I+0 = FNN+1,
PM2I–0 = FNN–1,
PM2I+m/2 = FNN+n,
PM2I– m/2 = FNN–n.
Implikacija je da su FNN funkcije povezivanja podskup PM2I funkcija. Ovaj tip sprežnih mreža je
često korišten u aktuelnim sistemima: Intel Paragon, CM-2, ASCI Red, Cray T3E (3D-torus) itd
Sprežna mreža PM2I

Funkcije povezivanja za ovu mrežu su definisane izrazom:

gdje je 0 < j < N - 1, 0 < i < log_2 N - 1.

Ukupno ima 2m funkcija povezivanja. U ovoj šemi povezivanja, procesor sa adresom P može poslati
podatke svim drugim procesorima čije su adrese ( j ± 2 i ) (mod N). Određivanje rute za komunikaciju
između procesora može se bazirati na razlici adresa odredišnog i izvorišnog procesora.

Za komunikaciju između procesora 1 i 12 (N = 16), razlika adresa je 11, pa podatak može stići na
odredište korištenjem funkcija PM2I_+0 , PM2I_+1 , PM2I_+3 , prolazeći kroz čvorove 2,4. Različit
skup funkcija rezultovaće istim odredištem, ako je vrijednost ∑ 2^i jednaka razlici adresa odredišta i
izvorišta, gđe je i indeks PM2I funkcija iz skupa. Data manipulator višestepene sprežne mreže su
bazirane na PM2I mrežama.
Asocijativni procesori

Za razliku od klasičnih računara, gdje se referenciranje nekog podatka u memoriji ostvaruje na osnovu
adrese, asocijativni procesori referenciraju podatke u memoriji na osnovu njihovog sadržaja. Na taj
način je moguće referenciranje više podataka istorvremeno. Memorija koja ima navedene
mogućnosti ,naziva se asocijativna memorija.Tipična organizacija asocijativne memorije data je na
slici:

Upravljačka logika specifekuje preko registra za komparaciju sadržaja svih nemaskiranih djelova CR sa
svim lokacijama asocijativne memorije. Komparaciju izvodi kontrolno logika pridružena memorijskoj
lokaciji. Komparacija se može izvoditi serijski,bit po bit ili paralelno. Asocijativni procesori se
povezuju na računar domaćin kao specijalni procesori za određene aplikacije. Modul za povezivanje sa
okolinom obezbeđuje širok spektar mogućnosti : direktan pristup memoriji, paralelni U/I ,spregu sa
drugim specijalizovanim procesorima, korištenje senzorskih ulaza. Sve ovo omogućava postizanje
visokih performansi u aplikacijama kao što su matične operacije,upravljački sistemi u stvarnom
vremenu i drugi.Zbog skupe realizacije komparatorske logike asocijativne memorije su malog
kapaciteta i skupe, što limitira njihovu upotrebu za specijalizovane namjene. Značajna primjenu imamo
u realizaciji keš memorija.
Uzroci vremenskih gubitaka u paralelnim sistemima i njihov uticaj na koncept razvoja
paralelnih programa.

Teoretski, maksimalno ubrzanje koje se može postići izvođenjem 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 počeli i završi-li procesiranje u istim vremenskim trenucima. U praksi, ostvarivanje
ovakvih maksimalnih performansi se ne postiže zbog gubitaka vremena prouzrokovanih:
• komunikacionim kašnjenjima,
• sinhronizacijom između procesora,
• nezaposlenošću procesora (prazni hodovi procesora),
• neophodnim upravljačkim aktivnostima operativnog sistema.

Generalizovana kocka

Ova mreza se sastoji iz m = log2N stepeni, gdje je N broj ulaznih odnosno izlaznih elemenata koji se
povezuju. U svakom stepenu postoji N/2 prekidackih elemenata (ukupno m* N/2) i po N ulaznih i
izlaznih veza oznacenih od 0 do N – 1. Ako se veze oznace tako da gornji (donji) ulazi(izlazi)
prekidackih elemenata imaju istu oznaku, onda stepen i generalizovane kocke implementira
funkciju povezivanja Cubei, jer vrsi povezivanje linija cije se adrese razlikuju u i-toj bit poziciji. Ako
se ostvaruje veza svih ulaza na po 1 izlaz onda se koriste samo direktna i unakrsna stanja.
Hiperkocka

SIMD
Kod arhitektura ovog tipa postoji jedan sekvencijalni tok instrukcija i jedna kontrolna jedinica koja
upravlja istovremenim izvršenjem svake instrukcije na više procesnih elemenata. Svi omogućeni
procesni elementi izvode (istu) instrukciju nad različitim podacima, čime se realizuje paralelna obrada
na određenom 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 upravqačkih signala iz kontrolne jedinice, ovakve arhitekture su pogodne za
eksploataciju sitnozrnastog paralelizma.
Procesori sa SIMD arhitekturom: Intel SSE and MMX (Pentium III, SSE4 - Core series), ARM NEON
(Cortex-A8,Cortex-A9), MIPSMDMX.
Signali koje produkuje upravljačka jedinica

Kontrolna zavisnost između instrukcija

Pristup zajedničkim varijablama za čitanje/pisanje od strane različitih instrukcija koje se nalaze u


protočnom sistemu, može dovesti do različitih rezultata ako se instrukcije izvedu različitim
redoslijedom. Ovaj tip zavisnosti između instrukcija se naziva zavisnost po podacima. Mijenjanje
originalnog redoslijeda instrukcija je dopustivo samo ako to mijenjanje nema uticaja na konačan
rezultat izvršenja programa. Ukoliko se instrukcije, između kojih postoji zavisnost po podacima, ne
izvode po originalnom redoslijedu, dolazi do logičkih hazarda:

You might also like