Arhitektura Racunara Prezentacija PP

Embed Size (px)

Citation preview

Prof. Dr Sonja Pravilovi

Sonja Pravilovic 2011

5/3/2012

1

ARHITEKTURA MIKROPROCESORSKIH SISTEMA Organizacija raunara Centralna procesorska jedinica (CPU Central Processor Unit). Memorijski podsistem. Ulazno-izlazni podsistem.

Centralna procesorska jedinica (CPU Central Processor Unit). Interno, CPU se sastoji od upravljake jedinice, koja upravlja radom cjelokupnog raunara i staze podataka koja sadri registre, aritmetiko-logiku jedinicu (ALU) i druge funkcijske jedinice specijalizovane za pojedine tipove obrade podataka (matematiki koprocesori, akceleratori i sl.). Memorijski podsistem. Sainjen od specijalizovanih kola sa mogunou memorisanja informacije. U memoriji raunara uvaju se program i podaci. CPU vidi memoriju kao skup memorijskih lokacija, gdje svaka lokacija, u zavisnosti od organizacije memorije, sadri 8/16/32/64 bita. Svakoj memoriskoj lokaciji pridruena je jedinstvena adresa. Ulazno-izlazni podsistem. Skup specijalizovanih kola koja slue za spregu CPU sa aktorima iz spoljnjeg svijeta, kao to su tastatura, mi i displej. Ovo su integrisana kola koja, tipino, posjeduju svoju upravljaku jedinicu i stazu podataka. CPU vidi U/I ureaj kao skup od nekoliko memorijskih lokacija (tzv. registara ili portova). Upisom/itanjem u/iz ovih lokacija mogue je upravljati radom U/I ureaja, tj. inicira neke aktivnosti perifernog ureaja, postavi ureaj u eljeni reim rada, pribavi informaciju o tekuem stanju ureaja, prenese/prihvati podatke u/od ureaja.

CPU je u stanju da obavlja elementarne raunske operacije i razmjenjuje podatke sa memorijom i specijalizovanim interfejsnim kola za komunikaciju sa spoljnim svijetom. Program se sastoji od niza instrukcija, od kojih svaka ukazuje na jednu elementarnu operaciju, a sve zajedno definiu izraunavanja koja raunar treba da obavi kako bi se ostvario eljeni algoritam. Program sastavlja ovjek (programer) i zajedno sa ulaznim podacima smjeta ih u memoriju raunara. CPU pribavlja iz memorije instrukcije i podatke, i izvrava instrukcije, transformiui tako ulazne podatke u izlazne, koje, po okonanju rada, predaje okruenju. Koncept raunara je nezavisan od tehnologije. Prvi raunari bili su elektro-mehanike naprave. Danas se raunarski sistemi realizuju iskljuivo u digitalnoj integrisanoj tehnologiji. Ova tehnologija omoguava realizaciju raunskih maina koje se sastoje od vie miliona elementarnih sklopova (gejtova) i u stanju su da obavljaju vie stotina miliona elementarnih raunskih operacija u sekundi.

Sistemske magistrale Kao to se moe vidjeti sa slike 1, podsistemi raunara meusobno su povezani uz pomo magistrala. Magistralu ini skup veza (ica), od kojih se svaka koristi za prenos jednog bita informacije. Prenos informacije od jedne do neke druge komponete ostvaruje se tako to izvorina komponenta postavlja podatak na magistralu, a odredina komponenta oitava podatak sa magistrale. Korienje magistrala je ekonominije rjeenje u odnosu na direktne veze izmeu sistemskih komponenata, naroito u sluevima kada je broj komponenti veliki. Magistrale zauzimaju manje prostora na tampanoj ploi ili na ipu i zahtijevaju manji utroak energije u odnosu na vei broj direktnih veza. Takoe, magistrale zahtijevaju manji broj pinova na ipu ili ipovima koji ine raunarski sistem. Sistem prikazan na slike 1 koristi tri magistrale: adresna magistrala, magistrala podataka i upravljaka magistrala.

