55
ARHITEKTURA RAČUNARA Računarski sistem je skup međusobno povezanih elemenata koji djeluju ka ostbarenju funkcij cilja. Karakterišu ga: struktura (način na koji su komponente međusobno povezane) i funkcija (djelovanje nekih komponenti). Organizacija računara je hijerarhijska: svaka glavna komponenta se razlaže na podkomponente, a onda podkomponente se opisuju svojom vlastitom strukturom i funkcijom. To znači da se hijerarhijska organizacija računara opisuje odozgo prema dole: Osnovne komponente računarskog sistema su: procesor, memorija, U/I. Procesor: procesorske osnovne komponente su: kontrolna jedinica, registri, aritmetičko-logička i izvršna jedinica. Kontrolna jedinica: obezbjeđuje kontrolne signale za rad i koordinaciju svih ostalih procesorskih elemenata. Računarska arhitektura se odnosi na sistemske osobine koje su vidljive programeru, tj. osobine koje imaju direktan uticaj na logičko izvršavanje programa. To su: instrukcijski set, broj bitova za predstavljanje različitih tipova podataka, U/I mehanizmi i tehnike adresiranja memorije. Računarska organizacija se odnosi na operativne jedinice i njihovo povezivanje kojima se ostvaruju arhitekturne specifikacije. To su: kontrolni signali, različiti interfejsi između računara i memorijske tehnologije. Pitanje arhitekture je da li će računar imati instrukciju za množenje, a organizacijsko pitanje je da li će ta instrukcija biti implementirana pomoću specijalne jedinice za množenje ili mehanizmom višekratnog korištenja jedinice za sabiranje. Računar je veoma složen sistem koji se sastoji od miliona osnovnih elektronskih komponenti. Da bi se te komponente opisale potrebno je prepoznati hijerarhijsku prirodu složenih

Arhitektura računara skripta

Embed Size (px)

DESCRIPTION

Fit Mostar

Citation preview

Page 1: Arhitektura računara skripta

ARHITEKTURA RAČUNARA

Računarski sistem je skup međusobno povezanih elemenata koji djeluju ka ostbarenju funkcij cilja. Karakterišu ga: struktura (način na koji su komponente međusobno povezane) i funkcija (djelovanje nekih komponenti).Organizacija računara je hijerarhijska: svaka glavna komponenta se razlaže na podkomponente, a onda podkomponente se opisuju svojom vlastitom strukturom i funkcijom. To znači da se hijerarhijska organizacija računara opisuje odozgo prema dole:Osnovne komponente računarskog sistema su: procesor, memorija, U/I.

Procesor: procesorske osnovne komponente su: kontrolna jedinica, registri,aritmetičko-logička i izvršna jedinica.

Kontrolna jedinica: obezbjeđuje kontrolne signale za rad i koordinaciju svih ostalihprocesorskih elemenata.

Računarska arhitektura se odnosi na sistemske osobine koje su vidljive programeru, tj. osobine koje imaju direktan uticaj na logičko izvršavanje programa. To su: instrukcijski set, broj bitova za predstavljanje različitih tipova podataka, U/I mehanizmi i tehnike adresiranja memorije.Računarska organizacija se odnosi na operativne jedinice i njihovo povezivanje kojima seostvaruju arhitekturne specifikacije. To su: kontrolni signali, različiti interfejsi između računara i memorijske tehnologije.

Pitanje arhitekture je da li će računar imati instrukciju za množenje, a organizacijskopitanje je da li će ta instrukcija biti implementirana pomoću specijalne jedinice za množenje ili mehanizmom višekratnog korištenja jedinice za sabiranje.

Računar je veoma složen sistem koji se sastoji od miliona osnovnih elektronskih komponenti. Da bi se te komponente opisale potrebno je prepoznati hijerarhijsku prirodu složenih sistema. Hijerarhijski sistem je skup međusobno povezanih podsistema, a hijerarhijska priroda je osnova projektovanja i opis sistema. Projektant treba da se bavi određenim nivoom sistema. Na svakom nivou sistem se sastoji od skupa komponenti i njihovih veza. Ponašanje svakog nivoa zavisi samo od pojednostavljenog prikaza sistema na nižem nivou. Na svakom nivou projektant se brine o: strukturi (na koji način su komponente međusobno povezane) i funkciji (djelovanje svake komponente kao dijela strukture.

Veze računara sa okolinom mogu se podijeliti na: periferne uređaje i komunikacijske linije.

Page 2: Arhitektura računara skripta

Četiri opće funkcije računara su:

Obrada podataka

Pohranjivanje podataka - osnovna funkcija računara; u računaru treba postojati funkcija za dugotrajno pohranjivanje i kratkotrajno u slučaju obrade u letu (podaci dolaze, obrađuju se i odmah prosljeđuju izvan računara).

Kretanja podataka – računar mora obezbijediti kretanje podataka između sebe i vanjske okoline.

Ulazno-izlazni proces: računar prima ili prosljeđuje podatke uređaju koji je direktno povezan na njega. Taj se uređaj naziva periferal.

Proces podatkovne komunikacije: podaci se prenose na veće udaljenosti, sa ili na udaljeni uređaj.

Kontrola između obrade, pohranjivanja i kretanja podataka.

Četiri komponente strukture:

Centralna procesna jedinica (CPU): kontroliše rad računara i izvodi funkcije obrade podataka.

Glavna memorija: pohranjuje podatke.

U/I: prebacivanje podataka između računara i okoline.

Sistemsko povezivanje: mehanizam povezivanja elemenata računara.

Strukturne komponente CPU su:

Kontrolna jedinica: kontroliše rad CPU.

Aritmetičko-logička jedinica (ALU): vrši obradu podataka.

Registri: pohrana unutar CPU.

CPU-povezanost: mehanizam povezivanja elemenata CPU.

Page 3: Arhitektura računara skripta

SVOJSTVA RAČUNARA I NJIHOV RAZVOJ

Historija računara:

Prva generacija (vakuumse cijevi):Prvi elektronski digitalni računar opće namjene ENIAC (Electronic Numerical Integrator And Computer), projektovan je i izrađen na Univerzitetu Pensilvanija. To je bila mašina koja je težila 30 tona, zauzimala površinu od oko 140 m2, sadržavala je više od 18.000 vakuumskih cijevi, dok je pri radu trebala 140kW snage. ENIAC je mogao izvršiti 5.000 sabiranja u sekundi. To je bila decimalna, a ne binarna mašina što znači da su brojevi predstavljani u decimalnom obliku. Memoriju ENIAC-a činilo je 20 „akumulatora“, a svaki je mogao sadržavati jedan desetocifreni decimalni broj. Prsten od 10 vakuumskih cijevi predstavljao je jednu cifru. ENIAC se morao ručnoprogramirati postavljajući prekidače i uključujući/isključujući kablove. Korišten je do 1955 godine.

Von Neumann-ova mašina. Programiranje se može olakšati ako se program može predstaviti u obliku koji je pogodan za pohranjivanje u memoriju zajedno sa podacima. Onda računar može dobiti instrukcije čitajući ih iz memorije, a program se može postaviti ili mijenjati postavljanjem (mijenjanjem) vrijednosti u njegovom dijelu memorije. Ova ideja je poznata kao koncept pohranjenog. Prvo predstavljanje oveideje je bilo 1945. godine kada je von Neumann predložio izradu novog računara, EDVAC (Electronic Discrete Variable Computer). Von Neumann i njegove kolege su 1946. godine počeli projektovanje računara sa pohranjenim programom kojeg su nazvali IAS kompjuter. Završen je tek 1952. godine, ali je bio prototip svih kasnijih računara opće namjene.Struktura IAS kompjutera sastoji se od: glavne memorije u koju su pohranjeni ipodaci i instrukcije; aritmetičko-logičke jedinice (ALU) koja je u stanju da radi sa binarnim podacima; kontrolne jedinice koja prevodi instrukcije iz memorije i uzrokuje njihovo izvršavanje; ulazna i izlazna oprema kojom upravlja kontrolna jedinica.Njegova memorija se sastoji od 1000 lokacija za pohranjivanje. Te lokacije se nazivaju riječi. Riječ je uređeni niz bajtova ili bitova u kojoj se informacije pohranjuju, prenose ili obrađuju unutar računara.Svaka se sastoji od 40 binarnih cifara tj. bitova.

Tu su pohranjeni i podaci i instrukcije. Brojevi se predstavljaju u binarnom obliku, a instrukcije u binarnom kodu. Svaki broj se predstavlja bitom predznaka i 39-bitnomvrijednošću. Riječ može također sadržavati dvije 20-bitne instrukcije. Svaka instrukcija se sastoji od 8-bitnog operacijskog koda (opkod) definišući operaciju koju izvodi, i 12-bitne adrese označavajući jednu od riječi u memoriji (pobrojane od 0 do 999).IAS-ova kontrolna jedinica radi tako što dobavlja jednu po jednu instrukciju iz memorije. Kontrolna i aritmetičko-logička jedinica sadrže lokacije za pohranjivanje koje se nazivaju registri, i to: memorijski buffer regitar (MBR): sadrži riječ koja se pohranjuje u memoriji i šalje prema ulaznoj/izlaznoj jedinici ili se koristi za primanje riječi iz memorije;memorijski adresni registar (MAR): određuje adresu riječi u memoriji koja se upisuje iz ili učitava u memorijski buffer registar;instrukcijski registar (IR): sadrži 8-bitni opkôd instrukcije koja se izvršava; instrukcijski buffer registar (IBR): privremeno drži desnu instrukciju riječi u memoriji;

Page 4: Arhitektura računara skripta

programski brojač (PC): sadrži adresu sljedećeg instrukcijskog para koji se dobavlja iz memorije;akumulator (AC) i multiplier quotient (MQ): privremeno drže operande i rezultate arritmetičko-logičkih operacija. Prvih pola cifara je pohranjeno u akumulator, a drugih pola u multipilier quotient.IAS radi tako što ponavlja instrukcijski ciklus. Svaki instrukcijski ciklus se sastojiod dva podciklusa. Tokom ciklusa prihvatanja, opkôd sljedeće instrukcije se učitava u instrukcijski, a adresni dio u memorijski adresni registar. Instrukcija može biti uzeta iz instrukcijskog buffer registra ili iz memorije učitavajući riječ u memorijski buffer registar pa onda u instrukcijski, instrukcijski buffer i memorijski adresni registar.Postoji samo jedan registar koji se koristi za određivanje adrese u memoriji zaučitavanje ili upisivanje i samo jedan registar koji se koristi za početak ili odredište.Kad je opkôd u IR, izvodi se ciklus izvršavanja. Kontrolno kolo prevodi opkôd i izvršava instrukciju tako što šalje odgovarajuće kontrolne signale koji izazivaju pokretanje podataka ili izvođenje aritmetičko-logičke operacije. IAS računar je imao ukupno 21 instrukciju. Mogu se grupisati u: prenos podataka: između memorije i ALU registara ili između dva ALU registra; bezuslovno grananje: u normalnim okolnostima kontrolna jedinica izvodi instrukcije iz memorije u nizu. Ovaj niz može biti promijenjen naredbom grananja, koja potpomaže operacije koje se ponavljaju; uslovno grananje: grananje može zavisiti od uslova, te se na taj način dopušta izbor; aritmetika: operacije koje izvodi ALU; modifikacija adrese: dozvoljava se izračunavanje adresa u ALU, te njihovo umetanje u instrukcije koje su pohranjene u memoriji. Na ovaj način programu se dozvoljava značajna adresna fleksibilnost.

Svaka instrukcija mora biti u skladu sa 40-bitnom riječi. Opkôd (prvih 8 bita) određuje koja će se instrukcija od njih 21 izvršavati. Adresni dio (preostalih 12 bita) određuje koja od 1000 memorijskih lokacija će biti obuhvaćena izvršavanjem instrukcije. Operacija množenja zahtijeva 39 podoperacija, jedna za svaki bit osim za bit predznaka.

Glavne značajnosti Von Neumann-ovog prijedloga su:1. Pošto je uređaj računar koji mora najčešće izvršavati osnovne aritmetičke

operacije (sabiranje, oduzimanje, množenje i dijeljenje), logično je da posjeduje specijalizivane organe samo za ove operacije. To znači na mora postojati način provjere njihovog rada. Centralni aritmetički dio uređaja vjerovatno mora postojati i to predstavlja prvi specifični dio (CA).

2. Logička kontrola uređaja je predstavljena pravilnim redoslijedom operacija, anajefikasnije je može izvoditi centralni kontrolni organ. Da bi uređaj bio opće namjene, onda se mora praviti razlika između specifičnih instrukcija kojima se definiše određeni problem i općih kontrolnih organa koji moraju obezbijediti da se te instrukcije izvedu bez obzira kakav posao one izvršavaju. Ove instrukcije na neki način moraju biti pohranjene, dok kontrolne organe čine određeni radni dijelovi uređaja. Pod centralnom kontrolom se podrazumijeva funkcija ovih dijelova koji se nazivaju drugi specifični dio (CC).

Page 5: Arhitektura računara skripta

3. Da bi uređaj izvršavao duge i složene operacije mora imati određenu količinu memorije. Instrukcije pomoću kojih se rješava svaki problem mogu sadržavati značajnu količinu materijala, jer se najčešće radi o opširnom i detaljnom kodu. Ovaj materijal mora biti memorisan. Ukupna memorija čini treći specifični dio uređaja (M).

Tri specifična dijela CA, CC i M odgovaraju asocijativnim neuronima ljudskog nervnog sistema. Potrebno je pronaći ekvivalente za senzitivne i motorne neurone, a to su ulazni i izlazni organi uređaja. Uređaj mora biti u stanju da održava ulazne i izlazne veze sa određenim tipom medija koji se zovu vanjski medij za snimanje (R).

4. Uređaj mora imati organe za prenos informacija od vanjskog medija za snimanje ka centralnom aritmetičkom dijelu, centralnoj kontroli i memoriji uređaja. Ovi organi čine ulaz, kao četvrti specifični dio (I). Također, prenos je najbolje vršiti od vanjskog medija za snimanje preko ulaza do memorije, a nikad direktno od centralnog aritmetičkog dijela i centralne kontrole uređaja.

5. Uređaj mora imati organe za prenos od centralnog aritmetičkog dijela, centralne kontrole i memorije ka vanjskom mediju za snimanje. Ovi organi čine njegov izlaz, kao peti specifični dio (O). Ponovo je najbolje vršiti prenos od memorije preko izlaza ka vanjskom mediju za snimanje, a nikad direktno od centralnog aritmetičkog dijela i centralne kontrole.

Komercijalni ra č unari : Eckert i Mauchly osnovali su 1947. godine Eckert-Mauchly Computer Corporation zaproizvodnju komercijalnih računara. Njihova prva uspješna mašina bio je UNIVAC I(Universal Automatic Computer). To je bio prvi uspješan komercijalni računar. Bio je namijenjen za naučnu i za komercijalnu upotrebu. Zadaci koje je mogao izvoditi su: algebra matrica, statistički problemi, izračunavanje premija životnog osiguranja za osiguravajuće kuće i logički problemi.UNIVAC II je imao veću memoriju i bolje performanse od UNIVAC I. IBM, najveći proizvođač opreme za bušene kartice, predstavio je 1953. godine svoj prvi elektronski kompjuter sa pohranjenim programom, IBM 701, čija je primarna primjena bila u naučne svrhe. 1955. godine IBM je proizveo 702 koji je imao hardverske osobine koje ga svrstavaju u poslovne svrhe. Ovo su bili prvi računari 700/7000 serije kojom je IBM postao najmoćniji proizvođač računara.

Page 6: Arhitektura računara skripta

Druga generacija: (tranzistori)Prva velika promjena dogodila se zamjenom vakuumske cijevi tranzistorom koji je manji, jeftiniji i rasipa manje toplote, a može se na isti način koristiti za izradu računara. Tranzistor je uređaj načinjen od silikona. Izumljen je 1947. godine, a u pedesetim je izazvao elektroničku revoluciju. Krajem pedesetih su se pojavili prvi komercijalni tranzistorski računari. NCR i RCA su prvi koji su otpočeli sa primjenom nove tehnologije u računarima.Korištenje tranzistora definiše drugu generaciju računara. Svaka novageneracija u odnosu na prethodnu je imala bolje procesorske performanse, veće memorijske kapacitete i manje gabarite. U drugoj generaciji pojavile su se složenije aritmetičke, logičke i kontrolne jedinice, koriste se jezici visokog nivoa, i računari sa sistemskim softverom.Druga generacija je značajna i po pojavi Digital Equipment Corporation (DEC), koja je osnovana 1957. godine. Iste godine je proizveden PDP-1 , prvi minikompjuter .

Veličina radne memorije je narasla sa 2K (1K = 210) na 32K 36-bitnih riječi, brojopkôdova je porastao sa 24 na 185.Poboljšanja brzine su postignuta elektroničkim poboljšanjima (tranzistor je brži od vakuumske cijevi ) i složenijim kolima. Smanjuje se prosječno vrijeme trajanja instrukcijskog ciklusa.IBM 7094 (predstavnika druge generacije)- najvažnija razlika odnosu na IAS je korištenje podatkovnih kanala. Podatkovni kanal je nezavisan I/O modul sa vlastitim procesorom i instrukcijskim setom. Kod ovakvih računara CPU ne izvršava detaljne I/O instrukcije. One su pohranjene u glavnoj memoriji, a izvršavaju se na posebnom procesoru na samom podatkovnom kanalu. CPU inicira I/O prenos slanjem kontrolnog signala podatkovnom kanalu, govoreći mu da izvrši niz instrukcija iz memorije. Podatkovni kanal nezavisno od CPU-a izvodi ovaj zadatak, signalizira CPU-u kad je operacija završena. Na ovaj način, CPU je oslobođen značajne količine obrade. Sljedeća novina je multipleksor, tačka u kojoj završavaju svi podatkovni kanali, CPU i memorija. On raspoređuje pristup memoriji od CPU-a i podatkovnih kanala, dopuštajući da ovi uređaji djeluju nezavisno.

Treća generacija: integrisana kolaZasebni tranzistor se naziva diskretna komponenta. One su se proizvodile zasebno, pakovane u kutije, i zalemljene ili spojene na ploče koje su potom ugrađivane u računare. Cijeli ovaj proces bio je skup i glomazan i ta činjenica je pravila probleme kompjuterskoj industriji, pa su izumljena integrisana kola. Izum integralnog kola izazvalo je revoluciju u elektronici i početak mikroelektronike. To jeglavna karakteristika računara treće generacije.Vrata je uređaj kojim se ostvaruje jednostavna Bulova ili logička funkcija, kao štoje: IF A AND B ARE TRUE THEN C IS TRUE (I vrata).Ovakvi uređaji se zovu kola jer kontrolišu tok podataka. Memorijska ćelija je uređaj koji može pohraniti jedan bit podataka.Četiri osnovne računarske funkcije: Pohrana podataka (obezbjeđuju je memorijske ćelije); Obrada podataka (obezbjeđuju je kola); Premještanje podataka (putanje između komponenti koje se koriste za premještanje podataka od memorije do memorije i od memorije preko kola do memorije); Kontrola (putanje između komponenti mogu nositi kontrolne signale.

Page 7: Arhitektura računara skripta

Vrata mogu imati jedan ili dva ulaza i ulazni kontrolni signal koji ih aktivira. Kad je kontrolni signal uključen, vrata izvršavaju svoju funkciju na podatkovnim ulazima što rezultira podatkovnim izlazom. Slično, memorijska ćelija pohranjuje bit koji joj je na ulazu kad je WRITE kontrolni signal uključen, a smjestit će bit na svoj izlaz kada je READ kontrolni signal uključen.Zato se računar sastoji od kola, memorijskih ćelija i veza među njima.

U trećoj generaciji IBM objavljuje novu porodicu računara – System/360. Modeli ove su bili kompatibilni tako da se program napisan za jedan model mogao izvršavati na drugom, a jedino se razlikovalo vrijeme izvršavanja.

Karakteristike porodice: Sličan ili identičan instrukcijski set: potpuno isti instrukcijski set je

podržavala cijela porodica računara. Zato se program koji se izvršavao na jednoj mašini mogao izvršavati i na drugoj. Programi su se mogli prebacivati sa slabijih na jače mašine, ali ne i obrnuto.

Sličan ili isti operativni sistem: isti osnovni operativni sistem bio je na raspolaganju za cijelu porodicu.

Povećanje brzine: brzina izvršavanja instrukcija rasla je od slabijih prema jačim računarima iste porodice.

Povećanje broja I/O priključaka: broj I/O priključaka rastao je od slabijih ka jačim.

Povećanje memorije: veličina glavne memorije je rasla u istom smjeru. Povećanje cijene: u datom trenutku, cijena sistema je rasla u istom smjeru.

U isto vrijeme objavljuje se se i DOCov PDP-8 koji je koristio strukturu koja jedanas gotovo univerzalna za miniračunare: sabirnica (bus). PDP-8 sabirnica se zvalaomnibus, i sastojala se od 96 odvojenih signalnih putanja, koje su se koristile za kontrolne, adresne i podatkovne signale.

Page 8: Arhitektura računara skripta

Kasnije generacije:Radi se o napretku tehnologije integrisanih kola. Uvođenjem integracije velikog nivoa moglo se ugraditi preko 1000 elemenata na jedan čip. Uvodi se i vrlo veliki nivo integracije i jedan čip sadržava više od 10000 elemenata.Pojavljuju se čipovi ultra velike razine integracije i jedan čip sadrži više od milion elemenata.

Postoje dva najvažnija rezultata brzog tehnološkog razvoja, a to su:

Poluprovodnička memorija - Prva upotreba tehnologije integrisanih kola u računarima bila je izrada procesora od integrisanih čipova. Ista ova tehnologija se mogla koristiti i za izradu memorije. Većina računarske memorije izrađivala se od tankih prstenova feromagnetnog materijala, a prstenovi su bili nanizani na rešetke žica koje su bile pričvršćene na zaslon unutar računara. Ako je prsten bio magnetiziran u jednom smjeru, predstavljao je jedinicu, a njegova magnetizacija u drugom smjeru predstavljala je nulu. Memorija sa magnetnom jezgrom bila je prilično brza; bio je potreban milioniti dio sekunde za čitanje pohranjenog bita, ali je bila veoma skupa, a njeno čitanje značilo je i njeno brisanje. Zato je bilo potrebno uvođenje kola kako bi se podaci povratili čim bi bili izvađeni. Od 1970. godine, poluprovodnička memorija prošla je kroz 13 generacija: 1K, 4K, 16K, 64K, 256K, 1M, 4M, 16M, 64M, 256M, 1G, 4G i 16G bita po jednom čipu. Svaka sljedeća generacija je imala 4 puta veću gustinu od prethodne, što je bilo popraćeno padom cijene po bitu i smanjenjem vremena pristupa.

Mikroprocesori - Isto kako je rasla gustina elemenata memorijskog čipa, rasla je i gustina elemenata procesorskog čipa. Kako je vrijeme prolazilo, sve je više i više elemenata postavljano na jedan čip, tako da je sve manje i manje čipova bilo potrebno za izradu procesora. Prekretnica je napravljena 1971. godine kada je Intel razvio 4004 procesor. To je bio prvi čip koji je sadržavao sve komponente CPU-a na jednom čipu i to se smatra rođenjem mikroprocesora. 4004 je mogao sabrati dva 4-bitna broja i množiti ponavljanjem sabiranja. Sljedeći važan korak razvoja mikroprocesora bilo je uvođenje Intel 8008 1972. godine. Ovo je prvi 8-bitni procesor i bio je skoro duplo složeniji od 4004. Intel je 1974. godine uveo 8080, koji je bio prvi mikroprocesor opće namjene. I 8080 je 8-bitni mikroprocesor, ali dosta brži sa većim instrukcijskim setom i većim adresnim mogućnostima.U isto vrijeme počelo se sa razvojem 16-bitnog mikroprocesora, ali on se pojavio tek krajem 1970.-tih. Sljedeći korak načinili su Bell Labs i Hewlett-Packard razvojem 32-bitnog mikroprocesora 1981. godine. Intelov 32-bitni procesor 80386 pojavio se 1985. godine.

Page 9: Arhitektura računara skripta

Brzina mikroprocesora:Razvoj računara prati Moore-ov zakon. Dokle god je ovaj zakon na snazi, proizvođači čipova će svake tri godine proizvoditi nove generacije koje će imati četiri puta više tranzistora od prethodne. Kod memorije, svake tri godine se kapacitet povećava četiri puta. Kod mikroprocesora, dodatna kola i povećanje brzine koje je posljedica smanjenja rastojanja između njih, povećava performanse četiri-pet puta otprilike svake tri godine od kada je Intel uveo x86 porodicu.Ali mikroprocesor ne može postići svoj potencijal, osim ako nije konstantno zaposlenračunarskim instrukcijama.

Tehnike koje su ugrađene u današnje procesore:

Predviđanje grananja (branch prediction): procesor „gleda“ koje su instrukcije učitane iz memorije i nastoji predvidjeti koje će grane ili grupe instrukcija biti sljedeće obrađene. Ako procesor u najvećem broju slučajeva pravilno predvidi, može pripremiti ispravne instrukcije i pohraniti ih u buffer tako da bude stalno zaposlen.

Analiza toka podataka (data flow analysis): procesor analizira koje su instrukcije zavisne ili od rezultata drugih ili od podataka, te na taj način pravi optimizirani raspored instrukcija. U stvari, instrukcije se raspoređuju na izvršavanje kad su spremne nezavisno od osnovnog programskog poretka. Tako se sprečava nepotrebno kašnjenje.

Špekulativno izvršavanje (speculative execution): koristeći predviđanje grananja i analizu toka podataka, neki procesori špekulativno izvršavaju instrukcije prije njihovog stvarnog pojavljivanja u izvršavanju programa, te se njihovi rezultati čuvaju na privremenim lokacijama. Na taj način se izvršni dijelovi procesora drže zaposlenim što je više moguće, jer izvršavaju instrukcije koje će vjerovatno biti potrebne.

Uravnoteženje performansi:Procesor se razvijao veoma velikim tempom, a ostale komonente nisu. Rješenje ovog problema se nalazi u uravnoteženju performansi (usklađivanje organizacije i arhitekture kako bi se amortizirala neusklađenost između različitih komponenti).

Page 10: Arhitektura računara skripta

Poboljšanja organizacije i arhitekture čipa:Postoje tri pristupa kojima je moguće poboljšati organizaciju i arhitekturu čipa:

1. Povećati hardversku brzinu procesora smanjenjem veličine logičkih kola procesorskog čipa, tako da se više kola ugradi na istu površinu uz smanjenje međusobnog rastojanja čime se povećava brzina procesora. Pošto su kola bliže jedna drugima, vrijeme prenosa signala se značajno smanjuje čime se povećava brzina procesora. Povećanje brzine znači da se pojedinačne operacije izvršavaju brže.

2. Povećanje veličine i brzine keševa koji su smješteni između procesora i glavne memorije. Znatno smanjenje vremena pristupa kešu se ostvaruje tako što se dio procesorskog čipa koristi kao keš.

3. Promjene u organizaciji i arhitekturi procesora koje povećavaju efektivnu brzinu izvršavanja instrukcija. Obično ovo podrazumijeva korištenje nekog oblika paralelizma.

Najčešće se koristi prvi pristup. Međutim, kako se povećava brzina procesora kao i gustina elemenata na njemu, javljaju se brojne prepreke:Energija: kako raste gustina i brzina procesora, tako raste i gustina toka energije (W/cm2). Rasipanje toplote koje se javlja na procesorima velike brzine i gustine postaje ozbiljan projektantski problem.Kašnjenje kola: brzina kojom se elektroni kreću po čipu između tranzistora ograničena je otporom i kapacitetom žica koje ih povezuju; kašnjenje se povećavakako se povećava kolo. Kako se veličina komponenti čipa smanjuje a žice kojima supovezane postaju tanje, povećava se otpor. Također, što su žice bliže, povećava sekapacitet.Memorijska latentnost: memorijske brzine zaostaju za procesorskim.

Osim što se za povećanje performansi povećala brzina procesora, povećao se i kapacitet keša i povećala se složenost izvršavanja instrukcija logičkih kola unuar procesora.

Razvoj Intel-ove x86 arhitekture:Razvoj Intelove proizvodne linije:8080: prvi mikroprocesor opće namjene (8-bitni, sa 8-bitnom putanjom premamemoriji). Korišten je u prvom personalnom računaru (Altair).8086: mnogo jači 16-bitni mikroprocesor. Pored šire sabirnice i većih registara, 8086 je imao instrukcijski keš, ili red, za predprihvatanje nekoliko instrukcija prije njihovog izvršavanja. 80286: produžetak 8086 koji je omogućio adresiranje 16 MB memorije umjesto samo1 BM.80386: Intelov prvi 32-bitni mikroprocesor, i velika revizija proizvoda. Sa 32-bitnomarhitekturom, 80386 je svojom složenošću i snagom parirao miniračunarima imainframe-ovima koji su uvedeni samo nekoliko godina ranije. Ovo je bio prvi Intelovprocesor koji je podržavao multitasking – mogućnost istovremenogpokretanja više programa.

Page 11: Arhitektura računara skripta

80486: uvodi se sofisticiranija i jača keš tehnologija kao i bolji instrukcijski pipelining.Ugrađen je i matematički koprocesor, te je glavni procesor oslobođen složenihmatematičkih operacija.Pentium: uvodi tehnike superskalara što je omogućilo paralelno izvršavanjeinstrukcija.Pentium Pro: proširuje superskalarnu organizaciju uvođenjem registarskogpreimenovanja (register renaming)4, predviđanja grananja, analize toka podataka išpekulativnog izvršavanja.Pentium II: ugradnja Intelove MMX tehnologije, specijalno projektovana za efikasnuobradu videa, zvuka i grafike.Pentium III: dodatne instrukcije pokretnog zareza (floating-point) za 3D grafičkeprograme.Pentium 4: još dodataka za pokretni zarez i druga poboljšanja za multimedije.Core: ovo je prvi Intel x86 mikroprocesor sa duplom jezgrom, čime se označavaimplementacija dva procesora na jednom čipu.Core 2: proširenje arhitekture na 64 bitnu. Core 2 Quad nudi 4 procesora na jednomčipu.

Radni takt i broj instrukcija u sekundi:Sve operacije počinju taktnim impulsom. Zato, na najosnovnijem nivou, brzinu procesora diktira frekvencija taktnog impulsa, čija je mjerna jedinica broj ciklusa u sekundi, odnosno Herc (Hz)Obično, kvarcni kristal generiše taktne signale, čime se proizvodi konstantan signalni talas dok je računar uključen. Ovaj se talas pretvara u konstantan tok digitalnih impulsa unutar procesorskih kola.Na primjer, 1 GHz procesor prima milijardu impulsa u sekundi. Ova mjera je poznata kao brzina (radnog) takta. Jedna promjena stanja, ili jedan impuls se označava kao taktni ciklus, ili otkucaj. Vrijeme između impulsa je vrijeme ciklusa.Brzina radnog takta nije proizvoljna, ali mora biti odgovarajuća za fizički raspored procesora.

Brzina izvršavanja instrukcijaProcesorom upravlja njegov takt konstantne frekvencije f, čemu je ekvivalentno konstatno vrijeme ciklusa τ =1/f. Definiše se programski broj instrukcija(instruction count for a program), Ic, kao broj izvršenih mašinskih instrukcija za taj program koji se izvodi do završetka ili u nekom definisanom vremenskom intervalu. Treba zapaziti da je ovo broj izvršenih operacija, a ne broj instrukcija objektnog kôda programa. Važan parametar je prosječan broj ciklusa po instrukciji programa (average cycles per instruction – CPI). Ako sve instrukcije zahtijevaju isti broj taktnih ciklusa, onda CPI ima konstantnu vrijednost za procesor. Ukupan CPI:

Page 12: Arhitektura računara skripta
Page 13: Arhitektura računara skripta

RAČUNARSKE FUNKCIJE

Gledano odozgo elementi računara su: CPU, memorija, i I/O elementi i oni su međusobno povezani tako da se postiže osnovna funkcija računara, tj. izvršavanje programa. Zato se na najvišem nivou računarski sistem opisuje: opisivanjem vanjskog ponašanja svakog elementa, a to je razmjena podataka i kontrolnih signala sa ostalim elementima; i opisivanjem strukture povezivanja i potrebnih kontrola za upravljanje njihovog korištenja.

Elementi računara:Vidjeli smo da su konstrukcija današnjih računara zasnovane na Von Neumann-ovimkonceptima pa se ova konstrukcija označava kao von Neumann-ova arhitektura i zasniva se na tri ključna koncepta:· Podaci i instrukcije su pohranjeni u jednoj memoriji koja se može učitavati i upisivati.· Sadržaji memorije su adresibilni po lokaciji1, bez obzira na vrstu podataka koji je tamopohranjen.· Izvršavanje se obavlja sekvencijalno od jedne do druge instrukcije.

Dakle, postoji mali skup osnovnih logičkih komponenti koje mogu biti spojene na različite načine kako bi pohranili binarne podatke i izveli aritmetičke i logičke operacije nad njima. Ako treba specifično izračunavanje, onda se konstruiše specijalna konfiguracija samo za taj izračun. Proces spajanja različitih komponenti je oblik programiranja. Rezultujući „program“ je hardver koji se označava kao hardverskiProgram.Kod hardvera opće namjene, sistem prihvata podatke i kontrolne signale i daje rezultate. Zato, umjesto ponovnog spajanja hardverskih elemenata za svaki program, programer samo treba dobaviti novi skup kontrolni signala.Nema više prespajanja hardvera za svaki novi program, nego za svaki program samo treba obezbijediti novi kod, a svaki kod je instrukcija koju hardver prevodi u kontrolne signale. Niz kodova odnosno instrukcija naziva se softver.

Postoje dva glavna elementa sistema, a to su instrukcijski prevodilac i modul za aritmetičke i logičke funckije opće namjene. Oni čine CPU. Podaci i instrukcije moraju se ubaciti u računar što znači da trebamo ulazni modul. On sadržava komponente za prihvatanje podataka i instrukcija i komponente za pretvaranje signala u signale koji su razumljivi sistemu. Potrebna su i sredstva za prihvatanje rezultata u formi izlaznog modula. Zajedno se označavajukao I/O komponente.

Još je potreban jedan element. Ulazni uređaj dostavlja instrukcije sekvencijalno, ali se program uvijek tako ne izvršava ili operacije nad podacima mogu zahtijevati pristup više elemenata odjednom u unaprijed definisanom nizu. Zato mora postojati mjesto privremenog pohranjivanja instrukcija i podataka. Taj modul se zove (glavna) memorija.

Page 14: Arhitektura računara skripta

CPU razmjenjuje podatke sa memorijom. Za to koristi CPU registar: memorijski adresni registar (MAR) koji određuje adresu u memoriji na sljedeće upisivanje ili učitavanje, i memorijski buffer registar (MBR), koji sadrži podatke koji se upisuju umemoriju ili prihvata podatke koji se iz nje učitavaju.Postoji i I/O adresni registar: (I/OAR) koji određuje specifični I/O uređaj; I/O buffer registar (I/OBR) se koristi za razmjenu podataka između I/O modula i CPU.Memorijski modul se sastoji od skupa lokacija definiranih sekvencijalno poredanim adresama. Svaka lokacija sadrži binarni broj koji se prevodi ili kao instrukcija ili kao podatak. I/O modul prenosi podatke od vanjskog uređaja ka CPU i memoriji, i obrnuto. Sadrži unutrašnje buffere za privremeno prihvatanje ovih podataka dok ne budu poslani.

Funkcija računara:Osnovna funkcija računara je izvršavanje programa, a program je skup instrukcija koje su pohranjene u memoriji.Procesor izvršava instrukcije koje su definisane u programu, a najjednostavniji oblik obrade instrukcije se sastoji od dva koraka: dobavlje instrukcija iz memorije (jedna po jedna) i izvršavanje. (Ciklus dobavljanja i izvršavanja instrukcije)

Obrada koja se zahtijeva za jednu instrukciju ze naziva instrukcijski ciklus.

Dobavljanje i izvršavanje instrukcijeNa početku svakog instrukcijskog ciklusa, procesor dobavlja instrukciju iz memorije. Programski brojač (PC) sadrži adresu instrukcije koja će biti sljedeća dobavljena. Ako nije drugačije rečeno, procesor uvijek uvećava PC nakon svakog dobavljanja instrukcije kako bi mogao dobaviti sljedeću instrukciju u nizuDobavljena instrukcija se ubacuje (učitava) u procesorski registar koji se naziva instrukcijski registar (IR). Instrukcija sadrži bite koji definišu procesorsku aktivnost. Procesor prevodi instrukciju i izvodi zahtijevanu aktivnost. Ove se aktivnosti dijele u četiri kategorije:· Procesor-memorija: podaci se mogu prebacivati iz procesora u memoriju ili obratno.· Procesor-I/O: podaci se mogu prebacivati ka ili od perifernog uređaja prebacivanjem između procesora i I/O modula.· Obrada podataka: procesor može izvoditi neke aritmetičke ili logičke operacije nadpodacima.· Kontrola: instrukcija može zahtijevati zaustavljanje izvršavanja niza.

Page 15: Arhitektura računara skripta

RAČUNARSKE VEZE

PREKIDI:Prekidi se obezbjeđuju primarno kao način poboljšanja efikasnosti obrade. Na primjer, većina perifernih uređaja je znatno sporija od procesora. Neka procesor prenosi podatke štampaču prema šemi osnovnog instrukcijskog ciklusa. Nakon svake operacije upisa, procesor mora zastati i ostati u stanju mirovanja dok ga štampač ne sustigne. Dužina ove pauze može biti nekoliko stotina ili čak hiljada instrukcijskih ciklusa koji ne uključuju memoriju.Sa stajališta korisničkog programa prekid je prekid normalnog niza izvršavanja. Po završetku obrade prekida nastavlja se izvršavanje. Zato korisnički program ne sadrži specijalan kod za usluživanje prekida, već su procesor i operativni sistem odgovorni za suspendovanje korisničkog programa te njegovo nastavljanje od tačke prekida.Kako bi udovoljio prekidima, instrukcijskom ciklusu se dodaje prekidni ciklus.U prekidnom ciklusu procesor provjerava pojavu prekida, ukazujući na prisutnost prekidnog signala. Ako nema prekida na čekanju, procesor nastavlja sa ciklusom dobavljanja i dobavlja sljedeću instrukciju trenutnog programa. Ako je prekid na čekanju, procesor suspenduje izvršavanje trenutnog programa i spašava njegov kontekst. To podrazumijeva spašavanje adrese sljedeće instrukcije koja će se izvršiti i postavlja programski brojač na početnu adresu procedure za upravljanje prekidima.Sada procesor nastavlja sa ciklusom dobavljanja i učitava prvu instrukciju programa koji upravlja prekidima, a on je sastavni dio operativnog sistema. Obično, ovaj program određuje prirodu prekida i obavlja potrebne aktivnosti. Program za upravljanje prekidima određuje koji je I/O modul proizveo prekid i može se granati u program koji će upisati još podataka u taj I/O modul. Kada se završi rutina upravljanja prekidima, procesor može nastaviti izvršavanje programa od tačke prekida.

Može se pojaviti i više prekida. Na primjer, program može dobijati podatke od komunikacijske linije i štampati rezultate. Štampač će proizvesti prekid svaki put kad završi operaciju štampanja. Kontrolor komunikacijske linije će generirati prekid svaki put kada pristigne podatkovna jedinica. Moguća je pojava komunikacijskog prekida dok se obrađuje prekid kojeg je generisao štampač.Rješavanje višestrukih prekida moguće je pomoću dva pristupa. Prvi je onesposobljavanje prekida dok se jedan obrađuje. Onesposobljeni prekid jednostavno znači da procesor može ignorisati taj prekidni signal. Ako se prekid javitokom ovog vremena, uglavnom ostaje na čekanju, a procesor će ga provjeriti nakon omogućavanja prekida. Zato, kada se korisnički izvršava a pojavi se prekid, prekidi se odmah isključuju. Nakon završetka programa za upravljanje prekidima,prekidi se omogućavaju prije nastavljanja korisničkog programa, te procesor provjerava postojanje dodatnih prekida. Mana ovog pristupa je što se ne uzima u obzir vremenska kritičnost potreba.

Drugim se pristupom definišu prioriteti prekida čime se dozvoljava da prekid višeg prioriteta izazove prekidanje prekida nižeg prioriteta.

Page 16: Arhitektura računara skripta

I/O funckije:I/O modul može direktno komunicirati sa procesorom. Procesor može učitati/upisati u I/O modul. Procesor identificira specifični uređaj kojeg kontroliše dati I/O modul i prenosi ovlasti na I/O modul da upisuje/učitava memoriju.I/O modul izdaje memoriji komande, a procesor nema odgovornosti. To je direktni pristup memoriji (direct memory access – DMA).

Struktura veze:Računar se sastoji od tri vrste osnovnih elemenata ili modula (procesor, memorija, I/O) koji međusobno komuniciraju. Zato moraju postojati putevi koji ih povezuju. Skup putanja koje povezuju različite module zove se struktura veze.

Memorija - Riječ podataka može biti učitana iz ili upisana u memoriju. Priroda operacije se određuje kontrolnim signalima učitavanja i upisivanja. Lokacija operacije se specificira adresom.

I/O - funkcionalno sličan memoriji. I/O modul može imati pod kontrolom više perifernih uređaja. Svako sučelje prema perifernom uređaju se označava kao port i svaki ima jedinstvenu adresu. Postoje i vanjske putanje podataka za ulaz i izlaz podataka iz perifernog uređaja.

Procesor - učitava instrukcije i podatke, upisuje podatke nakod obrade i koristi kontrolne signale za kontrolu svih sistemskih operacija. Također prima prekidne signale.

Struktura veze mora podržati sljedeće vrste prenosa: Memorija – procesor: procesor iz memorije učitava instrukciju ili podatkovnu

jedinicu. Procesor – memorija: procesor upisuje podatkovnu jedinicu u memoriju. I/O – procesor: procesor učitava podatke iz I/O uređaja preko I/O modula. Procesor – I/O: procesor šalje podatke I/O uređaju. Od I/O ka memoriji ili od memorije ka I/O: za oba slučaja I/O modulu je

dozvoljena direktna razmjena sa memorijom bez posredovanja procesora koristeći DMA.

Page 17: Arhitektura računara skripta

Sabirnica:Sabirnica je komunikacijska putanja koja povezuje dva ili više uređaja. Njena ključnakarakteristika je djeljivi medijum za prenos. Više je uređaja povezano na sabirnicu, a signal namijenjen jednom uređaju dostupan je svim drugim uređajima koji su na nju priključeni. Obično se sabirnica sastoji od višestrukih komunikacijskih putanja ili linija. Svaka linija je u stanju prenijeti signale predstavljajući binarne 1 i 0. U datom vremenskom intervalu, niz binarnih cifara se može prenijeti jednom linijom. Nekoliko linija sabirnice zajedno se može koristiti za istovremeni (paralelni) prenos binarnih cifara. Na primjer, 8-bitna podatkovna jedinica može se prenijeti preko osam linija sabirnice. Računarski sistemi sadrže brojne i različite sabirnice koje omogućavaju putanje između komponenti različitog nivoa hijerarhije računarskog sistema. Sabirnica koja povezuje glavne elemente (procesor, memorija, I/O) zove se sistemska sabirnica. Najčešće strukture veza računara se zasniva na korištenju jedne ili više sistemskih sabirnica.

Struktura sabirnice:Sistemska se sabirnica obično sastoji od 50 do stotine odvojenih linija. Svakoj liniji je dodijeljeno posebno značenje ili funkcija. Iako postoje različite izvedbe sabirnice, linije svake od njih se mogu svrstati u tri funkcionalne grupe:podatkovne, adresne i kontrolne linije.

Podatkovne linije obezbjeđuju putanju za prenos podataka između sistemskih modula. Ove se linije nazivaju podatkovna sabirnica. Može se sastojati od 32, 64, 128 ili više odvojenih linija. Svaka linija odjednom nosi samo 1 bit pa broj linija određuje koliko bita odjednom se može prenijeti. Širina podatkovne sabirnice je ključni faktor u određivanju performansi cijelog sistema. Na primjer, ako je širina 32 bita a instrukcije su 64-bitne, onda procesor mora dva puta pristupiti memorijskom modulu tokom svakog instrukcijskog ciklusa.

Adresne linije se koriste za određivanje izvora ili odredišta podatka na sabirnici. Ako procesor želi učitati riječ podatka iz memorije, onda postavi adresu željene riječi na adresne linije. Širina adresne sabirnice određuje najveći mogući memorijski kapacitetsistema.

Kontrolne linije se koriste za kontrolu pristupa i korištenja podatkovnih i adresnih linija. Pošto sve komponente dijele podatkovne i adresne linije, moraju postojati sredstva za njihovu kontrolu. Kontrolni signali prenose i komandne i sinhronizacijske informacije između sistemskih modula. Sinhronizacijski signali ukazuju na valjanost podataka i adresnih informacija. Komandni signali definišu operacije koje se izvršavaju. One obično uključuju: Memorijski upis (podaci se sa sabirnice upisuju na naznačene lokacije); Memorijsko učitavanje (smještanje podataka sa naznačenih lokacija na sabirnicu); I/O upis (podaci se sa sabirnice upisuju na naznačeni I/O port); I/O učitavanje (podaci se sa naznačenog I/O porta smještaju na sabirnicu); Potvrda prenosa (ukazuje da su podaci prihvaćeni sa ili smješteni na sabirnicu); Zahtjev za sabirnicu (ukazuje da modul treba dobiti kontrolu nad sabirnicom); Odobravanje sabirnice (ukazuje da je modulu odobrena kontrola nad sabirnicom); zahtjev za prekid (ukazuje da je prekid na čekanju); Potvrda prekida (potvrđivanje da je prekid koji čeka dopušten); Takt (koristi se za sinhronizaciju operacija); Resetovanje (pokretanje svih modula).

Page 18: Arhitektura računara skripta

Rad sabirnice se odvija na sljedeći način: ako jedan modul želi poslati podatak drugom, mora dobiti korištenje sabirnice i prebaciti podatke preko nje. Ako jedanmodul zahtijeva podatke od drugog mora dobiti korištenje sabirnice i prebaciti zahtjev drugom modulu preko odgovarajućih kontrolnih i adresnih linija.PCI (peripheral component interconenct) je vrlo brza široka sabirnica, nezavisna od procesora koja funkcionira kao periferna sabirnica. U poređenju sa drugim sabirnicama, PCI donosi bolje performanse za vrlo brze I/O podsisteme. PCI je posebno dizajniran da zadovolji ekonomske I/O zahtjeve modernih sistema, jer treba vrlo malo čipova za implementiranje i podršku drugim sabirnicama priključenim na PCI.

Page 19: Arhitektura računara skripta

MAŠINSKE INSTRUKCIJE

Programeru u jeziku visokog nivoa malo toga je vidljivo od arhitekture osnovne mašine. S druge strane, zajednička tačka projektanta računara i njegovog programera je instrukcijski set mašine. Sa projektanske tačke gledišta, ovaj set obezbjeđuje funkcionalne zahtjeve koji se postavljaju pred procesor: implementacija procesora je zadatak koji velikim dijelom uključuje implementaciju instrukcijskog seta mašine.

Karakteristike mašinskih instrukcija:Rad procesora je određen instrukcijama koje izvršava. One se označavaju kao mašinske instrukcije ili računarske instrukcije. Skup različitih instrukcija koje procesor može izvršavati označava se kao procesorski instrukcijski set.

Elementi mašinske instrukcijeSvaka instrukcija mora sadržavati informacije koje zahtijeva procesor za izvršavanje.

Elementi mašinske instrukcije su: Operacijski kod: specificira operaciju koju izvodi. Operacija se specificira

binarnim kodom koji je poznat kao operacijski kod ili opkod. Referenca izvornog operanda: operacija može uključivati jedan ili više

operanada koji su ulazi za operaciju. Referenca rezultujućeg operanda: operacija može proizvesti rezultat. Referenca sljedeće instrukcije: govori procesoru gdje da dohvati sljedeću

instrukciju nakon okončanja izvršavanja trenutne.

Adresa sljedeće instrukcije može biti stvarna ili virtualna, zavisno od arhitekture. Da bi se dobavila sljedeća instrukcija prvo se mora dobaviti adresa glavne ili virtualne memorije.Izvorni i rezultujući operandi mogu biti u:

Glavnoj ili virtualnoj memoriji – adresa glavne ili virtualne memorije mora biti dostavljena.

Procesorskom registru - procesor sadrži jedan ili više registara koji mogu biti pozvani mašinskim instrukcijama. Ako postoji samo jedan registar, referenca na njega može biti implicitna.

Neposredni operandi - vrijednost operanda je sadržana u polju u kojem se izvršava instrukcija.

I/O uređaju: instrukcija mora specificirati I/O modul i uređaj za operaciju. Ako se koristi memorijsko preslikavanje I/O-a, to je samo druga glavna ili virtualna adresa.

Page 20: Arhitektura računara skripta

Predstavljanje instrukcija: Unutar računara, svaka se instrukcija predstavlja nizom bitova. Instrukcija je podijeljena u polja, koja odgovaraju sastavnim elementima instrukcije. Tokom izvršavanja instrukcije, ona se učitava u instrukcijski registar (IR) u procesoru. Procesor mora znati izvući podatke iz različitih instrukcijskih polja kako bi izveo traženu operaciju.

Opkodovi:ADD – sabiranjeSUB - oduzimanjeMUL - množenjeDIV - dijeljenjeLOAD - učitavanje podataka iz memorijeSTOR - pohranjivanje podataka u memoriju

Instrukcije se kategoriziraju u:· obrada podataka: aritmetičke i logičke instrukcije· pohrana podataka: premještanje podataka u ili iz registra i ili memorijskih lokacija· premještanje podataka: I/O instrukcije· kontrola: instrukcije testiranja i grananja.

Aritmetičke instrukcije obezbjeđuju sposobnosti izračunavanja za obradu numeričkih podataka.Logičke ili Boole-ve instrukcije operišu bitovima riječi kao bitovima a ne kao brojevima; zato obezbjeđuju sposobnosti obrade bilo kojeg tipa podatka koji korisnik zatraži. Ove se operacije izvode primarno nad podacima u registrima procesora. Zato moraju postojati memorijske instrukcije za premještanje podataka između memorije i registara.I/O instrukcije su potrebne za prenos programa i podataka u memoriju i rezultata izračunavanja nazad korisniku.Testne instrukcije se koriste za provjeru vrijednosti podatkovne riječi ili statusa izračunavanja.Instrukcije grananja se koriste za prelazak na drugačiji set instrukcija u zavisnosti od odluke.

Instrukcija može sadržavati najviše četiri adrese: dvije za izvorne operande, jednuza odredišni, i adresu sljedeće instrukcije.

U računarima su najčešća tri tipa numeričkih podataka:· binarni cijeli ili binarni sa fiksnim zarezom· binarni sa pomičnim zarezom· decimalni.

Page 21: Arhitektura računara skripta

Tipovi operacijaBroj različitih opkodova varira od mašine do mašine. Međutim, na svim mašinama se mogu naći isti opći tipovi operacija. Kategoriziraju se u:· prenos podataka· aritmetičke· logičke· operacije pretvaranja· I/O· operacije sistemske kontrole· operacije kontrole prenosa.

Prenos podatakaFundamentalni tip mašinske instrukcije je instrukcija prenosa podataka. Ona mora specificirati nekoliko stvari. Prvo, specificiranje lokacije izvornog i ishodišnog operanda. Svaka lokacija može biti memorija, registar ili vrh steka. Drugo, mora se naznačiti dužina podataka koji se prebacuju. Treće, kao kod svih instrukcija sa operandima, mora specificirati način adresiranja svakog operanda.Izbor instrukcija podatkovnog prenosa u instrukcijski set je kompromis koji mora napraviti projektant. Na primjer, opća lokacija (memorija ili registar) operanda može se naznačiti ili specificiranjem opkoda ili operanda.Sa stanovišta rada procesora, operacije prenosa podataka su vjerovatno najjednostavniji tip.Ako su i početak i odredište registri, procesor samo izaziva prenos iz jednog u drugi registar, što je unutrašnja operacija procesora. Ako je jedan ili oba operanda u memoriji, onda procesor mora izvesti neke ili sve donje aktivnosti:1. izračunavanje memorijske adrese, na osnovu načina adresiranja2. ako se adresa odnosi na virtualnu memoriju, prevođenje virtualne u stvarnumemorijsku adresu3. određivanje da li je adresirani element u kešu4. ako nije, izdavanje komande memorijskom modulu.

Aritmetičke operacijeVećina mašina izvršava osnovne aritmetičke operacije sabiranje, oduzimanje, množenje i dijeljenje. Pored ovih, koriste se i različite instrukcije koje se izvode nad jednim operandom.To su:· apsolutna vrijednost: uzima apsolutnu vrijednost operanda· nagacija: negativna vrijednost operanda· uvećanje: dodaje 1 operandu· smanjenje: od operanda se oduzima 1Izvršavanje aritmetičke instrukcije može uključivati operacije prenosa podataka radipozicioniranja operanada na ALU ulaz i izdavanje izlaza iz ALU.

Logičke operacijeVećina mašina koristi različite operacije za manipuliranje pojedinim bitovima riječi ili drugim adresibilnim jedinica. Zasnivaju se na Bulovim operacijama.

Page 22: Arhitektura računara skripta

Logičkim premještanjem bitovi riječi se premještaju lijevo ili desno. Na jednom kraju, premješteni bit se gubi. Na drugom kraju, ulazi 0.

Operacija aritmetičkog premještanja tretira podatke kao cijele brojeve sa predznakom i ne premješta bit predznaka. Kod desnog aritmetičkog premještanja, bit predzanaka se replicira u poziciju udesno. Kod lijevog aritmetičkog premještanja, izvodi se logičko lijevo premještanje na svim bitovima osim na bitu predznaka.

Operacije rotiranja ili cikličnog premještanja zadržavaju sve bitove s kojima se radilo. Jedno od korištenja rotacije je sukcesivno dovođenje svakog bita u krajnji lijevi bit.

Page 23: Arhitektura računara skripta

ADRESIRANJE I INSTRUKCIJSKI FORMAT

Adresiranje:Adresna polja (polje) u tipičnom instrukcijskom formatu su relativno mala, a korisnici žele da pozivaju veliki raspon lokacija u glavnoj ili virtualnoj memoriji.Najčešće tehnike adresiranja su: neposredno, direktno, indirektno, registarsko, indirektno registarsko, premještanje, stek.Sve računarske arhitekture omogućavaju više od jednog načina adresiranja.

Neposredno adresiranje - najjednostavniji oblik adresiranja u kojem se vrijednost operanda nalazi u instrukciji:operand = A (sadžaj adresnog polja u instrukciji).Ovaj se način može upotrijebiti za definisanje i korištenje konstanti ili postavljanje početne vrijednosti varijabla.Prednost ovog načina je da nijedna memorijska referenca osim instrukcijskogdobavljanja se ne zahtijeva za dobivanje operanda, te se na taj način štedi jedan keš- ili instrukcijski ciklus. Nedostatak je da veličina broja je ograničena veličinom adresnog polja,

Direktno adresiranje - ovo je veoma jednostavna forma adresiranja u kojoj adresno polje sadržistvarnu adresu operanda:EA (stvarna adresa lokacije koja sadrži referencirani operand) = A(sadržaj adresnog polja u instrukciji). Ova je tehnika bila uobičajna kod starijih generacija računara, ali ne i danas. Zahtijeva samo jednu memorijsku referencu bez specijalnog izračunavanja. Omogućuje ograničen adresni prostor. Dužina adresnog polja je obično manja od dužine riječi

Indirektno adresiranje - Adresno polje koje se odnosi na adresu riječi u memoriji koja sadrži punu adresu operanda. To je indirektno adresiranje: EA = (A).Očigledna prednost ovog pristupa je da za dužinu riječi N, sad je dostupanadresni prostor od 2N. Nedostatak je da izvršavanje instrukcije zahtijeva dvijememorijske refernce za dohvatanje operanda: jednu za njegovu adresu, adrugu za njegovu vrijednost.

Registarsko adresiranje - Slično je direktnom adresiranju. Jedina razlika je što se adresno polje odnosi na registar a ne na adresu u glavnoj memoriji: EA = R(sadržaj adresnog polja u instrukciji koje upućuje na registar).Prednosti: unutar instrukcije potrebno je malo adresno polje, ne zahtijevaju sedugotrajne memorijske reference jer je vrijeme pristupa procesorskim registrima mnogo manje nego adresama glavne memorije. Nedostatak je što jeadresni prostor veoma ograničen.

Indirektno registarsko adresiranje – slično je indirektnom adresiranju. Jedina razlika je što se adresno polje odnosi na registar. EA = (R)Prednosti i nedostaci su isti kao kod indirektnog adresiranja, samo registarsko indirektno adresiranje koristi jednu manje memorijsku referencu od indirektnog adresiranja.

Page 24: Arhitektura računara skripta

Adresiranje sa pomakom - način adresiranja koji kombinuje mogućnosti direktnogi registarskog indirektnog adresiranja.Označava se kao adresiranje sa pomakom: EA = A + (R).Zahtijeva da instrukcija ima dva adresna polja, od kojih je najmanje jedno eksplicitno. Vrijednost u jednom adresnom polju (vrijednost = A) se direktno koristi. Drugo adresno polje, ili implicitna referenca zasnovana na opkodu, se odnosi na registar čiji se sadržaj dodaje na A kako bi se dobila stvarna adresa.

Tri najčešća korištenja adresiranja sa pomakom su:· Relativno adresiranje, ili PC relativno adresiranje,· Adresiranje bazirano na registru, i· Indeksiranje.

Za relativno adresiranje implicitni referencirani registar je programski brojač (programcounter – PC). Tako se adresa sljedeće instrukcije dodaje adresnom polju kako bi se dobilo EA.

Adresiranje bazirano na registru radi tako što referencirani registar sadrži adresu uglavnoj memoriji, a adresno polje sadrži pomak od te adrese. Referenca registra može biti eksplicitna ili implicitna.

Indeksiranje: adresno polje referencira adresu u glavnoj memoriji, a referenciraniregistar sadrži pozitivan pomak od te adrese. SUPROTNO OD ADRESIRANJA BAZIRANOG NA REGISTRUIndeksiranje se može vršiti prije i poslije indirekcije. (preindeksiranje i postindeksiranje)Kod preindeksiranja, indeksiranje se izvodi prije indirekcije: EA = (A + (R)). Adresa seizračunava kao kod običnog indeksiranja. U ovom slučaju izračunata adresa ne sadrži operand nego njegovu adresu.Ako se indeksiranje izvodi nakon indirekcije, onda se označava kao postindeksiranje:EA = (A) + (R)Adresno polje koje se koristi za pristup memorijskoj lokaciji sadrži direktnu adresu pa se onda ta adresa indeksira vrijednošću registra.

Stek adresiranje - stek je linearni red lokacija. Ponekad se označava kao lista na dole (pushdown list) ili zadnji ušao prvi izašao red (last-in-first-out queue). Stek je rezervisani blok lokacija. Stavke se postavljaju na vrh steka tako da u datom trenutku blok je djelimično popunjen. Sa stekom je povezan pokazivač čija je vrijednost adresa vrha steka. Kao alternativa, dva gornja elementa steka mogu biti u procesorskim registrima, te u tom slučaju pokazivač pokazuje na treći elementsteka. Stek pokazivač se održava u registru. Zato su reference na stek lokacije u memoriji u stvari indirektne adrese registara. Stek adresiranje je oblik implicitnog adresiranja. Mašinske instrukcije ne moraju uključivati memorijske reference ali implicitno rade na vrhu steka.

Page 25: Arhitektura računara skripta

Instrukcijski formati:

Instrukcijski format definiše raspored instrukcijskih bitova u smislu njenih sastavnih polja. Instrukcijski format mora uključiti opkod i, implicitno ili eksplicitno, nula ili više operanada. Svaki eksplicitni operand se referencira korištenjem jednog od načina adresiranja. Format mora, implicitno ili eksplicitno, naznačiti način adresiranja za svaki operand. Za većinu instrukcijskih setova, koristi se više instrukcijskih formata.

Dužina instrukcijeJe osnovno pitanje projektovanja instrukcije. Na dužinu instrukcije utiče veličinamemorije, memorijska organizacija, struktura sabirnice, složenost procesora i njegova brzina. Ona definiše bogatstvo i fleksibilnost mašine onako kako je vidi programer asemblera.Programeri žele više opkodova, operanada, načina adresiranja i veće adresno područje. Više opkodova i operanada olakšava njihov posao, jer se pišu kraći programi za izvršenje postavljenih zadataka. Više načina adresiranja daje programeru veću fleksibilnost pri realizaciji određenih funkcija, kao što su manipulacije tabelama i višestruko grananje. Pored toga, povećanjem veličine glavne memorije i korištenja virtualne memorije, programeri su u stanju da adresiraju veća memorijska područja. Sve ovo (opkodovi, operandi, načini adresiranja, adresno područje) zahtjeva bitove i ide u smjeru veće dužine instrukcije. Međutim,veća dužina instrukcije može biti štetna. 64-bitna instrukcija zauzima duplo više prostora od 32-bitne, ali je vjerovatno manje od duplo korisna.Pored ovog, postoje i drugi razlozi. Da li bi dužina instrukcije trebala biti jednaka dužini memorijskog prenosa (u sistemu sabirnice, širina podatkovne sabirnice) ili bi trebala biti njena višestruka vrijednost. U suprotnom, tokom ciklusa dohvatanja neće se dobiti cijeli broj instrukcija. S ovim u vezi je i brzina memorijskog prenosa. Ona ne prati povećanje procesorske brzine. Na taj način, memorija može postati usko grlo ako procesor izvršava instrukcije brže od njihovog dohvatanja. Jedno rješenje je korištenje keša, a drugo je korištenje kraćih instrukcija.Zato 16-bitne instrukcije mogu biti dohvaćene duplo brže od 32-bitnih instrukcija, ali se vjerovatno ne izvršavaju dvostruko brže.Važna karakteristika je da dužina instrukcije treba biti djeljiva sa dužinom karaktera, koja je obično 8 bitova, i dužinom brojeva sa nepomičnim zarezom. Dužina memorijske riječi je „prirodna“ jedinica organizacije. Njena veličina obično određuje veličinu brojeva sa nepomičnim zarezom.

Dodjeljivanje bitovaZa datu dužinu instrukcije evidentno je da postoji kompromis između broja opkodova i stepena mogućnosti adresiranja. Više opkodova znači više bitova u polju opkoda. Za instrukcijski format date dužine, to znači smanjenje raspoloživog broja bitova za adresiranje. Postoji interesantna stvar kod ovog kompromisa, a to je korištenje opkodova promjenjive dužine. Kod ovog pristupa, postoji najmanja dužina opkoda, ali za neke opkodove dodatne operacije se mogu specificirati korištenjem dodatnih bitova u instrukciji. Za instrukciju stalne dužine to znači da ostaje manje bitova za adresiranje. Zato se ova osobina koristi za one instrukcije koje zahtijevaju manjeoperande i/ili manji stepen adresiranja.

Page 26: Arhitektura računara skripta

Međusobno povezani faktori koji služe za određivanje svrhe korištenja bitova adresiranja su:

· Broj načina adresiranja: nekad način adresiranja se može odrediti implicitno. Naprimjer, određeni opkodovi mogu uvijek pozivati indeksiranje. U drugim slučajevima,načini adresiranja moraju biti eksplicitni, pa je potreban jedan ili više bitova kojiodređuju način adresiranja.

· Broj operanada: već je rečeno da manje adrese čine program dužim, što stvaraneugodnosti. Tipične instrukcije na današnjim mašinama su pravljene za dva operanda. Svaka adresa operanda u instrukciji može zahtijevati vlastiti indikator načina, ili može koristiti indikator načina koji s druge strane može biti ograničen na samo jedno od adresnih polja.

· Registar nasuprot memorije: mašina mora imati registre kako bi podaci bilisprovedeni u procesor na obradu. Sa jednim korisnički vidljivim registrom (akumulator) jedna adresa operanda je implicitna i ne zahtijeva instrukcijske bitove. Međutim, programiranje jednog registra je zamorno i zahtijeva mnogo instrukcija. Čak i sa više registara, potrebno je svega nekoliko bitova za specificiranje registra. Što se više takvih registara koristi za reference operanda, to je potrebno manje bitova. Brojna istraživanja su pokazala da je poželjno od 8 do 32 korisnički vidljivih registara. Većina današnjih arhitektura ima najmanje 32 registra.

· Broj registarskih skupova: većina današnjih mašina ima jedan skup registara opće namjene sa obično 32 ili više registara. Oni se mogu koristiti za pohranu podataka i adresa za adresiranje sa pomakom. Prednost je što za nepromjenjiv broj registara funkcionalno razdvajanje zahtijeva manje bita u instrukciji.

· Adresno područje: područje adresa koje mogu biti referencirane povezano je sa brojem adresnih bitova. Pošto se ovim nameće nekoliko ograničenja, rijetko se koristi direktno adresiranje. Adresiranjem sa pomakom je područje pogodno za adresni registar.

Adresna granulacija: za adrese koje referenciraju memoriju a ne registre, važan jefaktor granulacije adresiranja. U sistemu sa 16- ili 32-bitnim riječima, adresa možereferencirati na riječ ili bajt, što zavisi od izbora projektanta. Bajt-adresiranje je prikladno za manipuliranje karakterima, ali zahtijeva više adresnih bitova.

PDP-8 je jedan od najjednostavnijih projekata instrukcija za računar opće namjene. Koristio je 12-bitne instrukcije a radio je na 12-bitnim riječima. Imao je samo jedan registar opće namjene, akumulator.Postojao je 3-bitni opkod i tri tipa instrukcija. Za opkodove od 0 do 5 format je jednoadresna memorijska referencijska instrukcija koja je uključivala bit stranice i bit indrekcije. Zato je bilo samo šest osnovnih operacija. Za povećanje grupe operacija, opkod 7 definiše registarsku referencu ili mikroinstrukciju. U ovom formatu, preostali bitovi su se koristili za dodatne operacije kodiranja. Svaki bit definiše određenu operaciju, i ovi bitovi mogu biti kombinirani u jednu instrukciju.Opkod 6 je I/O operacija; koristilo se 6 bitova za izbor jednog od 64 uređaja, a 3 bita su specificirala određenu I/O komandu.

Page 27: Arhitektura računara skripta

PDP-8 insrukcijski format je veoma efikasan. Podržava indirektno adresiranje, adresiranje sa pomakom i indeksiranje. Korištenjem produžetka opkoda, podržavao je do 35 instrukcija.

PDP-10 je suprotnost instrukcijskom setu PDP-8. Projektovan je kao sistem dijeljenjavremena velikih razmjera, a sistem je bio lagan za programiranje.Principi koji su korišteni pri projektovanju njegovog instrukcijskog seta su:

Ortogonalnost: princip po kojem su dvije varijable međusobno nezavisne. U kontekstu instrukcijskog seta, to znači da drugi elementi instrukcije su nezavisni od opkoda. Adresa se uvijek izračunava na isti način, nezavisno od opkoda.

Cjelovitost: svi tipovi aritmetičkih podataka (cjelobrojni, nepromjenjive dužine, sa pokretnim zarezom) bi trebali imati potpun i identičan set operacija.

Direktno adresiranje: baza plus adresiranje sa pomakom, koje opterećuje programera memorijskom organizacijom izbjegnuto je u korist direktnog adresiranja. PDP-10 je imao 36-bitnu dužinu riječi te istu dužinu instrukcije. Opkod zauzima 9 bitova, dopuštajući do 512 operacija. Definisano je 365 različitih operacija. Većina instrukcija ima dvije adrese, a jedna je jedan od 16 registara opće namjene. Zato ova referenca operanda zauzima 4 bita. Druga referenca operanda počinje 18-bitnim memorijskim adresnim poljem. Može se koristiti kao neposredni operand ili memorijska adresa. Ako se koristi kao memorijska adresa, dozvoljeno je korištenje i indeksiranja i indirektnog adresiranja. Isti registri opće namjene se također koriste kao indeksni registri.Ova instrukcijska dužina i opkod su više nego dovoljni za direktno adresiranje.

Promjenjiva dužina instrukcijaAko se obezbijedi veći opseg opkodova različite dužine adresiranje može biti fleksibilnije, sa različitim kombinacijama registarskih i memorijskih referenci kod različitih načina adresiranja.Upotreba instrukcija različite dužine povećava složenost procesora.Pošto procesor ne zna dužinu instrukcije koja sljedeća treba biti dobavljena, nekad se može desiti da dobavi više instrukcija.

PDP-11. Projektovan je da pruži jak i fleksibilan instrukcijski set unutar ograničenja 16-bitnih miniračunara. Koristi skup od osam 16-bitnih registara opće namjene. Dva od njih imaju dodatnu važnost: jedan se koristi kao stek pokazivač za specijalne stek operacije, a drugi kao programski brojač, koji sadrži adresu sljedeće instrukcije.Dužina opkoda varira od 4 do 16 bitova. Registarske reference su duge 6 bitova. Tri bita identificira registar, a preostala tri način adresiranja. Bilo koji način adresiranja može biti korišten za bilo koji opkod. Njegove instrukcije su obično duge jednu riječ (16 bitova). Za neke instrukcije, jedna ili dvije memorijske adrese se dodaju, tako da su 32- i 48-bitne instrukcije dio seta. Ovim se pruža većafleksibilnost adresiranja.

Page 28: Arhitektura računara skripta

PDP-11 instrukcijski set i mogućnost adresiranja su složeni. Time se povećava i hardverska i softverska složenost. Prednost je da mogu biti razvijeni efikasniji i kompaktniji programi.

VAX - kod projektovanja VAX instrukcijskog formata sve instrukcije su trebale imate „prirodan“ broj operanada i svi operandi su trebali imati istu dužinu.Ovo je veoma varijabilan instrukcijski format. Instrukcija se sastoji od jedno- ili dvobajtnog opkoda nakon koga slijedi od nula do šest specifikatora operanda, u zavisnosti od opkoda. Najmanja dužina instrukcije je 1 bajt, a može se kreirati instrukcija dužine do 37 bajtaVAX instrukcijski set daje širok spektar operacija i načina adresiranja. Na ovaj načinprogramer (npr. kompajler) dobija veoma snažan i fleksibilan alat za razvoj programa.

Asemblerski jezikProcesor razumije i izvršava mašinske instrukcije. Te instrukcije su binarni brojevi pohranjeni u računar. Ako programer želi programirati direktno u mašinskom jeziku, onda mora unijeti program kao binarni podatak. Programi napisani u asemblerskom jeziku se prevode u mašinski pomoću asemblera. Ovaj program ne smije samo raditi simboličko, već također mora dodijeliti neki oblik memorijskih adresa simboličkim. Razvoj asemblerskog jezika bila je glavna prekretnica u evoluciji računarske tehnologije. Bio je prvi korak ka jezicima visokog nivoa koji se danas koriste. Iako veoma mali broj programera se njime koristi, praktično je zastupljen u svim mašinama. Koristi se za sistemske programe kao što su kompajleri i I/O rutine.

Page 29: Arhitektura računara skripta

STRUKTURA I FUNKCIJA PROCESORA

Organizacija procesoraZa razumijevanje organizacije procesora treba razmotriti zahtjeve koji su u njega ugrađeni,odnosno koje poslove on obavlja:

Dobavljanje instrukcije: procesor čita instrukciju iz memorije (registar, keš, glavna memorija).

Prevođenje instrukcije: instrukcija se dekodira kako bi se odredilo koja se aktivnost zahtjeva.

Dobavljanje podataka: izvršavanje instrukcije može zahtjevati podatke iz memorije ili I/O.

Obrada podataka: izvršavanje instrukcije može zahtjevati izvođenje aritmetičkih ili logičkih operacija nad podacima.

Upisivanje podataka: rezultati izvršavanja mogu zahtijevati upisivanje podataka u memoriju ili I/O modul.

Da bi izvršio ove zadatke procesor mora privremeno pohraniti podatke. Mora zapamtiti lokaciju posljednje instrukcije tako da zna gdje će naći sljedeću. Treba privremeno pohraniti instrukcije i podatke dok se instrukcija izvršava. To znači da je procesoru potrebna mala interna memorija.

Glavne komponente procesora su aritmetičko-logička (ALU) i kontrolna jedinica (CU). ALU vrši stvarno izračunavanje, odnosno obradu podataka. CU kontroliše prenos podataka i instrukcija u i iz procesora i rad ALU. Treća komponenta procesora su registri, tj. skup lokacija za pohranu podataka.

Organizacija registraNa višim nivoima hijerarhije memorija je brža, manja i skuplja (po bitu). Unutar procesorapostoji skup registara koji djeluju kao memorijski nivo iznad glavne memorije i keša. Imajudvije uloge:

Korisniku vidljivi registri: omogućavaju programeru mašinskog jezika minimiziranje poziva prema glavnoj memoriji optimizirajući iskoristivost registara.

Kontrolni i statusni registri: koristi ih kontrolna jedinica za kontrolu rada procesora i privilegovani programi operativnog sistema za kontrolu izvršavanja programa.

Korisniku vidljivi registri su registri koji mogu biti referencirani pomoću mašinskog jezika kojeg izvršava procesor. Grupišu se u sljede ć e kategorije : registre opće namjene, podatkovni registri, adresni registri, uslovni registri (condition codes).Registri op ć e namjene mogu se koristiti za adresiranje funkcija.Podatkovni registri mogu biti korišteni samo za držanje podataka ali ne i za izračunavanje adrese operanda.Adresni registri mogu biti opće namjene, ili mogu biti posvećeni određenom načinu adresiranja.

Page 30: Arhitektura računara skripta

Uslovni registri sadrže uslovne kodove ili zastavice. Uslovni kodovi su bitovi koje postavlja procesorski hardver kao rezultat operacije.

Kontrolni i statusni registriRazličiti procesorski registri vrše kontrolu operacija procesora. Većina njih nije vidljivakorisniku. Neki od njih mogu biti vidljivi mašinskim instrukcijama koje se izvršavaju u kontrolnom ili operativnom sistemskom modu.

Četiri tipa registara su bitna za izvršavanje instrukcija: Programski brojač (PC): sadrži adresu instrukcije koja treba biti učitana Instrukcijski registar (IR): sadrži instrukciju koja je zadnja učitana Memorijski adresni registar (MAR): sadrži adresu lokacije u memoriji Memorijski buffer registar (MBR): sadrži riječ podatka koji se upisuje u

memoriju ili riječ koja je nedavno učitana.

Obično procesor ažurira PC poslije svakog dohvatanja instrukcije tako da PC uvijek pokazuje na sljedeću instrukciju koja se treba izvršiti. Instrukcija grananja također mijenja sadržaj PC-a. Učitana instrukcija se smješta u IR, gdje se analiziraju specifikatori opkoda ioperanda. Podaci se razmjenjuju sa memorijom korištenjem MAR i MBR. U sistemu sa bus-organizacijom, MAR direktno povezuje na adresnu sabirnicu, a MBR na podatkovnu. S druge strane, korisnički vidljivi registri razmjenjuju podatke sa MBR.Ova četiri registra se koriste za prenos podataka između procesora i memorije. Unutar procesora podaci moraju biti predani ALU na obradu. ALU može imati direktan pristup MBR-u i korisnički vidljivim registrima. Alternativa su dodatni baferski registri na granici ALU-a. Ovi registri za ALU služe kao ulaz i izlaz iz registara i razmjenjuju podatke sa MBR i korisnički vidljivim registrima.

Instrukcijski ciklus

Dobavljanje: učitavanje sljedeće instrukcije iz memorije u procesor. Izvršavanje: prevođenje opkoda i izvođenje naznačene operacije. Prekid: ako su dozvoljeni i ako se prekidi pojave, spašava se trenutno stanje

procesa i uslužuje se prekid.

Indirektni ciklusIzvršavanje instrukcije može uključiti jedan ili više operanada iz memorije, što znači da se zahtjeva pristup memoriji. Nadalje, ako se koristi indirektno adresiranje, zahtjevaju se dodatni pristupi memoriji.Učitavanje indirektne instrukcije je samo jedno ili više stanja instrukcije. Nakon njenog učitavanja, ona se pregledava kako bi se odredilo postojanje indirektnog adresiranja.Ako je to tako, učitavaju se zahtjevani operandi korištenjem indirektnog adresiranja. Prateći izvršavanje, može se obrađivati prekid prije učitavanja sljedeće instrukcije.Drugi način: ilustrira prirodu ciklusa instrukcije. Kad se instrukcija učita, moraju se identificirati njeni specifikatori operanada. Onda se učitava svaki ulazni operand, što može zahtjevati indirektno adresiranje. Operandi bazirani na registru se ne trebaju učitavati. Nakon izvršenja opkoda, možda će biti potreban sličan proces za pohranu rezultata u glavnu memoriju.

Page 31: Arhitektura računara skripta

Tok podatakaTačan slijed događaja tokom izvršavanja instrukcijskog ciklusa zavisi od konstrukcijeprocesora. Međutim, može se pokazati šta se generalno mora dogoditi. Neka procesor koristi MAR, MBR, PC i IR. Tokom ciklusa dobavljanja, instrukcija se učitava iz memorije. PC sadrži adresu sljedeće instrukcije koju treba učitati. Adresa se premješta u MAR i smješta na adresnu sabirnicu. Kontrolna jedinica zahtjeva čitanje memorije, a rezultatse smješta na podatkovnu sabirnicu, kopira u MBR, i premješta u IR. U međuvremu, PC se povećava za 1, pripremajući se za sljedeće učitavanje.Kad se završi ciklus učitavanja, kontrolna jedinica pregledava sadržaj IR-a kako bi se utvrdilo postojanje specifikatora operanda koristeći indirektno adresiranje. Ako da, izvodi se indirektni ciklus. N krajnjih desnih bitova MBR-a, koji sadrže adresnu referencu, prebacuju se u MAR. Onda kontrolna jedinica zahtjeva čitanje memorije, kako bi se dobila tražena adresa operanda u MBR-u.Indirektni ciklus i ciklus učitavanja su jednostavni i predvidljivi. Ciklus izvršavanja ima mnoge forme, što zavisi koja je od brojnih mašinskih instrukcija u IR-u. Ciklus može uključivati prenos podataka između registara, učitavanje i upisivanje u memoriju ili I/O, i /ili pozivanje ALU. Prekidni ciklus je također jednostavan i predvidljiv. Trenutni sadržaj PC-a mora biti spašen tako da proces može povratiti normalnu aktivnost nakon prekida. Zato se sadržaj PC-a prenosi u MBR radi upisivanja u memoriju. Posebna memorijska lokacija koja je rezervisana u tu svrhu, učitava se u MAR iz kontrolne jedinice. To na primjer može biti stek pokazivač. U PC se učitava adresa prekidne rutine. Kao rezultat, sljedeći instrukcijski ciklus će početi učitavanjem odgovarajuće instrukcije.

Instrukcijski pipeliningKako se razvijao računarski sistem, tako su se poboljšavale njegove performanse koje sepostignute korištenjem tehnoloških poboljšanja, kao što je brže kolo. Nadalje, organizacijska poboljšanja takođe mogu poboljšati performanse procesora.Organizacijski pristup koji je veoma čest je instrukcijski pipelining.

Pipelining strategijaInstrukcijski pipelining je sličan korištenju asemblerske linije u proizvodnji. Ova linija koristiprednosti činjenice da proizvod prolazi kroz različite faze proizvodnje. Postavljanjem procesa proizvodnje u traku, istovremeno se može raditi na proizvodima koji su u različitim fazama obrade.

Faze pipelininga Učitavanje instrukcije (FI): učitavanje sljedeće očekivane instrukcije u buffer. Dekodiranje instrukcije (DI): određivanje opkoda i specifikatora operanda. Izračunavanje operanda (CO): izračunavanje stvarne adrese svakog

izvornog operanda. Ovo može uključiti pomak, registarsku indirekciju ili druge oblike izračunavanja adrese.

Učitavanje operanada (FO): učitavanje svakog operanda iz memorije. Operandi u registrima se ne trebaju učitavati.

Izvršavanje instrukcije (EI): izvodi se naznačena operacija i eventualno pohranjivanje rezultata na specificiranu odredišnu lokaciju operanda.

Upisivanje operanda (WO): pohranjivanje rezultata u memoriju.

Page 32: Arhitektura računara skripta

Superskalarni procesorOsnova superskalarnog pristupa je sposobnost nezavisnog i istovremenog izvršavanja instrukcija u različitim pipeline-ima. Koncept se može proširiti dopuštanjem da se instrukcije izvršavaju redoslijedom koji se razlikuje od programskog redoslijeda. Ima više funkcionalnih jedinica, a svaka je implementirana kao pipeline te podržava paralelno izvršavanje nekoliko instrukcija.

Page 33: Arhitektura računara skripta

KONTROLNA JEDINICA

Funkciju procesora specificiraju: opkodovi, načini adresiranja, registri, sučelje I/O modula, sučelje memorijskog modula i prekidi. Opkodove, načine adresiranja i registre definiše instrukcijski set, sučelje I/O i memorijskog modula definiše sistemska sabirnica, a prekide jednim dijelom definiše sistemska sabirnica, a drugim vrsta podrške koju procesor daje operativnom sistemu. Ovo su funkcionali zahtjevi za procesor i oni određuju šta procesor mora uraditi. Jedinica koja kontroliše procesorske operacije naziva se kontrolna jedinica.

Kompjuterska operacija se sastoji od niza instrukcijskih ciklusa sa jednom mašinskom instrukcijom po ciklusu. Ovaj niz ne mora biti isti kao niz instrukcija koje čine program zbog postojanja instrukcija grananja. Izvršavanje programa sastoji se od niza izvršavanja instrukcija. Svaka se instrukcija izvršava tokom instrukcijskog ciklusa, a njih čine kraći podciklusi: učitavanje, indirekcija, izvršavanje i prekid. Podciklus uključuje jednu ili više kraćih operacija (mikrooperacije).

Ciklus učitavanja se pojavljuje na početku svakog instrukcijskog ciklusa i izaziva učitavanje instrukcije iz memorije. Uključuje MAR (spojen je na adresne linije sistemske sabirnice i određuje adresu u memoriji za učitavanje ili upisivanje operacije), MBR (spojen je na podatkovne linije sistemske sabirnice i sadrži vrijednost koja će se pohraniti u memoriju), PC (sadrži adresu sljedeće instrukcije koju treba učitati) i IR (sadrži posljednju dobavljenu instrukciju).Ovaj ciklus se sastoji od 4 mikrooperacije:t1: MAR ← (PC)t2: MBR ← Memorijat3: PC ← (PC) + IIR ← (MBR)

Ciklus indirekcijeKad je dobavljena instukcija, dobavlja se izvorni operand.t1: MAR ← (IR(adresa))t2: MBR ← Memorijat3: IR(adresa) ← (MBR(adresa))

Ciklus prekida Na završetku ciklusa izvršavanja, radi se testiranje u svrhu određivanja pojave odobrenih prekida. Ako je tako pojavljuje se ciklus prekida:t1: MBR ← (PC)t2: MAR ← spašavanje_adresePC ← adresa_rutinet3: memorija ← (MBR)

Ciklus izvršavanjaCiklusi učitavanja, indirekcije i prekida su jednostavni i predvidljivi. Svaki uključuje mali i

Page 34: Arhitektura računara skripta

ustaljen niz mikrooperacija i, u svakom slučaju, iste se mikooperacije ponavljaju svaki put.Međutim, to nije tako kod ciklusa izvršavanja zbog različitih opkodova, jer se mogu pojavitibrojni i različiti nizovi mikooperacija.

Definisanje funkcije koje mora izvesti kontrolna jedinica je osnova projektovanja i implementacije kontrolne jedinice. 1. Definisati osnovne elemente procesora.2. Opisati mikooperacije koje izvodi procesor.3. Odrediti funkcije koje mora izvesti kontrolna jedinica da bi prouzročila izvođenjemikrooperacija.Kontrolna jedinica uzrokuje da se dogode operacije u procesoru.Svaka mikrooperacija pripada nekoj karegoriji:

Prenos podataka od jednog do drugog registra. Prenos podataka od registra do eksternog sučelja (npr., sistemska sabirnica). Prenos podataka od eksternog sučelja do registra. Izvođenje aritmetičke ili logičke operacije korištenjem registara za ulaz i izlaz.

Kotrolna jedinica izvodi dva osnovna zadatka: Sekvencioniranje: kontrolna jedinica uzrokuje da procesor prolazi kroz niz

mikrooperacija odgovarajućim redoslijedom, zasnovano na programu koji se izvršava.

Izvršavanje: kontrolna jedinica uzrokuje da se svaka mikrooperacija izvede.

Kako bi izvela svoju funkciju kontrolna jedinica mora imati ulaze kojima određuje stanjesistema i izlaze kojima kontroliše ponašanje sistema.

Ulazi su: Takt: Kontrolna jedinica uzrokuje izvođenje jedne ili više mikooperacija u

svakom taktnom impulsu. Ovo se nekad označava kao brzina procesora. Instrukcijski registar: opkod i način adresiranja trenutne instrukcije se koristi

za određivanje koje mikrooperacije izvesti tokom izvršnog ciklusa. Zastavice: potrebne su kontrolnoj jedinici za određivanje statusa procesora i

rezultata prethodnih ALU operacija. Kontrolni signali sa kontrolne sabirnice: kontrolna sabirnica kao dio

sistemske, obezbjeđuje signale ka kontrolnoj jedinici.

Izlazi su: Kontrolni signali unutar procesora: dva su tipa: jedni uzrokuju prenošenje

podataka od jednog do drugog registra, a drugi aktiviraju specifične ALU funkcije.

Kontrolni signali ka kontrolnoj sabirnici: dva tipa: kontrolni signali ka memoriji i kontrolni signali ka I/O modulima.

Koriste se tri tipa kontrolnih signala: za aktiviranje ALU funkcije, podatkovne putanje i signali na eksternu sistemsku sabirnicu ili drugo eksterno sučelje. Svi se ovi signali na kraju primjenjuju direktno kao binarni ulazi za pojedinačna logička vrata.

Page 35: Arhitektura računara skripta

MEMORIJA

Iako je memorija svojim konceptom najjednostavnije komponenta računara ima najšii spektar tipova.

Karakteristike: Lokacija (unutrašnja i vanjska) Kapacitet (broj riječi/broj bajtova) Jedinica prenosa (riječ, blok) Način pristupa (sekvencijalni, direktni, slučajni, asocijativni) Performanse (vrijeme pristupa, vrijeme ciklusa, brzina prenosa) Fizički tip (poluprovodnik, optički, magnetno-optički) Fizičke karakteristike (nepostojana/postojana, izbrisiva/neizbrisiva Organizacija (memorijski moduli).

Unutrašnja memorija: glavna memorija, keš memorija;Vanjska memorija: diskov i traki; procesor im pristupa pomoću I/O kontrolera.

Kapacitet se kod unutrašnje memorije izražava u riječima ili bajtima. Dužina riječi može biti 8, 16 i 32 bita; Kapacitet vanjske memorije se obično izražava u bajtima.

Za unutrašnju memoriju, jedinica prenosa je jednaka broju električnih linija koje ulaze i izlaze u memorijski modul, što može biti jednako dužini riječi, ali je često veće (64, 128 ili 256 bita); Kod vanjske memorije podaci se prebacuju u blokovima.

Sekvencijalni pristup: memorija je organizovana u jedinice podataka koji se nazivaju zapisi. Pristup se mora obaviti u posebnom linearnom nizu. Pohranjene informacije oadresiranju se koriste za razdvajanje zapisa i kao pomoć u povratnom procesu. Sekvencijalni pristup podrazumijeva da se sa pretraživanjem krene od prvog zapisa. Vrijeme pristupa je promjenjivo.Neposredni pristup: direktno se pristupa do opće lokacije u blizini, a onda slijedi sekvencijalno pretraživanje, brojanje, ili čekanje do konačne lokacije. Vrijeme pristupa je promjenjivo.Slučajni pristup: svaka adresabilna lokacija u memoriji ima jedinstven fizičkimehanizam adresiranja. Vrijeme pristupa datoj lokaciji je konstantno, i nezavisno odniza prethodnih pristupa. Zato svaka lokacija može biti izabrana slučajno, a adresira ipristupa joj se direktno.Asocijativan pristup: koristi ga vrsta memorije sa direktnim pristupom kojaomogućava da se uporede željene lokacije bitova unutar riječi kako bi se postiglapodudarnost sa određenim uzorkom i da se to uradi za sve riječi istovremeno. Dakle,riječ se pronalazi na osnovu dijela njenog sadržaja, a ne na osnovu njene adrese. Vrijeme pristupa je konstantno.

Koriste se različiti fizički tipovi memorije. Najčešće su: poluprvodničke, površinskimagnetizirane (disk i traka), optičke i magnentno-optičke.

Page 36: Arhitektura računara skripta

Nekoliko fizičkih karakteristika prohrane podataka je važno. Kod nepostojane memorije, informacije se prirodno gube kada se isključi struja. Kod postojane memorije, jednom snimljene informacije ostaju nepromijenjene do namjerne promjene – nije potrebna struja da se informacije zadrže. Površinski magnetizirane memorije su stalne. Poluprovodnička memorija može biti u oba oblika. Neizbrisiva memorija se ne može mijenjati, osim uništavanja memorijske jedinice. Poluprovodnička memorija ovog tipa je poznata kao memorija samo za čitanje (ROM). Zbog potrebe, neizbrisiva memorija također mora biti postojana. Za memoriju sa direktnim pristupom organizacija je ključno pitanje dizajna. Pod organizacijom se podrazumijeva fizičko uređenje bitova u kreiranju riječi.

Memorijska hijerarhija:Koriste se razne tehnologije za implementaciju memorijskih sistema, a među tehnologijama postoje sljedeće veze:

Kraće vrijeme pristupa, veća cijena po bitu Veći kapacitet, manja cijena po bitu Veći kapacitet, duže vrijeme pristupa.

Sekundarna ili pomoćna memorija je stalna. Koristi se za pohranu programskih i podatkovnih fajlova i obično je vidljiva programeru samo u smislu fajlova i zapisa.

KEŠ MEMORIJA je memorija čija je namjena povećanje brzine kako se približava najbržim memorijama, i da u isto vrijeme pruži veću količinu memorije po manjoj cijeni poluprovodničke memorije. Keš sadrži kopiju dijelova glavne memorije. Kada procesor pokušava čitati riječ memorije, provjera se da li keš sadrži tu riječ. Ako da, riječ se prosljeđuje procesoru. Ako ne, blok glavne memorije koji se sastoji od fiksnog broja riječi, se učitava u keš i onda se riječ prosljeđuje procesoru.

Keš memorija se sastoji od tri nivoa: L2 keš je sporiji i obično veći nego L1, a L3 je sporiji i obično veći od L2.

Karakteristike keš dizajnaIako postoji veliki broj keš implementacija, svega je nekoliko osnovnih elemenata koji služe za klasifikovanje i razlikovanje keš arhitektura. To su: keš adrese (logičke i fizičke); veličina keša; funkcije preslikavanja (direktno, asocijativno, poluasocijativno); algoritmi zamjene (posljednji korišten – LRU, prvi ušao prvi izašao – FIFO, najmanjekorišten – LFU, slučajni); načini upisa (write through, write back, write once); veličina linije; broj keševa (jedan ili dva nivoa, ujedinjeni ili razdvojeni).

Broj keševaKad je keš uveden, tipičan sistem je imao samo jedan. U posljednje vrijeme, normalna je

Page 37: Arhitektura računara skripta

upotreba višestrukih keševa. Dva aspekta dizajna tiču se: broja keš nivoa i ujedinjeni naspram razdvojeni keš.

Keš u više nivoa: povećanjem gustine logike, te je postalo moguće imati keš na istom čipu gdje je i procesor. U poređenju sa kešom kojem se pristupa preko spoljašnje sabirnice, keš na čipu smanjuje procesorsku vanjsku sabirnicu te se zato ubrzava izvršenje i povećavaju performanse sistema uopće. Kada se pronađe tražena informacija ili podatak u kešu na čipu, eliminiše se pristup sabirnice, te je tokom ovog perioda sabirnica je slobodna za podršku drugim prenosima.

Ujedinjeni naspram razdvojenog keša: kad se keš na čipu prvi put pojavio, mnogi dizajni su se sastojali od jednog keša koji se koristio za pohranjivanje podatkovnih i instrukcijskih referenci. U novije vrijeme, postalo je uobičajeno razdvajanje keša na dva: jedan namijenjen za instrukcije, a drugi za podatke. Oba se nalaze na istom nivou, obično kao dva L1 keša. Kada procesor pokušava da dobavi instrukciju iz glavne memorije, prvo provjerava instrukcijski L1, a kada pokušava dobaviti podatke iz glavne memorije, prvo provjerava podatkovni L1.

Dvije su prednosti ujedinjenog keša: Za datu veličinu keša, ujedinjeni ima veću stopu pogotka od razdvojenog jer

automatski uravnotežuje opterećenje između instrukcijskih i podatkovnih dobavljanja.

Treba samo projektovati i implementirati jedan keš.

Ključna prednost dizajna razdvojenog keša je u tome što: Eliminiše trku za kešom između jedinice za dobavljanje/dekodiranje instrukcije

i izvršne jedinice.

Unutrašnja memorijaPoluprovodnička glavna memorija:Organizacija:Osnovni element poluprovodničke memorije je memorijska ćelija. Iako se koriste raznolike elektronske tehnologije, sve poluprovodničke memorijske ćelije imaju zajednička svojstva:

Imaju dva (polu)stabilna stanja, koja se koriste za predstavljanje binarnih 1 i 0. Za postavljanje stanja u njih se, bar jednom, može upisivati. Iz njih se može čitati s obzirom na stanje (0 ili 1).

Tipovi memorije sa direktnim pristupom:

Page 38: Arhitektura računara skripta

RAM – (random-access memory) mora imati stalno napajanje strujom; njeno čitanje i pisanje se brzo izvršava.Postoje dva oblica RAM-a:

DRAM – (dinamički RAM) napravljena je od ćelija koje pohranjuju podatke kao kondenzatorske naboje. Prisustvo ili odsustvo naboja u kondenzatoru te tumači kao 0 ili 1. Analogni uređaj. Koristi se za glavnu memoriju.

SRAM – (statički RAM) je digitalni uređaj koji koristi iste logičke elemente kao procesor. U njemu se binarne vrijednosti pohranjuju koristeći flip-flop konfiguracije logičkih vrata. Drži podatke dok je struja uključena. Koristi se za keš memoriju.

ROM – (read-only memory) sadrži podatke koji se ne mijenjaju. Stabilan, što znači da se podaci ne gube prekidom napajanja struje. U ROM nije moguće upisivati podatke. Važna primjena ROM-a je mikroprogramiranje.

PROM – (programirani ROM) stabilan je i u njega se upisuje samo jednom. Objezbjeđuje fleksibilnost.

EPROM – (erasable programmable ROM) je memorija čiji se sadržaj može mijenjati. Da bi se podaci upisali prethodni sadržaj se mora izbrisati.

EEPROM – (electrically erasable programmable ROM) je memoriju u koju se može upisivati bez da se obriše prethodni sadržaj

FLASH – je oblik poluprovodničke memorije. Ime je dobila zbog brzine kojom se reprogramira. Korsiti samo 1 tranzistor po bitu, kao i EPROM.