Adresna magistrala se koristi za prenos memorijskih i U/I adresa. Uvijek kada CPU ita podatak ili instrukciju iz memorije ili upisuje podatak u memoriju, on mora da navede adresu memorijske lokacije kojoj eli da pristupi. CPU postavlja adresu pristupa na adresnu magistralu; memorija prihvata adresu sa adresne magistrale i koristi je za pristup odgovarajuoj memorijskoj lokaciji. Takoe, svaki UI ureaj, kao to je tastatura, kontroler displeja, ili kontroler diska, kao i svaki port unutar U/I ureaja posjeduje jedinstvenu adresu. Uvijek kad CPU pristupa nekom UI ureaju, on postavlja adresu ureaja na adresnu magistralu. Svaki ureaj oitava adresu sa magistrale i utvruje da li CPU pristupa ba njemu. Za razliku od ostalih sistemskih magistrala, podatke na adresnu magistralu uvijek postavlja CPU (tj. CPU nikada ne preuzima podatak sa adresne magistrale). Adresna magistrala je jednosmjerna, usmjerena od CPU ka ostalim sistemskim komponentama.

Podaci se prenose preko magistrale podataka. Prilikom pribavljanja podataka ili instrukcija iz memorije, CPU prvo postavlja memorijsku adresu na adresnu magistralu. Nakon toga, memorija postavlja traeni podatak na magistralu podataka koga, konano, CPU preuzima. Kada upisuje podatak u memoriju, CPU postavlja adresu na adresnu magistralu, a podatak na magistralu podataka. Memorija preuzima podatak i smijeta ga u odgovarajuu lokaciju. Proces itanjaupisa podataka izu UI ureaja odvija se na slian nain. Upravljaka magistrala razlikuje se donekle od druge dvije magistrale. Naime, adresna magistrala se sastoji od n linija koje se zajedno koriste za prenos jedne n-to bitne adrese. Slino, linijama magistrale podataka prenosi se jedinstveni, vie-bitni podatak. Nasuprot prethodnom, upravljaka magistrala je skup nezavisnih upravljakih signala i to je razlikuje od magistrale podataka i adresne magistrale. Na primjer, signali upravljake magistrale ukazuju da li se pristupa UI ureajima ili memoriji, da li CPU zahtijeva upis ili itanje, da li su UI ureaj ili memorija spremni za prenos podataka itd. Iako je na slici 1, upravljaka magistrala predstavljena kao dvosmjerna, praktino, ovu magistralu uglavnom ine logiki nezavisni jednosmjerni signali koji se kreu u razliitim smjerovima. Veina signala izlazi iz CPU jedinice, mada postoje i oni koji ulaze u CPU.

(a) Ciklus itanja (b) Ciklus upisa Slika 2. Vremenski dijagrami za itanje iz i upis u memoriju

Na slici 2(a) prikazan je vremenski dijagram operacije itanja iz memorije. Uoimo signal CLK. To je sistemski taktni (klok) signal koji sinhronie sve operacije koje CPU obavlja. Na poetku taktnog ciklusa 1, CPU postavlja adresu na adresnu magistralu. Memorijski podsistem prihvata adresu i dekodira je kako bi pristupio eljenoj memorijskoj lokaciji. Jedan taktni ciklus kasnije, CPU aktivira upravljaki signal READ, to uslovljava da memorija postavi traeni podatak na magistralu podataka. U toku ovog taktnog ciklusa, CPU oitava podatak sa magistrale i smjeta ga u neki od svojih internih registara. Na kraju ovog taktnog ciklusa, CPU sklanja adresu sa adresne magistrale i deaktivira signal READ. Tada, memorija sklanja podatak sa magistrale podataka, ime je operacija itanja iz memorije zavrena. Vremenski dijagram operacije upisa u memoriju prikazan je na slici 2(b). U toku prvog taktnog ciklusa, CPU postavlja adresu i podatak na sistemske magistrale. Na poetku drugog taktnog ciklusa, CPU aktivira upravljaki signal WRITE. Kao to signal READ nalae memoriji da proita podatak, tako signal WRITE nalae memoriji da prihvati podatak sa magistrale podataka i upie ga u lokaciju ija je adresa prisutna na adresnoj magistrali. Na kraju drugog ciklusa, CPU uklanja adresu i podatak sa sistemskih magistrala i deaktivira signal WRITE. Na taj nain, operacija upisa u memoriju je zavrena.

Brzina odziva memorije karakterie se vremenom pristupa. To je vrijeme koje je neophodno da memorija nakon postavljanja nove adrese pronae i pristupi adresiranoj lokaciji. Da bi sistem radio korektno, neophodno je da period sistemskog takta bude vei ili jednak vremenu pristupa memoriji. Ako to nije sluaj, neophodno je produiti ciklus itanja/upisa umetanjem jednog ili vie taktnih ciklusa tzv. stanja ekanja. Operacije itanjaupisa izu UI ureaja su sline operacijama memorijskog itanja i upisa. UI podsistem moe biti organizovan na jedan od dva standardna naina: (1) memoriski mapirani UI gdje CPU tretira portove UI ureaja kao memorijske lokacije i shodno tome, CPU je u obavezi da pristup UI podsistemu tretira na isti nain kako pristup memorijskom podsistemu; (2) izolovani UI pristup UI podsistemu je identian pristupu memorijskom podsistemu, s tom razlikom da CPU posjeduje dodatni upravljaki signal koji razdvaja pristup UI ureajima od pristupa memoriji. Na primjer, procesor 8085 poseduje upravljaki signal IOM. Kada eli da pristupi memoriji, bilo radi itanja ili upisa, CPU dri signal IOM na 0 za sve vrijeme trajanja operacije itanjaupisa. Sa druge strane, za vrijeme trajanja operacije itanjaupisa izu UI podsistema, CPU postavlja signal IOM na 1.

CPU jedinica CPU jedinica upravlja radom raunara tako to izvrava programske instrukcije. CPU izvrava program instrukciju-poinstrukciju pri emu izvrenje svake pojedinane instrukcije odgovara jednom instrukcijskom ciklusu. Svaki instrukcijski ciklus ukljuuje tri glavne aktivnosti (ili faze): pribavljanje instrukcije, dekodiranje instrukcije i izvrenje instrukcije. Pribavljanje instrukcije odgovara itanju instrukcije iz programske memorije. Da bi se instrukcija izvrila potrebno je obaviti neku specifinu sekvencu operacija. Kada CPU dekodira instrukciju, on zapravo utvruje o kojoj instrukciji se radi, kako bi izabrao korektnu sekvencu operacija koju treba obaviti. Konano, CPU izvrava instrukciju. Niz operacija koje treba obaviti da bi se izvrila neka instrukcija, se razlikuje od instrukcije do instrukcije. Izvrenje instrukciju moe da ukljui itanje podatka iz memorije, upis podatka u memoriju, itanje iz ili upis podatka u UI ureaj, obavljanje aritmetikih ili logikih operacija unutar CPU jedinice, ili neku kombinaciju ovih operacija.

Interno, CPU se sastoji iz tri dijela (slika 3). Registarska sekcija, kao to samo ime kazuje, sadri registre i magistralu ili neki drugi mehanizam za pristup registrima. Pored registara koji su vidljivi programeri, a ija se imena javljaju kao operandi u pojedinim instrukcijama, registarska sekcija sadri i registre koji imaju posebnu namjenu, a koji nisu direktno vidljivi programeru. Kao to je ve reeno, u toku faze pribavljanja instrukcije, CPU postavlja adresu instrukcije na adresnu magistralu. CPU posjeduje registar koji se zove programski broja u kome se uva adresa slijedee instrukcije koju treba pribaviti. Prije nego to CPU postavi adresu instrukcije na adresnu magistralu, CPU uzima tu adresu iz programskog bojaa. Na kraju faze pribavljanja instrukcije, CPU pruzima instrukciju sa magistrale podataka i smjeta je interni registar koji se zove registar instrukcije. Ni jedan od ova dva registra nije direktno vidljiv programeru, ali se oba koriste od strane CPU jedinice u toku svakog instrukcijskog ciklusa.

Aritmetikologika jedinica ili ALU, obavlja aritmetike i logike operacije, kao to su sabiranje i AND. Operandi za ove operacije stiu iz registarske sekcije, a rezultat se pamti, takoe, u registarsku sekciju. Tipino, za obavljanje bilo koje operacije u ALU jedinici potreban je jedan taktni ciklus. Na primjer, instrukcija ADD r1,r2,r3 je ekvivalentna operaciji: r1=r2+r3, a izvrava se tako to se u jednom taktnom ciklusu proita sadraj registara r2 i r3 i postavi na ulaze ALU, a drugom taktnom ciklusu rezultat prisutan na izlazu ALU jedinice upie u registar r1.

Kao to CPU upravlja radom raunara, tako upravljaka jedinica upravlja radom CPU jedinice. Upravljaka jedinica generie interne upravljake signale na nain kao kod bilo kog ASIC kola, tako to se ostatak CPU jedinice tretira kao staza podataka. Na primjer, ovi upravljaki signali iniciraju upis u i itanje iz registara i konfiguriu ALU za obavljanje eljene operacije. Prilikom genisanja upravljakih signala, upravljaka jedinica koristi podatke iz registarske sekcije. Ovi podaci ukljuuju kod instrukcije i statusne informacije koje se uvaju u registarskoj sekciji. Takoe, upravljaka jedinica generie signale za upravljaku magistralu, kao to su READ, WRITE i IOM. Da bi pribavio, dekodirao i izvrio instrukciju, CPU mora obaviti niz operacija. Postavljanjem internih i eksternih upravljakih signala u pravilnom redosledu, upravljaka jedinica upravo inicira CPU i preostali dio raunara da obave ovaj niz operacija.

Iako svaka instrukcija ukljuuje neku specifinu kombinaciju elementarnih operacija, CPU izvrava sve instrukcije na, u sutini, identian nain. Procedura koja opisuje rad CPU jedinice u toku svakog instrukcijskog ciklusa zove se algoritam pribavi-izvri. Mada detalji ovog algoritma mogu znaajno da variraju od raunara do raunara, bazini princip rada ovog algoritma je u sitini isti kod svih raunara i moe se razloiti na slijedee operacije: 1. Pribavi tekuu instrukciju iz memorije sa adrese na koju ukazuje programski broja 2. Ako je potrebno, pribavi podatke iz memorije; 3. Pripremi se za pribavljanje slijedee instrukcije (uveaj programski broja za 1); 4. Dekodiraj i izvri tekuu instrukciju; Interpretiraj ta tekua instrukcija znai; Obavi operacije koje su naloene tekuom instrukcijom i eventualno modifikuj memoriju.

Opisana varijanta algoritma pribavi-izvri odgovara CISC (Complex Instruction Set Computer) modelu CPU jedinice. Kod ovog modela, svaka od faza u izvrenju instrukcije moe trajati jedan ili vie taktnih ciklusa, a operandi adresirani instrukcijom se mogu uzimati kako iz internih registara tako i direktno iz memorije. Slino, rezultat izvrenja instrukcije moe biti smjeten bilo u interni registar bilo u memoriju. CISC model omoguava realizaciju sloenih instrukcija i sloenih naina adresiranja.

Za razliku od CISC modela, RISC (Reduced Instruction Set Computer) model CPU jedinice propisuje donekle drugaiji oblik algoritma pribavi-izvri koji se sastoji iz 5 faza: 1. Pribavi tekuu instrukciju iz memorije sa adrese na koju ukazuje programski broja i uveaj programski broja za 1. (Instruction Fatch - IF). 2. Dekodiraj instrukciju i pribavi (prikupi) operande specificirane instrukcijom. Operandi se pribavljaju iz registarskog fajla. (Instruction Decoding - ID). 3. Izvri operaciju specificiranu instrukcijom. (Execution - EX) 4. Ako se radi o instrukciji za pristup memoriji (Load/Store), pristupi eksternoj memoriji radi upisa/itanja podatka. (Memory Access - MEM). 5. Upii rezultat operacije u odredini registar registarskog fajla. (Write Back - WB).

Kod RISC modela sve faze traju tano jedan taktni ciklus, a operandi se uvijek uzimaju iz internih registara. Sem toga, rezultat se uvijek smjeta u registar. Za razmjenu podataka sa memorijom koriste se specijalizovane instrukcije, koje prebacuju podatak iz memorije u interni registar (instrukcija tipa Load), odnosno podatak iz internog registra u memoriju (instrukcija tipa Store).Kod CPU jedinica RISC modela instrukcije su jednostavnije i u mogucnosti su da obavljaju samo proste operacije.

Skup instrukcija Specifinosti u izvoenju algoritma pribavi-izvri zavise od skupa instrukcija koje raunarska maina treba da implementira. Skup instrukcija je skup rijei (binarnih kombinacija) mainskog jezika koje je hardver maine u stanju da interpretira. Cjelokupan softver koji se obavlja na konkretnoj maini se u konanoj instanci moe razloiti na instrukcije iz skupa instrukcija. Hardver maine nije u stanju da izvrava instrukcije koje ne pripadaju skupu instrukcija te maine. Mada, konceptualno slini, razliiti modeli raunara zasnovani su na potpuno razliitim skupovim instrukcija.